51#define YYBISON_VERSION "3.5.1"
54#define YYSKELETON_NAME "yacc.c"
73# error needs pure parser
76#define YYERROR_VERBOSE 1
77#define YYSTACK_USE_ALLOCA 0
78#define YYLTYPE rb_code_location_t
79#define YYLTYPE_IS_DECLARED 1
94#ifndef WARN_PAST_SCOPE
95# define WARN_PAST_SCOPE 0
100#define yydebug (p->debug)
102#define YYMALLOC(size) rb_parser_malloc(p, (size))
103#define YYREALLOC(ptr, size) rb_parser_realloc(p, (ptr), (size))
104#define YYCALLOC(nelem, size) rb_parser_calloc(p, (nelem), (size))
105#define YYFREE(ptr) rb_parser_free(p, (ptr))
106#define YYFPRINTF rb_parser_printf
107#define YYPRINT(out, tok, val) parser_token_value_print(p, (tok), &(val))
108#define YY_LOCATION_PRINT(File, loc) \
109 rb_parser_printf(p, "%d.%d-%d.%d", \
110 (loc).beg_pos.lineno, (loc).beg_pos.column,\
111 (loc).end_pos.lineno, (loc).end_pos.column)
112#define YYLLOC_DEFAULT(Current, Rhs, N) \
116 (Current).beg_pos = YYRHSLOC(Rhs, 1).beg_pos; \
117 (Current).end_pos = YYRHSLOC(Rhs, N).end_pos; \
121 (Current).beg_pos = YYRHSLOC(Rhs, 0).end_pos; \
122 (Current).end_pos = YYRHSLOC(Rhs, 0).end_pos; \
126#define RUBY_SET_YYLLOC_FROM_STRTERM_HEREDOC(Current) \
127 rb_parser_set_location_from_strterm_heredoc(p, &p->lex.strterm->u.heredoc, &(Current))
128#define RUBY_SET_YYLLOC_OF_NONE(Current) \
129 rb_parser_set_location_of_none(p, &(Current))
130#define RUBY_SET_YYLLOC(Current) \
131 rb_parser_set_location(p, &(Current))
132#define RUBY_INIT_YYLLOC() \
134 {p->ruby_sourceline, (int)(p->lex.ptok - p->lex.pbeg)}, \
135 {p->ruby_sourceline, (int)(p->lex.pcur - p->lex.pbeg)}, \
156#define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit)
176#define IS_lex_state_for(x, ls) ((x) & (ls))
177#define IS_lex_state_all_for(x, ls) (((x) & (ls)) == (ls))
178#define IS_lex_state(ls) IS_lex_state_for(p->lex.state, (ls))
179#define IS_lex_state_all(ls) IS_lex_state_all_for(p->lex.state, (ls))
181# define SET_LEX_STATE(ls) \
184 rb_parser_trace_lex_state(p, p->lex.state, (ls), __LINE__) : \
185 (enum lex_state_e)(ls)))
191# define SHOW_BITSTACK(stack, name) (p->debug ? rb_parser_show_bitstack(p, stack, name, __LINE__) : (void)0)
192# define BITSTACK_PUSH(stack, n) (((p->stack) = ((p->stack)<<1)|((n)&1)), SHOW_BITSTACK(p->stack, #stack"(push)"))
193# define BITSTACK_POP(stack) (((p->stack) = (p->stack) >> 1), SHOW_BITSTACK(p->stack, #stack"(pop)"))
194# define BITSTACK_SET_P(stack) (SHOW_BITSTACK(p->stack, #stack), (p->stack)&1)
195# define BITSTACK_SET(stack, n) ((p->stack)=(n), SHOW_BITSTACK(p->stack, #stack"(set)"))
199#define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
200#define COND_POP() BITSTACK_POP(cond_stack)
201#define COND_P() BITSTACK_SET_P(cond_stack)
202#define COND_SET(n) BITSTACK_SET(cond_stack, (n))
206#define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
207#define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
208#define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
209#define CMDARG_SET(n) BITSTACK_SET(cmdarg_stack, (n))
239#define NUMPARAM_ID_P(id) numparam_id_p(id)
240#define NUMPARAM_ID_TO_IDX(id) (unsigned int)(((id) >> ID_SCOPE_SHIFT) - tNUMPARAM_1 + 1)
241#define NUMPARAM_IDX_TO_ID(idx) TOKEN2LOCALID((tNUMPARAM_1 + (idx) - 1))
251#define DVARS_INHERIT ((void*)1)
252#define DVARS_TOPSCOPE NULL
253#define DVARS_TERMINAL_P(tbl) ((tbl) == DVARS_INHERIT || (tbl) == DVARS_TOPSCOPE)
334 unsigned int eofp: 1;
336 unsigned int debug: 1;
345 unsigned int past_scope_enabled: 1;
375 VALUE parsing_thread;
379#define intern_cstr(n,l,en) rb_intern3(n,l,en)
381#define STR_NEW(ptr,len) rb_enc_str_new((ptr),(len),p->enc)
382#define STR_NEW0() rb_enc_str_new(0,0,p->enc)
383#define STR_NEW2(ptr) rb_enc_str_new((ptr),strlen(ptr),p->enc)
384#define STR_NEW3(ptr,len,e,func) parser_str_new((ptr),(len),(e),(func),p->enc)
385#define TOK_INTERN() intern_cstr(tok(p), toklen(p), p->enc)
418#define yyerror0(msg) parser_yyerror(p, NULL, (msg))
419#define yyerror1(loc, msg) parser_yyerror(p, (loc), (msg))
420#define yyerror(yylloc, p, msg) parser_yyerror(p, yylloc, msg)
421#define token_flush(ptr) ((ptr)->lex.ptok = (ptr)->lex.pcur)
424#define compile_for_eval (0)
426#define compile_for_eval (p->parent_iseq != 0)
429#define token_column ((int)(p->lex.ptok - p->lex.pbeg))
431#define CALL_Q_P(q) ((q) == TOKEN2VAL(tANDDOT))
432#define NODE_CALL_Q(q) (CALL_Q_P(q) ? NODE_QCALL : NODE_CALL)
433#define NEW_QCALL(q,r,m,a,loc) NEW_NODE(NODE_CALL_Q(q),r,m,a,loc)
435#define lambda_beginning_p() (p->lex.lpar_beg == p->lex.paren_nest)
463#define rb_node_newnode(type, a1, a2, a3, loc) node_newnode(p, (type), (a1), (a2), (a3), (loc))
477set_line_body(
NODE *body,
int line)
487#define yyparse ruby_yyparse
491#define new_nil(loc) NEW_NIL(loc)
502static NODE *remove_begin_all(
NODE*);
503#define value_expr(node) value_expr_gen(p, (node) = remove_begin(node))
526static bool args_info_empty_p(
struct rb_args_info *args);
571#define make_list(list, loc) ((list) ? (nd_set_loc(list, loc), list) : NEW_ZLIST(loc))
591#define get_id(id) (id)
592#define get_value(val) (val)
593#define get_num(num) (num)
595#define NODE_RIPPER NODE_CDECL
597static inline int ripper_is_node_yylval(
VALUE n);
602 if (ripper_is_node_yylval(c)) c =
RNODE(c)->nd_cval;
603 add_mark_object(p, b);
604 add_mark_object(p, c);
609ripper_is_node_yylval(
VALUE n)
614#define value_expr(node) ((void)(node))
615#define remove_begin(node) (node)
616#define void_stmts(p,x) (x)
617#define rb_dvar_defined(id, base) 0
618#define rb_local_defined(id, base) 0
620#define get_id(id) ripper_get_id(id)
622#define get_value(val) ripper_get_value(val)
623#define get_num(num) (int)get_id(num)
627#define method_cond(p,node,loc) (node)
628#define call_bin_op(p, recv,id,arg1,op_loc,loc) dispatch3(binary, (recv), STATIC_ID2SYM(id), (arg1))
629#define match_op(p,node1,node2,op_loc,loc) call_bin_op(0, (node1), idEqTilde, (node2), op_loc, loc)
630#define call_uni_op(p, recv,id,op_loc,loc) dispatch2(unary, STATIC_ID2SYM(id), (recv))
631#define logop(p,id,node1,node2,op_loc,loc) call_bin_op(0, (node1), (id), (node2), op_loc, loc)
633#define new_nil(loc) Qnil
681#define dyna_var(p, id) local_var(p, id)
692# define METHOD_NOT idNOT
694# define METHOD_NOT '!'
697#define idFWD_REST '*'
699#define idFWD_KWREST idPow
701#define idFWD_KWREST 0
703#define idFWD_BLOCK '&'
705#define RE_OPTION_ONCE (1<<16)
706#define RE_OPTION_ENCODING_SHIFT 8
707#define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
708#define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
709#define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
710#define RE_OPTION_MASK 0xff
711#define RE_OPTION_ARG_ENCODING_NONE 32
733#define HERETERM_LENGTH_BITS ((SIZEOF_VALUE - 1) * CHAR_BIT - 1)
740#if HERETERM_LENGTH_BITS < SIZEOF_INT * CHAR_BIT
742# define HERETERM_LENGTH_MAX ((1U << HERETERM_LENGTH_BITS) - 1)
744# define HERETERM_LENGTH_MAX UINT_MAX
747#if HERETERM_LENGTH_BITS < SIZEOF_INT * CHAR_BIT
757#define STRTERM_HEREDOC IMEMO_FL_USER0
779#define yytnamerr(yyres, yystr) (YYSIZE_T)rb_yytnamerr(p, yyres, yystr)
782#define TOKEN2ID(tok) ( \
783 tTOKEN_LOCAL_BEGIN<(tok)&&(tok)<tTOKEN_LOCAL_END ? TOKEN2LOCALID(tok) : \
784 tTOKEN_INSTANCE_BEGIN<(tok)&&(tok)<tTOKEN_INSTANCE_END ? TOKEN2INSTANCEID(tok) : \
785 tTOKEN_GLOBAL_BEGIN<(tok)&&(tok)<tTOKEN_GLOBAL_END ? TOKEN2GLOBALID(tok) : \
786 tTOKEN_CONST_BEGIN<(tok)&&(tok)<tTOKEN_CONST_END ? TOKEN2CONSTID(tok) : \
787 tTOKEN_CLASS_BEGIN<(tok)&&(tok)<tTOKEN_CLASS_END ? TOKEN2CLASSID(tok) : \
788 tTOKEN_ATTRSET_BEGIN<(tok)&&(tok)<tTOKEN_ATTRSET_END ? TOKEN2ATTRSETID(tok) : \
789 ((tok) / ((tok)<tPRESERVED_ID_END && ((tok)>=128 || rb_ispunct(tok)))))
794#define RIPPER_VERSION "0.1.0"
796static inline VALUE intern_sym(
const char *
name);
810#define dispatch0(n) ripper_dispatch0(p, TOKEN_PASTE(ripper_id_, n))
811#define dispatch1(n,a) ripper_dispatch1(p, TOKEN_PASTE(ripper_id_, n), (a))
812#define dispatch2(n,a,b) ripper_dispatch2(p, TOKEN_PASTE(ripper_id_, n), (a), (b))
813#define dispatch3(n,a,b,c) ripper_dispatch3(p, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
814#define dispatch4(n,a,b,c,d) ripper_dispatch4(p, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
815#define dispatch5(n,a,b,c,d,e) ripper_dispatch5(p, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
816#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))
818#define yyparse ripper_yyparse
820#define ID2VAL(id) STATIC_ID2SYM(id)
821#define TOKEN2VAL(t) ID2VAL(TOKEN2ID(t))
822#define KWD2EID(t, v) ripper_new_yylval(p, keyword_##t, get_value(v), 0)
824#define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \
825 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk))
827#define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
834 return params_new(pre_args, opt_args, rest_arg, post_args, kw_args, kw_rest_arg, escape_Qundef(block));
841 add_mark_object(p, kw_args);
842 add_mark_object(p, kw_rest_arg);
843 add_mark_object(p, block);
866 if (!
NIL_P(pre_arg)) {
892 rb_imemo_tmpbuf_set_ptr(tmpbuf, apinfo);
901#define new_hash(p,h,l) rb_ary_new_from_args(0)
914 return dispatch3(hshptn, constant, kw_args, kw_rest_arg);
922 kw_rest_arg = dispatch1(var_field, kw_rest_arg);
929 add_mark_object(p, kw_args);
930 add_mark_object(p, kw_rest_arg);
934#define new_defined(p,expr,loc) dispatch1(defined, (expr))
939#define ID2VAL(id) (id)
940#define TOKEN2VAL(t) ID2VAL(t)
941#define KWD2EID(t, v) keyword_##t
947# define ifndef_ripper(x) (x)
951# define ifndef_ripper(x)
954# define rb_warn0(fmt) WARN_CALL(WARN_ARGS(fmt, 1))
955# define rb_warn1(fmt,a) WARN_CALL(WARN_ARGS(fmt, 2), (a))
956# define rb_warn2(fmt,a,b) WARN_CALL(WARN_ARGS(fmt, 3), (a), (b))
957# define rb_warn3(fmt,a,b,c) WARN_CALL(WARN_ARGS(fmt, 4), (a), (b), (c))
958# define rb_warn4(fmt,a,b,c,d) WARN_CALL(WARN_ARGS(fmt, 5), (a), (b), (c), (d))
959# define rb_warning0(fmt) WARNING_CALL(WARNING_ARGS(fmt, 1))
960# define rb_warning1(fmt,a) WARNING_CALL(WARNING_ARGS(fmt, 2), (a))
961# define rb_warning2(fmt,a,b) WARNING_CALL(WARNING_ARGS(fmt, 3), (a), (b))
962# define rb_warning3(fmt,a,b,c) WARNING_CALL(WARNING_ARGS(fmt, 4), (a), (b), (c))
963# define rb_warning4(fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS(fmt, 5), (a), (b), (c), (d))
964# define rb_warn0L(l,fmt) WARN_CALL(WARN_ARGS_L(l, fmt, 1))
965# define rb_warn1L(l,fmt,a) WARN_CALL(WARN_ARGS_L(l, fmt, 2), (a))
966# define rb_warn2L(l,fmt,a,b) WARN_CALL(WARN_ARGS_L(l, fmt, 3), (a), (b))
967# define rb_warn3L(l,fmt,a,b,c) WARN_CALL(WARN_ARGS_L(l, fmt, 4), (a), (b), (c))
968# define rb_warn4L(l,fmt,a,b,c,d) WARN_CALL(WARN_ARGS_L(l, fmt, 5), (a), (b), (c), (d))
969# define rb_warning0L(l,fmt) WARNING_CALL(WARNING_ARGS_L(l, fmt, 1))
970# define rb_warning1L(l,fmt,a) WARNING_CALL(WARNING_ARGS_L(l, fmt, 2), (a))
971# define rb_warning2L(l,fmt,a,b) WARNING_CALL(WARNING_ARGS_L(l, fmt, 3), (a), (b))
972# define rb_warning3L(l,fmt,a,b,c) WARNING_CALL(WARNING_ARGS_L(l, fmt, 4), (a), (b), (c))
973# define rb_warning4L(l,fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS_L(l, fmt, 5), (a), (b), (c), (d))
975static ID id_warn, id_warning, id_gets, id_assoc;
976# define WARN_S_L(s,l) STR_NEW(s,l)
977# define WARN_S(s) STR_NEW2(s)
978# define WARN_I(i) INT2NUM(i)
979# define WARN_ID(i) rb_id2str(i)
980# define WARN_IVAL(i) i
982# define WARN_ARGS(fmt,n) p->value, id_warn, n, rb_usascii_str_new_lit(fmt)
983# define WARN_ARGS_L(l,fmt,n) WARN_ARGS(fmt,n)
984# ifdef HAVE_VA_ARGS_MACRO
985# define WARN_CALL(...) rb_funcall(__VA_ARGS__)
987# define WARN_CALL rb_funcall
989# define WARNING_ARGS(fmt,n) p->value, id_warning, n, rb_usascii_str_new_lit(fmt)
990# define WARNING_ARGS_L(l, fmt,n) WARNING_ARGS(fmt,n)
991# ifdef HAVE_VA_ARGS_MACRO
992# define WARNING_CALL(...) rb_funcall(__VA_ARGS__)
994# define WARNING_CALL rb_funcall
997# define compile_error ripper_compile_error
999# define WARN_S_L(s,l) s
1002# define WARN_ID(i) rb_id2name(i)
1003# define WARN_IVAL(i) NUM2INT(i)
1004# define PRIsWARN PRIsVALUE
1005# define WARN_ARGS(fmt,n) WARN_ARGS_L(p->ruby_sourceline,fmt,n)
1006# define WARN_ARGS_L(l,fmt,n) p->ruby_sourcefile, (l), (fmt)
1007# define WARN_CALL rb_compile_warn
1008# define WARNING_ARGS(fmt,n) WARN_ARGS(fmt,n)
1009# define WARNING_ARGS_L(l,fmt,n) WARN_ARGS_L(l,fmt,n)
1010# define WARNING_CALL rb_compile_warning
1012# define compile_error parser_compile_error
1020#define WARN_EOL(tok) \
1021 (looking_at_eol_p(p) ? \
1022 (void)rb_warning0("`" tok "' at the end of line without an expression") : \
1030# define YY_CAST(Type, Val) static_cast<Type> (Val)
1031# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
1033# define YY_CAST(Type, Val) ((Type) (Val))
1034# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
1038# if defined __cplusplus
1039# if 201103L <= __cplusplus
1040# define YY_NULLPTR nullptr
1042# define YY_NULLPTR 0
1045# define YY_NULLPTR ((void*)0)
1050#ifdef YYERROR_VERBOSE
1051# undef YYERROR_VERBOSE
1052# define YYERROR_VERBOSE 1
1054# define YYERROR_VERBOSE 1
1059#ifndef YY_YY_Y_TAB_H_INCLUDED
1060# define YY_YY_Y_TAB_H_INCLUDED
1200#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1217# define YYSTYPE_IS_TRIVIAL 1
1218# define YYSTYPE_IS_DECLARED 1
1222#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
1231# define YYLTYPE_IS_DECLARED 1
1232# define YYLTYPE_IS_TRIVIAL 1
1251#ifndef __PTRDIFF_MAX__
1253# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1264#ifdef __INT_LEAST8_MAX__
1266#elif defined YY_STDINT_H
1272#ifdef __INT_LEAST16_MAX__
1274#elif defined YY_STDINT_H
1280#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
1282#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
1283 && UINT_LEAST8_MAX <= INT_MAX)
1285#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
1291#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
1293#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
1294 && UINT_LEAST16_MAX <= INT_MAX)
1296#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
1303# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
1304# define YYPTRDIFF_T __PTRDIFF_TYPE__
1305# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
1306# elif defined PTRDIFF_MAX
1310# define YYPTRDIFF_T ptrdiff_t
1311# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
1313# define YYPTRDIFF_T long
1314# define YYPTRDIFF_MAXIMUM LONG_MAX
1319# ifdef __SIZE_TYPE__
1320# define YYSIZE_T __SIZE_TYPE__
1321# elif defined size_t
1322# define YYSIZE_T size_t
1323# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1325# define YYSIZE_T size_t
1327# define YYSIZE_T unsigned
1331#define YYSIZE_MAXIMUM \
1332 YY_CAST (YYPTRDIFF_T, \
1333 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
1334 ? YYPTRDIFF_MAXIMUM \
1335 : YY_CAST (YYSIZE_T, -1)))
1337#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
1346# if defined YYENABLE_NLS && YYENABLE_NLS
1348# include <libintl.h>
1349# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
1353# define YY_(Msgid) Msgid
1357#ifndef YY_ATTRIBUTE_PURE
1358# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
1359# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
1361# define YY_ATTRIBUTE_PURE
1365#ifndef YY_ATTRIBUTE_UNUSED
1366# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
1367# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
1369# define YY_ATTRIBUTE_UNUSED
1374#if ! defined lint || defined __GNUC__
1375# define YYUSE(E) ((void) (E))
1380#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
1382# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1383 _Pragma ("GCC diagnostic push") \
1384 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
1385 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1386# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1387 _Pragma ("GCC diagnostic pop")
1389# define YY_INITIAL_VALUE(Value) Value
1391#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1392# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1393# define YY_IGNORE_MAYBE_UNINITIALIZED_END
1395#ifndef YY_INITIAL_VALUE
1396# define YY_INITIAL_VALUE(Value)
1399#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
1400# define YY_IGNORE_USELESS_CAST_BEGIN \
1401 _Pragma ("GCC diagnostic push") \
1402 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
1403# define YY_IGNORE_USELESS_CAST_END \
1404 _Pragma ("GCC diagnostic pop")
1406#ifndef YY_IGNORE_USELESS_CAST_BEGIN
1407# define YY_IGNORE_USELESS_CAST_BEGIN
1408# define YY_IGNORE_USELESS_CAST_END
1412#define YY_ASSERT(E) ((void) (0 && (E)))
1414#if ! defined yyoverflow || YYERROR_VERBOSE
1418# ifdef YYSTACK_USE_ALLOCA
1419# if YYSTACK_USE_ALLOCA
1421# define YYSTACK_ALLOC __builtin_alloca
1422# elif defined __BUILTIN_VA_ARG_INCR
1425# define YYSTACK_ALLOC __alloca
1426# elif defined _MSC_VER
1428# define alloca _alloca
1430# define YYSTACK_ALLOC alloca
1431# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1434# ifndef EXIT_SUCCESS
1435# define EXIT_SUCCESS 0
1442# ifdef YYSTACK_ALLOC
1444# define YYSTACK_FREE(Ptr) do { ; } while (0)
1445# ifndef YYSTACK_ALLOC_MAXIMUM
1450# define YYSTACK_ALLOC_MAXIMUM 4032
1453# define YYSTACK_ALLOC YYMALLOC
1454# define YYSTACK_FREE YYFREE
1455# ifndef YYSTACK_ALLOC_MAXIMUM
1456# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1458# if (defined __cplusplus && ! defined EXIT_SUCCESS \
1459 && ! ((defined YYMALLOC || defined malloc) \
1460 && (defined YYFREE || defined free)))
1462# ifndef EXIT_SUCCESS
1463# define EXIT_SUCCESS 0
1467# define YYMALLOC malloc
1468# if ! defined malloc && ! defined EXIT_SUCCESS
1474# if ! defined free && ! defined EXIT_SUCCESS
1482#if (! defined yyoverflow \
1483 && (! defined __cplusplus \
1484 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1485 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1496# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1500# define YYSTACK_BYTES(N) \
1501 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1502 + YYSIZEOF (YYLTYPE)) \
1503 + 2 * YYSTACK_GAP_MAXIMUM)
1505# define YYCOPY_NEEDED 1
1512# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1515 YYPTRDIFF_T yynewbytes; \
1516 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1517 Stack = &yyptr->Stack_alloc; \
1518 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1519 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1525#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1529# if defined __GNUC__ && 1 < __GNUC__
1530# define YYCOPY(Dst, Src, Count) \
1531 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1533# define YYCOPY(Dst, Src, Count) \
1537 for (yyi = 0; yyi < (Count); yyi++) \
1538 (Dst)[yyi] = (Src)[yyi]; \
1551#define YYNTOKENS 154
1557#define YYNSTATES 1251
1560#define YYMAXUTOK 353
1565#define YYTRANSLATE(YYX) \
1566 (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1572 0, 2, 2, 2, 2, 2, 2, 2, 2, 71,
1573 153, 74, 72, 73, 2, 2, 2, 2, 2, 2,
1574 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1575 2, 2, 152, 140, 2, 2, 2, 138, 133, 2,
1576 148, 149, 136, 134, 146, 135, 68, 137, 2, 2,
1577 2, 2, 2, 2, 2, 2, 2, 2, 128, 151,
1578 130, 126, 129, 127, 2, 2, 2, 2, 2, 2,
1579 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1580 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1581 2, 145, 69, 150, 132, 2, 147, 2, 2, 2,
1582 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1583 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1584 2, 2, 2, 143, 131, 144, 141, 2, 88, 89,
1585 90, 91, 75, 76, 77, 78, 94, 95, 83, 82,
1586 79, 80, 81, 86, 87, 92, 93, 97, 84, 85,
1587 96, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1588 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1589 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1590 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1591 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1592 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1593 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1594 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1595 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1596 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1597 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1598 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1599 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1600 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1601 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1602 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1603 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1604 65, 66, 67, 70, 98, 99, 100, 101, 102, 103,
1605 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1606 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1614 0, 1177, 1177, 1177, 1203, 1209, 1216, 1223, 1230, 1236,
1615 1237, 1243, 1256, 1254, 1265, 1276, 1282, 1289, 1296, 1303,
1616 1309, 1314, 1313, 1323, 1323, 1330, 1337, 1347, 1355, 1362,
1617 1370, 1378, 1390, 1402, 1412, 1426, 1427, 1435, 1443, 1452,
1618 1459, 1462, 1469, 1476, 1484, 1491, 1498, 1506, 1513, 1523,
1619 1528, 1537, 1540, 1541, 1545, 1549, 1553, 1558, 1565, 1567,
1620 1557, 1575, 1578, 1585, 1585, 1585, 1591, 1592, 1595, 1596,
1621 1605, 1615, 1625, 1634, 1645, 1652, 1659, 1666, 1673, 1681,
1622 1689, 1696, 1703, 1712, 1713, 1722, 1723, 1732, 1739, 1746,
1623 1753, 1760, 1767, 1774, 1781, 1788, 1795, 1804, 1805, 1814,
1624 1821, 1830, 1837, 1846, 1853, 1860, 1867, 1877, 1884, 1894,
1625 1901, 1908, 1918, 1925, 1932, 1939, 1946, 1953, 1960, 1967,
1626 1974, 1984, 1991, 1994, 2001, 2008, 2017, 2018, 2019, 2020,
1627 2025, 2028, 2035, 2038, 2045, 2045, 2055, 2056, 2057, 2058,
1628 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
1629 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078,
1630 2079, 2080, 2081, 2082, 2083, 2084, 2087, 2087, 2087, 2088,
1631 2088, 2089, 2089, 2089, 2090, 2090, 2090, 2090, 2091, 2091,
1632 2091, 2091, 2092, 2092, 2092, 2093, 2093, 2093, 2093, 2094,
1633 2094, 2094, 2094, 2095, 2095, 2095, 2095, 2096, 2096, 2096,
1634 2096, 2097, 2097, 2097, 2097, 2098, 2098, 2101, 2108, 2115,
1635 2123, 2131, 2139, 2147, 2155, 2162, 2170, 2179, 2188, 2200,
1636 2212, 2224, 2236, 2240, 2244, 2248, 2252, 2256, 2260, 2264,
1637 2268, 2272, 2276, 2280, 2284, 2288, 2289, 2293, 2297, 2301,
1638 2305, 2309, 2313, 2317, 2321, 2325, 2329, 2333, 2333, 2338,
1639 2347, 2353, 2354, 2355, 2356, 2359, 2363, 2370, 2377, 2378,
1640 2382, 2389, 2398, 2403, 2414, 2421, 2447, 2476, 2477, 2480,
1641 2481, 2482, 2486, 2493, 2502, 2510, 2517, 2525, 2533, 2537,
1642 2537, 2574, 2583, 2587, 2593, 2600, 2607, 2614, 2623, 2624,
1643 2627, 2634, 2641, 2650, 2651, 2652, 2653, 2654, 2655, 2656,
1644 2657, 2658, 2659, 2660, 2668, 2667, 2682, 2682, 2689, 2689,
1645 2697, 2705, 2712, 2719, 2726, 2734, 2741, 2748, 2755, 2762,
1646 2762, 2767, 2771, 2775, 2782, 2783, 2792, 2791, 2802, 2813,
1647 2824, 2834, 2845, 2844, 2861, 2860, 2875, 2884, 2929, 2928,
1648 2952, 2951, 2974, 2973, 2997, 3003, 2996, 3023, 3024, 3023,
1649 3049, 3056, 3063, 3070, 3079, 3086, 3092, 3109, 3115, 3121,
1650 3127, 3133, 3139, 3145, 3151, 3157, 3163, 3169, 3175, 3181,
1651 3187, 3202, 3209, 3215, 3222, 3223, 3224, 3227, 3228, 3231,
1652 3232, 3244, 3245, 3254, 3255, 3258, 3266, 3275, 3282, 3291,
1653 3298, 3305, 3312, 3319, 3328, 3336, 3345, 3349, 3353, 3357,
1654 3361, 3367, 3372, 3377, 3381, 3385, 3389, 3393, 3397, 3405,
1655 3409, 3413, 3417, 3421, 3425, 3429, 3433, 3437, 3443, 3444,
1656 3450, 3459, 3471, 3475, 3484, 3486, 3490, 3495, 3501, 3504,
1657 3508, 3512, 3516, 3501, 3540, 3548, 3558, 3563, 3569, 3579,
1658 3593, 3600, 3607, 3616, 3625, 3633, 3641, 3648, 3656, 3664,
1659 3671, 3678, 3691, 3699, 3709, 3710, 3714, 3709, 3731, 3732,
1660 3736, 3731, 3755, 3763, 3770, 3778, 3787, 3799, 3800, 3804,
1661 3810, 3811, 3813, 3814, 3815, 3803, 3828, 3829, 3832, 3833,
1662 3841, 3851, 3852, 3857, 3865, 3869, 3875, 3878, 3887, 3890,
1663 3897, 3900, 3901, 3903, 3904, 3913, 3922, 3927, 3936, 3945,
1664 3950, 3950, 3955, 3961, 3960, 3972, 3977, 3977, 3984, 3993,
1665 3997, 4006, 4010, 4014, 4018, 4022, 4025, 4029, 4038, 4042,
1666 4046, 4050, 4056, 4057, 4066, 4075, 4079, 4083, 4087, 4091,
1667 4095, 4101, 4103, 4112, 4120, 4134, 4135, 4158, 4162, 4168,
1668 4174, 4175, 4184, 4193, 4205, 4217, 4218, 4219, 4220, 4232,
1669 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4262,
1670 4261, 4274, 4284, 4297, 4304, 4311, 4320, 4332, 4335, 4342,
1671 4349, 4352, 4356, 4359, 4366, 4369, 4370, 4373, 4390, 4391,
1672 4392, 4401, 4411, 4420, 4426, 4436, 4442, 4451, 4453, 4462,
1673 4472, 4478, 4487, 4496, 4506, 4512, 4522, 4528, 4538, 4548,
1674 4567, 4573, 4583, 4593, 4634, 4637, 4636, 4653, 4657, 4662,
1675 4666, 4670, 4652, 4691, 4698, 4705, 4712, 4715, 4716, 4719,
1676 4729, 4730, 4731, 4732, 4735, 4745, 4746, 4756, 4757, 4758,
1677 4759, 4762, 4763, 4764, 4765, 4766, 4769, 4770, 4771, 4772,
1678 4773, 4774, 4775, 4778, 4791, 4800, 4807, 4816, 4817, 4821,
1679 4820, 4830, 4838, 4847, 4862, 4877, 4877, 4891, 4895, 4899,
1680 4903, 4907, 4913, 4918, 4923, 4927, 4931, 4935, 4939, 4943,
1681 4947, 4951, 4955, 4959, 4963, 4967, 4971, 4975, 4980, 4986,
1682 4995, 5003, 5011, 5019, 5029, 5030, 5038, 5047, 5055, 5076,
1683 5078, 5091, 5101, 5109, 5119, 5126, 5135, 5142, 5152, 5159,
1684 5168, 5169, 5172, 5180, 5188, 5198, 5208, 5218, 5225, 5234,
1685 5241, 5250, 5251, 5254, 5262, 5272, 5273, 5276, 5286, 5290,
1686 5296, 5301, 5301, 5325, 5326, 5335, 5337, 5360, 5371, 5378,
1687 5386, 5405, 5406, 5407, 5410, 5411, 5412, 5413, 5416, 5417,
1688 5418, 5421, 5422, 5425, 5426, 5429, 5430, 5433, 5434, 5437,
1689 5438, 5441, 5444, 5447, 5450, 5451, 5452, 5455, 5456, 5459,
1694#if YYDEBUG || YYERROR_VERBOSE || 1
1697static const char *
const yytname[] =
1699 "\"end-of-input\"",
"error",
"$undefined",
"\"`class'\"",
1700 "\"`module'\"",
"\"`def'\"",
"\"`undef'\"",
"\"`begin'\"",
1701 "\"`rescue'\"",
"\"`ensure'\"",
"\"`end'\"",
"\"`if'\"",
"\"`unless'\"",
1702 "\"`then'\"",
"\"`elsif'\"",
"\"`else'\"",
"\"`case'\"",
"\"`when'\"",
1703 "\"`while'\"",
"\"`until'\"",
"\"`for'\"",
"\"`break'\"",
"\"`next'\"",
1704 "\"`redo'\"",
"\"`retry'\"",
"\"`in'\"",
"\"`do'\"",
1705 "\"`do' for condition\"",
"\"`do' for block\"",
"\"`do' for lambda\"",
1706 "\"`return'\"",
"\"`yield'\"",
"\"`super'\"",
"\"`self'\"",
"\"`nil'\"",
1707 "\"`true'\"",
"\"`false'\"",
"\"`and'\"",
"\"`or'\"",
"\"`not'\"",
1708 "\"`if' modifier\"",
"\"`unless' modifier\"",
"\"`while' modifier\"",
1709 "\"`until' modifier\"",
"\"`rescue' modifier\"",
"\"`alias'\"",
1710 "\"`defined?'\"",
"\"`BEGIN'\"",
"\"`END'\"",
"\"`__LINE__'\"",
1711 "\"`__FILE__'\"",
"\"`__ENCODING__'\"",
"\"local variable or method\"",
1712 "\"method\"",
"\"global variable\"",
"\"instance variable\"",
1713 "\"constant\"",
"\"class variable\"",
"tLABEL",
"\"integer literal\"",
1714 "\"float literal\"",
"\"rational literal\"",
"\"imaginary literal\"",
1715 "\"char literal\"",
"\"numbered reference\"",
"\"back reference\"",
1716 "\"literal content\"",
"tREGEXP_END",
"'.'",
"\"backslash\"",
1717 "\"escaped space\"",
"\"escaped horizontal tab\"",
1718 "\"escaped form feed\"",
"\"escaped carriage return\"",
1719 "\"escaped vertical tab\"",
"\"unary+\"",
"\"unary-\"",
"\"**\"",
1720 "\"<=>\"",
"\"==\"",
"\"===\"",
"\"!=\"",
"\">=\"",
"\"<=\"",
"\"&&\"",
1721 "\"||\"",
"\"=~\"",
"\"!~\"",
"\"..\"",
"\"...\"",
"\"(..\"",
"\"(...\"",
1722 "\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
"\"&.\"",
"\"::\"",
1723 "\":: at EXPR_BEG\"",
"\"operator-assignment\"",
"\"=>\"",
"\"(\"",
1724 "\"( arg\"",
"\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
1725 "\"**arg\"",
"\"&\"",
"\"->\"",
"\"symbol literal\"",
1726 "\"string literal\"",
"\"backtick literal\"",
"\"regexp literal\"",
1727 "\"word list\"",
"\"verbatim word list\"",
"\"symbol list\"",
1728 "\"verbatim symbol list\"",
"\"terminator\"",
"\"'}'\"",
"tSTRING_DBEG",
1729 "tSTRING_DVAR",
"tLAMBEG",
"tLABEL_END",
"tLOWEST",
"'='",
"'?'",
"':'",
1730 "'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
1731 "tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"','",
1732 "'`'",
"'('",
"')'",
"']'",
"';'",
"' '",
"'\\n'",
"$accept",
"program",
1733 "$@1",
"top_compstmt",
"top_stmts",
"top_stmt",
"begin_block",
1734 "bodystmt",
"$@2",
"compstmt",
"stmts",
"stmt_or_begin",
"$@3",
"stmt",
1735 "$@4",
"command_asgn",
"command_rhs",
"expr",
"@5",
"@6",
"$@7",
1736 "expr_value",
"expr_value_do",
"$@8",
"$@9",
"command_call",
1737 "block_command",
"cmd_brace_block",
"fcall",
"command",
"mlhs",
1738 "mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
"mlhs_post",
1739 "mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fitem",
"undef_list",
1740 "$@10",
"op",
"reswords",
"arg",
"$@11",
"relop",
"rel_expr",
1741 "arg_value",
"aref_args",
"arg_rhs",
"paren_args",
"opt_paren_args",
1742 "opt_call_args",
"call_args",
"command_args",
"$@12",
"block_arg",
1743 "opt_block_arg",
"args",
"mrhs_arg",
"mrhs",
"primary",
"$@13",
"$@14",
1744 "$@15",
"$@16",
"$@17",
"@18",
"@19",
"$@20",
"@21",
"$@22",
"@23",
1745 "@24",
"@25",
"@26",
"primary_value",
"k_begin",
"k_if",
"k_unless",
1746 "k_while",
"k_until",
"k_case",
"k_for",
"k_class",
"k_module",
"k_def",
1747 "k_do",
"k_do_block",
"k_rescue",
"k_ensure",
"k_when",
"k_else",
1748 "k_elsif",
"k_end",
"k_return",
"then",
"do",
"if_tail",
"opt_else",
1749 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"f_rest_marg",
1750 "block_args_tail",
"opt_block_args_tail",
"block_param",
1751 "opt_block_param",
"block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
1752 "lambda",
"@27",
"@28",
"@29",
"@30",
"$@31",
"f_larglist",
1753 "lambda_body",
"do_block",
"block_call",
"method_call",
"brace_block",
1754 "brace_body",
"@32",
"@33",
"@34",
"do_body",
"@35",
"@36",
"@37",
1755 "case_args",
"case_body",
"cases",
"p_case_body",
"@38",
"@39",
"@40",
1756 "$@41",
"$@42",
"$@43",
"p_cases",
"p_top_expr",
"p_top_expr_body",
1757 "p_expr",
"p_as",
"p_alt",
"p_lparen",
"p_lbracket",
"p_expr_basic",
1758 "@44",
"@45",
"@46",
"p_args",
"p_args_head",
"p_args_tail",
1759 "p_args_post",
"p_arg",
"p_kwargs",
"p_kwarg",
"p_kw",
"p_kw_label",
1760 "p_kwrest",
"p_kwnorest",
"p_value",
"p_primitive",
"$@47",
"p_variable",
1761 "p_var_ref",
"p_const",
"opt_rescue",
"exc_list",
"exc_var",
1762 "opt_ensure",
"literal",
"strings",
"string",
"string1",
"xstring",
1763 "regexp",
"words",
"word_list",
"word",
"symbols",
"symbol_list",
1764 "qwords",
"qsymbols",
"qword_list",
"qsym_list",
"string_contents",
1765 "xstring_contents",
"regexp_contents",
"string_content",
"@48",
"$@49",
1766 "@50",
"@51",
"@52",
"@53",
"string_dvar",
"symbol",
"ssym",
"sym",
1767 "dsym",
"numeric",
"simple_numeric",
"user_variable",
"keyword_variable",
1768 "var_ref",
"var_lhs",
"backref",
"superclass",
"$@54",
"f_arglist",
1769 "@55",
"args_tail",
"opt_args_tail",
"f_args",
"args_forward",
1770 "f_bad_arg",
"f_norm_arg",
"f_arg_asgn",
"f_arg_item",
"f_arg",
1771 "f_label",
"f_kw",
"f_block_kw",
"f_block_kwarg",
"f_kwarg",
1772 "kwrest_mark",
"f_no_kwarg",
"f_kwrest",
"f_opt",
"f_block_opt",
1773 "f_block_optarg",
"f_optarg",
"restarg_mark",
"f_rest_arg",
1774 "blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
"singleton",
"$@56",
1775 "assoc_list",
"assocs",
"assoc",
"operation",
"operation2",
"operation3",
1776 "dot_or_colon",
"call_op",
"call_op2",
"opt_terms",
"opt_nl",
"rparen",
1777 "rbracket",
"rbrace",
"trailer",
"term",
"terms",
"none",
YY_NULLPTR
1786 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1787 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1788 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1789 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1790 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1791 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1792 315, 316, 317, 318, 319, 320, 321, 322, 46, 92,
1793 323, 9, 12, 13, 11, 132, 133, 134, 135, 140,
1794 141, 142, 139, 138, 148, 149, 143, 144, 128, 129,
1795 130, 131, 145, 146, 136, 137, 150, 147, 324, 325,
1796 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
1797 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
1798 346, 347, 348, 349, 350, 351, 61, 63, 58, 62,
1799 60, 124, 94, 38, 43, 45, 42, 47, 37, 352,
1800 33, 126, 353, 123, 125, 91, 44, 96, 40, 41,
1805#define YYPACT_NINF (-1040)
1807#define yypact_value_is_default(Yyn) \
1808 ((Yyn) == YYPACT_NINF)
1810#define YYTABLE_NINF (-762)
1812#define yytable_value_is_error(Yyn) \
1813 ((Yyn) == YYTABLE_NINF)
1819 -1040, 114, 3745, -1040, 9167, -1040, -1040, -1040, 8625, -1040,
1820 -1040, -1040, -1040, -1040, -1040, -1040, 9293, 9293, -1040, -1040,
1821 -1040, 5085, 4644, -1040, -1040, -1040, -1040, 384, 8480, -27,
1822 236, 280, -1040, -1040, -1040, 3909, 4791, -1040, -1040, 4056,
1823 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, 11057, 11057,
1824 11057, 11057, 124, 6680, 9419, 9923, 10301, 8909, -1040, 8335,
1825 -1040, -1040, -1040, 282, 316, 388, 413, 996, 11183, 11057,
1826 -1040, 799, -1040, 1065, -1040, 374, -1040, -1040, 367, 549,
1827 495, -1040, 485, 11435, -1040, 520, 1591, 398, 65, 348,
1828 -1040, 11309, 11309, -1040, -1040, 7662, 11557, 11679, 11801, 8189,
1829 9293, 424, 95, -1040, -1040, 544, -1040, -1040, -1040, -1040,
1830 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, 323, 435,
1831 -1040, 570, 518, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1832 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1833 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1834 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1835 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1836 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1837 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1838 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1839 -1040, -1040, 547, -1040, -1040, -1040, 580, 11057, 634, 6831,
1840 11057, 11057, 11057, -1040, 11057, -1040, 613, 4181, 679, -1040,
1841 -1040, 640, 496, 353, 453, 696, 553, 655, -1040, -1040,
1842 7536, -1040, 9293, 9545, -1040, -1040, 7788, -1040, 11309, 863,
1843 -1040, 671, 6982, -1040, 7133, -1040, -1040, 702, 708, 367,
1844 -1040, 531, -1040, 759, 4328, 4328, 551, 9419, -1040, 6680,
1845 713, 799, -1040, 1065, -27, 745, -1040, 1065, -27, 750,
1846 -33, 38, -1040, 679, 765, 38, -1040, -27, 838, 996,
1847 11923, 769, -1040, 536, 562, 605, 659, -1040, -1040, -1040,
1848 -1040, -1040, 600, -1040, 716, 911, 438, -1040, -1040, -1040,
1849 -1040, 843, -1040, -1040, -1040, -1040, -1040, -1040, -1040, 7914,
1850 11309, 11309, 11309, 11309, 9419, 11309, 11309, -1040, -1040, -1040,
1851 824, -1040, -1040, -1040, -1040, -1040, 10427, -1040, 6680, 9038,
1852 794, 10427, -1040, 11057, 11057, 11057, 11057, 11057, -1040, -1040,
1853 11057, 11057, 11057, 11057, 11057, 11057, 11057, 11057, 11057, -1040,
1854 -1040, 11057, 11057, 11057, 11057, 11057, 11057, 11057, 11057, 11057,
1855 11057, -1040, -1040, 12386, 9293, 12476, 5824, 374, 106, 106,
1856 7284, 11309, 7284, 799, -1040, 798, 885, -1040, -1040, 662,
1857 928, 117, 127, 141, 439, 670, 11309, 880, -1040, 832,
1858 701, -1040, -1040, -1040, -1040, 34, 78, 415, 543, 558,
1859 612, 626, 632, 720, -1040, -1040, -1040, 732, -1040, -1040,
1860 -1040, 13736, -1040, -1040, 11183, 11183, -1040, -1040, 585, -1040,
1861 -1040, -1040, 777, 11057, 11057, 9671, -1040, -1040, 12566, 9293,
1862 12656, 11057, 11057, 10049, -1040, -27, 826, -1040, -1040, 11057,
1863 -27, -1040, 836, -27, 842, -1040, 133, -1040, -1040, -1040,
1864 -1040, -1040, 8625, -1040, 11057, 834, 847, 12566, 12656, 11057,
1865 1065, 236, -27, -1040, -1040, 8040, 846, -27, -1040, -1040,
1866 10175, -1040, -1040, 10301, -1040, -1040, -1040, 671, 731, -1040,
1867 -1040, 850, 11923, 12746, 9293, 12836, -1040, -1040, -1040, -1040,
1868 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, 931, 59,
1869 960, 340, 11057, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1870 -1040, -1040, 851, -1040, -1040, -1040, 990, -1040, 990, 11057,
1871 -1040, 855, 857, 963, -1040, -27, 11923, 858, -1040, -1040,
1872 -1040, 966, 887, 3887, -1040, -1040, -1040, 737, 663, -1040,
1873 759, 4622, 4622, 4622, 4622, 4769, 4475, 4622, 4622, 4328,
1874 4328, 849, 849, 3200, 1162, 1162, 886, 436, 436, 759,
1875 759, 759, 1842, 1842, 5232, 4203, 5526, 4350, -1040, 708,
1876 -1040, -27, 866, 588, -1040, 666, -1040, -1040, 4938, 990,
1877 1010, -1040, 5975, 1012, 6428, 990, 54, 990, 1003, 1018,
1878 144, 12926, 9293, 13016, -1040, 374, -1040, 731, -1040, -1040,
1879 -1040, 13106, 9293, 13196, 5824, 11309, -1040, -1040, -1040, -1040,
1880 -1040, -1040, 3529, -1040, 4034, -1040, -1040, -1040, 8625, 11057,
1881 -1040, 11057, 679, -1040, 655, 3369, 4497, -27, 688, 722,
1882 -1040, -1040, -1040, -1040, 9797, -1040, 10049, -1040, -1040, 11309,
1883 4181, -1040, -1040, 708, 708, -1040, -1040, 345, -1040, -1040,
1884 38, 11923, 850, 37, 470, -27, 271, 349, -1040, -1040,
1885 1007, -1040, 487, -1040, 877, -1040, -1040, 491, 884, -1040,
1886 759, -1040, -1040, 893, -1040, -1040, -1040, -1040, 895, 10553,
1887 9419, -1040, 850, 11923, 9419, 11183, 11057, 13286, 9293, 13376,
1888 12319, 918, 11183, 11183, -1040, 824, 889, 727, 9671, 11183,
1889 11183, -1040, -1040, 824, -1040, -1040, -1040, 10679, 738, -1040,
1890 574, -1040, 1033, -1040, -1040, -1040, -1040, -1040, -1040, 1018,
1891 990, -1040, 10805, 990, 72, 235, -27, 156, 312, 7284,
1892 799, 11309, 5824, 897, 470, -1040, -27, 990, 133, 921,
1893 8770, 95, 549, -1040, -1040, -1040, -1040, 11057, 11057, 733,
1894 11057, 11057, -27, 920, 133, -1040, -1040, 350, -1040, -1040,
1895 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1896 939, -1040, 939, 11057, 927, -1040, 850, -1040, 4181, 5379,
1897 5673, -27, 753, 786, -1040, -1040, 2945, 2945, 881, -1040,
1898 356, 631, -1040, 1024, 978, -1040, 952, -1040, -1040, 742,
1899 -1040, -1040, 341, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
1900 -1040, -1040, 11057, -1040, -1040, -1040, -1040, -1040, -1040, 11183,
1901 -1040, -1040, -1040, -1040, -1040, 855, -1040, 989, -1040, -1040,
1902 -1040, 7284, -1040, -1040, -1040, -1040, 7284, 11309, 990, -1040,
1903 -1040, 990, -1040, -1040, 990, -1040, 11057, -1040, 26, -1040,
1904 332, 990, 5824, 799, 990, -1040, -1040, -1040, 2196, 5824,
1905 2402, -1040, -1040, -1040, 11057, -1040, 10049, -1040, 1834, -1040,
1906 1556, 7133, -1040, -1040, 5824, 944, 787, -1040, -1040, -1040,
1907 -1040, 12319, 12200, -1040, 577, 949, -1040, -1040, -1040, 1043,
1908 -1040, 12319, 2945, 2945, 881, 356, 790, 3608, 3608, 4181,
1909 -1040, -1040, 12045, 106, -1040, -1040, 6554, -1040, 106, -1040,
1910 -1040, -1040, -1040, -1040, 10931, 6126, -1040, 990, -1040, -1040,
1911 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, 1151, -1040,
1912 -1040, -1040, -1040, -1040, -1040, -27, -27, -1040, -1040, 973,
1913 -1040, 954, 11057, -1040, 956, 546, 965, 965, -1040, 967,
1914 1049, 968, 1066, -1040, 990, 799, 974, 921, 2402, -1040,
1915 -1040, -1040, -1040, -27, 991, 995, 979, 12167, -1040, 981,
1916 965, 965, -1040, 982, 992, -1040, 999, -1040, -1040, 3,
1917 264, 355, -27, 12286, -1040, 1001, -1040, -1040, -27, 1011,
1918 -1040, 12319, -1040, -1040, 744, -1040, -1040, -1040, -1040, -1040,
1919 -1040, -1040, -1040, -1040, -1040, -27, -27, -27, -27, 1068,
1920 -1040, 743, 198, 203, 213, 5824, 1133, 5975, 3608, 11057,
1921 -1040, 955, -1040, 1151, 1079, -1040, 1022, -27, 1025, -1040,
1922 -1040, -1040, 11057, 2196, -1040, -1040, 714, -1040, -1040, -1040,
1923 -1040, 243, -1040, -1040, 2402, -1040, -1040, 1417, -1040, -1040,
1924 -1040, -1040, 2402, 5824, -27, 291, 7410, 1027, -1040, 12167,
1925 2402, -1040, 1108, 748, 714, -1040, -1040, -1040, 2402, -1040,
1926 1417, -1040, 1089, -1040, 1028, 12319, -1040, 307, 978, 1031,
1927 -1040, 652, -1040, 577, 978, -1040, -1040, 800, -1040, -1040,
1928 -1040, -1040, 248, 13466, 9293, 13556, 1010, -1040, 574, 106,
1929 801, 377, -1040, -1040, -1040, -1040, -1040, -1040, -27, -1040,
1930 1151, -1040, 1097, -1040, -1040, -27, -1040, 1032, 1037, -1040,
1931 1121, 965, -1040, 1040, -1040, 1041, -1040, 1040, 990, 1046,
1932 5824, 7133, -1040, 1069, -1040, 748, -1040, 1051, 1053, -1040,
1933 13646, -1040, 965, 1054, -1040, 1067, 1054, -1040, 542, -1040,
1934 -1040, 12319, 1071, -1040, 1072, 12319, -1040, -1040, -1040, -1040,
1935 -1040, 61, 202, -27, 286, 313, -1040, -1040, -1040, 11309,
1936 11309, 12200, -1040, -1040, 1073, 1074, -1040, 2402, -1040, 1417,
1937 -1040, -1040, 1417, -1040, 1417, -1040, -1040, -1040, -1040, 990,
1938 1048, -1040, 2402, -1040, 1417, -1040, 1075, 1076, -1040, 1417,
1939 -1040, 1417, -1040, -1040, 1089, -1040, 1071, 12319, 12319, 1071,
1940 321, -1040, -1040, -1040, -1040, 1097, 1097, 1040, 1080, 1040,
1941 1040, -1040, -1040, 1054, 1087, 1054, 1054, -1040, -1040, 1071,
1942 -1040, 1074, -1040, 1417, -1040, -1040, -1040, -1040, 1417, -1040,
1943 -1040, -1040, 6277, 1040, 1054, 576, -1040, -1040, -1040, -1040,
1952 2, 0, 0, 1, 0, 362, 363, 364, 0, 355,
1953 356, 357, 360, 358, 359, 361, 350, 351, 352, 353,
1954 373, 279, 279, 637, 636, 638, 639, 749, 0, 749,
1955 0, 0, 641, 640, 642, 731, 733, 633, 632, 732,
1956 635, 627, 628, 629, 630, 578, 647, 648, 0, 0,
1957 0, 0, 0, 0, 306, 761, 761, 95, 326, 598,
1958 598, 600, 602, 0, 0, 0, 0, 0, 0, 0,
1959 3, 747, 6, 9, 35, 40, 52, 67, 279, 66,
1960 0, 83, 0, 87, 97, 0, 61, 235, 250, 0,
1961 304, 0, 0, 63, 63, 747, 0, 0, 0, 0,
1962 315, 68, 324, 293, 294, 577, 579, 295, 296, 297,
1963 299, 298, 300, 576, 617, 618, 575, 625, 643, 644,
1964 301, 0, 302, 71, 5, 8, 176, 187, 177, 200,
1965 173, 193, 183, 182, 203, 204, 198, 181, 180, 175,
1966 201, 205, 206, 185, 174, 188, 192, 194, 186, 179,
1967 195, 202, 197, 196, 189, 199, 184, 172, 191, 190,
1968 171, 178, 169, 170, 166, 167, 168, 126, 128, 127,
1969 161, 162, 157, 139, 140, 141, 148, 145, 147, 142,
1970 143, 163, 164, 149, 150, 154, 158, 144, 146, 136,
1971 137, 138, 151, 152, 153, 155, 156, 159, 160, 165,
1972 131, 133, 28, 129, 130, 132, 0, 0, 0, 0,
1973 0, 0, 0, 598, 0, 274, 0, 257, 284, 81,
1974 278, 761, 0, 643, 644, 0, 302, 761, 725, 82,
1975 749, 79, 0, 761, 449, 78, 749, 750, 0, 0,
1976 23, 247, 0, 10, 0, 350, 351, 318, 450, 0,
1977 229, 0, 315, 230, 220, 221, 312, 0, 21, 0,
1978 0, 747, 17, 20, 749, 85, 16, 308, 749, 0,
1979 754, 754, 258, 0, 0, 754, 723, 749, 0, 0,
1980 0, 93, 354, 0, 103, 104, 111, 428, 622, 621,
1981 623, 620, 0, 619, 0, 0, 0, 585, 594, 590,
1982 596, 626, 56, 241, 242, 757, 758, 4, 759, 748,
1983 0, 0, 0, 0, 0, 0, 0, 365, 454, 443,
1984 72, 458, 323, 366, 458, 439, 0, 99, 0, 91,
1985 88, 0, 57, 0, 0, 0, 0, 0, 253, 254,
1986 0, 0, 0, 0, 218, 219, 0, 0, 0, 251,
1987 252, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1988 0, 743, 744, 0, 761, 0, 0, 62, 0, 0,
1989 0, 0, 0, 747, 334, 748, 0, 384, 383, 0,
1990 0, 643, 644, 302, 121, 122, 0, 0, 124, 651,
1991 0, 643, 644, 302, 342, 196, 189, 199, 184, 166,
1992 167, 168, 126, 127, 721, 344, 720, 0, 80, 746,
1993 745, 0, 325, 580, 0, 0, 134, 728, 312, 285,
1994 730, 281, 0, 0, 0, 0, 275, 283, 0, 761,
1995 0, 0, 0, 0, 276, 749, 0, 317, 280, 679,
1996 749, 270, 761, 749, 761, 269, 749, 322, 55, 25,
1997 27, 26, 0, 319, 0, 0, 0, 0, 0, 0,
1998 19, 0, 749, 310, 15, 748, 84, 749, 307, 313,
1999 756, 755, 259, 756, 261, 314, 724, 0, 110, 626,
2000 101, 96, 0, 0, 761, 0, 327, 429, 604, 624,
2001 607, 605, 599, 581, 582, 601, 583, 603, 0, 0,
2002 0, 0, 0, 760, 7, 29, 30, 31, 32, 33,
2003 53, 54, 0, 455, 454, 73, 0, 459, 0, 0,
2004 36, 289, 0, 39, 288, 749, 0, 89, 100, 51,
2005 41, 49, 0, 262, 284, 207, 37, 0, 302, 58,
2006 227, 234, 236, 237, 238, 245, 246, 239, 240, 216,
2007 217, 243, 244, 749, 231, 232, 233, 222, 223, 224,
2008 225, 226, 255, 256, 734, 736, 735, 737, 448, 279,
2009 446, 749, 761, 734, 736, 735, 737, 447, 279, 0,
2010 761, 375, 0, 374, 0, 0, 0, 0, 332, 0,
2011 312, 0, 761, 0, 63, 340, 121, 122, 123, 649,
2012 338, 0, 761, 0, 0, 0, 345, 741, 742, 347,
2013 734, 735, 279, 42, 262, 208, 48, 215, 0, 0,
2014 727, 0, 286, 282, 761, 734, 735, 749, 734, 735,
2015 726, 316, 751, 264, 271, 266, 273, 321, 24, 0,
2016 248, 11, 34, 0, 761, 214, 22, 86, 18, 309,
2017 754, 0, 94, 738, 109, 749, 734, 735, 430, 608,
2018 0, 584, 0, 587, 0, 592, 589, 0, 0, 593,
2019 228, 452, 456, 0, 372, 453, 460, 438, 292, 0,
2020 0, 98, 92, 0, 0, 0, 0, 0, 761, 0,
2021 0, 0, 0, 0, 445, 76, 0, 451, 271, 0,
2022 0, 268, 444, 74, 267, 305, 367, 761, 761, 567,
2023 761, 376, 761, 330, 378, 64, 377, 331, 469, 0,
2024 0, 369, 0, 0, 738, 311, 749, 734, 735, 0,
2025 0, 0, 0, 121, 122, 125, 749, 0, 749, 655,
2026 0, 440, 69, 135, 729, 287, 277, 0, 0, 451,
2027 0, 0, 749, 761, 749, 260, 102, 451, 431, 609,
2028 613, 614, 615, 606, 616, 586, 588, 595, 591, 597,
2029 761, 70, 761, 0, 290, 38, 90, 50, 263, 734,
2030 735, 749, 734, 735, 561, 565, 0, 0, 0, 506,
2031 500, 503, 559, 0, 59, 486, 488, 490, 493, 540,
2032 545, 546, 547, 550, 551, 552, 553, 554, 556, 555,
2033 557, 558, 0, 47, 212, 46, 213, 77, 752, 0,
2034 44, 210, 45, 211, 75, 568, 569, 761, 570, 368,
2035 370, 0, 12, 14, 574, 371, 0, 0, 0, 379,
2036 381, 0, 65, 470, 0, 336, 0, 462, 0, 335,
2037 451, 0, 0, 0, 0, 451, 343, 722, 678, 0,
2038 678, 348, 441, 442, 0, 265, 272, 320, 678, 610,
2039 749, 0, 419, 418, 0, 291, 451, 548, 549, 122,
2040 563, 0, 0, 502, 0, 0, 505, 428, 562, 0,
2041 60, 0, 543, 544, 0, 492, 491, 0, 0, 249,
2042 43, 209, 0, 0, 572, 573, 0, 382, 0, 328,
2043 329, 471, 333, 463, 0, 0, 337, 0, 650, 339,
2044 685, 682, 681, 680, 683, 691, 700, 679, 0, 712,
2045 701, 716, 715, 711, 677, 749, 749, 684, 686, 687,
2046 689, 663, 693, 698, 761, 704, 761, 761, 709, 663,
2047 714, 663, 0, 661, 0, 0, 663, 655, 678, 432,
2048 435, 611, 417, 749, 0, 687, 402, 695, 696, 761,
2049 761, 761, 707, 402, 402, 400, 422, 457, 461, 749,
2050 520, 508, 749, 509, 515, 0, 535, 598, 749, 526,
2051 531, 534, 528, 530, 538, 753, 560, 487, 489, 541,
2052 542, 564, 499, 496, 598, 749, 749, 749, 749, 0,
2053 571, 0, 643, 644, 302, 0, 761, 0, 0, 0,
2054 464, 761, 341, 0, 395, 387, 389, 749, 392, 385,
2055 652, 654, 0, 0, 670, 692, 0, 658, 719, 702,
2056 703, 0, 660, 659, 0, 673, 713, 0, 675, 717,
2057 346, 656, 0, 0, 749, 0, 0, 0, 420, 0,
2058 408, 410, 0, 694, 0, 397, 399, 398, 0, 413,
2059 0, 415, 0, 507, 518, 0, 501, 513, 524, 510,
2060 516, 0, 504, 527, 533, 539, 537, 0, 494, 495,
2061 497, 498, 312, 0, 761, 0, 761, 13, 761, 0,
2062 478, 481, 484, 485, 465, 467, 468, 466, 749, 394,
2063 0, 688, 0, 705, 662, 749, 690, 663, 663, 699,
2064 704, 761, 718, 663, 710, 663, 687, 663, 0, 0,
2065 0, 0, 433, 0, 421, 706, 401, 402, 402, 312,
2066 0, 697, 761, 402, 708, 402, 402, 426, 749, 424,
2067 427, 0, 521, 522, 511, 0, 517, 536, 532, 525,
2068 529, 738, 311, 749, 734, 735, 566, 380, 472, 0,
2069 0, 482, 386, 388, 390, 393, 653, 0, 666, 0,
2070 668, 657, 0, 674, 0, 671, 676, 349, 434, 0,
2071 0, 612, 0, 405, 0, 407, 738, 311, 396, 0,
2072 414, 0, 411, 416, 0, 423, 519, 0, 0, 514,
2073 451, 473, 479, 480, 483, 0, 0, 663, 663, 663,
2074 663, 437, 436, 402, 402, 402, 402, 425, 523, 512,
2075 474, 391, 667, 0, 664, 669, 672, 406, 0, 403,
2076 409, 412, 0, 663, 402, 761, 665, 404, 476, 477,
2083 -1040, -1040, -1040, 972, -1040, 19, 754, -545, -1040, -51,
2084 -1040, 756, -1040, 68, -1040, -264, -308, -83, -1040, -1040,
2085 -1040, -66, -75, -1040, -1040, -25, -1040, -323, 645, 4,
2086 1126, -154, 7, -26, -1040, -391, 11, 2057, -345, 1127,
2087 -58, -11, -1040, -1040, 2, -1040, 2889, -1040, 1147, -1040,
2088 1411, -1040, 110, 60, 630, -350, 100, -15, -1040, -381,
2089 -205, 39, -1040, -307, -32, -1040, -1040, -1040, -1040, -1040,
2090 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, 32,
2091 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040,
2092 -1040, -1040, -1040, -1040, -1040, 538, -1040, 331, 1177, -364,
2093 -1040, 146, -694, -1040, -1027, -1039, 230, 152, 393, 308,
2094 -1040, 501, -1040, -886, -1040, 74, 389, -1040, -1040, -1040,
2095 -1040, -1040, -1040, -1040, 537, -1040, -1040, -96, 766, -1040,
2096 -1040, -1040, 962, -1040, -1040, -1040, -1040, -688, -1040, 42,
2097 -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -1040, -603,
2098 -1040, -1040, -1040, -1040, 399, -1040, -1040, -1040, -860, -1040,
2099 274, -991, -605, -822, -1040, 206, -1040, 210, 218, -1040,
2100 -643, -1040, 414, -1040, -1040, 208, -1040, -1040, 289, 373,
2101 675, -1040, 1197, 1459, 1483, 1523, -1040, 806, 1936, -1040,
2102 1965, 2010, -1040, -1040, -56, -1040, -1040, -200, -1040, -1040,
2103 -1040, -1040, -1040, -1040, -1040, 5, -1040, -1040, -1040, -1040,
2104 -21, 1967, 1113, 1209, 1908, 1709, -1040, -1040, 352, -1040,
2105 -770, 412, -776, -607, -1001, -829, 207, -915, -287, -62,
2106 275, 249, -1040, -1040, -489, -327, 168, -975, -957, 256,
2107 -879, -1040, -729, -1040, 120, -748, -1040, -1040, -1040, 92,
2108 -393, -1040, -318, -1040, -1040, -86, -1040, -37, 253, 848,
2109 -577, 329, -243, -60, -55, -2
2115 -1, 1, 2, 70, 71, 72, 243, 579, 906, 580,
2116 261, 262, 461, 263, 452, 74, 530, 75, 539, 690,
2117 890, 368, 370, 371, 842, 76, 77, 515, 249, 79,
2118 80, 264, 81, 82, 83, 481, 84, 216, 388, 389,
2119 200, 201, 202, 618, 567, 204, 86, 454, 359, 87,
2120 218, 269, 535, 568, 702, 440, 441, 231, 232, 220,
2121 426, 572, 523, 524, 88, 366, 268, 467, 639, 287,
2122 719, 589, 732, 730, 604, 606, 739, 740, 957, 251,
2123 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2124 321, 324, 707, 831, 722, 836, 837, 675, 252, 582,
2125 715, 838, 839, 380, 1025, 1026, 1027, 1028, 1136, 1061,
2126 963, 871, 872, 964, 1148, 1149, 486, 487, 658, 758,
2127 868, 1055, 959, 1132, 325, 101, 102, 322, 512, 513,
2128 672, 770, 516, 517, 676, 772, 848, 723, 1107, 720,
2129 843, 911, 1018, 1211, 1230, 1242, 1250, 1099, 1100, 1078,
2130 795, 796, 897, 898, 797, 882, 884, 881, 982, 983,
2131 984, 1152, 985, 988, 989, 990, 991, 992, 993, 798,
2132 799, 887, 800, 801, 802, 708, 827, 903, 833, 103,
2133 104, 105, 106, 107, 108, 109, 498, 662, 110, 500,
2134 111, 112, 499, 501, 292, 295, 296, 492, 660, 659,
2135 759, 869, 961, 1056, 763, 113, 114, 293, 115, 116,
2136 117, 223, 224, 120, 225, 226, 600, 731, 859, 860,
2137 1114, 1034, 935, 443, 937, 938, 1126, 940, 956, 942,
2138 943, 968, 969, 944, 945, 946, 947, 948, 972, 973,
2139 949, 950, 951, 952, 953, 1037, 407, 605, 274, 444,
2140 228, 123, 643, 570, 609, 603, 411, 307, 436, 437,
2141 697, 886, 472, 583, 375, 266
2149 124, 291, 260, 365, 294, 584, 412, 235, 367, 367,
2150 203, 308, 367, 205, 571, 410, 309, 240, 841, 372,
2151 215, 215, 434, 125, 536, 282, 369, 752, 474, 373,
2152 203, 844, 476, 205, 89, 308, 89, 1005, 1007, 581,
2153 630, 405, 598, 302, 623, 569, 301, 578, 222, 222,
2154 749, 282, 623, 272, 276, 221, 221, 330, 374, 737,
2155 265, 203, -107, 320, 282, 282, 282, 529, 281, 1124,
2156 73, 1150, 73, 1175, -116, 1006, 1008, 1057, 757, 627,
2157 630, 714, 234, 1173, 955, 89, 89, 794, 934, 283,
2158 934, 652, 960, 612, 270, 495, 497, -116, 934, 1029,
2159 222, 203, -637, 889, 215, 462, 613, 616, 227, 227,
2160 569, 1144, 578, 470, 3, 283, 219, 229, 1116, 581,
2161 471, 317, 267, 222, 222, 664, 237, 222, 379, 390,
2162 390, -637, 222, -354, 655, 682, 430, 1116, 319, 221,
2163 644, 974, -112, 877, 878, 1116, -636, 271, 275, 850,
2164 529, 529, -113, 446, 1117, 448, 237, 422, 260, 855,
2165 1206, -354, -354, -107, 1209, 458, -120, 644, 1129, -119,
2166 315, 316, 914, 1117, 525, -636, 1231, 305, 665, 306,
2167 256, -115, 1054, -107, 473, -734, -107, 854, 934, 1173,
2168 -107, 471, 227, 456, 1029, 1109, 1103, 485, 1042, 1043,
2169 408, 308, 1124, 1150, 876, 305, 465, 306, 260, -734,
2170 -354, -112, -116, 883, -116, -118, -113, 1229, -107, 427,
2171 -734, 1065, 1066, 1067, 464, 427, -120, 367, 367, 367,
2172 367, 445, 510, 511, 215, 1144, 215, 215, 318, 434,
2173 124, 89, 726, 630, 505, 506, 507, 508, 282, 999,
2174 1000, 936, 736, 623, 480, 623, 735, 305, 479, 306,
2175 -118, -119, 222, -103, 222, 222, 265, 1116, 222, 221,
2176 222, 221, 442, -104, 89, 644, 89, 260, 979, 981,
2177 238, 1029, 241, 1029, 1116, 644, 237, -111, 367, 89,
2178 -110, 89, 776, 593, 981, 981, -106, 282, 663, -115,
2179 663, 520, -106, 595, 1118, 586, 531, 917, 234, 319,
2180 73, 1214, 283, 308, 954, 1125, 1074, 623, 1002, 585,
2181 1130, 587, 227, 1118, 227, 460, -117, 1105, 504, 978,
2182 435, 1138, 438, 1106, -114, 265, 588, -117, 781, 1145,
2183 527, 89, 222, 222, 222, 222, 89, 222, 222, -112,
2184 -735, -112, 931, -118, -113, -118, -113, -114, 222, 1154,
2185 89, 283, 445, 537, -120, 522, -120, 576, 215, 569,
2186 522, 578, 817, 1181, -108, -105, 932, 73, 1079, 242,
2187 824, -109, 509, -735, 813, 815, 1029, 1029, 1084, 531,
2188 531, 820, 822, 317, 1198, 994, 222, -106, 89, -119,
2189 826, -119, 89, 222, 89, 1076, 668, 755, 994, 994,
2190 1075, 315, 316, 576, 1131, 1101, 361, -106, 222, 746,
2191 -106, 529, -645, 244, -106, 577, 1115, 445, 529, 529,
2192 1090, 1091, 576, 215, 297, 529, 529, -115, 894, -115,
2193 427, 638, 427, 880, 362, 363, 537, 537, 1218, -112,
2194 282, 689, -645, 1155, 203, 889, 480, 205, -108, 669,
2195 576, 222, 766, 1224, -117, -731, -117, 766, 298, -103,
2196 1153, -84, -114, 630, -114, -108, -105, 889, -105, -112,
2197 338, 339, 445, -638, 915, 623, 895, 576, 215, 896,
2198 577, -98, 361, 364, 282, -108, -105, 89, -108, -105,
2199 480, -524, -108, -105, 488, 496, -749, -631, 1128, 237,
2200 318, 900, -638, 333, 283, 233, 222, 624, 577, 729,
2201 362, 409, 738, 1171, 615, 617, 716, 349, 350, 994,
2202 477, 710, 236, 712, -646, -631, -631, 237, -311, 1015,
2203 299, 615, 617, 970, 1017, 577, 1153, 1120, 746, 1001,
2204 1153, 1248, -646, 488, 695, 529, 754, 488, 283, 490,
2205 491, -113, 650, 703, 361, 300, -311, -311, 981, 645,
2206 427, 941, 356, 357, 358, 1120, 704, 323, 709, -113,
2207 1039, -104, -731, 966, -631, 1189, 1210, -731, 835, 830,
2208 445, 830, 362, 428, 994, 576, 215, 742, 1040, 361,
2209 445, 718, 1228, 1153, 361, 576, 215, 743, 490, 491,
2210 704, -639, 490, 491, 89, -311, 89, 415, -735, 282,
2211 203, 326, 427, 205, 222, 756, -641, 362, 457, 694,
2212 -643, 327, 362, 483, 222, 986, 89, 222, 701, 765,
2213 -639, 429, 704, 768, -120, 862, 331, 78, 367, 78,
2214 459, 282, 432, 577, 926, -641, 60, 480, -643, -643,
2215 531, 78, 78, 577, -111, 853, 488, 531, 531, 414,
2216 852, 222, 701, -644, 531, 531, 429, -119, 851, -120,
2217 -640, 484, 861, 283, 459, 930, 445, 699, 1204, 987,
2218 418, 576, 215, 416, -642, 237, -732, -110, 78, 78,
2219 -631, -644, -644, 694, 701, 828, 834, -643, 840, -640,
2220 840, -119, 89, 78, -115, 283, 89, 537, 488, 489,
2221 222, 490, 491, -642, 537, 537, 753, -302, 236, -631,
2222 361, 537, 537, 970, -106, 1168, 78, 78, -634, 423,
2223 78, 970, 203, 970, 1163, 78, 522, 829, 775, 577,
2224 -644, 427, 777, 830, 367, -302, -302, 1123, 362, 591,
2225 1127, 89, 415, 222, 89, 700, -634, -634, 873, 361,
2226 873, 908, 925, 490, 491, -749, 1157, 644, 1085, 424,
2227 905, 1143, 488, 1146, 237, 907, 425, 750, -634, -120,
2228 753, 926, -117, 918, 531, 431, 1086, 362, 601, -312,
2229 607, 433, 814, 816, -302, 361, 691, 592, 967, 821,
2230 823, 361, -108, -732, -115, -634, 361, -634, -732, 453,
2231 977, 751, 930, 931, 696, 904, 819, -312, -312, 608,
2232 892, 893, 864, 362, 687, 493, 333, 490, 491, 362,
2233 1093, 1169, 1170, 488, 362, 1140, 602, 932, -117, 677,
2234 230, 537, 699, -114, 78, 1016, 233, 814, 816, -114,
2235 821, 823, 463, 89, 1021, 970, 488, 970, 89, 222,
2236 282, -83, 970, -105, 970, 78, -312, 78, 78, -115,
2237 696, 78, 688, 78, 89, 700, 819, 78, 1094, 78,
2238 1217, 89, 1219, 602, 478, 1051, 493, 1220, 490, 491,
2239 469, 619, 78, 89, 78, 1223, 89, 1225, 696, 475,
2240 705, 970, -117, -114, 1226, 482, 713, 449, 717, 493,
2241 502, 490, 491, -738, 1157, 1095, 333, 450, 451, 901,
2242 514, 1081, 596, 596, 1011, 282, 597, 879, 89, -749,
2243 528, 590, 1038, 237, 1038, 1038, 1243, 89, 1087, 503,
2244 305, 1244, 306, 594, 78, 78, 78, 78, 78, 78,
2245 78, 78, 599, 333, 1096, -738, 1098, 1038, 1038, 1038,
2246 830, 78, 721, 78, 901, 632, 78, 488, 641, 696,
2247 346, 347, 634, 354, 355, 356, 357, 358, 636, 696,
2248 975, 642, -98, -738, -738, 671, 651, 488, 967, 1063,
2249 674, -284, 967, 679, 683, 1133, 967, 680, 967, 78,
2250 684, 78, 698, 685, 834, 78, 78, 78, 706, 840,
2251 354, 355, 356, 357, 358, 711, 488, 282, 718, 767,
2252 494, 78, 490, 491, 696, 721, 769, 771, 971, 818,
2253 -738, -285, -738, 696, 885, -734, 812, 89, 830, 89,
2254 661, 845, 490, 491, 849, 41, 42, 43, 44, 78,
2255 78, 760, 761, 803, 762, 939, 866, 939, 856, 858,
2256 870, 46, 47, -286, 78, 939, 888, 965, 889, 666,
2257 1190, 490, 491, 891, 447, 89, 367, 367, 89, 902,
2258 -287, 1135, 445, 995, 709, 784, 840, 576, 215, 1032,
2259 1033, 1046, 1036, 1212, 1213, 310, 311, 312, 313, 314,
2260 78, 1041, 466, 1044, 1047, 119, 468, 119, 1049, 1038,
2261 1052, 1059, 1058, 976, 1092, 1060, 222, 1064, 1068, 78,
2262 967, 920, 967, 921, 922, 923, 924, 967, 1070, 967,
2263 1038, 1147, 829, 921, 922, 923, 924, 1080, 696, 920,
2264 1072, 921, 922, 923, 924, 577, 1122, 1083, 1134, 803,
2265 803, 1122, 89, 89, 1139, 939, 119, 119, 1110, 909,
2266 285, 1112, 910, 1040, 1151, 912, 967, 1156, 1177, 100,
2267 975, 100, 916, 1179, 1122, 919, 1182, 1184, 975, 1191,
2268 975, 1245, 1222, 100, 100, 1188, 285, 1192, 1023, 1194,
2269 1199, 222, 222, 920, 1121, 921, 922, 923, 924, 382,
2270 392, 392, 392, 1201, 455, 646, 976, 1207, 1208, 1215,
2271 1216, 648, 377, -734, -735, 394, 1233, 78, 971, 78,
2272 100, 100, 1142, 1238, 360, 696, 971, 78, 971, 333,
2273 939, 885, 741, 840, 1167, 100, 832, 78, 1022, 78,
2274 78, 939, 1023, 1108, 803, 803, 346, 347, 1024, 939,
2275 696, 696, 1174, 962, 803, 803, 803, 965, 100, 100,
2276 803, 803, 100, 874, 89, 965, 996, 100, 1227, 863,
2277 673, 1069, 1071, 631, 78, 1050, 518, 1249, 633, 1158,
2278 998, 635, 1102, 1159, 637, 353, 354, 355, 356, 357,
2279 358, 1160, 413, 997, 1166, 1097, 667, 976, 406, 1053,
2280 647, 1119, 975, 1141, 975, 649, 1137, 1082, 0, 975,
2281 0, 975, 119, 0, 0, 78, 0, 0, 0, 78,
2282 78, 0, 0, 78, 0, 0, 0, 78, 78, 0,
2283 0, 0, 0, 0, 78, 78, 0, 0, 0, 0,
2284 0, 0, 0, 0, 0, 119, 803, 119, 975, 0,
2285 971, 1045, 971, 1048, 803, 804, 0, 971, 0, 971,
2286 119, 0, 119, 681, 78, 0, 78, 78, 0, 0,
2287 0, 0, 0, 0, 939, 0, 100, 0, 0, 0,
2288 0, 803, 0, 285, 0, 0, 0, 0, 0, 965,
2289 0, 1205, 0, 0, 0, 0, 971, 100, 0, 100,
2290 100, 0, 0, 100, 0, 100, 696, 0, 0, 100,
2291 0, 100, 119, 0, 0, 0, 0, 119, 0, 0,
2292 0, 0, 0, 0, 100, 0, 100, 0, 0, 0,
2293 0, 119, 285, 0, 0, 1193, 1195, 0, 803, 0,
2294 0, 1200, 0, 1202, 1203, 0, 0, 0, 0, 1187,
2295 0, 804, 804, 0, 78, 0, 0, 273, 0, 920,
2296 0, 921, 922, 923, 924, 925, 78, 0, 0, 119,
2297 0, 78, 78, 119, 0, 119, 100, 100, 100, 100,
2298 100, 100, 100, 100, 926, 0, 0, 78, 0, 0,
2299 0, 0, 0, 100, 78, 100, 0, 0, 100, 0,
2300 0, 0, 0, 0, 0, 0, 78, 0, 928, 78,
2301 1221, 0, 0, 0, 803, 930, 931, 0, 803, 1178,
2302 1180, 1237, 1239, 1240, 1241, 1183, 0, 1185, 0, 1186,
2303 0, 100, 0, 100, 803, 0, 0, 100, 100, 100,
2304 932, 78, 1247, 0, 0, 0, 804, 804, 0, 0,
2305 78, 0, 0, 100, 0, 0, 804, 804, 804, 0,
2306 0, 0, 804, 804, 0, 0, 0, 0, 119, 0,
2307 803, 803, 0, 0, 0, 0, 857, 0, 0, 0,
2308 0, 100, 100, 0, 0, 285, 0, 0, 0, 0,
2309 865, 0, 867, 0, 0, 0, 100, 0, 920, 0,
2310 921, 922, 923, 924, 925, 0, 332, 0, 417, 0,
2311 0, 419, 420, 421, 0, 0, 0, 0, 0, 1232,
2312 1234, 1235, 1236, 926, 0, 0, 0, 0, 0, 285,
2313 0, 0, 100, 0, 0, 0, 0, 0, 0, 0,
2314 0, 0, 0, 0, 0, 1246, 0, 928, 804, 0,
2315 78, 100, 78, 929, 930, 931, 804, 0, 333, 334,
2316 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2317 345, 0, 0, 0, 0, 346, 347, 0, 0, 932,
2318 0, 0, 933, 804, 0, 119, 0, 119, 78, 0,
2319 0, 78, 0, 0, 0, 0, 0, 0, 0, 237,
2320 0, 122, 0, 122, 0, 0, 0, 119, 348, 0,
2321 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2322 0, 0, 0, 0, 0, 0, 0, 521, 0, 78,
2323 0, 0, 534, 0, 1003, 0, 0, 0, 0, 0,
2324 804, 0, 0, 0, 0, 0, 0, 0, 0, 100,
2325 0, 100, 122, 122, 285, 0, 286, 0, 0, 100,
2326 0, 0, 0, 0, 0, 78, 78, 0, 0, 100,
2327 0, 100, 100, 1030, 1031, 0, 0, 0, 0, 0,
2328 0, 0, 286, 119, 0, 0, 285, 119, 0, 0,
2329 0, 0, 0, 811, 0, 383, 393, 393, 0, 0,
2330 0, 0, 0, 0, 78, 78, 100, 0, 0, 0,
2331 0, 0, 0, 0, 0, 0, 804, 1073, 0, 0,
2332 804, 0, 0, 0, 0, 620, 622, 0, 0, 0,
2333 0, 0, 119, 0, 273, 119, 804, 0, 0, 0,
2334 0, 0, 0, 1088, 1089, 0, 0, 100, 0, 0,
2335 0, 100, 100, 0, 0, 100, 0, 0, 0, 100,
2336 100, 0, 0, 0, 0, 1111, 100, 100, 0, 0,
2337 0, 622, 804, 804, 273, 0, 920, 78, 921, 922,
2338 923, 924, 925, 0, 0, 0, 0, 0, 0, 811,
2339 811, 0, 0, 0, 0, 0, 100, 0, 100, 100,
2340 121, 926, 121, 0, 0, 0, 0, 0, 122, 333,
2341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2342 678, 0, 0, 0, 0, 928, 346, 347, 0, 0,
2343 0, 929, 930, 931, 119, 0, 0, 0, 0, 119,
2344 0, 122, 0, 122, 0, 0, 1172, 0, 0, 0,
2345 0, 121, 121, 1176, 0, 119, 122, 932, 122, 118,
2346 933, 118, 119, 351, 352, 353, 354, 355, 356, 357,
2347 358, 0, 958, 0, 119, 0, 0, 119, 0, 286,
2348 0, 0, 0, 0, 811, 811, 100, 0, 0, 0,
2349 0, 0, 0, 0, 811, 811, 811, 0, 100, 0,
2350 811, 811, 0, 100, 100, 1013, 0, 0, 122, 119,
2351 118, 118, 0, 122, 284, 0, 0, 0, 119, 100,
2352 744, 0, 745, 0, 0, 0, 100, 122, 286, 0,
2353 538, 0, 0, 0, 0, 622, 0, 273, 100, 0,
2354 284, 100, 0, 0, 0, 0, 0, 0, 0, 85,
2355 0, 85, 0, 381, 391, 391, 391, 0, 0, 0,
2356 0, 0, 0, 0, 0, 122, 0, 0, 0, 122,
2357 392, 122, 0, 100, 0, 0, 0, 0, 0, 0,
2358 774, 0, 100, 0, 0, 0, 811, 0, 0, 0,
2359 0, 0, 0, 0, 811, 0, 0, 0, 0, 622,
2360 85, 85, 0, 0, 0, 0, 0, 121, 825, 0,
2361 0, 0, 0, 538, 538, 0, 0, 0, 119, 0,
2362 119, 811, 0, 847, 0, 0, 0, 0, 0, 0,
2363 0, 0, 0, 0, 0, 0, 0, 0, 0, 805,
2364 121, 0, 121, 378, 0, 0, 0, 0, 0, 0,
2365 0, 0, 0, 0, 0, 121, 119, 121, 0, 119,
2366 0, 0, 392, 806, 122, 0, 118, 0, 0, 0,
2367 0, 0, 0, 0, 875, 0, 0, 0, 811, 0,
2368 0, 286, 100, 0, 100, 0, 0, 0, 0, 0,
2369 0, 0, 0, 0, 0, 0, 0, 0, 0, 118,
2370 0, 118, 0, 807, 0, 0, 0, 121, 0, 0,
2371 0, 0, 121, 0, 118, 0, 118, 0, 0, 0,
2372 100, 0, 0, 100, 0, 286, 121, 0, 0, 121,
2373 0, 0, 0, 119, 119, 805, 805, 284, 920, 0,
2374 921, 922, 923, 924, 925, 0, 0, 913, 0, 0,
2375 0, 0, 0, 0, 811, 0, 85, 0, 811, 806,
2376 806, 100, 0, 926, 121, 0, 118, 273, 121, 0,
2377 121, 118, 0, 0, 811, 0, 0, 927, 0, 0,
2378 0, 122, 0, 122, 0, 118, 284, 928, 0, 85,
2379 0, 85, 0, 929, 930, 931, 0, 100, 100, 807,
2380 807, 0, 0, 122, 85, 0, 85, 0, 0, 0,
2381 811, 811, 121, 121, 0, 1020, 0, 0, 0, 932,
2382 0, 0, 933, 118, 0, 0, 0, 118, 0, 118,
2383 805, 805, 0, 0, 0, 0, 100, 100, 0, 0,
2384 805, 805, 805, 1035, 0, 119, 805, 805, 0, 0,
2385 286, 0, 0, 0, 806, 806, 85, 0, 0, 764,
2386 0, 85, 0, 121, 806, 806, 806, 0, 0, 0,
2387 806, 806, 0, 0, 0, 85, 0, 0, 532, 122,
2388 0, 0, 286, 122, 538, 0, 0, 0, 0, 0,
2389 0, 538, 538, 0, 807, 807, 0, 0, 538, 538,
2390 0, 0, 0, 0, 807, 807, 807, 0, 0, 100,
2391 807, 807, 0, 85, 0, 0, 0, 85, 0, 85,
2392 1104, 0, 118, 0, 0, 0, 0, 0, 122, 0,
2393 0, 122, 805, 1113, 0, 0, 0, 0, 0, 284,
2394 805, 0, 0, 0, 920, 0, 921, 922, 923, 924,
2395 925, 0, 0, 0, 0, 0, 806, 0, 0, 0,
2396 0, 532, 532, 0, 806, 0, 0, 805, 0, 926,
2397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2398 121, 0, 121, 284, 0, 0, 0, 0, 0, 0,
2399 0, 806, 0, 928, 0, 0, 807, 0, 0, 929,
2400 930, 931, 121, 0, 807, 0, 0, 0, 0, 0,
2401 0, 0, 85, 0, 0, 0, 0, 0, 538, 0,
2402 0, 0, 0, 0, 805, 932, 0, 0, 933, 0,
2403 122, 807, 0, 0, 0, 122, 0, 0, 0, 118,
2404 0, 118, 0, 0, 0, 0, 0, 0, 806, 0,
2405 0, 122, 0, 0, 0, 0, 0, 0, 122, 0,
2406 0, 118, 0, 0, 0, 0, 0, 0, 0, 0,
2407 122, 0, 0, 122, 0, 0, 0, 0, 121, 0,
2408 0, 0, 121, 121, 0, 0, 0, 0, 807, 0,
2409 121, 121, 0, 0, 0, 0, 0, 121, 121, 0,
2410 805, 1014, 0, 0, 805, 122, 0, 0, 284, 0,
2411 0, 0, 0, 0, 122, 0, 808, 0, 0, 0,
2412 805, 0, 0, 0, 806, 0, 0, 121, 806, 85,
2413 121, 85, 0, 0, 0, 0, 0, 118, 0, 0,
2414 284, 118, 0, 0, 806, 809, 0, 0, 0, 0,
2415 0, 85, 0, 0, 0, 0, 805, 805, 0, 0,
2416 0, 0, 0, 0, 807, 0, 393, 0, 807, 0,
2417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2418 806, 806, 0, 0, 807, 0, 118, 0, 0, 118,
2419 810, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2421 0, 0, 808, 808, 122, 0, 122, 121, 0, 0,
2422 807, 807, 0, 0, 0, 0, 0, 85, 0, 121,
2423 0, 85, 532, 0, 121, 0, 0, 0, 0, 532,
2424 532, 809, 809, 0, 0, 0, 532, 532, 0, 0,
2425 121, 0, 122, 0, 0, 122, 0, 121, 393, 0,
2426 0, 0, 0, 0, 0, 0, 0, 0, 0, 121,
2427 0, 0, 121, 0, 0, 0, 85, 0, 0, 85,
2428 0, 0, 0, 0, 0, 0, 810, 810, 118, 0,
2429 0, 0, 0, 118, 0, 0, 0, 0, 0, 0,
2430 0, 0, 0, 0, 121, 0, 0, 808, 808, 118,
2431 0, 0, 0, 121, 0, 0, 118, 808, 808, 808,
2432 0, 0, 0, 808, 808, 0, 0, 0, 118, 122,
2433 122, 118, 0, 0, 0, 0, 809, 809, 0, 0,
2434 0, 0, 0, 0, 0, 0, 809, 809, 809, 0,
2435 0, 0, 809, 809, 0, 0, 0, 0, 0, 1012,
2436 0, 0, 0, 118, 0, 0, 532, 0, 0, 0,
2437 0, 0, 118, 0, 0, 0, 0, 0, 85, 0,
2438 0, 810, 810, 85, 0, 0, 0, 0, 0, 0,
2439 0, 810, 810, 810, 0, 217, 217, 810, 810, 85,
2440 0, 0, 0, 0, 0, 0, 85, 0, 0, 808,
2441 0, 0, 0, 121, 0, 121, 0, 808, 85, 0,
2442 0, 85, 0, 0, 391, 0, 0, 250, 253, 254,
2443 255, 0, 0, 0, 217, 217, 0, 0, 809, 0,
2444 0, 122, 0, 0, 808, 0, 809, 303, 304, 1010,
2445 0, 121, 0, 85, 121, 0, 0, 0, 0, 0,
2446 0, 0, 85, 0, 0, 0, 0, 0, 23, 24,
2447 25, 26, 118, 809, 118, 0, 0, 0, 0, 217,
2448 0, 0, 0, 810, 32, 33, 34, 0, 0, 0,
2449 0, 810, 0, 0, 41, 42, 43, 44, 45, 0,
2450 0, 808, 0, 0, 0, 0, 0, 0, 0, 0,
2451 118, 0, 0, 118, 0, 0, 391, 0, 810, 0,
2452 0, 0, 0, 0, 0, 0, 0, 0, 121, 121,
2453 809, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2454 0, 0, 0, 0, 0, 792, 59, 60, 61, 62,
2455 63, 64, 65, 66, 0, 0, 0, 0, 0, 0,
2456 0, 0, 85, 0, 85, 0, 0, 0, 0, 0,
2457 0, 0, 0, 0, 279, 810, 0, 808, 0, 0,
2458 0, 808, 0, 0, 0, 0, 217, 118, 118, 217,
2459 217, 217, 0, 303, 0, 0, 0, 808, 0, 0,
2460 85, 0, 0, 85, 0, 0, 809, 0, 0, 217,
2461 809, 217, 217, 0, 0, 0, 0, 0, 0, 0,
2462 0, 0, 0, 0, 0, 0, 809, 0, 0, 0,
2463 0, 0, 0, 808, 808, 0, 0, 0, 0, 0,
2464 121, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2465 0, 810, 0, 0, 0, 810, 0, 0, 0, 0,
2466 0, 0, 809, 809, 0, 0, 0, 0, 0, 0,
2467 0, 810, 0, 0, 0, 0, 0, 85, 85, 0,
2468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2469 0, 0, 0, 0, 0, 0, 0, 0, 0, 118,
2470 0, 0, 0, 0, 0, 217, 0, 810, 810, 0,
2471 533, 0, 540, 541, 542, 543, 544, 0, 0, 545,
2472 546, 547, 548, 549, 550, 551, 552, 553, 0, 0,
2473 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
2474 0, 0, 0, 217, 0, 0, 0, 0, 0, 0,
2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, 0, 0, 0, 0, 333, 334, 335,
2477 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
2478 0, 0, 0, 0, 346, 347, 0, 0, 0, 85,
2479 0, 0, 0, 614, 614, 0, 0, 0, 0, 0,
2480 0, 0, 614, 217, 217, 0, 0, 0, 217, 0,
2481 614, 614, 217, 0, 0, 0, 0, 348, 255, 349,
2482 350, 351, 352, 353, 354, 355, 356, 357, 358, 0,
2483 0, 0, 0, 640, 0, 0, 0, 0, 614, 0,
2484 0, 0, 0, 237, 0, 0, 0, 0, 0, 217,
2485 0, 0, 217, 0, 0, 0, 0, 0, 0, -738,
2486 0, 0, 0, 217, 0, 0, 0, -738, -738, -738,
2487 0, 0, -738, -738, -738, 0, -738, 0, 0, 0,
2488 0, 670, 0, 0, -738, -738, -738, -738, -738, 0,
2489 0, 0, 0, 0, 0, 0, -738, -738, 217, -738,
2490 -738, -738, -738, -738, 0, 0, 0, 0, 0, 0,
2491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2492 0, 0, 0, 0, 0, 0, 0, -738, 0, 0,
2493 0, 0, 0, 0, 0, 0, -738, -738, -738, -738,
2494 -738, -738, -738, -738, -738, -738, -738, -738, -738, 0,
2495 0, 0, 0, -738, -738, -738, -738, 0, 747, -738,
2496 0, 0, 0, 0, 0, -738, 0, 0, 0, 0,
2497 0, 217, 0, 0, 0, 0, 0, 0, 0, -738,
2498 0, 217, -738, 0, 0, -116, -738, -738, -738, -738,
2499 -738, -738, -738, -738, -738, -738, -738, -738, 217, 0,
2500 217, 0, -738, -738, -738, -738, 0, 0, -738, -738,
2501 -738, 0, -738, 217, 0, 217, 0, 0, 0, -761,
2502 0, 0, 0, 0, 0, 0, 0, -761, -761, -761,
2503 0, 0, -761, -761, -761, 0, -761, 0, 0, 0,
2504 0, 0, 0, 0, -761, -761, -761, 0, 0, 0,
2505 0, 0, 0, 0, 0, 0, -761, -761, 217, -761,
2506 -761, -761, -761, -761, 614, 778, 0, 217, 0, 0,
2507 0, 614, 614, 0, 0, 0, 0, 217, 614, 614,
2508 0, 0, 0, 0, 0, 0, 217, -761, 0, 0,
2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2510 0, 217, 0, 0, 0, 0, 0, 0, 0, 0,
2511 0, 0, 0, 0, 0, -761, -761, 0, 0, 0,
2512 0, 0, 0, 0, 0, 0, 614, 614, 0, 614,
2513 614, 23, 24, 25, 26, 0, 0, 0, 0, -761,
2514 0, 0, 0, 0, 0, 0, 0, 32, 33, 34,
2515 784, 0, 217, 0, 785, 0, 986, 41, 42, 43,
2516 44, 45, -761, -761, 0, 0, 0, 233, -761, 0,
2517 -761, 0, -761, 0, 0, 926, 0, 0, 0, 0,
2518 0, 0, 0, 0, 0, 0, 0, 0, 786, 787,
2519 0, 899, 0, 0, 0, 0, 788, 0, 614, 789,
2520 0, 0, 790, 791, 0, 980, 930, 0, 792, 59,
2521 1004, 61, 62, 63, 64, 65, 66, 0, 0, 0,
2522 0, 0, 0, 0, 0, 217, 0, 0, 0, 0,
2523 793, 0, 0, 0, 0, -761, 4, 279, 5, 6,
2524 7, 8, 9, 614, 0, 217, 10, 11, 0, 0,
2525 0, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2526 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2527 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2528 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2529 38, 39, 40, 217, 41, 42, 43, 44, 45, 46,
2530 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2531 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2532 0, 217, 0, 0, 0, 50, 51, 0, 0, 0,
2533 0, 0, 0, 52, 0, 0, 53, 54, 0, 55,
2534 56, 0, 57, 0, 0, 58, 59, 60, 61, 62,
2535 63, 64, 65, 66, 0, 0, 0, 0, 0, 0,
2536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2537 0, 0, 0, 0, 67, 68, 69, 0, 0, 0,
2538 0, 0, 0, 0, 0, 0, -761, 0, -761, 0,
2539 0, 0, 0, 0, 0, 0, 0, 0, 217, -631,
2540 0, 0, 0, 0, 0, 0, 0, -631, -631, -631,
2541 0, 217, -631, -631, -631, 0, -631, 0, 0, 0,
2542 0, 686, 0, 0, -631, 0, -631, -631, -631, 0,
2543 0, 0, 0, 0, 0, 0, -631, -631, 0, -631,
2544 -631, -631, -631, -631, 0, 0, 0, 0, 0, 0,
2545 0, 0, 0, 0, 333, 334, 335, 336, 337, 338,
2546 339, 340, 341, 342, 343, 344, 345, -631, 0, 0,
2547 0, 346, 347, 217, 0, 0, -631, -631, -631, -631,
2548 -631, -631, -631, -631, -631, -631, -631, -631, -631, 0,
2549 0, 0, 0, -631, -631, -631, -631, 0, -631, -631,
2550 0, 0, 0, 0, 348, -631, 349, 350, 351, 352,
2551 353, 354, 355, 356, 357, 358, 0, 0, 0, -631,
2552 0, 0, -631, -257, 0, -631, -631, -631, -631, -631,
2553 -631, -631, -631, -631, -631, -631, -631, -631, 0, 0,
2554 0, 0, 0, -631, -631, -631, -634, 0, -631, -631,
2555 -631, 0, -631, 0, -634, -634, -634, 0, 0, -634,
2556 -634, -634, 0, -634, 0, 0, 0, 0, 686, 0,
2557 0, -634, 0, -634, -634, -634, 0, 0, 0, 0,
2558 0, 0, 0, -634, -634, 0, -634, -634, -634, -634,
2559 -634, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2560 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
2561 342, 343, 344, 345, -634, 0, 0, 0, 346, 347,
2562 0, 0, 0, -634, -634, -634, -634, -634, -634, -634,
2563 -634, -634, -634, -634, -634, -634, 0, 0, 0, 0,
2564 -634, -634, -634, -634, 0, -634, -634, 0, 0, 0,
2565 0, 348, -634, 349, 350, 351, 352, 353, 354, 355,
2566 356, 357, 358, 0, 0, 0, -634, 0, 0, -634,
2567 0, 0, -634, -634, -634, -634, -634, -634, -634, -634,
2568 -634, -634, -634, -634, -634, 0, 0, 0, 0, 0,
2569 -634, -634, -634, -739, 0, -634, -634, -634, 0, -634,
2570 0, -739, -739, -739, 0, 0, -739, -739, -739, 0,
2571 -739, 0, 0, 0, 0, 0, 0, 0, -739, -739,
2572 -739, -739, -739, 0, 0, 0, 0, 0, 0, 0,
2573 -739, -739, 0, -739, -739, -739, -739, -739, 0, 0,
2574 0, 0, 0, 0, 0, 0, 0, 0, 333, 334,
2575 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2576 345, -739, 0, 0, 0, 346, 347, 0, 0, 0,
2577 -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
2578 -739, -739, -739, 0, 0, 0, 0, -739, -739, -739,
2579 -739, 0, 0, -739, 0, 0, 0, 0, 348, -739,
2580 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
2581 0, 0, 0, -739, 0, 0, -739, 0, 0, 0,
2582 -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
2583 -739, -739, 0, 0, 0, 0, -739, -739, -739, -739,
2584 -740, 0, -739, -739, -739, 0, -739, 0, -740, -740,
2585 -740, 0, 0, -740, -740, -740, 0, -740, 0, 0,
2586 0, 0, 0, 0, 0, -740, -740, -740, -740, -740,
2587 0, 0, 0, 0, 0, 0, 0, -740, -740, 0,
2588 -740, -740, -740, -740, -740, 0, 0, 0, 0, 0,
2589 0, 0, 0, 0, 0, 333, 334, 335, 336, 337,
2590 338, 339, 340, 341, 342, 343, -762, -762, -740, 0,
2591 0, 0, 346, 347, 0, 0, 0, -740, -740, -740,
2592 -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
2593 0, 0, 0, 0, -740, -740, -740, -740, 0, 0,
2594 -740, 0, 0, 0, 0, 0, -740, 349, 350, 351,
2595 352, 353, 354, 355, 356, 357, 358, 0, 0, 0,
2596 -740, 0, 0, -740, 0, 0, 0, -740, -740, -740,
2597 -740, -740, -740, -740, -740, -740, -740, -740, -740, 0,
2598 0, 0, 0, -740, -740, -740, -740, -311, 0, -740,
2599 -740, -740, 0, -740, 0, -311, -311, -311, 0, 0,
2600 -311, -311, -311, 0, -311, 0, 0, 0, 0, 0,
2601 0, 0, -311, 0, -311, -311, -311, 0, 0, 0,
2602 0, 0, 0, 0, -311, -311, 0, -311, -311, -311,
2603 -311, -311, 0, 0, 0, 0, 0, 0, 0, 0,
2604 0, 0, 333, 334, 335, 336, 337, 338, 339, 340,
2605 0, 342, 343, 0, 0, -311, 0, 0, 0, 346,
2606 347, 0, 0, 0, -311, -311, -311, -311, -311, -311,
2607 -311, -311, -311, -311, -311, -311, -311, 0, 0, 0,
2608 0, -311, -311, -311, -311, 0, 748, -311, 0, 0,
2609 0, 0, 0, -311, 349, 350, 351, 352, 353, 354,
2610 355, 356, 357, 358, 0, 0, 0, -311, 0, 0,
2611 -311, 0, 0, -118, -311, -311, -311, -311, -311, -311,
2612 -311, -311, -311, -311, -311, -311, 0, 0, 0, 0,
2613 0, -311, -311, -311, -450, 0, -311, -311, -311, 0,
2614 -311, 0, -450, -450, -450, 0, 0, -450, -450, -450,
2615 0, -450, 0, 0, 0, 0, 0, 0, 0, -450,
2616 -450, -450, -450, 0, 0, 0, 0, 0, 0, 0,
2617 0, -450, -450, 0, -450, -450, -450, -450, -450, 0,
2618 0, 0, 0, 0, 0, 0, 0, 0, 0, 333,
2619 -762, -762, -762, -762, 338, 339, 0, 0, -762, -762,
2620 0, 0, -450, 0, 0, 0, 346, 347, 0, 0,
2621 0, -450, -450, -450, -450, -450, -450, -450, -450, -450,
2622 -450, -450, -450, -450, 0, 0, 0, 0, -450, -450,
2623 -450, -450, 0, 0, -450, 0, 0, 0, 0, 0,
2624 -450, 349, 350, 351, 352, 353, 354, 355, 356, 357,
2625 358, 0, 0, 0, -450, 0, 0, 0, 0, 0,
2626 0, -450, 0, -450, -450, -450, -450, -450, -450, -450,
2627 -450, -450, -450, 0, 0, 0, 0, -450, -450, -450,
2628 -450, -303, 233, -450, -450, -450, 0, -450, 0, -303,
2629 -303, -303, 0, 0, -303, -303, -303, 0, -303, 0,
2630 0, 0, 0, 0, 0, 0, -303, 0, -303, -303,
2631 -303, 0, 0, 0, 0, 0, 0, 0, -303, -303,
2632 0, -303, -303, -303, -303, -303, 0, 0, 0, 0,
2633 0, 0, 0, 0, 0, 0, 333, 334, 335, 336,
2634 337, 338, 339, 0, 0, 342, 343, 0, 0, -303,
2635 0, 0, 0, 346, 347, 0, 0, 0, -303, -303,
2636 -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
2637 -303, 0, 0, 0, 0, -303, -303, -303, -303, 0,
2638 0, -303, 0, 0, 0, 0, 0, -303, 349, 350,
2639 351, 352, 353, 354, 355, 356, 357, 358, 0, 0,
2640 0, -303, 0, 0, -303, 0, 0, 0, -303, -303,
2641 -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
2642 0, 0, 0, 0, 0, -303, -303, -303, -761, 0,
2643 -303, -303, -303, 0, -303, 0, -761, -761, -761, 0,
2644 0, -761, -761, -761, 0, -761, 0, 0, 0, 0,
2645 0, 0, 0, -761, -761, -761, -761, 0, 0, 0,
2646 0, 0, 0, 0, 0, -761, -761, 0, -761, -761,
2647 -761, -761, -761, 0, 0, 0, 0, 0, 0, 0,
2648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2649 0, 0, 0, 0, 0, 0, -761, 0, 0, 0,
2650 0, 0, 0, 0, 0, -761, -761, -761, -761, -761,
2651 -761, -761, -761, -761, -761, -761, -761, -761, 0, 0,
2652 0, 0, -761, -761, -761, -761, 0, 0, -761, 0,
2653 0, 0, 0, 0, -761, 0, 0, 0, 0, 0,
2654 0, 0, 0, 0, 0, 0, 0, 0, -761, 0,
2655 0, 0, 0, 0, 0, -761, 0, -761, -761, -761,
2656 -761, -761, -761, -761, -761, -761, -761, 0, 0, 0,
2657 0, -761, -761, -761, -761, -318, 233, -761, -761, -761,
2658 0, -761, 0, -318, -318, -318, 0, 0, -318, -318,
2659 -318, 0, -318, 0, 0, 0, 0, 0, 0, 0,
2660 -318, 0, -318, -318, 0, 0, 0, 0, 0, 0,
2661 0, 0, -318, -318, 0, -318, -318, -318, -318, -318,
2662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2664 0, 0, 0, -318, 0, 0, 0, 0, 0, 0,
2665 0, 0, -318, -318, -318, -318, -318, -318, -318, -318,
2666 -318, -318, -318, -318, -318, 0, 0, 0, 0, -318,
2667 -318, -318, -318, 0, 0, -318, 0, 0, 0, 0,
2668 0, -318, 0, 0, 0, 0, 0, 0, 0, 0,
2669 0, 0, 0, 0, 0, -318, 0, 0, 0, 0,
2670 0, 0, -318, 0, -318, -318, -318, -318, -318, -318,
2671 -318, -318, -318, -318, 0, 0, 0, 0, 0, -318,
2672 -318, -318, -738, 230, -318, -318, -318, 0, -318, 0,
2673 -738, -738, -738, 0, 0, 0, -738, -738, 0, -738,
2674 0, 0, 0, 0, 0, 0, 0, -738, -738, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, -738,
2676 -738, 0, -738, -738, -738, -738, -738, 0, 0, 0,
2677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2679 -738, 0, 0, 0, 0, 0, 0, 0, 0, -738,
2680 -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
2681 -738, -738, 0, 0, 0, 0, -738, -738, -738, -738,
2682 0, 692, 0, 0, 0, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2684 0, 0, -738, 0, 0, 0, 0, 0, -116, -738,
2685 0, -738, -738, -738, -738, -738, -738, -738, -738, -738,
2686 -738, 0, 0, 0, 0, -738, -738, -738, -107, -738,
2687 0, -738, 0, -738, 0, -738, 0, -738, -738, -738,
2688 0, 0, 0, -738, -738, 0, -738, 0, 0, 0,
2689 0, 0, 0, 0, -738, -738, 0, 0, 0, 0,
2690 0, 0, 0, 0, 0, 0, -738, -738, 0, -738,
2691 -738, -738, -738, -738, 0, 0, 0, 0, 0, 0,
2692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 0, 0, 0, 0, 0, 0, -738, 0, 0,
2694 0, 0, 0, 0, 0, 0, -738, -738, -738, -738,
2695 -738, -738, -738, -738, -738, -738, -738, -738, -738, 0,
2696 0, 0, 0, -738, -738, -738, -738, 0, 692, 0,
2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2698 0, 0, 0, 0, 0, 0, 0, 0, 0, -738,
2699 0, 0, 0, 0, 0, -116, -738, 0, -738, -738,
2700 -738, -738, -738, -738, -738, -738, -738, -738, 0, 0,
2701 0, 0, -738, -738, -738, -738, -311, 0, -738, 0,
2702 -738, 0, -738, 0, -311, -311, -311, 0, 0, 0,
2703 -311, -311, 0, -311, 0, 0, 0, 0, 0, 0,
2704 0, -311, 0, 0, 0, 0, 0, 0, 0, 0,
2705 0, 0, 0, -311, -311, 0, -311, -311, -311, -311,
2706 -311, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708 0, 0, 0, 0, -311, 0, 0, 0, 0, 0,
2709 0, 0, 0, -311, -311, -311, -311, -311, -311, -311,
2710 -311, -311, -311, -311, -311, -311, 0, 0, 0, 0,
2711 -311, -311, -311, -311, 0, 693, 0, 0, 0, 0,
2712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2713 0, 0, 0, 0, 0, 0, -311, 0, 0, 0,
2714 0, 0, -118, -311, 0, -311, -311, -311, -311, -311,
2715 -311, -311, -311, -311, -311, 0, 0, 0, 0, 0,
2716 -311, -311, -109, -311, 0, -311, 0, -311, 0, -311,
2717 0, -311, -311, -311, 0, 0, 0, -311, -311, 0,
2718 -311, 0, 0, 0, 0, 0, 0, 0, -311, 0,
2719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2720 -311, -311, 0, -311, -311, -311, -311, -311, 0, 0,
2721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2723 0, -311, 0, 0, 0, 0, 0, 0, 0, 0,
2724 -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
2725 -311, -311, -311, 0, 0, 0, 0, -311, -311, -311,
2726 -311, 0, 693, 0, 0, 0, 0, 0, 0, 0,
2727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2728 0, 0, 0, -311, 0, 0, 0, 0, 0, -118,
2729 -311, 0, -311, -311, -311, -311, -311, -311, -311, -311,
2730 -311, -311, 0, 0, 0, 0, 0, -311, -311, -311,
2731 0, 0, -311, 0, -311, 257, -311, 5, 6, 7,
2732 8, 9, -761, -761, -761, 10, 11, 0, 0, -761,
2733 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2734 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2735 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2736 29, 258, 31, 32, 33, 34, 35, 36, 37, 38,
2737 39, 40, 0, 41, 42, 43, 44, 45, 46, 47,
2738 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2739 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2740 0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
2741 0, 0, 52, 0, 0, 53, 54, 0, 55, 56,
2742 0, 57, 0, 0, 58, 59, 60, 61, 62, 63,
2743 64, 65, 66, 0, 0, 0, 0, 0, 0, 0,
2744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2745 0, 0, 0, 67, 68, 69, 0, 0, 0, 0,
2746 0, 0, 0, 0, 0, -761, 257, -761, 5, 6,
2747 7, 8, 9, 0, 0, -761, 10, 11, 0, -761,
2748 -761, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2749 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2750 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2751 28, 29, 258, 31, 32, 33, 34, 35, 36, 37,
2752 38, 39, 40, 0, 41, 42, 43, 44, 45, 46,
2753 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2754 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2755 0, 0, 0, 0, 0, 50, 51, 0, 0, 0,
2756 0, 0, 0, 52, 0, 0, 53, 54, 0, 55,
2757 56, 0, 57, 0, 0, 58, 59, 60, 61, 62,
2758 63, 64, 65, 66, 0, 0, 0, 0, 0, 0,
2759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2760 0, 0, 0, 0, 67, 68, 69, 0, 0, 0,
2761 0, 0, 0, 0, 0, 0, -761, 257, -761, 5,
2762 6, 7, 8, 9, 0, 0, -761, 10, 11, 0,
2763 0, -761, 12, -761, 13, 14, 15, 16, 17, 18,
2764 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2765 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2766 0, 28, 29, 258, 31, 32, 33, 34, 35, 36,
2767 37, 38, 39, 40, 0, 41, 42, 43, 44, 45,
2768 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2769 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2770 0, 0, 0, 0, 0, 0, 50, 51, 0, 0,
2771 0, 0, 0, 0, 52, 0, 0, 53, 54, 0,
2772 55, 56, 0, 57, 0, 0, 58, 59, 60, 61,
2773 62, 63, 64, 65, 66, 0, 0, 0, 0, 0,
2774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2775 0, 0, 0, 0, 0, 67, 68, 69, 0, 0,
2776 0, 0, 0, 0, 0, 0, 0, -761, 257, -761,
2777 5, 6, 7, 8, 9, 0, 0, -761, 10, 11,
2778 0, 0, -761, 12, 0, 13, 14, 15, 16, 17,
2779 18, 19, -761, 0, 0, 0, 0, 20, 21, 22,
2780 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2781 0, 0, 28, 29, 258, 31, 32, 33, 34, 35,
2782 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2783 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2784 0, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2785 0, 0, 0, 0, 0, 0, 0, 50, 51, 0,
2786 0, 0, 0, 0, 0, 52, 0, 0, 53, 54,
2787 0, 55, 56, 0, 57, 0, 0, 58, 59, 60,
2788 61, 62, 63, 64, 65, 66, 0, 0, 0, 0,
2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2790 0, 0, 0, 0, 0, 0, 67, 68, 69, 0,
2791 0, 0, 0, 0, 0, 0, 0, 0, -761, 257,
2792 -761, 5, 6, 7, 8, 9, 0, 0, -761, 10,
2793 11, 0, 0, -761, 12, 0, 13, 14, 15, 16,
2794 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2795 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2796 0, 0, 0, 28, 29, 258, 31, 32, 33, 34,
2797 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2798 44, 45, 46, 47, 0, 0, 0, 0, 0, 0,
2799 0, 0, 0, 48, 49, 0, 0, 0, 0, 0,
2800 0, 0, 0, 0, 0, 0, 0, 0, 50, 51,
2801 0, 0, 0, 0, 0, 0, 52, 0, 0, 53,
2802 54, 0, 55, 56, 0, 57, 0, 0, 58, 59,
2803 60, 61, 62, 63, 64, 65, 66, 0, 0, 0,
2804 0, 0, 0, 0, 0, 257, 0, 5, 6, 7,
2805 8, 9, 0, -761, -761, 10, 11, 67, 68, 69,
2806 12, 0, 13, 14, 15, 16, 17, 18, 19, -761,
2807 0, -761, 0, 0, 20, 21, 22, 23, 24, 25,
2808 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2809 29, 258, 31, 32, 33, 34, 35, 36, 37, 38,
2810 39, 40, 0, 41, 42, 43, 44, 45, 46, 47,
2811 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2812 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2813 0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
2814 0, 0, 52, 0, 0, 53, 54, 0, 55, 56,
2815 0, 57, 0, 0, 58, 59, 60, 61, 62, 63,
2816 64, 65, 66, 0, 0, 0, 0, 0, 0, 0,
2817 0, 257, 0, 5, 6, 7, 8, 9, 0, 0,
2818 0, 10, 11, 67, 68, 69, 12, 0, 13, 14,
2819 15, 16, 17, 18, 19, -761, 0, -761, 0, 0,
2820 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2821 0, 0, 0, 0, 0, 28, 29, 258, 31, 32,
2822 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2823 42, 43, 44, 45, 46, 47, 0, 0, 0, 0,
2824 0, 0, 0, 0, 0, 48, 49, 0, 0, 0,
2825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2826 50, 51, 0, 0, 0, 0, 0, 0, 52, 0,
2827 0, 259, 54, 0, 55, 56, 0, 57, 0, 0,
2828 58, 59, 60, 61, 62, 63, 64, 65, 66, 0,
2829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
2831 68, 69, 0, 0, 0, 0, 0, 0, 0, -761,
2832 0, -761, 257, -761, 5, 6, 7, 8, 9, 0,
2833 0, 0, 10, 11, 0, 0, 0, 12, 0, 13,
2834 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2835 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2836 27, 0, 0, 0, 0, 0, 28, 29, 258, 31,
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, 52,
2842 0, 0, 53, 54, 0, 55, 56, 0, 57, 0,
2843 0, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2846 67, 68, 69, 0, 0, 0, 0, 0, 0, 0,
2847 -761, 0, -761, 4, -761, 5, 6, 7, 8, 9,
2848 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2849 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2850 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2851 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2852 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2853 0, 41, 42, 43, 44, 45, 46, 47, 0, 0,
2854 0, 0, 0, 0, 0, 0, 0, 48, 49, 0,
2855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2856 0, 0, 50, 51, 0, 0, 0, 0, 0, 0,
2857 52, 0, 0, 53, 54, 0, 55, 56, 0, 57,
2858 0, 0, 58, 59, 60, 61, 62, 63, 64, 65,
2859 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2861 0, 67, 68, 69, 0, 0, -761, 0, 0, 0,
2862 0, 0, 0, -761, 257, -761, 5, 6, 7, 8,
2863 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2864 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2865 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2866 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2867 258, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2868 40, 0, 41, 42, 43, 44, 45, 46, 47, 0,
2869 0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
2870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2871 0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
2872 0, 52, 0, 0, 53, 54, 0, 55, 56, 0,
2873 57, 0, 0, 58, 59, 60, 61, 62, 63, 64,
2874 65, 66, 0, 0, 0, 0, 0, 0, 0, 0,
2875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2876 0, 0, 67, 68, 69, 0, 0, -761, 0, 0,
2877 0, 0, 0, 0, -761, 257, -761, 5, 6, 7,
2878 8, 9, 0, 0, -761, 10, 11, 0, 0, 0,
2879 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2880 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2881 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2882 29, 258, 31, 32, 33, 34, 35, 36, 37, 38,
2883 39, 40, 0, 41, 42, 43, 44, 45, 46, 47,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2885 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2886 0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
2887 0, 0, 52, 0, 0, 53, 54, 0, 55, 56,
2888 0, 57, 0, 0, 58, 59, 60, 61, 62, 63,
2889 64, 65, 66, 0, 0, 0, 0, 0, 0, 0,
2890 0, 257, 0, 5, 6, 7, 8, 9, 0, 0,
2891 0, 10, 11, 67, 68, 69, 12, 0, 13, 14,
2892 15, 16, 17, 18, 19, -761, 0, -761, 0, 0,
2893 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2894 0, 0, 0, 0, 0, 28, 29, 258, 31, 32,
2895 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2896 42, 43, 44, 45, 46, 47, 0, 0, 0, 0,
2897 0, 0, 0, 0, 0, 48, 49, 0, 0, 0,
2898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2899 50, 51, 0, 0, 0, 0, 0, 0, 52, 0,
2900 0, 53, 54, 0, 55, 56, 0, 57, 0, 0,
2901 58, 59, 60, 61, 62, 63, 64, 65, 66, 0,
2902 -761, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2903 6, 7, 0, 9, 0, 0, 0, 10, 11, 67,
2904 68, 69, 12, 0, 13, 14, 15, 16, 17, 18,
2905 19, -761, 0, -761, 0, 0, 20, 21, 22, 23,
2906 24, 25, 26, 0, 0, 206, 0, 0, 0, 0,
2907 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2908 37, 38, 39, 40, 207, 41, 42, 43, 44, 45,
2909 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2910 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2911 0, 0, 0, 0, 0, 0, 50, 51, 0, 0,
2912 0, 0, 0, 0, 208, 0, 0, 209, 54, 0,
2913 55, 56, 0, 210, 211, 212, 58, 59, 213, 61,
2914 62, 63, 64, 65, 66, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2916 0, 0, 0, 10, 11, 67, 214, 69, 12, 0,
2917 13, 14, 15, 16, 17, 18, 19, 0, 0, 237,
2918 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2919 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
2920 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2921 0, 41, 42, 43, 44, 45, 46, 47, 0, 0,
2922 0, 0, 0, 0, 0, 0, 0, 48, 49, 0,
2923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2924 0, 0, 50, 51, 0, 0, 0, 0, 0, 0,
2925 208, 0, 0, 209, 54, 0, 55, 56, 0, 0,
2926 0, 0, 58, 59, 60, 61, 62, 63, 64, 65,
2927 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2928 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2929 11, 67, 68, 69, 12, 0, 13, 14, 15, 16,
2930 17, 18, 19, 305, 0, 306, 0, 0, 20, 21,
2931 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2932 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2933 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2934 44, 45, 46, 47, 0, 0, 0, 0, 0, 0,
2935 0, 0, 0, 48, 49, 0, 0, 0, 0, 0,
2936 0, 0, 0, 0, 0, 0, 0, 0, 50, 51,
2937 0, 0, 0, 0, 0, 0, 208, 0, 0, 209,
2938 54, 0, 55, 56, 0, 0, 0, 0, 58, 59,
2939 60, 61, 62, 63, 64, 65, 66, 0, 0, 0,
2940 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2941 8, 9, 0, 0, 0, 10, 11, 67, 68, 69,
2942 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2943 0, 237, 0, 0, 20, 21, 22, 23, 24, 25,
2944 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2945 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2946 39, 40, 0, 41, 42, 43, 44, 45, 46, 47,
2947 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2948 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
2950 0, 0, 52, 0, 0, 53, 54, 0, 55, 56,
2951 0, 57, 0, 0, 58, 59, 60, 61, 62, 63,
2952 64, 65, 66, 0, 0, 0, 0, 0, 0, 0,
2953 0, 0, 0, 5, 6, 7, 8, 9, 0, 0,
2954 0, 10, 11, 67, 68, 69, 12, 0, 13, 14,
2955 15, 16, 17, 18, 19, 503, 0, 0, 0, 0,
2956 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2957 0, 0, 0, 0, 0, 28, 29, 258, 31, 32,
2958 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2959 42, 43, 44, 45, 46, 47, 0, 0, 0, 0,
2960 0, 0, 0, 0, 0, 48, 49, 0, 0, 0,
2961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2962 50, 51, 0, 0, 0, 0, 0, 0, 52, 0,
2963 0, 53, 54, 0, 55, 56, 0, 57, 0, 0,
2964 58, 59, 60, 61, 62, 63, 64, 65, 66, 0,
2965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
2967 68, 69, 0, 0, 0, 0, 0, 0, 0, 0,
2968 0, 503, 126, 127, 128, 129, 130, 131, 132, 133,
2969 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2970 144, 145, 146, 147, 148, 149, 0, 0, 0, 150,
2971 151, 152, 395, 396, 397, 398, 157, 158, 159, 0,
2972 0, 0, 0, 0, 160, 161, 162, 163, 399, 400,
2973 401, 402, 168, 37, 38, 403, 40, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
2976 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
2977 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
2978 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
2979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2980 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
2981 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
2982 198, 0, 0, 0, 0, 0, 199, 404, 126, 127,
2983 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2984 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2985 148, 149, 0, 0, 0, 150, 151, 152, 153, 154,
2986 155, 156, 157, 158, 159, 0, 0, 0, 0, 0,
2987 160, 161, 162, 163, 164, 165, 166, 167, 168, 288,
2988 289, 169, 290, 0, 0, 0, 0, 0, 0, 0,
2989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2990 170, 171, 172, 173, 174, 175, 176, 177, 178, 0,
2991 0, 179, 180, 0, 0, 0, 0, 181, 182, 183,
2992 184, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2993 0, 0, 185, 186, 0, 0, 0, 0, 0, 0,
2994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2995 0, 0, 0, 0, 187, 188, 189, 190, 191, 192,
2996 193, 194, 195, 196, 0, 197, 198, 0, 0, 0,
2997 0, 0, 199, 126, 127, 128, 129, 130, 131, 132,
2998 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2999 143, 144, 145, 146, 147, 148, 149, 0, 0, 0,
3000 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3001 0, 0, 0, 0, 0, 160, 161, 162, 163, 164,
3002 165, 166, 167, 168, 239, 0, 169, 0, 0, 0,
3003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3004 0, 0, 0, 0, 0, 170, 171, 172, 173, 174,
3005 175, 176, 177, 178, 0, 0, 179, 180, 0, 0,
3006 0, 0, 181, 182, 183, 184, 0, 0, 0, 0,
3007 0, 0, 0, 0, 0, 0, 0, 185, 186, 0,
3008 0, 59, 0, 0, 0, 0, 0, 0, 0, 0,
3009 0, 0, 0, 0, 0, 0, 0, 0, 0, 187,
3010 188, 189, 190, 191, 192, 193, 194, 195, 196, 0,
3011 197, 198, 0, 0, 0, 0, 0, 199, 126, 127,
3012 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
3013 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
3014 148, 149, 0, 0, 0, 150, 151, 152, 153, 154,
3015 155, 156, 157, 158, 159, 0, 0, 0, 0, 0,
3016 160, 161, 162, 163, 164, 165, 166, 167, 168, 0,
3017 0, 169, 0, 0, 0, 0, 0, 0, 0, 0,
3018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3019 170, 171, 172, 173, 174, 175, 176, 177, 178, 0,
3020 0, 179, 180, 0, 0, 0, 0, 181, 182, 183,
3021 184, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 185, 186, 0, 0, 59, 0, 0, 0,
3023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3024 0, 0, 0, 0, 187, 188, 189, 190, 191, 192,
3025 193, 194, 195, 196, 0, 197, 198, 0, 0, 0,
3026 0, 0, 199, 126, 127, 128, 129, 130, 131, 132,
3027 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3028 143, 144, 145, 146, 147, 148, 149, 0, 0, 0,
3029 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
3030 0, 0, 0, 0, 0, 160, 161, 162, 163, 164,
3031 165, 166, 167, 168, 0, 0, 169, 0, 0, 0,
3032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3033 0, 0, 0, 0, 0, 170, 171, 172, 173, 174,
3034 175, 176, 177, 178, 0, 0, 179, 180, 0, 0,
3035 0, 0, 181, 182, 183, 184, 0, 0, 0, 0,
3036 0, 0, 0, 0, 0, 0, 0, 185, 186, 0,
3037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3038 0, 0, 0, 0, 0, 0, 0, 0, 0, 187,
3039 188, 189, 190, 191, 192, 193, 194, 195, 196, 0,
3040 197, 198, 5, 6, 7, 0, 9, 199, 0, 0,
3041 10, 11, 0, 0, 0, 12, 0, 13, 14, 15,
3042 245, 246, 18, 19, 0, 0, 0, 0, 0, 20,
3043 247, 248, 23, 24, 25, 26, 0, 0, 206, 0,
3044 0, 0, 0, 0, 0, 277, 0, 0, 32, 33,
3045 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3046 43, 44, 45, 46, 47, 0, 0, 0, 0, 0,
3047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3049 0, 0, 0, 0, 0, 0, 0, 278, 0, 0,
3050 209, 54, 0, 55, 56, 0, 0, 0, 0, 58,
3051 59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
3052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3053 0, 5, 6, 7, 0, 9, 0, 0, 279, 10,
3054 11, 0, 0, 0, 12, 280, 13, 14, 15, 245,
3055 246, 18, 19, 0, 0, 0, 0, 0, 20, 247,
3056 248, 23, 24, 25, 26, 0, 0, 206, 0, 0,
3057 0, 0, 0, 0, 277, 0, 0, 32, 33, 34,
3058 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3059 44, 45, 46, 47, 0, 0, 0, 0, 0, 0,
3060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3062 0, 0, 0, 0, 0, 0, 278, 0, 0, 209,
3063 54, 0, 55, 56, 0, 0, 0, 0, 58, 59,
3064 60, 61, 62, 63, 64, 65, 66, 0, 0, 0,
3065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3066 5, 6, 7, 8, 9, 0, 0, 279, 10, 11,
3067 0, 0, 0, 12, 526, 13, 14, 15, 16, 17,
3068 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
3069 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
3070 0, 0, 28, 29, 30, 31, 32, 33, 34, 35,
3071 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
3072 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
3073 0, 0, 48, 49, 0, 0, 0, 0, 0, 0,
3074 0, 0, 0, 0, 0, 0, 0, 50, 51, 0,
3075 0, 0, 0, 0, 0, 52, 0, 0, 53, 54,
3076 0, 55, 56, 0, 57, 0, 0, 58, 59, 60,
3077 61, 62, 63, 64, 65, 66, 0, 0, 0, 0,
3078 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3079 9, 0, 0, 0, 10, 11, 67, 68, 69, 12,
3080 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
3081 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
3082 0, 0, 206, 0, 0, 0, 0, 0, 0, 29,
3083 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3084 40, 207, 41, 42, 43, 44, 45, 46, 47, 0,
3085 0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
3086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3087 0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
3088 0, 208, 0, 0, 209, 54, 0, 55, 56, 0,
3089 210, 211, 212, 58, 59, 213, 61, 62, 63, 64,
3090 65, 66, 0, 0, 0, 0, 0, 0, 0, 0,
3091 0, 0, 5, 6, 7, 8, 9, 0, 0, 0,
3092 10, 11, 67, 214, 69, 12, 0, 13, 14, 15,
3093 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
3094 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
3095 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
3096 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3097 43, 44, 45, 46, 47, 0, 0, 0, 0, 0,
3098 0, 0, 0, 0, 48, 49, 0, 0, 0, 0,
3099 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
3100 51, 0, 0, 0, 0, 0, 0, 52, 0, 0,
3101 53, 54, 0, 55, 56, 0, 57, 0, 0, 58,
3102 59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
3103 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
3104 7, 0, 9, 0, 0, 0, 10, 11, 67, 68,
3105 69, 12, 0, 13, 14, 15, 16, 17, 18, 19,
3106 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
3107 25, 26, 0, 0, 206, 0, 0, 0, 0, 0,
3108 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
3109 38, 39, 40, 207, 41, 42, 43, 44, 45, 46,
3110 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3111 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
3112 0, 0, 0, 0, 0, 50, 439, 0, 0, 0,
3113 0, 0, 0, 208, 0, 0, 209, 54, 0, 55,
3114 56, 0, 210, 211, 212, 58, 59, 213, 61, 62,
3115 63, 64, 65, 66, 0, 0, 0, 0, 0, 0,
3116 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
3117 0, 0, 10, 11, 67, 214, 69, 12, 0, 13,
3118 14, 15, 245, 246, 18, 19, 0, 0, 0, 0,
3119 0, 20, 247, 248, 23, 24, 25, 26, 0, 0,
3120 206, 0, 0, 0, 0, 0, 0, 29, 0, 0,
3121 32, 33, 34, 35, 36, 37, 38, 39, 40, 207,
3122 41, 42, 43, 44, 45, 46, 47, 0, 0, 0,
3123 0, 0, 0, 0, 0, 0, 48, 49, 0, 0,
3124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3125 0, 50, 51, 0, 0, 0, 0, 0, 0, 208,
3126 0, 0, 209, 54, 0, 55, 56, 0, 621, 211,
3127 212, 58, 59, 213, 61, 62, 63, 64, 65, 66,
3128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3129 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3130 67, 214, 69, 12, 0, 13, 14, 15, 245, 246,
3131 18, 19, 0, 0, 0, 0, 0, 20, 247, 248,
3132 23, 24, 25, 26, 0, 0, 206, 0, 0, 0,
3133 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
3134 36, 37, 38, 39, 40, 207, 41, 42, 43, 44,
3135 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
3136 0, 0, 48, 49, 0, 0, 0, 0, 0, 0,
3137 0, 0, 0, 0, 0, 0, 0, 50, 439, 0,
3138 0, 0, 0, 0, 0, 208, 0, 0, 209, 54,
3139 0, 55, 56, 0, 621, 211, 212, 58, 59, 213,
3140 61, 62, 63, 64, 65, 66, 0, 0, 0, 0,
3141 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3142 9, 0, 0, 0, 10, 11, 67, 214, 69, 12,
3143 0, 13, 14, 15, 245, 246, 18, 19, 0, 0,
3144 0, 0, 0, 20, 247, 248, 23, 24, 25, 26,
3145 0, 0, 206, 0, 0, 0, 0, 0, 0, 29,
3146 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3147 40, 207, 41, 42, 43, 44, 45, 46, 47, 0,
3148 0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
3149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3150 0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
3151 0, 208, 0, 0, 209, 54, 0, 55, 56, 0,
3152 210, 211, 0, 58, 59, 213, 61, 62, 63, 64,
3153 65, 66, 0, 0, 0, 0, 0, 0, 0, 0,
3154 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3155 10, 11, 67, 214, 69, 12, 0, 13, 14, 15,
3156 245, 246, 18, 19, 0, 0, 0, 0, 0, 20,
3157 247, 248, 23, 24, 25, 26, 0, 0, 206, 0,
3158 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
3159 34, 35, 36, 37, 38, 39, 40, 207, 41, 42,
3160 43, 44, 45, 46, 47, 0, 0, 0, 0, 0,
3161 0, 0, 0, 0, 48, 49, 0, 0, 0, 0,
3162 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
3163 51, 0, 0, 0, 0, 0, 0, 208, 0, 0,
3164 209, 54, 0, 55, 56, 0, 0, 211, 212, 58,
3165 59, 213, 61, 62, 63, 64, 65, 66, 0, 0,
3166 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
3167 7, 0, 9, 0, 0, 0, 10, 11, 67, 214,
3168 69, 12, 0, 13, 14, 15, 245, 246, 18, 19,
3169 0, 0, 0, 0, 0, 20, 247, 248, 23, 24,
3170 25, 26, 0, 0, 206, 0, 0, 0, 0, 0,
3171 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
3172 38, 39, 40, 207, 41, 42, 43, 44, 45, 46,
3173 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3174 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
3175 0, 0, 0, 0, 0, 50, 51, 0, 0, 0,
3176 0, 0, 0, 208, 0, 0, 209, 54, 0, 55,
3177 56, 0, 621, 211, 0, 58, 59, 213, 61, 62,
3178 63, 64, 65, 66, 0, 0, 0, 0, 0, 0,
3179 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
3180 0, 0, 10, 11, 67, 214, 69, 12, 0, 13,
3181 14, 15, 245, 246, 18, 19, 0, 0, 0, 0,
3182 0, 20, 247, 248, 23, 24, 25, 26, 0, 0,
3183 206, 0, 0, 0, 0, 0, 0, 29, 0, 0,
3184 32, 33, 34, 35, 36, 37, 38, 39, 40, 207,
3185 41, 42, 43, 44, 45, 46, 47, 0, 0, 0,
3186 0, 0, 0, 0, 0, 0, 48, 49, 0, 0,
3187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3188 0, 50, 51, 0, 0, 0, 0, 0, 0, 208,
3189 0, 0, 209, 54, 0, 55, 56, 0, 0, 211,
3190 0, 58, 59, 213, 61, 62, 63, 64, 65, 66,
3191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3192 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3193 67, 214, 69, 12, 0, 13, 14, 15, 16, 17,
3194 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
3195 23, 24, 25, 26, 0, 0, 206, 0, 0, 0,
3196 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
3197 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
3198 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
3199 0, 0, 48, 49, 0, 0, 0, 0, 0, 0,
3200 0, 0, 0, 0, 0, 0, 0, 50, 51, 0,
3201 0, 0, 0, 0, 0, 208, 0, 0, 209, 54,
3202 0, 55, 56, 0, 519, 0, 0, 58, 59, 60,
3203 61, 62, 63, 64, 65, 66, 0, 0, 0, 0,
3204 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3205 9, 0, 0, 0, 10, 11, 67, 214, 69, 12,
3206 0, 13, 14, 15, 245, 246, 18, 19, 0, 0,
3207 0, 0, 0, 20, 247, 248, 23, 24, 25, 26,
3208 0, 0, 206, 0, 0, 0, 0, 0, 0, 29,
3209 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3210 40, 0, 41, 42, 43, 44, 45, 46, 47, 0,
3211 0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
3212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3213 0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
3214 0, 208, 0, 0, 209, 54, 0, 55, 56, 0,
3215 773, 0, 0, 58, 59, 60, 61, 62, 63, 64,
3216 65, 66, 0, 0, 0, 0, 0, 0, 0, 0,
3217 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3218 10, 11, 67, 214, 69, 12, 0, 13, 14, 15,
3219 245, 246, 18, 19, 0, 0, 0, 0, 0, 20,
3220 247, 248, 23, 24, 25, 26, 0, 0, 206, 0,
3221 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
3222 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3223 43, 44, 45, 46, 47, 0, 0, 0, 0, 0,
3224 0, 0, 0, 0, 48, 49, 0, 0, 0, 0,
3225 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
3226 51, 0, 0, 0, 0, 0, 0, 208, 0, 0,
3227 209, 54, 0, 55, 56, 0, 519, 0, 0, 58,
3228 59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
3229 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
3230 7, 0, 9, 0, 0, 0, 10, 11, 67, 214,
3231 69, 12, 0, 13, 14, 15, 245, 246, 18, 19,
3232 0, 0, 0, 0, 0, 20, 247, 248, 23, 24,
3233 25, 26, 0, 0, 206, 0, 0, 0, 0, 0,
3234 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
3235 38, 39, 40, 0, 41, 42, 43, 44, 45, 46,
3236 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3237 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
3238 0, 0, 0, 0, 0, 50, 51, 0, 0, 0,
3239 0, 0, 0, 208, 0, 0, 209, 54, 0, 55,
3240 56, 0, 846, 0, 0, 58, 59, 60, 61, 62,
3241 63, 64, 65, 66, 0, 0, 0, 0, 0, 0,
3242 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
3243 0, 0, 10, 11, 67, 214, 69, 12, 0, 13,
3244 14, 15, 245, 246, 18, 19, 0, 0, 0, 0,
3245 0, 20, 247, 248, 23, 24, 25, 26, 0, 0,
3246 206, 0, 0, 0, 0, 0, 0, 29, 0, 0,
3247 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
3248 41, 42, 43, 44, 45, 46, 47, 0, 0, 0,
3249 0, 0, 0, 0, 0, 0, 48, 49, 0, 0,
3250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3251 0, 50, 51, 0, 0, 0, 0, 0, 0, 208,
3252 0, 0, 209, 54, 0, 55, 56, 0, 1019, 0,
3253 0, 58, 59, 60, 61, 62, 63, 64, 65, 66,
3254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3255 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3256 67, 214, 69, 12, 0, 13, 14, 15, 245, 246,
3257 18, 19, 0, 0, 0, 0, 0, 20, 247, 248,
3258 23, 24, 25, 26, 0, 0, 206, 0, 0, 0,
3259 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
3260 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
3261 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
3262 0, 0, 48, 49, 0, 0, 0, 0, 0, 0,
3263 0, 0, 0, 0, 0, 0, 0, 50, 51, 0,
3264 0, 0, 0, 0, 0, 208, 0, 0, 209, 54,
3265 0, 55, 56, 0, 0, 0, 0, 58, 59, 60,
3266 61, 62, 63, 64, 65, 66, 0, 0, 0, 0,
3267 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3268 9, 0, 0, 0, 10, 11, 67, 214, 69, 12,
3269 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
3270 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
3271 0, 0, 206, 0, 0, 0, 0, 0, 0, 29,
3272 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3273 40, 0, 41, 42, 43, 44, 45, 46, 47, 0,
3274 0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
3275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3276 0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
3277 0, 208, 0, 0, 209, 54, 0, 55, 56, 0,
3278 0, 0, 0, 58, 59, 60, 61, 62, 63, 64,
3279 65, 66, 0, 0, 0, 0, 0, 0, 0, 0,
3280 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3281 10, 11, 67, 214, 69, 12, 0, 13, 14, 15,
3282 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
3283 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
3284 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
3285 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3286 43, 44, 45, 46, 47, 0, 0, 0, 0, 0,
3287 0, 0, 0, 0, 48, 49, 0, 0, 0, 0,
3288 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
3289 51, 0, 0, 0, 0, 0, 0, 208, 0, 0,
3290 209, 54, 0, 55, 56, 0, 0, 0, 0, 58,
3291 59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
3292 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
3293 7, 0, 9, 0, 0, 0, 10, 11, 67, 68,
3294 69, 12, 0, 13, 14, 15, 245, 246, 18, 19,
3295 0, 0, 0, 0, 0, 20, 247, 248, 23, 24,
3296 25, 26, 0, 0, 206, 0, 0, 0, 0, 0,
3297 0, 277, 0, 0, 32, 33, 34, 35, 36, 37,
3298 38, 39, 40, 0, 41, 42, 43, 44, 45, 46,
3299 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3302 0, 0, 0, 278, 0, 0, 328, 54, 0, 55,
3303 56, 0, 329, 0, 0, 58, 59, 60, 61, 62,
3304 63, 64, 65, 66, 0, 0, 0, 0, 0, 0,
3305 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3306 0, 0, 0, 12, 279, 13, 14, 15, 245, 246,
3307 18, 19, 0, 0, 0, 0, 0, 20, 247, 248,
3308 23, 24, 25, 26, 0, 0, 206, 0, 0, 0,
3309 0, 0, 0, 277, 0, 0, 32, 33, 34, 35,
3310 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
3311 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
3312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3314 0, 0, 0, 0, 0, 376, 0, 0, 53, 54,
3315 0, 55, 56, 0, 57, 0, 0, 58, 59, 60,
3316 61, 62, 63, 64, 65, 66, 0, 0, 0, 0,
3317 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3318 10, 11, 0, 0, 0, 12, 279, 13, 14, 15,
3319 245, 246, 18, 19, 0, 0, 0, 0, 0, 20,
3320 247, 248, 23, 24, 25, 26, 0, 0, 206, 0,
3321 0, 0, 0, 0, 0, 277, 0, 0, 32, 33,
3322 34, 384, 36, 37, 38, 385, 40, 0, 41, 42,
3323 43, 44, 45, 46, 47, 0, 0, 0, 0, 0,
3324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3326 0, 0, 0, 386, 0, 0, 0, 387, 0, 0,
3327 209, 54, 0, 55, 56, 0, 0, 0, 0, 58,
3328 59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
3329 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
3330 0, 0, 10, 11, 0, 0, 0, 12, 279, 13,
3331 14, 15, 245, 246, 18, 19, 0, 0, 0, 0,
3332 0, 20, 247, 248, 23, 24, 25, 26, 0, 0,
3333 206, 0, 0, 0, 0, 0, 0, 277, 0, 0,
3334 32, 33, 34, 384, 36, 37, 38, 385, 40, 0,
3335 41, 42, 43, 44, 45, 46, 47, 0, 0, 0,
3336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3338 0, 0, 0, 0, 0, 0, 0, 0, 0, 387,
3339 0, 0, 209, 54, 0, 55, 56, 0, 0, 0,
3340 0, 58, 59, 60, 61, 62, 63, 64, 65, 66,
3341 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3342 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
3343 279, 13, 14, 15, 245, 246, 18, 19, 0, 0,
3344 0, 0, 0, 20, 247, 248, 23, 24, 25, 26,
3345 0, 0, 206, 0, 0, 0, 0, 0, 0, 277,
3346 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3347 40, 0, 41, 42, 43, 44, 45, 46, 47, 0,
3348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3351 0, 278, 0, 0, 328, 54, 0, 55, 56, 0,
3352 0, 0, 0, 58, 59, 60, 61, 62, 63, 64,
3353 65, 66, 0, 0, 0, 0, 0, 0, 5, 6,
3354 7, 0, 9, 0, 0, 0, 10, 11, 0, 0,
3355 0, 12, 279, 13, 14, 15, 245, 246, 18, 19,
3356 0, 0, 0, 0, 0, 20, 247, 248, 23, 24,
3357 25, 26, 0, 0, 206, 0, 0, 0, 0, 0,
3358 0, 277, 0, 0, 32, 33, 34, 35, 36, 37,
3359 38, 39, 40, 0, 41, 42, 43, 44, 45, 46,
3360 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3363 0, 0, 0, 1009, 0, 0, 209, 54, 0, 55,
3364 56, 0, 0, 0, 0, 58, 59, 60, 61, 62,
3365 63, 64, 65, 66, 0, 0, 0, 0, 0, 0,
3366 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3367 0, 0, 0, 12, 279, 13, 14, 15, 245, 246,
3368 18, 19, 0, 0, 0, 0, 0, 20, 247, 248,
3369 23, 24, 25, 26, 0, 0, 206, 0, 0, 0,
3370 0, 0, 0, 277, 0, 0, 32, 33, 34, 35,
3371 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
3372 45, 46, 47, 23, 24, 25, 26, 0, 0, 0,
3373 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,
3374 33, 34, 784, 0, 0, 0, 785, 0, 0, 41,
3375 42, 43, 44, 45, 0, 1062, 0, 0, 209, 54,
3376 0, 55, 56, 0, 0, 0, 0, 58, 59, 60,
3377 61, 62, 63, 64, 65, 66, 0, 0, 0, 0,
3378 786, 787, 0, 0, 0, 0, 0, 0, 788, 0,
3379 0, 789, 0, 0, 790, 791, 279, 980, 0, 0,
3380 792, 59, 60, 61, 62, 63, 64, 65, 66, 23,
3381 24, 25, 26, 0, 0, 0, 0, 0, 0, 0,
3382 0, 0, 793, 0, 0, 32, 33, 34, 784, 279,
3383 0, 0, 785, 0, 0, 41, 42, 43, 44, 45,
3384 0, 0, 23, 24, 25, 26, 0, 0, 0, 0,
3385 0, 0, 0, 0, 0, 0, 0, 0, 32, 33,
3386 34, 784, 0, 0, 0, 785, 786, 787, 41, 42,
3387 43, 44, 45, 0, 788, 0, 0, 789, 0, 0,
3388 790, 791, 0, 1077, 0, 0, 792, 59, 60, 61,
3389 62, 63, 64, 65, 66, 0, 0, 0, 0, 786,
3390 787, 0, 0, 0, 0, 0, 0, 788, 793, 0,
3391 789, 0, 0, 790, 791, 279, 0, 0, 0, 792,
3392 59, 60, 61, 62, 63, 64, 65, 66, 564, 565,
3393 0, 0, 566, 0, 0, 0, 0, 0, 0, 0,
3394 0, 793, 0, 0, 0, 0, 0, 0, 279, 0,
3395 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3396 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3397 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3398 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3400 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3401 192, 193, 194, 195, 196, 0, 197, 198, 573, 574,
3402 0, 0, 575, 199, 233, 0, 0, 0, 0, 0,
3403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3404 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3405 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3406 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3407 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3409 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3410 192, 193, 194, 195, 196, 0, 197, 198, 625, 565,
3411 0, 0, 626, 199, 233, 0, 0, 0, 0, 0,
3412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3413 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3414 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3415 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3416 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3418 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3419 192, 193, 194, 195, 196, 0, 197, 198, 628, 574,
3420 0, 0, 629, 199, 233, 0, 0, 0, 0, 0,
3421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3422 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3423 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3424 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3425 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3427 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3428 192, 193, 194, 195, 196, 0, 197, 198, 653, 565,
3429 0, 0, 654, 199, 233, 0, 0, 0, 0, 0,
3430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3431 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3432 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3433 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3434 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3436 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3437 192, 193, 194, 195, 196, 0, 197, 198, 656, 574,
3438 0, 0, 657, 199, 233, 0, 0, 0, 0, 0,
3439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3440 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3441 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3442 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3443 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3445 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3446 192, 193, 194, 195, 196, 0, 197, 198, 724, 565,
3447 0, 0, 725, 199, 233, 0, 0, 0, 0, 0,
3448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3449 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3450 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3451 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3452 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3454 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3455 192, 193, 194, 195, 196, 0, 197, 198, 727, 574,
3456 0, 0, 728, 199, 233, 0, 0, 0, 0, 0,
3457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3458 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3459 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3460 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3461 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3463 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3464 192, 193, 194, 195, 196, 0, 197, 198, 733, 565,
3465 0, 0, 734, 199, 233, 0, 0, 0, 0, 0,
3466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3467 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3468 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3469 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3470 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3472 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3473 192, 193, 194, 195, 196, 0, 197, 198, 610, 574,
3474 0, 0, 611, 199, 233, 0, 0, 0, 0, 0,
3475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3476 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3477 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3478 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3479 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3481 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3482 192, 193, 194, 195, 196, 0, 197, 198, 779, 565,
3483 0, 0, 780, 199, 233, 0, 0, 0, 0, 0,
3484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3485 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3486 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3487 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3488 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3490 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3491 192, 193, 194, 195, 196, 0, 197, 198, 782, 574,
3492 0, 0, 783, 199, 233, 0, 0, 0, 0, 0,
3493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3494 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3495 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3496 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3497 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3499 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3500 192, 193, 194, 195, 196, 0, 197, 198, 1161, 565,
3501 0, 0, 1162, 199, 233, 0, 0, 0, 0, 0,
3502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3503 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3504 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3505 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3506 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3508 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3509 192, 193, 194, 195, 196, 0, 197, 198, 1164, 574,
3510 0, 0, 1165, 199, 233, 0, 0, 0, 0, 0,
3511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3512 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3513 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3514 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3515 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3517 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3518 192, 193, 194, 195, 196, 0, 197, 198, 1196, 565,
3519 0, 0, 1197, 199, 233, 0, 0, 0, 0, 0,
3520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3521 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3522 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3523 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3524 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3526 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3527 192, 193, 194, 195, 196, 0, 197, 198, 610, 574,
3528 0, 0, 611, 199, 233, 0, 0, 0, 0, 0,
3529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3530 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
3531 0, 0, 179, 180, 0, 0, 0, 0, 181, 182,
3532 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
3533 0, 0, 0, 185, 186, 0, 0, 0, 0, 0,
3534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3535 0, 0, 0, 0, 0, 187, 188, 189, 190, 191,
3536 192, 193, 194, 195, 196, 0, 197, 198, 0, 0,
3542 2, 59, 53, 89, 60, 369, 102, 22, 91, 92,
3543 8, 71, 95, 8, 364, 101, 71, 28, 712, 94,
3544 16, 17, 227, 4, 331, 57, 92, 634, 271, 95,
3545 28, 719, 275, 28, 2, 95, 4, 897, 898, 13,
3546 433, 99, 387, 68, 425, 363, 67, 365, 16, 17,
3547 627, 83, 433, 55, 56, 16, 17, 83, 95, 604,
3548 53, 59, 25, 78, 96, 97, 98, 331, 57, 1044,
3549 2, 1072, 4, 1112, 13, 897, 898, 963, 655, 429,
3550 473, 27, 22, 1110, 860, 53, 54, 690, 858, 57,
3551 860, 482, 868, 411, 55, 295, 296, 25, 868, 928,
3552 68, 99, 68, 100, 100, 259, 414, 415, 16, 17,
3553 428, 1068, 430, 146, 0, 83, 16, 17, 1033, 13,
3554 153, 26, 54, 91, 92, 66, 153, 95, 96, 97,
3555 98, 97, 100, 68, 484, 526, 222, 1052, 78, 100,
3556 458, 870, 25, 786, 787, 1060, 68, 55, 56, 726,
3557 414, 415, 25, 236, 1033, 238, 153, 213, 209, 736,
3558 1151, 96, 97, 126, 1155, 251, 25, 485, 1054, 25,
3559 37, 38, 146, 1052, 328, 97, 1215, 151, 119, 153,
3560 56, 25, 958, 146, 146, 148, 149, 732, 958, 1216,
3561 153, 153, 100, 244, 1023, 1024, 1018, 283, 946, 947,
3562 100, 261, 1177, 1204, 781, 151, 261, 153, 259, 148,
3563 145, 13, 151, 790, 153, 13, 13, 1208, 146, 221,
3564 148, 969, 970, 971, 261, 227, 13, 310, 311, 312,
3565 313, 233, 315, 316, 230, 1192, 232, 233, 143, 444,
3566 242, 209, 592, 636, 310, 311, 312, 313, 280, 892,
3567 893, 858, 602, 634, 280, 636, 601, 151, 279, 153,
3568 25, 13, 230, 146, 232, 233, 259, 1182, 236, 230,
3569 238, 232, 233, 146, 242, 593, 244, 328, 881, 882,
3570 27, 1110, 29, 1112, 1199, 603, 153, 146, 371, 257,
3571 146, 259, 683, 379, 897, 898, 25, 329, 498, 13,
3572 500, 326, 146, 386, 1033, 371, 331, 852, 248, 249,
3573 242, 1171, 280, 373, 859, 1044, 52, 698, 895, 370,
3574 29, 372, 230, 1052, 232, 257, 13, 1021, 309, 874,
3575 230, 1060, 232, 1021, 13, 328, 373, 25, 688, 1068,
3576 329, 309, 310, 311, 312, 313, 314, 315, 316, 151,
3577 148, 153, 109, 151, 151, 153, 153, 25, 326, 52,
3578 328, 329, 364, 331, 151, 326, 153, 365, 364, 687,
3579 331, 689, 695, 1121, 25, 25, 133, 309, 983, 143,
3580 703, 146, 314, 148, 692, 693, 1215, 1216, 991, 414,
3581 415, 699, 700, 26, 1142, 884, 364, 126, 366, 151,
3582 707, 153, 370, 371, 372, 982, 66, 650, 897, 898,
3583 146, 37, 38, 411, 123, 1018, 68, 146, 386, 624,
3584 149, 685, 99, 143, 153, 365, 1033, 429, 692, 693,
3585 1007, 1008, 430, 429, 152, 699, 700, 151, 97, 153,
3586 442, 452, 444, 788, 96, 97, 414, 415, 1177, 126,
3587 482, 537, 99, 146, 452, 100, 482, 452, 146, 119,
3588 458, 429, 662, 1192, 151, 26, 153, 667, 152, 146,
3589 1075, 126, 151, 866, 153, 126, 126, 100, 146, 126,
3590 82, 83, 484, 68, 848, 866, 145, 485, 484, 148,
3591 430, 146, 68, 145, 526, 146, 146, 465, 149, 149,
3592 526, 146, 153, 153, 66, 67, 150, 68, 1053, 153,
3593 143, 819, 97, 77, 482, 148, 484, 425, 458, 594,
3594 96, 97, 605, 146, 414, 415, 586, 129, 130, 1018,
3595 277, 582, 148, 584, 99, 96, 97, 153, 68, 903,
3596 152, 431, 432, 870, 908, 485, 1151, 1036, 753, 894,
3597 1155, 1245, 99, 66, 569, 819, 639, 66, 526, 121,
3598 122, 126, 470, 578, 68, 152, 96, 97, 1171, 459,
3599 572, 858, 136, 137, 138, 1064, 578, 28, 580, 126,
3600 34, 146, 143, 870, 145, 1130, 1163, 148, 14, 15,
3601 592, 15, 96, 97, 1083, 593, 592, 612, 52, 68,
3602 602, 25, 1207, 1208, 68, 603, 602, 618, 121, 122,
3603 612, 68, 121, 122, 582, 145, 584, 99, 148, 651,
3604 618, 126, 624, 618, 592, 651, 68, 96, 97, 569,
3605 68, 146, 96, 97, 602, 58, 604, 605, 578, 152,
3606 97, 145, 644, 152, 126, 741, 126, 2, 731, 4,
3607 99, 683, 99, 593, 77, 97, 112, 683, 96, 97,
3608 685, 16, 17, 603, 146, 731, 66, 692, 693, 99,
3609 730, 639, 612, 68, 699, 700, 145, 126, 729, 126,
3610 68, 145, 740, 651, 99, 108, 688, 99, 146, 112,
3611 56, 689, 688, 146, 68, 153, 26, 146, 53, 54,
3612 68, 96, 97, 643, 644, 707, 708, 145, 710, 97,
3613 712, 126, 680, 68, 126, 683, 684, 685, 66, 119,
3614 688, 121, 122, 97, 692, 693, 634, 68, 148, 97,
3615 68, 699, 700, 1060, 146, 1099, 91, 92, 68, 126,
3616 95, 1068, 740, 1070, 1094, 100, 707, 9, 680, 689,
3617 145, 753, 684, 15, 837, 96, 97, 1044, 96, 97,
3618 1047, 729, 99, 731, 732, 99, 96, 97, 770, 68,
3619 772, 837, 58, 121, 122, 144, 124, 1095, 34, 100,
3620 831, 1068, 66, 1070, 153, 836, 146, 99, 68, 126,
3621 698, 77, 126, 853, 819, 99, 52, 96, 97, 68,
3622 68, 146, 692, 693, 145, 68, 553, 145, 870, 699,
3623 700, 68, 146, 143, 126, 145, 68, 97, 148, 148,
3624 871, 99, 108, 109, 571, 827, 99, 96, 97, 97,
3625 88, 89, 99, 96, 97, 119, 77, 121, 122, 96,
3626 97, 40, 41, 66, 96, 97, 145, 133, 126, 518,
3627 148, 819, 99, 126, 209, 906, 148, 747, 748, 126,
3628 750, 751, 149, 831, 915, 1192, 66, 1194, 836, 837,
3629 902, 126, 1199, 146, 1201, 230, 145, 232, 233, 126,
3630 627, 236, 145, 238, 852, 99, 99, 242, 145, 244,
3631 1177, 859, 1179, 145, 56, 955, 119, 1184, 121, 122,
3632 150, 124, 257, 871, 259, 1192, 874, 1194, 655, 144,
3633 579, 1238, 126, 126, 1201, 146, 585, 54, 587, 119,
3634 77, 121, 122, 26, 124, 1011, 77, 64, 65, 819,
3635 106, 987, 52, 52, 902, 967, 56, 56, 906, 149,
3636 146, 56, 944, 153, 946, 947, 1233, 915, 1004, 151,
3637 151, 1238, 153, 25, 309, 310, 311, 312, 313, 314,
3638 315, 316, 130, 77, 1015, 68, 1017, 969, 970, 971,
3639 15, 326, 17, 328, 864, 149, 331, 66, 144, 726,
3640 94, 95, 146, 134, 135, 136, 137, 138, 146, 736,
3641 870, 144, 146, 96, 97, 144, 146, 66, 1060, 967,
3642 10, 146, 1064, 146, 146, 1056, 1068, 44, 1070, 364,
3643 44, 366, 146, 126, 1016, 370, 371, 372, 8, 1021,
3644 134, 135, 136, 137, 138, 13, 66, 1059, 25, 152,
3645 119, 386, 121, 122, 781, 17, 152, 144, 870, 150,
3646 143, 146, 145, 790, 791, 148, 128, 1015, 15, 1017,
3647 119, 720, 121, 122, 723, 59, 60, 61, 62, 414,
3648 415, 54, 55, 690, 57, 858, 146, 860, 737, 148,
3649 131, 64, 65, 146, 429, 868, 52, 870, 100, 119,
3650 1131, 121, 122, 131, 236, 1053, 1169, 1170, 1056, 100,
3651 146, 1059, 1094, 144, 1096, 52, 1098, 1095, 1094, 126,
3652 146, 52, 146, 1169, 1170, 40, 41, 42, 43, 44,
3653 465, 146, 264, 146, 146, 2, 268, 4, 52, 1121,
3654 146, 126, 131, 870, 56, 146, 1094, 146, 146, 484,
3655 1192, 52, 1194, 54, 55, 56, 57, 1199, 146, 1201,
3656 1142, 52, 9, 54, 55, 56, 57, 146, 895, 52,
3657 151, 54, 55, 56, 57, 1095, 1036, 146, 131, 786,
3658 787, 1041, 1130, 1131, 56, 958, 53, 54, 146, 838,
3659 57, 146, 841, 52, 146, 844, 1238, 146, 146, 2,
3660 1060, 4, 851, 146, 1064, 854, 146, 146, 1068, 120,
3661 1070, 1242, 144, 16, 17, 149, 83, 146, 101, 146,
3662 146, 1169, 1170, 52, 1036, 54, 55, 56, 57, 96,
3663 97, 98, 99, 146, 242, 461, 963, 146, 146, 146,
3664 146, 465, 96, 148, 148, 98, 146, 582, 1060, 584,
3665 53, 54, 1064, 146, 87, 982, 1068, 592, 1070, 77,
3666 1033, 988, 612, 1245, 1098, 68, 708, 602, 917, 604,
3667 605, 1044, 101, 1023, 881, 882, 94, 95, 107, 1052,
3668 1007, 1008, 1110, 870, 891, 892, 893, 1060, 91, 92,
3669 897, 898, 95, 772, 1242, 1068, 887, 100, 1204, 742,
3670 514, 973, 974, 435, 639, 954, 324, 1245, 440, 1083,
3671 891, 443, 1018, 1083, 446, 133, 134, 135, 136, 137,
3672 138, 1083, 105, 889, 1096, 1016, 500, 1054, 99, 957,
3673 462, 1036, 1192, 1064, 1194, 467, 1060, 988, -1, 1199,
3674 -1, 1201, 209, -1, -1, 680, -1, -1, -1, 684,
3675 685, -1, -1, 688, -1, -1, -1, 692, 693, -1,
3676 -1, -1, -1, -1, 699, 700, -1, -1, -1, -1,
3677 -1, -1, -1, -1, -1, 242, 983, 244, 1238, -1,
3678 1192, 949, 1194, 951, 991, 690, -1, 1199, -1, 1201,
3679 257, -1, 259, 525, 729, -1, 731, 732, -1, -1,
3680 -1, -1, -1, -1, 1177, -1, 209, -1, -1, -1,
3681 -1, 1018, -1, 280, -1, -1, -1, -1, -1, 1192,
3682 -1, 1148, -1, -1, -1, -1, 1238, 230, -1, 232,
3683 233, -1, -1, 236, -1, 238, 1163, -1, -1, 242,
3684 -1, 244, 309, -1, -1, -1, -1, 314, -1, -1,
3685 -1, -1, -1, -1, 257, -1, 259, -1, -1, -1,
3686 -1, 328, 329, -1, -1, 1137, 1138, -1, 1075, -1,
3687 -1, 1143, -1, 1145, 1146, -1, -1, -1, -1, 1128,
3688 -1, 786, 787, -1, 819, -1, -1, 56, -1, 52,
3689 -1, 54, 55, 56, 57, 58, 831, -1, -1, 366,
3690 -1, 836, 837, 370, -1, 372, 309, 310, 311, 312,
3691 313, 314, 315, 316, 77, -1, -1, 852, -1, -1,
3692 -1, -1, -1, 326, 859, 328, -1, -1, 331, -1,
3693 -1, -1, -1, -1, -1, -1, 871, -1, 101, 874,
3694 1189, -1, -1, -1, 1151, 108, 109, -1, 1155, 1117,
3695 1118, 1223, 1224, 1225, 1226, 1123, -1, 1125, -1, 1127,
3696 -1, 364, -1, 366, 1171, -1, -1, 370, 371, 372,
3697 133, 906, 1244, -1, -1, -1, 881, 882, -1, -1,
3698 915, -1, -1, 386, -1, -1, 891, 892, 893, -1,
3699 -1, -1, 897, 898, -1, -1, -1, -1, 465, -1,
3700 1207, 1208, -1, -1, -1, -1, 738, -1, -1, -1,
3701 -1, 414, 415, -1, -1, 482, -1, -1, -1, -1,
3702 752, -1, 754, -1, -1, -1, 429, -1, 52, -1,
3703 54, 55, 56, 57, 58, -1, 25, -1, 207, -1,
3704 -1, 210, 211, 212, -1, -1, -1, -1, -1, 1217,
3705 1218, 1219, 1220, 77, -1, -1, -1, -1, -1, 526,
3706 -1, -1, 465, -1, -1, -1, -1, -1, -1, -1,
3707 -1, -1, -1, -1, -1, 1243, -1, 101, 983, -1,
3708 1015, 484, 1017, 107, 108, 109, 991, -1, 77, 78,
3709 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
3710 89, -1, -1, -1, -1, 94, 95, -1, -1, 133,
3711 -1, -1, 136, 1018, -1, 582, -1, 584, 1053, -1,
3712 -1, 1056, -1, -1, -1, -1, -1, -1, -1, 153,
3713 -1, 2, -1, 4, -1, -1, -1, 604, 127, -1,
3714 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
3715 -1, -1, -1, -1, -1, -1, -1, 326, -1, 1094,
3716 -1, -1, 331, -1, 896, -1, -1, -1, -1, -1,
3717 1075, -1, -1, -1, -1, -1, -1, -1, -1, 582,
3718 -1, 584, 53, 54, 651, -1, 57, -1, -1, 592,
3719 -1, -1, -1, -1, -1, 1130, 1131, -1, -1, 602,
3720 -1, 604, 605, 935, 936, -1, -1, -1, -1, -1,
3721 -1, -1, 83, 680, -1, -1, 683, 684, -1, -1,
3722 -1, -1, -1, 690, -1, 96, 97, 98, -1, -1,
3723 -1, -1, -1, -1, 1169, 1170, 639, -1, -1, -1,
3724 -1, -1, -1, -1, -1, -1, 1151, 979, -1, -1,
3725 1155, -1, -1, -1, -1, 424, 425, -1, -1, -1,
3726 -1, -1, 729, -1, 433, 732, 1171, -1, -1, -1,
3727 -1, -1, -1, 1005, 1006, -1, -1, 680, -1, -1,
3728 -1, 684, 685, -1, -1, 688, -1, -1, -1, 692,
3729 693, -1, -1, -1, -1, 1027, 699, 700, -1, -1,
3730 -1, 470, 1207, 1208, 473, -1, 52, 1242, 54, 55,
3731 56, 57, 58, -1, -1, -1, -1, -1, -1, 786,
3732 787, -1, -1, -1, -1, -1, 729, -1, 731, 732,
3733 2, 77, 4, -1, -1, -1, -1, -1, 209, 77,
3734 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3735 519, -1, -1, -1, -1, 101, 94, 95, -1, -1,
3736 -1, 107, 108, 109, 831, -1, -1, -1, -1, 836,
3737 -1, 242, -1, 244, -1, -1, 1108, -1, -1, -1,
3738 -1, 53, 54, 1115, -1, 852, 257, 133, 259, 2,
3739 136, 4, 859, 131, 132, 133, 134, 135, 136, 137,
3740 138, -1, 148, -1, 871, -1, -1, 874, -1, 280,
3741 -1, -1, -1, -1, 881, 882, 819, -1, -1, -1,
3742 -1, -1, -1, -1, 891, 892, 893, -1, 831, -1,
3743 897, 898, -1, 836, 837, 902, -1, -1, 309, 906,
3744 53, 54, -1, 314, 57, -1, -1, -1, 915, 852,
3745 619, -1, 621, -1, -1, -1, 859, 328, 329, -1,
3746 331, -1, -1, -1, -1, 634, -1, 636, 871, -1,
3747 83, 874, -1, -1, -1, -1, -1, -1, -1, 2,
3748 -1, 4, -1, 96, 97, 98, 99, -1, -1, -1,
3749 -1, -1, -1, -1, -1, 366, -1, -1, -1, 370,
3750 967, 372, -1, 906, -1, -1, -1, -1, -1, -1,
3751 679, -1, 915, -1, -1, -1, 983, -1, -1, -1,
3752 -1, -1, -1, -1, 991, -1, -1, -1, -1, 698,
3753 53, 54, -1, -1, -1, -1, -1, 209, 707, -1,
3754 -1, -1, -1, 414, 415, -1, -1, -1, 1015, -1,
3755 1017, 1018, -1, 722, -1, -1, -1, -1, -1, -1,
3756 -1, -1, -1, -1, -1, -1, -1, -1, -1, 690,
3757 242, -1, 244, 96, -1, -1, -1, -1, -1, -1,
3758 -1, -1, -1, -1, -1, 257, 1053, 259, -1, 1056,
3759 -1, -1, 1059, 690, 465, -1, 209, -1, -1, -1,
3760 -1, -1, -1, -1, 773, -1, -1, -1, 1075, -1,
3761 -1, 482, 1015, -1, 1017, -1, -1, -1, -1, -1,
3762 -1, -1, -1, -1, -1, -1, -1, -1, -1, 242,
3763 -1, 244, -1, 690, -1, -1, -1, 309, -1, -1,
3764 -1, -1, 314, -1, 257, -1, 259, -1, -1, -1,
3765 1053, -1, -1, 1056, -1, 526, 328, -1, -1, 331,
3766 -1, -1, -1, 1130, 1131, 786, 787, 280, 52, -1,
3767 54, 55, 56, 57, 58, -1, -1, 846, -1, -1,
3768 -1, -1, -1, -1, 1151, -1, 209, -1, 1155, 786,
3769 787, 1094, -1, 77, 366, -1, 309, 866, 370, -1,
3770 372, 314, -1, -1, 1171, -1, -1, 91, -1, -1,
3771 -1, 582, -1, 584, -1, 328, 329, 101, -1, 242,
3772 -1, 244, -1, 107, 108, 109, -1, 1130, 1131, 786,
3773 787, -1, -1, 604, 257, -1, 259, -1, -1, -1,
3774 1207, 1208, 414, 415, -1, 914, -1, -1, -1, 133,
3775 -1, -1, 136, 366, -1, -1, -1, 370, -1, 372,
3776 881, 882, -1, -1, -1, -1, 1169, 1170, -1, -1,
3777 891, 892, 893, 942, -1, 1242, 897, 898, -1, -1,
3778 651, -1, -1, -1, 881, 882, 309, -1, -1, 660,
3779 -1, 314, -1, 465, 891, 892, 893, -1, -1, -1,
3780 897, 898, -1, -1, -1, 328, -1, -1, 331, 680,
3781 -1, -1, 683, 684, 685, -1, -1, -1, -1, -1,
3782 -1, 692, 693, -1, 881, 882, -1, -1, 699, 700,
3783 -1, -1, -1, -1, 891, 892, 893, -1, -1, 1242,
3784 897, 898, -1, 366, -1, -1, -1, 370, -1, 372,
3785 1019, -1, 465, -1, -1, -1, -1, -1, 729, -1,
3786 -1, 732, 983, 1032, -1, -1, -1, -1, -1, 482,
3787 991, -1, -1, -1, 52, -1, 54, 55, 56, 57,
3788 58, -1, -1, -1, -1, -1, 983, -1, -1, -1,
3789 -1, 414, 415, -1, 991, -1, -1, 1018, -1, 77,
3790 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3791 582, -1, 584, 526, -1, -1, -1, -1, -1, -1,
3792 -1, 1018, -1, 101, -1, -1, 983, -1, -1, 107,
3793 108, 109, 604, -1, 991, -1, -1, -1, -1, -1,
3794 -1, -1, 465, -1, -1, -1, -1, -1, 819, -1,
3795 -1, -1, -1, -1, 1075, 133, -1, -1, 136, -1,
3796 831, 1018, -1, -1, -1, 836, -1, -1, -1, 582,
3797 -1, 584, -1, -1, -1, -1, -1, -1, 1075, -1,
3798 -1, 852, -1, -1, -1, -1, -1, -1, 859, -1,
3799 -1, 604, -1, -1, -1, -1, -1, -1, -1, -1,
3800 871, -1, -1, 874, -1, -1, -1, -1, 680, -1,
3801 -1, -1, 684, 685, -1, -1, -1, -1, 1075, -1,
3802 692, 693, -1, -1, -1, -1, -1, 699, 700, -1,
3803 1151, 902, -1, -1, 1155, 906, -1, -1, 651, -1,
3804 -1, -1, -1, -1, 915, -1, 690, -1, -1, -1,
3805 1171, -1, -1, -1, 1151, -1, -1, 729, 1155, 582,
3806 732, 584, -1, -1, -1, -1, -1, 680, -1, -1,
3807 683, 684, -1, -1, 1171, 690, -1, -1, -1, -1,
3808 -1, 604, -1, -1, -1, -1, 1207, 1208, -1, -1,
3809 -1, -1, -1, -1, 1151, -1, 967, -1, 1155, -1,
3810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3811 1207, 1208, -1, -1, 1171, -1, 729, -1, -1, 732,
3812 690, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3813 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3814 -1, -1, 786, 787, 1015, -1, 1017, 819, -1, -1,
3815 1207, 1208, -1, -1, -1, -1, -1, 680, -1, 831,
3816 -1, 684, 685, -1, 836, -1, -1, -1, -1, 692,
3817 693, 786, 787, -1, -1, -1, 699, 700, -1, -1,
3818 852, -1, 1053, -1, -1, 1056, -1, 859, 1059, -1,
3819 -1, -1, -1, -1, -1, -1, -1, -1, -1, 871,
3820 -1, -1, 874, -1, -1, -1, 729, -1, -1, 732,
3821 -1, -1, -1, -1, -1, -1, 786, 787, 831, -1,
3822 -1, -1, -1, 836, -1, -1, -1, -1, -1, -1,
3823 -1, -1, -1, -1, 906, -1, -1, 881, 882, 852,
3824 -1, -1, -1, 915, -1, -1, 859, 891, 892, 893,
3825 -1, -1, -1, 897, 898, -1, -1, -1, 871, 1130,
3826 1131, 874, -1, -1, -1, -1, 881, 882, -1, -1,
3827 -1, -1, -1, -1, -1, -1, 891, 892, 893, -1,
3828 -1, -1, 897, 898, -1, -1, -1, -1, -1, 902,
3829 -1, -1, -1, 906, -1, -1, 819, -1, -1, -1,
3830 -1, -1, 915, -1, -1, -1, -1, -1, 831, -1,
3831 -1, 881, 882, 836, -1, -1, -1, -1, -1, -1,
3832 -1, 891, 892, 893, -1, 16, 17, 897, 898, 852,
3833 -1, -1, -1, -1, -1, -1, 859, -1, -1, 983,
3834 -1, -1, -1, 1015, -1, 1017, -1, 991, 871, -1,
3835 -1, 874, -1, -1, 967, -1, -1, 48, 49, 50,
3836 51, -1, -1, -1, 55, 56, -1, -1, 983, -1,
3837 -1, 1242, -1, -1, 1018, -1, 991, 68, 69, 902,
3838 -1, 1053, -1, 906, 1056, -1, -1, -1, -1, -1,
3839 -1, -1, 915, -1, -1, -1, -1, -1, 33, 34,
3840 35, 36, 1015, 1018, 1017, -1, -1, -1, -1, 100,
3841 -1, -1, -1, 983, 49, 50, 51, -1, -1, -1,
3842 -1, 991, -1, -1, 59, 60, 61, 62, 63, -1,
3843 -1, 1075, -1, -1, -1, -1, -1, -1, -1, -1,
3844 1053, -1, -1, 1056, -1, -1, 1059, -1, 1018, -1,
3845 -1, -1, -1, -1, -1, -1, -1, -1, 1130, 1131,
3846 1075, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3847 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114,
3848 115, 116, 117, 118, -1, -1, -1, -1, -1, -1,
3849 -1, -1, 1015, -1, 1017, -1, -1, -1, -1, -1,
3850 -1, -1, -1, -1, 139, 1075, -1, 1151, -1, -1,
3851 -1, 1155, -1, -1, -1, -1, 207, 1130, 1131, 210,
3852 211, 212, -1, 214, -1, -1, -1, 1171, -1, -1,
3853 1053, -1, -1, 1056, -1, -1, 1151, -1, -1, 230,
3854 1155, 232, 233, -1, -1, -1, -1, -1, -1, -1,
3855 -1, -1, -1, -1, -1, -1, 1171, -1, -1, -1,
3856 -1, -1, -1, 1207, 1208, -1, -1, -1, -1, -1,
3857 1242, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3858 -1, 1151, -1, -1, -1, 1155, -1, -1, -1, -1,
3859 -1, -1, 1207, 1208, -1, -1, -1, -1, -1, -1,
3860 -1, 1171, -1, -1, -1, -1, -1, 1130, 1131, -1,
3861 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3862 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1242,
3863 -1, -1, -1, -1, -1, 326, -1, 1207, 1208, -1,
3864 331, -1, 333, 334, 335, 336, 337, -1, -1, 340,
3865 341, 342, 343, 344, 345, 346, 347, 348, -1, -1,
3866 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
3867 -1, -1, -1, 364, -1, -1, -1, -1, -1, -1,
3868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3869 -1, -1, -1, -1, -1, -1, -1, 77, 78, 79,
3870 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3871 -1, -1, -1, -1, 94, 95, -1, -1, -1, 1242,
3872 -1, -1, -1, 414, 415, -1, -1, -1, -1, -1,
3873 -1, -1, 423, 424, 425, -1, -1, -1, 429, -1,
3874 431, 432, 433, -1, -1, -1, -1, 127, 439, 129,
3875 130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
3876 -1, -1, -1, 454, -1, -1, -1, -1, 459, -1,
3877 -1, -1, -1, 153, -1, -1, -1, -1, -1, 470,
3878 -1, -1, 473, -1, -1, -1, -1, -1, -1, 0,
3879 -1, -1, -1, 484, -1, -1, -1, 8, 9, 10,
3880 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3881 -1, 502, -1, -1, 25, 26, 27, 28, 29, -1,
3882 -1, -1, -1, -1, -1, -1, 37, 38, 519, 40,
3883 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3884 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3885 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3886 -1, -1, -1, -1, -1, -1, 77, 78, 79, 80,
3887 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
3888 -1, -1, -1, 94, 95, 96, 97, -1, 99, 100,
3889 -1, -1, -1, -1, -1, 106, -1, -1, -1, -1,
3890 -1, 592, -1, -1, -1, -1, -1, -1, -1, 120,
3891 -1, 602, 123, -1, -1, 126, 127, 128, 129, 130,
3892 131, 132, 133, 134, 135, 136, 137, 138, 619, -1,
3893 621, -1, 143, 144, 145, 146, -1, -1, 149, 150,
3894 151, -1, 153, 634, -1, 636, -1, -1, -1, 0,
3895 -1, -1, -1, -1, -1, -1, -1, 8, 9, 10,
3896 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3897 -1, -1, -1, -1, 25, 26, 27, -1, -1, -1,
3898 -1, -1, -1, -1, -1, -1, 37, 38, 679, 40,
3899 41, 42, 43, 44, 685, 686, -1, 688, -1, -1,
3900 -1, 692, 693, -1, -1, -1, -1, 698, 699, 700,
3901 -1, -1, -1, -1, -1, -1, 707, 68, -1, -1,
3902 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3903 -1, 722, -1, -1, -1, -1, -1, -1, -1, -1,
3904 -1, -1, -1, -1, -1, 96, 97, -1, -1, -1,
3905 -1, -1, -1, -1, -1, -1, 747, 748, -1, 750,
3906 751, 33, 34, 35, 36, -1, -1, -1, -1, 120,
3907 -1, -1, -1, -1, -1, -1, -1, 49, 50, 51,
3908 52, -1, 773, -1, 56, -1, 58, 59, 60, 61,
3909 62, 63, 143, 144, -1, -1, -1, 148, 149, -1,
3910 151, -1, 153, -1, -1, 77, -1, -1, -1, -1,
3911 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
3912 -1, 812, -1, -1, -1, -1, 98, -1, 819, 101,
3913 -1, -1, 104, 105, -1, 107, 108, -1, 110, 111,
3914 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
3915 -1, -1, -1, -1, -1, 846, -1, -1, -1, -1,
3916 132, -1, -1, -1, -1, 0, 1, 139, 3, 4,
3917 5, 6, 7, 864, -1, 866, 11, 12, -1, -1,
3918 -1, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3919 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3920 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3921 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3922 55, 56, 57, 914, 59, 60, 61, 62, 63, 64,
3923 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3924 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
3925 -1, 942, -1, -1, -1, 90, 91, -1, -1, -1,
3926 -1, -1, -1, 98, -1, -1, 101, 102, -1, 104,
3927 105, -1, 107, -1, -1, 110, 111, 112, 113, 114,
3928 115, 116, 117, 118, -1, -1, -1, -1, -1, -1,
3929 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3930 -1, -1, -1, -1, 139, 140, 141, -1, -1, -1,
3931 -1, -1, -1, -1, -1, -1, 151, -1, 153, -1,
3932 -1, -1, -1, -1, -1, -1, -1, -1, 1019, 0,
3933 -1, -1, -1, -1, -1, -1, -1, 8, 9, 10,
3934 -1, 1032, 13, 14, 15, -1, 17, -1, -1, -1,
3935 -1, 44, -1, -1, 25, -1, 27, 28, 29, -1,
3936 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3937 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3938 -1, -1, -1, -1, 77, 78, 79, 80, 81, 82,
3939 83, 84, 85, 86, 87, 88, 89, 68, -1, -1,
3940 -1, 94, 95, 1094, -1, -1, 77, 78, 79, 80,
3941 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
3942 -1, -1, -1, 94, 95, 96, 97, -1, 99, 100,
3943 -1, -1, -1, -1, 127, 106, 129, 130, 131, 132,
3944 133, 134, 135, 136, 137, 138, -1, -1, -1, 120,
3945 -1, -1, 123, 146, -1, 126, 127, 128, 129, 130,
3946 131, 132, 133, 134, 135, 136, 137, 138, -1, -1,
3947 -1, -1, -1, 144, 145, 146, 0, -1, 149, 150,
3948 151, -1, 153, -1, 8, 9, 10, -1, -1, 13,
3949 14, 15, -1, 17, -1, -1, -1, -1, 44, -1,
3950 -1, 25, -1, 27, 28, 29, -1, -1, -1, -1,
3951 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3952 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3953 -1, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3954 86, 87, 88, 89, 68, -1, -1, -1, 94, 95,
3955 -1, -1, -1, 77, 78, 79, 80, 81, 82, 83,
3956 84, 85, 86, 87, 88, 89, -1, -1, -1, -1,
3957 94, 95, 96, 97, -1, 99, 100, -1, -1, -1,
3958 -1, 127, 106, 129, 130, 131, 132, 133, 134, 135,
3959 136, 137, 138, -1, -1, -1, 120, -1, -1, 123,
3960 -1, -1, 126, 127, 128, 129, 130, 131, 132, 133,
3961 134, 135, 136, 137, 138, -1, -1, -1, -1, -1,
3962 144, 145, 146, 0, -1, 149, 150, 151, -1, 153,
3963 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3964 17, -1, -1, -1, -1, -1, -1, -1, 25, 26,
3965 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3966 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3967 -1, -1, -1, -1, -1, -1, -1, -1, 77, 78,
3968 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
3969 89, 68, -1, -1, -1, 94, 95, -1, -1, -1,
3970 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3971 87, 88, 89, -1, -1, -1, -1, 94, 95, 96,
3972 97, -1, -1, 100, -1, -1, -1, -1, 127, 106,
3973 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
3974 -1, -1, -1, 120, -1, -1, 123, -1, -1, -1,
3975 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3976 137, 138, -1, -1, -1, -1, 143, 144, 145, 146,
3977 0, -1, 149, 150, 151, -1, 153, -1, 8, 9,
3978 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3979 -1, -1, -1, -1, -1, 25, 26, 27, 28, 29,
3980 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3981 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3982 -1, -1, -1, -1, -1, 77, 78, 79, 80, 81,
3983 82, 83, 84, 85, 86, 87, 88, 89, 68, -1,
3984 -1, -1, 94, 95, -1, -1, -1, 77, 78, 79,
3985 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3986 -1, -1, -1, -1, 94, 95, 96, 97, -1, -1,
3987 100, -1, -1, -1, -1, -1, 106, 129, 130, 131,
3988 132, 133, 134, 135, 136, 137, 138, -1, -1, -1,
3989 120, -1, -1, 123, -1, -1, -1, 127, 128, 129,
3990 130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
3991 -1, -1, -1, 143, 144, 145, 146, 0, -1, 149,
3992 150, 151, -1, 153, -1, 8, 9, 10, -1, -1,
3993 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3994 -1, -1, 25, -1, 27, 28, 29, -1, -1, -1,
3995 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3996 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3997 -1, -1, 77, 78, 79, 80, 81, 82, 83, 84,
3998 -1, 86, 87, -1, -1, 68, -1, -1, -1, 94,
3999 95, -1, -1, -1, 77, 78, 79, 80, 81, 82,
4000 83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
4001 -1, 94, 95, 96, 97, -1, 99, 100, -1, -1,
4002 -1, -1, -1, 106, 129, 130, 131, 132, 133, 134,
4003 135, 136, 137, 138, -1, -1, -1, 120, -1, -1,
4004 123, -1, -1, 126, 127, 128, 129, 130, 131, 132,
4005 133, 134, 135, 136, 137, 138, -1, -1, -1, -1,
4006 -1, 144, 145, 146, 0, -1, 149, 150, 151, -1,
4007 153, -1, 8, 9, 10, -1, -1, 13, 14, 15,
4008 -1, 17, -1, -1, -1, -1, -1, -1, -1, 25,
4009 26, 27, 28, -1, -1, -1, -1, -1, -1, -1,
4010 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
4011 -1, -1, -1, -1, -1, -1, -1, -1, -1, 77,
4012 78, 79, 80, 81, 82, 83, -1, -1, 86, 87,
4013 -1, -1, 68, -1, -1, -1, 94, 95, -1, -1,
4014 -1, 77, 78, 79, 80, 81, 82, 83, 84, 85,
4015 86, 87, 88, 89, -1, -1, -1, -1, 94, 95,
4016 96, 97, -1, -1, 100, -1, -1, -1, -1, -1,
4017 106, 129, 130, 131, 132, 133, 134, 135, 136, 137,
4018 138, -1, -1, -1, 120, -1, -1, -1, -1, -1,
4019 -1, 127, -1, 129, 130, 131, 132, 133, 134, 135,
4020 136, 137, 138, -1, -1, -1, -1, 143, 144, 145,
4021 146, 0, 148, 149, 150, 151, -1, 153, -1, 8,
4022 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
4023 -1, -1, -1, -1, -1, -1, 25, -1, 27, 28,
4024 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
4025 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
4026 -1, -1, -1, -1, -1, -1, 77, 78, 79, 80,
4027 81, 82, 83, -1, -1, 86, 87, -1, -1, 68,
4028 -1, -1, -1, 94, 95, -1, -1, -1, 77, 78,
4029 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
4030 89, -1, -1, -1, -1, 94, 95, 96, 97, -1,
4031 -1, 100, -1, -1, -1, -1, -1, 106, 129, 130,
4032 131, 132, 133, 134, 135, 136, 137, 138, -1, -1,
4033 -1, 120, -1, -1, 123, -1, -1, -1, 127, 128,
4034 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
4035 -1, -1, -1, -1, -1, 144, 145, 146, 0, -1,
4036 149, 150, 151, -1, 153, -1, 8, 9, 10, -1,
4037 -1, 13, 14, 15, -1, 17, -1, -1, -1, -1,
4038 -1, -1, -1, 25, 26, 27, 28, -1, -1, -1,
4039 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
4040 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
4041 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4042 -1, -1, -1, -1, -1, -1, 68, -1, -1, -1,
4043 -1, -1, -1, -1, -1, 77, 78, 79, 80, 81,
4044 82, 83, 84, 85, 86, 87, 88, 89, -1, -1,
4045 -1, -1, 94, 95, 96, 97, -1, -1, 100, -1,
4046 -1, -1, -1, -1, 106, -1, -1, -1, -1, -1,
4047 -1, -1, -1, -1, -1, -1, -1, -1, 120, -1,
4048 -1, -1, -1, -1, -1, 127, -1, 129, 130, 131,
4049 132, 133, 134, 135, 136, 137, 138, -1, -1, -1,
4050 -1, 143, 144, 145, 146, 0, 148, 149, 150, 151,
4051 -1, 153, -1, 8, 9, 10, -1, -1, 13, 14,
4052 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
4053 25, -1, 27, 28, -1, -1, -1, -1, -1, -1,
4054 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
4055 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4056 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4057 -1, -1, -1, 68, -1, -1, -1, -1, -1, -1,
4058 -1, -1, 77, 78, 79, 80, 81, 82, 83, 84,
4059 85, 86, 87, 88, 89, -1, -1, -1, -1, 94,
4060 95, 96, 97, -1, -1, 100, -1, -1, -1, -1,
4061 -1, 106, -1, -1, -1, -1, -1, -1, -1, -1,
4062 -1, -1, -1, -1, -1, 120, -1, -1, -1, -1,
4063 -1, -1, 127, -1, 129, 130, 131, 132, 133, 134,
4064 135, 136, 137, 138, -1, -1, -1, -1, -1, 144,
4065 145, 146, 0, 148, 149, 150, 151, -1, 153, -1,
4066 8, 9, 10, -1, -1, -1, 14, 15, -1, 17,
4067 -1, -1, -1, -1, -1, -1, -1, 25, 26, -1,
4068 -1, -1, -1, -1, -1, -1, -1, -1, -1, 37,
4069 38, -1, 40, 41, 42, 43, 44, -1, -1, -1,
4070 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4071 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4072 68, -1, -1, -1, -1, -1, -1, -1, -1, 77,
4073 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
4074 88, 89, -1, -1, -1, -1, 94, 95, 96, 97,
4075 -1, 99, -1, -1, -1, -1, -1, -1, -1, -1,
4076 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4077 -1, -1, 120, -1, -1, -1, -1, -1, 126, 127,
4078 -1, 129, 130, 131, 132, 133, 134, 135, 136, 137,
4079 138, -1, -1, -1, -1, 143, 144, 145, 146, 0,
4080 -1, 149, -1, 151, -1, 153, -1, 8, 9, 10,
4081 -1, -1, -1, 14, 15, -1, 17, -1, -1, -1,
4082 -1, -1, -1, -1, 25, 26, -1, -1, -1, -1,
4083 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
4084 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
4085 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4086 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
4087 -1, -1, -1, -1, -1, -1, 77, 78, 79, 80,
4088 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
4089 -1, -1, -1, 94, 95, 96, 97, -1, 99, -1,
4090 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4091 -1, -1, -1, -1, -1, -1, -1, -1, -1, 120,
4092 -1, -1, -1, -1, -1, 126, 127, -1, 129, 130,
4093 131, 132, 133, 134, 135, 136, 137, 138, -1, -1,
4094 -1, -1, 143, 144, 145, 146, 0, -1, 149, -1,
4095 151, -1, 153, -1, 8, 9, 10, -1, -1, -1,
4096 14, 15, -1, 17, -1, -1, -1, -1, -1, -1,
4097 -1, 25, -1, -1, -1, -1, -1, -1, -1, -1,
4098 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
4099 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4100 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4101 -1, -1, -1, -1, 68, -1, -1, -1, -1, -1,
4102 -1, -1, -1, 77, 78, 79, 80, 81, 82, 83,
4103 84, 85, 86, 87, 88, 89, -1, -1, -1, -1,
4104 94, 95, 96, 97, -1, 99, -1, -1, -1, -1,
4105 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4106 -1, -1, -1, -1, -1, -1, 120, -1, -1, -1,
4107 -1, -1, 126, 127, -1, 129, 130, 131, 132, 133,
4108 134, 135, 136, 137, 138, -1, -1, -1, -1, -1,
4109 144, 145, 146, 0, -1, 149, -1, 151, -1, 153,
4110 -1, 8, 9, 10, -1, -1, -1, 14, 15, -1,
4111 17, -1, -1, -1, -1, -1, -1, -1, 25, -1,
4112 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4113 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
4114 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4115 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4116 -1, 68, -1, -1, -1, -1, -1, -1, -1, -1,
4117 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
4118 87, 88, 89, -1, -1, -1, -1, 94, 95, 96,
4119 97, -1, 99, -1, -1, -1, -1, -1, -1, -1,
4120 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4121 -1, -1, -1, 120, -1, -1, -1, -1, -1, 126,
4122 127, -1, 129, 130, 131, 132, 133, 134, 135, 136,
4123 137, 138, -1, -1, -1, -1, -1, 144, 145, 146,
4124 -1, -1, 149, -1, 151, 1, 153, 3, 4, 5,
4125 6, 7, 8, 9, 10, 11, 12, -1, -1, 15,
4126 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4127 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4128 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
4129 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4130 56, 57, -1, 59, 60, 61, 62, 63, 64, 65,
4131 -1, -1, -1, -1, -1, -1, -1, -1, -1, 75,
4132 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4133 -1, -1, -1, -1, 90, 91, -1, -1, -1, -1,
4134 -1, -1, 98, -1, -1, 101, 102, -1, 104, 105,
4135 -1, 107, -1, -1, 110, 111, 112, 113, 114, 115,
4136 116, 117, 118, -1, -1, -1, -1, -1, -1, -1,
4137 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4138 -1, -1, -1, 139, 140, 141, -1, -1, -1, -1,
4139 -1, -1, -1, -1, -1, 151, 1, 153, 3, 4,
4140 5, 6, 7, -1, -1, 10, 11, 12, -1, 14,
4141 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4142 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4143 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4144 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
4145 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
4146 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4147 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
4148 -1, -1, -1, -1, -1, 90, 91, -1, -1, -1,
4149 -1, -1, -1, 98, -1, -1, 101, 102, -1, 104,
4150 105, -1, 107, -1, -1, 110, 111, 112, 113, 114,
4151 115, 116, 117, 118, -1, -1, -1, -1, -1, -1,
4152 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4153 -1, -1, -1, -1, 139, 140, 141, -1, -1, -1,
4154 -1, -1, -1, -1, -1, -1, 151, 1, 153, 3,
4155 4, 5, 6, 7, -1, -1, 10, 11, 12, -1,
4156 -1, 15, 16, 17, 18, 19, 20, 21, 22, 23,
4157 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4158 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4159 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
4160 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
4161 64, 65, -1, -1, -1, -1, -1, -1, -1, -1,
4162 -1, 75, 76, -1, -1, -1, -1, -1, -1, -1,
4163 -1, -1, -1, -1, -1, -1, 90, 91, -1, -1,
4164 -1, -1, -1, -1, 98, -1, -1, 101, 102, -1,
4165 104, 105, -1, 107, -1, -1, 110, 111, 112, 113,
4166 114, 115, 116, 117, 118, -1, -1, -1, -1, -1,
4167 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4168 -1, -1, -1, -1, -1, 139, 140, 141, -1, -1,
4169 -1, -1, -1, -1, -1, -1, -1, 151, 1, 153,
4170 3, 4, 5, 6, 7, -1, -1, 10, 11, 12,
4171 -1, -1, 15, 16, -1, 18, 19, 20, 21, 22,
4172 23, 24, 25, -1, -1, -1, -1, 30, 31, 32,
4173 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4174 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
4175 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4176 63, 64, 65, -1, -1, -1, -1, -1, -1, -1,
4177 -1, -1, 75, 76, -1, -1, -1, -1, -1, -1,
4178 -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
4179 -1, -1, -1, -1, -1, 98, -1, -1, 101, 102,
4180 -1, 104, 105, -1, 107, -1, -1, 110, 111, 112,
4181 113, 114, 115, 116, 117, 118, -1, -1, -1, -1,
4182 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4183 -1, -1, -1, -1, -1, -1, 139, 140, 141, -1,
4184 -1, -1, -1, -1, -1, -1, -1, -1, 151, 1,
4185 153, 3, 4, 5, 6, 7, -1, -1, 10, 11,
4186 12, -1, -1, 15, 16, -1, 18, 19, 20, 21,
4187 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4188 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4189 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
4190 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4191 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
4192 -1, -1, -1, 75, 76, -1, -1, -1, -1, -1,
4193 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
4194 -1, -1, -1, -1, -1, -1, 98, -1, -1, 101,
4195 102, -1, 104, 105, -1, 107, -1, -1, 110, 111,
4196 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
4197 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
4198 6, 7, -1, 9, 10, 11, 12, 139, 140, 141,
4199 16, -1, 18, 19, 20, 21, 22, 23, 24, 151,
4200 -1, 153, -1, -1, 30, 31, 32, 33, 34, 35,
4201 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
4202 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4203 56, 57, -1, 59, 60, 61, 62, 63, 64, 65,
4204 -1, -1, -1, -1, -1, -1, -1, -1, -1, 75,
4205 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4206 -1, -1, -1, -1, 90, 91, -1, -1, -1, -1,
4207 -1, -1, 98, -1, -1, 101, 102, -1, 104, 105,
4208 -1, 107, -1, -1, 110, 111, 112, 113, 114, 115,
4209 116, 117, 118, -1, -1, -1, -1, -1, -1, -1,
4210 -1, 1, -1, 3, 4, 5, 6, 7, -1, -1,
4211 -1, 11, 12, 139, 140, 141, 16, -1, 18, 19,
4212 20, 21, 22, 23, 24, 151, -1, 153, -1, -1,
4213 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4214 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4215 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4216 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
4217 -1, -1, -1, -1, -1, 75, 76, -1, -1, -1,
4218 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4219 90, 91, -1, -1, -1, -1, -1, -1, 98, -1,
4220 -1, 101, 102, -1, 104, 105, -1, 107, -1, -1,
4221 110, 111, 112, 113, 114, 115, 116, 117, 118, -1,
4222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4223 -1, -1, -1, -1, -1, -1, -1, -1, -1, 139,
4224 140, 141, -1, -1, -1, -1, -1, -1, -1, 149,
4225 -1, 151, 1, 153, 3, 4, 5, 6, 7, -1,
4226 -1, -1, 11, 12, -1, -1, -1, 16, -1, 18,
4227 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4228 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4229 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
4230 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4231 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
4232 -1, -1, -1, -1, -1, -1, 75, 76, -1, -1,
4233 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4234 -1, 90, 91, -1, -1, -1, -1, -1, -1, 98,
4235 -1, -1, 101, 102, -1, 104, 105, -1, 107, -1,
4236 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
4237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4238 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4239 139, 140, 141, -1, -1, -1, -1, -1, -1, -1,
4240 149, -1, 151, 1, 153, 3, 4, 5, 6, 7,
4241 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
4242 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4243 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4244 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4245 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4246 -1, 59, 60, 61, 62, 63, 64, 65, -1, -1,
4247 -1, -1, -1, -1, -1, -1, -1, 75, 76, -1,
4248 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4249 -1, -1, 90, 91, -1, -1, -1, -1, -1, -1,
4250 98, -1, -1, 101, 102, -1, 104, 105, -1, 107,
4251 -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
4252 118, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4253 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4254 -1, 139, 140, 141, -1, -1, 144, -1, -1, -1,
4255 -1, -1, -1, 151, 1, 153, 3, 4, 5, 6,
4256 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
4257 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4258 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4259 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
4260 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4261 57, -1, 59, 60, 61, 62, 63, 64, 65, -1,
4262 -1, -1, -1, -1, -1, -1, -1, -1, 75, 76,
4263 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4264 -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
4265 -1, 98, -1, -1, 101, 102, -1, 104, 105, -1,
4266 107, -1, -1, 110, 111, 112, 113, 114, 115, 116,
4267 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
4268 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4269 -1, -1, 139, 140, 141, -1, -1, 144, -1, -1,
4270 -1, -1, -1, -1, 151, 1, 153, 3, 4, 5,
4271 6, 7, -1, -1, 10, 11, 12, -1, -1, -1,
4272 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4273 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4274 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
4275 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4276 56, 57, -1, 59, 60, 61, 62, 63, 64, 65,
4277 -1, -1, -1, -1, -1, -1, -1, -1, -1, 75,
4278 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4279 -1, -1, -1, -1, 90, 91, -1, -1, -1, -1,
4280 -1, -1, 98, -1, -1, 101, 102, -1, 104, 105,
4281 -1, 107, -1, -1, 110, 111, 112, 113, 114, 115,
4282 116, 117, 118, -1, -1, -1, -1, -1, -1, -1,
4283 -1, 1, -1, 3, 4, 5, 6, 7, -1, -1,
4284 -1, 11, 12, 139, 140, 141, 16, -1, 18, 19,
4285 20, 21, 22, 23, 24, 151, -1, 153, -1, -1,
4286 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4287 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4288 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4289 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
4290 -1, -1, -1, -1, -1, 75, 76, -1, -1, -1,
4291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4292 90, 91, -1, -1, -1, -1, -1, -1, 98, -1,
4293 -1, 101, 102, -1, 104, 105, -1, 107, -1, -1,
4294 110, 111, 112, 113, 114, 115, 116, 117, 118, -1,
4295 120, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4296 4, 5, -1, 7, -1, -1, -1, 11, 12, 139,
4297 140, 141, 16, -1, 18, 19, 20, 21, 22, 23,
4298 24, 151, -1, 153, -1, -1, 30, 31, 32, 33,
4299 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4300 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4301 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
4302 64, 65, -1, -1, -1, -1, -1, -1, -1, -1,
4303 -1, 75, 76, -1, -1, -1, -1, -1, -1, -1,
4304 -1, -1, -1, -1, -1, -1, 90, 91, -1, -1,
4305 -1, -1, -1, -1, 98, -1, -1, 101, 102, -1,
4306 104, 105, -1, 107, 108, 109, 110, 111, 112, 113,
4307 114, 115, 116, 117, 118, -1, -1, -1, -1, -1,
4308 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4309 -1, -1, -1, 11, 12, 139, 140, 141, 16, -1,
4310 18, 19, 20, 21, 22, 23, 24, -1, -1, 153,
4311 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4312 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4313 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4314 -1, 59, 60, 61, 62, 63, 64, 65, -1, -1,
4315 -1, -1, -1, -1, -1, -1, -1, 75, 76, -1,
4316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4317 -1, -1, 90, 91, -1, -1, -1, -1, -1, -1,
4318 98, -1, -1, 101, 102, -1, 104, 105, -1, -1,
4319 -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
4320 118, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4321 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4322 12, 139, 140, 141, 16, -1, 18, 19, 20, 21,
4323 22, 23, 24, 151, -1, 153, -1, -1, 30, 31,
4324 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4325 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4326 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4327 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
4328 -1, -1, -1, 75, 76, -1, -1, -1, -1, -1,
4329 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
4330 -1, -1, -1, -1, -1, -1, 98, -1, -1, 101,
4331 102, -1, 104, 105, -1, -1, -1, -1, 110, 111,
4332 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
4333 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4334 6, 7, -1, -1, -1, 11, 12, 139, 140, 141,
4335 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4336 -1, 153, -1, -1, 30, 31, 32, 33, 34, 35,
4337 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
4338 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4339 56, 57, -1, 59, 60, 61, 62, 63, 64, 65,
4340 -1, -1, -1, -1, -1, -1, -1, -1, -1, 75,
4341 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4342 -1, -1, -1, -1, 90, 91, -1, -1, -1, -1,
4343 -1, -1, 98, -1, -1, 101, 102, -1, 104, 105,
4344 -1, 107, -1, -1, 110, 111, 112, 113, 114, 115,
4345 116, 117, 118, -1, -1, -1, -1, -1, -1, -1,
4346 -1, -1, -1, 3, 4, 5, 6, 7, -1, -1,
4347 -1, 11, 12, 139, 140, 141, 16, -1, 18, 19,
4348 20, 21, 22, 23, 24, 151, -1, -1, -1, -1,
4349 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4350 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4351 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4352 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
4353 -1, -1, -1, -1, -1, 75, 76, -1, -1, -1,
4354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4355 90, 91, -1, -1, -1, -1, -1, -1, 98, -1,
4356 -1, 101, 102, -1, 104, 105, -1, 107, -1, -1,
4357 110, 111, 112, 113, 114, 115, 116, 117, 118, -1,
4358 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4359 -1, -1, -1, -1, -1, -1, -1, -1, -1, 139,
4360 140, 141, -1, -1, -1, -1, -1, -1, -1, -1,
4361 -1, 151, 3, 4, 5, 6, 7, 8, 9, 10,
4362 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
4363 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
4364 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
4365 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
4366 51, 52, 53, 54, 55, 56, 57, -1, -1, -1,
4367 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4368 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4369 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4370 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4371 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4373 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4374 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4375 141, -1, -1, -1, -1, -1, 147, 148, 3, 4,
4376 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
4377 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4378 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
4379 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
4380 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
4381 55, 56, 57, -1, -1, -1, -1, -1, -1, -1,
4382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4383 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
4384 -1, 86, 87, -1, -1, -1, -1, 92, 93, 94,
4385 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4386 -1, -1, 107, 108, -1, -1, -1, -1, -1, -1,
4387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4388 -1, -1, -1, -1, 129, 130, 131, 132, 133, 134,
4389 135, 136, 137, 138, -1, 140, 141, -1, -1, -1,
4390 -1, -1, 147, 3, 4, 5, 6, 7, 8, 9,
4391 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4392 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
4393 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
4394 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4395 50, 51, 52, 53, 54, -1, 56, -1, -1, -1,
4396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4397 -1, -1, -1, -1, -1, 75, 76, 77, 78, 79,
4398 80, 81, 82, 83, -1, -1, 86, 87, -1, -1,
4399 -1, -1, 92, 93, 94, 95, -1, -1, -1, -1,
4400 -1, -1, -1, -1, -1, -1, -1, 107, 108, -1,
4401 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
4402 -1, -1, -1, -1, -1, -1, -1, -1, -1, 129,
4403 130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
4404 140, 141, -1, -1, -1, -1, -1, 147, 3, 4,
4405 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
4406 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4407 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
4408 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
4409 45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
4410 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
4411 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4412 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
4413 -1, 86, 87, -1, -1, -1, -1, 92, 93, 94,
4414 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4415 -1, -1, 107, 108, -1, -1, 111, -1, -1, -1,
4416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4417 -1, -1, -1, -1, 129, 130, 131, 132, 133, 134,
4418 135, 136, 137, 138, -1, 140, 141, -1, -1, -1,
4419 -1, -1, 147, 3, 4, 5, 6, 7, 8, 9,
4420 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4421 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
4422 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
4423 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4424 50, 51, 52, 53, -1, -1, 56, -1, -1, -1,
4425 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4426 -1, -1, -1, -1, -1, 75, 76, 77, 78, 79,
4427 80, 81, 82, 83, -1, -1, 86, 87, -1, -1,
4428 -1, -1, 92, 93, 94, 95, -1, -1, -1, -1,
4429 -1, -1, -1, -1, -1, -1, -1, 107, 108, -1,
4430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4431 -1, -1, -1, -1, -1, -1, -1, -1, -1, 129,
4432 130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
4433 140, 141, 3, 4, 5, -1, 7, 147, -1, -1,
4434 11, 12, -1, -1, -1, 16, -1, 18, 19, 20,
4435 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4436 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4437 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4438 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4439 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
4440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4442 -1, -1, -1, -1, -1, -1, -1, 98, -1, -1,
4443 101, 102, -1, 104, 105, -1, -1, -1, -1, 110,
4444 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
4445 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4446 -1, 3, 4, 5, -1, 7, -1, -1, 139, 11,
4447 12, -1, -1, -1, 16, 146, 18, 19, 20, 21,
4448 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4449 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4450 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4451 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4452 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
4453 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4454 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4455 -1, -1, -1, -1, -1, -1, 98, -1, -1, 101,
4456 102, -1, 104, 105, -1, -1, -1, -1, 110, 111,
4457 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
4458 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4459 3, 4, 5, 6, 7, -1, -1, 139, 11, 12,
4460 -1, -1, -1, 16, 146, 18, 19, 20, 21, 22,
4461 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4462 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4463 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
4464 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4465 63, 64, 65, -1, -1, -1, -1, -1, -1, -1,
4466 -1, -1, 75, 76, -1, -1, -1, -1, -1, -1,
4467 -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
4468 -1, -1, -1, -1, -1, 98, -1, -1, 101, 102,
4469 -1, 104, 105, -1, 107, -1, -1, 110, 111, 112,
4470 113, 114, 115, 116, 117, 118, -1, -1, -1, -1,
4471 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4472 7, -1, -1, -1, 11, 12, 139, 140, 141, 16,
4473 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4474 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4475 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4476 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4477 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
4478 -1, -1, -1, -1, -1, -1, -1, -1, 75, 76,
4479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4480 -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
4481 -1, 98, -1, -1, 101, 102, -1, 104, 105, -1,
4482 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
4483 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
4484 -1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
4485 11, 12, 139, 140, 141, 16, -1, 18, 19, 20,
4486 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4487 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4488 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
4489 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4490 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
4491 -1, -1, -1, -1, 75, 76, -1, -1, -1, -1,
4492 -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
4493 91, -1, -1, -1, -1, -1, -1, 98, -1, -1,
4494 101, 102, -1, 104, 105, -1, 107, -1, -1, 110,
4495 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
4496 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4497 5, -1, 7, -1, -1, -1, 11, 12, 139, 140,
4498 141, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4499 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4500 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4501 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4502 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
4503 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4504 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
4505 -1, -1, -1, -1, -1, 90, 91, -1, -1, -1,
4506 -1, -1, -1, 98, -1, -1, 101, 102, -1, 104,
4507 105, -1, 107, 108, 109, 110, 111, 112, 113, 114,
4508 115, 116, 117, 118, -1, -1, -1, -1, -1, -1,
4509 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4510 -1, -1, 11, 12, 139, 140, 141, 16, -1, 18,
4511 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4512 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4513 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4514 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
4515 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
4516 -1, -1, -1, -1, -1, -1, 75, 76, -1, -1,
4517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4518 -1, 90, 91, -1, -1, -1, -1, -1, -1, 98,
4519 -1, -1, 101, 102, -1, 104, 105, -1, 107, 108,
4520 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
4521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4522 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4523 139, 140, 141, 16, -1, 18, 19, 20, 21, 22,
4524 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4525 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4526 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4527 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
4528 63, 64, 65, -1, -1, -1, -1, -1, -1, -1,
4529 -1, -1, 75, 76, -1, -1, -1, -1, -1, -1,
4530 -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
4531 -1, -1, -1, -1, -1, 98, -1, -1, 101, 102,
4532 -1, 104, 105, -1, 107, 108, 109, 110, 111, 112,
4533 113, 114, 115, 116, 117, 118, -1, -1, -1, -1,
4534 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4535 7, -1, -1, -1, 11, 12, 139, 140, 141, 16,
4536 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4537 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4538 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4539 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4540 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
4541 -1, -1, -1, -1, -1, -1, -1, -1, 75, 76,
4542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4543 -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
4544 -1, 98, -1, -1, 101, 102, -1, 104, 105, -1,
4545 107, 108, -1, 110, 111, 112, 113, 114, 115, 116,
4546 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
4547 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4548 11, 12, 139, 140, 141, 16, -1, 18, 19, 20,
4549 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4550 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4551 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4552 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
4553 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
4554 -1, -1, -1, -1, 75, 76, -1, -1, -1, -1,
4555 -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
4556 91, -1, -1, -1, -1, -1, -1, 98, -1, -1,
4557 101, 102, -1, 104, 105, -1, -1, 108, 109, 110,
4558 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
4559 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4560 5, -1, 7, -1, -1, -1, 11, 12, 139, 140,
4561 141, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4562 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4563 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4564 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4565 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
4566 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4567 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
4568 -1, -1, -1, -1, -1, 90, 91, -1, -1, -1,
4569 -1, -1, -1, 98, -1, -1, 101, 102, -1, 104,
4570 105, -1, 107, 108, -1, 110, 111, 112, 113, 114,
4571 115, 116, 117, 118, -1, -1, -1, -1, -1, -1,
4572 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4573 -1, -1, 11, 12, 139, 140, 141, 16, -1, 18,
4574 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4575 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4576 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4577 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
4578 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
4579 -1, -1, -1, -1, -1, -1, 75, 76, -1, -1,
4580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4581 -1, 90, 91, -1, -1, -1, -1, -1, -1, 98,
4582 -1, -1, 101, 102, -1, 104, 105, -1, -1, 108,
4583 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
4584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4585 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4586 139, 140, 141, 16, -1, 18, 19, 20, 21, 22,
4587 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4588 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4589 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4590 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4591 63, 64, 65, -1, -1, -1, -1, -1, -1, -1,
4592 -1, -1, 75, 76, -1, -1, -1, -1, -1, -1,
4593 -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
4594 -1, -1, -1, -1, -1, 98, -1, -1, 101, 102,
4595 -1, 104, 105, -1, 107, -1, -1, 110, 111, 112,
4596 113, 114, 115, 116, 117, 118, -1, -1, -1, -1,
4597 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4598 7, -1, -1, -1, 11, 12, 139, 140, 141, 16,
4599 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4600 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4601 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4602 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4603 57, -1, 59, 60, 61, 62, 63, 64, 65, -1,
4604 -1, -1, -1, -1, -1, -1, -1, -1, 75, 76,
4605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4606 -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
4607 -1, 98, -1, -1, 101, 102, -1, 104, 105, -1,
4608 107, -1, -1, 110, 111, 112, 113, 114, 115, 116,
4609 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
4610 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4611 11, 12, 139, 140, 141, 16, -1, 18, 19, 20,
4612 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4613 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4614 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4615 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4616 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
4617 -1, -1, -1, -1, 75, 76, -1, -1, -1, -1,
4618 -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
4619 91, -1, -1, -1, -1, -1, -1, 98, -1, -1,
4620 101, 102, -1, 104, 105, -1, 107, -1, -1, 110,
4621 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
4622 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4623 5, -1, 7, -1, -1, -1, 11, 12, 139, 140,
4624 141, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4625 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4626 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4627 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4628 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
4629 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4630 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
4631 -1, -1, -1, -1, -1, 90, 91, -1, -1, -1,
4632 -1, -1, -1, 98, -1, -1, 101, 102, -1, 104,
4633 105, -1, 107, -1, -1, 110, 111, 112, 113, 114,
4634 115, 116, 117, 118, -1, -1, -1, -1, -1, -1,
4635 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4636 -1, -1, 11, 12, 139, 140, 141, 16, -1, 18,
4637 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4638 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4639 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4640 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4641 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
4642 -1, -1, -1, -1, -1, -1, 75, 76, -1, -1,
4643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4644 -1, 90, 91, -1, -1, -1, -1, -1, -1, 98,
4645 -1, -1, 101, 102, -1, 104, 105, -1, 107, -1,
4646 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
4647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4648 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4649 139, 140, 141, 16, -1, 18, 19, 20, 21, 22,
4650 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4651 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4652 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4653 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4654 63, 64, 65, -1, -1, -1, -1, -1, -1, -1,
4655 -1, -1, 75, 76, -1, -1, -1, -1, -1, -1,
4656 -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
4657 -1, -1, -1, -1, -1, 98, -1, -1, 101, 102,
4658 -1, 104, 105, -1, -1, -1, -1, 110, 111, 112,
4659 113, 114, 115, 116, 117, 118, -1, -1, -1, -1,
4660 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4661 7, -1, -1, -1, 11, 12, 139, 140, 141, 16,
4662 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4663 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4664 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4665 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4666 57, -1, 59, 60, 61, 62, 63, 64, 65, -1,
4667 -1, -1, -1, -1, -1, -1, -1, -1, 75, 76,
4668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4669 -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
4670 -1, 98, -1, -1, 101, 102, -1, 104, 105, -1,
4671 -1, -1, -1, 110, 111, 112, 113, 114, 115, 116,
4672 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
4673 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4674 11, 12, 139, 140, 141, 16, -1, 18, 19, 20,
4675 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4676 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4677 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4678 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4679 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
4680 -1, -1, -1, -1, 75, 76, -1, -1, -1, -1,
4681 -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
4682 91, -1, -1, -1, -1, -1, -1, 98, -1, -1,
4683 101, 102, -1, 104, 105, -1, -1, -1, -1, 110,
4684 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
4685 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4686 5, -1, 7, -1, -1, -1, 11, 12, 139, 140,
4687 141, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4688 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4689 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4690 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4691 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
4692 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4695 -1, -1, -1, 98, -1, -1, 101, 102, -1, 104,
4696 105, -1, 107, -1, -1, 110, 111, 112, 113, 114,
4697 115, 116, 117, 118, -1, -1, -1, -1, -1, -1,
4698 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4699 -1, -1, -1, 16, 139, 18, 19, 20, 21, 22,
4700 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4701 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4702 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4703 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4704 63, 64, 65, -1, -1, -1, -1, -1, -1, -1,
4705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4707 -1, -1, -1, -1, -1, 98, -1, -1, 101, 102,
4708 -1, 104, 105, -1, 107, -1, -1, 110, 111, 112,
4709 113, 114, 115, 116, 117, 118, -1, -1, -1, -1,
4710 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4711 11, 12, -1, -1, -1, 16, 139, 18, 19, 20,
4712 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4713 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4714 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4715 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4716 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
4717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4718 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4719 -1, -1, -1, 94, -1, -1, -1, 98, -1, -1,
4720 101, 102, -1, 104, 105, -1, -1, -1, -1, 110,
4721 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
4722 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4723 -1, -1, 11, 12, -1, -1, -1, 16, 139, 18,
4724 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4725 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4726 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4727 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4728 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
4729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4731 -1, -1, -1, -1, -1, -1, -1, -1, -1, 98,
4732 -1, -1, 101, 102, -1, 104, 105, -1, -1, -1,
4733 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
4734 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4735 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
4736 139, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4737 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4738 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4739 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4740 57, -1, 59, 60, 61, 62, 63, 64, 65, -1,
4741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4744 -1, 98, -1, -1, 101, 102, -1, 104, 105, -1,
4745 -1, -1, -1, 110, 111, 112, 113, 114, 115, 116,
4746 117, 118, -1, -1, -1, -1, -1, -1, 3, 4,
4747 5, -1, 7, -1, -1, -1, 11, 12, -1, -1,
4748 -1, 16, 139, 18, 19, 20, 21, 22, 23, 24,
4749 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4750 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4751 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4752 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
4753 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4754 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4755 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4756 -1, -1, -1, 98, -1, -1, 101, 102, -1, 104,
4757 105, -1, -1, -1, -1, 110, 111, 112, 113, 114,
4758 115, 116, 117, 118, -1, -1, -1, -1, -1, -1,
4759 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4760 -1, -1, -1, 16, 139, 18, 19, 20, 21, 22,
4761 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4762 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4763 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4764 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4765 63, 64, 65, 33, 34, 35, 36, -1, -1, -1,
4766 -1, -1, -1, -1, -1, -1, -1, -1, -1, 49,
4767 50, 51, 52, -1, -1, -1, 56, -1, -1, 59,
4768 60, 61, 62, 63, -1, 98, -1, -1, 101, 102,
4769 -1, 104, 105, -1, -1, -1, -1, 110, 111, 112,
4770 113, 114, 115, 116, 117, 118, -1, -1, -1, -1,
4771 90, 91, -1, -1, -1, -1, -1, -1, 98, -1,
4772 -1, 101, -1, -1, 104, 105, 139, 107, -1, -1,
4773 110, 111, 112, 113, 114, 115, 116, 117, 118, 33,
4774 34, 35, 36, -1, -1, -1, -1, -1, -1, -1,
4775 -1, -1, 132, -1, -1, 49, 50, 51, 52, 139,
4776 -1, -1, 56, -1, -1, 59, 60, 61, 62, 63,
4777 -1, -1, 33, 34, 35, 36, -1, -1, -1, -1,
4778 -1, -1, -1, -1, -1, -1, -1, -1, 49, 50,
4779 51, 52, -1, -1, -1, 56, 90, 91, 59, 60,
4780 61, 62, 63, -1, 98, -1, -1, 101, -1, -1,
4781 104, 105, -1, 107, -1, -1, 110, 111, 112, 113,
4782 114, 115, 116, 117, 118, -1, -1, -1, -1, 90,
4783 91, -1, -1, -1, -1, -1, -1, 98, 132, -1,
4784 101, -1, -1, 104, 105, 139, -1, -1, -1, 110,
4785 111, 112, 113, 114, 115, 116, 117, 118, 52, 53,
4786 -1, -1, 56, -1, -1, -1, -1, -1, -1, -1,
4787 -1, 132, -1, -1, -1, -1, -1, -1, 139, -1,
4788 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4789 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4790 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4791 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4793 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4794 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4795 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4796 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4797 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4798 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4799 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4800 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4801 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4802 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4803 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4804 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4805 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4806 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4807 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4808 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4809 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4811 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4812 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4813 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4814 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4815 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4816 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4817 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4818 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4819 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4820 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4821 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4822 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4824 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4825 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4826 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4827 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4828 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4829 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4830 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4831 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4832 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4833 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4834 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4835 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4836 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4837 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4838 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4839 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4840 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4841 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4842 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4843 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4844 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4845 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4846 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4847 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4848 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4849 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4850 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4851 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4852 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4853 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4854 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4856 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4857 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4858 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4860 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4861 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4862 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4863 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4864 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4865 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4866 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4867 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4869 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4870 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4871 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4872 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4873 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4874 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4875 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4876 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4877 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4878 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4879 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4880 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4881 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4882 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4883 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4884 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4885 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4887 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4888 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4889 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4890 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4891 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4892 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4893 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4894 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4896 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4897 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4898 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4899 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4900 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4901 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4902 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4903 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4904 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4905 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4906 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4907 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4908 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4910 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4911 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4912 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4913 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4914 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4915 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4916 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4917 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4918 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4919 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4920 134, 135, 136, 137, 138, -1, 140, 141, 52, 53,
4921 -1, -1, 56, 147, 148, -1, -1, -1, -1, -1,
4922 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4923 -1, 75, 76, 77, 78, 79, 80, 81, 82, 83,
4924 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
4925 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4926 -1, -1, -1, 107, 108, -1, -1, -1, -1, -1,
4927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4928 -1, -1, -1, -1, -1, 129, 130, 131, 132, 133,
4929 134, 135, 136, 137, 138, -1, 140, 141, -1, -1,
4937 0, 155, 156, 0, 1, 3, 4, 5, 6, 7,
4938 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4939 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4940 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4941 57, 59, 60, 61, 62, 63, 64, 65, 75, 76,
4942 90, 91, 98, 101, 102, 104, 105, 107, 110, 111,
4943 112, 113, 114, 115, 116, 117, 118, 139, 140, 141,
4944 157, 158, 159, 167, 169, 171, 179, 180, 182, 183,
4945 184, 186, 187, 188, 190, 191, 200, 203, 218, 233,
4946 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
4947 252, 279, 280, 333, 334, 335, 336, 337, 338, 339,
4948 342, 344, 345, 359, 360, 362, 363, 364, 365, 366,
4949 367, 368, 369, 405, 419, 159, 3, 4, 5, 6,
4950 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
4951 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
4952 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
4953 45, 46, 47, 48, 49, 50, 51, 52, 53, 56,
4954 75, 76, 77, 78, 79, 80, 81, 82, 83, 86,
4955 87, 92, 93, 94, 95, 107, 108, 129, 130, 131,
4956 132, 133, 134, 135, 136, 137, 138, 140, 141, 147,
4957 194, 195, 196, 198, 199, 359, 39, 58, 98, 101,
4958 107, 108, 109, 112, 140, 183, 191, 200, 204, 210,
4959 213, 215, 233, 365, 366, 368, 369, 403, 404, 210,
4960 148, 211, 212, 148, 207, 211, 148, 153, 412, 54,
4961 195, 412, 143, 160, 143, 21, 22, 31, 32, 182,
4962 200, 233, 252, 200, 200, 200, 56, 1, 47, 101,
4963 163, 164, 165, 167, 185, 186, 419, 167, 220, 205,
4964 215, 403, 419, 204, 402, 403, 419, 46, 98, 139,
4965 146, 190, 218, 233, 365, 366, 369, 223, 54, 55,
4966 57, 194, 348, 361, 348, 349, 350, 152, 152, 152,
4967 152, 364, 179, 200, 200, 151, 153, 411, 417, 418,
4968 40, 41, 42, 43, 44, 37, 38, 26, 143, 207,
4969 211, 244, 281, 28, 245, 278, 126, 146, 101, 107,
4970 187, 126, 25, 77, 78, 79, 80, 81, 82, 83,
4971 84, 85, 86, 87, 88, 89, 94, 95, 127, 129,
4972 130, 131, 132, 133, 134, 135, 136, 137, 138, 202,
4973 202, 68, 96, 97, 145, 409, 219, 171, 175, 175,
4974 176, 177, 176, 175, 411, 418, 98, 184, 191, 233,
4975 257, 365, 366, 369, 52, 56, 94, 98, 192, 193,
4976 233, 365, 366, 369, 193, 33, 34, 35, 36, 49,
4977 50, 51, 52, 56, 148, 194, 367, 400, 210, 97,
4978 409, 410, 281, 336, 99, 99, 146, 204, 56, 204,
4979 204, 204, 348, 126, 100, 146, 214, 419, 97, 145,
4980 409, 99, 99, 146, 214, 210, 412, 413, 210, 91,
4981 209, 210, 215, 377, 403, 419, 171, 413, 171, 54,
4982 64, 65, 168, 148, 201, 157, 163, 97, 409, 99,
4983 167, 166, 185, 149, 411, 418, 413, 221, 413, 150,
4984 146, 153, 416, 146, 416, 144, 416, 412, 56, 364,
4985 187, 189, 146, 97, 145, 409, 270, 271, 66, 119,
4986 121, 122, 351, 119, 119, 351, 67, 351, 340, 346,
4987 343, 347, 77, 151, 159, 175, 175, 175, 175, 167,
4988 171, 171, 282, 283, 106, 181, 286, 287, 286, 107,
4989 179, 204, 215, 216, 217, 185, 146, 190, 146, 169,
4990 170, 179, 191, 200, 204, 206, 217, 233, 369, 172,
4991 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
4992 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
4993 200, 200, 200, 200, 52, 53, 56, 198, 207, 406,
4994 407, 209, 215, 52, 53, 56, 198, 207, 406, 161,
4995 163, 13, 253, 417, 253, 163, 175, 163, 411, 225,
4996 56, 97, 145, 409, 25, 171, 52, 56, 192, 130,
4997 370, 97, 145, 409, 228, 401, 229, 68, 97, 408,
4998 52, 56, 406, 170, 200, 206, 170, 206, 197, 124,
4999 204, 107, 204, 213, 403, 52, 56, 209, 52, 56,
5000 404, 413, 149, 413, 146, 413, 146, 413, 195, 222,
5001 200, 144, 144, 406, 406, 206, 160, 413, 165, 413,
5002 403, 146, 189, 52, 56, 209, 52, 56, 272, 353,
5003 352, 119, 341, 351, 66, 119, 119, 341, 66, 119,
5004 200, 144, 284, 282, 10, 251, 288, 251, 204, 146,
5005 44, 413, 189, 146, 44, 126, 44, 97, 145, 409,
5006 173, 412, 99, 99, 207, 211, 412, 414, 146, 99,
5007 99, 207, 208, 211, 419, 251, 8, 246, 329, 419,
5008 163, 13, 163, 251, 27, 254, 417, 251, 25, 224,
5009 293, 17, 248, 291, 52, 56, 209, 52, 56, 176,
5010 227, 371, 226, 52, 56, 192, 209, 161, 171, 230,
5011 231, 208, 211, 195, 204, 204, 214, 99, 99, 414,
5012 99, 99, 377, 403, 171, 416, 187, 414, 273, 354,
5013 54, 55, 57, 358, 369, 152, 351, 152, 152, 152,
5014 285, 144, 289, 107, 204, 167, 189, 167, 200, 52,
5015 56, 209, 52, 56, 52, 56, 90, 91, 98, 101,
5016 104, 105, 110, 132, 303, 304, 305, 308, 323, 324,
5017 326, 327, 328, 333, 334, 337, 338, 339, 342, 344,
5018 345, 366, 128, 170, 206, 170, 206, 181, 150, 99,
5019 170, 206, 170, 206, 181, 204, 217, 330, 419, 9,
5020 15, 247, 249, 332, 419, 14, 249, 250, 255, 256,
5021 419, 256, 178, 294, 291, 251, 107, 204, 290, 251,
5022 414, 163, 417, 175, 161, 414, 251, 413, 148, 372,
5023 373, 194, 281, 278, 99, 413, 146, 413, 274, 355,
5024 131, 265, 266, 419, 265, 204, 414, 324, 324, 56,
5025 192, 311, 309, 414, 310, 412, 415, 325, 52, 100,
5026 174, 131, 88, 89, 97, 145, 148, 306, 307, 200,
5027 170, 206, 100, 331, 419, 163, 162, 163, 175, 251,
5028 251, 295, 251, 204, 146, 253, 251, 161, 417, 251,
5029 52, 54, 55, 56, 57, 58, 77, 91, 101, 107,
5030 108, 109, 133, 136, 374, 376, 377, 378, 379, 380,
5031 381, 382, 383, 384, 387, 388, 389, 390, 391, 394,
5032 395, 396, 397, 398, 161, 376, 382, 232, 148, 276,
5033 376, 356, 262, 264, 267, 380, 382, 383, 385, 386,
5034 389, 390, 392, 393, 396, 398, 412, 163, 161, 303,
5035 107, 303, 312, 313, 314, 316, 58, 112, 317, 318,
5036 319, 320, 321, 322, 388, 144, 270, 326, 308, 324,
5037 324, 192, 414, 413, 112, 312, 317, 312, 317, 98,
5038 191, 233, 365, 366, 369, 253, 163, 253, 296, 107,
5039 204, 163, 251, 101, 107, 258, 259, 260, 261, 379,
5040 413, 413, 126, 146, 375, 204, 146, 399, 419, 34,
5041 52, 146, 399, 399, 146, 375, 52, 146, 375, 52,
5042 251, 417, 146, 372, 376, 275, 357, 267, 131, 126,
5043 146, 263, 98, 233, 146, 399, 399, 399, 146, 263,
5044 146, 263, 151, 413, 52, 146, 414, 107, 303, 316,
5045 146, 348, 415, 146, 303, 34, 52, 348, 413, 413,
5046 414, 414, 56, 97, 145, 409, 163, 332, 163, 301,
5047 302, 303, 314, 317, 204, 256, 291, 292, 260, 379,
5048 146, 413, 146, 204, 374, 377, 381, 394, 396, 384,
5049 388, 390, 398, 382, 391, 396, 380, 382, 161, 267,
5050 29, 123, 277, 163, 131, 233, 262, 393, 396, 56,
5051 97, 385, 390, 382, 392, 396, 382, 52, 268, 269,
5052 378, 146, 315, 316, 52, 146, 146, 124, 319, 321,
5053 322, 52, 56, 209, 52, 56, 329, 255, 253, 40,
5054 41, 146, 413, 258, 261, 259, 413, 146, 375, 146,
5055 375, 399, 146, 375, 146, 375, 375, 251, 149, 161,
5056 163, 120, 146, 263, 146, 263, 52, 56, 399, 146,
5057 263, 146, 263, 263, 146, 412, 315, 146, 146, 315,
5058 414, 297, 175, 175, 312, 146, 146, 382, 396, 382,
5059 382, 251, 144, 382, 396, 382, 382, 269, 316, 315,
5060 298, 259, 375, 146, 375, 375, 375, 263, 146, 263,
5061 263, 263, 299, 382, 382, 163, 375, 263, 256, 293,
5068 0, 154, 156, 155, 157, 158, 158, 158, 158, 159,
5069 159, 160, 162, 161, 161, 163, 164, 164, 164, 164,
5070 165, 166, 165, 168, 167, 167, 167, 167, 167, 167,
5071 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
5072 167, 169, 169, 169, 169, 169, 169, 169, 169, 170,
5073 170, 170, 171, 171, 171, 171, 171, 172, 173, 174,
5074 171, 171, 175, 177, 178, 176, 179, 179, 180, 180,
5075 181, 182, 183, 183, 183, 183, 183, 183, 183, 183,
5076 183, 183, 183, 184, 184, 185, 185, 186, 186, 186,
5077 186, 186, 186, 186, 186, 186, 186, 187, 187, 188,
5078 188, 189, 189, 190, 190, 190, 190, 190, 190, 190,
5079 190, 190, 191, 191, 191, 191, 191, 191, 191, 191,
5080 191, 192, 192, 193, 193, 193, 194, 194, 194, 194,
5081 194, 195, 195, 196, 197, 196, 198, 198, 198, 198,
5082 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
5083 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
5084 198, 198, 198, 198, 198, 198, 199, 199, 199, 199,
5085 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
5086 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
5087 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
5088 199, 199, 199, 199, 199, 199, 199, 200, 200, 200,
5089 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
5090 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
5091 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
5092 200, 200, 200, 200, 200, 200, 200, 201, 200, 200,
5093 200, 202, 202, 202, 202, 203, 203, 204, 205, 205,
5094 205, 205, 206, 206, 207, 207, 207, 208, 208, 209,
5095 209, 209, 209, 209, 210, 210, 210, 210, 210, 212,
5096 211, 213, 214, 214, 215, 215, 215, 215, 216, 216,
5097 217, 217, 217, 218, 218, 218, 218, 218, 218, 218,
5098 218, 218, 218, 218, 219, 218, 220, 218, 221, 218,
5099 218, 218, 218, 218, 218, 218, 218, 218, 218, 222,
5100 218, 218, 218, 218, 218, 218, 223, 218, 218, 218,
5101 218, 218, 224, 218, 225, 218, 218, 218, 226, 218,
5102 227, 218, 228, 218, 229, 230, 218, 231, 232, 218,
5103 218, 218, 218, 218, 233, 234, 235, 236, 237, 238,
5104 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
5105 249, 250, 251, 252, 253, 253, 253, 254, 254, 255,
5106 255, 256, 256, 257, 257, 258, 258, 259, 259, 260,
5107 260, 260, 260, 260, 261, 261, 262, 262, 262, 262,
5108 262, 263, 263, 264, 264, 264, 264, 264, 264, 264,
5109 264, 264, 264, 264, 264, 264, 264, 264, 265, 265,
5110 266, 266, 267, 267, 268, 268, 269, 269, 271, 272,
5111 273, 274, 275, 270, 276, 276, 277, 277, 278, 279,
5112 279, 279, 279, 280, 280, 280, 280, 280, 280, 280,
5113 280, 280, 281, 281, 283, 284, 285, 282, 287, 288,
5114 289, 286, 290, 290, 290, 290, 291, 292, 292, 294,
5115 295, 296, 297, 298, 299, 293, 300, 300, 301, 301,
5116 301, 302, 302, 302, 302, 302, 303, 304, 304, 305,
5117 305, 306, 307, 308, 308, 308, 308, 308, 308, 308,
5118 309, 308, 308, 310, 308, 308, 311, 308, 312, 312,
5119 312, 312, 312, 312, 312, 312, 313, 313, 314, 314,
5120 314, 314, 315, 315, 316, 317, 317, 317, 317, 317,
5121 317, 318, 318, 319, 319, 320, 320, 321, 321, 322,
5122 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
5123 324, 324, 324, 324, 324, 324, 324, 324, 324, 325,
5124 324, 326, 327, 328, 328, 328, 329, 329, 330, 330,
5125 330, 331, 331, 332, 332, 333, 333, 334, 335, 335,
5126 335, 336, 337, 338, 339, 340, 340, 341, 341, 342,
5127 343, 343, 344, 345, 346, 346, 347, 347, 348, 348,
5128 349, 349, 350, 350, 351, 352, 351, 353, 354, 355,
5129 356, 357, 351, 358, 358, 358, 358, 359, 359, 360,
5130 361, 361, 361, 361, 362, 363, 363, 364, 364, 364,
5131 364, 365, 365, 365, 365, 365, 366, 366, 366, 366,
5132 366, 366, 366, 367, 367, 368, 368, 369, 369, 371,
5133 370, 370, 372, 372, 372, 373, 372, 374, 374, 374,
5134 374, 374, 375, 375, 376, 376, 376, 376, 376, 376,
5135 376, 376, 376, 376, 376, 376, 376, 376, 376, 377,
5136 378, 378, 378, 378, 379, 379, 380, 381, 381, 382,
5137 382, 383, 384, 384, 385, 385, 386, 386, 387, 387,
5138 388, 388, 389, 390, 390, 391, 392, 393, 393, 394,
5139 394, 395, 395, 396, 396, 397, 397, 398, 399, 399,
5140 400, 401, 400, 402, 402, 403, 403, 404, 404, 404,
5141 404, 405, 405, 405, 406, 406, 406, 406, 407, 407,
5142 407, 408, 408, 409, 409, 410, 410, 411, 411, 412,
5143 412, 413, 414, 415, 416, 416, 416, 417, 417, 418,
5150 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
5151 2, 3, 0, 6, 3, 2, 1, 1, 3, 2,
5152 1, 0, 3, 0, 4, 3, 3, 3, 2, 3,
5153 3, 3, 3, 3, 4, 1, 3, 3, 5, 3,
5154 1, 3, 3, 6, 5, 5, 5, 5, 3, 1,
5155 3, 1, 1, 3, 3, 3, 2, 0, 0, 0,
5156 6, 1, 1, 0, 0, 4, 1, 1, 1, 4,
5157 3, 1, 2, 3, 4, 5, 4, 5, 2, 2,
5158 2, 2, 2, 1, 3, 1, 3, 1, 2, 3,
5159 5, 2, 4, 2, 4, 1, 3, 1, 3, 2,
5160 3, 1, 3, 1, 1, 4, 3, 3, 3, 3,
5161 2, 1, 1, 1, 4, 3, 3, 3, 3, 2,
5162 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
5163 1, 1, 1, 1, 0, 4, 1, 1, 1, 1,
5164 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5165 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5166 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5167 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5168 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5169 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5170 1, 1, 1, 1, 1, 1, 1, 3, 3, 6,
5171 5, 5, 5, 5, 4, 3, 3, 3, 2, 2,
5172 2, 2, 3, 3, 3, 3, 3, 3, 4, 2,
5173 2, 3, 3, 3, 3, 1, 3, 3, 3, 3,
5174 3, 2, 2, 3, 3, 3, 3, 0, 4, 6,
5175 1, 1, 1, 1, 1, 3, 3, 1, 1, 2,
5176 4, 2, 1, 3, 3, 5, 3, 1, 1, 1,
5177 1, 2, 4, 2, 1, 2, 2, 4, 1, 0,
5178 2, 2, 2, 1, 1, 2, 3, 4, 1, 1,
5179 3, 4, 2, 1, 1, 1, 1, 1, 1, 1,
5180 1, 1, 1, 1, 0, 4, 0, 3, 0, 4,
5181 3, 3, 2, 3, 3, 1, 4, 3, 1, 0,
5182 6, 4, 3, 2, 1, 2, 0, 3, 6, 6,
5183 4, 4, 0, 6, 0, 5, 5, 6, 0, 6,
5184 0, 7, 0, 5, 0, 0, 7, 0, 0, 9,
5185 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5186 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5187 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
5188 5, 1, 2, 1, 1, 1, 3, 1, 3, 1,
5189 3, 5, 1, 3, 2, 1, 4, 2, 2, 2,
5190 1, 2, 0, 6, 8, 4, 6, 4, 2, 6,
5191 2, 4, 6, 2, 4, 2, 4, 1, 1, 1,
5192 3, 4, 1, 4, 1, 3, 1, 1, 0, 0,
5193 0, 0, 0, 7, 4, 1, 3, 3, 3, 2,
5194 4, 5, 5, 2, 4, 4, 3, 3, 3, 2,
5195 1, 4, 3, 3, 0, 0, 0, 5, 0, 0,
5196 0, 5, 1, 2, 3, 4, 5, 1, 1, 0,
5197 0, 0, 0, 0, 0, 11, 1, 1, 1, 3,
5198 3, 1, 2, 3, 1, 1, 1, 3, 1, 3,
5199 1, 1, 1, 1, 4, 4, 3, 4, 4, 3,
5200 0, 4, 2, 0, 4, 2, 0, 4, 1, 1,
5201 2, 3, 5, 2, 4, 1, 2, 3, 2, 4,
5202 1, 3, 1, 3, 1, 3, 1, 2, 1, 3,
5203 1, 1, 3, 2, 1, 1, 3, 2, 1, 2,
5204 1, 3, 3, 2, 2, 1, 1, 1, 2, 2,
5205 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
5206 3, 1, 2, 2, 3, 1, 6, 1, 1, 1,
5207 1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
5208 2, 3, 3, 3, 4, 0, 3, 1, 2, 4,
5209 0, 3, 4, 4, 0, 3, 0, 3, 0, 2,
5210 0, 2, 0, 2, 1, 0, 3, 0, 0, 0,
5211 0, 0, 8, 1, 1, 1, 1, 1, 1, 2,
5212 1, 1, 1, 1, 3, 1, 2, 1, 1, 1,
5213 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5214 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
5215 4, 0, 3, 5, 3, 0, 3, 4, 2, 2,
5216 2, 1, 2, 0, 6, 8, 4, 6, 4, 6,
5217 2, 4, 6, 2, 4, 2, 4, 1, 0, 1,
5218 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
5219 3, 1, 2, 1, 2, 1, 1, 3, 1, 3,
5220 1, 1, 2, 2, 1, 3, 3, 1, 3, 1,
5221 3, 1, 1, 2, 1, 1, 1, 2, 2, 1,
5222 1, 0, 4, 1, 2, 1, 3, 3, 2, 4,
5223 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5224 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
5225 1, 2, 2, 2, 0, 1, 1, 1, 1, 1,
5230#define yyerrok (yyerrstatus = 0)
5231#define yyclearin (yychar = YYEMPTY)
5235#define YYACCEPT goto yyacceptlab
5236#define YYABORT goto yyabortlab
5237#define YYERROR goto yyerrorlab
5240#define YYRECOVERING() (!!yyerrstatus)
5242#define YYBACKUP(Token, Value) \
5244 if (yychar == YYEMPTY) \
5248 YYPOPSTACK (yylen); \
5254 yyerror (&yylloc, p, YY_("syntax error: cannot back up")); \
5261#define YYERRCODE 256
5268#ifndef YYLLOC_DEFAULT
5269# define YYLLOC_DEFAULT(Current, Rhs, N) \
5273 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
5274 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
5275 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
5276 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
5280 (Current).first_line = (Current).last_line = \
5281 YYRHSLOC (Rhs, 0).last_line; \
5282 (Current).first_column = (Current).last_column = \
5283 YYRHSLOC (Rhs, 0).last_column; \
5288#define YYRHSLOC(Rhs, K) ((Rhs)[K])
5296# define YYFPRINTF fprintf
5299# define YYDPRINTF(Args) \
5310#ifndef YY_LOCATION_PRINT
5311# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
5317yy_location_print_ (
FILE *yyo,
YYLTYPE const *
const yylocp)
5335 else if (0 <= end_col && yylocp->
first_column < end_col)
5341# define YY_LOCATION_PRINT(File, Loc) \
5342 yy_location_print_ (File, &(Loc))
5345# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
5350# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
5354 YYFPRINTF (p, "%s ", Title); \
5355 yy_symbol_print (stderr, \
5356 Type, Value, Location, p); \
5357 YYFPRINTF (p, "\n"); \
5369 FILE *yyoutput = yyo;
5371 YYUSE (yylocationp);
5377 YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
5393 yytype <
YYNTOKENS ?
"token" :
"nterm", yytname[yytype]);
5397 yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, p);
5408#define yy_stack_print(b, t) ruby_parser_yy_stack_print(b, t, p)
5411 for (; yybottom <= yytop; yybottom++)
5413 int yybot = *yybottom;
5419# define YY_STACK_PRINT(Bottom, Top) \
5422 yy_stack_print ((Bottom), (Top)); \
5433 int yylno = yyrline[yyrule];
5434 int yynrhs = yyr2[yyrule];
5436 YYFPRINTF (p,
"Reducing stack by rule %d (line %d):\n",
5439 for (yyi = 0; yyi < yynrhs; yyi++)
5443 yystos[+yyssp[yyi + 1 - yynrhs]],
5444 &yyvsp[(yyi + 1) - (yynrhs)]
5445 , &(yylsp[(yyi + 1) - (yynrhs)]) , p);
5450# define YY_REDUCE_PRINT(Rule) \
5453 yy_reduce_print (yyssp, yyvsp, yylsp, Rule, p); \
5462# define YYDPRINTF(Args)
5463# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
5464# define YY_STACK_PRINT(Bottom, Top)
5465# define YY_REDUCE_PRINT(Rule)
5471# define YYINITDEPTH 200
5482# define YYMAXDEPTH 10000
5489# if defined __GLIBC__ && defined _STRING_H
5490# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
5494yystrlen (
const char *yystr)
5497 for (yylen = 0; yystr[yylen]; yylen++)
5505# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
5506# define yystpcpy stpcpy
5511yystpcpy (
char *yydest,
const char *yysrc)
5514 const char *yys = yysrc;
5516 while ((*yyd++ = *yys++) !=
'\0')
5533yytnamerr (
char *yyres,
const char *yystr)
5538 char const *yyp = yystr;
5545 goto do_not_strip_quotes;
5549 goto do_not_strip_quotes;
5565 do_not_strip_quotes: ;
5569 return yystpcpy (yyres, yystr) - yyres;
5571 return yystrlen (yystr);
5587 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
5592 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
5623 int yyn = yypact[+*yyssp];
5626 yyarg[yycount++] = yytname[yytoken];
5632 int yyxbegin = yyn < 0 ? -yyn : 0;
5634 int yychecklim =
YYLAST - yyn + 1;
5638 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
5639 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
5642 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
5648 yyarg[yycount++] = yytname[yyx];
5663# define YYCASE_(N, S) \
5669 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
5670 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
5671 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
5672 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
5673 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
5680 YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
5687 if (*yymsg_alloc < yysize)
5689 *yymsg_alloc = 2 * yysize;
5690 if (! (yysize <= *yymsg_alloc
5702 while ((*yyp = *yyformat) !=
'\0')
5703 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
5726 YYUSE (yylocationp);
5759# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
5763YYLTYPE yylloc = yyloc_default;
5812 char *yymsg = yymsgbuf;
5816#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
5822 yyssp = yyss = yyssa;
5823 yyvsp = yyvs = yyvsa;
5824 yylsp = yyls = yylsa;
5859 YYDPRINTF ((p,
"Entering state %d\n", yystate));
5865 if (yyss + yystacksize - 1 <= yyssp)
5866#if !defined yyoverflow && !defined YYSTACK_RELOCATE
5867 goto yyexhaustedlab;
5873# if defined yyoverflow
5886 yyoverflow (
YY_(
"memory exhausted"),
5887 &yyss1, yysize *
YYSIZEOF (*yyssp),
5888 &yyvs1, yysize *
YYSIZEOF (*yyvsp),
5889 &yyls1, yysize *
YYSIZEOF (*yylsp),
5898 goto yyexhaustedlab;
5909 goto yyexhaustedlab;
5913# undef YYSTACK_RELOCATE
5919 yyssp = yyss + yysize - 1;
5920 yyvsp = yyvs + yysize - 1;
5921 yylsp = yyls + yysize - 1;
5924 YYDPRINTF ((p,
"Stack size increased to %ld\n",
5925 YY_CAST (
long, yystacksize)));
5928 if (yyss + yystacksize - 1 <= yyssp)
5947 yyn = yypact[yystate];
5957 yychar = yylex (&
yylval, &yylloc, p);
5960 if (yychar <=
YYEOF)
5962 yychar = yytoken =
YYEOF;
5963 YYDPRINTF ((p,
"Now at end of input.\n"));
5974 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
6007 yyn = yydefact[yystate];
6028 yyval = yyvsp[1-yylen];
6032 yyerror_range[1] = yyloc;
6053 while (node->nd_next) {
6054 node = node->nd_next;
6056 node = node->nd_head;
6058 node = remove_begin(node);
6072 (yyval.
node) = void_stmts(p, (yyvsp[-1].node));
6092 (yyval.
node) = newline_node((yyvsp[0].node));
6103 (yyval.
node) = block_append(p, (yyvsp[-2].node), newline_node((yyvsp[0].node)));
6113 (yyval.
node) = remove_begin((yyvsp[0].node));
6121 (yyval.
node) = (yyvsp[0].node);
6141 {
if (!(yyvsp[-1].node)) {
yyerror1(&(yylsp[0]),
"else without rescue is useless");}}
6149 (yyval.
node) = new_bodystmt(p, (yyvsp[-5].node), (yyvsp[-4].
node), (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
6160 (yyval.
node) = new_bodystmt(p, (yyvsp[-2].node), (yyvsp[-1].
node), 0, (yyvsp[0].node), &(yyloc));
6170 (yyval.
node) = void_stmts(p, (yyvsp[-1].node));
6190 (yyval.
node) = newline_node((yyvsp[0].node));
6201 (yyval.
node) = block_append(p, (yyvsp[-2].node), newline_node((yyvsp[0].node)));
6211 (yyval.
node) = remove_begin((yyvsp[0].node));
6219 (yyval.
node) = (yyvsp[0].node);
6227 yyerror1(&(yylsp[0]),
"BEGIN is permitted only at toplevel");
6235 (yyval.
node) = (yyvsp[0].node);
6274 buf[1] = (
char)(yyvsp[0].node)->nd_nth;
6286 yyerror1(&(yylsp[0]),
"can't make alias for the number variables");
6298 (yyval.
node) = (yyvsp[0].node);
6309 (yyval.
node) = new_if(p, (yyvsp[0].node), remove_begin((yyvsp[-2].node)), 0, &(yyloc));
6310 fixpos((yyval.
node), (yyvsp[0].
node));
6321 (yyval.
node) = new_unless(p, (yyvsp[0].node), remove_begin((yyvsp[-2].node)), 0, &(yyloc));
6322 fixpos((yyval.
node), (yyvsp[0].
node));
6337 (yyval.
node) =
NEW_WHILE(cond(p, (yyvsp[0].node), &(yylsp[0])), (yyvsp[-2].
node), 1, &(yyloc));
6353 (yyval.
node) =
NEW_UNTIL(cond(p, (yyvsp[0].node), &(yylsp[0])), (yyvsp[-2].
node), 1, &(yyloc));
6366 YYLTYPE loc = code_loc_gen(&(yylsp[-1]), &(yylsp[0]));
6367 resq =
NEW_RESBODY(0, remove_begin((yyvsp[0].node)), 0, &loc);
6368 (yyval.
node) =
NEW_RESCUE(remove_begin((yyvsp[-2].node)), resq, 0, &(yyloc));
6379 rb_warn0(
"END in method; use at_exit");
6384 NODE_SCOPE, 0 , (yyvsp[-1].node) , 0 , &(yyloc));
6398 (yyval.
node) = node_assign(p, (yyvsp[-2].node), (yyvsp[0].
node), &(yyloc));
6410 (yyval.
node) = node_assign(p, (yyvsp[-2].node), (yyvsp[0].
node), &(yyloc));
6421 YYLTYPE loc = code_loc_gen(&(yylsp[-1]), &(yylsp[0]));
6423 (yyval.
node) = node_assign(p, (yyvsp[-4].node),
NEW_RESCUE((yyvsp[-2].node),
NEW_RESBODY(0, remove_begin((yyvsp[0].node)), 0, &loc), 0, &(yyloc)), &(yyloc));
6434 (yyval.
node) = node_assign(p, (yyvsp[-2].node), (yyvsp[0].
node), &(yyloc));
6445 (yyval.
node) = node_assign(p, (yyvsp[-2].node), (yyvsp[0].
node), &(yyloc));
6456 (yyval.
node) = new_op_assign(p, (yyvsp[-2].node), (yyvsp[-1].
id), (yyvsp[0].node), &(yyloc));
6467 (yyval.
node) = new_ary_op_assign(p, (yyvsp[-5].node), (yyvsp[-3].
node), (yyvsp[-1].
id), (yyvsp[0].
node), &(yylsp[-3]), &(yyloc));
6479 (yyval.
node) = new_attr_op_assign(p, (yyvsp[-4].node), (yyvsp[-3].
id), (yyvsp[-2].
id), (yyvsp[-1].
id), (yyvsp[0].node), &(yyloc));
6490 (yyval.
node) = new_attr_op_assign(p, (yyvsp[-4].node), (yyvsp[-3].
id), (yyvsp[-2].
id), (yyvsp[-1].
id), (yyvsp[0].node), &(yyloc));
6501 YYLTYPE loc = code_loc_gen(&(yylsp[-4]), &(yylsp[-2]));
6502 (yyval.
node) = new_const_op_assign(p,
NEW_COLON2((yyvsp[-4].node), (yyvsp[-2].
id), &loc), (yyvsp[-1].
id), (yyvsp[0].node), &(yyloc));
6513 (yyval.
node) = new_attr_op_assign(p, (yyvsp[-4].node),
ID2VAL(
idCOLON2), (yyvsp[-2].
id), (yyvsp[-1].
id), (yyvsp[0].
node), &(yyloc));
6524 rb_backref_error(p, (yyvsp[-2].node));
6536 (yyval.
node) = (yyvsp[0].node);
6545 YYLTYPE loc = code_loc_gen(&(yylsp[-1]), &(yylsp[0]));
6557 (yyval.
node) = logop(p,
idAND, (yyvsp[-2].node), (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
6565 (yyval.
node) = logop(p,
idOR, (yyvsp[-2].node), (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
6573 (yyval.
node) = call_uni_op(p, method_cond(p, (yyvsp[0].node), &(yylsp[0])),
METHOD_NOT, &(yylsp[-2]), &(yyloc));
6581 (yyval.
node) = call_uni_op(p, method_cond(p, (yyvsp[0].node), &(yylsp[0])),
'!', &(yylsp[-1]), &(yyloc));
6600 {(yyval.
tbl) = push_pvtbl(p);}
6606 {pop_pvtbl(p, (yyvsp[-1].tbl));}
6615 (yyval.
node) = new_case3(p, (yyvsp[-5].node),
NEW_IN((yyvsp[-1].node), 0, 0, &(yylsp[-1])), &(yyloc));
6626 (yyval.
node) = (yyvsp[0].node);
6646 (yyval.
node) = (yyvsp[-2].node);
6655 (yyval.
node) = new_qcall(p, (yyvsp[-2].
id), (yyvsp[-3].
node), (yyvsp[-1].
id), (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
6665 (yyval.
node) = (yyvsp[-1].node);
6667 (yyval.
node)->
nd_body->nd_loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
6692 (yyval.
node) = (yyvsp[-1].node);
6703 block_dup_check(p, (yyvsp[-1].node), (yyvsp[0].node));
6705 (yyval.
node) = method_add_block(p, (yyvsp[-2].node), (yyvsp[0].
node), &(yyloc));
6706 fixpos((yyval.
node), (yyvsp[-2].
node));
6718 (yyval.
node) = new_command_qcall(p, (yyvsp[-2].
id), (yyvsp[-3].
node), (yyvsp[-1].
id), (yyvsp[0].
node),
Qnull, &(yylsp[-1]), &(yyloc));
6729 (yyval.
node) = new_command_qcall(p, (yyvsp[-3].
id), (yyvsp[-4].
node), (yyvsp[-2].
id), (yyvsp[-1].
node), (yyvsp[0].node), &(yylsp[-2]), &(yyloc));
6751 (yyval.
node) = new_command_qcall(p,
ID2VAL(
idCOLON2), (yyvsp[-4].
node), (yyvsp[-2].
id), (yyvsp[-1].
node), (yyvsp[0].node), &(yylsp[-2]), &(yyloc));
6763 fixpos((yyval.
node), (yyvsp[0].
node));
6774 (yyval.
node) = new_yield(p, (yyvsp[0].node), &(yyloc));
6775 fixpos((yyval.
node), (yyvsp[0].
node));
6786 (yyval.
node) =
NEW_RETURN(ret_args(p, (yyvsp[0].node)), &(yyloc));
6797 (yyval.
node) =
NEW_BREAK(ret_args(p, (yyvsp[0].node)), &(yyloc));
6808 (yyval.
node) =
NEW_NEXT(ret_args(p, (yyvsp[0].node)), &(yyloc));
6819 (yyval.
node) = (yyvsp[-1].node);
6852 (yyval.
node) =
NEW_MASGN(list_append(p, (yyvsp[-1].node),(yyvsp[0].
node)), 0, &(yyloc));
6951 (yyval.
node) = (yyvsp[-1].node);
6962 (yyval.
node) =
NEW_LIST((yyvsp[-1].node), &(yylsp[-1]));
6973 (yyval.
node) = list_append(p, (yyvsp[-2].node), (yyvsp[-1].
node));
6995 (yyval.
node) = list_append(p, (yyvsp[-2].node), (yyvsp[0].
node));
7006 (yyval.
node) = assignable(p, (yyvsp[0].
id), 0, &(yyloc));
7017 (yyval.
node) = assignable(p, (yyvsp[0].
id), 0, &(yyloc));
7028 (yyval.
node) = aryset(p, (yyvsp[-3].node), (yyvsp[-1].
node), &(yyloc));
7038 if ((yyvsp[-1].
id) ==
tANDDOT) {
7039 yyerror1(&(yylsp[-1]),
"&. inside multiple assignment destination");
7042 (yyval.
node) = attrset(p, (yyvsp[-2].node), (yyvsp[-1].
id), (yyvsp[0].
id), &(yyloc));
7053 (yyval.
node) = attrset(p, (yyvsp[-2].node),
idCOLON2, (yyvsp[0].
id), &(yyloc));
7063 if ((yyvsp[-1].
id) ==
tANDDOT) {
7064 yyerror1(&(yylsp[-1]),
"&. inside multiple assignment destination");
7067 (yyval.
node) = attrset(p, (yyvsp[-2].node), (yyvsp[-1].
id), (yyvsp[0].
id), &(yyloc));
7078 (yyval.
node) = const_decl(p,
NEW_COLON2((yyvsp[-2].node), (yyvsp[0].
id), &(yyloc)), &(yyloc));
7089 (yyval.
node) = const_decl(p,
NEW_COLON3((yyvsp[0].
id), &(yyloc)), &(yyloc));
7100 rb_backref_error(p, (yyvsp[0].node));
7112 (yyval.
node) = assignable(p, (yyvsp[0].
id), 0, &(yyloc));
7123 (yyval.
node) = assignable(p, (yyvsp[0].
id), 0, &(yyloc));
7134 (yyval.
node) = aryset(p, (yyvsp[-3].node), (yyvsp[-1].
node), &(yyloc));
7145 (yyval.
node) = attrset(p, (yyvsp[-2].node), (yyvsp[-1].
id), (yyvsp[0].
id), &(yyloc));
7156 (yyval.
node) = attrset(p, (yyvsp[-2].node),
idCOLON2, (yyvsp[0].
id), &(yyloc));
7167 (yyval.
node) = attrset(p, (yyvsp[-2].node), (yyvsp[-1].
id), (yyvsp[0].
id), &(yyloc));
7178 (yyval.
node) = const_decl(p,
NEW_COLON2((yyvsp[-2].node), (yyvsp[0].
id), &(yyloc)), &(yyloc));
7189 (yyval.
node) = const_decl(p,
NEW_COLON3((yyvsp[0].
id), &(yyloc)), &(yyloc));
7200 rb_backref_error(p, (yyvsp[0].node));
7212 yyerror1(&(yylsp[0]),
"class/module name must be CONSTANT");
7256 (yyval.
id) = (yyvsp[0].
id);
7294 (yyval.
node) = block_append(p, (yyvsp[-3].node), undef);
7485 (yyval.
node) = node_assign(p, (yyvsp[-2].node), (yyvsp[0].
node), &(yyloc));
7496 (yyval.
node) = new_op_assign(p, (yyvsp[-2].node), (yyvsp[-1].
id), (yyvsp[0].node), &(yyloc));
7508 (yyval.
node) = new_ary_op_assign(p, (yyvsp[-5].node), (yyvsp[-3].
node), (yyvsp[-1].
id), (yyvsp[0].
node), &(yylsp[-3]), &(yyloc));
7520 (yyval.
node) = new_attr_op_assign(p, (yyvsp[-4].node), (yyvsp[-3].
id), (yyvsp[-2].
id), (yyvsp[-1].
id), (yyvsp[0].node), &(yyloc));
7532 (yyval.
node) = new_attr_op_assign(p, (yyvsp[-4].node), (yyvsp[-3].
id), (yyvsp[-2].
id), (yyvsp[-1].
id), (yyvsp[0].node), &(yyloc));
7544 (yyval.
node) = new_attr_op_assign(p, (yyvsp[-4].node),
ID2VAL(
idCOLON2), (yyvsp[-2].
id), (yyvsp[-1].
id), (yyvsp[0].
node), &(yyloc));
7555 YYLTYPE loc = code_loc_gen(&(yylsp[-4]), &(yylsp[-2]));
7556 (yyval.
node) = new_const_op_assign(p,
NEW_COLON2((yyvsp[-4].node), (yyvsp[-2].
id), &loc), (yyvsp[-1].
id), (yyvsp[0].node), &(yyloc));
7567 (yyval.
node) = new_const_op_assign(p,
NEW_COLON3((yyvsp[-2].
id), &(yyloc)), (yyvsp[-1].
id), (yyvsp[0].node), &(yyloc));
7578 rb_backref_error(p, (yyvsp[-2].node));
7617 loc.beg_pos = (yylsp[0]).end_pos;
7618 loc.end_pos = (yylsp[0]).end_pos;
7633 loc.beg_pos = (yylsp[0]).end_pos;
7634 loc.end_pos = (yylsp[0]).end_pos;
7649 loc.beg_pos = (yylsp[-1]).beg_pos;
7650 loc.end_pos = (yylsp[-1]).beg_pos;
7665 loc.beg_pos = (yylsp[-1]).beg_pos;
7666 loc.end_pos = (yylsp[-1]).beg_pos;
7679 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
'+', (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7687 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
'-', (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7695 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
'*', (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7703 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
'/', (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7711 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
'%', (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7719 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
idPow, (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7727 (yyval.
node) = call_uni_op(p, call_bin_op(p, (yyvsp[-2].node),
idPow, (yyvsp[0].
node), &(yylsp[-2]), &(yyloc)),
idUMinus, &(yylsp[-3]), &(yyloc));
7735 (yyval.
node) = call_uni_op(p, (yyvsp[0].node),
idUPlus, &(yylsp[-1]), &(yyloc));
7743 (yyval.
node) = call_uni_op(p, (yyvsp[0].node),
idUMinus, &(yylsp[-1]), &(yyloc));
7751 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
'|', (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7759 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
'^', (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7767 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
'&', (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7775 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
idCmp, (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7783 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
idEq, (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7791 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
idEqq, (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7799 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
idNeq, (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7807 (yyval.
node) = match_op(p, (yyvsp[-2].node), (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7815 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
idNeqTilde, (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7823 (yyval.
node) = call_uni_op(p, method_cond(p, (yyvsp[0].node), &(yylsp[0])),
'!', &(yylsp[-1]), &(yyloc));
7831 (yyval.
node) = call_uni_op(p, (yyvsp[0].node),
'~', &(yylsp[-1]), &(yyloc));
7839 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
idLTLT, (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7847 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node),
idGTGT, (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7855 (yyval.
node) = logop(p,
idANDOP, (yyvsp[-2].node), (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7863 (yyval.
node) = logop(p,
idOROP, (yyvsp[-2].node), (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
7878 (yyval.
node) = new_defined(p, (yyvsp[0].node), &(yyloc));
7888 (yyval.
node) = new_if(p, (yyvsp[-5].node), (yyvsp[-3].
node), (yyvsp[0].node), &(yyloc));
7889 fixpos((yyval.
node), (yyvsp[-5].
node));
7899 (yyval.
node) = (yyvsp[0].node);
7931 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node), (yyvsp[-1].
id), (yyvsp[0].node), &(yylsp[-1]), &(yyloc));
7940 (yyval.
node) = call_bin_op(p, (yyvsp[-2].node), (yyvsp[-1].
id), (yyvsp[0].node), &(yylsp[-1]), &(yyloc));
7949 (yyval.
node) = (yyvsp[0].node);
7957 (yyval.
node) = (yyvsp[-1].node);
7966 (yyval.
node) = (yyvsp[-1].node) ? arg_append(p, (yyvsp[-3].node), new_hash(p, (yyvsp[-1].node), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].
node);
7977 (yyval.
node) = (yyvsp[-1].node) ?
NEW_LIST(new_hash(p, (yyvsp[-1].node), &(yylsp[-1])), &(yyloc)) : 0;
7988 (yyval.
node) = (yyvsp[0].node);
7997 YYLTYPE loc = code_loc_gen(&(yylsp[-1]), &(yylsp[0]));
8010 (yyval.
node) = (yyvsp[-1].node);
8035 (yyval.
node) = rest_arg_append(p, (yyvsp[-3].node), splat, &(yyloc));
8037 (yyval.
node) = arg_append(p, (yyval.
node), new_hash(p, kwrest, &(yylsp[-1])), &(yylsp[-1]));
8039 (yyval.
node) = arg_blk_pass((yyval.
node), block);
8066 (yyval.
node) = arg_append(p, splat, new_hash(p, kwrest, &(yylsp[-1])), &(yylsp[-1]));
8068 (yyval.
node) = splat;
8070 (yyval.
node) = arg_blk_pass((yyval.
node), block);
8081 (yyval.
node) = (yyvsp[-1].node);
8090 (yyval.
node) = (yyvsp[-1].node) ? arg_append(p, (yyvsp[-3].node), new_hash(p, (yyvsp[-1].node), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].
node);
8101 (yyval.
node) = (yyvsp[-1].node) ?
NEW_LIST(new_hash(p, (yyvsp[-1].node), &(yylsp[-1])), &(yylsp[-1])) : 0;
8124 (yyval.
node) = arg_blk_pass((yyvsp[-1].node), (yyvsp[0].
node));
8135 (yyval.
node) = (yyvsp[-1].node) ?
NEW_LIST(new_hash(p, (yyvsp[-1].node), &(yylsp[-1])), &(yylsp[-1])) : 0;
8136 (yyval.
node) = arg_blk_pass((yyval.
node), (yyvsp[0].
node));
8147 (yyval.
node) = (yyvsp[-1].node) ? arg_append(p, (yyvsp[-3].node), new_hash(p, (yyvsp[-1].node), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].
node);
8148 (yyval.
node) = arg_blk_pass((yyval.
node), (yyvsp[0].
node));
8194 (yyval.
node) = (yyvsp[0].node);
8213 (yyval.
node) = (yyvsp[0].node);
8252 (yyval.
node) = last_arg_append(p, (yyvsp[-2].node), (yyvsp[0].
node), &(yyloc));
8263 (yyval.
node) = rest_arg_append(p, (yyvsp[-3].node), (yyvsp[0].
node), &(yyloc));
8274 (yyval.
node) = last_arg_append(p, (yyvsp[-2].node), (yyvsp[0].
node), &(yyloc));
8285 (yyval.
node) = rest_arg_append(p, (yyvsp[-3].node), (yyvsp[0].
node), &(yyloc));
8327 set_line_body((yyvsp[-1].node), (yylsp[-3]).end_pos.lineno);
8364 (yyval.
node) = (yyvsp[-2].node);
8376 (yyval.
node) = (yyvsp[-1].node);
8420 (yyval.
node) = new_hash(p, (yyvsp[-1].node), &(yyloc));
8443 (yyval.
node) = new_yield(p, (yyvsp[-1].node), &(yyloc));
8482 (yyval.
node) = new_defined(p, (yyvsp[-1].node), &(yyloc));
8490 (yyval.
node) = call_uni_op(p, method_cond(p, (yyvsp[-1].node), &(yylsp[-1])),
METHOD_NOT, &(yylsp[-3]), &(yyloc));
8498 (yyval.
node) = call_uni_op(p, method_cond(p,
new_nil(&(yylsp[-1])), &(yylsp[-1])),
METHOD_NOT, &(yylsp[-2]), &(yyloc));
8507 (yyval.
node) = method_add_block(p, (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
8518 block_dup_check(p, (yyvsp[-1].node)->
nd_args, (yyvsp[0].node));
8519 (yyval.
node) = method_add_block(p, (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
8529 token_info_push(p,
"->", &(yylsp[0]));
8537 (yyval.
node) = (yyvsp[0].node);
8549 (yyval.
node) = new_if(p, (yyvsp[-4].node), (yyvsp[-2].
node), (yyvsp[-1].node), &(yyloc));
8550 fixpos((yyval.
node), (yyvsp[-4].
node));
8561 (yyval.
node) = new_unless(p, (yyvsp[-4].node), (yyvsp[-2].
node), (yyvsp[-1].node), &(yyloc));
8562 fixpos((yyval.
node), (yyvsp[-4].
node));
8573 (yyval.
node) =
NEW_WHILE(cond(p, (yyvsp[-2].node), &(yylsp[-2])), (yyvsp[-1].
node), 1, &(yyloc));
8574 fixpos((yyval.
node), (yyvsp[-2].
node));
8585 (yyval.
node) =
NEW_UNTIL(cond(p, (yyvsp[-2].node), &(yylsp[-2])), (yyvsp[-1].
node), 1, &(yyloc));
8586 fixpos((yyval.
node), (yyvsp[-2].
node));
8609 fixpos((yyval.
node), (yyvsp[-4].
node));
8642 (yyval.
node) = new_case3(p, (yyvsp[-3].node), (yyvsp[-1].
node), &(yyloc));
8662 ID id = internal_id(p);
8664 NODE *args, *scope, *internal_var =
NEW_DVAR(
id, &(yylsp[-4]));
8666 tbl[0] = 1 ; tbl[1] =
id ;
8669 switch (
nd_type((yyvsp[-4].node))) {
8676 m->nd_next = (yyvsp[-4].
node);
8679 m->nd_next = node_assign(p, (yyvsp[-4].node),
NEW_FOR_MASGN(internal_var, &(yylsp[-4])), &(yylsp[-4]));
8682 m->nd_next = node_assign(p,
NEW_MASGN(
NEW_LIST((yyvsp[-4].node), &(yylsp[-4])), 0, &(yylsp[-4])), internal_var, &(yylsp[-4]));
8685 args = new_args(p, m, 0,
id, 0, new_args_tail(p, 0, 0, 0, &(yylsp[-4])), &(yylsp[-4]));
8687 (yyval.
node) =
NEW_FOR((yyvsp[-2].node), scope, &(yyloc));
8688 fixpos((yyval.
node), (yyvsp[-4].
node));
8699 YYLTYPE loc = code_loc_gen(&(yylsp[-2]), &(yylsp[-1]));
8700 yyerror1(&loc,
"class definition in method body");
8713 (yyval.
node) =
NEW_CLASS((yyvsp[-4].node), (yyvsp[-1].
node), (yyvsp[-3].node), &(yyloc));
8715 set_line_body((yyvsp[-1].node), (yylsp[-3]).end_pos.lineno);
8742 set_line_body((yyvsp[-1].node),
nd_line((yyvsp[-4].node)));
8743 fixpos((yyval.
node), (yyvsp[-4].
node));
8757 YYLTYPE loc = code_loc_gen(&(yylsp[-1]), &(yylsp[0]));
8758 yyerror1(&loc,
"module definition in method body");
8773 set_line_body((yyvsp[-1].node), (yylsp[-3]).end_pos.lineno);
8786 numparam_name(p,
get_id((yyvsp[0].
id)));
8807 NODE *body = remove_begin((yyvsp[-1].node));
8808 reduce_nodes(p, &body);
8811 set_line_body(body, (yylsp[-6]).beg_pos.lineno);
8830 numparam_name(p,
get_id((yyvsp[0].
id)));
8845 NODE *body = remove_begin((yyvsp[-1].node));
8846 reduce_nodes(p, &body);
8847 (yyval.
node) =
NEW_DEFS((yyvsp[-7].node), (yyvsp[-4].
id), (yyvsp[-2].node), body, &(yyloc));
8849 set_line_body(body, (yylsp[-8]).beg_pos.lineno);
8907 (yyval.
node) = (yyvsp[0].node);
8915 token_info_push(p,
"begin", &(yyloc));
8924 token_info_push(p,
"if", &(yyloc));
8942 token_info_push(p,
"unless", &(yyloc));
8950 token_info_push(p,
"while", &(yyloc));
8958 token_info_push(p,
"until", &(yyloc));
8966 token_info_push(p,
"case", &(yyloc));
8974 token_info_push(p,
"for", &(yyloc));
8982 token_info_push(p,
"class", &(yyloc));
8990 token_info_push(p,
"module", &(yyloc));
8998 token_info_push(p,
"def", &(yyloc));
9006 token_info_push(p,
"do", &(yyloc));
9014 token_info_push(p,
"do", &(yyloc));
9022 token_info_warn(p,
"rescue", p->
token_info, 1, &(yyloc));
9030 token_info_warn(p,
"ensure", p->
token_info, 1, &(yyloc));
9038 token_info_warn(p,
"when", p->
token_info, 0, &(yyloc));
9047 int same = ptinfo_beg &&
strcmp(ptinfo_beg->
token,
"case") != 0;
9048 token_info_warn(p,
"else", p->
token_info, same, &(yyloc));
9053 token_info_setup(&e, p->
lex.
pbeg, &(yyloc));
9054 if (!e.
nonspc) *ptinfo_beg = e;
9064 token_info_warn(p,
"elsif", p->
token_info, 1, &(yyloc));
9072 token_info_pop(p,
"end", &(yyloc));
9081 yyerror1(&(yylsp[0]),
"Invalid return in class/module body");
9090 (yyval.
node) = new_if(p, (yyvsp[-3].node), (yyvsp[-1].
node), (yyvsp[0].node), &(yyloc));
9091 fixpos((yyval.
node), (yyvsp[-3].
node));
9102 (yyval.
node) = (yyvsp[0].node);
9113 (yyval.
node) = assignable(p, (yyvsp[0].
id), 0, &(yyloc));
9114 mark_lvar_used(p, (yyval.
node));
9125 (yyval.
node) = (yyvsp[-1].node);
9147 (yyval.
node) = list_append(p, (yyvsp[-2].node), (yyvsp[0].
node));
9213 (yyval.
node) = assignable(p, (yyvsp[0].
id), 0, &(yyloc));
9214 mark_lvar_used(p, (yyval.
node));
9235 (yyval.
node) = new_args_tail(p, (yyvsp[-3].node), (yyvsp[-1].
id), (yyvsp[0].
id), &(yylsp[-1]));
9243 (yyval.
node) = new_args_tail(p, (yyvsp[-1].node),
Qnone, (yyvsp[0].
id), &(yylsp[-1]));
9251 (yyval.
node) = new_args_tail(p,
Qnone, (yyvsp[-1].
id), (yyvsp[0].
id), &(yylsp[-1]));
9267 (yyval.
node) = new_args_tail(p,
Qnone,
Qnone, (yyvsp[0].
id), &(yylsp[0]));
9275 (yyval.
node) = (yyvsp[0].node);
9291 (yyval.
node) = new_args(p, (yyvsp[-5].node), (yyvsp[-3].
node), (yyvsp[-1].
id),
Qnone, (yyvsp[0].
node), &(yyloc));
9299 (yyval.
node) = new_args(p, (yyvsp[-7].node), (yyvsp[-5].
node), (yyvsp[-3].
id), (yyvsp[-1].
node), (yyvsp[0].node), &(yyloc));
9307 (yyval.
node) = new_args(p, (yyvsp[-3].node), (yyvsp[-1].
node),
Qnone,
Qnone, (yyvsp[0].node), &(yyloc));
9315 (yyval.
node) = new_args(p, (yyvsp[-5].node), (yyvsp[-3].
node),
Qnone, (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
9323 (yyval.
node) = new_args(p, (yyvsp[-3].node),
Qnone, (yyvsp[-1].
id),
Qnone, (yyvsp[0].node), &(yyloc));
9333 (yyval.
node) = new_args(p, (yyvsp[-1].node),
Qnone,
NODE_SPECIAL_EXCESSIVE_COMMA,
Qnone, new_args_tail(p,
Qnone,
Qnone,
Qnone, &(yylsp[-1])), &(yyloc));
9343 (yyval.
node) = new_args(p, (yyvsp[-5].node),
Qnone, (yyvsp[-3].
id), (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
9359 (yyval.
node) = new_args(p,
Qnone, (yyvsp[-3].node), (yyvsp[-1].
id),
Qnone, (yyvsp[0].node), &(yyloc));
9367 (yyval.
node) = new_args(p,
Qnone, (yyvsp[-5].node), (yyvsp[-3].
id), (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
9383 (yyval.
node) = new_args(p,
Qnone, (yyvsp[-3].node),
Qnone, (yyvsp[-1].
node), (yyvsp[0].node), &(yyloc));
9399 (yyval.
node) = new_args(p,
Qnone,
Qnone, (yyvsp[-3].
id), (yyvsp[-1].
node), (yyvsp[0].node), &(yyloc));
9439 (yyval.
node) = (yyvsp[-2].node);
9468 new_bv(p,
get_id((yyvsp[0].
id)));
9485 (yyval.
vars) = dyna_push(p);
9511 (yyval.
node) = numparam_push(p);
9531 (yyvsp[-2].
node) = args_with_numbered(p, (yyvsp[-2].node), max_numparam);
9534 YYLTYPE loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
9541 numparam_pop(p, (yyvsp[-3].node));
9542 dyna_pop(p, (yyvsp[-6].
vars));
9551 (yyval.
node) = (yyvsp[-2].node);
9563 if (!args_info_empty_p((yyvsp[0].node)->
nd_ainfo))
9574 token_info_pop(p,
"}", &(yylsp[0]));
9575 (yyval.
node) = (yyvsp[-1].node);
9583 (yyval.
node) = (yyvsp[-1].node);
9591 (yyval.
node) = (yyvsp[-1].node);
9593 (yyval.
node)->
nd_body->nd_loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
9608 block_dup_check(p, (yyvsp[-1].node)->
nd_args, (yyvsp[0].node));
9610 (yyval.
node) = method_add_block(p, (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
9611 fixpos((yyval.
node), (yyvsp[-1].
node));
9622 (yyval.
node) = new_qcall(p, (yyvsp[-2].
id), (yyvsp[-3].
node), (yyvsp[-1].
id), (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
9633 (yyval.
node) = new_command_qcall(p, (yyvsp[-3].
id), (yyvsp[-4].
node), (yyvsp[-2].
id), (yyvsp[-1].
node), (yyvsp[0].node), &(yylsp[-2]), &(yyloc));
9644 (yyval.
node) = new_command_qcall(p, (yyvsp[-3].
id), (yyvsp[-4].
node), (yyvsp[-2].
id), (yyvsp[-1].
node), (yyvsp[0].node), &(yylsp[-2]), &(yyloc));
9655 (yyval.
node) = (yyvsp[-1].node);
9668 (yyval.
node) = new_qcall(p, (yyvsp[-2].
id), (yyvsp[-3].
node), (yyvsp[-1].
id), (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
9703 (yyval.
node) = new_qcall(p, (yyvsp[-1].
id), (yyvsp[-2].
node),
ID2VAL(
idCall), (yyvsp[0].
node), &(yylsp[-1]), &(yyloc));
9753 fixpos((yyval.
node), (yyvsp[-3].
node));
9763 (yyval.
node) = (yyvsp[-1].node);
9765 (yyval.
node)->
nd_body->nd_loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
9775 (yyval.
node) = (yyvsp[-1].node);
9777 (yyval.
node)->
nd_body->nd_loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
9786 {(yyval.
vars) = dyna_push(p);}
9802 (yyval.
node) = numparam_push(p);
9812 (yyvsp[-1].
node) = args_with_numbered(p, (yyvsp[-1].node), max_numparam);
9817 numparam_pop(p, (yyvsp[-2].node));
9818 dyna_pop(p, (yyvsp[-4].
vars));
9825 {(yyval.
vars) = dyna_push(p);}
9841 (yyval.
node) = numparam_push(p);
9852 (yyvsp[-1].
node) = args_with_numbered(p, (yyvsp[-1].node), max_numparam);
9858 numparam_pop(p, (yyvsp[-2].node));
9859 dyna_pop(p, (yyvsp[-4].
vars));
9868 check_literal_when(p, (yyvsp[0].node), &(yylsp[0]));
9891 check_literal_when(p, (yyvsp[0].node), &(yylsp[0]));
9892 (yyval.
node) = last_arg_append(p, (yyvsp[-2].node), (yyvsp[0].
node), &(yyloc));
9903 (yyval.
node) = rest_arg_append(p, (yyvsp[-3].node), (yyvsp[0].
node), &(yyloc));
9914 (yyval.
node) =
NEW_WHEN((yyvsp[-3].node), (yyvsp[-1].
node), (yyvsp[0].node), &(yyloc));
9915 fixpos((yyval.
node), (yyvsp[-3].
node));
9935 {(yyval.
tbl) = push_pvtbl(p);}
9941 {(yyval.
tbl) = push_pktbl(p);}
9947 {pop_pktbl(p, (yyvsp[-2].tbl));}
9953 {pop_pvtbl(p, (yyvsp[-4].tbl));}
9969 (yyval.
node) =
NEW_IN((yyvsp[-6].node), (yyvsp[-1].
node), (yyvsp[0].node), &(yyloc));
9980 (yyval.
node) = new_if(p, (yyvsp[0].node), remove_begin((yyvsp[-2].node)), 0, &(yyloc));
9981 fixpos((yyval.
node), (yyvsp[0].
node));
9992 (yyval.
node) = new_unless(p, (yyvsp[0].node), remove_begin((yyvsp[-2].node)), 0, &(yyloc));
9993 fixpos((yyval.
node), (yyvsp[0].
node));
10001#line 3853 "parse.y"
10003 (yyval.
node) = new_array_pattern_tail(p,
Qnone, 1, 0,
Qnone, &(yyloc));
10006#line 10002 "parse.c"
10010#line 3858 "parse.y"
10012 (yyval.
node) = new_array_pattern(p,
Qnone,
get_value((yyvsp[-2].node)), (yyvsp[0].node), &(yyloc));
10018#line 10014 "parse.c"
10022#line 3866 "parse.y"
10024 (yyval.
node) = new_array_pattern(p,
Qnone,
Qnone, (yyvsp[0].node), &(yyloc));
10026#line 10022 "parse.c"
10030#line 3870 "parse.y"
10032 (yyval.
node) = new_hash_pattern(p,
Qnone, (yyvsp[0].node), &(yyloc));
10034#line 10030 "parse.c"
10038#line 3879 "parse.y"
10042 n = list_append(p,
n, (yyvsp[0].node));
10043 (yyval.
node) = new_hash(p,
n, &(yyloc));
10047#line 10043 "parse.c"
10051#line 3891 "parse.y"
10058#line 10054 "parse.c"
10062#line 3900 "parse.y"
10063 {(yyval.
tbl) = push_pktbl(p);}
10064#line 10060 "parse.c"
10068#line 3901 "parse.y"
10069 {(yyval.
tbl) = push_pktbl(p);}
10070#line 10066 "parse.c"
10074#line 3905 "parse.y"
10076 pop_pktbl(p, (yyvsp[-2].tbl));
10077 (yyval.
node) = new_array_pattern(p, (yyvsp[-3].node),
Qnone, (yyvsp[-1].
node), &(yyloc));
10083#line 10079 "parse.c"
10087#line 3914 "parse.y"
10089 pop_pktbl(p, (yyvsp[-2].tbl));
10090 (yyval.
node) = new_hash_pattern(p, (yyvsp[-3].node), (yyvsp[-1].
node), &(yyloc));
10096#line 10092 "parse.c"
10100#line 3923 "parse.y"
10102 (yyval.
node) = new_array_pattern_tail(p,
Qnone, 0, 0,
Qnone, &(yyloc));
10103 (yyval.
node) = new_array_pattern(p, (yyvsp[-2].node),
Qnone, (yyval.
node), &(yyloc));
10105#line 10101 "parse.c"
10109#line 3928 "parse.y"
10111 pop_pktbl(p, (yyvsp[-2].tbl));
10112 (yyval.
node) = new_array_pattern(p, (yyvsp[-3].node),
Qnone, (yyvsp[-1].
node), &(yyloc));
10118#line 10114 "parse.c"
10122#line 3937 "parse.y"
10124 pop_pktbl(p, (yyvsp[-2].tbl));
10125 (yyval.
node) = new_hash_pattern(p, (yyvsp[-3].node), (yyvsp[-1].
node), &(yyloc));
10131#line 10127 "parse.c"
10135#line 3946 "parse.y"
10137 (yyval.
node) = new_array_pattern_tail(p,
Qnone, 0, 0,
Qnone, &(yyloc));
10138 (yyval.
node) = new_array_pattern(p, (yyvsp[-2].node),
Qnone, (yyval.
node), &(yyloc));
10140#line 10136 "parse.c"
10144#line 3950 "parse.y"
10145 {(yyval.
tbl) = push_pktbl(p);}
10146#line 10142 "parse.c"
10150#line 3951 "parse.y"
10152 pop_pktbl(p, (yyvsp[-2].tbl));
10153 (yyval.
node) = new_array_pattern(p,
Qnone,
Qnone, (yyvsp[-1].node), &(yyloc));
10155#line 10151 "parse.c"
10159#line 3956 "parse.y"
10161 (yyval.
node) = new_array_pattern_tail(p,
Qnone, 0, 0,
Qnone, &(yyloc));
10164#line 10160 "parse.c"
10168#line 3961 "parse.y"
10170 (yyval.
tbl) = push_pktbl(p);
10174#line 10170 "parse.c"
10178#line 3967 "parse.y"
10180 pop_pktbl(p, (yyvsp[-2].tbl));
10182 (yyval.
node) = new_hash_pattern(p,
Qnone, (yyvsp[-1].node), &(yyloc));
10184#line 10180 "parse.c"
10188#line 3973 "parse.y"
10190 (yyval.
node) = new_hash_pattern_tail(p,
Qnone, 0, &(yyloc));
10191 (yyval.
node) = new_hash_pattern(p,
Qnone, (yyval.
node), &(yyloc));
10193#line 10189 "parse.c"
10197#line 3977 "parse.y"
10198 {(yyval.
tbl) = push_pktbl(p);}
10199#line 10195 "parse.c"
10203#line 3978 "parse.y"
10205 pop_pktbl(p, (yyvsp[-2].tbl));
10206 (yyval.
node) = (yyvsp[-1].node);
10208#line 10204 "parse.c"
10212#line 3985 "parse.y"
10216 (yyval.
node) = new_array_pattern_tail(p, pre_args, 0, 0,
Qnone, &(yyloc));
10221#line 10217 "parse.c"
10225#line 3994 "parse.y"
10227 (yyval.
node) = new_array_pattern_tail(p, (yyvsp[0].node), 1, 0,
Qnone, &(yyloc));
10229#line 10225 "parse.c"
10233#line 3998 "parse.y"
10236 (yyval.
node) = new_array_pattern_tail(p, list_concat((yyvsp[-1].node), (yyvsp[0].
node)), 0, 0,
Qnone, &(yyloc));
10242#line 10238 "parse.c"
10246#line 4007 "parse.y"
10248 (yyval.
node) = new_array_pattern_tail(p, (yyvsp[-2].node), 1, (yyvsp[0].
id),
Qnone, &(yyloc));
10250#line 10246 "parse.c"
10254#line 4011 "parse.y"
10256 (yyval.
node) = new_array_pattern_tail(p, (yyvsp[-4].node), 1, (yyvsp[-2].
id), (yyvsp[0].node), &(yyloc));
10258#line 10254 "parse.c"
10262#line 4015 "parse.y"
10264 (yyval.
node) = new_array_pattern_tail(p, (yyvsp[-1].node), 1, 0,
Qnone, &(yyloc));
10266#line 10262 "parse.c"
10270#line 4019 "parse.y"
10272 (yyval.
node) = new_array_pattern_tail(p, (yyvsp[-3].node), 1, 0, (yyvsp[0].
node), &(yyloc));
10274#line 10270 "parse.c"
10278#line 4026 "parse.y"
10280 (yyval.
node) = (yyvsp[-1].node);
10282#line 10278 "parse.c"
10286#line 4030 "parse.y"
10289 (yyval.
node) = list_concat((yyvsp[-2].node), (yyvsp[-1].
node));
10293#line 10289 "parse.c"
10297#line 4039 "parse.y"
10299 (yyval.
node) = new_array_pattern_tail(p,
Qnone, 1, (yyvsp[0].
id),
Qnone, &(yyloc));
10301#line 10297 "parse.c"
10305#line 4043 "parse.y"
10307 (yyval.
node) = new_array_pattern_tail(p,
Qnone, 1, (yyvsp[-2].
id), (yyvsp[0].
node), &(yyloc));
10309#line 10305 "parse.c"
10313#line 4047 "parse.y"
10315 (yyval.
node) = new_array_pattern_tail(p,
Qnone, 1, 0,
Qnone, &(yyloc));
10317#line 10313 "parse.c"
10321#line 4051 "parse.y"
10323 (yyval.
node) = new_array_pattern_tail(p,
Qnone, 1, 0, (yyvsp[0].node), &(yyloc));
10325#line 10321 "parse.c"
10329#line 4058 "parse.y"
10332 (yyval.
node) = list_concat((yyvsp[-2].node), (yyvsp[0].
node));
10336#line 10332 "parse.c"
10340#line 4067 "parse.y"
10347#line 10343 "parse.c"
10351#line 4076 "parse.y"
10353 (yyval.
node) = new_hash_pattern_tail(p, new_unique_key_hash(p, (yyvsp[-2].node), &(yyloc)), (yyvsp[0].
id), &(yyloc));
10355#line 10351 "parse.c"
10359#line 4080 "parse.y"
10361 (yyval.
node) = new_hash_pattern_tail(p, new_unique_key_hash(p, (yyvsp[0].node), &(yyloc)), 0, &(yyloc));
10363#line 10359 "parse.c"
10367#line 4084 "parse.y"
10369 (yyval.
node) = new_hash_pattern_tail(p, new_unique_key_hash(p, (yyvsp[-1].node), &(yyloc)), 0, &(yyloc));
10371#line 10367 "parse.c"
10375#line 4088 "parse.y"
10377 (yyval.
node) = new_hash_pattern_tail(p, new_hash(p,
Qnone, &(yyloc)), (yyvsp[0].
id), &(yyloc));
10379#line 10375 "parse.c"
10383#line 4092 "parse.y"
10385 (yyval.
node) = new_hash_pattern_tail(p, new_unique_key_hash(p, (yyvsp[-2].node), &(yyloc)),
ID2VAL(
idNil), &(yyloc));
10387#line 10383 "parse.c"
10391#line 4096 "parse.y"
10393 (yyval.
node) = new_hash_pattern_tail(p, new_hash(p,
Qnone, &(yyloc)),
ID2VAL(
idNil), &(yyloc));
10395#line 10391 "parse.c"
10399#line 4104 "parse.y"
10402 (yyval.
node) = list_concat((yyvsp[-2].node), (yyvsp[0].
node));
10406#line 10402 "parse.c"
10410#line 4113 "parse.y"
10412 error_duplicate_pattern_key(p,
get_id((yyvsp[-1].
id)), &(yylsp[-1]));
10418#line 10414 "parse.c"
10422#line 4121 "parse.y"
10424 error_duplicate_pattern_key(p,
get_id((yyvsp[0].
id)), &(yylsp[0]));
10426 yyerror1(&(yylsp[0]),
"key must be valid as local variables");
10428 error_duplicate_pattern_variable(p,
get_id((yyvsp[0].
id)), &(yylsp[0]));
10430 (yyval.
node) = list_append(p,
NEW_LIST(
NEW_LIT(
ID2SYM((yyvsp[0].
id)), &(yyloc)), &(yyloc)), assignable(p, (yyvsp[0].
id), 0, &(yyloc)));
10434#line 10430 "parse.c"
10438#line 4136 "parse.y"
10440 YYLTYPE loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
10443 NODE *node = dsym_node(p, (yyvsp[-1].node), &loc);
10444 (yyval.
id) =
SYM2ID(node->nd_lit);
10455 yyerror1(&loc,
"symbol literal with interpolation is not allowed");
10459#line 10455 "parse.c"
10463#line 4159 "parse.y"
10465 (yyval.
id) = (yyvsp[0].
id);
10467#line 10463 "parse.c"
10471#line 4163 "parse.y"
10475#line 10471 "parse.c"
10479#line 4169 "parse.y"
10483#line 10479 "parse.c"
10487#line 4176 "parse.y"
10496#line 10492 "parse.c"
10500#line 4185 "parse.y"
10509#line 10505 "parse.c"
10513#line 4194 "parse.y"
10517 loc.beg_pos = (yylsp[0]).end_pos;
10518 loc.end_pos = (yylsp[0]).end_pos;
10525#line 10521 "parse.c"
10529#line 4206 "parse.y"
10533 loc.beg_pos = (yylsp[0]).end_pos;
10534 loc.end_pos = (yylsp[0]).end_pos;
10541#line 10537 "parse.c"
10545#line 4221 "parse.y"
10549 loc.beg_pos = (yylsp[-1]).beg_pos;
10550 loc.end_pos = (yylsp[-1]).beg_pos;
10557#line 10553 "parse.c"
10561#line 4233 "parse.y"
10565 loc.beg_pos = (yylsp[-1]).beg_pos;
10566 loc.end_pos = (yylsp[-1]).beg_pos;
10573#line 10569 "parse.c"
10577#line 4255 "parse.y"
10580 if (!((yyval.
node) = gettable(p, (yyvsp[0].
id), &(yyloc)))) (yyval.
node) =
NEW_BEGIN(0, &(yyloc));
10584#line 10580 "parse.c"
10588#line 4262 "parse.y"
10590 token_info_push(p,
"->", &(yylsp[0]));
10592#line 10588 "parse.c"
10596#line 4266 "parse.y"
10598 (yyval.
node) = (yyvsp[0].node);
10603#line 10599 "parse.c"
10607#line 4275 "parse.y"
10610 error_duplicate_pattern_variable(p, (yyvsp[0].
id), &(yylsp[0]));
10611 (yyval.
node) = assignable(p, (yyvsp[0].
id), 0, &(yyloc));
10615#line 10611 "parse.c"
10619#line 4285 "parse.y"
10622 NODE *
n = gettable(p, (yyvsp[0].
id), &(yyloc));
10630#line 10626 "parse.c"
10634#line 4298 "parse.y"
10641#line 10637 "parse.c"
10645#line 4305 "parse.y"
10652#line 10648 "parse.c"
10656#line 4312 "parse.y"
10659 (yyval.
node) = gettable(p, (yyvsp[0].
id), &(yyloc));
10663#line 10659 "parse.c"
10667#line 4323 "parse.y"
10671 (yyvsp[-3].
node) ? block_append(p, node_assign(p, (yyvsp[-3].node),
NEW_ERRINFO(&(yylsp[-3])), &(yylsp[-3])), (yyvsp[-1].
node)) : (yyvsp[-1].
node),
10672 (yyvsp[0].node), &(yyloc));
10677#line 10673 "parse.c"
10681#line 4336 "parse.y"
10688#line 10684 "parse.c"
10692#line 4343 "parse.y"
10695 if (!((yyval.
node) = splat_array((yyvsp[0].node)))) (yyval.
node) = (yyvsp[0].node);
10699#line 10695 "parse.c"
10703#line 4353 "parse.y"
10705 (yyval.
node) = (yyvsp[0].node);
10707#line 10703 "parse.c"
10711#line 4360 "parse.y"
10714 (yyval.
node) = (yyvsp[0].node);
10718#line 10714 "parse.c"
10722#line 4374 "parse.y"
10731 node = evstr2dstr(p, node);
10733 (yyval.
node) = node;
10737#line 10733 "parse.c"
10741#line 4393 "parse.y"
10744 (yyval.
node) = literal_concat(p, (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
10748#line 10744 "parse.c"
10752#line 4402 "parse.y"
10755 (yyval.
node) = heredoc_dedent(p, (yyvsp[-1].node));
10756 if ((yyval.
node)) nd_set_loc((yyval.
node), &(yyloc));
10760#line 10756 "parse.c"
10764#line 4412 "parse.y"
10767 (yyval.
node) = new_xstring(p, heredoc_dedent(p, (yyvsp[-1].node)), &(yyloc));
10771#line 10767 "parse.c"
10775#line 4421 "parse.y"
10777 (yyval.
node) = new_regexp(p, (yyvsp[-1].node), (yyvsp[0].
num), &(yyloc));
10779#line 10775 "parse.c"
10783#line 4427 "parse.y"
10790#line 10786 "parse.c"
10794#line 4436 "parse.y"
10801#line 10797 "parse.c"
10805#line 4443 "parse.y"
10808 (yyval.
node) = list_append(p, (yyvsp[-2].node), evstr2dstr(p, (yyvsp[-1].node)));
10812#line 10808 "parse.c"
10816#line 4454 "parse.y"
10819 (yyval.
node) = literal_concat(p, (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
10823#line 10819 "parse.c"
10827#line 4463 "parse.y"
10834#line 10830 "parse.c"
10838#line 4472 "parse.y"
10845#line 10841 "parse.c"
10849#line 4479 "parse.y"
10852 (yyval.
node) = symbol_append(p, (yyvsp[-2].node), evstr2dstr(p, (yyvsp[-1].node)));
10856#line 10852 "parse.c"
10860#line 4488 "parse.y"
10867#line 10863 "parse.c"
10871#line 4497 "parse.y"
10878#line 10874 "parse.c"
10882#line 4506 "parse.y"
10889#line 10885 "parse.c"
10893#line 4513 "parse.y"
10896 (yyval.
node) = list_append(p, (yyvsp[-2].node), (yyvsp[-1].
node));
10900#line 10896 "parse.c"
10904#line 4522 "parse.y"
10911#line 10907 "parse.c"
10915#line 4529 "parse.y"
10918 (yyval.
node) = symbol_append(p, (yyvsp[-2].node), (yyvsp[-1].
node));
10922#line 10918 "parse.c"
10926#line 4538 "parse.y"
10937#line 10933 "parse.c"
10941#line 4549 "parse.y"
10944 (yyval.
node) = literal_concat(p, (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
10957#line 10953 "parse.c"
10961#line 4567 "parse.y"
10968#line 10964 "parse.c"
10972#line 4574 "parse.y"
10975 (yyval.
node) = literal_concat(p, (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
10979#line 10975 "parse.c"
10983#line 4583 "parse.y"
10994#line 10990 "parse.c"
10998#line 4594 "parse.y"
11001 NODE *head = (yyvsp[-1].
node), *tail = (yyvsp[0].node);
11003 (yyval.
node) = tail;
11006 (yyval.
node) = head;
11016 head = list_append(p,
NEW_DSTR(
Qnil, &(yyloc)), head);
11019 (yyval.
node) = list_append(p, head, tail);
11037#line 11033 "parse.c"
11041#line 4637 "parse.y"
11048#line 11044 "parse.c"
11052#line 4644 "parse.y"
11061#line 11057 "parse.c"
11065#line 4653 "parse.y"
11070#line 11066 "parse.c"
11074#line 4657 "parse.y"
11080#line 11076 "parse.c"
11084#line 4662 "parse.y"
11089#line 11085 "parse.c"
11093#line 4666 "parse.y"
11098#line 11094 "parse.c"
11102#line 4670 "parse.y"
11107#line 11103 "parse.c"
11111#line 4675 "parse.y"
11121 if ((yyvsp[-1].node)) (yyvsp[-1].node)->flags &= ~NODE_FL_NEWLINE;
11122 (yyval.
node) = new_evstr(p, (yyvsp[-1].node), &(yyloc));
11126#line 11122 "parse.c"
11130#line 4692 "parse.y"
11137#line 11133 "parse.c"
11141#line 4699 "parse.y"
11148#line 11144 "parse.c"
11152#line 4706 "parse.y"
11159#line 11155 "parse.c"
11163#line 4720 "parse.y"
11171#line 11167 "parse.c"
11175#line 4736 "parse.y"
11179 (yyval.
node) = dsym_node(p, (yyvsp[-1].node), &(yyloc));
11183#line 11179 "parse.c"
11187#line 4747 "parse.y"
11190 (yyval.
node) = (yyvsp[0].node);
11195#line 11191 "parse.c"
11199#line 4769 "parse.y"
11200 {(yyval.
id) =
KWD2EID(nil, (yyvsp[0].
id));}
11201#line 11197 "parse.c"
11205#line 4770 "parse.y"
11206 {(yyval.
id) =
KWD2EID(
self, (yyvsp[0].
id));}
11207#line 11203 "parse.c"
11211#line 4771 "parse.y"
11212 {(yyval.
id) =
KWD2EID(
true, (yyvsp[0].
id));}
11213#line 11209 "parse.c"
11217#line 4772 "parse.y"
11218 {(yyval.
id) =
KWD2EID(
false, (yyvsp[0].
id));}
11219#line 11215 "parse.c"
11223#line 4773 "parse.y"
11224 {(yyval.
id) =
KWD2EID(_FILE__, (yyvsp[0].
id));}
11225#line 11221 "parse.c"
11229#line 4774 "parse.y"
11230 {(yyval.
id) =
KWD2EID(_LINE__, (yyvsp[0].
id));}
11231#line 11227 "parse.c"
11235#line 4775 "parse.y"
11236 {(yyval.
id) =
KWD2EID(_ENCODING__, (yyvsp[0].
id));}
11237#line 11233 "parse.c"
11241#line 4779 "parse.y"
11244 if (!((yyval.
node) = gettable(p, (yyvsp[0].
id), &(yyloc)))) (yyval.
node) =
NEW_BEGIN(0, &(yyloc));
11254#line 11250 "parse.c"
11258#line 4792 "parse.y"
11261 if (!((yyval.
node) = gettable(p, (yyvsp[0].
id), &(yyloc)))) (yyval.
node) =
NEW_BEGIN(0, &(yyloc));
11265#line 11261 "parse.c"
11269#line 4801 "parse.y"
11272 (yyval.
node) = assignable(p, (yyvsp[0].
id), 0, &(yyloc));
11276#line 11272 "parse.c"
11280#line 4808 "parse.y"
11283 (yyval.
node) = assignable(p, (yyvsp[0].
id), 0, &(yyloc));
11287#line 11283 "parse.c"
11291#line 4821 "parse.y"
11296#line 11292 "parse.c"
11300#line 4826 "parse.y"
11302 (yyval.
node) = (yyvsp[-1].node);
11304#line 11300 "parse.c"
11308#line 4830 "parse.y"
11315#line 11311 "parse.c"
11319#line 4839 "parse.y"
11322 (yyval.
node) = (yyvsp[-1].node);
11328#line 11324 "parse.c"
11332#line 4848 "parse.y"
11347#line 11343 "parse.c"
11351#line 4863 "parse.y"
11366#line 11362 "parse.c"
11370#line 4877 "parse.y"
11376#line 11372 "parse.c"
11380#line 4883 "parse.y"
11383 (yyval.
node) = (yyvsp[-1].node);
11387#line 11383 "parse.c"
11391#line 4892 "parse.y"
11393 (yyval.
node) = new_args_tail(p, (yyvsp[-3].node), (yyvsp[-1].
id), (yyvsp[0].
id), &(yylsp[-1]));
11395#line 11391 "parse.c"
11399#line 4896 "parse.y"
11401 (yyval.
node) = new_args_tail(p, (yyvsp[-1].node),
Qnone, (yyvsp[0].
id), &(yylsp[-1]));
11403#line 11399 "parse.c"
11407#line 4900 "parse.y"
11409 (yyval.
node) = new_args_tail(p,
Qnone, (yyvsp[-1].
id), (yyvsp[0].
id), &(yylsp[-1]));
11411#line 11407 "parse.c"
11415#line 4904 "parse.y"
11419#line 11415 "parse.c"
11423#line 4908 "parse.y"
11425 (yyval.
node) = new_args_tail(p,
Qnone,
Qnone, (yyvsp[0].
id), &(yylsp[0]));
11427#line 11423 "parse.c"
11431#line 4914 "parse.y"
11433 (yyval.
node) = (yyvsp[0].node);
11435#line 11431 "parse.c"
11439#line 4918 "parse.y"
11443#line 11439 "parse.c"
11447#line 4924 "parse.y"
11449 (yyval.
node) = new_args(p, (yyvsp[-5].node), (yyvsp[-3].
node), (yyvsp[-1].
id),
Qnone, (yyvsp[0].
node), &(yyloc));
11451#line 11447 "parse.c"
11455#line 4928 "parse.y"
11457 (yyval.
node) = new_args(p, (yyvsp[-7].node), (yyvsp[-5].
node), (yyvsp[-3].
id), (yyvsp[-1].
node), (yyvsp[0].node), &(yyloc));
11459#line 11455 "parse.c"
11463#line 4932 "parse.y"
11465 (yyval.
node) = new_args(p, (yyvsp[-3].node), (yyvsp[-1].
node),
Qnone,
Qnone, (yyvsp[0].node), &(yyloc));
11467#line 11463 "parse.c"
11471#line 4936 "parse.y"
11473 (yyval.
node) = new_args(p, (yyvsp[-5].node), (yyvsp[-3].
node),
Qnone, (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
11475#line 11471 "parse.c"
11479#line 4940 "parse.y"
11481 (yyval.
node) = new_args(p, (yyvsp[-3].node),
Qnone, (yyvsp[-1].
id),
Qnone, (yyvsp[0].node), &(yyloc));
11483#line 11479 "parse.c"
11487#line 4944 "parse.y"
11489 (yyval.
node) = new_args(p, (yyvsp[-5].node),
Qnone, (yyvsp[-3].
id), (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
11491#line 11487 "parse.c"
11495#line 4948 "parse.y"
11499#line 11495 "parse.c"
11503#line 4952 "parse.y"
11505 (yyval.
node) = new_args(p,
Qnone, (yyvsp[-3].node), (yyvsp[-1].
id),
Qnone, (yyvsp[0].node), &(yyloc));
11507#line 11503 "parse.c"
11511#line 4956 "parse.y"
11513 (yyval.
node) = new_args(p,
Qnone, (yyvsp[-5].node), (yyvsp[-3].
id), (yyvsp[-1].node), (yyvsp[0].
node), &(yyloc));
11515#line 11511 "parse.c"
11519#line 4960 "parse.y"
11523#line 11519 "parse.c"
11527#line 4964 "parse.y"
11529 (yyval.
node) = new_args(p,
Qnone, (yyvsp[-3].node),
Qnone, (yyvsp[-1].
node), (yyvsp[0].node), &(yyloc));
11531#line 11527 "parse.c"
11535#line 4968 "parse.y"
11539#line 11535 "parse.c"
11543#line 4972 "parse.y"
11545 (yyval.
node) = new_args(p,
Qnone,
Qnone, (yyvsp[-3].
id), (yyvsp[-1].
node), (yyvsp[0].node), &(yyloc));
11547#line 11543 "parse.c"
11551#line 4976 "parse.y"
11555#line 11551 "parse.c"
11559#line 4980 "parse.y"
11564#line 11560 "parse.c"
11568#line 4987 "parse.y"
11575#line 11571 "parse.c"
11579#line 4996 "parse.y"
11582 yyerror1(&(yylsp[0]),
"formal argument cannot be a constant");
11587#line 11583 "parse.c"
11591#line 5004 "parse.y"
11594 yyerror1(&(yylsp[0]),
"formal argument cannot be an instance variable");
11599#line 11595 "parse.c"
11603#line 5012 "parse.y"
11606 yyerror1(&(yylsp[0]),
"formal argument cannot be a global variable");
11611#line 11607 "parse.c"
11615#line 5020 "parse.y"
11618 yyerror1(&(yylsp[0]),
"formal argument cannot be a class variable");
11623#line 11619 "parse.c"
11627#line 5031 "parse.y"
11629 formal_argument(p,
get_id((yyvsp[0].
id)));
11631 (yyval.
id) = (yyvsp[0].
id);
11633#line 11629 "parse.c"
11637#line 5039 "parse.y"
11642 (yyval.
id) = (yyvsp[0].
id);
11644#line 11640 "parse.c"
11648#line 5048 "parse.y"
11656#line 11652 "parse.c"
11660#line 5056 "parse.y"
11663 ID tid = internal_id(p);
11665 loc.beg_pos = (yylsp[-1]).beg_pos;
11666 loc.end_pos = (yylsp[-1]).beg_pos;
11668 if (dyna_in_block(p)) {
11679#line 11675 "parse.c"
11683#line 5079 "parse.y"
11686 (yyval.
node) = (yyvsp[-2].node);
11689 rb_discard_node(p, (yyvsp[0].node));
11693#line 11689 "parse.c"
11697#line 5092 "parse.y"
11700 arg_var(p, formal_argument(p,
id));
11703 (yyval.
id) = (yyvsp[0].
id);
11705#line 11701 "parse.c"
11709#line 5102 "parse.y"
11713 (yyval.
node) = new_kw_arg(p, assignable(p, (yyvsp[-1].
id), (yyvsp[0].
node), &(yyloc)), &(yyloc));
11717#line 11713 "parse.c"
11721#line 5110 "parse.y"
11729#line 11725 "parse.c"
11733#line 5120 "parse.y"
11736 (yyval.
node) = new_kw_arg(p, assignable(p, (yyvsp[-1].
id), (yyvsp[0].
node), &(yyloc)), &(yyloc));
11740#line 11736 "parse.c"
11744#line 5127 "parse.y"
11751#line 11747 "parse.c"
11755#line 5136 "parse.y"
11758 (yyval.
node) = (yyvsp[0].node);
11762#line 11758 "parse.c"
11766#line 5143 "parse.y"
11769 (yyval.
node) = kwd_append((yyvsp[-2].node), (yyvsp[0].
node));
11773#line 11769 "parse.c"
11777#line 5153 "parse.y"
11780 (yyval.
node) = (yyvsp[0].node);
11784#line 11780 "parse.c"
11788#line 5160 "parse.y"
11791 (yyval.
node) = kwd_append((yyvsp[-2].node), (yyvsp[0].
node));
11795#line 11791 "parse.c"
11799#line 5173 "parse.y"
11805#line 11801 "parse.c"
11809#line 5181 "parse.y"
11811 arg_var(p, shadowing_lvar(p,
get_id((yyvsp[0].
id))));
11813 (yyval.
id) = (yyvsp[0].
id);
11817#line 11813 "parse.c"
11821#line 5189 "parse.y"
11824 (yyval.
id) = internal_id(p);
11825 arg_var(p, (yyval.
id));
11829#line 11825 "parse.c"
11833#line 5199 "parse.y"
11837 (yyval.
node) =
NEW_OPT_ARG(0, assignable(p, (yyvsp[-2].
id), (yyvsp[0].node), &(yyloc)), &(yyloc));
11841#line 11837 "parse.c"
11845#line 5209 "parse.y"
11849 (yyval.
node) =
NEW_OPT_ARG(0, assignable(p, (yyvsp[-2].
id), (yyvsp[0].
node), &(yyloc)), &(yyloc));
11853#line 11849 "parse.c"
11857#line 5219 "parse.y"
11860 (yyval.
node) = (yyvsp[0].node);
11864#line 11860 "parse.c"
11868#line 5226 "parse.y"
11871 (yyval.
node) = opt_arg_append((yyvsp[-2].node), (yyvsp[0].
node));
11875#line 11871 "parse.c"
11879#line 5235 "parse.y"
11882 (yyval.
node) = (yyvsp[0].node);
11886#line 11882 "parse.c"
11890#line 5242 "parse.y"
11893 (yyval.
node) = opt_arg_append((yyvsp[-2].node), (yyvsp[0].
node));
11897#line 11893 "parse.c"
11901#line 5255 "parse.y"
11903 arg_var(p, shadowing_lvar(p,
get_id((yyvsp[0].
id))));
11905 (yyval.
id) = (yyvsp[0].
id);
11909#line 11905 "parse.c"
11913#line 5263 "parse.y"
11916 (yyval.
id) = internal_id(p);
11917 arg_var(p, (yyval.
id));
11921#line 11917 "parse.c"
11925#line 5277 "parse.y"
11927 arg_var(p, shadowing_lvar(p,
get_id((yyvsp[0].
id))));
11929 (yyval.
id) = (yyvsp[0].
id);
11933#line 11929 "parse.c"
11937#line 5287 "parse.y"
11939 (yyval.
id) = (yyvsp[0].
id);
11941#line 11937 "parse.c"
11945#line 5291 "parse.y"
11949#line 11945 "parse.c"
11953#line 5297 "parse.y"
11956 (yyval.
node) = (yyvsp[0].node);
11958#line 11954 "parse.c"
11962#line 5301 "parse.y"
11964#line 11960 "parse.c"
11968#line 5302 "parse.y"
11971 switch (
nd_type((yyvsp[-1].node))) {
11980 yyerror1(&(yylsp[-1]),
"can't define singleton method for literals");
11986 (yyval.
node) = (yyvsp[-1].node);
11990#line 11986 "parse.c"
11994#line 5327 "parse.y"
11997 (yyval.
node) = (yyvsp[-1].node);
12001#line 11997 "parse.c"
12005#line 5338 "parse.y"
12014 if (assocs->nd_head &&
12018 tail = tail->nd_next->nd_head->nd_head;
12020 assocs = list_concat(assocs, tail);
12022 (yyval.
node) = assocs;
12026#line 12022 "parse.c"
12030#line 5361 "parse.y"
12037 (yyval.
node) = list_append(p,
NEW_LIST((yyvsp[-2].node), &(yyloc)), (yyvsp[0].
node));
12041#line 12037 "parse.c"
12045#line 5372 "parse.y"
12052#line 12048 "parse.c"
12056#line 5379 "parse.y"
12059 YYLTYPE loc = code_loc_gen(&(yylsp[-3]), &(yylsp[-1]));
12060 (yyval.
node) = list_append(p,
NEW_LIST(dsym_node(p, (yyvsp[-2].node), &loc), &loc), (yyvsp[0].
node));
12064#line 12060 "parse.c"
12068#line 5387 "parse.y"
12072 !((yyvsp[0].node)->nd_head && (yyvsp[0].
node)->
nd_head->nd_alen)) {
12073 static VALUE empty_hash;
12081 (yyval.
node) = list_append(p,
NEW_LIST(0, &(yyloc)), (yyvsp[0].node));
12085#line 12081 "parse.c"
12089#line 5455 "parse.y"
12091#line 12087 "parse.c"
12095#line 5456 "parse.y"
12097#line 12093 "parse.c"
12101#line 5460 "parse.y"
12103#line 12099 "parse.c"
12107#line 5464 "parse.y"
12111#line 12107 "parse.c"
12115#line 12111 "parse.c"
12143 const int yylhs = yyr1[yyn] -
YYNTOKENS;
12144 const int yyi = yypgoto[yylhs] + *yyssp;
12145 yystate = (0 <= yyi && yyi <=
YYLAST && yycheck[yyi] == *yyssp
12147 : yydefgoto[yylhs]);
12165#if ! YYERROR_VERBOSE
12168# define YYSYNTAX_ERROR yysyntax_error (p, &yymsg_alloc, &yymsg, \
12171 char const *yymsgp =
YY_(
"syntax error");
12172 int yysyntax_error_status;
12174 if (yysyntax_error_status == 0)
12176 else if (yysyntax_error_status == 1)
12178 if (yymsg != yymsgbuf)
12184 yymsg_alloc =
sizeof yymsgbuf;
12185 yysyntax_error_status = 2;
12193 yyerror (&yylloc, p, yymsgp);
12194 if (yysyntax_error_status == 2)
12195 goto yyexhaustedlab;
12197# undef YYSYNTAX_ERROR
12201 yyerror_range[1] = yylloc;
12203 if (yyerrstatus == 3)
12208 if (yychar <=
YYEOF)
12211 if (yychar ==
YYEOF)
12216 yydestruct (
"Error: discarding",
12217 yytoken, &
yylval, &yylloc, p);
12253 yyn = yypact[yystate];
12259 yyn = yytable[yyn];
12269 yyerror_range[1] = *yylsp;
12270 yydestruct (
"Error: popping",
12271 yystos[yystate], yyvsp, yylsp, p);
12281 yyerror_range[2] = yylloc;
12310#if !defined yyoverflow || YYERROR_VERBOSE
12315 yyerror (&yylloc, p,
YY_(
"memory exhausted"));
12330 yydestruct (
"Cleanup: discarding lookahead",
12331 yytoken, &
yylval, &yylloc, p);
12337 while (yyssp != yyss)
12339 yydestruct (
"Cleanup: popping",
12340 yystos[+*yyssp], yyvsp, yylsp, p);
12348 if (yymsg != yymsgbuf)
12353#line 5468 "parse.y"
12358# define yylval (*p->lval)
12367# define set_yylval_node(x) { \
12368 YYLTYPE _cur_loc; \
12369 rb_parser_set_location(p, &_cur_loc); \
12370 yylval.node = (x); \
12372# define set_yylval_str(x) \
12374 set_yylval_node(NEW_STR(x, &_cur_loc)); \
12375 RB_OBJ_WRITTEN(p->ast, Qnil, x); \
12377# define set_yylval_literal(x) \
12379 set_yylval_node(NEW_LIT(x, &_cur_loc)); \
12380 RB_OBJ_WRITTEN(p->ast, Qnil, x); \
12382# define set_yylval_num(x) (yylval.num = (x))
12383# define set_yylval_id(x) (yylval.id = (x))
12384# define set_yylval_name(x) (yylval.id = (x))
12385# define yylval_id() (yylval.id)
12390 return ripper_new_yylval(p, x,
ID2SYM(x), 0);
12392# define set_yylval_str(x) (yylval.val = add_mark_object(p, (x)))
12393# define set_yylval_num(x) (yylval.val = ripper_new_yylval(p, (x), 0, 0))
12394# define set_yylval_id(x) (void)(x)
12395# define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(p, x))
12396# define set_yylval_literal(x) add_mark_object(p, (x))
12397# define set_yylval_node(x) (void)(x)
12398# define yylval_id() yylval.id
12399# define _cur_loc NULL_LOC
12402#define set_yylval_noname() set_yylval_id(keyword_nil)
12405#define literal_flush(p, ptr) ((p)->lex.ptok = (ptr))
12406#define dispatch_scan_event(p, t) ((void)0)
12407#define dispatch_delayed_token(p, t) ((void)0)
12408#define has_delayed_token(p) (0)
12410#define literal_flush(p, ptr) ((void)(ptr))
12412#define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
12415intern_sym(
const char *
name)
12432 VALUE rval = ripper_dispatch1(p, ripper_token2eventid(t),
str);
12440 if (!ripper_has_scan_event(p))
return;
12441 add_mark_object(p, yylval_rval = ripper_scan_event_val(p, t));
12443#define dispatch_scan_event(p, t) ripper_dispatch_scan_event(p, t)
12449 const char *saved_tokp = p->
lex.
ptok;
12451 if (
NIL_P(p->delayed.token))
return;
12454 add_mark_object(p, yylval_rval = ripper_dispatch1(p, ripper_token2eventid(t), p->delayed.token));
12455 p->delayed.token =
Qnil;
12459#define dispatch_delayed_token(p, t) ripper_dispatch_delayed_token(p, t)
12460#define has_delayed_token(p) (!NIL_P(p->delayed.token))
12487 int column = 1, nonspc = 0,
i;
12489 if (*
ptr ==
'\t') {
12493 if (*
ptr !=
' ' && *
ptr !=
'\t') {
12499 ptinfo->
indent = column;
12500 ptinfo->
nonspc = nonspc;
12512 token_info_setup(ptinfo, p->
lex.
pbeg, loc);
12522 if (!ptinfo_beg)
return;
12526 token_info_warn(p,
token, ptinfo_beg, 1, loc);
12533 token_info ptinfo_end_body, *ptinfo_end = &ptinfo_end_body;
12535 if (!ptinfo_beg)
return;
12536 token_info_setup(ptinfo_end, p->
lex.
pbeg, loc);
12540 if (!same && ptinfo_beg->
indent < ptinfo_end->
indent)
return;
12542 "mismatched indentations at '%s' with '%s' at %d",
12568 else if (yylloc->beg_pos.lineno == lineno) {
12587 (yylloc->beg_pos.lineno == yylloc->end_pos.lineno &&
12588 yylloc->beg_pos.column == yylloc->end_pos.column)) {
12592 parser_show_error_line(p, yylloc);
12600 const int max_line_margin = 30;
12601 const char *
ptr, *ptr_end, *pt, *pb;
12602 const char *pre =
"", *post =
"", *pend;
12603 const char *code =
"", *caret =
"";
12610 if (!yylloc)
return;
12612 if (pend > pbeg && pend[-1] ==
'\n') {
12613 if (--pend > pbeg && pend[-1] ==
'\r') --pend;
12617 if (lineno == yylloc->end_pos.lineno &&
12618 (pend - pbeg) > yylloc->end_pos.column) {
12619 pt = pbeg + yylloc->end_pos.column;
12622 ptr = ptr_end = pt;
12623 lim =
ptr - pbeg > max_line_margin ?
ptr - max_line_margin : pbeg;
12624 while ((lim <
ptr) && (*(
ptr-1) !=
'\n'))
ptr--;
12626 lim = pend - ptr_end > max_line_margin ? ptr_end + max_line_margin : pend;
12627 while ((ptr_end < lim) && (*ptr_end !=
'\n') && (*ptr_end !=
'\r')) ptr_end++;
12633 if (
ptr > pbeg) pre =
"...";
12635 if (ptr_end < pend) {
12637 if (ptr_end < pend) post =
"...";
12641 if (lineno == yylloc->beg_pos.lineno) {
12642 pb += yylloc->beg_pos.column;
12643 if (pb > pt) pb = pt;
12646 if (len <= 4 && yylloc->beg_pos.lineno == yylloc->end_pos.lineno) {
12649 if (
RTEST(errbuf)) {
12658#define CSI_BEGIN "\033["
12669 (
int)(pt - pb), pb,
12670 (
int)(ptr_end - pt), pt,
12677 lim = pt < pend ? pt : pend;
12684 *p2++ = *
ptr++ ==
'\t' ?
'\t' :
' ';
12695 pre, (
int)
len, code, post,
12704 const char *pcur = 0, *ptok = 0;
12713 dispatch1(parse_error,
STR_NEW2(msg));
12730vtable_size(
const struct vtable *tbl)
12756#define vtable_alloc(prev) vtable_alloc_gen(p, __LINE__, prev)
12774#define vtable_free(tbl) vtable_free_gen(p, __LINE__, #tbl, tbl)
12790 if (
tbl->pos ==
tbl->capa) {
12791 tbl->capa =
tbl->capa * 2;
12796#define vtable_add(tbl, id) vtable_add_gen(p, __LINE__, #tbl, tbl, id)
12807 if (
tbl->pos <
n) {
12813#define vtable_pop(tbl, n) vtable_pop_gen(p, __LINE__, #tbl, tbl, n)
12822 for (
i = 0;
i <
tbl->pos;
i++) {
12823 if (
tbl->tbl[
i] ==
id) {
12837debug_lines(
VALUE fname)
12840 CONST_ID(script_lines,
"SCRIPT_LINES__");
12876 if (!e_option_supplied(p)) {
12882#define RUBY_DTRACE_PARSE_HOOK(name) \
12883 if (RUBY_DTRACE_PARSE_##name##_ENABLED()) { \
12884 RUBY_DTRACE_PARSE_##name(p->ruby_sourcefile, p->ruby_sourceline); \
12909 NODE *body = parser_append_options(p, tree->nd_body);
12913 tree->nd_body = prelude;
12925 if (
NIL_P(fname)) {
12945must_be_ascii_compatible(
VALUE s)
12957 char *beg, *end, *start;
12969 if (end)
len = ++end - beg;
12978 if (
NIL_P(line))
return line;
12979 must_be_ascii_compatible(line);
13005 return yycompile(vparser, p, fname, line);
13017 must_be_ascii_compatible(s);
13018 return parser_compile_string(vparser,
f, s, line);
13040 return yycompile(vparser, p, fname, start);
13056 p->
lex.
gets = lex_generic_gets;
13061 return yycompile(vparser, p, fname, start);
13065#define STR_FUNC_ESCAPE 0x01
13066#define STR_FUNC_EXPAND 0x02
13067#define STR_FUNC_REGEXP 0x04
13068#define STR_FUNC_QWORDS 0x08
13069#define STR_FUNC_SYMBOL 0x10
13070#define STR_FUNC_INDENT 0x20
13071#define STR_FUNC_LABEL 0x40
13072#define STR_FUNC_LIST 0x4000
13073#define STR_FUNC_TERM 0x8000
13104#define lex_goto_eol(p) ((p)->lex.pcur = (p)->lex.pend)
13105#define lex_eol_p(p) ((p)->lex.pcur >= (p)->lex.pend)
13106#define lex_eol_n_p(p,n) ((p)->lex.pcur+(n) >= (p)->lex.pend)
13107#define peek(p,c) peek_n(p, (c), 0)
13108#define peek_n(p,c,n) (!lex_eol_n_p(p, n) && (c) == (unsigned char)(p)->lex.pcur[n])
13109#define peekc(p) peekc_n(p, 0)
13110#define peekc_n(p,n) (lex_eol_n_p(p, n) ? -1 : (unsigned char)(p)->lex.pcur[n])
13128#define add_delayed_token(p, tok, end) ((void)(tok), (void)(end))
13173 if (
peek(p,
'\n')) {
13180 rb_warn0(
"encountered \\r in middle of line, treated as a mere space");
13195 c = parser_cr(p, c);
13204 if (c == -1)
return;
13211#define was_bol(p) ((p)->lex.pcur == (p)->lex.pbeg + 1)
13213#define tokfix(p) ((p)->tokenbuf[(p)->tokidx]='\0')
13214#define tok(p) (p)->tokenbuf
13215#define toklen(p) (p)->tokidx
13221 while (ptr < p->
lex.pend) {
13222 int c = (
unsigned char)*
ptr++;
13223 int eol = (c ==
'\n' || c ==
'#');
13284#define tokcopy(p, n) memcpy(tokspace(p, n), (p)->lex.pcur - (n), (n))
13287escaped_control_code(
int c)
13313#define WARN_SPACE_CHAR(c, prefix) \
13314 rb_warn1("invalid character syntax; use "prefix"\\%c", WARN_I(c2))
13318 int regexp_literal,
int wide)
13324 if (wide ? (numlen == 0 || numlen > 6) : (numlen < 4)) {
13325 yyerror0(
"invalid Unicode escape");
13326 return wide && numlen > 0;
13328 if (codepoint > 0x10ffff) {
13329 yyerror0(
"invalid Unicode codepoint (too large)");
13332 if ((codepoint & 0xfffff800) == 0xd800) {
13333 yyerror0(
"invalid Unicode codepoint");
13336 if (regexp_literal) {
13339 else if (codepoint >= 0x80) {
13341 if (*encp && utf8 != *encp) {
13344 parser_show_error_line(p, &loc);
13348 tokaddmbc(p, codepoint, *encp);
13351 tokadd(p, codepoint);
13359 int term,
int symbol_literal,
int regexp_literal)
13366 static const char multiple_codepoints[] =
"Multiple codepoints at single character literal";
13368 const int open_brace =
'{', close_brace =
'}';
13370 if (regexp_literal) { tokadd(p,
'\\'); tokadd(p,
'u'); }
13372 if (
peek(p, open_brace)) {
13373 const char *second =
NULL;
13374 int c,
last = nextc(p);
13377 while (c != close_brace) {
13378 if (c ==
term)
goto unterminated;
13379 if (second == multiple_codepoints)
13381 if (regexp_literal) tokadd(p,
last);
13382 if (!tokadd_codepoint(p, encp, regexp_literal,
TRUE)) {
13389 if (
term == -1 && !second)
13390 second = multiple_codepoints;
13393 if (c != close_brace) {
13396 yyerror0(
"unterminated Unicode escape");
13399 if (second && second != multiple_codepoints) {
13409 if (regexp_literal) tokadd(p, close_brace);
13413 if (!tokadd_codepoint(p, encp, regexp_literal,
FALSE)) {
13420#define ESCAPE_CONTROL 1
13421#define ESCAPE_META 2
13429 switch (c = nextc(p)) {
13454 case '0':
case '1':
case '2':
case '3':
13455 case '4':
case '5':
case '6':
case '7':
13462 c = tok_hex(p, &numlen);
13463 if (numlen == 0)
return 0;
13474 if ((c = nextc(p)) !=
'-') {
13477 if ((c = nextc(p)) ==
'\\') {
13478 if (
peek(p,
'u'))
goto eof;
13479 return read_escape(p, flags|
ESCAPE_META, encp) | 0x80;
13481 else if (c == -1 || !
ISASCII(c))
goto eof;
13483 int c2 = escaped_control_code(c);
13492 else if (
ISCNTRL(c))
goto eof;
13493 return ((c & 0xff) | 0x80);
13497 if ((c = nextc(p)) !=
'-') {
13502 if ((c = nextc(p))==
'\\') {
13503 if (
peek(p,
'u'))
goto eof;
13508 else if (c == -1 || !
ISASCII(c))
goto eof;
13510 int c2 = escaped_control_code(c);
13529 else if (
ISCNTRL(c))
goto eof;
13535 yyerror0(
"Invalid escape character syntax");
13559 switch (c = nextc(p)) {
13563 case '0':
case '1':
case '2':
case '3':
13564 case '4':
case '5':
case '6':
case '7':
13567 if (numlen == 0)
goto eof;
13575 tok_hex(p, &numlen);
13576 if (numlen == 0)
return -1;
13583 if ((c = nextc(p)) !=
'-') {
13593 if ((c = nextc(p)) !=
'-') {
13605 if ((c = nextc(p)) ==
'\\') {
13608 else if (c == -1)
goto eof;
13614 yyerror0(
"Invalid escape character syntax");
13634 while (c = nextc(p),
ISALPHA(c)) {
13658 parser_show_error_line(p, &loc);
13666 int len = parser_precise_mbclen(p, p->
lex.
pcur-1);
13667 if (
len < 0)
return -1;
13675simple_re_meta(
int c)
13678 case '$':
case '*':
case '+':
case '.':
13679 case '?':
case '^':
case '|':
13680 case ')':
case ']':
case '}':
case '>':
13688parser_update_heredoc_indent(
struct parser_params *p,
int c)
13698 else if (c ==
'\t') {
13703 else if (c !=
'\n') {
13719 parser_show_error_line(p, &loc);
13725 const char *pos = p->
lex.
pcur;
13727 parser_mixed_error(p, enc1, enc2);
13733 int func,
int term,
int paren,
long *nest,
13737 bool erred =
false;
13739#define mixed_error(enc1, enc2) \
13740 (void)(erred || (parser_mixed_error(p, enc1, enc2), erred = true))
13741#define mixed_escape(beg, enc1, enc2) \
13742 (void)(erred || (parser_mixed_escape(p, beg, enc1, enc2), erred = true))
13744 while ((c = nextc(p)) != -1) {
13746 parser_update_heredoc_indent(p, c);
13749 if (paren && c == paren) {
13752 else if (c ==
term) {
13753 if (!nest || !*nest) {
13761 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
13766 else if (c ==
'\\') {
13798 if (c == -1)
return -1;
13804 if (c ==
term && !simple_re_meta(c)) {
13809 if ((c = tokadd_escape(p,
enc)) < 0)
13811 if (*
enc && *
enc != *encp) {
13819 c = read_escape(p, 0,
enc);
13824 else if (c !=
term && !(paren && c == paren)) {
13831 else if (!parser_isascii(p)) {
13836 else if (*
enc != *encp) {
13840 if (tokadd_mbchar(p, c) == -1)
return -1;
13851 else if (*
enc != *encp) {
13870#define NEW_STRTERM(func, term, paren) \
13871 new_strterm((VALUE)(func), (VALUE)(paren), (VALUE)(term), 0)
13878 if (!ripper_is_node_yylval(content))
13879 content = ripper_new_yylval(p, 0, 0, content);
13890 if (
yylval.val != content)
13895#define flush_string_content(p, enc) ((void)(enc))
13902#define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
13903#define SPECIAL_PUNCT(idx) ( \
13904 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
13905 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
13906 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
13907 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
13908 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
13910const unsigned int ruby_global_name_punct_bits[] = {
13916#undef SPECIAL_PUNCT
13919static enum yytokentype
13920parser_peek_variable_name(struct parser_params *p)
13923 const char *ptr = p->lex.pcur;
13925 if (ptr + 1 >= p->lex.pend) return 0;
13929 if ((c = *ptr) == '-') {
13930 if (++ptr >= p->lex.pend) return 0;
13933 else if (is_global_name_punct(c) || ISDIGIT(c)) {
13934 return tSTRING_DVAR;
13938 if ((c = *ptr) == '@') {
13939 if (++ptr >= p->lex.pend) return 0;
13945 p->command_start = TRUE;
13946 return tSTRING_DBEG;
13950 if (!ISASCII(c) || c == '_' || ISALPHA(c))
13951 return tSTRING_DVAR;
13955#define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
13956#define IS_END() IS_lex_state(EXPR_END_ANY)
13957#define IS_BEG() (IS_lex_state(EXPR_BEG_ANY) || IS_lex_state_all(EXPR_ARG|EXPR_LABELED))
13958#define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
13959#define IS_LABEL_POSSIBLE() (\
13960 (IS_lex_state(EXPR_LABEL|EXPR_ENDFN) && !cmd_state) || \
13962#define IS_LABEL_SUFFIX(n) (peek_n(p, ':',(n)) && !peek_n(p, ':', (n)+1))
13963#define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
13965static inline enum yytokentype
13966parser_string_term(struct parser_params *p, int func)
13968 p->lex.strterm = 0;
13969 if (func & STR_FUNC_REGEXP) {
13970 set_yylval_num(regx_options(p));
13971 dispatch_scan_event(p, tREGEXP_END);
13972 SET_LEX_STATE(EXPR_END);
13973 return tREGEXP_END;
13975 if ((func & STR_FUNC_LABEL) && IS_LABEL_SUFFIX(0)) {
13977 SET_LEX_STATE(EXPR_BEG|EXPR_LABEL);
13980 SET_LEX_STATE(EXPR_END);
13981 return tSTRING_END;
13984static enum yytokentype
13985parse_string(struct parser_params *p, rb_strterm_literal_t *quote)
13987 int func = (int)quote->u1.func;
13988 int term = (int)quote->u3.term;
13989 int paren = (int)quote->u2.paren;
13991 rb_encoding *enc = p->enc;
13992 rb_encoding *base_enc = 0;
13995 if (func & STR_FUNC_TERM) {
13996 if (func & STR_FUNC_QWORDS) nextc(p); /* delayed term */
13997 SET_LEX_STATE(EXPR_END);
13998 p->lex.strterm = 0;
13999 return func & STR_FUNC_REGEXP ? tREGEXP_END : tSTRING_END;
14002 if ((func & STR_FUNC_QWORDS) && ISSPACE(c)) {
14003 do {c = nextc(p);} while (ISSPACE(c));
14006 if (func & STR_FUNC_LIST) {
14007 quote->u1.func &= ~STR_FUNC_LIST;
14010 if (c == term && !quote->u0.nest) {
14011 if (func & STR_FUNC_QWORDS) {
14012 quote->u1.func |= STR_FUNC_TERM;
14013 pushback(p, c); /* dispatch the term at tSTRING_END */
14014 add_delayed_token(p, p->lex.ptok, p->lex.pcur);
14017 return parser_string_term(p, func);
14021 add_delayed_token(p, p->lex.ptok, p->lex.pcur);
14025 if ((func & STR_FUNC_EXPAND) && c == '#') {
14026 int t = parser_peek_variable_name(p);
14032 if (tokadd_string(p, func, term, paren, "e->u0.nest,
14033 &enc, &base_enc) == -1) {
14036# define unterminated_literal(mesg) yyerror0(mesg)
14038# define unterminated_literal(mesg) compile_error(p, mesg)
14040 literal_flush(p, p->lex.pcur);
14041 if (func & STR_FUNC_QWORDS) {
14042 /* no content to add, bailing out here */
14043 unterminated_literal("unterminated list meets end of file");
14044 p->lex.strterm = 0;
14045 return tSTRING_END;
14047 if (func & STR_FUNC_REGEXP) {
14048 unterminated_literal("unterminated regexp meets end of file");
14051 unterminated_literal("unterminated string meets end of file");
14053 quote->u1.func |= STR_FUNC_TERM;
14058 lit = STR_NEW3(tok(p), toklen(p), enc, func);
14059 set_yylval_str(lit);
14060 flush_string_content(p, enc);
14062 return tSTRING_CONTENT;
14065static enum yytokentype
14066heredoc_identifier(struct parser_params *p)
14069 * term_len is length of `<<"END"` except `END`,
14070 * in this case term_len is 4 (<, <, " and ").
14072 long len, offset = p->lex.pcur - p->lex.pbeg;
14073 int c = nextc(p), term, func = 0, quote = 0;
14074 enum yytokentype token = tSTRING_BEG;
14079 func = STR_FUNC_INDENT;
14082 else if (c == '~') {
14084 func = STR_FUNC_INDENT;
14090 func |= str_squote; goto quoted;
14102 while ((c = nextc(p)) !=
term) {
14103 if (c == -1 || c ==
'\r' || c ==
'\n') {
14104 yyerror(
NULL, p,
"unterminated here document identifier");
14111 if (!parser_is_identchar(p)) {
14114 pushback(p, indent > 0 ?
'~' :
'-');
14120 int n = parser_precise_mbclen(p, p->
lex.
pcur-1);
14121 if (
n < 0)
return 0;
14123 }
while ((c = nextc(p)) != -1 && parser_is_identchar(p));
14130 yyerror(
NULL, p,
"too long here document identifier");
14140 here->
quote = quote;
14168dedent_string(
VALUE string,
int width)
14175 for (
i = 0;
i <
len && col < width;
i++) {
14176 if (
str[
i] ==
' ') {
14179 else if (
str[
i] ==
'\t') {
14181 if (
n > width)
break;
14202 NODE *node, *str_node, *prev_node;
14204 VALUE prev_lit = 0;
14206 if (indent <= 0)
return root;
14208 if (!root)
return root;
14210 prev_node = node = str_node = root;
14214 VALUE lit = str_node->nd_lit;
14216 dedent_string(lit, indent);
14221 else if (!literal_concat0(p, prev_lit, lit)) {
14225 NODE *end = node->nd_end;
14226 node = prev_node->nd_next = node->nd_next;
14232 node->nd_end = end;
14237 while ((node = (prev_node = node)->
nd_next) != 0) {
14240 if ((str_node = node->nd_head) != 0) {
14256 if (indent <= 0)
return array;
14258 dispatch2(heredoc_dedent, array,
INT2NUM(indent));
14278 col = dedent_string(
input, wid);
14284whole_match_p(
struct parser_params *p,
const char *eos,
long len,
int indent)
14293 if (
n < 0)
return FALSE;
14294 if (
n > 0 &&
ptr[
len] !=
'\n') {
14309 case '\0':
case '\004':
case '\032':
return 1;
14314#define NUM_SUFFIX_R (1<<0)
14315#define NUM_SUFFIX_I (1<<1)
14316#define NUM_SUFFIX_ALL 3
14322 const char *lastp = p->
lex.
pcur;
14324 while ((c = nextc(p)) != -1) {
14327 mask &= ~NUM_SUFFIX_I;
14329 mask &= ~NUM_SUFFIX_R;
14334 mask &= ~NUM_SUFFIX_R;
14369 return set_number_literal(p,
v,
type, suffix);
14386#define dispatch_heredoc_end(p) ((void)0)
14392 int c, func, indent = 0;
14393 const char *eos, *
ptr, *ptr_end;
14404 if ((c = nextc(p)) == -1) {
14428 compile_error(p,
"can't find string \"%.*s\" anywhere before EOF",
14446 else if (whole_match_p(p, eos,
len, indent)) {
14460 if (ptr_end >
ptr) {
14461 switch (ptr_end[-1]) {
14463 if (--ptr_end ==
ptr || ptr_end[-1] !=
'\r') {
14474 while (
ptr +
i < ptr_end && parser_update_heredoc_indent(p,
ptr[
i]))
14488 if (nextc(p) == -1) {
14494 }
while (!whole_match_p(p, eos,
len, indent));
14500 int t = parser_peek_variable_name(p);
14514 if ((c = tokadd_string(p, func,
'\n', 0,
NULL, &
enc, &base_enc)) == -1) {
14530 tokadd(p, nextc(p));
14536 if ((c = nextc(p)) == -1)
goto error;
14537 }
while (!whole_match_p(p, eos,
len, indent));
14561 rb_warning1(
"ambiguous first argument; put parentheses or a space even after `%c' operator",
WARN_I(c));
14571 switch (id_type(lhs)) {
14576 yyerror0(
"formal argument cannot be a constant");
14579 yyerror0(
"formal argument cannot be an instance variable");
14582 yyerror0(
"formal argument cannot be a global variable");
14585 yyerror0(
"formal argument cannot be a class variable");
14588 yyerror0(
"formal argument must be local variable");
14592 lhs = dispatch1(param_error, lhs);
14597 shadowing_lvar(p, lhs);
14604 return (dyna_in_block(p) && dvar_defined(p,
id)) || local_id(p,
id);
14613 if (
len > 5 &&
name[nlen =
len - 5] ==
'-') {
14617 if (
len > 4 &&
name[nlen =
len - 4] ==
'-') {
14653 for (
i = 0;
i <
n; ++
i) {
14665 while (
ptr < ptr_end) {
14676magic_comment_encoding(
struct parser_params *p,
const char *
name,
const char *val)
14678 if (!comment_at_top(p)) {
14681 parser_set_encode(p, val);
14688 case 't':
case 'T':
14693 case 'f':
case 'F':
14704parser_set_token_info(
struct parser_params *p,
const char *
name,
const char *val)
14706 int b = parser_get_bool(p,
name, val);
14711parser_set_compile_option_flag(
struct parser_params *p,
const char *
name,
const char *val)
14720 b = parser_get_bool(p,
name, val);
14729# if WARN_PAST_SCOPE
14731parser_set_past_scope(
struct parser_params *p,
const char *
name,
const char *val)
14733 int b = parser_get_bool(p,
name, val);
14734 if (b >= 0) p->past_scope_enabled = b;
14745 {
"coding", magic_comment_encoding, parser_encode_length},
14746 {
"encoding", magic_comment_encoding, parser_encode_length},
14747 {
"frozen_string_literal", parser_set_compile_option_flag},
14748 {
"warn_indent", parser_set_token_info},
14749# if WARN_PAST_SCOPE
14750 {
"warn_past_scope", parser_set_past_scope},
14755magic_comment_marker(
const char *
str,
long len)
14762 if (
str[
i-1] ==
'*' &&
str[
i-2] ==
'-') {
14763 return str +
i + 1;
14768 if (
i + 1 >=
len)
return 0;
14769 if (
str[
i+1] !=
'-') {
14772 else if (
str[
i-1] !=
'-') {
14776 return str +
i + 2;
14792 const char *beg, *end, *vbeg, *vend;
14793#define str_copy(_s, _p, _n) ((_s) \
14794 ? (void)(rb_str_resize((_s), (_n)), \
14795 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
14796 : (void)((_s) = STR_NEW((_p), (_n))))
14799 if (!!(beg = magic_comment_marker(
str,
len))) {
14800 if (!(end = magic_comment_marker(beg,
str +
len - beg)))
14804 len = end - beg - 3;
14816 case '\'':
case '"':
case ':':
case ';':
14823 case '\'':
case '"':
case ':':
case ';':
14834 if (!indicator)
return FALSE;
14842 if (*
str ==
'\\') {
14868 for (
i = 0;
i <
n; ++
i) {
14869 if (s[
i] ==
'-') s[
i] =
'_';
14881 }
while (++mc < magic_comments +
numberof(magic_comments));
14892set_file_encoding(
struct parser_params *p,
const char *
str,
const char *send)
14895 const char *beg =
str;
14899 if (send -
str <= 6)
return;
14901 case 'C':
case 'c':
str += 6;
continue;
14902 case 'O':
case 'o':
str += 5;
continue;
14903 case 'D':
case 'd':
str += 4;
continue;
14904 case 'I':
case 'i':
str += 3;
continue;
14905 case 'N':
case 'n':
str += 2;
continue;
14906 case 'G':
case 'g':
str += 1;
continue;
14907 case '=':
case ':':
14920 if (++
str >= send)
return;
14923 if (*
str !=
'=' && *
str !=
':')
return;
14929 s =
rb_str_new(beg, parser_encode_length(p, beg,
str - beg));
14945 (
unsigned char)p->
lex.
pcur[0] == 0xbb &&
14946 (
unsigned char)p->
lex.
pcur[1] == 0xbf) {
14961#define ambiguous_operator(tok, op, syn) ( \
14962 rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \
14963 rb_warning0("even though it seems like "syn""))
14965#define ambiguous_operator(tok, op, syn) \
14966 dispatch2(operator_ambiguous, TOKEN2VAL(tok), rb_str_new_cstr(syn))
14968#define warn_balanced(tok, op, syn) ((void) \
14969 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN) && \
14970 space_seen && !ISSPACE(c) && \
14971 (ambiguous_operator(tok, op, syn), 0)), \
14972 (enum yytokentype)(tok))
14978 char *point = &
str[seen_point];
14979 size_t fraclen =
len-seen_point-1;
14980 memmove(point, point+1, fraclen+1);
14988 yyerror0(
"numeric literal without digits");
14989 if (
peek(p,
'_')) nextc(p);
14991 return set_integer_literal(p,
INT2FIX(0), 0);
14997 int is_float, seen_point, seen_e, nondigit;
15000 is_float = seen_point = seen_e = nondigit = 0;
15003 if (c ==
'-' || c ==
'+') {
15010 if (c ==
'x' || c ==
'X') {
15016 if (nondigit)
break;
15023 }
while ((c = nextc(p)) != -1);
15027 if (
toklen(p) == start) {
15028 return no_digits(p);
15030 else if (nondigit)
goto trailing_uc;
15034 if (c ==
'b' || c ==
'B') {
15037 if (c ==
'0' || c ==
'1') {
15040 if (nondigit)
break;
15044 if (c !=
'0' && c !=
'1')
break;
15047 }
while ((c = nextc(p)) != -1);
15051 if (
toklen(p) == start) {
15052 return no_digits(p);
15054 else if (nondigit)
goto trailing_uc;
15058 if (c ==
'd' || c ==
'D') {
15064 if (nondigit)
break;
15071 }
while ((c = nextc(p)) != -1);
15075 if (
toklen(p) == start) {
15076 return no_digits(p);
15078 else if (nondigit)
goto trailing_uc;
15086 if (c ==
'o' || c ==
'O') {
15089 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
15090 return no_digits(p);
15093 if (c >=
'0' && c <=
'7') {
15098 if (nondigit)
break;
15102 if (c < '0' || c >
'9')
break;
15103 if (c >
'7')
goto invalid_octal;
15106 }
while ((c = nextc(p)) != -1);
15107 if (
toklen(p) > start) {
15110 if (nondigit)
goto trailing_uc;
15119 if (c >
'7' && c <=
'9') {
15123 else if (c ==
'.' || c ==
'e' || c ==
'E') {
15129 return set_integer_literal(p,
INT2FIX(0), suffix);
15135 case '0':
case '1':
case '2':
case '3':
case '4':
15136 case '5':
case '6':
case '7':
case '8':
case '9':
15142 if (nondigit)
goto trailing_uc;
15143 if (seen_point || seen_e) {
15148 if (c0 == -1 || !
ISDIGIT(c0)) {
15173 if (c !=
'-' && c !=
'+' && !
ISDIGIT(c)) {
15178 tokadd(p, nondigit);
15182 nondigit = (c ==
'-' || c ==
'+') ? c : 0;
15186 if (nondigit)
goto decode_num;
15203 parser_show_error_line(p, &loc);
15213 v = parse_rational(p,
tok(p),
toklen(p), seen_point);
15223 return set_number_literal(p,
v,
type, suffix);
15247 int c2 = escaped_control_code(c);
15259 if (!parser_isascii(p)) {
15260 if (tokadd_mbchar(p, c) == -1)
return 0;
15265 const char *start = p->
lex.
pcur - 1, *
ptr = start;
15267 int n = parser_precise_mbclen(p,
ptr);
15268 if (
n < 0)
return -1;
15271 rb_warn2(
"`?' just followed by `%.*s' is interpreted as" \
15272 " a conditional operator, put a space after `?'",
15277 else if (c ==
'\\') {
15278 if (
peek(p,
'u')) {
15281 tokadd_utf8(p, &enc, -1, 0, 0);
15285 if (tokadd_mbchar(p, c) == -1)
return 0;
15288 c = read_escape(p, 0, &enc);
15306 const char *ptok = p->
lex.
pcur;
15314 if (c == -1 || !
ISALNUM(c)) {
15321 yyerror0(
"unknown type of %string");
15325 if (c == -1 ||
term == -1) {
15326 compile_error(p,
"unterminated quoted string meets end of file");
15376 yyerror0(
"unknown type of %string");
15380 if ((c = nextc(p)) ==
'=') {
15397 if (tokadd_mbchar(p, c) == -1)
return -1;
15399 }
while (parser_is_identchar(p));
15420 const unsigned long nth_ref_max =
15421 ((FIXNUM_MAX < INT_MAX) ? FIXNUM_MAX : INT_MAX) >> 1;
15425 if (overflow ||
n > nth_ref_max) {
15448 if (parser_is_identchar(p)) {
15480 if (parser_is_identchar(p)) {
15481 if (tokadd_mbchar(p, c) == -1)
return 0;
15504 case '1':
case '2':
case '3':
15505 case '4':
case '5':
case '6':
15506 case '7':
case '8':
case '9':
15511 }
while (c != -1 &&
ISDIGIT(c));
15519 if (!parser_is_identchar(p)) {
15522 compile_error(p,
"`$' without identifiers is not allowed as a global variable name");
15526 compile_error(p,
"`$%c' is not allowed as a global variable name", c);
15528 parser_show_error_line(p, &loc);
15537 if (tokadd_ident(p, c))
return 0;
15539 tokenize_ident(p, last_state);
15547 if (
n < 0)
return false;
15560 while (
n > args->
pos) {
15572 register int c = nextc(p);
15584 if (c == -1 || !parser_is_identchar(p)) {
15587 if (result ==
tIVAR) {
15588 compile_error(p,
"`@' without identifiers is not allowed as an instance variable name");
15591 compile_error(p,
"`@@' without identifiers is not allowed as a class variable name");
15593 parser_show_error_line(p, &loc);
15601 if (result ==
tIVAR) {
15602 compile_error(p,
"`@%c' is not allowed as an instance variable name", c);
15605 compile_error(p,
"`@@%c' is not allowed as a class variable name", c);
15607 parser_show_error_line(p, &loc);
15613 if (tokadd_ident(p, c))
return 0;
15614 tokenize_ident(p, last_state);
15628 if (tokadd_mbchar(p, c) == -1)
return 0;
15630 }
while (parser_is_identchar(p));
15631 if ((c ==
'!' || c ==
'?') && !
peek(p,
'=')) {
15683 if (kw->
id[0] != kw->
id[1])
15698 else if (p->
lex.
state == EXPR_FNAME) {
15705 ident = tokenize_ident(p, last_state);
15709 lvar_defined(p, ident)) {
15719 int space_seen = 0;
15723 int fallthru =
FALSE;
15743 switch (c = nextc(p)) {
15751 case ' ':
case '\t':
case '\f':
case '\r':
15755 while ((c = nextc(p))) {
15757 case ' ':
case '\t':
case '\f':
case '\r':
15774 if (comment_at_top(p)) {
15784 c = (
IS_lex_state(EXPR_BEG|EXPR_CLASS|EXPR_FNAME|EXPR_DOT) &&
15792 goto normal_newline;
15797 switch (c = nextc(p)) {
15798 case ' ':
case '\t':
case '\f':
case '\r':
15809 if (
peek(p,
'.') == (c ==
'&')) {
15831 goto normal_newline;
15840 if ((c = nextc(p)) ==
'*') {
15841 if ((c = nextc(p)) ==
'=') {
15848 rb_warning0(
"`**' interpreted as argument prefix");
15866 rb_warning0(
"`*' interpreted as argument prefix");
15902 if (word_match_p(p,
"begin", 5)) {
15903 int first_p =
TRUE;
15918 if (c ==
'=' && word_match_p(p,
"end", 3)) {
15930 if ((c = nextc(p)) ==
'=') {
15931 if ((c = nextc(p)) ==
'=') {
15940 else if (c ==
'>') {
15952 int token = heredoc_identifier(p);
15964 if ((c = nextc(p)) ==
'>') {
15971 if ((c = nextc(p)) ==
'=') {
15984 if ((c = nextc(p)) ==
'=') {
15988 if ((c = nextc(p)) ==
'=') {
16027 return parse_qmark(p, space_seen);
16030 if ((c = nextc(p)) ==
'&') {
16032 if ((c = nextc(p)) ==
'=') {
16040 else if (c ==
'=') {
16045 else if (c ==
'.') {
16054 !(c ==
'\'' || c ==
'"' ||
16056 rb_warning0(
"`&' interpreted as argument prefix");
16070 if ((c = nextc(p)) ==
'|') {
16072 if ((c = nextc(p)) ==
'=') {
16113 return parse_numeric(p,
'+');
16155 if ((c = nextc(p)) ==
'.') {
16156 if ((c = nextc(p)) ==
'.') {
16158 rb_warn0(
"... at EOL, should be parenthesized?");
16168 parse_numeric(p,
'.');
16170 yyerror0(
"unexpected fraction part after numeric literal");
16173 yyerror0(
"no .<digit> floating literal anymore; put 0 before dot");
16184 case '0':
case '1':
case '2':
case '3':
case '4':
16185 case '5':
case '6':
case '7':
case '8':
case '9':
16186 return parse_numeric(p, c);
16247 if ((c = nextc(p)) ==
'=') {
16254 arg_ambiguous(p,
'/');
16262 if ((c = nextc(p)) ==
'=') {
16282 if ((c = nextc(p)) !=
'@') {
16296 else if (!space_seen) {
16303 rb_warning0(
"parentheses after method name is interpreted as "
16304 "an argument list, not a decomposed argument");
16315 if ((c = nextc(p)) ==
']') {
16317 if ((c = nextc(p)) ==
'=') {
16369 if (c ==
' ')
return tSP;
16375 return parse_percent(p, space_seen, last_state);
16378 return parse_gvar(p, last_state);
16381 return parse_atmark(p, last_state);
16384 if (
was_bol(p) && whole_match_p(p,
"__END__", 7, 0)) {
16399 if (!parser_is_identchar(p)) {
16400 compile_error(p,
"Invalid char `\\x%02X' in expression", c);
16409 return parse_ident(p, c, cmd_state);
16419 t = parser_yylex(p);
16434#define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
16443 nd_set_loc(
n, loc);
16458nodetype(
NODE *node)
16464nodeline(
NODE *node)
16470newline_node(
NODE *node)
16473 node = remove_begin(node);
16502 NODE *end, *
h = head, *nd;
16504 if (tail == 0)
return head;
16506 if (
h == 0)
return tail;
16514 parser_warning(p,
h,
"unused literal ignored");
16534 parser_warning(p, tail,
"statement not reached");
16544 tail->nd_end = tail;
16546 end->nd_next = tail;
16547 h->nd_end = tail->nd_end;
16559 if (
list->nd_next) {
16566 list->nd_alen += 1;
16568 list->nd_next->nd_end =
last->nd_next;
16577list_concat(
NODE *head,
NODE *tail)
16581 if (head->nd_next) {
16582 last = head->nd_next->nd_end;
16588 head->nd_alen += tail->nd_alen;
16589 last->nd_next = tail;
16590 if (tail->nd_next) {
16591 head->nd_next->nd_end = tail->nd_next->nd_end;
16594 head->nd_next->nd_end = tail;
16605 if (
NIL_P(tail))
return 1;
16607 compile_error(p,
"string literal encodings differ (%s / %s)",
16626 if (!head)
return tail;
16627 if (!tail)
return head;
16633 head = list_append(p, node, head);
16641 return list_append(p, head, tail);
16648 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
16651 lit = headlast->nd_lit;
16654 lit = head->nd_lit;
16657 if (!literal_concat0(p, lit, tail->nd_lit)) {
16659 rb_discard_node(p, head);
16660 rb_discard_node(p, tail);
16663 rb_discard_node(p, tail);
16666 list_append(p, head, tail);
16672 if (!literal_concat0(p, head->nd_lit, tail->nd_lit))
16674 tail->nd_lit = head->nd_lit;
16675 rb_discard_node(p, head);
16678 else if (
NIL_P(tail->nd_lit)) {
16680 head->nd_alen += tail->nd_alen - 1;
16681 head->nd_next->nd_end->nd_next = tail->nd_next;
16682 head->nd_next->nd_end = tail->nd_next->nd_end;
16683 rb_discard_node(p, tail);
16685 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
16687 lit = headlast->nd_lit;
16688 if (!literal_concat0(p, lit, tail->nd_lit))
16690 tail->nd_lit =
Qnil;
16703 list_append(p, head, tail);
16715 node = list_append(p, dstr, node);
16768 if (block) block_dup_check(p, args, block);
16769 ret = new_qcall(p, atype, recv, mid, args, op_loc, loc);
16770 if (block) ret = method_add_block(p, ret, block, loc);
16775#define nd_once_body(node) (nd_type(node) == NODE_ONCE ? (node)->nd_body : node)
16780 int line = op_loc->beg_pos.lineno;
16795 const VALUE lit =
n->nd_lit;
16797 match->nd_args = reg_named_capture_assign(p, lit, loc);
16822# if WARN_PAST_SCOPE
16828 if (vtable_included(past,
id))
return 1;
16837#define WARN_LOCATION(type) do { \
16838 if (p->warn_location) { \
16840 VALUE file = rb_source_location(&line); \
16841 rb_warn3(type" in eval may not return location in binding;" \
16842 " use Binding#source_location instead\n" \
16843 "%"PRIsWARN":%d: warning: in `%"PRIsWARN"'", \
16844 file, WARN_I(line), rb_id2str(rb_frame_this_func())); \
16857 "%s:%d: %s block here",
16859 outer ?
"outer" :
"inner");
16860 parser_show_error_line(p, &
used->nd_loc);
16901 switch (id_type(
id)) {
16903 if (dyna_in_block(p) && dvar_defined_ref(p,
id, &vidp)) {
16913 if (local_id_ref(p,
id, &vidp)) {
16924 if (numparam_nested_p(p))
return 0;
16930# if WARN_PAST_SCOPE
16951opt_arg_append(
NODE *opt_list,
NODE *opt)
16953 NODE *opts = opt_list;
16956 while (opts->nd_next) {
16957 opts = opts->nd_next;
16960 opts->nd_next = opt;
16969 NODE *kws = kwlist;
16971 while (kws->nd_next) {
16972 kws = kws->nd_next;
16996 return list_append(p, symbols, symbol);
17015 nd_set_loc(node, loc);
17026 nd_set_loc(node, loc);
17028 if (!
NIL_P(node->nd_lit)) reg_fragment_check(p, node->nd_lit, options);
17032 if (reg_fragment_check(p, tail, options) &&
prev && !
NIL_P(
prev->nd_lit)) {
17034 if (!literal_concat0(p, lit, tail)) {
17039 rb_discard_node(p,
list->nd_head);
17040 rb_discard_node(p,
list);
17051 if (!node->nd_next) {
17083 nd_set_loc(node, loc);
17087 nd_set_loc(node, loc);
17104 if (lit ==
Qundef)
return;
17114 if (!
NIL_P(line)) {
17115 rb_warning1(
"duplicated `when' clause with line %d is ignored",
17132 if (dyna_in_block(p)) {
17135 if (local_id(p,
id))
return 1;
17149 if (ripper_is_node_yylval(re)) {
17151 re =
RNODE(re)->nd_rval;
17153 if (ripper_is_node_yylval(opt)) {
17154 options = (
int)
RNODE(opt)->nd_tag;
17155 opt =
RNODE(opt)->nd_rval;
17160 return dispatch2(regexp_literal, re, opt);
17166static const char rb_parser_lex_state_names[][8] = {
17167 "BEG",
"END",
"ENDARG",
"ENDFN",
"ARG",
17168 "CMDARG",
"MID",
"FNAME",
"DOT",
"CLASS",
17169 "LABEL",
"LABELED",
"FITEM",
17176 unsigned int mask = 1;
17177 static const char none[] =
"NONE";
17180 if ((
unsigned)state &
mask) {
17214 append_lex_state_name(from, mesg);
17216 append_lex_state_name(to, mesg);
17243 const char *
name,
int line)
17246 append_bitstack_value(stack, mesg);
17264 append_lex_state_name(p->
lex.
state, mesg);
17285 yylloc->beg_pos.lineno = sourceline;
17286 yylloc->beg_pos.column = beg_pos;
17287 yylloc->end_pos.lineno = sourceline;
17288 yylloc->end_pos.column = end_pos;
17324 v = valp->
node->nd_rval;
17331 v = valp->
node->nd_lit;
17359 if (!
id)
return -1;
17362 *
err =
"Can't change the value of self";
17365 *
err =
"Can't assign to nil";
17368 *
err =
"Can't assign to true";
17371 *
err =
"Can't assign to false";
17374 *
err =
"Can't assign to __FILE__";
17377 *
err =
"Can't assign to __LINE__";
17380 *
err =
"Can't assign to __ENCODING__";
17383 switch (id_type(
id)) {
17385 if (dyna_in_block(p)) {
17398 if (!local_id(p,
id)) local_var(p,
id);
17406 *
err =
"dynamic constant assignment";
17419 const char *
err = 0;
17437 const char *
err = 0;
17439 if (
err) lhs = assign_error(p, lhs);
17445is_private_local_id(
ID name)
17458 if (is_private_local_id(
name))
return 1;
17459 if (dyna_in_block(p)) {
17460 if (dvar_curr(p,
name)) {
17461 yyerror0(
"duplicated argument name");
17463 else if (dvar_defined(p,
name) || local_id(p,
name)) {
17472 if (local_id(p,
name)) {
17473 yyerror0(
"duplicated argument name");
17482 shadowing_lvar_0(p,
name);
17495 if (!shadowing_lvar_0(p,
name))
return;
17529 compile_error(p,
"Can't set variable $%c", (
int)node->nd_nth);
17540 return list_append(p, node1, node2);
17542 node1->nd_head = arg_append(p, node1->nd_head, node2, loc);
17546 node1->nd_body = list_append(p,
NEW_LIST(node1->nd_body, &node1->nd_body->
nd_loc), node2);
17552 node1->nd_body = list_append(p, node1->nd_body, node2);
17562 if (!node2)
return node1;
17565 if (node1->nd_head)
17566 node1->nd_head = arg_concat(p, node1->nd_head, node2, loc);
17568 node1->nd_head =
NEW_LIST(node2, loc);
17572 node1->nd_body = list_concat(
NEW_LIST(node1->nd_body, loc), node2);
17578 node1->nd_body = list_concat(node1->nd_body, node2);
17588 if ((n1 = splat_array(
args)) != 0) {
17589 return list_append(p, n1, last_arg);
17591 return arg_append(p,
args, last_arg, loc);
17599 return list_concat(n1, rest_arg);
17601 return arg_concat(p,
args, rest_arg, loc);
17605splat_array(
NODE* node)
17619 if (local_id_ref(p, rhs->nd_vid, &vidp)) {
17625 if (dvar_defined_ref(p, rhs->nd_vid, &vidp)) {
17631 for (rhs = rhs->nd_head; rhs; rhs = rhs->nd_next) {
17632 mark_lvar_used(p, rhs->nd_head);
17642 if (!lhs)
return 0;
17653 lhs->nd_value = rhs;
17654 nd_set_loc(lhs, loc);
17658 lhs->nd_args = arg_append(p, lhs->nd_args, rhs, loc);
17659 nd_set_loc(lhs, loc);
17673 NODE *void_node = 0, *vn;
17685 return void_node ? void_node : node;
17692 if (node->nd_body->nd_body) {
17696 return void_node ? void_node : node;
17699 while (node->nd_next) {
17700 node = node->nd_next;
17702 node = node->nd_head;
17706 node = node->nd_body;
17711 if (!node->nd_body) {
17714 else if (!node->nd_else) {
17717 vn = value_expr_check(p, node->nd_body);
17718 if (!vn)
return NULL;
17719 if (!void_node) void_node = vn;
17720 node = node->nd_else;
17725 node = node->nd_1st;
17732 mark_lvar_used(p, node);
17746 NODE *void_node = value_expr_check(p, node);
17757 const char *useless = 0;
17764 switch (node->nd_mid) {
17795 useless =
"a variable";
17798 useless =
"a constant";
17804 useless =
"a literal";
17829 useless =
"defined?";
17841 NODE *
const n = node;
17843 if (!node)
return n;
17846 while (node->nd_next) {
17847 void_expr(p, node->nd_head);
17848 node = node->nd_next;
17854remove_begin(
NODE *node)
17856 NODE **
n = &node, *n1 = node;
17858 *
n = n1 = n1->nd_body;
17864remove_begin_all(
NODE *node)
17866 NODE **
n = &node, *n1 = node;
17868 *
n = n1 = n1->nd_body;
17876 NODE *node = *body;
17882#define subnodes(n1, n2) \
17883 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
17884 (!node->n2) ? (body = &node->n1, 1) : \
17885 (reduce_nodes(p, &node->n1), body = &node->n2, 1))
17895 *body = node = node->nd_stts;
17899 *body = node = node->nd_body;
17903 body = &node->nd_end->nd_head;
17910 body = &node->nd_body;
17919 if (node->nd_else) {
17920 body = &node->nd_resq;
17936is_static_content(
NODE *node)
17938 if (!node)
return 1;
17941 if (!(node = node->nd_head))
break;
17944 if (!is_static_content(node->nd_head))
return 0;
17945 }
while ((node = node->nd_next) != 0);
17975 if (!node->nd_value)
return 1;
17976 if (is_static_content(node->nd_value)) {
17978 parser_warn(p, node->nd_value,
"found `= literal' in conditional, should be ==");
17989#define SWITCH_BY_COND_TYPE(t, w, arg) \
17991 case COND_IN_OP: break; \
17992 case COND_IN_COND: rb_##w##0(arg "literal in condition"); break; \
17993 case COND_IN_FF: rb_##w##0(arg "literal in flip-flop"); break; \
18003 if (node == 0)
return 0;
18008 if (!e_option_supplied(p)) parser_warn(p, node,
"integer literal in flip-flop");
18017 if (node == 0)
return 0;
18019 assign_in_cond(p, node);
18072 if (node == 0)
return 0;
18079 if (node == 0)
return 0;
18086 if (!
cc)
return right;
18088 return newline_node(
NEW_IF(
cc, left, right, loc));
18094 if (!
cc)
return right;
18096 return newline_node(
NEW_UNLESS(
cc, left, right, loc));
18107 NODE *node = left, *second;
18112 nd_set_line(node->nd_2nd, op_loc->beg_pos.lineno);
18133 no_blockarg(p, node);
18135 if (node->nd_next == 0) {
18136 node = node->nd_head;
18149 if (node) no_blockarg(p, node);
18193arg_blk_pass(
NODE *node1,
NODE *node2)
18196 if (!node1)
return node2;
18197 node2->nd_head = node1;
18208 if (
args->pre_args_num)
return false;
18209 if (
args->post_args_num)
return false;
18210 if (
args->rest_arg)
return false;
18211 if (
args->opt_args)
return false;
18212 if (
args->block_arg)
return false;
18213 if (
args->kw_args)
return false;
18214 if (
args->kw_rest_arg)
return false;
18225 args->
pre_init = pre_args ? pre_args->nd_next : 0;
18228 args->
post_init = post_args ? post_args->nd_next : 0;
18238 nd_set_loc(tail, loc);
18250 rb_imemo_tmpbuf_set_ptr(tmpbuf, args);
18251 args->
imemo = tmpbuf;
18266 ID kw_bits = internal_id(p), *required_kw_vars, *kw_vars;
18268 NODE *kwn = kw_args;
18270 vtable_pop(vtargs, !!block + !!kw_rest_arg);
18271 required_kw_vars = kw_vars = &vtargs->
tbl[vtargs->
pos];
18275 --required_kw_vars;
18276 kwn = kwn->nd_next;
18279 for (kwn = kw_args; kwn; kwn = kwn->nd_next) {
18280 ID vid = kwn->nd_body->nd_vid;
18282 *required_kw_vars++ = vid;
18289 arg_var(p, kw_bits);
18290 if (kw_rest_arg) arg_var(p, kw_rest_arg);
18291 if (block) arg_var(p, block);
18296 else if (kw_rest_arg ==
idNil) {
18299 else if (kw_rest_arg) {
18313 args = new_args_tail(p, 0, 0, 0, 0);
18314 nd_set_loc(args, &loc);
18316 args->nd_ainfo->pre_args_num = max_numparam;
18326 aryptn->nd_pconst = constant;
18347 rb_imemo_tmpbuf_set_ptr(tmpbuf, apinfo);
18349 apinfo->
imemo = tmpbuf;
18375 hshptn->nd_pconst = constant;
18383 NODE *node, *kw_rest_arg_node;
18385 if (kw_rest_arg ==
idNil) {
18388 else if (kw_rest_arg) {
18389 kw_rest_arg_node = assignable(p, kw_rest_arg, 0, loc);
18392 kw_rest_arg_node =
NULL;
18407 rb_warn0L(
nd_line(node),
"Pattern matching is experimental, and the behavior may change in future versions of Ruby!");
18423 nd_set_loc(node, loc);
18426 lit = node->nd_lit;
18429 nd_set_loc(node, loc);
18444 node->nd_next->nd_end = node->nd_next;
18445 node->nd_next->nd_next = 0;
18447 list_concat(*result, node);
18459 while (hash && hash->nd_head && hash->nd_next) {
18460 NODE *head = hash->nd_head;
18461 NODE *value = hash->nd_next;
18462 NODE *next = value->nd_next;
18466 st_lookup(literal_keys, (
key = head->nd_lit), &data)) {
18468 "key %+"PRIsVALUE" is duplicated and overwritten on line %d",
18469 head->nd_lit,
nd_line(head));
18470 head = ((
NODE *)data)->nd_next;
18471 head->nd_head = block_append(p, head->nd_head, value->nd_head);
18481 if (!result) result = hash;
18482 else list_concat(result, hash);
18491 if (hash) hash = remove_duplicate_keys(p, hash);
18499 if (is_private_local_id(
id)) {
18503 yyerror1(loc,
"duplicated variable name");
18517 yyerror1(loc,
"duplicated key name");
18538 ID vid = lhs->nd_vid;
18541 lhs->nd_value = rhs;
18542 nd_set_loc(lhs, loc);
18545 switch (id_type(vid)) {
18549 asgn->nd_aid = vid;
18553 else if (op ==
tANDOP) {
18554 lhs->nd_value = rhs;
18555 nd_set_loc(lhs, loc);
18561 nd_set_loc(asgn, loc);
18581 args = arg_concat(p, args, rhs, loc);
18618 yyerror1(loc,
"dynamic constant assignment");
18627 path = dispatch1(assign_error,
path);
18636 a = dispatch1(assign_error, a);
18644 return ripper_new_yylval(p,
get_id(a), dispatch1(var_field, a), 0);
18652 NODE *result = head;
18654 NODE *tmp = rescue_else ? rescue_else : rescue;
18657 result =
NEW_RESCUE(head, rescue, rescue_else, &rescue_loc);
18660 else if (rescue_else) {
18661 result = block_append(p, result, rescue_else);
18666 fixpos(result, head);
18676 if (!local->
used)
return;
18684 for (
int i = 0;
i <
cnt; ++
i) {
18686 if (is_private_local_id(
v[
i]))
continue;
18705 if (toplevel_scope && e_option_supplied(p)) warn_unused_vars = 0;
18712# if WARN_PAST_SCOPE
18725 warn_unused_var(p, p->
lvtbl);
18728# if WARN_PAST_SCOPE
18729 while (p->
lvtbl->past) {
18747 int cnt_args = vtable_size(p->
lvtbl->
args);
18748 int cnt_vars = vtable_size(p->
lvtbl->
vars);
18749 int cnt = cnt_args + cnt_vars;
18753 if (
cnt <= 0)
return 0;
18757 for (
i = 0, j = cnt_args+1;
i < cnt_vars; ++
i) {
18759 if (!vtable_included(p->
lvtbl->
args,
id)) {
18789 rb_warn1(
"`_%d' is reserved for numbered parameter; consider another name",
18796 numparam_name(p,
id);
18803 numparam_name(p,
id);
18822 if (used) used = used->
prev;
18828 else if (vtable_included(args,
id)) {
18832 int i = vtable_included(
vars,
id);
18833 if (
i && used && vidrefp) *vidrefp = &used->
tbl[
i-1];
18841 return local_id_ref(p,
id,
NULL);
18886static const struct vtable *
18900 struct vtable *tmp = *vtblp;
18901 *vtblp = tmp->
prev;
18902# if WARN_PAST_SCOPE
18903 if (p->past_scope_enabled) {
18905 p->
lvtbl->past = tmp;
18918 warn_unused_var(p, p->
lvtbl);
18957 if (vtable_included(args,
id)) {
18960 if ((
i = vtable_included(
vars,
id)) != 0) {
18961 if (used && vidrefp) *vidrefp = &used->
tbl[
i-1];
18966 if (!vidrefp) used = 0;
18967 if (used) used = used->
prev;
18980 return dvar_defined_ref(p,
id,
NULL);
18986 return (vtable_included(p->
lvtbl->
args,
id) ||
18994 "regexp encoding option '%c' differs from source encoding '%s'",
19040 if (c) reg_fragment_enc_error(p,
str, c);
19047 reg_fragment_setenc(p,
str, options);
19066 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
19072 const char *s = (
const char *)
name;
19085 succ =
arg->succ_block;
19087 succ = block_append(p, succ, node);
19088 arg->succ_block = succ;
19099 arg.succ_block = 0;
19103 if (!
arg.succ_block)
return 0;
19104 return arg.succ_block->nd_next;
19110 reg_fragment_setenc(p,
str, options);
19127 re = parser_reg_compile(p,
str, options);
19144 if (c) reg_fragment_enc_error(p,
str, c);
19177 static const YYLTYPE default_location = {{1, 0}, {1, 0}};
19178 const YYLTYPE *
const LOC = &default_location;
19184 node = block_append(p, node, print);
19194 node = block_append(p, split, node);
19199 node = block_append(p, chomp, node);
19219 const ID max_id = RB_ID_SERIAL_MAX & ~0xffff;
19235 p->delayed.token =
Qnil;
19237 p->parsing_thread =
Qnil;
19247#define parser_mark ripper_parser_mark
19248#define parser_free ripper_parser_free
19252parser_mark(
void *
ptr)
19282parser_free(
void *
ptr)
19290 for (local = p->
lvtbl; local; local =
prev) {
19306parser_memsize(
const void *
ptr)
19310 size_t size =
sizeof(*p);
19313 for (local = p->
lvtbl; local; local = local->
prev) {
19314 size +=
sizeof(*local);
19335#undef rb_reserved_word
19340 return reserved_word(
str,
len);
19348 &parser_data_type, p);
19349 parser_initialize(p);
19366#define rb_parser_end_seen_p ripper_parser_end_seen_p
19367#define rb_parser_encoding ripper_parser_encoding
19368#define rb_parser_get_yydebug ripper_parser_get_yydebug
19369#define rb_parser_set_yydebug ripper_parser_set_yydebug
19370#define rb_parser_get_debug_output ripper_parser_get_debug_output
19371#define rb_parser_set_debug_output ripper_parser_set_debug_output
19372static VALUE ripper_parser_end_seen_p(
VALUE vparser);
19373static VALUE ripper_parser_encoding(
VALUE vparser);
19374static VALUE ripper_parser_get_yydebug(
VALUE self);
19376static VALUE ripper_parser_get_debug_output(
VALUE self);
19377static VALUE ripper_parser_set_debug_output(
VALUE self,
VALUE output);
19386ripper_error_p(
VALUE vparser)
19433rb_parser_get_yydebug(
VALUE self)
19490#define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
19493#define NEWHEAP() rb_imemo_tmpbuf_parser_heap(0, p->heap, 0)
19494#define ADD2HEAP(new, cnt, ptr) ((p->heap = (new))->ptr = (ptr), \
19495 (new)->cnt = (cnt), (ptr))
19525 if (
n->ptr ==
ptr) {
19527 if (
n->cnt)
n->cnt =
cnt;
19530 }
while ((
n =
n->next) !=
NULL);
19542 while ((
n = *prev) !=
NULL) {
19543 if (
n->ptr ==
ptr) {
19588count_char(
const char *
str,
int c)
19591 while (
str[
n] == c) ++
n;
19604 if (*yystr ==
'"') {
19605 size_t yyn = 0, bquote = 0;
19606 const char *yyp = yystr;
19612 bquote = count_char(yyp+1,
'`') + 1;
19613 if (yyres)
memcpy(&yyres[yyn], yyp, bquote);
19621 if (bquote && count_char(yyp+1,
'\'') + 1 == bquote) {
19622 if (yyres)
memcpy(yyres + yyn, yyp, bquote);
19628 if (yyp[1] && yyp[1] !=
'\'' && yyp[2] ==
'\'') {
19629 if (yyres)
memcpy(yyres + yyn, yyp, 3);
19634 goto do_not_strip_quotes;
19637 goto do_not_strip_quotes;
19640 if (*++yyp !=
'\\')
19641 goto do_not_strip_quotes;
19657 do_not_strip_quotes: ;
19660 if (!yyres)
return strlen(yystr);
19662 return (
YYSIZE_T)(yystpcpy(yyres, yystr) - yyres);
19672 if (x ==
Qfalse)
return x;
19673 if (x ==
Qtrue)
return x;
19674 if (x ==
Qnil)
return x;
19692 x = ((
NODE *)x)->nd_rval;
19706#define validate(x) ((x) = get_value(x))
19735 return rb_funcall(p->value, mid, 3, a, b, c);
19745 return rb_funcall(p->value, mid, 4, a, b, c, d);
19756 return rb_funcall(p->value, mid, 5, a, b, c, d, e);
19769 return rb_funcall(p->value, mid, 7, a, b, c, d, e,
f, g);
19778 if (
nd_type(nd) != NODE_RIPPER)
return 0;
19783ripper_get_value(
VALUE v)
19790 return nd->nd_rval;
19818 "gets returned %"PRIsVALUE" (expected String or nil)",
19835 &parser_data_type, p);
19840#define ripper_initialized_p(r) ((r)->lex.input != 0)
19861 p->
lex.
gets = ripper_lex_io_get;
19864 p->
lex.
gets = ripper_lex_get_generic;
19872 if (
NIL_P(fname)) {
19880 parser_initialize(p);
19890ripper_parse0(
VALUE parser_v)
19897 ripper_yyparse((
void*)p);
19904ripper_ensure(
VALUE parser_v)
19909 p->parsing_thread =
Qnil;
19920ripper_parse(
VALUE self)
19925 if (!ripper_initialized_p(p)) {
19928 if (!
NIL_P(p->parsing_thread)) {
19935 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
19948ripper_column(
VALUE self)
19954 if (!ripper_initialized_p(p)) {
19957 if (
NIL_P(p->parsing_thread))
return Qnil;
19969ripper_filename(
VALUE self)
19974 if (!ripper_initialized_p(p)) {
19988ripper_lineno(
VALUE self)
19993 if (!ripper_initialized_p(p)) {
19996 if (
NIL_P(p->parsing_thread))
return Qnil;
20007ripper_state(
VALUE self)
20012 if (!ripper_initialized_p(p)) {
20015 if (
NIL_P(p->parsing_thread))
return Qnil;
20026ripper_token(
VALUE self)
20032 if (!ripper_initialized_p(p)) {
20035 if (
NIL_P(p->parsing_thread))
return Qnil;
20076 ripper_init_eventids1();
20077 ripper_init_eventids2();
20122<% @exprs.each
do |expr, desc| -%>
20126 ripper_init_eventids1_table(Ripper);
20127 ripper_init_eventids2_table(Ripper);
struct rb_encoding_entry * list
int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
rb_encoding * rb_utf8_encoding(void)
rb_encoding * rb_ascii8bit_encoding(void)
rb_encoding * rb_enc_from_index(int index)
rb_encoding * rb_enc_get(VALUE obj)
int rb_ascii8bit_encindex(void)
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
rb_encoding * rb_usascii_encoding(void)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_enc_find_index(const char *name)
int rb_enc_codelen(int c, rb_encoding *enc)
#define ENC_CODERANGE_7BIT
#define rb_enc_mbcput(c, buf, enc)
#define rb_enc_prev_char(s, p, e, enc)
int rb_enc_str_coderange(VALUE)
#define ENC_CODERANGE_UNKNOWN
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
#define ENCODING_GET(obj)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
#define rb_enc_asciicompat(enc)
#define rb_enc_isalnum(c, enc)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
long rb_str_coderange_scan_restartable(const char *, const char *, rb_encoding *, int *)
#define MBCLEN_CHARFOUND_P(ret)
#define ENCODING_SET(obj, i)
#define ENCODING_IS_ASCII8BIT(obj)
#define rb_enc_isspace(c, enc)
char str[HTML_ESCAPE_MAX_LEN+1]
#define rb_intern_str(string)
VALUE rb_define_class(const char *, VALUE)
Defines a top-level class.
VALUE rb_cObject
Object class.
VALUE rb_syntax_error_append(VALUE exc, VALUE file, int line, int column, rb_encoding *enc, const char *fmt, va_list args)
void rb_raise(VALUE exc, const char *fmt,...)
_Bool rb_warning_category_enabled_p(rb_warning_category_t category)
void rb_exc_raise(VALUE mesg)
Raises an exception in the current thread.
void rb_set_errinfo(VALUE err)
Sets the current exception ($!) to the given value.
const char * rb_builtin_type_name(int t)
void rb_fatal(const char *fmt,...)
const char * rb_builtin_class_name(VALUE x)
VALUE rb_make_exception(int, const VALUE *)
Make an Exception object from the list of arguments in a manner similar to Kernel#raise.
VALUE rb_ensure(VALUE(*)(VALUE), VALUE, VALUE(*)(VALUE), VALUE)
An equivalent to ensure clause.
VALUE rb_errinfo(void)
The current exception in the current thread.
VALUE rb_class_new_instance(int, const VALUE *, VALUE)
Allocates and initializes an instance of klass.
VALUE rb_obj_hide(VALUE obj)
Make the object invisible from Ruby code.
VALUE rb_obj_class(VALUE)
Equivalent to Object#class in Ruby.
VALUE rb_obj_freeze(VALUE)
Make the object unmodifiable.
VALUE type(ANYARGS)
ANYARGS-ed function type.
ONIG_EXTERN int onig_foreach_name(OnigRegex reg, int(*func)(const OnigUChar *, const OnigUChar *, int, int *, OnigRegex, void *), void *arg)
#define RE_OPTION_ENCODING(e)
enum lex_state_e rb_parser_trace_lex_state(struct parser_params *, enum lex_state_e, enum lex_state_e, int)
#define HERETERM_LENGTH_BITS
void rb_parser_fatal(struct parser_params *p, const char *fmt,...)
#define dispatch_delayed_token(p, t)
#define IS_LABEL_POSSIBLE()
#define has_delayed_token(p)
#define set_yylval_name(x)
#define YY_LOCATION_PRINT(File, loc)
#define DVARS_TERMINAL_P(tbl)
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
VALUE rb_parser_new(void)
#define RUBY_DTRACE_PARSE_HOOK(name)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
#define add_delayed_token(p, tok, end)
#define NUMPARAM_ID_P(id)
#define str_copy(_s, _p, _n)
#define SWITCH_BY_COND_TYPE(t, w, arg)
#define make_list(list, loc)
#define rb_warn1L(l, fmt, a)
void * rb_parser_malloc(struct parser_params *p, size_t size)
#define dispatch_heredoc_end(p)
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
#define YYPRINT(out, tok, val)
VALUE rb_io_gets_internal(VALUE io)
rb_ast_t * rb_parser_compile_string(VALUE vparser, const char *f, VALUE s, int line)
void(* rb_magic_comment_setter_t)(struct parser_params *p, const char *name, const char *val)
#define NEW_STRTERM(func, term, paren)
STATIC_ASSERT(rb_strterm_heredoc_t, sizeof(rb_strterm_heredoc_t)<=4 *SIZEOF_VALUE)
#define YY_IGNORE_USELESS_CAST_END
#define literal_flush(p, ptr)
#define yyerror(yylloc, p, msg)
struct token_info token_info
void rb_parser_printf(struct parser_params *p, const char *fmt,...)
YYLTYPE * rb_parser_set_location(struct parser_params *p, YYLTYPE *yylloc)
#define WARN_SPACE_CHAR(c, prefix)
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define intern_cstr(n, l, en)
#define YY_REDUCE_PRINT(Rule)
rb_ast_t * rb_parser_compile_string_path(VALUE vparser, VALUE f, VALUE s, int line)
#define YY_CAST(Type, Val)
void rb_parser_set_options(VALUE vparser, int print, int loop, int chomp, int split)
#define vtable_alloc(prev)
VALUE rb_parser_set_context(VALUE vparser, const struct rb_iseq_struct *base, int main)
RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_parser_reg_compile(struct parser_params *p, VALUE str, int options)
#define IS_lex_state_for(x, ls)
#define dispatch_scan_event(p, t)
#define NEW_QCALL(q, r, m, a, loc)
long(* rb_magic_comment_length_t)(struct parser_params *p, const char *name, long len)
#define warn_balanced(tok, op, syn)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e - 0x20+31)/32]
#define RE_OPTION_ENCODING_NONE(o)
YYLTYPE * rb_parser_set_location_from_strterm_heredoc(struct parser_params *p, rb_strterm_heredoc_t *here, YYLTYPE *yylloc)
#define set_yylval_literal(x)
#define set_yylval_str(x)
#define WARN_LOCATION(type)
rb_ast_t * rb_parser_compile_generic(VALUE vparser, VALUE(*lex_gets)(VALUE, int), VALUE fname, VALUE input, int start)
#define RUBY_INIT_YYLLOC()
#define YY_INITIAL_VALUE(Value)
#define STR_NEW3(ptr, len, e, func)
VALUE rb_parser_encoding(VALUE vparser)
int rb_reg_fragment_setenc(struct parser_params *, VALUE, int)
#define yytnamerr(yyres, yystr)
VALUE rb_parser_get_debug_output(VALUE self)
unsigned char yytype_uint8
#define YY_STACK_PRINT(Bottom, Top)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
#define STR_NEW(ptr, len)
#define lambda_beginning_p()
#define RUBY_SET_YYLLOC_FROM_STRTERM_HEREDOC(Current)
#define YYSTACK_ALLOC_MAXIMUM
#define IS_lex_state_all(ls)
#define NUMPARAM_IDX_TO_ID(idx)
#define YY_IGNORE_USELESS_CAST_BEGIN
void rb_strterm_mark(VALUE obj)
#define rb_warn2(fmt, a, b)
void rb_parser_show_bitstack(struct parser_params *, stack_type, const char *, int)
#define ADD2HEAP(new, cnt, ptr)
#define mixed_escape(beg, enc1, enc2)
#define RE_OPTION_ENCODING_IDX(o)
#define vtable_pop(tbl, n)
#define set_yylval_noname()
size_t rb_yytnamerr(struct parser_params *p, char *yyres, const char *yystr)
void * rb_parser_realloc(struct parser_params *p, void *ptr, size_t size)
VALUE rb_parser_set_debug_output(VALUE self, VALUE output)
#define set_yylval_node(x)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
VALUE rb_parser_end_seen_p(VALUE vparser)
#define RUBY_SET_YYLLOC(Current)
#define yytable_value_is_error(Yyn)
struct rb_strterm_literal_struct rb_strterm_literal_t
#define HERETERM_LENGTH_MAX
YYLTYPE * rb_parser_set_location_of_none(struct parser_params *p, YYLTYPE *yylloc)
#define YY_ATTRIBUTE_UNUSED
void rb_parser_free(struct parser_params *p, void *ptr)
PRINTF_ARGS(void rb_parser_fatal(struct parser_params *p, const char *fmt,...), 2, 3)
rb_ast_t * rb_parser_compile_file_path(VALUE vparser, VALUE fname, VALUE file, int start)
#define NUMPARAM_ID_TO_IDX(id)
void rb_parser_warn_location(VALUE vparser, int warn)
#define SET_LEX_STATE(ls)
#define RUBY_SET_YYLLOC_OF_NONE(Current)
#define vtable_add(tbl, id)
unsigned short yytype_uint16
#define mixed_error(enc1, enc2)
#define rb_node_newnode(type, a1, a2, a3, loc)
#define IS_LABEL_SUFFIX(n)
#define nd_once_body(node)
#define yyerror1(loc, msg)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define yypact_value_is_default(Yyn)
#define flush_string_content(p, enc)
#define rb_warn0L(l, fmt)
#define rb_warn3L(l, fmt, a, b, c)
#define rb_warning1(fmt, a)
void * rb_parser_calloc(struct parser_params *p, size_t nelem, size_t size)
VALUE rb_parser_lex_state_name(enum lex_state_e state)
#define IS_AFTER_OPERATOR()
unsigned char yytype_uint8
rb_atomic_t cnt[RUBY_NSIG]
void st_free_table(st_table *tab)
st_table * st_init_numtable_with_size(st_index_t size)
st_table * st_init_numtable(void)
int st_insert(st_table *tab, st_data_t key, st_data_t value)
int st_lookup(st_table *tab, st_data_t key, st_data_t *value)
int st_foreach(st_table *tab, st_foreach_callback_func *func, st_data_t arg)
rb_code_location_t nd_loc
struct local_vars::@125 numparam
VALUE(* gets)(struct parser_params *, VALUE)
struct parser_params::@126 lex
const char * ruby_sourcefile
unsigned int ruby__end__seen
VALUE(* call)(VALUE, int)
unsigned int command_start
unsigned int warn_location
const struct rb_iseq_struct * parent_iseq
unsigned int token_info_enabled
VALUE ruby_sourcefile_string
union parser_params::@126::@127 gets_
struct local_vars * lvtbl
unsigned int ruby2_keywords
rb_code_position_t beg_pos
rb_code_position_t end_pos
union rb_strterm_literal_struct::@130 u2
union rb_strterm_literal_struct::@128 u0
union rb_strterm_literal_struct::@131 u3
union rb_strterm_literal_struct::@129 u1
rb_strterm_literal_t literal
union rb_strterm_struct::@132 u
rb_strterm_heredoc_t heredoc
#define is_identchar(p, e, enc)
int rb_enc_symname_type(const char *name, long len, rb_encoding *enc, unsigned int allowed_attrset)
struct rb_strterm_struct * strterm
const struct vtable * vars
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
#define scan_hex(s, l, e)
#define scan_oct(s, l, e)