50 #define YYBISON_VERSION "2.3"    53 #define YYSKELETON_NAME "yacc.c"    59 #define YYLSP_NEEDED 1   189 #define END_OF_INPUT 0   190 #define keyword_class 258   191 #define keyword_module 259   192 #define keyword_def 260   193 #define keyword_undef 261   194 #define keyword_begin 262   195 #define keyword_rescue 263   196 #define keyword_ensure 264   197 #define keyword_end 265   198 #define keyword_if 266   199 #define keyword_unless 267   200 #define keyword_then 268   201 #define keyword_elsif 269   202 #define keyword_else 270   203 #define keyword_case 271   204 #define keyword_when 272   205 #define keyword_while 273   206 #define keyword_until 274   207 #define keyword_for 275   208 #define keyword_break 276   209 #define keyword_next 277   210 #define keyword_redo 278   211 #define keyword_retry 279   212 #define keyword_in 280   213 #define keyword_do 281   214 #define keyword_do_cond 282   215 #define keyword_do_block 283   216 #define keyword_do_LAMBDA 284   217 #define keyword_return 285   218 #define keyword_yield 286   219 #define keyword_super 287   220 #define keyword_self 288   221 #define keyword_nil 289   222 #define keyword_true 290   223 #define keyword_false 291   224 #define keyword_and 292   225 #define keyword_or 293   226 #define keyword_not 294   227 #define modifier_if 295   228 #define modifier_unless 296   229 #define modifier_while 297   230 #define modifier_until 298   231 #define modifier_rescue 299   232 #define keyword_alias 300   233 #define keyword_defined 301   234 #define keyword_BEGIN 302   235 #define keyword_END 303   236 #define keyword__LINE__ 304   237 #define keyword__FILE__ 305   238 #define keyword__ENCODING__ 306   239 #define tIDENTIFIER 307   243 #define tCONSTANT 311   248 #define tRATIONAL 316   249 #define tIMAGINARY 317   250 #define tSTRING_CONTENT 318   253 #define tBACK_REF 321   254 #define tREGEXP_END 322   280 #define tLPAREN_ARG 327   284 #define tLBRACE_ARG 331   290 #define tSTRING_BEG 337   291 #define tXSTRING_BEG 338   292 #define tREGEXP_BEG 339   293 #define tWORDS_BEG 340   294 #define tQWORDS_BEG 341   295 #define tSYMBOLS_BEG 342   296 #define tQSYMBOLS_BEG 343   297 #define tSTRING_DBEG 344   298 #define tSTRING_DEND 345   299 #define tSTRING_DVAR 346   300 #define tSTRING_END 347   302 #define tLABEL_END 349   304 #define tUMINUS_NUM 351   305 #define tLAST_TOKEN 352   315 # error needs pure parser   318 #define PARSER_DEBUG 0   321 #define YYERROR_VERBOSE 1   322 #define YYSTACK_USE_ALLOCA 0   337 #ifndef WARN_PAST_SCOPE   338 # define WARN_PAST_SCOPE 0   343 #define YYMALLOC(size)          rb_parser_malloc(parser, (size))   344 #define YYREALLOC(ptr, size)    rb_parser_realloc(parser, (ptr), (size))   345 #define YYCALLOC(nelem, size)   rb_parser_calloc(parser, (nelem), (size))   346 #define YYFREE(ptr)             rb_parser_free(parser, (ptr))   347 #define YYFPRINTF               rb_parser_printf   348 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL   349 # define YY_LOCATION_PRINT(File, Loc) \   350      rb_parser_printf(parser, "%d.%d-%d.%d", \   351                       (Loc).first_line, (Loc).first_column, \   352                       (Loc).last_line,  (Loc).last_column)   358 #define malloc  YYMALLOC   359 #define realloc YYREALLOC   360 #define calloc  YYCALLOC   381 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit)   400 #define IS_lex_state_for(x, ls) ((x) & (ls))   401 #define IS_lex_state_all_for(x, ls) (((x) & (ls)) == (ls))   402 #define IS_lex_state(ls)        IS_lex_state_for(lex_state, (ls))   403 #define IS_lex_state_all(ls)    IS_lex_state_all_for(lex_state, (ls))   405 # define SET_LEX_STATE(ls) \   408       rb_parser_trace_lex_state(parser, lex_state, (ls), __LINE__) : \   409       (enum lex_state_e)(ls)))   413 # define SHOW_BITSTACK(stack, name) (yydebug ? rb_parser_show_bitstack(parser, stack, name, __LINE__) : (void)0)   414 # define BITSTACK_PUSH(stack, n) (((stack) = ((stack)<<1)|((n)&1)), SHOW_BITSTACK(stack, #stack"(push)"))   415 # define BITSTACK_POP(stack)     (((stack) = (stack) >> 1), SHOW_BITSTACK(stack, #stack"(pop)"))   416 # define BITSTACK_LEXPOP(stack)  (((stack) = ((stack) >> 1) | ((stack) & 1)), SHOW_BITSTACK(stack, #stack"(lexpop)"))   417 # define BITSTACK_SET_P(stack)   (SHOW_BITSTACK(stack, #stack), (stack)&1)   418 # define BITSTACK_SET(stack, n)  ((stack)=(n), SHOW_BITSTACK(stack, #stack"(set)"))   420 #define COND_PUSH(n)    BITSTACK_PUSH(cond_stack, (n))   421 #define COND_POP()      BITSTACK_POP(cond_stack)   422 #define COND_LEXPOP()   BITSTACK_LEXPOP(cond_stack)   423 #define COND_P()        BITSTACK_SET_P(cond_stack)   424 #define COND_SET(n)     BITSTACK_SET(cond_stack, (n))   426 #define CMDARG_PUSH(n)  BITSTACK_PUSH(cmdarg_stack, (n))   427 #define CMDARG_POP()    BITSTACK_POP(cmdarg_stack)   428 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)   429 #define CMDARG_P()      BITSTACK_SET_P(cmdarg_stack)   430 #define CMDARG_SET(n)   BITSTACK_SET(cmdarg_stack, (n))   450 #define DVARS_INHERIT ((void*)1)   451 #define DVARS_TOPSCOPE NULL   452 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))   453 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)   529     unsigned int past_scope_enabled: 1;
   552     VALUE parsing_thread;
   557 #define intern_cstr(n,l,en) rb_intern3(n,l,en)   559 #define intern_cstr(n,l,en) rb_intern3(n,l,en)   562 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc)   563 #define STR_NEW0() rb_enc_str_new(0,0,current_enc)   564 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc)   565 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc)   566 #define TOK_INTERN() intern_cstr(tok(), toklen(), current_enc)   568 static int parser_yyerror(
struct parser_params*, 
const char*);
   569 #define yyerror0(msg) parser_yyerror(parser, (msg))   570 #define yyerror(yylloc, parser, msg) yyerror0(msg)   571 #define token_flush(p) ((p)->lex.ptok = (p)->lex.pcur)   573 #define lex_strterm             (parser->lex.strterm)   574 #define lex_state               (parser->lex.state)   575 #define cond_stack              (parser->cond_stack)   576 #define cmdarg_stack            (parser->cmdarg_stack)   577 #define paren_nest              (parser->lex.paren_nest)   578 #define lpar_beg                (parser->lex.lpar_beg)   579 #define brace_nest              (parser->lex.brace_nest)   580 #define in_single               (parser->in_single)   581 #define in_def                  (parser->in_def)   582 #define in_main                 (parser->in_main)   583 #define in_defined              (parser->in_defined)   584 #define tokenbuf                (parser->tokenbuf)   585 #define tokidx                  (parser->tokidx)   586 #define toksiz                  (parser->toksiz)   587 #define tokline                 (parser->tokline)   588 #define lex_input               (parser->lex.input)   589 #define lex_lastline            (parser->lex.lastline)   590 #define lex_nextline            (parser->lex.nextline)   591 #define lex_pbeg                (parser->lex.pbeg)   592 #define lex_p                   (parser->lex.pcur)   593 #define lex_pend                (parser->lex.pend)   594 #define heredoc_end             (parser->heredoc_end)   595 #define heredoc_indent          (parser->heredoc_indent)   596 #define heredoc_line_indent     (parser->heredoc_line_indent)   597 #define command_start           (parser->command_start)   598 #define lex_gets_ptr            (parser->lex.gets_ptr)   599 #define lex_gets                (parser->lex.gets)   600 #define lvtbl                   (parser->lvtbl)   601 #define ruby__end__seen         (parser->ruby__end__seen)   602 #define ruby_sourceline         (parser->ruby_sourceline)   603 #define ruby_sourcefile         (parser->ruby_sourcefile)   604 #define ruby_sourcefile_string  (parser->ruby_sourcefile_string)   605 #define current_enc             (parser->enc)   606 #define current_arg             (parser->cur_arg)   607 #define yydebug                 (parser->yydebug)   609 #define compile_for_eval        (0)   611 #define compile_for_eval        (parser->base_block != 0 && !in_main)   612 #define ruby_eval_tree          (parser->eval_tree)   613 #define ruby_eval_tree_begin    (parser->eval_tree_begin)   614 #define ruby_debug_lines        (parser->debug_lines)   615 #define ruby_coverage           (parser->coverage)   617 #define tokp                    lex.ptok   619 #define token_column            ((int)(parser->tokp - lex_pbeg))   621 #define CALL_Q_P(q) ((q) == TOKEN2VAL(tANDDOT))   622 #define NODE_CALL_Q(q) (CALL_Q_P(q) ? NODE_QCALL : NODE_CALL)   623 #define NEW_QCALL(q,r,m,a) NEW_NODE(NODE_CALL_Q(q),r,m,a)   625 #define lambda_beginning_p() (lpar_beg && lpar_beg == paren_nest)   630 parser_set_line(
NODE *n, 
int l)
   637 set_line_body(
NODE *body, 
int line)
   647 #define yyparse ruby_yyparse   650 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))   653 #define cond(node,column) cond_gen(parser, (node), FALSE, column)   654 #define method_cond(node,column) cond_gen(parser, (node), TRUE, column)   655 #define new_nil() NEW_NIL()   657 #define new_if(cc,left,right,column) new_if_gen(parser, (cc), (left), (right), (column))   659 #define new_unless(cc,left,right,column) new_unless_gen(parser, (cc), (left), (right), (column))   661 #define logop(id,node1,node2,column) \   662     logop_gen(parser, ((id)==idAND||(id)==idANDOP)?NODE_AND:NODE_OR, \   663               (node1), (node2), (column))   671 static NODE *remove_begin_all(
NODE*);
   672 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))   673 #define void_expr0(node) void_expr_gen(parser, (node))   674 #define void_expr(node) void_expr0((node) = remove_begin(node))   676 #define void_stmts(node) void_stmts_gen(parser, (node))   678 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))   680 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))   683 #define block_append(h,t,column) block_append_gen(parser,(h),(t),(column))   685 #define list_append(l,i,column) list_append_gen(parser,(l),(i),(column))   688 #define arg_append(h,t,column) arg_append_gen(parser,(h),(t),(column))   690 #define arg_concat(h,t,column) arg_concat_gen(parser,(h),(t),(column))   692 #define literal_concat(h,t,column) literal_concat_gen(parser,(h),(t),(column))   695 #define new_evstr(n, column) new_evstr_gen(parser,(n),(column))   697 #define evstr2dstr(n,column) evstr2dstr_gen(parser,(n),(column))   701 #define call_bin_op(recv,id,arg1,column) call_bin_op_gen(parser, (recv),(id),(arg1),(column))   703 #define call_uni_op(recv,id,column) call_uni_op_gen(parser, (recv),(id),(column))   705 #define new_qcall(q,r,m,a,column) new_qcall_gen(parser,q,r,m,a,column)   706 #define new_command_qcall(q,r,m,a,column) new_qcall_gen(parser,q,r,m,a,column)   708 #define new_command(m,a) new_command_gen(parser, m, a)   710 #define method_add_block(m,b) method_add_block_gen(parser, m, b)   713 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))   715 #define new_args_tail(k,kr,b,column) new_args_tail_gen(parser, (k),(kr),(b),(column))   717 #define new_kw_arg(k,column) new_kw_arg_gen(parser, k, column)   720 #define negate_lit(lit) negate_lit_gen(parser, lit)   722 #define ret_args(node) ret_args_gen(parser, (node))   725 #define new_yield(node,column) new_yield_gen(parser, (node), (column))   727 #define dsym_node(node,column) dsym_node_gen(parser, (node), (column))   730 #define gettable(id,column) gettable_gen(parser,(id),(column))   732 #define assignable(id,node,column) assignable_gen(parser, (id), (node), (column))   735 #define aryset(node1,node2,column) aryset_gen(parser, (node1), (node2), (column))   737 #define attrset(node,q,id,column) attrset_gen(parser, (node), (q), (id), (column))   740 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))   742 #define node_assign(node1, node2, column) node_assign_gen(parser, (node1), (node2), (column))   745 #define new_op_assign(lhs, op, rhs, column) new_op_assign_gen(parser, (lhs), (op), (rhs), (column))   747 #define new_attr_op_assign(lhs, type, attr, op, rhs, column) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs), (column))   749 #define new_const_op_assign(lhs, op, rhs, column) new_const_op_assign_gen(parser, (lhs), (op), (rhs), (column))   752 #define const_path_field(w, n, column) const_path_field_gen(parser, w, n, column)   753 #define top_const_field(n) NEW_COLON3(n)   755 #define const_decl(path, column) const_decl_gen(parser, path, column)   757 #define var_field(n) (n)   758 #define backref_assign_error(n, a, column) (rb_backref_error(n), new_begin(0, column))   763 #define new_hash(hash, column) new_hash_gen(parser, (hash), column)   766 #define new_defined(expr, column) new_defined_gen(parser, expr, column)   769 #define new_regexp(node, opt, column) new_regexp_gen(parser, node, opt, column)   772 #define new_lit(sym, column) new_lit_gen(parser, sym, column)   775 #define new_list(item, column) new_list_gen(parser, item, column)   778 #define new_str(s,column) new_str_gen(parser, s, column)   781 #define new_dvar(id, column) new_dvar_gen(parser, id, column)   784 #define new_resbody(e,s,r,column) new_resbody_gen(parser, (e),(s),(r),(column))   787 #define new_errinfo(column) new_errinfo_gen(parser, column)   790 #define new_call(recv,mid,args,column) new_call_gen(parser, recv,mid,args,column)   793 #define new_fcall(mid,args,column) new_fcall_gen(parser, mid, args, column)   796 #define new_for(var,iter,body,column) new_for_gen(parser, var, iter, body, column)   799 #define new_gvar(id, column) new_gvar_gen(parser, id, column)   802 #define new_lvar(id, column) new_lvar_gen(parser, id, column)   805 #define new_dstr(s, column) new_dstr_gen(parser, s, column)   808 #define new_rescue(b,res,e,column) new_rescue_gen(parser,b,res,e,column)   811 #define new_undef(i, column) new_undef_gen(parser, i, column)   814 #define new_zarray(column) new_zarray_gen(parser, column)   817 #define new_ivar(id, column) new_ivar_gen(parser,id,column)   820 #define new_postarg(i,v,column) new_postarg_gen(parser,i,v,column)   823 #define new_cdecl(v,val,path,column) new_cdecl_gen(parser,v,val,path,column)   826 #define new_scope(a,b,column) new_scope_gen(parser,a,b,column)   829 #define new_begin(b,column) new_begin_gen(parser,b,column)   832 #define new_masgn(l,r,column) new_masgn_gen(parser,l,r,column)   835 #define new_xstring(node, column) new_xstring_gen(parser, node, column)   836 #define new_string1(str) (str)   839 #define new_brace_body(param, stmt, column) new_body_gen(parser, param, stmt, column)   840 #define new_do_body(param, stmt, column) new_body_gen(parser, param, stmt, column)   843 #define match_op(node1,node2,column) match_op_gen(parser, (node1), (node2), (column))   846 #define local_tbl() local_tbl_gen(parser)   849 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))   851 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))   853 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))   855 #define reg_named_capture_assign(regexp,column) reg_named_capture_assign_gen(parser,(regexp),column)   858 # define heredoc_dedent(str) parser_heredoc_dedent(parser, (str))   860 #define get_id(id) (id)   861 #define get_value(val) (val)   863 #define NODE_RIPPER NODE_CDECL   872 ripper_is_node_yylval(
VALUE n)
   877 #define value_expr(node) ((void)(node))   878 #define remove_begin(node) (node)   879 #define rb_dvar_defined(id, base) 0   880 #define rb_local_defined(id, base) 0   881 static ID ripper_get_id(
VALUE);
   882 #define get_id(id) ripper_get_id(id)   884 #define get_value(val) ripper_get_value(val)   886 #define assignable(lhs,node,column) assignable_gen(parser, (lhs))   888 #define id_is_var(id) id_is_var_gen(parser, (id))   890 #define method_cond(node,column) (node)   891 #define call_bin_op(recv,id,arg1,column) dispatch3(binary, (recv), STATIC_ID2SYM(id), (arg1))   892 #define match_op(node1,node2,column) call_bin_op((node1), idEqTilde, (node2), -1)   893 #define call_uni_op(recv,id,column) dispatch2(unary, STATIC_ID2SYM(id), (recv))   894 #define logop(id,node1,node2,column) call_bin_op((node1), (id), (node2), -1)   895 #define node_assign(node1, node2, column) dispatch2(assign, (node1), (node2))   897 #define new_qcall(q,r,m,a,column) new_qcall_gen(parser, (r), (q), (m), (a))   898 #define new_command_qcall(q,r,m,a,column) dispatch4(command_call, (r), (q), (m), (a))   899 #define new_command_call(q,r,m,a) dispatch4(command_call, (r), (q), (m), (a))   900 #define new_command(m,a) dispatch2(command, (m), (a));   902 #define new_nil() Qnil   904 #define new_op_assign(lhs, op, rhs, column) new_op_assign_gen(parser, (lhs), (op), (rhs), (column))   906 #define new_attr_op_assign(lhs, type, attr, op, rhs, column) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs))   907 #define new_const_op_assign(lhs, op, rhs, column) new_op_assign(lhs, op, rhs, column)   910 #define new_regexp(node, opt, column) new_regexp_gen(parser, node, opt)   913 #define new_xstring(str, column) new_xstring_gen(parser, str)   914 #define new_string1(str) dispatch1(string_literal, str)   916 #define new_brace_body(param, stmt, column) dispatch2(brace_block, escape_Qundef(param), stmt)   917 #define new_do_body(param, stmt, column) dispatch2(do_block, escape_Qundef(param), stmt)   919 #define const_path_field(w, n, column) dispatch2(const_path_field, (w), (n))   920 #define top_const_field(n) dispatch1(top_const_field, (n))   922 #define const_decl(path, column) const_decl_gen(parser, path)   925 #define var_field(a) var_field_gen(parser, (a))   927 #define assign_error(a) assign_error_gen(parser, (a))   928 #define backref_assign_error(n, a, column) assign_error(a)   930 #define block_dup_check(n1,n2) ((void)(n1), (void)(n2))   931 #define fixpos(n1,n2) ((void)(n1), (void)(n2))   933 #define nd_set_line(n,l) ((void)(n))   949 #define formal_argument(id) formal_argument_gen(parser, (id))   951 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))   953 #define new_bv(id) new_bv_gen(parser, (id))   956 #define local_push(top) local_push_gen(parser,(top))   958 #define local_pop() local_pop_gen(parser)   960 #define local_var(id) local_var_gen(parser, (id))   962 #define arg_var(id) arg_var_gen(parser, (id))   964 #define local_id_ref(id, vidp) local_id_gen(parser, (id), &(vidp))   965 #define local_id(id) local_id_gen(parser, (id), NULL)   967 #define internal_id() internal_id_gen(parser)   970 #define dyna_push() dyna_push_gen(parser)   972 #define dyna_pop(node) dyna_pop_gen(parser, (node))   974 #define dyna_in_block() dyna_in_block_gen(parser)   975 #define dyna_var(id) local_var(id)   977 #define dvar_defined_ref(id, vidp) dvar_defined_gen(parser, (id), &(vidp))   978 #define dvar_defined(id) dvar_defined_gen(parser, (id), NULL)   980 #define dvar_curr(id) dvar_curr_gen(parser, (id))   983 #define lvar_defined(id) lvar_defined_gen(parser, (id))   986 # define METHOD_NOT idNOT   988 # define METHOD_NOT '!'   991 #define RE_OPTION_ONCE (1<<16)   992 #define RE_OPTION_ENCODING_SHIFT 8   993 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)   994 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)   995 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)   996 #define RE_OPTION_MASK  0xff   997 #define RE_OPTION_ARG_ENCODING_NONE 32   999 #define NODE_STRTERM NODE_ZARRAY          1000 #define NODE_HEREDOC NODE_ARRAY           1001 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))  1002 #define nd_func u1.id  1003 #if SIZEOF_SHORT == 2  1004 #define nd_term(node) ((signed short)(node)->u2.id)  1006 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)  1008 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)  1009 #define nd_nest u3.cnt  1011 #define TOKEN2ID(tok) ( \  1012     tTOKEN_LOCAL_BEGIN<(tok)&&(tok)<tTOKEN_LOCAL_END ? TOKEN2LOCALID(tok) : \  1013     tTOKEN_INSTANCE_BEGIN<(tok)&&(tok)<tTOKEN_INSTANCE_END ? TOKEN2INSTANCEID(tok) : \  1014     tTOKEN_GLOBAL_BEGIN<(tok)&&(tok)<tTOKEN_GLOBAL_END ? TOKEN2GLOBALID(tok) : \  1015     tTOKEN_CONST_BEGIN<(tok)&&(tok)<tTOKEN_CONST_END ? TOKEN2CONSTID(tok) : \  1016     tTOKEN_CLASS_BEGIN<(tok)&&(tok)<tTOKEN_CLASS_END ? TOKEN2CLASSID(tok) : \  1017     tTOKEN_ATTRSET_BEGIN<(tok)&&(tok)<tTOKEN_ATTRSET_END ? TOKEN2ATTRSETID(tok) : \  1018     ((tok) / ((tok)<tPRESERVED_ID_END && ((tok)>=128 || rb_ispunct(tok)))))  1023 #define RIPPER_VERSION "0.1.0"  1025 static inline VALUE intern_sym(
const char *
name);
  1038 #define ripper_error() ripper_error_gen(parser)  1040 #define dispatch0(n)            ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))  1041 #define dispatch1(n,a)          ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))  1042 #define dispatch2(n,a,b)        ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))  1043 #define dispatch3(n,a,b,c)      ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))  1044 #define dispatch4(n,a,b,c,d)    ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))  1045 #define dispatch5(n,a,b,c,d,e)  ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))  1046 #define dispatch7(n,a,b,c,d,e,f,g) ripper_dispatch7(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e), (f), (g))  1048 #define yyparse ripper_yyparse  1050 #define ID2VAL(id) STATIC_ID2SYM(id)  1051 #define TOKEN2VAL(t) ID2VAL(TOKEN2ID(t))  1052 #define KWD2EID(t, v) ripper_new_yylval(keyword_##t, get_value(v), 0)  1054 #define arg_new() dispatch0(args_new)  1055 #define arg_add(l,a) dispatch2(args_add, (l), (a))  1056 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))  1057 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))  1058 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))  1059 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))  1060 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))  1062 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))  1063 #define mrhs_new() dispatch0(mrhs_new)  1064 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))  1065 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))  1067 #define mlhs_new() dispatch0(mlhs_new)  1068 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))  1069 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))  1070 #define mlhs_add_post(l,a) dispatch2(mlhs_add_post, (l), (a))  1072 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \  1073         dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk))  1075 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))  1077 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))  1078 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))  1079 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))  1081 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))  1088     return params_new(f, o, r, p, k, kr, escape_Qundef(b));
  1090 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t))  1097 #define new_args_tail(k,kr,b,column) new_args_tail_gen(parser, (k),(kr),(b))  1099 #define new_defined(expr,column) dispatch1(defined, (expr))  1102 # define heredoc_dedent(str) parser_heredoc_dedent(parser, (str))  1107 #define ID2VAL(id) ((VALUE)(id))  1108 #define TOKEN2VAL(t) ID2VAL(t)  1109 #define KWD2EID(t, v) keyword_##t  1115 # define ifndef_ripper(x) (x)  1118 # define Qnull Qundef  1119 # define ifndef_ripper(x)  1122 # define rb_warn0(fmt)         WARN_CALL(WARN_ARGS(fmt, 1))  1123 # define rb_warn1(fmt,a)       WARN_CALL(WARN_ARGS(fmt, 2), (a))  1124 # define rb_warn2(fmt,a,b)     WARN_CALL(WARN_ARGS(fmt, 3), (a), (b))  1125 # define rb_warn3(fmt,a,b,c)   WARN_CALL(WARN_ARGS(fmt, 4), (a), (b), (c))  1126 # define rb_warn4(fmt,a,b,c,d) WARN_CALL(WARN_ARGS(fmt, 5), (a), (b), (c), (d))  1127 # define rb_warning0(fmt)         WARNING_CALL(WARNING_ARGS(fmt, 1))  1128 # define rb_warning1(fmt,a)       WARNING_CALL(WARNING_ARGS(fmt, 2), (a))  1129 # define rb_warning2(fmt,a,b)     WARNING_CALL(WARNING_ARGS(fmt, 3), (a), (b))  1130 # define rb_warning3(fmt,a,b,c)   WARNING_CALL(WARNING_ARGS(fmt, 4), (a), (b), (c))  1131 # define rb_warning4(fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS(fmt, 5), (a), (b), (c), (d))  1132 # define rb_warn0L(l,fmt)         WARN_CALL(WARN_ARGS_L(l, fmt, 1))  1133 # define rb_warn1L(l,fmt,a)       WARN_CALL(WARN_ARGS_L(l, fmt, 2), (a))  1134 # define rb_warn2L(l,fmt,a,b)     WARN_CALL(WARN_ARGS_L(l, fmt, 3), (a), (b))  1135 # define rb_warn3L(l,fmt,a,b,c)   WARN_CALL(WARN_ARGS_L(l, fmt, 4), (a), (b), (c))  1136 # define rb_warn4L(l,fmt,a,b,c,d) WARN_CALL(WARN_ARGS_L(l, fmt, 5), (a), (b), (c), (d))  1137 # define rb_warning0L(l,fmt)         WARNING_CALL(WARNING_ARGS_L(l, fmt, 1))  1138 # define rb_warning1L(l,fmt,a)       WARNING_CALL(WARNING_ARGS_L(l, fmt, 2), (a))  1139 # define rb_warning2L(l,fmt,a,b)     WARNING_CALL(WARNING_ARGS_L(l, fmt, 3), (a), (b))  1140 # define rb_warning3L(l,fmt,a,b,c)   WARNING_CALL(WARNING_ARGS_L(l, fmt, 4), (a), (b), (c))  1141 # define rb_warning4L(l,fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS_L(l, fmt, 5), (a), (b), (c), (d))  1143 static ID id_warn, id_warning, id_gets;
  1144 # define WARN_S_L(s,l) STR_NEW(s,l)  1145 # define WARN_S(s) STR_NEW2(s)  1146 # define WARN_I(i) INT2NUM(i)  1147 # define WARN_ID(i) rb_id2str(i)  1148 # define PRIsWARN "s"  1149 # define WARN_ARGS(fmt,n) parser->value, id_warn, n, rb_usascii_str_new_lit(fmt)  1150 # define WARN_ARGS_L(l,fmt,n) WARN_ARGS(fmt,n)  1151 # ifdef HAVE_VA_ARGS_MACRO  1152 # define WARN_CALL(...) rb_funcall(__VA_ARGS__)  1154 # define WARN_CALL rb_funcall  1156 # define WARNING_ARGS(fmt,n) parser->value, id_warning, n, rb_usascii_str_new_lit(fmt)  1157 # define WARNING_ARGS_L(l, fmt,n) WARNING_ARGS(fmt,n)  1158 # ifdef HAVE_VA_ARGS_MACRO  1159 # define WARNING_CALL(...) rb_funcall(__VA_ARGS__)  1161 # define WARNING_CALL rb_funcall  1164 # define compile_error ripper_compile_error  1165 # define PARSER_ARG parser,  1167 # define WARN_S_L(s,l) s  1168 # define WARN_S(s) s  1169 # define WARN_I(i) i  1170 # define WARN_ID(i) rb_id2name(i)  1171 # define PRIsWARN PRIsVALUE  1172 # define WARN_ARGS(fmt,n) WARN_ARGS_L(ruby_sourceline,fmt,n)  1173 # define WARN_ARGS_L(l,fmt,n) ruby_sourcefile, (l), (fmt)  1174 # define WARN_CALL rb_compile_warn  1175 # define WARNING_ARGS(fmt,n) WARN_ARGS(fmt,n)  1176 # define WARNING_ARGS_L(l,fmt,n) WARN_ARGS_L(l,fmt,n)  1177 # define WARNING_CALL rb_compile_warning  1179 # define compile_error parser_compile_error  1180 # define PARSER_ARG parser,  1188 #define YYMAXDEPTH 10000  1194 #define token_info_push(token) token_info_push_gen(parser, (token), rb_strlen_lit(token))  1195 #define token_info_pop(token) token_info_pop_gen(parser, (token), rb_strlen_lit(token))  1204 #ifdef YYERROR_VERBOSE  1205 # undef YYERROR_VERBOSE  1206 # define YYERROR_VERBOSE 1  1208 # define YYERROR_VERBOSE 0  1212 #ifndef YYTOKEN_TABLE  1213 # define YYTOKEN_TABLE 0  1216 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED  1218 #line 902 "ripper.y"
  1224     const struct vtable *vars;
  1227 #line 1228 "ripper.c"  1229 # define yystype YYSTYPE   1230 # define YYSTYPE_IS_DECLARED 1  1231 # define YYSTYPE_IS_TRIVIAL 1  1234 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED  1242 # define yyltype YYLTYPE   1243 # define YYLTYPE_IS_DECLARED 1  1244 # define YYLTYPE_IS_TRIVIAL 1  1252 #line 1253 "ripper.c"  1266 #elif (defined __STDC__ || defined __C99__FUNC__ \  1267      || defined __cplusplus || defined _MSC_VER)  1273 #ifdef YYTYPE_UINT16  1286 # ifdef __SIZE_TYPE__  1287 #  define YYSIZE_T __SIZE_TYPE__  1288 # elif defined size_t  1289 #  define YYSIZE_T size_t  1290 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \  1291      || defined __cplusplus || defined _MSC_VER)  1292 #  include <stddef.h>   1293 #  define YYSIZE_T size_t  1295 #  define YYSIZE_T unsigned int  1299 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)  1302 # if defined YYENABLE_NLS && YYENABLE_NLS  1304 #   include <libintl.h>   1305 #   define YY_(msgid) dgettext ("bison-runtime", msgid)  1309 #  define YY_(msgid) msgid  1314 #if ! defined lint || defined __GNUC__  1315 # define YYUSE(e) ((void) (e))  1322 # define YYID(n) (n)  1324 #if (defined __STDC__ || defined __C99__FUNC__ \  1325      || defined __cplusplus || defined _MSC_VER)  1338 #if ! defined yyoverflow || YYERROR_VERBOSE  1342 # ifdef YYSTACK_USE_ALLOCA  1343 #  if YYSTACK_USE_ALLOCA  1345 #    define YYSTACK_ALLOC __builtin_alloca  1346 #   elif defined __BUILTIN_VA_ARG_INCR  1347 #    include <alloca.h>   1349 #    define YYSTACK_ALLOC __alloca  1350 #   elif defined _MSC_VER  1351 #    include <malloc.h>   1352 #    define alloca _alloca  1354 #    define YYSTACK_ALLOC alloca  1355 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \  1356      || defined __cplusplus || defined _MSC_VER)  1357 #     include <stdlib.h>   1359 #      define _STDLIB_H 1  1366 # ifdef YYSTACK_ALLOC  1368 #  define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))  1369 #  ifndef YYSTACK_ALLOC_MAXIMUM  1374 #   define YYSTACK_ALLOC_MAXIMUM 4032   1377 #  define YYSTACK_ALLOC YYMALLOC  1378 #  define YYSTACK_FREE YYFREE  1379 #  ifndef YYSTACK_ALLOC_MAXIMUM  1380 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM  1382 #  if (defined __cplusplus && ! defined _STDLIB_H \  1383        && ! ((defined YYMALLOC || defined malloc) \  1384              && (defined YYFREE || defined free)))  1385 #   include <stdlib.h>   1387 #    define _STDLIB_H 1  1391 #   define YYMALLOC malloc  1392 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \  1393      || defined __cplusplus || defined _MSC_VER)  1398 #   define YYFREE free  1399 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \  1400      || defined __cplusplus || defined _MSC_VER)  1408 #if (! defined yyoverflow \  1409      && (! defined __cplusplus \  1410          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \  1411              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))  1422 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)  1426 # define YYSTACK_BYTES(N) \  1427      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \  1428       + 2 * YYSTACK_GAP_MAXIMUM)  1433 #  if defined __GNUC__ && 1 < __GNUC__  1434 #   define YYCOPY(To, From, Count) \  1435       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))  1437 #   define YYCOPY(To, From, Count)              \  1441           for (yyi = 0; yyi < (Count); yyi++)   \  1442             (To)[yyi] = (From)[yyi];            \  1453 # define YYSTACK_RELOCATE(Stack)                                        \  1456         YYSIZE_T yynewbytes;                                            \  1457         YYCOPY (&yyptr->Stack, Stack, yysize);                          \  1458         Stack = &yyptr->Stack;                                          \  1459         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \  1460         yyptr += yynewbytes / sizeof (*yyptr);                          \  1469 #define YYLAST   11649  1472 #define YYNTOKENS  146  1476 #define YYNRULES  645  1478 #define YYNSTATES  1086  1481 #define YYUNDEFTOK  2  1482 #define YYMAXUTOK   352  1484 #define YYTRANSLATE(YYX)                                                \  1485   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)  1488 static const yytype_uint8 yytranslate[] =
  1490        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1491      145,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1492        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1493        2,     2,   143,   131,     2,     2,     2,   129,   124,     2,
  1494      139,   140,   127,   125,   137,   126,   144,   128,     2,     2,
  1495        2,     2,     2,     2,     2,     2,     2,     2,   119,   142,
  1496      121,   117,   120,   118,     2,     2,     2,     2,     2,     2,
  1497        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1498        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1499        2,   136,     2,   141,   123,     2,   138,     2,     2,     2,
  1500        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1501        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1502        2,     2,     2,   134,   122,   135,   132,     2,    81,    82,
  1503       68,    69,    70,    71,    85,    86,    76,    75,    72,    73,
  1504       74,    79,    80,    83,    84,    88,    77,    78,    87,     2,
  1505        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1506        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1507        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1508        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1509        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1510        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1511        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1512        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1513        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1514        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  1515        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
  1516        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
  1517       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
  1518       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
  1519       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
  1520       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
  1521       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
  1522       65,    66,    67,    89,    90,    91,    92,    93,    94,    95,
  1523       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
  1524      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
  1531 static const yytype_uint16 yyprhs[] =
  1533        0,     0,     3,     4,     7,    10,    12,    14,    18,    21,
  1534       23,    24,    30,    35,    38,    40,    42,    46,    49,    51,
  1535       52,    58,    59,    64,    68,    72,    76,    79,    83,    87,
  1536       91,    95,    99,   104,   106,   110,   114,   118,   120,   124,
  1537      128,   135,   141,   147,   153,   159,   163,   165,   169,   171,
  1538      173,   177,   181,   185,   188,   190,   192,   194,   196,   198,
  1539      203,   204,   209,   211,   214,   218,   223,   229,   234,   240,
  1540      243,   246,   249,   252,   255,   257,   261,   263,   267,   269,
  1541      272,   276,   282,   285,   290,   293,   298,   300,   304,   306,
  1542      310,   313,   317,   319,   323,   325,   327,   332,   336,   340,
  1543      344,   348,   351,   353,   355,   357,   362,   366,   370,   374,
  1544      378,   381,   383,   385,   387,   390,   392,   396,   398,   400,
  1545      402,   404,   406,   408,   410,   412,   414,   416,   417,   422,
  1546      424,   426,   428,   430,   432,   434,   436,   438,   440,   442,
  1547      444,   446,   448,   450,   452,   454,   456,   458,   460,   462,
  1548      464,   466,   468,   470,   472,   474,   476,   478,   480,   482,
  1549      484,   486,   488,   490,   492,   494,   496,   498,   500,   502,
  1550      504,   506,   508,   510,   512,   514,   516,   518,   520,   522,
  1551      524,   526,   528,   530,   532,   534,   536,   538,   540,   542,
  1552      544,   546,   548,   550,   552,   554,   556,   558,   560,   562,
  1553      564,   568,   572,   579,   585,   591,   597,   603,   608,   612,
  1554      616,   620,   624,   628,   632,   636,   640,   644,   649,   652,
  1555      655,   659,   663,   667,   671,   673,   677,   681,   685,   689,
  1556      693,   696,   699,   703,   707,   711,   715,   716,   721,   728,
  1557      730,   732,   734,   736,   738,   742,   746,   748,   750,   753,
  1558      758,   761,   763,   767,   771,   773,   775,   777,   779,   782,
  1559      787,   790,   792,   795,   798,   803,   805,   806,   809,   812,
  1560      815,   817,   819,   822,   826,   831,   833,   835,   839,   844,
  1561      847,   849,   851,   853,   855,   857,   859,   861,   863,   865,
  1562      867,   869,   870,   875,   876,   880,   881,   882,   888,   892,
  1563      896,   899,   903,   907,   909,   914,   918,   920,   921,   928,
  1564      933,   937,   940,   942,   945,   948,   955,   962,   963,   964,
  1565      972,   973,   974,   982,   988,   993,   994,   995,  1005,  1006,
  1566     1013,  1014,  1022,  1023,  1029,  1030,  1031,  1039,  1040,  1041,
  1567     1051,  1053,  1055,  1057,  1059,  1061,  1063,  1065,  1067,  1069,
  1568     1071,  1073,  1075,  1077,  1079,  1081,  1083,  1085,  1087,  1090,
  1569     1092,  1094,  1096,  1102,  1104,  1107,  1109,  1111,  1113,  1117,
  1570     1119,  1123,  1125,  1130,  1137,  1141,  1147,  1150,  1155,  1157,
  1571     1161,  1166,  1169,  1172,  1174,  1177,  1178,  1185,  1194,  1199,
  1572     1206,  1211,  1214,  1221,  1224,  1229,  1236,  1239,  1244,  1247,
  1573     1252,  1254,  1256,  1258,  1262,  1264,  1269,  1271,  1276,  1278,
  1574     1282,  1284,  1286,  1287,  1288,  1289,  1290,  1297,  1302,  1304,
  1575     1308,  1312,  1313,  1318,  1321,  1326,  1332,  1338,  1341,  1342,
  1576     1348,  1349,  1355,  1359,  1360,  1365,  1366,  1371,  1374,  1376,
  1577     1381,  1382,  1387,  1388,  1393,  1394,  1395,  1400,  1401,  1402,
  1578     1407,  1413,  1415,  1417,  1424,  1426,  1428,  1430,  1432,  1435,
  1579     1437,  1440,  1442,  1444,  1446,  1448,  1450,  1452,  1454,  1457,
  1580     1461,  1465,  1469,  1473,  1477,  1478,  1482,  1484,  1487,  1491,
  1581     1495,  1496,  1500,  1504,  1508,  1512,  1516,  1517,  1521,  1522,
  1582     1526,  1527,  1530,  1531,  1534,  1535,  1538,  1540,  1541,  1545,
  1583     1546,  1547,  1548,  1549,  1550,  1559,  1561,  1563,  1565,  1567,
  1584     1570,  1572,  1574,  1576,  1578,  1582,  1584,  1587,  1589,  1591,
  1585     1593,  1595,  1597,  1599,  1601,  1603,  1605,  1607,  1609,  1611,
  1586     1613,  1615,  1617,  1619,  1621,  1623,  1625,  1627,  1629,  1631,
  1587     1632,  1637,  1638,  1642,  1643,  1647,  1652,  1655,  1658,  1660,
  1588     1663,  1664,  1671,  1680,  1685,  1692,  1697,  1704,  1707,  1712,
  1589     1719,  1722,  1727,  1730,  1735,  1737,  1738,  1740,  1742,  1744,
  1590     1746,  1748,  1750,  1752,  1754,  1758,  1760,  1764,  1766,  1769,
  1591     1771,  1774,  1776,  1778,  1782,  1784,  1788,  1790,  1792,  1795,
  1592     1797,  1801,  1805,  1807,  1811,  1813,  1817,  1819,  1821,  1824,
  1593     1826,  1828,  1830,  1833,  1836,  1838,  1840,  1841,  1846,  1848,
  1594     1851,  1853,  1857,  1861,  1864,  1869,  1872,  1874,  1876,  1878,
  1595     1880,  1882,  1884,  1886,  1888,  1890,  1892,  1894,  1896,  1898,
  1596     1900,  1902,  1904,  1905,  1907,  1908,  1910,  1913,  1916,  1917,
  1597     1919,  1921,  1923,  1925,  1927,  1930
  1601 static const yytype_int16 yyrhs[] =
  1603      147,     0,    -1,    -1,   148,   149,    -1,   150,   357,    -1,
  1604      364,    -1,   151,    -1,   150,   363,   151,    -1,     1,   151,
  1605       -1,   158,    -1,    -1,    47,   152,   134,   149,   135,    -1,
  1606      154,   278,   239,   281,    -1,   155,   357,    -1,   364,    -1,
  1607      156,    -1,   155,   363,   156,    -1,     1,   158,    -1,   158,
  1608       -1,    -1,    47,   157,   134,   149,   135,    -1,    -1,    45,
  1609      182,   159,   182,    -1,    45,    54,    54,    -1,    45,    54,
  1610       66,    -1,    45,    54,    65,    -1,     6,   183,    -1,   158,
  1611       40,   163,    -1,   158,    41,   163,    -1,   158,    42,   163,
  1612       -1,   158,    43,   163,    -1,   158,    44,   158,    -1,    48,
  1613      134,   154,   135,    -1,   160,    -1,   170,   117,   164,    -1,
  1614      177,   117,   204,    -1,   170,   117,   203,    -1,   162,    -1,
  1615      177,   117,   161,    -1,   316,    90,   161,    -1,   224,   136,
  1616      196,   360,    90,   161,    -1,   224,   355,    52,    90,   161,
  1617       -1,   224,   355,    56,    90,   161,    -1,   224,    88,    56,
  1618       90,   161,    -1,   224,    88,    52,    90,   161,    -1,   317,
  1619       90,   161,    -1,   164,    -1,   164,    44,   158,    -1,   160,
  1620       -1,   164,    -1,   162,    37,   162,    -1,   162,    38,   162,
  1621       -1,    39,   358,   162,    -1,   131,   164,    -1,   187,    -1,
  1622      162,    -1,   169,    -1,   165,    -1,   261,    -1,   261,   356,
  1623      352,   198,    -1,    -1,    97,   167,   270,   135,    -1,   351,
  1624       -1,   168,   198,    -1,   168,   198,   166,    -1,   224,   355,
  1625      352,   198,    -1,   224,   355,   352,   198,   166,    -1,   224,
  1626       88,   352,   198,    -1,   224,    88,   352,   198,   166,    -1,
  1627       32,   198,    -1,    31,   198,    -1,    30,   197,    -1,    21,
  1628      197,    -1,    22,   197,    -1,   172,    -1,    92,   171,   359,
  1629       -1,   172,    -1,    92,   171,   359,    -1,   174,    -1,   174,
  1630      173,    -1,   174,    98,   176,    -1,   174,    98,   176,   137,
  1631      175,    -1,   174,    98,    -1,   174,    98,   137,   175,    -1,
  1632       98,   176,    -1,    98,   176,   137,   175,    -1,    98,    -1,
  1633       98,   137,   175,    -1,   176,    -1,    92,   171,   359,    -1,
  1634      173,   137,    -1,   174,   173,   137,    -1,   173,    -1,   175,
  1635      137,   173,    -1,   313,    -1,   314,    -1,   224,   136,   196,
  1636      360,    -1,   224,   355,    52,    -1,   224,    88,    52,    -1,
  1637      224,   355,    56,    -1,   224,    88,    56,    -1,    89,    56,
  1638       -1,   317,    -1,   313,    -1,   314,    -1,   224,   136,   196,
  1639      360,    -1,   224,   355,    52,    -1,   224,    88,    52,    -1,
  1640      224,   355,    56,    -1,   224,    88,    56,    -1,    89,    56,
  1641       -1,   317,    -1,    52,    -1,    56,    -1,    89,   178,    -1,
  1642      178,    -1,   224,    88,   178,    -1,    52,    -1,    56,    -1,
  1643       53,    -1,   185,    -1,   186,    -1,   180,    -1,   308,    -1,
  1644      181,    -1,   310,    -1,   182,    -1,    -1,   183,   137,   184,
  1645      182,    -1,   122,    -1,   123,    -1,   124,    -1,    71,    -1,
  1646       72,    -1,    73,    -1,    79,    -1,    80,    -1,   120,    -1,
  1647       75,    -1,   121,    -1,    76,    -1,    74,    -1,    85,    -1,
  1648       86,    -1,   125,    -1,   126,    -1,   127,    -1,    98,    -1,
  1649      128,    -1,   129,    -1,    70,    -1,    99,    -1,   131,    -1,
  1650      132,    -1,    68,    -1,    69,    -1,    83,    -1,    84,    -1,
  1651      138,    -1,    49,    -1,    50,    -1,    51,    -1,    47,    -1,
  1652       48,    -1,    45,    -1,    37,    -1,     7,    -1,    21,    -1,
  1653       16,    -1,     3,    -1,     5,    -1,    46,    -1,    26,    -1,
  1654       15,    -1,    14,    -1,    10,    -1,     9,    -1,    36,    -1,
  1655       20,    -1,    25,    -1,     4,    -1,    22,    -1,    34,    -1,
  1656       39,    -1,    38,    -1,    23,    -1,     8,    -1,    24,    -1,
  1657       30,    -1,    33,    -1,    32,    -1,    13,    -1,    35,    -1,
  1658        6,    -1,    17,    -1,    31,    -1,    11,    -1,    12,    -1,
  1659       18,    -1,    19,    -1,   177,   117,   193,    -1,   316,    90,
  1660      193,    -1,   224,   136,   196,   360,    90,   193,    -1,   224,
  1661      355,    52,    90,   193,    -1,   224,   355,    56,    90,   193,
  1662       -1,   224,    88,    52,    90,   193,    -1,   224,    88,    56,
  1663       90,   193,    -1,    89,    56,    90,   193,    -1,   317,    90,
  1664      193,    -1,   187,    81,   187,    -1,   187,    82,   187,    -1,
  1665      187,   125,   187,    -1,   187,   126,   187,    -1,   187,   127,
  1666      187,    -1,   187,   128,   187,    -1,   187,   129,   187,    -1,
  1667      187,    70,   187,    -1,   130,   312,    70,   187,    -1,    68,
  1668      187,    -1,    69,   187,    -1,   187,   122,   187,    -1,   187,
  1669      123,   187,    -1,   187,   124,   187,    -1,   187,    71,   187,
  1670       -1,   190,    -1,   187,    72,   187,    -1,   187,    73,   187,
  1671       -1,   187,    74,   187,    -1,   187,    79,   187,    -1,   187,
  1672       80,   187,    -1,   131,   187,    -1,   132,   187,    -1,   187,
  1673       85,   187,    -1,   187,    86,   187,    -1,   187,    77,   187,
  1674       -1,   187,    78,   187,    -1,    -1,    46,   358,   188,   187,
  1675       -1,   187,   118,   187,   358,   119,   187,    -1,   205,    -1,
  1676      120,    -1,   121,    -1,    75,    -1,    76,    -1,   187,   189,
  1677      187,    -1,   190,   189,   187,    -1,   187,    -1,   364,    -1,
  1678      202,   361,    -1,   202,   137,   349,   361,    -1,   349,   361,
  1679       -1,   187,    -1,   187,    44,   187,    -1,   139,   196,   359,
  1680       -1,   364,    -1,   194,    -1,   364,    -1,   197,    -1,   202,
  1681      137,    -1,   202,   137,   349,   137,    -1,   349,   137,    -1,
  1682      169,    -1,   202,   201,    -1,   349,   201,    -1,   202,   137,
  1683      349,   201,    -1,   200,    -1,    -1,   199,   197,    -1,   100,
  1684      191,    -1,   137,   200,    -1,   364,    -1,   191,    -1,    98,
  1685      191,    -1,   202,   137,   191,    -1,   202,   137,    98,   191,
  1686       -1,   204,    -1,   191,    -1,   202,   137,   191,    -1,   202,
  1687      137,    98,   191,    -1,    98,   191,    -1,   282,    -1,   283,
  1688       -1,   286,    -1,   287,    -1,   288,    -1,   293,    -1,   291,
  1689       -1,   294,    -1,   315,    -1,   317,    -1,    53,    -1,    -1,
  1690      225,   206,   153,   235,    -1,    -1,    93,   207,   359,    -1,
  1691       -1,    -1,    93,   208,   158,   209,   359,    -1,    92,   154,
  1692      140,    -1,   224,    88,    56,    -1,    89,    56,    -1,    95,
  1693      192,   141,    -1,    96,   348,   135,    -1,    30,    -1,    31,
  1694      139,   197,   359,    -1,    31,   139,   359,    -1,    31,    -1,
  1695       -1,    46,   358,   139,   210,   162,   359,    -1,    39,   139,
  1696      162,   359,    -1,    39,   139,   359,    -1,   168,   267,    -1,
  1697      262,    -1,   262,   267,    -1,   101,   252,    -1,   226,   163,
  1698      236,   154,   238,   235,    -1,   227,   163,   236,   154,   239,
  1699      235,    -1,    -1,    -1,   228,   211,   163,   237,   212,   154,
  1700      235,    -1,    -1,    -1,   229,   213,   163,   237,   214,   154,
  1701      235,    -1,   230,   163,   357,   276,   235,    -1,   230,   357,
  1702      276,   235,    -1,    -1,    -1,   231,   240,    25,   215,   163,
  1703      237,   216,   154,   235,    -1,    -1,   232,   179,   318,   217,
  1704      153,   235,    -1,    -1,   232,    85,   162,   218,   362,   153,
  1705      235,    -1,    -1,   233,   179,   219,   153,   235,    -1,    -1,
  1706       -1,   234,   180,   220,   221,   320,   153,   235,    -1,    -1,
  1707       -1,   234,   346,   354,   222,   180,   223,   320,   153,   235,
  1708       -1,    21,    -1,    22,    -1,    23,    -1,    24,    -1,   205,
  1709       -1,     7,    -1,    11,    -1,    12,    -1,    18,    -1,    19,
  1710       -1,    16,    -1,    20,    -1,     3,    -1,     4,    -1,     5,
  1711       -1,    10,    -1,   362,    -1,    13,    -1,   362,    13,    -1,
  1712      362,    -1,    27,    -1,   239,    -1,    14,   163,   236,   154,
  1713      238,    -1,   364,    -1,    15,   154,    -1,   177,    -1,   170,
  1714       -1,   326,    -1,    92,   243,   359,    -1,   241,    -1,   242,
  1715      137,   241,    -1,   242,    -1,   242,   137,    98,   326,    -1,
  1716      242,   137,    98,   326,   137,   242,    -1,   242,   137,    98,
  1717       -1,   242,   137,    98,   137,   242,    -1,    98,   326,    -1,
  1718       98,   326,   137,   242,    -1,    98,    -1,    98,   137,   242,
  1719       -1,   333,   137,   336,   345,    -1,   333,   345,    -1,   336,
  1720      345,    -1,   344,    -1,   137,   244,    -1,    -1,   329,   137,
  1721      339,   137,   342,   245,    -1,   329,   137,   339,   137,   342,
  1722      137,   329,   245,    -1,   329,   137,   339,   245,    -1,   329,
  1723      137,   339,   137,   329,   245,    -1,   329,   137,   342,   245,
  1724       -1,   329,   137,    -1,   329,   137,   342,   137,   329,   245,
  1725       -1,   329,   245,    -1,   339,   137,   342,   245,    -1,   339,
  1726      137,   342,   137,   329,   245,    -1,   339,   245,    -1,   339,
  1727      137,   329,   245,    -1,   342,   245,    -1,   342,   137,   329,
  1728      245,    -1,   244,    -1,   364,    -1,   248,    -1,   122,   249,
  1729      122,    -1,    78,    -1,   122,   246,   249,   122,    -1,   358,
  1730       -1,   358,   142,   250,   358,    -1,   251,    -1,   250,   137,
  1731      251,    -1,    52,    -1,   325,    -1,    -1,    -1,    -1,    -1,
  1732      253,   254,   257,   255,   256,   258,    -1,   139,   324,   249,
  1733      140,    -1,   324,    -1,   114,   154,   135,    -1,    29,   154,
  1734      235,    -1,    -1,    28,   260,   273,    10,    -1,   169,   259,
  1735       -1,   261,   356,   352,   195,    -1,   261,   356,   352,   195,
  1736      267,    -1,   261,   356,   352,   198,   259,    -1,   168,   194,
  1737       -1,    -1,   224,   355,   352,   263,   195,    -1,    -1,   224,
  1738       88,   352,   264,   194,    -1,   224,    88,   353,    -1,    -1,
  1739      224,   355,   265,   194,    -1,    -1,   224,    88,   266,   194,
  1740       -1,    32,   194,    -1,    32,    -1,   224,   136,   196,   360,
  1741       -1,    -1,   134,   268,   270,   135,    -1,    -1,    26,   269,
  1742      273,    10,    -1,    -1,    -1,   271,   272,   247,   154,    -1,
  1743       -1,    -1,   274,   275,   247,   153,    -1,    17,   202,   236,
  1744      154,   277,    -1,   239,    -1,   276,    -1,     8,   279,   280,
  1745      236,   154,   278,    -1,   364,    -1,   191,    -1,   204,    -1,
  1746      364,    -1,    91,   177,    -1,   364,    -1,     9,   154,    -1,
  1747      364,    -1,   311,    -1,   308,    -1,   310,    -1,   284,    -1,
  1748       64,    -1,   285,    -1,   284,   285,    -1,   103,   297,   113,
  1749       -1,   104,   298,   113,    -1,   105,   299,    67,    -1,   106,
  1750      143,   113,    -1,   106,   289,   113,    -1,    -1,   289,   290,
  1751      143,    -1,   300,    -1,   290,   300,    -1,   108,   143,   113,
  1752       -1,   108,   292,   113,    -1,    -1,   292,   290,   143,    -1,
  1753      107,   143,   113,    -1,   107,   295,   113,    -1,   109,   143,
  1754      113,    -1,   109,   296,   113,    -1,    -1,   295,    63,   143,
  1755       -1,    -1,   296,    63,   143,    -1,    -1,   297,   300,    -1,
  1756       -1,   298,   300,    -1,    -1,   299,   300,    -1,    63,    -1,
  1757       -1,   112,   301,   307,    -1,    -1,    -1,    -1,    -1,    -1,
  1758      110,   302,   303,   304,   305,   306,   154,   111,    -1,    54,
  1759       -1,    55,    -1,    57,    -1,   317,    -1,   102,   309,    -1,
  1760      180,    -1,    55,    -1,    54,    -1,    57,    -1,   102,   298,
  1761      113,    -1,   312,    -1,   130,   312,    -1,    59,    -1,    60,
  1762       -1,    61,    -1,    62,    -1,    52,    -1,    55,    -1,    54,
  1763       -1,    56,    -1,    57,    -1,    34,    -1,    33,    -1,    35,
  1764       -1,    36,    -1,    50,    -1,    49,    -1,    51,    -1,   313,
  1765       -1,   314,    -1,   313,    -1,   314,    -1,    65,    -1,    66,
  1766       -1,    -1,   121,   319,   163,   362,    -1,    -1,   139,   324,
  1767      359,    -1,    -1,   321,   324,   362,    -1,   334,   137,   336,
  1768      345,    -1,   334,   345,    -1,   336,   345,    -1,   344,    -1,
  1769      137,   322,    -1,    -1,   329,   137,   340,   137,   342,   323,
  1770       -1,   329,   137,   340,   137,   342,   137,   329,   323,    -1,
  1771      329,   137,   340,   323,    -1,   329,   137,   340,   137,   329,
  1772      323,    -1,   329,   137,   342,   323,    -1,   329,   137,   342,
  1773      137,   329,   323,    -1,   329,   323,    -1,   340,   137,   342,
  1774      323,    -1,   340,   137,   342,   137,   329,   323,    -1,   340,
  1775      323,    -1,   340,   137,   329,   323,    -1,   342,   323,    -1,
  1776      342,   137,   329,   323,    -1,   322,    -1,    -1,    56,    -1,
  1777       55,    -1,    54,    -1,    57,    -1,   325,    -1,    52,    -1,
  1778      326,    -1,   327,    -1,    92,   243,   359,    -1,   328,    -1,
  1779      329,   137,   328,    -1,    58,    -1,   330,   191,    -1,   330,
  1780       -1,   330,   224,    -1,   330,    -1,   332,    -1,   333,   137,
  1781      332,    -1,   331,    -1,   334,   137,   331,    -1,    70,    -1,
  1782       99,    -1,   335,    52,    -1,   335,    -1,   327,   117,   191,
  1783       -1,   327,   117,   224,    -1,   338,    -1,   339,   137,   338,
  1784       -1,   337,    -1,   340,   137,   337,    -1,   127,    -1,    98,
  1785       -1,   341,    52,    -1,   341,    -1,   124,    -1,   100,    -1,
  1786      343,    52,    -1,   137,   344,    -1,   364,    -1,   315,    -1,
  1787       -1,   139,   347,   162,   359,    -1,   364,    -1,   349,   361,
  1788       -1,   350,    -1,   349,   137,   350,    -1,   191,    91,   191,
  1789       -1,    58,   191,    -1,   103,   297,   115,   191,    -1,    99,
  1790      191,    -1,    52,    -1,    56,    -1,    53,    -1,    52,    -1,
  1791       56,    -1,    53,    -1,   185,    -1,    52,    -1,    53,    -1,
  1792      185,    -1,   144,    -1,    88,    -1,   144,    -1,    87,    -1,
  1793      355,    -1,    88,    -1,    -1,   363,    -1,    -1,   145,    -1,
  1794      358,   140,    -1,   358,   141,    -1,    -1,   145,    -1,   137,
  1795       -1,   142,    -1,   145,    -1,   362,    -1,   363,   142,    -1,
  1800 static const yytype_uint16 yyrline[] =
  1802        0,  1064,  1064,  1064,  1095,  1105,  1114,  1122,  1130,  1136,
  1803     1138,  1137,  1158,  1194,  1204,  1213,  1221,  1229,  1235,  1240,
  1804     1239,  1261,  1261,  1270,  1279,  1291,  1302,  1310,  1319,  1328,
  1805     1342,  1356,  1366,  1383,  1384,  1394,  1399,  1408,  1411,  1416,
  1806     1421,  1443,  1448,  1453,  1458,  1463,  1470,  1478,  1487,  1490,
  1807     1491,  1495,  1499,  1503,  1507,  1510,  1522,  1523,  1526,  1527,
  1808     1534,  1533,  1549,  1559,  1568,  1575,  1580,  1587,  1592,  1599,
  1809     1609,  1618,  1627,  1636,  1647,  1648,  1658,  1659,  1669,  1677,
  1810     1685,  1693,  1702,  1710,  1719,  1727,  1736,  1744,  1755,  1756,
  1811     1766,  1774,  1784,  1792,  1802,  1806,  1810,  1818,  1826,  1834,
  1812     1842,  1846,  1850,  1857,  1865,  1873,  1881,  1889,  1897,  1905,
  1813     1909,  1913,  1920,  1929,  1932,  1940,  1949,  1960,  1961,  1962,
  1814     1963,  1968,  1975,  1976,  1979,  1987,  1990,  1998,  1998,  2009,
  1815     2010,  2011,  2012,  2013,  2014,  2015,  2016,  2017,  2018,  2019,
  1816     2020,  2021,  2022,  2023,  2024,  2025,  2026,  2027,  2028,  2029,
  1817     2030,  2031,  2032,  2033,  2034,  2035,  2036,  2037,  2038,  2041,
  1818     2041,  2041,  2042,  2042,  2043,  2043,  2043,  2044,  2044,  2044,
  1819     2044,  2045,  2045,  2045,  2045,  2046,  2046,  2046,  2047,  2047,
  1820     2047,  2047,  2048,  2048,  2048,  2048,  2049,  2049,  2049,  2049,
  1821     2050,  2050,  2050,  2050,  2051,  2051,  2051,  2051,  2052,  2052,
  1822     2055,  2059,  2063,  2091,  2096,  2101,  2106,  2111,  2116,  2121,
  1823     2132,  2143,  2147,  2151,  2155,  2159,  2163,  2167,  2171,  2175,
  1824     2179,  2183,  2187,  2191,  2195,  2196,  2200,  2204,  2208,  2212,
  1825     2216,  2220,  2224,  2228,  2232,  2236,  2240,  2240,  2245,  2255,
  1826     2261,  2262,  2263,  2264,  2267,  2271,  2278,  2290,  2291,  2295,
  1827     2303,  2313,  2321,  2332,  2342,  2343,  2346,  2347,  2348,  2352,
  1828     2360,  2370,  2379,  2387,  2397,  2406,  2415,  2415,  2427,  2438,
  1829     2442,  2448,  2456,  2465,  2479,  2495,  2496,  2499,  2513,  2528,
  1830     2539,  2540,  2541,  2542,  2543,  2544,  2545,  2546,  2547,  2548,
  1831     2549,  2558,  2557,  2584,  2584,  2593,  2597,  2592,  2606,  2614,
  1832     2623,  2632,  2645,  2654,  2663,  2671,  2680,  2689,  2689,  2694,
  1833     2698,  2702,  2712,  2713,  2723,  2727,  2739,  2751,  2751,  2751,
  1834     2763,  2763,  2763,  2775,  2787,  2798,  2800,  2797,  2850,  2849,
  1835     2874,  2873,  2898,  2897,  2922,  2927,  2921,  2950,  2951,  2950,
  1836     2978,  2987,  2996,  3005,  3016,  3028,  3034,  3040,  3046,  3052,
  1837     3058,  3068,  3074,  3080,  3086,  3096,  3102,  3107,  3108,  3115,
  1838     3120,  3123,  3124,  3137,  3138,  3148,  3149,  3152,  3159,  3169,
  1839     3177,  3187,  3195,  3204,  3214,  3222,  3231,  3240,  3250,  3258,
  1840     3270,  3274,  3278,  3282,  3288,  3293,  3298,  3302,  3306,  3310,
  1841     3314,  3318,  3326,  3330,  3334,  3338,  3342,  3346,  3350,  3354,
  1842     3358,  3364,  3365,  3371,  3381,  3390,  3402,  3406,  3416,  3423,
  1843     3432,  3440,  3446,  3449,  3454,  3457,  3446,  3478,  3486,  3492,
  1844     3497,  3504,  3503,  3518,  3534,  3538,  3550,  3564,  3574,  3573,
  1845     3585,  3584,  3595,  3600,  3599,  3611,  3610,  3621,  3630,  3639,
  1846     3654,  3653,  3667,  3666,  3681,  3682,  3681,  3691,  3692,  3691,
  1847     3701,  3714,  3715,  3718,  3737,  3740,  3748,  3756,  3759,  3763,
  1848     3766,  3774,  3777,  3778,  3786,  3789,  3806,  3813,  3814,  3824,
  1849     3830,  3836,  3842,  3851,  3862,  3869,  3879,  3887,  3897,  3906,
  1850     3917,  3924,  3942,  3951,  3961,  3970,  3981,  3988,  4000,  4007,
  1851     4023,  4030,  4041,  4048,  4059,  4066,  4107,  4115,  4114,  4131,
  1852     4137,  4141,  4145,  4149,  4130,  4171,  4179,  4187,  4196,  4199,
  1853     4210,  4211,  4212,  4213,  4216,  4227,  4228,  4239,  4246,  4253,
  1854     4260,  4269,  4270,  4271,  4272,  4273,  4276,  4277,  4278,  4279,
  1855     4280,  4281,  4282,  4285,  4298,  4308,  4312,  4318,  4325,  4335,
  1856     4334,  4344,  4353,  4363,  4363,  4377,  4381,  4385,  4389,  4395,
  1857     4400,  4405,  4409,  4413,  4417,  4421,  4425,  4429,  4433,  4437,
  1858     4441,  4445,  4449,  4453,  4457,  4462,  4468,  4478,  4488,  4498,
  1859     4510,  4511,  4518,  4527,  4536,  4555,  4562,  4576,  4585,  4595,
  1860     4607,  4616,  4627,  4635,  4646,  4654,  4664,  4665,  4668,  4677,
  1861     4688,  4701,  4714,  4722,  4738,  4746,  4762,  4763,  4766,  4779,
  1862     4790,  4791,  4794,  4811,  4815,  4825,  4835,  4835,  4865,  4866,
  1863     4876,  4883,  4907,  4919,  4927,  4935,  4949,  4950,  4951,  4954,
  1864     4955,  4956,  4957,  4960,  4961,  4962,  4965,  4966,  4969,  4973,
  1865     4979,  4980,  4986,  4987,  4990,  4991,  4994,  4997,  5000,  5001,
  1866     5002,  5005,  5006,  5009,  5010,  5014
  1870 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE  1873 static const char *
const yytname[] =
  1875   "\"end-of-input\"", 
"error", 
"$undefined", 
"keyword_class",
  1876   "keyword_module", 
"keyword_def", 
"keyword_undef", 
"keyword_begin",
  1877   "keyword_rescue", 
"keyword_ensure", 
"keyword_end", 
"keyword_if",
  1878   "keyword_unless", 
"keyword_then", 
"keyword_elsif", 
"keyword_else",
  1879   "keyword_case", 
"keyword_when", 
"keyword_while", 
"keyword_until",
  1880   "keyword_for", 
"keyword_break", 
"keyword_next", 
"keyword_redo",
  1881   "keyword_retry", 
"keyword_in", 
"keyword_do", 
"keyword_do_cond",
  1882   "keyword_do_block", 
"keyword_do_LAMBDA", 
"keyword_return",
  1883   "keyword_yield", 
"keyword_super", 
"keyword_self", 
"keyword_nil",
  1884   "keyword_true", 
"keyword_false", 
"keyword_and", 
"keyword_or",
  1885   "keyword_not", 
"modifier_if", 
"modifier_unless", 
"modifier_while",
  1886   "modifier_until", 
"modifier_rescue", 
"keyword_alias", 
"keyword_defined",
  1887   "keyword_BEGIN", 
"keyword_END", 
"keyword__LINE__", 
"keyword__FILE__",
  1888   "keyword__ENCODING__", 
"tIDENTIFIER", 
"tFID", 
"tGVAR", 
"tIVAR",
  1889   "tCONSTANT", 
"tCVAR", 
"tLABEL", 
"tINTEGER", 
"tFLOAT", 
"tRATIONAL",
  1890   "tIMAGINARY", 
"tSTRING_CONTENT", 
"tCHAR", 
"tNTH_REF", 
"tBACK_REF",
  1891   "tREGEXP_END", 
"\"unary+\"", 
"\"unary-\"", 
"\"**\"", 
"\"<=>\"", 
"\"==\"",
  1892   "\"===\"", 
"\"!=\"", 
"\">=\"", 
"\"<=\"", 
"\"&&\"", 
"\"||\"", 
"\"=~\"",
  1893   "\"!~\"", 
"\"..\"", 
"\"...\"", 
"\"[]\"", 
"\"[]=\"", 
"\"<<\"", 
"\">>\"",
  1894   "\"&.\"", 
"\"::\"", 
"\":: at EXPR_BEG\"", 
"tOP_ASGN", 
"\"=>\"", 
"\"(\"",
  1895   "\"( arg\"", 
"\")\"", 
"\"[\"", 
"\"{\"", 
"\"{ arg\"", 
"\"*\"",
  1896   "\"**arg\"", 
"\"&\"", 
"\"->\"", 
"tSYMBEG", 
"tSTRING_BEG", 
"tXSTRING_BEG",
  1897   "tREGEXP_BEG", 
"tWORDS_BEG", 
"tQWORDS_BEG", 
"tSYMBOLS_BEG",
  1898   "tQSYMBOLS_BEG", 
"tSTRING_DBEG", 
"tSTRING_DEND", 
"tSTRING_DVAR",
  1899   "tSTRING_END", 
"tLAMBEG", 
"tLABEL_END", 
"tLOWEST", 
"'='", 
"'?'", 
"':'",
  1900   "'>'", 
"'<'", 
"'|'", 
"'^'", 
"'&'", 
"'+'", 
"'-'", 
"'*'", 
"'/'", 
"'%'",
  1901   "tUMINUS_NUM", 
"'!'", 
"'~'", 
"tLAST_TOKEN", 
"'{'", 
"'}'", 
"'['", 
"','",
  1902   "'`'", 
"'('", 
"')'", 
"']'", 
"';'", 
"' '", 
"'.'", 
"'\\n'", 
"$accept",
  1903   "program", 
"@1", 
"top_compstmt", 
"top_stmts", 
"top_stmt", 
"@2",
  1904   "bodystmt", 
"compstmt", 
"stmts", 
"stmt_or_begin", 
"@3", 
"stmt", 
"@4",
  1905   "command_asgn", 
"command_rhs", 
"expr", 
"expr_value", 
"command_call",
  1906   "block_command", 
"cmd_brace_block", 
"@5", 
"fcall", 
"command", 
"mlhs",
  1907   "mlhs_inner", 
"mlhs_basic", 
"mlhs_item", 
"mlhs_head", 
"mlhs_post",
  1908   "mlhs_node", 
"lhs", 
"cname", 
"cpath", 
"fname", 
"fsym", 
"fitem",
  1909   "undef_list", 
"@6", 
"op", 
"reswords", 
"arg", 
"@7", 
"relop", 
"rel_expr",
  1910   "arg_value", 
"aref_args", 
"arg_rhs", 
"paren_args", 
"opt_paren_args",
  1911   "opt_call_args", 
"call_args", 
"command_args", 
"@8", 
"block_arg",
  1912   "opt_block_arg", 
"args", 
"mrhs_arg", 
"mrhs", 
"primary", 
"@9", 
"@10",
  1913   "@11", 
"@12", 
"@13", 
"@14", 
"@15", 
"@16", 
"@17", 
"@18", 
"@19", 
"@20",
  1914   "@21", 
"@22", 
"@23", 
"@24", 
"@25", 
"@26", 
"primary_value", 
"k_begin",
  1915   "k_if", 
"k_unless", 
"k_while", 
"k_until", 
"k_case", 
"k_for", 
"k_class",
  1916   "k_module", 
"k_def", 
"k_end", 
"then", 
"do", 
"if_tail", 
"opt_else",
  1917   "for_var", 
"f_marg", 
"f_marg_list", 
"f_margs", 
"block_args_tail",
  1918   "opt_block_args_tail", 
"block_param", 
"opt_block_param",
  1919   "block_param_def", 
"opt_bv_decl", 
"bv_decls", 
"bvar", 
"lambda", 
"@27",
  1920   "@28", 
"@29", 
"@30", 
"f_larglist", 
"lambda_body", 
"do_block", 
"@31",
  1921   "block_call", 
"method_call", 
"@32", 
"@33", 
"@34", 
"@35", 
"brace_block",
  1922   "@36", 
"@37", 
"brace_body", 
"@38", 
"@39", 
"do_body", 
"@40", 
"@41",
  1923   "case_body", 
"cases", 
"opt_rescue", 
"exc_list", 
"exc_var", 
"opt_ensure",
  1924   "literal", 
"strings", 
"string", 
"string1", 
"xstring", 
"regexp", 
"words",
  1925   "word_list", 
"word", 
"symbols", 
"symbol_list", 
"qwords", 
"qsymbols",
  1926   "qword_list", 
"qsym_list", 
"string_contents", 
"xstring_contents",
  1927   "regexp_contents", 
"string_content", 
"@42", 
"@43", 
"@44", 
"@45", 
"@46",
  1928   "@47", 
"string_dvar", 
"symbol", 
"sym", 
"dsym", 
"numeric",
  1929   "simple_numeric", 
"user_variable", 
"keyword_variable", 
"var_ref",
  1930   "var_lhs", 
"backref", 
"superclass", 
"@48", 
"f_arglist", 
"@49",
  1931   "args_tail", 
"opt_args_tail", 
"f_args", 
"f_bad_arg", 
"f_norm_arg",
  1932   "f_arg_asgn", 
"f_arg_item", 
"f_arg", 
"f_label", 
"f_kw", 
"f_block_kw",
  1933   "f_block_kwarg", 
"f_kwarg", 
"kwrest_mark", 
"f_kwrest", 
"f_opt",
  1934   "f_block_opt", 
"f_block_optarg", 
"f_optarg", 
"restarg_mark",
  1935   "f_rest_arg", 
"blkarg_mark", 
"f_block_arg", 
"opt_f_block_arg",
  1936   "singleton", 
"@50", 
"assoc_list", 
"assocs", 
"assoc", 
"operation",
  1937   "operation2", 
"operation3", 
"dot_or_colon", 
"call_op", 
"call_op2",
  1938   "opt_terms", 
"opt_nl", 
"rparen", 
"rbracket", 
"trailer", 
"term", 
"terms",
  1946 static const yytype_uint16 yytoknum[] =
  1948        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
  1949      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
  1950      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
  1951      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
  1952      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
  1953      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
  1954      315,   316,   317,   318,   319,   320,   321,   322,   130,   131,
  1955      132,   133,   138,   139,   140,   137,   136,   146,   147,   141,
  1956      142,   128,   129,   143,   144,   134,   135,   148,   145,   323,
  1957      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
  1958      334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
  1959      344,   345,   346,   347,   348,   349,   350,    61,    63,    58,
  1960       62,    60,   124,    94,    38,    43,    45,    42,    47,    37,
  1961      351,    33,   126,   352,   123,   125,    91,    44,    96,    40,
  1962       41,    93,    59,    32,    46,    10
  1967 static const yytype_uint16 yyr1[] =
  1969        0,   146,   148,   147,   149,   150,   150,   150,   150,   151,
  1970      152,   151,   153,   154,   155,   155,   155,   155,   156,   157,
  1971      156,   159,   158,   158,   158,   158,   158,   158,   158,   158,
  1972      158,   158,   158,   158,   158,   158,   158,   158,   160,   160,
  1973      160,   160,   160,   160,   160,   160,   161,   161,   161,   162,
  1974      162,   162,   162,   162,   162,   163,   164,   164,   165,   165,
  1975      167,   166,   168,   169,   169,   169,   169,   169,   169,   169,
  1976      169,   169,   169,   169,   170,   170,   171,   171,   172,   172,
  1977      172,   172,   172,   172,   172,   172,   172,   172,   173,   173,
  1978      174,   174,   175,   175,   176,   176,   176,   176,   176,   176,
  1979      176,   176,   176,   177,   177,   177,   177,   177,   177,   177,
  1980      177,   177,   178,   178,   179,   179,   179,   180,   180,   180,
  1981      180,   180,   181,   181,   182,   182,   183,   184,   183,   185,
  1982      185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
  1983      185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
  1984      185,   185,   185,   185,   185,   185,   185,   185,   185,   186,
  1985      186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
  1986      186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
  1987      186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
  1988      186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
  1989      187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
  1990      187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
  1991      187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
  1992      187,   187,   187,   187,   187,   187,   188,   187,   187,   187,
  1993      189,   189,   189,   189,   190,   190,   191,   192,   192,   192,
  1994      192,   193,   193,   194,   195,   195,   196,   196,   196,   196,
  1995      196,   197,   197,   197,   197,   197,   199,   198,   200,   201,
  1996      201,   202,   202,   202,   202,   203,   203,   204,   204,   204,
  1997      205,   205,   205,   205,   205,   205,   205,   205,   205,   205,
  1998      205,   206,   205,   207,   205,   208,   209,   205,   205,   205,
  1999      205,   205,   205,   205,   205,   205,   205,   210,   205,   205,
  2000      205,   205,   205,   205,   205,   205,   205,   211,   212,   205,
  2001      213,   214,   205,   205,   205,   215,   216,   205,   217,   205,
  2002      218,   205,   219,   205,   220,   221,   205,   222,   223,   205,
  2003      205,   205,   205,   205,   224,   225,   226,   227,   228,   229,
  2004      230,   231,   232,   233,   234,   235,   236,   236,   236,   237,
  2005      237,   238,   238,   239,   239,   240,   240,   241,   241,   242,
  2006      242,   243,   243,   243,   243,   243,   243,   243,   243,   243,
  2007      244,   244,   244,   244,   245,   245,   246,   246,   246,   246,
  2008      246,   246,   246,   246,   246,   246,   246,   246,   246,   246,
  2009      246,   247,   247,   248,   248,   248,   249,   249,   250,   250,
  2010      251,   251,   253,   254,   255,   256,   252,   257,   257,   258,
  2011      258,   260,   259,   261,   261,   261,   261,   262,   263,   262,
  2012      264,   262,   262,   265,   262,   266,   262,   262,   262,   262,
  2013      268,   267,   269,   267,   271,   272,   270,   274,   275,   273,
  2014      276,   277,   277,   278,   278,   279,   279,   279,   280,   280,
  2015      281,   281,   282,   282,   282,   283,   284,   284,   284,   285,
  2016      286,   287,   288,   288,   289,   289,   290,   290,   291,   291,
  2017      292,   292,   293,   293,   294,   294,   295,   295,   296,   296,
  2018      297,   297,   298,   298,   299,   299,   300,   301,   300,   302,
  2019      303,   304,   305,   306,   300,   307,   307,   307,   307,   308,
  2020      309,   309,   309,   309,   310,   311,   311,   312,   312,   312,
  2021      312,   313,   313,   313,   313,   313,   314,   314,   314,   314,
  2022      314,   314,   314,   315,   315,   316,   316,   317,   317,   319,
  2023      318,   318,   320,   321,   320,   322,   322,   322,   322,   323,
  2024      323,   324,   324,   324,   324,   324,   324,   324,   324,   324,
  2025      324,   324,   324,   324,   324,   324,   325,   325,   325,   325,
  2026      326,   326,   327,   328,   328,   329,   329,   330,   331,   331,
  2027      332,   332,   333,   333,   334,   334,   335,   335,   336,   336,
  2028      337,   338,   339,   339,   340,   340,   341,   341,   342,   342,
  2029      343,   343,   344,   345,   345,   346,   347,   346,   348,   348,
  2030      349,   349,   350,   350,   350,   350,   351,   351,   351,   352,
  2031      352,   352,   352,   353,   353,   353,   354,   354,   355,   355,
  2032      356,   356,   357,   357,   358,   358,   359,   360,   361,   361,
  2033      361,   362,   362,   363,   363,   364
  2037 static const yytype_uint8 yyr2[] =
  2039        0,     2,     0,     2,     2,     1,     1,     3,     2,     1,
  2040        0,     5,     4,     2,     1,     1,     3,     2,     1,     0,
  2041        5,     0,     4,     3,     3,     3,     2,     3,     3,     3,
  2042        3,     3,     4,     1,     3,     3,     3,     1,     3,     3,
  2043        6,     5,     5,     5,     5,     3,     1,     3,     1,     1,
  2044        3,     3,     3,     2,     1,     1,     1,     1,     1,     4,
  2045        0,     4,     1,     2,     3,     4,     5,     4,     5,     2,
  2046        2,     2,     2,     2,     1,     3,     1,     3,     1,     2,
  2047        3,     5,     2,     4,     2,     4,     1,     3,     1,     3,
  2048        2,     3,     1,     3,     1,     1,     4,     3,     3,     3,
  2049        3,     2,     1,     1,     1,     4,     3,     3,     3,     3,
  2050        2,     1,     1,     1,     2,     1,     3,     1,     1,     1,
  2051        1,     1,     1,     1,     1,     1,     1,     0,     4,     1,
  2052        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2053        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2054        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2055        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2056        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2057        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2058        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2059        3,     3,     6,     5,     5,     5,     5,     4,     3,     3,
  2060        3,     3,     3,     3,     3,     3,     3,     4,     2,     2,
  2061        3,     3,     3,     3,     1,     3,     3,     3,     3,     3,
  2062        2,     2,     3,     3,     3,     3,     0,     4,     6,     1,
  2063        1,     1,     1,     1,     3,     3,     1,     1,     2,     4,
  2064        2,     1,     3,     3,     1,     1,     1,     1,     2,     4,
  2065        2,     1,     2,     2,     4,     1,     0,     2,     2,     2,
  2066        1,     1,     2,     3,     4,     1,     1,     3,     4,     2,
  2067        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2068        1,     0,     4,     0,     3,     0,     0,     5,     3,     3,
  2069        2,     3,     3,     1,     4,     3,     1,     0,     6,     4,
  2070        3,     2,     1,     2,     2,     6,     6,     0,     0,     7,
  2071        0,     0,     7,     5,     4,     0,     0,     9,     0,     6,
  2072        0,     7,     0,     5,     0,     0,     7,     0,     0,     9,
  2073        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2074        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
  2075        1,     1,     5,     1,     2,     1,     1,     1,     3,     1,
  2076        3,     1,     4,     6,     3,     5,     2,     4,     1,     3,
  2077        4,     2,     2,     1,     2,     0,     6,     8,     4,     6,
  2078        4,     2,     6,     2,     4,     6,     2,     4,     2,     4,
  2079        1,     1,     1,     3,     1,     4,     1,     4,     1,     3,
  2080        1,     1,     0,     0,     0,     0,     6,     4,     1,     3,
  2081        3,     0,     4,     2,     4,     5,     5,     2,     0,     5,
  2082        0,     5,     3,     0,     4,     0,     4,     2,     1,     4,
  2083        0,     4,     0,     4,     0,     0,     4,     0,     0,     4,
  2084        5,     1,     1,     6,     1,     1,     1,     1,     2,     1,
  2085        2,     1,     1,     1,     1,     1,     1,     1,     2,     3,
  2086        3,     3,     3,     3,     0,     3,     1,     2,     3,     3,
  2087        0,     3,     3,     3,     3,     3,     0,     3,     0,     3,
  2088        0,     2,     0,     2,     0,     2,     1,     0,     3,     0,
  2089        0,     0,     0,     0,     8,     1,     1,     1,     1,     2,
  2090        1,     1,     1,     1,     3,     1,     2,     1,     1,     1,
  2091        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2092        1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
  2093        4,     0,     3,     0,     3,     4,     2,     2,     1,     2,
  2094        0,     6,     8,     4,     6,     4,     6,     2,     4,     6,
  2095        2,     4,     2,     4,     1,     0,     1,     1,     1,     1,
  2096        1,     1,     1,     1,     3,     1,     3,     1,     2,     1,
  2097        2,     1,     1,     3,     1,     3,     1,     1,     2,     1,
  2098        3,     3,     1,     3,     1,     3,     1,     1,     2,     1,
  2099        1,     1,     2,     2,     1,     1,     0,     4,     1,     2,
  2100        1,     3,     3,     2,     4,     2,     1,     1,     1,     1,
  2101        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2102        1,     1,     0,     1,     0,     1,     2,     2,     0,     1,
  2109 static const yytype_uint16 yydefact[] =
  2111        2,     0,     0,     1,     0,   352,   353,   354,     0,   345,
  2112      346,   347,   350,   348,   349,   351,   340,   341,   342,   343,
  2113      303,   266,   266,   527,   526,   528,   529,   634,     0,   634,
  2114       10,     0,   531,   530,   532,   616,   618,   523,   522,   617,
  2115      525,   517,   518,   519,   520,   466,   537,   538,     0,     0,
  2116        0,     0,   295,   645,   645,    86,   412,   492,   490,   492,
  2117      494,   474,   486,   480,   488,     0,     0,     0,     3,   632,
  2118        6,     9,    33,    37,    49,    57,   266,    56,     0,    74,
  2119        0,    78,    88,     0,    54,   224,   239,     0,   291,     0,
  2120        0,   317,   320,   632,     0,     0,     0,     0,    58,   312,
  2121      280,   281,   465,   467,   282,   283,   284,   286,   285,   287,
  2122      463,   464,   462,   515,   533,   534,   288,     0,   289,    62,
  2123        5,     8,   169,   180,   170,   193,   166,   186,   176,   175,
  2124      196,   197,   191,   174,   173,   168,   194,   198,   199,   178,
  2125      167,   181,   185,   187,   179,   172,   188,   195,   190,   189,
  2126      182,   192,   177,   165,   184,   183,   164,   171,   162,   163,
  2127      159,   160,   161,   117,   119,   118,   154,   155,   150,   132,
  2128      133,   134,   141,   138,   140,   135,   136,   156,   157,   142,
  2129      143,   147,   151,   137,   139,   129,   130,   131,   144,   145,
  2130      146,   148,   149,   152,   153,   158,   122,   124,   126,    26,
  2131      120,   121,   123,   125,     0,     0,     0,     0,     0,     0,
  2132        0,   490,     0,   261,     0,   246,   271,    72,   265,   645,
  2133        0,   533,   534,     0,   289,   645,   610,    73,    71,   634,
  2134       70,     0,   645,   437,    69,   634,   635,     0,     0,    21,
  2135      236,     0,     0,   340,   341,   303,   306,   438,     0,   218,
  2136        0,   219,   300,     0,    19,     0,     0,   632,    15,    18,
  2137      634,    76,    14,   634,     0,     0,   638,   638,   247,     0,
  2138        0,   638,   608,   634,     0,     0,     0,    84,   344,     0,
  2139       94,    95,   102,   314,   413,   512,   511,   513,   510,     0,
  2140      509,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2141        0,     0,   516,    53,   230,   231,   641,   642,     4,   643,
  2142      633,     0,     0,     0,     0,     0,     0,     0,   442,   440,
  2143      427,    63,   311,   421,   423,     0,    90,     0,    82,    79,
  2144        0,     0,     0,     0,     0,     0,   242,   243,     0,     0,
  2145        0,     0,     0,     0,     0,     0,     0,   240,   241,     0,
  2146        0,     0,     0,     0,     0,     0,     0,     0,     0,   629,
  2147      435,   645,   628,   433,     0,    55,     0,     0,     0,     0,
  2148      632,     0,   633,     0,   366,   365,     0,     0,   533,   534,
  2149      289,   112,   113,     0,     0,   115,   541,     0,   533,   534,
  2150      289,   332,   189,   182,   192,   177,   159,   160,   161,   117,
  2151      118,   606,   334,   605,     0,   631,   630,     0,   313,   468,
  2152        0,     0,   127,   613,   300,   272,   615,   268,     0,     0,
  2153        0,     0,   262,   270,   435,   645,   433,     0,     0,     0,
  2154      263,   634,     0,   305,   267,   634,   257,   645,   645,   256,
  2155      634,   310,    52,    23,    25,    24,     0,   307,     0,     0,
  2156        0,   435,   433,     0,    17,     0,   634,   298,    13,   633,
  2157       75,   294,   296,   301,   640,   639,   248,   640,   250,   302,
  2158      609,     0,   101,   516,    92,    87,     0,   435,   645,   433,
  2159      565,   496,   499,   497,   514,   493,   469,   491,   470,   471,
  2160      495,   472,   473,     0,   476,   482,     0,   483,   478,   479,
  2161        0,   484,     0,   485,     0,   644,     7,    27,    28,    29,
  2162       30,    31,    50,    51,   447,   444,    60,    64,   447,     0,
  2163       34,   276,     0,    36,   275,   634,     0,    80,    91,    48,
  2164       38,    46,     0,   251,   271,   200,    35,     0,   289,   216,
  2165      223,   225,   226,   227,   234,   235,   228,   229,   209,   210,
  2166      232,   233,   634,   220,   221,   222,   211,   212,   213,   214,
  2167      215,   244,   245,   619,   621,   620,   622,     0,   266,   432,
  2168      634,   619,   621,   620,   622,     0,   266,     0,   645,   357,
  2169        0,   356,     0,     0,     0,     0,     0,     0,   300,   435,
  2170      645,   433,   325,   330,   112,   113,   114,   539,   328,   435,
  2171      645,   433,     0,     0,   335,   627,   626,   337,   619,   620,
  2172      266,    39,   251,   201,    45,   208,     0,     0,   612,     0,
  2173      273,   269,   645,   619,   620,   634,   619,   620,   611,   304,
  2174      636,   253,   258,   260,   309,    22,     0,   237,     0,    32,
  2175      430,   428,   207,     0,    77,    16,   634,   638,     0,    85,
  2176      623,   100,   634,   619,   620,   571,   568,   567,   566,   569,
  2177      577,   586,     0,   597,   587,   601,   600,   596,   565,   414,
  2178      564,   418,   570,   572,   573,   575,   550,   579,   584,   645,
  2179      589,   645,   594,   550,   599,   550,     0,   548,   500,     0,
  2180      475,   477,   487,   481,   489,   217,     0,   448,     0,   445,
  2181      444,     0,   279,     0,    89,    83,     0,     0,     0,     0,
  2182      435,   645,   433,     0,     0,     0,   436,    67,     0,     0,
  2183      439,     0,     0,   434,    65,   645,   355,   292,   645,   645,
  2184      454,   645,   358,   645,   360,   318,   359,   321,     0,     0,
  2185      324,   623,   299,   634,   619,   620,     0,     0,     0,     0,
  2186      112,   113,   116,   634,     0,   634,   543,     0,   255,   424,
  2187       59,   254,   128,   614,   274,   264,     0,     0,   439,     0,
  2188        0,   645,   634,    11,     0,   297,   249,    93,   439,     0,
  2189      378,   369,   371,   634,   367,   634,   415,     0,     0,   557,
  2190      578,     0,   546,   604,   588,     0,   547,     0,   560,   598,
  2191        0,   562,   602,   501,   505,   506,   507,   498,   508,   443,
  2192      645,   441,   645,     0,   422,     0,   277,    81,    47,   252,
  2193      619,   620,   634,   619,   620,     0,    44,   205,    43,   206,
  2194       68,   431,   637,     0,    41,   203,    42,   204,    66,   429,
  2195      455,   456,   645,   457,     0,   645,   363,     0,     0,   361,
  2196        0,     0,     0,   323,     0,     0,   439,     0,     0,     0,
  2197        0,   439,   333,   607,   565,     0,   565,   338,   425,   426,
  2198        0,   259,   308,    20,   634,     0,   376,     0,   574,     0,
  2199      406,     0,   590,   549,   576,   550,   550,   585,   645,   603,
  2200      550,   595,   550,   573,   550,   502,   404,   634,     0,   402,
  2201      401,     0,    61,   278,   439,   238,    40,   202,     0,     0,
  2202      459,   364,     0,    12,   461,     0,   315,   316,     0,     0,
  2203      273,   645,   326,     0,   540,   329,   634,     0,     0,   543,
  2204      368,   379,     0,   374,   370,   417,     0,     0,     0,   416,
  2205        0,   553,     0,   555,   545,     0,   561,     0,   558,   563,
  2206      503,   400,   634,     0,   573,   385,   581,   582,   645,   645,
  2207      592,   385,   385,   383,   449,   446,     0,   458,     0,   533,
  2208      534,   289,     0,   460,     0,   319,   322,   451,   452,   450,
  2209        0,   331,   542,   336,   544,     0,     0,   377,     0,   372,
  2210      410,   634,   408,   411,     0,     0,   550,   550,   550,   550,
  2211        0,     0,   403,     0,   391,   393,     0,   580,     0,   381,
  2212      382,     0,   396,     0,   398,   300,   435,   645,   433,   645,
  2213      645,     0,     0,   375,     0,     0,   407,   420,   419,   554,
  2214        0,   551,   556,   559,     0,   405,   591,   384,   385,   385,
  2215      300,   435,   583,   645,   385,   593,   385,   385,   623,   299,
  2216      634,   619,   620,   453,   362,   327,   339,   373,   409,   550,
  2217      504,     0,   388,     0,   390,   623,   299,   380,     0,   397,
  2218        0,   394,   399,   439,   552,   385,   385,   385,   385,   389,
  2219        0,   386,   392,   395,   385,   387
  2223 static const yytype_int16 yydefgoto[] =
  2225       -1,     1,     2,    68,    69,    70,   241,   577,   578,   257,
  2226      258,   455,   259,   446,    72,   530,    73,   366,    74,    75,
  2227      517,   700,    76,    77,    78,   260,    79,    80,    81,   475,
  2228       82,   214,   385,   386,   196,   197,   198,   199,   616,   566,
  2229      201,    84,   448,   357,    85,   216,   265,   535,   233,   759,
  2230      435,   436,   230,   231,   218,   422,   437,   523,   524,    86,
  2231      364,   263,   264,   646,   636,   368,   851,   369,   852,   746,
  2232      980,   749,   747,   602,   604,   756,   757,   929,   250,    88,
  2233       89,    90,    91,    92,    93,    94,    95,    96,    97,   727,
  2234      580,   735,   848,   849,   377,   781,   782,   783,  1037,  1005,
  2235      952,   898,   899,   879,   991,   992,   283,   284,   480,   786,
  2236      881,   669,   939,   324,   518,    98,    99,   725,   718,   575,
  2237      567,   322,   515,   514,   698,   699,   812,   696,   697,   810,
  2238      587,   979,   729,   842,   909,   913,   100,   101,   102,   103,
  2239      104,   105,   106,   295,   493,   107,   299,   108,   109,   297,
  2240      301,   291,   289,   293,   485,   689,   688,   803,   895,   950,
  2241     1000,   807,   110,   290,   111,   112,   113,   221,   222,   116,
  2242      223,   224,   598,   748,   865,   866,   883,   789,   671,   672,
  2243      673,   893,   675,   676,   677,   678,   957,   958,   679,   680,
  2244      681,   682,   960,   961,   683,   684,   685,   686,   687,   792,
  2245      404,   603,   270,   438,   226,   119,   640,   569,   607,   601,
  2246      407,   308,   432,   433,   720,   466,   581,   372,   262
  2251 #define YYPACT_NINF -884  2252 static const yytype_int16 yypact[] =
  2254     -884,    88,  2724,  -884,  7808,  -884,  -884,  -884,  7302,  -884,
  2255     -884,  -884,  -884,  -884,  -884,  -884,  7925,  7925,  -884,  -884,
  2256     7925,  4141,  3727,  -884,  -884,  -884,  -884,    47,  7166,   -14,
  2257     -884,    76,  -884,  -884,  -884,  3037,  3865,  -884,  -884,  3175,
  2258     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  9329,  9329,
  2259       64,  5501,   198,  8276,  8627,  7568,  -884,  7030,  -884,  -884,
  2260     -884,    19,    77,   111,   162,   796,  9446,  9329,  -884,   383,
  2261     -884,  1130,  -884,   400,  -884,  -884,   106,   121,    99,  -884,
  2262      187,  9680,  -884,   108,  3291,   472,   378,   566,  -884,  9563,
  2263     9563,  -884,  -884,  6402,  9793,  9906, 10019,  6893,   305,    84,
  2264     -884,  -884,   241,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2265     -884,  -884,  -884,  -884,   415,   621,  -884,   285,   653,  -884,
  2266     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2267     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2268     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2269     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2270     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2271     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2272     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2273     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,   240,
  2274     -884,  -884,  -884,  -884,   244,  9329,   332,  5633,  9329,  9329,
  2275     9329,  -884,  9329,  -884,   280,  3291,   312,  -884,  -884,   276,
  2276      610,    51,   355,   371,   387,   292,  -884,  -884,  -884,  6285,
  2277     -884,  7925,  7925,  -884,  -884,  6519,  -884,  9563,   647,  -884,
  2278      278,   361,  5765,  -884,  -884,  -884,   358,   401,   106,  -884,
  2279      693,   456,   714,  8042,  -884,  5501,   404,   383,  -884,  1130,
  2280      -14,   424,  -884,   -14,  8042,   408,   -21,   -11,  -884,   312,
  2281      422,   -11,  -884,   -14,   524,   796, 10132,   478,  -884,   731,
  2282      735,   758,   762,  -884,  -884,  -884,  -884,  -884,  -884,   729,
  2283     -884,   891,   911,   452,   496,   957,   518,    80,   532,   977,
  2284      539,   252,   564,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2285     6636,  9563,  9563,  9563,  9563,  8042,  9563,  9563,  -884,  -884,
  2286     -884,   568,  -884,  -884,  -884,  8744,  -884,  5501,  7688,   530,
  2287     8744,  9329,  9329,  9329,  9329,  9329,  -884,  -884,  9329,  9329,
  2288     9329,  9329,  9329,  9329,  9329,  9329,  9329,  -884,  -884,  9329,
  2289     9329,  9329,  9329,  9329,  9329,  9329,  9329,  9329,  9329,  -884,
  2290     2448,  7925,  -884, 10421,  4838,   400,   148,   148,  9563,  9563,
  2291      383,   658,   536,   630,  -884,  -884,   790,   663,    59,    75,
  2292       92,    67,   463,  9563,   356,  -884,   578,   795,  -884,  -884,
  2293     -884,  -884,     4,    27,    31,    97,   266,   327,   339,   344,
  2294      414,  -884,  -884,  -884,   443,  -884,  -884, 10502,  -884,  -884,
  2295     9446,  9446,  -884,  -884,   473,  -884,  -884,  -884,   699,  9329,
  2296     9329,  8159,  -884,  -884, 10583,  7925, 10664,  9329,  9329,  8393,
  2297     -884,   -14,   577,  -884,  -884,   -14,  -884,   567,   582,  -884,
  2298      157,  -884,  -884,  -884,  -884,  -884,  7302,  -884,  9329,  5908,
  2299      585, 10583, 10664,  9329,  1130,   591,   -14,  -884,  -884,  6753,
  2300      593,  -884,  1130,  -884,  8510,  -884,  -884,  8627,  -884,  -884,
  2301     -884,   278,   805,  -884,  -884,   604, 10132, 10745,  7925, 10826,
  2302     1469,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2303     -884,  -884,  -884,   331,  -884,  -884,   602,  -884,  -884,  -884,
  2304      493,  -884,   605,  -884,  9329,  -884,  -884,  -884,  -884,  -884,
  2305     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  9329,
  2306     -884,   612,   616,  -884,  -884,   -14, 10132,   619,  -884,  -884,
  2307     -884,   713,   644,  1889,  -884,  -884,  -884,   808,   489,   456,
  2308     2576,  2576,  2576,  2576,  3705,  3567,  2576,  2576,  3429,  3429,
  2309      544,   544, 11504,   835,   835,  1112,   352,   352,   456,   456,
  2310      456,  1188,  1188,  4279,  3313,  4555,  3451,   401,   627,  -884,
  2311      -14,   780,  -884,   893,  -884,   401,  4003,   763,   768,  -884,
  2312     4981,   769,  5267,   140,   140,   658,  8861,   763,    96, 10907,
  2313     7925, 10988,  -884,   400,  -884,   805,  -884,  -884,  -884, 11069,
  2314     7925, 10502,  4838,  9563,  -884,  -884,  -884,  -884,  -884,  -884,
  2315     2107,  -884,  3153,  -884,  -884,  -884,  7302,  9329,  -884,  9329,
  2316      312,  -884,   292,  2899,  3589,   -14,   504,   521,  -884,  -884,
  2317     -884,  -884,  8159,  8393,  -884,  -884,  9563,  3291,   650,  -884,
  2318     -884,  -884,  -884,  5908,    28,  -884,   -14,   -11, 10132,   604,
  2319      384,   596,   -14,   437,   444,  -884,  -884,  -884,  -884,  -884,
  2320     -884,  -884,  1169,  -884,  -884,  -884,  -884,  -884,  1619,  -884,
  2321     -884,  -884,  -884,  -884,   685,  -884,   670,  9329,  -884,   690,
  2322      778,   695,  -884,   698,   792,   710,   800,  -884,  -884,  1153,
  2323     -884,  -884,  -884,  -884,  -884,   456,   838,  -884,   725,  -884,
  2324     -884,   851,   727,  8978,  -884,   604, 10132,  8042,  9446,  9329,
  2325    11150,  7925, 11231,   746,  9446,  9446,  -884,   568,   401,   728,
  2326      959,  9446,  9446,  -884,   568,   401,  -884,  -884,  9095,   858,
  2327     -884,   440,  -884,   858,  -884,  -884,  -884,  -884,   763,   101,
  2328     -884,    65,   164,   -14,   112,   147,  9563,   383,  9563,  4838,
  2329      603,   596,  -884,   -14,   763,   157,   741,  7438,  -884,    84,
  2330      121,  -884,  -884,  -884,  -884,  -884,  9329,  9329,   527,  9329,
  2331     9329,   747,   157,  -884,   753,  -884,  -884,  -884,   495,  1169,
  2332      482,  -884,   752,   -14,  -884,   -14,  -884,  9329,  1619,  -884,
  2333     -884,    60,  -884,  -884,  -884,    33,  -884,  1619,  -884,  -884,
  2334     1227,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2335       18,  -884,    18,   756,  -884,  9329,   766,   604,  -884,  3291,
  2336     4417,  4693,   -14,   586,   599,  9329,  -884,  -884,  -884,  -884,
  2337     -884,  -884,  -884,  9446,  -884,  -884,  -884,  -884,  -884,  -884,
  2338      612,  -884,   816,  -884,  5384,   890,  -884,  9563,   763,  -884,
  2339      763,  6051,  6051,  -884,  9212,  5124,   154,   140,  4838,   383,
  2340      763,  -884,  -884,  -884,  1619,  4838,  1619,  -884,  -884,  -884,
  2341     9329,  8393,  -884,  -884,   -14,  1108,   776,  1314,  -884,   774,
  2342      786,    68,  -884,  -884,  -884,   801,   806,  -884,   695,  -884,
  2343      809,  -884,   811,  -884,   809,  -884,  -884,  1236,  4838,  -884,
  2344     -884,  5765,  -884,   813,   617,  3291,  -884,  -884, 10245,   148,
  2345     -884,  -884,  6051,  -884,  -884,   148,  -884,  -884,   763,   763,
  2346     -884,   308,  -884,   763,  -884,  -884,   -14,   763,   383,   741,
  2347     -884,   814,  1108,   744,  -884,  -884,  1195,  6051,  5765,  -884,
  2348     1619,  -884,  1227,  -884,  -884,  1227,  -884,  1227,  -884,  -884,
  2349     -884,  -884,   -14,   810,   850,   831, 10358,  -884,   841,   695,
  2350     -884,   843,   849,  -884,  -884,  -884,   877,  -884,   900,   208,
  2351      218,   234,  4838,  -884,  4981,  -884,  -884,  -884,  -884,  -884,
  2352     6051,  -884,  -884,  -884,  -884,  4838,  1108,   814,  1108,   853,
  2353     -884,   169,  -884,  -884,   763,   856,   809,   855,   809,   809,
  2354     6168,   875,  -884, 10358,  1619,  -884,   944,   918,    60,  -884,
  2355     -884,  1619,  -884,  1227,  -884,   256, 11312,  7925, 11393,   768,
  2356      440,   763,   763,   814,  1108,  1195,  -884,  -884,  -884,  -884,
  2357     1227,  -884,  -884,  -884,   897,  -884,   918,  -884,   865,   872,
  2358     -884, 11474,  -884,   695,   885,  -884,   889,   885,   260,   318,
  2359      -14,   348,   367,  -884,  -884,  -884,  -884,   814,  -884,   809,
  2360     -884,  1619,  -884,  1227,  -884,   888,   896,  -884,  1227,  -884,
  2361     1227,  -884,  -884,   368,  -884,   885,   909,   885,   885,  -884,
  2362     1227,  -884,  -884,  -884,   885,  -884
  2366 static const yytype_int16 yypgoto[] =
  2368     -884,  -884,  -884,  -380,  -884,    39,  -884,  -412,   -27,  -884,
  2369      569,  -884,    81,  -884,  -223,  -374,   -61,   -52,   -59,  -884,
  2370     -378,  -884,  2134,    -5,   961,  -169,    15,   -76,  -884,  -432,
  2371        0,  1449,  -319,   955,   -49,  -884,   -12,  -884,  -884,    32,
  2372     -884,   767,  -884,   973,  -884,  1135,  -884,   215,   -67,   336,
  2373     -322,    89,    -9,  -884,  -375,  -206,     5,  -884,  -304,   -32,
  2374     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,
  2375     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,    57,  -884,
  2376     -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -884,  -168,
  2377     -349,  -531,    43,  -642,  -884,  -809,  -805,   286,   171,    91,
  2378     -884,   263,  -884,  -786,  -884,    53,  -884,  -884,  -884,  -884,
  2379     -884,  -884,  -884,   319,  -884,  -884,  -884,  -884,  -884,  -884,
  2380     -884,   -98,  -884,  -884,   372,  -884,  -884,   562,  -884,  -884,
  2381     -543,  -884,    63,  -884,  -884,  -884,  -884,  -884,  -884,   986,
  2382     -884,  -884,  -884,  -884,   794,  -884,  -884,  -884,  -884,  -884,
  2383     -884,   880,  1035,  -884,   -86,  -884,  -884,  -884,  -884,  -884,
  2384     -884,  -884,     2,  -884,     6,  -884,    -8,  1181,  1352,   998,
  2385     1693,   938,  -884,  -884,   174,  -884,  -460,   153,  -589,  -861,
  2386     -211,  -433,  -706,   259,    73,   313,   107,  -884,  -884,  -884,
  2387        3,  -741,  -883,   110,   338,  -884,  -675,  -884,  -145,  -601,
  2388     -884,  -884,  -884,    82,  -396,  -884,  -282,  -884,  -884,   -81,
  2389     -884,   -43,   -25,  -159,  -580,  -236,   -66,    26,    -2
  2396 #define YYTABLE_NINF -646  2397 static const yytype_int16 yytable[] =
  2399      120,   408,   237,   309,   240,   329,   363,   303,   288,   320,
  2400      202,   213,   213,   234,   203,   213,   239,   406,   582,   430,
  2401      670,   219,   219,   278,   256,   219,   536,   309,   365,   365,
  2402      202,   468,   365,   628,   203,   470,   611,   614,   367,   570,
  2403      200,   370,   738,   121,   649,   768,   621,   674,   402,   278,
  2404      371,   268,   272,   737,   621,   277,   891,   302,   266,    87,
  2405      200,    87,   278,   278,   278,   596,   261,   321,   934,   638,
  2406      931,   628,   778,   220,   220,   993,   441,   220,   568,   785,
  2407      796,   576,   884,    71,  -103,    71,   456,   845,     3,   200,
  2408     -107,   850,  -527,  -616,   705,   310,   896,   937,   225,   225,
  2409     -104,   460,   225,   625,   461,   217,   227,   529,    87,   228,
  2410      318,   953,   279,   886,   579,  -526,   464,  -111,   660,  -528,
  2411      252,  -110,   892,   220,   465,   610,   467,   987,  1045,   200,
  2412      661,   236,   318,   665,   465,   267,   271,  -106,   279,   426,
  2413      897,  -535,   568,   496,   576,   -75,   220,   220,  -527,   323,
  2414      220,   376,   387,   387,  -521,  -521,   652,   666,   525,   664,
  2415      665,   579,   294,   856,   993,   -89,  1001,   734,  -103,   452,
  2416      641,  -526,  -108,   861,   440,  -528,   442,   934,  1045,  -105,
  2417      256,   320,   938,  1023,   666,  -529,   235,   529,   529,  -109,
  2418      754,   309,   236,   497,   316,   317,   -94,   641,   479,   891,
  2419      474,  -616,   -98,  -521,  -619,   487,  -616,   490,   670,   494,
  2420      242,  -521,   -95,   494,   458,   450,   325,   423,   319,  1057,
  2421      296,  -103,   962,   423,   213,   330,   213,   213,   256,  -102,
  2422      439,  -104,   430,  -101,   219,   674,   219,   628,   854,   884,
  2423      319,  -529,   904,   306,   278,   232,   307,  -111,   471,   -97,
  2424      365,   365,   365,   365,   298,   512,   513,   621,   621,   507,
  2425      508,   509,   510,   774,    87,   997,   520,   473,   743,  -110,
  2426      261,   531,   629,  -107,   817,   926,   631,   928,   753,   977,
  2427      752,   634,   306,   459,   -99,   307,   220,   944,   220,   220,
  2428      306,   -96,   220,   307,   220,   591,   278,   644,   884,    87,
  2429      256,  -100,   236,  -620,   309,   300,  1025,   365,   365,   641,
  2430       87,   225,    87,   225,   236,   502,   583,   584,   431,   641,
  2431      434,    87,   593,   844,   326,   586,   922,   585,   527,  1039,
  2432      522,  -109,   487,   279,   454,   522,  1046,   860,  -293,   830,
  2433      826,   828,   261,  -293,    58,   462,   838,   834,   836,   506,
  2434     -103,   531,   531,  -103,  -531,   674,   213,  1009,  1010,   439,
  2435     -104,  -106,   884,  -104,   674,   503,   704,    87,   220,   220,
  2436      220,   220,    87,   220,   220,   410,  -111,   412,   978,  -111,
  2437     -108,  -105,   220,   235,    87,   279,  1076,   537,   414,   822,
  2438      855,    71,   359,   405,   481,   574,   511,   419,  -110,  -619,
  2439      474,  -110,  -107,   420,   670,  -107,   670,   691,   594,   -98,
  2440     -531,   776,   595,   421,   691,  -530,   765,   447,   220,   740,
  2441      213,    87,   331,   439,   841,   220,   220,  -532,   568,   429,
  2442      576,   674,  -521,   674,   635,   423,   423,   316,   317,   574,
  2443      220,   482,  1067,   483,   278,  -536,   923,   120,   202,   362,
  2444      474,   784,   203,   927,   847,   844,   712,  -620,   574,   906,
  2445     -109,   427,   -97,  -109,   954,  -344,  -344,   537,   537,   -99,
  2446     1073,  -530,  -104,   213,   690,   628,   439,   428,   200,   354,
  2447      355,   356,   220,  -532,   574,   529,   964,   775,  -521,  -617,
  2448     -106,   529,   529,  -106,   278,   449,   621,   229,   529,   529,
  2449      716,   -98,  -524,   622,  -111,  -535,    87,   674,   723,  -108,
  2450     -105,   574,  -108,  -105,  -344,   481,    87,   736,   736,   489,
  2451      -96,   -98,  -344,  -619,   -98,   306,   331,   713,   307,   -98,
  2452       71,   605,  -103,   279,   655,   220,   656,   657,   658,   659,
  2453      232,   -74,   755,   758,   457,   719,   647,   336,   337,   463,
  2454     -524,  -524,   -94,   731,   -97,   733,   481,   469,  -524,   717,
  2455      972,   -99,   482,   453,   483,   765,   974,   724,   784,   876,
  2456      853,   954,   777,  1022,   -97,   772,   730,   -97,   954,   411,
  2457      472,   -99,   -97,   279,   -99,   213,   862,   606,   439,   -99,
  2458     -110,   739,   347,   348,   769,   213,   863,  -617,   439,  -524,
  2459      719,   760,  -617,   482,   762,   483,  -111,  -524,   761,   491,
  2460      529,   770,   -96,   872,   331,   476,   278,   870,   202,   875,
  2461      423,  -106,   203,   574,   878,   613,   615,   719,   954,  -623,
  2462      474,   495,   -96,   574,   504,   -96,   693,    87,  -108,    87,
  2463      -96,   120,   613,   615,  -105,   498,   889,   220,   200,   531,
  2464      889,   831,   501,   359,   360,   531,   531,   220,   758,    87,
  2465      220,   868,   531,   531,   784,   516,   784,   528,   642,   352,
  2466      353,   354,   355,   356,   278,   586,   721,   793,   505,   793,
  2467      916,   858,   917,  -299,  -299,   365,   588,   365,   592,   722,
  2468     -623,  -623,   925,   220,   857,  1050,   859,   359,   424,   597,
  2469       87,   443,   361,  -106,   632,   279,   213,   833,   867,   439,
  2470      362,  -536,   444,   445,   771,   930,  -108,   630,   719,   633,
  2471      639,   784,   989,   761,    71,   643,   843,   846,   719,   846,
  2472      -89,   846,  -299,   522,  -105,  -620,   641,  -623,  -104,  -623,
  2473     -299,   648,  -619,   411,   574,   692,   425,  -623,   694,  -271,
  2474      975,   976,   963,   703,   362,   981,   706,   707,   -95,   983,
  2475      880,   708,   481,   279,    87,   537,  -430,   982,   220,   423,
  2476     -111,   537,   537,   726,   531,   784,   728,   784,   537,   537,
  2477      359,   451,   732,   215,   215,   773,   365,   215,   818,   200,
  2478     -102,   736,   481,   924,   888,   915,   655,   719,   656,   657,
  2479      658,   659,   787,   220,   453,   220,    87,   788,   900,   482,
  2480      900,   483,   486,   784,   617,   249,   251,   911,   359,   477,
  2481      215,   215,  -533,  -533,   918,   919,  1027,   791,   921,   425,
  2482      794,  -110,   795,   304,   305,   797,   798,   362,   801,   482,
  2483      910,   483,   484,   914,   799,  -534,  -534,   800,   809,  -289,
  2484     -289,  -101,   802,  1055,  1056,    41,    42,    43,    44,   963,
  2485      811,   814,   984,   889,  -272,   825,   963,   478,   963,   832,
  2486      721,  -533,   880,   844,   965,   362,   278,   359,   589,  -533,
  2487      864,   988,   359,   599,   871,   973,   793,  1018,   873,   877,
  2488      537,   902,  -300,  -300,  -534,   359,   710,  -106,  -289,   912,
  2489      959,    87,  -534,  -273,   220,   331,  -289,   908,    87,    87,
  2490      994,   995,    87,   932,   935,    87,   963,   -97,   963,   846,
  2491      344,   345,    87,   963,   278,   963,   590,   880,   936,   827,
  2492      829,   600,  1002,  1015,   362,   963,   835,   837,   940,   362,
  2493      118,  -300,   118,   942,   711,  1019,   945,  1020,   947,  -300,
  2494     -274,   986,   362,  1021,   481,    87,   793,   793,    87,   351,
  2495      352,   353,   354,   355,   356,   968,  1026,  1003,  1004,    87,
  2496      956,   278,   215,  1034,   481,   215,   215,   215,  1008,   304,
  2497     1011,   827,   829,   722,   835,   837,  1013,   359,  1016,   118,
  2498     1024,  1028,  1030,   282,    87,    87,   215,  1035,   215,   215,
  2499     1040,   482,  1061,   483,   486,   359,  1041,   959,  1060,  1063,
  2500     -108,  1043,   213,  1007,   959,   439,   959,   730,   846,   282,
  2501      481,   482,  1068,   483,   488,   719,  1070,  -619,   645,    87,
  2502      -99,    87,   380,   390,   390,  -620,  1017,    87,   941,   943,
  2503      481,   793,    87,   946,   362,   948,  1080,   949,   907,   833,
  2504      574,   391,  1012,  1014,   600,   374,   890,    87,   358,   894,
  2505     1036,   839,   362,  1054,   959,   874,   959,   482,   951,   483,
  2506      492,   959,   813,   959,   220,   901,  -105,   956,  1058,   869,
  2507      701,   956,  1053,   959,   956,   907,   956,   482,   409,   483,
  2508      499,   418,   215,   500,   292,   403,   -96,   533,   539,   540,
  2509      541,   542,   543,   985,   887,   544,   545,   546,   547,   548,
  2510      549,   550,   551,   552,  1038,  1042,   553,   554,   555,   556,
  2511      557,   558,   559,   560,   561,   562,   885,     0,   215,  1062,
  2512     1064,     0,     0,     0,   956,  1069,   956,  1071,  1072,     0,
  2513        0,   956,     0,   956,     0,   118,     0,     0,     0,  1029,
  2514     1031,  1032,  1033,   956,     0,     0,   955,     0,     0,     0,
  2515      655,     0,   656,   657,   658,   659,  1079,  1081,  1082,  1083,
  2516      311,   312,   313,   314,   315,  1085,     0,   612,   612,     0,
  2517      118,     0,   331,   114,     0,   114,   612,   215,   215,   269,
  2518        0,   118,   215,   118,   612,   612,   215,   344,   345,   996,
  2519      779,   998,   118,     0,     0,     0,   999,   804,   805,     0,
  2520      806,     0,  1074,     0,   282,   637,     0,     0,    46,    47,
  2521      612,   655,     0,   656,   657,   658,   659,     0,     0,     0,
  2522        0,   215,   114,     0,   215,     0,   280,   352,   353,   354,
  2523      355,   356,     0,     0,     0,   215,     0,   990,   118,   656,
  2524      657,   658,   659,   118,     0,     0,     0,     0,   331,     0,
  2525        0,   779,   280,     0,     0,   118,   282,   780,   538,     0,
  2526     1044,   695,  1047,   344,   345,   378,   388,   388,   388,   655,
  2527        0,   656,   657,   658,   659,   660,   215,     0,   655,  1059,
  2528      656,   657,   658,   659,   660,     0,     0,   661,     0,     0,
  2529        0,     0,   118,     0,     0,     0,   661,     0,     0,     0,
  2530      349,   350,   351,   352,   353,   354,   355,   356,     0,   662,
  2531     1075,     0,  1077,     0,     0,     0,   664,   665,   662,  1078,
  2532        0,     0,     0,     0,   663,   664,   665,     0,     0,  1084,
  2533      413,     0,     0,   415,   416,   417,     0,     0,   538,   538,
  2534        0,   666,     0,   215,   115,     0,   115,   215,     0,     0,
  2535      666,     0,     0,   667,     0,     0,   655,   215,   656,   657,
  2536      658,   659,     0,     0,     0,     0,     0,     0,     0,     0,
  2537        0,   236,     0,     0,   215,     0,   215,   118,   114,     0,
  2538        0,     0,     0,     0,     0,     0,     0,   118,     0,   215,
  2539      215,     0,     0,   115,     0,     0,   779,   281,     0,     0,
  2540        0,     0,   933,     0,   282,     0,     0,     0,     0,     0,
  2541        0,     0,     0,   114,     0,     0,     0,     0,     0,     0,
  2542        0,     0,     0,   281,   114,     0,   114,     0,     0,     0,
  2543        0,     0,     0,     0,   215,   114,   379,   389,   389,   389,
  2544        0,    83,     0,    83,     0,     0,     0,   280,     0,     0,
  2545      521,     0,     0,     0,   282,   534,     0,     0,     0,     0,
  2546      215,     0,     0,     0,     0,   612,   819,     0,   215,     0,
  2547        0,   612,   612,     0,     0,     0,     0,     0,   612,   612,
  2548        0,   114,     0,     0,     0,   215,   114,     0,     0,     0,
  2549       83,     0,     0,     0,     0,     0,     0,     0,   114,   280,
  2550        0,     0,     0,     0,     0,     0,     0,     0,   118,     0,
  2551      118,   655,     0,   656,   657,   658,   659,   660,     0,     0,
  2552        0,     0,     0,   612,   612,     0,   612,   612,     0,   661,
  2553      118,     0,     0,   375,     0,   114,     0,     0,     0,     0,
  2554        0,     0,     0,     0,   215,   618,   620,     0,     0,   115,
  2555        0,   662,     0,     0,   269,     0,     0,   663,   664,   665,
  2556        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2557        0,   118,   215,     0,     0,     0,   282,     0,     0,     0,
  2558        0,     0,   905,   666,   115,     0,   667,     0,     0,   620,
  2559      612,     0,   269,     0,     0,   115,     0,   115,   668,     0,
  2560        0,     0,     0,     0,     0,     0,   115,     0,     0,     0,
  2561        0,   215,     0,     0,     0,     0,     0,   808,   281,     0,
  2562      114,     0,     0,     0,     0,     0,     0,   612,   215,     0,
  2563      114,     0,     0,     0,   282,   118,   538,     0,     0,     0,
  2564        0,     0,   538,   538,   702,     0,    83,   280,     0,   538,
  2565      538,     0,   115,     0,     0,     0,     0,   115,     0,     0,
  2566        0,   655,     0,   656,   657,   658,   659,   660,     0,   115,
  2567      281,     0,     0,     0,     0,     0,     0,   118,     0,   661,
  2568        0,    83,     0,     0,     0,   117,     0,   117,     0,     0,
  2569        0,     0,    83,     0,    83,     0,     0,   280,     0,     0,
  2570        0,   662,     0,    83,     0,     0,   115,   663,   664,   665,
  2571        0,   534,     0,     0,     0,     0,     0,     0,     0,     0,
  2572        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2573        0,     0,     0,   666,   117,     0,   667,     0,     0,     0,
  2574        0,     0,   763,     0,   764,     0,     0,     0,     0,    83,
  2575        0,   114,     0,   114,    83,     0,     0,   620,   269,     0,
  2576        0,   538,     0,     0,     0,     0,    83,     0,     0,   532,
  2577        0,     0,   118,   114,   215,     0,     0,     0,     0,   118,
  2578      118,     0,     0,   118,     0,     0,   118,     0,     0,     0,
  2579        0,   115,     0,   118,     0,     0,     0,     0,     0,     0,
  2580        0,   115,   790,    83,     0,     0,     0,     0,     0,     0,
  2581        0,     0,     0,     0,   114,     0,     0,     0,   281,   280,
  2582        0,     0,     0,     0,     0,     0,   118,     0,   816,   118,
  2583        0,     0,     0,     0,     0,     0,   971,     0,     0,     0,
  2584      118,     0,     0,     0,     0,     0,     0,     0,     0,   532,
  2585      532,     0,     0,   840,     0,     0,     0,     0,     0,     0,
  2586        0,     0,     0,     0,     0,   118,   118,     0,   281,     0,
  2587        0,     0,     0,     0,     0,     0,     0,   280,   114,     0,
  2588        0,     0,     0,     0,   390,     0,     0,     0,    83,     0,
  2589      117,     0,     0,     0,     0,     0,     0,     0,    83,     0,
  2590      118,     0,   118,     0,     0,     0,     0,     0,   118,     0,
  2591        0,     0,   882,   118,     0,     0,     0,     0,     0,     0,
  2592      114,     0,   115,   709,   115,   117,     0,     0,   118,     0,
  2593        0,   390,     0,     0,     0,     0,   117,     0,   117,     0,
  2594      903,     0,     0,     0,   115,     0,     0,   117,     0,   331,
  2595      332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
  2596      342,   343,     0,     0,   344,   345,     0,     0,     0,     0,
  2597        0,     0,     0,     0,     0,     0,     0,     0,     0,   920,
  2598        0,     0,     0,     0,     0,   115,     0,     0,     0,     0,
  2599      281,     0,     0,   117,     0,     0,   269,   346,   117,   347,
  2600      348,   349,   350,   351,   352,   353,   354,   355,   356,     0,
  2601      117,     0,     0,   117,     0,   114,  -246,     0,     0,    83,
  2602        0,    83,   114,   114,     0,     0,   114,     0,     0,   114,
  2603        0,     0,     0,     0,     0,     0,   114,     0,     0,     0,
  2604        0,    83,     0,     0,     0,     0,     0,   117,   281,   115,
  2605        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2606        0,     0,     0,     0,     0,     0,     0,     0,     0,   114,
  2607        0,     0,   114,     0,     0,     0,     0,     0,     0,   969,
  2608        0,     0,    83,   114,     0,     0,     0,     0,     0,     0,
  2609        0,   115,     0,   117,   117,     0,     0,  -645,     0,     0,
  2610        0,     0,     0,     0,     0,  -645,  -645,  -645,   114,   114,
  2611     -645,  -645,  -645,     0,  -645,     0,     0,     0,     0,     0,
  2612        0,     0,     0,  -645,  -645,     0,     0,   388,     0,     0,
  2613        0,     0,   117,     0,  -645,  -645,     0,  -645,  -645,  -645,
  2614     -645,  -645,   117,   114,     0,   114,    83,   532,     0,     0,
  2615        0,   114,     0,   532,   532,     0,   114,     0,     0,     0,
  2616      532,   532,     0,     0,     0,     0,     0,     0,     0,     0,
  2617        0,   114,   248,   248,   388,     0,     0,   248,   248,   248,
  2618        0,     0,     0,     0,  -645,  -645,   115,     0,    83,     0,
  2619        0,   248,     0,   115,   115,     0,     0,   115,     0,     0,
  2620      115,     0,     0,     0,     0,   248,     0,   115,  -645,     0,
  2621        0,     0,     0,     0,     0,     0,     0,     0,   248,   248,
  2622      248,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2623        0,  -645,  -645,     0,     0,     0,   232,  -645,     0,  -645,
  2624      115,  -645,  -645,   115,     0,     0,     0,     0,     0,     0,
  2625      970,     0,     0,     0,   115,     0,     0,     0,     0,     0,
  2626        0,     0,     0,   117,     0,   117,     0,     0,     0,     0,
  2627        0,     0,   532,     0,     0,     0,     0,     0,     0,   115,
  2628      115,     0,     0,    83,     0,   117,     0,     0,     0,     0,
  2629       83,    83,     0,     0,    83,     0,     0,    83,   389,     0,
  2630        0,     0,     0,     0,    83,     0,     0,     0,     0,     0,
  2631        0,     0,     0,     0,   115,     0,   115,     0,     0,     0,
  2632        0,     0,   115,     0,     0,     0,   117,   115,     0,   248,
  2633        0,     0,   248,   248,   248,     0,   248,    83,     0,     0,
  2634       83,     0,   115,     0,     0,   389,     0,   967,     0,     0,
  2635        0,    83,     0,     0,     0,     0,     0,     0,     0,     0,
  2636        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2637        0,     0,     0,     0,     0,     0,    83,    83,     0,     0,
  2638        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2639      117,   117,     0,     0,     0,     0,     0,   117,   117,     0,
  2640      248,     0,     0,     0,   117,   117,     0,     0,     0,     0,
  2641        0,    83,     0,    83,     0,     0,     0,     0,     0,    83,
  2642        0,     0,     0,     0,    83,     0,     0,     0,     0,     0,
  2643        0,     0,   117,     0,     0,     0,     0,     0,     0,    83,
  2644        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2645        0,     0,   248,     0,     0,   248,   248,   248,   248,   248,
  2646        0,     0,   248,   248,   248,   248,   248,   248,   248,   248,
  2647      248,     0,     0,   248,   248,   248,   248,   248,   248,   248,
  2648      248,   248,   248,     0,     0,     0,     0,     0,     0,     0,
  2649      563,   564,     0,     0,   565,     0,     0,     0,     0,     0,
  2650        0,     0,     0,     0,     0,     0,   166,   167,   168,   169,
  2651      170,   171,   172,   173,   174,     0,   117,   175,   176,     0,
  2652        0,   177,   178,   179,   180,     0,     0,   117,     0,     0,
  2653        0,     0,     0,     0,   117,   117,   181,   182,   117,     0,
  2654        0,   117,     0,   248,   248,   248,     0,     0,   117,     0,
  2655        0,   248,   248,   248,     0,     0,     0,     0,   183,   184,
  2656      185,   186,   187,   188,   189,   190,   191,   192,     0,   193,
  2657      194,     0,   248,     0,     0,     0,   195,   248,     0,     0,
  2658        0,   117,     0,     0,   117,     0,     0,     0,   248,     0,
  2659        0,   248,     0,     0,     0,   117,     0,     0,     0,     0,
  2660      248,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2661        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2662      117,   117,     0,     0,     0,     0,     0,     0,   248,     0,
  2663        0,     0,     0,     0,     0,     0,   331,  -646,  -646,  -646,
  2664     -646,   336,   337,   248,     0,  -646,  -646,     0,     0,     0,
  2665      248,   344,   345,     0,     0,   117,     0,   117,     0,     0,
  2666        0,     0,     0,   117,     0,     0,     0,     0,   117,     0,
  2667        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2668        0,     0,     0,   117,     0,     0,   347,   348,   349,   350,
  2669      351,   352,   353,   354,   355,   356,     0,     0,     0,     0,
  2670        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2671      248,     0,     0,     0,  -645,     4,     0,     5,     6,     7,
  2672        8,     9,     0,     0,     0,    10,    11,     0,     0,     0,
  2673       12,     0,    13,    14,    15,    16,    17,    18,    19,     0,
  2674        0,   248,     0,   248,    20,    21,    22,    23,    24,    25,
  2675       26,     0,     0,    27,     0,     0,   248,   248,     0,    28,
  2676       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
  2677       39,    40,   248,    41,    42,    43,    44,     0,    45,    46,
  2678       47,     0,    48,    49,     0,     0,     0,     0,     0,     0,
  2679        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2680        0,   248,     0,    50,     0,     0,    51,    52,     0,    53,
  2681       54,     0,    55,     0,     0,    56,    57,    58,    59,    60,
  2682       61,    62,    63,    64,     0,     0,     0,   248,     0,     0,
  2683      248,     0,     0,   248,     0,     0,     0,     0,     0,     0,
  2684        0,     0,     0,     0,    65,    66,    67,     0,     0,     0,
  2685        0,     0,   248,     0,     0,     0,  -645,     0,     0,  -645,
  2686        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2687        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2688        0,     0,     0,     0,     0,     0,     0,     0,     0,  -623,
  2689      248,   248,     0,   248,   248,     0,     0,  -623,  -623,  -623,
  2690        0,     0,  -623,  -623,  -623,     0,  -623,     0,     0,     0,
  2691        0,   248,     0,     0,     0,  -623,  -623,  -623,  -623,     0,
  2692        0,     0,     0,     0,     0,     0,  -623,  -623,     0,  -623,
  2693     -623,  -623,  -623,  -623,     0,     0,     0,     0,     0,   248,
  2694        0,     0,     0,     0,     0,     0,     0,     0,     0,   248,
  2695        0,     0,     0,     0,     0,     0,     0,     0,     0,  -623,
  2696     -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,
  2697     -623,  -623,     0,     0,  -623,  -623,  -623,  -623,   248,   766,
  2698     -623,     0,     0,     0,     0,     0,  -623,     0,     0,     0,
  2699        0,     0,     0,     0,   248,   248,     0,     0,     0,     0,
  2700     -623,     0,     0,  -623,     0,     0,  -107,  -623,  -623,  -623,
  2701     -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,     0,
  2702        0,     0,     0,  -623,  -623,  -623,  -623,  -521,     0,  -623,
  2703     -623,  -623,   248,  -623,  -623,  -521,  -521,  -521,     0,     0,
  2704     -521,  -521,  -521,     0,  -521,     0,     0,     0,     0,     0,
  2705        0,     0,  -521,     0,  -521,  -521,  -521,     0,     0,     0,
  2706        0,     0,     0,     0,  -521,  -521,     0,  -521,  -521,  -521,
  2707     -521,  -521,     0,     0,     0,     0,     0,     0,     0,     0,
  2708      248,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2709        0,     0,     0,     0,     0,     0,     0,  -521,  -521,  -521,
  2710     -521,  -521,  -521,  -521,  -521,  -521,  -521,  -521,  -521,  -521,
  2711        0,     0,  -521,  -521,  -521,  -521,     0,  -521,  -521,     0,
  2712        0,     0,     0,     0,  -521,     0,     0,   248,     0,     0,
  2713        0,     0,     0,     0,     0,     0,     0,     0,  -521,     0,
  2714        0,  -521,     0,     0,  -521,  -521,  -521,  -521,  -521,  -521,
  2715     -521,  -521,  -521,  -521,  -521,  -521,  -521,     0,     0,     0,
  2716        0,     0,  -521,  -521,  -521,  -524,     0,  -521,  -521,  -521,
  2717        0,  -521,  -521,  -524,  -524,  -524,     0,     0,  -524,  -524,
  2718     -524,     0,  -524,     0,     0,     0,     0,   709,     0,     0,
  2719     -524,     0,  -524,  -524,  -524,     0,     0,     0,     0,     0,
  2720        0,     0,  -524,  -524,     0,  -524,  -524,  -524,  -524,  -524,
  2721        0,     0,     0,   331,   332,   333,   334,   335,   336,   337,
  2722      338,   339,   340,   341,   342,   343,     0,     0,   344,   345,
  2723        0,     0,     0,     0,     0,  -524,  -524,  -524,  -524,  -524,
  2724     -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,     0,     0,
  2725     -524,  -524,  -524,  -524,     0,  -524,  -524,     0,     0,     0,
  2726        0,   346,  -524,   347,   348,   349,   350,   351,   352,   353,
  2727      354,   355,   356,     0,     0,     0,  -524,     0,     0,  -524,
  2728        0,     0,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,
  2729     -524,  -524,  -524,  -524,  -524,     0,     0,     0,     0,     0,
  2730     -524,  -524,  -524,  -624,     0,  -524,  -524,  -524,     0,  -524,
  2731     -524,  -624,  -624,  -624,     0,     0,  -624,  -624,  -624,     0,
  2732     -624,     0,     0,     0,     0,     0,     0,     0,     0,  -624,
  2733     -624,  -624,  -624,     0,     0,     0,     0,     0,     0,     0,
  2734     -624,  -624,     0,  -624,  -624,  -624,  -624,  -624,     0,     0,
  2735        0,   331,   332,   333,   334,   335,   336,   337,   338,   339,
  2736      340,   341,   342,   343,     0,     0,   344,   345,     0,     0,
  2737        0,     0,     0,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
  2738     -624,  -624,  -624,  -624,  -624,  -624,     0,     0,  -624,  -624,
  2739     -624,  -624,     0,     0,  -624,     0,     0,     0,     0,   346,
  2740     -624,   347,   348,   349,   350,   351,   352,   353,   354,   355,
  2741      356,     0,     0,     0,  -624,     0,     0,  -624,     0,     0,
  2742        0,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
  2743     -624,  -624,  -624,     0,     0,     0,     0,  -624,  -624,  -624,
  2744     -624,  -625,     0,  -624,  -624,  -624,     0,  -624,  -624,  -625,
  2745     -625,  -625,     0,     0,  -625,  -625,  -625,     0,  -625,     0,
  2746        0,     0,     0,     0,     0,     0,     0,  -625,  -625,  -625,
  2747     -625,     0,     0,     0,     0,     0,     0,     0,  -625,  -625,
  2748        0,  -625,  -625,  -625,  -625,  -625,     0,     0,     0,   331,
  2749      332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
  2750     -646,  -646,     0,     0,   344,   345,     0,     0,     0,     0,
  2751        0,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,
  2752     -625,  -625,  -625,  -625,     0,     0,  -625,  -625,  -625,  -625,
  2753        0,     0,  -625,     0,     0,     0,     0,     0,  -625,   347,
  2754      348,   349,   350,   351,   352,   353,   354,   355,   356,     0,
  2755        0,     0,  -625,     0,     0,  -625,     0,     0,     0,  -625,
  2756     -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,  -625,
  2757     -625,     0,     0,     0,     0,  -625,  -625,  -625,  -625,  -299,
  2758        0,  -625,  -625,  -625,     0,  -625,  -625,  -299,  -299,  -299,
  2759        0,     0,  -299,  -299,  -299,     0,  -299,     0,     0,     0,
  2760        0,     0,     0,     0,     0,     0,  -299,  -299,  -299,     0,
  2761        0,     0,     0,     0,     0,     0,  -299,  -299,     0,  -299,
  2762     -299,  -299,  -299,  -299,     0,     0,     0,   331,   332,   333,
  2763      334,   335,   336,   337,   338,     0,   340,   341,     0,     0,
  2764        0,     0,   344,   345,     0,     0,     0,     0,     0,  -299,
  2765     -299,  -299,  -299,  -299,  -299,  -299,  -299,  -299,  -299,  -299,
  2766     -299,  -299,     0,     0,  -299,  -299,  -299,  -299,     0,   767,
  2767     -299,     0,     0,     0,     0,     0,  -299,   347,   348,   349,
  2768      350,   351,   352,   353,   354,   355,   356,     0,     0,     0,
  2769     -299,     0,     0,  -299,     0,     0,  -109,  -299,  -299,  -299,
  2770     -299,  -299,  -299,  -299,  -299,  -299,  -299,  -299,  -299,     0,
  2771        0,     0,     0,     0,  -299,  -299,  -299,  -438,     0,  -299,
  2772     -299,  -299,     0,  -299,  -299,  -438,  -438,  -438,     0,     0,
  2773     -438,  -438,  -438,     0,  -438,     0,     0,     0,     0,     0,
  2774        0,     0,     0,  -438,  -438,  -438,     0,     0,     0,     0,
  2775        0,     0,     0,     0,  -438,  -438,     0,  -438,  -438,  -438,
  2776     -438,  -438,     0,     0,     0,   331,   332,   333,   334,   335,
  2777      336,   337,     0,     0,   340,   341,     0,     0,     0,     0,
  2778      344,   345,     0,     0,     0,     0,     0,  -438,  -438,  -438,
  2779     -438,  -438,  -438,  -438,  -438,  -438,  -438,  -438,  -438,  -438,
  2780        0,     0,  -438,  -438,  -438,  -438,     0,     0,  -438,     0,
  2781        0,     0,     0,     0,  -438,   347,   348,   349,   350,   351,
  2782      352,   353,   354,   355,   356,     0,     0,     0,  -438,     0,
  2783        0,     0,     0,     0,     0,  -438,     0,  -438,  -438,  -438,
  2784     -438,  -438,  -438,  -438,  -438,  -438,  -438,     0,     0,     0,
  2785        0,  -438,  -438,  -438,  -438,  -290,   232,  -438,  -438,  -438,
  2786        0,  -438,  -438,  -290,  -290,  -290,     0,     0,  -290,  -290,
  2787     -290,     0,  -290,     0,     0,     0,     0,     0,     0,     0,
  2788        0,     0,  -290,  -290,  -290,     0,     0,     0,     0,     0,
  2789        0,     0,  -290,  -290,     0,  -290,  -290,  -290,  -290,  -290,
  2790        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2791        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2792        0,     0,     0,     0,     0,  -290,  -290,  -290,  -290,  -290,
  2793     -290,  -290,  -290,  -290,  -290,  -290,  -290,  -290,     0,     0,
  2794     -290,  -290,  -290,  -290,     0,     0,  -290,     0,     0,     0,
  2795        0,     0,  -290,     0,     0,     0,     0,     0,     0,     0,
  2796        0,     0,     0,     0,     0,     0,  -290,     0,     0,  -290,
  2797        0,     0,     0,  -290,  -290,  -290,  -290,  -290,  -290,  -290,
  2798     -290,  -290,  -290,  -290,  -290,     0,     0,     0,     0,     0,
  2799     -290,  -290,  -290,  -428,     0,  -290,  -290,  -290,     0,  -290,
  2800     -290,  -428,  -428,  -428,     0,     0,  -428,  -428,  -428,     0,
  2801     -428,     0,     0,     0,     0,     0,     0,     0,     0,  -428,
  2802     -428,  -428,     0,     0,     0,     0,     0,     0,     0,     0,
  2803     -428,  -428,     0,  -428,  -428,  -428,  -428,  -428,     0,     0,
  2804        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2805        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2806        0,     0,     0,  -428,  -428,  -428,  -428,  -428,  -428,  -428,
  2807     -428,  -428,  -428,  -428,  -428,  -428,     0,     0,  -428,  -428,
  2808     -428,  -428,     0,     0,  -428,     0,     0,     0,     0,     0,
  2809     -428,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2810        0,     0,     0,     0,  -428,     0,     0,     0,     0,     0,
  2811        0,  -428,     0,  -428,  -428,  -428,  -428,  -428,  -428,  -428,
  2812     -428,  -428,  -428,     0,     0,     0,     0,  -428,  -428,  -428,
  2813     -428,  -306,  -428,  -428,  -428,  -428,     0,  -428,  -428,  -306,
  2814     -306,  -306,     0,     0,  -306,  -306,  -306,     0,  -306,     0,
  2815        0,     0,     0,     0,     0,     0,     0,     0,  -306,  -306,
  2816        0,     0,     0,     0,     0,     0,     0,     0,  -306,  -306,
  2817        0,  -306,  -306,  -306,  -306,  -306,     0,     0,     0,     0,
  2818        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2819        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2820        0,  -306,  -306,  -306,  -306,  -306,  -306,  -306,  -306,  -306,
  2821     -306,  -306,  -306,  -306,     0,     0,  -306,  -306,  -306,  -306,
  2822        0,     0,  -306,     0,     0,     0,     0,     0,  -306,     0,
  2823        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2824        0,     0,  -306,     0,     0,     0,     0,     0,     0,  -306,
  2825        0,  -306,  -306,  -306,  -306,  -306,  -306,  -306,  -306,  -306,
  2826     -306,     0,     0,     0,     0,     0,  -306,  -306,  -306,  -623,
  2827      229,  -306,  -306,  -306,     0,  -306,  -306,  -623,  -623,  -623,
  2828        0,     0,     0,  -623,  -623,     0,  -623,     0,     0,     0,
  2829        0,     0,     0,     0,     0,  -623,     0,     0,     0,     0,
  2830        0,     0,     0,     0,     0,     0,  -623,  -623,     0,  -623,
  2831     -623,  -623,  -623,  -623,     0,     0,     0,     0,     0,     0,
  2832        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2833        0,     0,     0,     0,     0,     0,     0,     0,     0,  -623,
  2834     -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,
  2835     -623,  -623,     0,     0,  -623,  -623,  -623,  -623,     0,   714,
  2836        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2837        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2838     -623,     0,     0,     0,     0,     0,  -107,  -623,     0,  -623,
  2839     -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,     0,
  2840        0,     0,     0,  -623,  -623,  -623,   -98,  -623,     0,  -623,
  2841        0,  -623,     0,  -623,  -623,  -623,  -623,  -623,     0,     0,
  2842        0,  -623,  -623,     0,  -623,     0,     0,     0,     0,     0,
  2843        0,     0,     0,  -623,     0,     0,     0,     0,     0,     0,
  2844        0,     0,     0,     0,  -623,  -623,     0,  -623,  -623,  -623,
  2845     -623,  -623,     0,     0,     0,     0,     0,     0,     0,     0,
  2846        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2847        0,     0,     0,     0,     0,     0,     0,  -623,  -623,  -623,
  2848     -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,  -623,
  2849        0,     0,  -623,  -623,  -623,  -623,     0,   714,     0,     0,
  2850        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2851        0,     0,     0,     0,     0,     0,     0,     0,  -623,     0,
  2852        0,     0,     0,     0,  -107,  -623,     0,  -623,  -623,  -623,
  2853     -623,  -623,  -623,  -623,  -623,  -623,  -623,     0,     0,     0,
  2854        0,  -623,  -623,  -623,  -623,  -299,     0,  -623,     0,  -623,
  2855        0,  -623,  -623,  -299,  -299,  -299,     0,     0,     0,  -299,
  2856     -299,     0,  -299,     0,     0,     0,     0,     0,     0,     0,
  2857        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2858        0,     0,  -299,  -299,     0,  -299,  -299,  -299,  -299,  -299,
  2859        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2860        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2861        0,     0,     0,     0,     0,  -299,  -299,  -299,  -299,  -299,
  2862     -299,  -299,  -299,  -299,  -299,  -299,  -299,  -299,     0,     0,
  2863     -299,  -299,  -299,  -299,     0,   715,     0,     0,     0,     0,
  2864        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2865        0,     0,     0,     0,     0,     0,  -299,     0,     0,     0,
  2866        0,     0,  -109,  -299,     0,  -299,  -299,  -299,  -299,  -299,
  2867     -299,  -299,  -299,  -299,  -299,     0,     0,     0,     0,     0,
  2868     -299,  -299,  -100,  -299,     0,  -299,     0,  -299,     0,  -299,
  2869     -299,  -299,  -299,  -299,     0,     0,     0,  -299,  -299,     0,
  2870     -299,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2871        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2872     -299,  -299,     0,  -299,  -299,  -299,  -299,  -299,     0,     0,
  2873        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2874        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2875        0,     0,     0,  -299,  -299,  -299,  -299,  -299,  -299,  -299,
  2876     -299,  -299,  -299,  -299,  -299,  -299,     0,     0,  -299,  -299,
  2877     -299,  -299,     0,   715,     0,     0,     0,     0,     0,     0,
  2878        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2879        0,     0,     0,     0,  -299,     0,     0,     0,     0,     0,
  2880     -109,  -299,     0,  -299,  -299,  -299,  -299,  -299,  -299,  -299,
  2881     -299,  -299,  -299,     0,     0,     0,     0,     0,  -299,  -299,
  2882     -299,     0,     0,  -299,     0,  -299,     0,  -299,  -299,   253,
  2883        0,     5,     6,     7,     8,     9,  -645,  -645,  -645,    10,
  2884       11,     0,     0,  -645,    12,     0,    13,    14,    15,    16,
  2885       17,    18,    19,     0,     0,     0,     0,     0,    20,    21,
  2886       22,    23,    24,    25,    26,     0,     0,    27,     0,     0,
  2887        0,     0,     0,    28,    29,   254,    31,    32,    33,    34,
  2888       35,    36,    37,    38,    39,    40,     0,    41,    42,    43,
  2889       44,     0,    45,    46,    47,     0,    48,    49,     0,     0,
  2890        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2891        0,     0,     0,     0,     0,     0,     0,    50,     0,     0,
  2892       51,    52,     0,    53,    54,     0,    55,     0,     0,    56,
  2893       57,    58,    59,    60,    61,    62,    63,    64,     0,     0,
  2894        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2895        0,     0,     0,     0,     0,     0,     0,     0,    65,    66,
  2896       67,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2897     -645,     0,   253,  -645,     5,     6,     7,     8,     9,     0,
  2898        0,  -645,    10,    11,     0,  -645,  -645,    12,     0,    13,
  2899       14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
  2900        0,    20,    21,    22,    23,    24,    25,    26,     0,     0,
  2901       27,     0,     0,     0,     0,     0,    28,    29,   254,    31,
  2902       32,    33,    34,    35,    36,    37,    38,    39,    40,     0,
  2903       41,    42,    43,    44,     0,    45,    46,    47,     0,    48,
  2904       49,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2905        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2906       50,     0,     0,    51,    52,     0,    53,    54,     0,    55,
  2907        0,     0,    56,    57,    58,    59,    60,    61,    62,    63,
  2908       64,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2909        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2910        0,    65,    66,    67,     0,     0,     0,     0,     0,     0,
  2911        0,     0,     0,  -645,     0,   253,  -645,     5,     6,     7,
  2912        8,     9,     0,     0,  -645,    10,    11,     0,     0,  -645,
  2913       12,  -645,    13,    14,    15,    16,    17,    18,    19,     0,
  2914        0,     0,     0,     0,    20,    21,    22,    23,    24,    25,
  2915       26,     0,     0,    27,     0,     0,     0,     0,     0,    28,
  2916       29,   254,    31,    32,    33,    34,    35,    36,    37,    38,
  2917       39,    40,     0,    41,    42,    43,    44,     0,    45,    46,
  2918       47,     0,    48,    49,     0,     0,     0,     0,     0,     0,
  2919        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2920        0,     0,     0,    50,     0,     0,    51,    52,     0,    53,
  2921       54,     0,    55,     0,     0,    56,    57,    58,    59,    60,
  2922       61,    62,    63,    64,     0,     0,     0,     0,     0,     0,
  2923        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2924        0,     0,     0,     0,    65,    66,    67,     0,     0,     0,
  2925        0,     0,     0,     0,     0,     0,  -645,     0,   253,  -645,
  2926        5,     6,     7,     8,     9,     0,     0,  -645,    10,    11,
  2927        0,     0,  -645,    12,     0,    13,    14,    15,    16,    17,
  2928       18,    19,     0,     0,     0,     0,     0,    20,    21,    22,
  2929       23,    24,    25,    26,     0,     0,    27,     0,     0,     0,
  2930        0,     0,    28,    29,   254,    31,    32,    33,    34,    35,
  2931       36,    37,    38,    39,    40,     0,    41,    42,    43,    44,
  2932        0,    45,    46,    47,     0,    48,    49,     0,     0,     0,
  2933        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2934        0,     0,     0,     0,     0,     0,    50,     0,     0,    51,
  2935       52,     0,    53,    54,     0,    55,     0,     0,    56,    57,
  2936       58,    59,    60,    61,    62,    63,    64,     0,     0,     0,
  2937        0,     0,     0,     0,     0,   253,     0,     5,     6,     7,
  2938        8,     9,     0,  -645,  -645,    10,    11,    65,    66,    67,
  2939       12,     0,    13,    14,    15,    16,    17,    18,    19,  -645,
  2940        0,     0,  -645,     0,    20,    21,    22,    23,    24,    25,
  2941       26,     0,     0,    27,     0,     0,     0,     0,     0,    28,
  2942       29,   254,    31,    32,    33,    34,    35,    36,    37,    38,
  2943       39,    40,     0,    41,    42,    43,    44,     0,    45,    46,
  2944       47,     0,    48,    49,     0,     0,     0,     0,     0,     0,
  2945        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2946        0,     0,     0,    50,     0,     0,    51,    52,     0,    53,
  2947       54,     0,    55,     0,     0,    56,    57,    58,    59,    60,
  2948       61,    62,    63,    64,     0,     0,     0,     0,     0,     0,
  2949        0,     0,   253,     0,     5,     6,     7,     8,     9,     0,
  2950        0,     0,    10,    11,    65,    66,    67,    12,     0,    13,
  2951       14,    15,    16,    17,    18,    19,  -645,     0,     0,  -645,
  2952        0,    20,    21,    22,    23,    24,    25,    26,     0,     0,
  2953       27,     0,     0,     0,     0,     0,    28,    29,   254,    31,
  2954       32,    33,    34,    35,    36,    37,    38,    39,    40,     0,
  2955       41,    42,    43,    44,     0,    45,    46,    47,     0,    48,
  2956       49,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2957        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2958       50,     0,     0,   255,    52,     0,    53,    54,     0,    55,
  2959        0,     0,    56,    57,    58,    59,    60,    61,    62,    63,
  2960       64,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2961        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2962        0,    65,    66,    67,   253,     0,     5,     6,     7,     8,
  2963        9,  -645,     0,  -645,    10,    11,  -645,     0,     0,    12,
  2964        0,    13,    14,    15,    16,    17,    18,    19,     0,     0,
  2965        0,     0,     0,    20,    21,    22,    23,    24,    25,    26,
  2966        0,     0,    27,     0,     0,     0,     0,     0,    28,    29,
  2967      254,    31,    32,    33,    34,    35,    36,    37,    38,    39,
  2968       40,     0,    41,    42,    43,    44,     0,    45,    46,    47,
  2969        0,    48,    49,     0,     0,     0,     0,     0,     0,     0,
  2970        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2971        0,     0,    50,     0,     0,    51,    52,     0,    53,    54,
  2972        0,    55,     0,     0,    56,    57,    58,    59,    60,    61,
  2973       62,    63,    64,     0,     0,     0,     0,     0,     0,     0,
  2974        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2975        0,     0,     0,    65,    66,    67,   253,     0,     5,     6,
  2976        7,     8,     9,  -645,     0,  -645,    10,    11,  -645,     0,
  2977        0,    12,     0,    13,    14,    15,    16,    17,    18,    19,
  2978        0,     0,     0,     0,     0,    20,    21,    22,    23,    24,
  2979       25,    26,     0,     0,    27,     0,     0,     0,     0,     0,
  2980       28,    29,   254,    31,    32,    33,    34,    35,    36,    37,
  2981       38,    39,    40,     0,    41,    42,    43,    44,     0,    45,
  2982       46,    47,     0,    48,    49,     0,     0,     0,     0,     0,
  2983        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2984        0,     0,     0,     0,    50,     0,     0,    51,    52,     0,
  2985       53,    54,     0,    55,     0,     0,    56,    57,    58,    59,
  2986       60,    61,    62,    63,    64,     0,     0,     0,     0,     0,
  2987        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2988        0,     0,     0,     0,     0,    65,    66,    67,     0,     0,
  2989     -645,     0,     0,     0,     0,     0,     0,  -645,     0,     4,
  2990     -645,     5,     6,     7,     8,     9,     0,     0,     0,    10,
  2991       11,     0,     0,     0,    12,     0,    13,    14,    15,    16,
  2992       17,    18,    19,     0,     0,     0,     0,     0,    20,    21,
  2993       22,    23,    24,    25,    26,     0,     0,    27,     0,     0,
  2994        0,     0,     0,    28,    29,    30,    31,    32,    33,    34,
  2995       35,    36,    37,    38,    39,    40,     0,    41,    42,    43,
  2996       44,     0,    45,    46,    47,     0,    48,    49,     0,     0,
  2997        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2998        0,     0,     0,     0,     0,     0,     0,    50,     0,     0,
  2999       51,    52,     0,    53,    54,     0,    55,     0,     0,    56,
  3000       57,    58,    59,    60,    61,    62,    63,    64,     0,     0,
  3001        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3002        0,     0,     0,     0,     0,     0,     0,     0,    65,    66,
  3003       67,     0,     0,  -645,     0,     0,     0,     0,     0,     0,
  3004     -645,     0,   253,  -645,     5,     6,     7,     8,     9,     0,
  3005        0,  -645,    10,    11,     0,     0,     0,    12,     0,    13,
  3006       14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
  3007        0,    20,    21,    22,    23,    24,    25,    26,     0,     0,
  3008       27,     0,     0,     0,     0,     0,    28,    29,   254,    31,
  3009       32,    33,    34,    35,    36,    37,    38,    39,    40,     0,
  3010       41,    42,    43,    44,     0,    45,    46,    47,     0,    48,
  3011       49,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3012        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3013       50,     0,     0,    51,    52,     0,    53,    54,     0,    55,
  3014        0,     0,    56,    57,    58,    59,    60,    61,    62,    63,
  3015       64,     0,     0,     0,     0,     0,     0,     0,     0,   253,
  3016        0,     5,     6,     7,     8,     9,     0,     0,     0,    10,
  3017       11,    65,    66,    67,    12,     0,    13,    14,    15,    16,
  3018       17,    18,    19,  -645,     0,     0,  -645,     0,    20,    21,
  3019       22,    23,    24,    25,    26,     0,     0,    27,     0,     0,
  3020        0,     0,     0,    28,    29,   254,    31,    32,    33,    34,
  3021       35,    36,    37,    38,    39,    40,     0,    41,    42,    43,
  3022       44,     0,    45,    46,    47,     0,    48,    49,     0,     0,
  3023        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3024        0,     0,     0,     0,     0,     0,     0,    50,     0,     0,
  3025       51,    52,     0,    53,    54,     0,    55,     0,     0,    56,
  3026       57,    58,    59,    60,    61,    62,    63,    64,     0,  -645,
  3027        0,     0,     0,     0,     0,     0,     0,     0,     5,     6,
  3028        7,     0,     9,     0,     0,     0,    10,    11,    65,    66,
  3029       67,    12,     0,    13,    14,    15,    16,    17,    18,    19,
  3030     -645,     0,     0,  -645,     0,    20,    21,    22,    23,    24,
  3031       25,    26,     0,     0,   204,     0,     0,     0,     0,     0,
  3032        0,    29,     0,     0,    32,    33,    34,    35,    36,    37,
  3033       38,    39,    40,   205,    41,    42,    43,    44,     0,    45,
  3034       46,    47,     0,    48,    49,     0,     0,     0,     0,     0,
  3035        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3036        0,     0,     0,     0,   206,     0,     0,   207,    52,     0,
  3037       53,    54,     0,   208,   209,   210,    56,    57,   211,    59,
  3038       60,    61,    62,    63,    64,     0,     0,     0,     0,     0,
  3039        0,     0,     0,     0,     0,     5,     6,     7,     0,     9,
  3040        0,     0,     0,    10,    11,    65,   212,    67,    12,     0,
  3041       13,    14,    15,    16,    17,    18,    19,     0,     0,     0,
  3042      236,     0,    20,    21,    22,    23,    24,    25,    26,     0,
  3043        0,    27,     0,     0,     0,     0,     0,     0,    29,     0,
  3044        0,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  3045        0,    41,    42,    43,    44,     0,    45,    46,    47,     0,
  3046       48,    49,     0,     0,     0,     0,     0,     0,     0,     0,
  3047        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3048        0,   206,     0,     0,   207,    52,     0,    53,    54,     0,
  3049        0,     0,     0,    56,    57,    58,    59,    60,    61,    62,
  3050       63,    64,     0,     0,     0,     0,     0,     0,     0,     0,
  3051        0,     0,     5,     6,     7,     0,     9,     0,     0,     0,
  3052       10,    11,    65,    66,    67,    12,     0,    13,    14,    15,
  3053       16,    17,    18,    19,   306,     0,     0,   307,     0,    20,
  3054       21,    22,    23,    24,    25,    26,     0,     0,    27,     0,
  3055        0,     0,     0,     0,     0,    29,     0,     0,    32,    33,
  3056       34,    35,    36,    37,    38,    39,    40,     0,    41,    42,
  3057       43,    44,     0,    45,    46,    47,     0,    48,    49,     0,
  3058        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3059        0,     0,     0,     0,     0,     0,     0,     0,   206,     0,
  3060        0,   207,    52,     0,    53,    54,     0,     0,     0,     0,
  3061       56,    57,    58,    59,    60,    61,    62,    63,    64,     0,
  3062        0,     0,     0,     0,     0,     0,     0,     0,     0,     5,
  3063        6,     7,     8,     9,     0,     0,     0,    10,    11,    65,
  3064       66,    67,    12,     0,    13,    14,    15,    16,    17,    18,
  3065       19,     0,     0,     0,   236,     0,    20,    21,    22,    23,
  3066       24,    25,    26,     0,     0,    27,     0,     0,     0,     0,
  3067        0,    28,    29,    30,    31,    32,    33,    34,    35,    36,
  3068       37,    38,    39,    40,     0,    41,    42,    43,    44,     0,
  3069       45,    46,    47,     0,    48,    49,     0,     0,     0,     0,
  3070        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3071        0,     0,     0,     0,     0,    50,     0,     0,    51,    52,
  3072        0,    53,    54,     0,    55,     0,     0,    56,    57,    58,
  3073       59,    60,    61,    62,    63,    64,     0,     0,     0,     0,
  3074        0,     0,     0,     0,     0,     0,     5,     6,     7,     8,
  3075        9,     0,     0,     0,    10,    11,    65,    66,    67,    12,
  3076        0,    13,    14,    15,    16,    17,    18,    19,   505,     0,
  3077        0,     0,     0,    20,    21,    22,    23,    24,    25,    26,
  3078        0,     0,    27,     0,     0,     0,     0,     0,    28,    29,
  3079      254,    31,    32,    33,    34,    35,    36,    37,    38,    39,
  3080       40,     0,    41,    42,    43,    44,     0,    45,    46,    47,
  3081        0,    48,    49,     0,     0,     0,     0,     0,     0,     0,
  3082        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3083        0,     0,    50,     0,     0,    51,    52,     0,    53,    54,
  3084        0,    55,     0,     0,    56,    57,    58,    59,    60,    61,
  3085       62,    63,    64,     0,     0,     0,     0,     0,     0,     0,
  3086        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3087        0,     0,     0,    65,    66,    67,     0,     0,     0,     0,
  3088        0,     0,     0,     0,     0,   505,   122,   123,   124,   125,
  3089      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
  3090      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
  3091        0,     0,     0,   146,   147,   148,   392,   393,   394,   395,
  3092      153,   154,   155,     0,     0,     0,     0,     0,   156,   157,
  3093      158,   159,   396,   397,   398,   399,   164,    37,    38,   400,
  3094       40,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3095        0,   166,   167,   168,   169,   170,   171,   172,   173,   174,
  3096        0,     0,   175,   176,     0,     0,   177,   178,   179,   180,
  3097        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3098        0,   181,   182,     0,     0,     0,     0,     0,     0,     0,
  3099        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3100        0,     0,     0,   183,   184,   185,   186,   187,   188,   189,
  3101      190,   191,   192,     0,   193,   194,     0,     0,     0,     0,
  3102        0,   195,   401,   122,   123,   124,   125,   126,   127,   128,
  3103      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
  3104      139,   140,   141,   142,   143,   144,   145,     0,     0,     0,
  3105      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
  3106        0,     0,     0,     0,     0,   156,   157,   158,   159,   160,
  3107      161,   162,   163,   164,   285,   286,   165,   287,     0,     0,
  3108        0,     0,     0,     0,     0,     0,     0,     0,   166,   167,
  3109      168,   169,   170,   171,   172,   173,   174,     0,     0,   175,
  3110      176,     0,     0,   177,   178,   179,   180,     0,     0,     0,
  3111        0,     0,     0,     0,     0,     0,     0,     0,   181,   182,
  3112        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3113        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3114      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
  3115        0,   193,   194,     0,     0,     0,     0,     0,   195,   122,
  3116      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
  3117      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
  3118      143,   144,   145,     0,     0,     0,   146,   147,   148,   149,
  3119      150,   151,   152,   153,   154,   155,     0,     0,     0,     0,
  3120        0,   156,   157,   158,   159,   160,   161,   162,   163,   164,
  3121      238,     0,   165,     0,     0,     0,     0,     0,     0,     0,
  3122        0,     0,     0,     0,   166,   167,   168,   169,   170,   171,
  3123      172,   173,   174,     0,     0,   175,   176,     0,     0,   177,
  3124      178,   179,   180,     0,     0,     0,     0,     0,     0,     0,
  3125        0,     0,     0,     0,   181,   182,     0,     0,    57,     0,
  3126        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3127        0,     0,     0,     0,     0,     0,   183,   184,   185,   186,
  3128      187,   188,   189,   190,   191,   192,     0,   193,   194,     0,
  3129        0,     0,     0,     0,   195,   122,   123,   124,   125,   126,
  3130      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
  3131      137,   138,   139,   140,   141,   142,   143,   144,   145,     0,
  3132        0,     0,   146,   147,   148,   149,   150,   151,   152,   153,
  3133      154,   155,     0,     0,     0,     0,     0,   156,   157,   158,
  3134      159,   160,   161,   162,   163,   164,     0,     0,   165,     0,
  3135        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3136      166,   167,   168,   169,   170,   171,   172,   173,   174,     0,
  3137        0,   175,   176,     0,     0,   177,   178,   179,   180,     0,
  3138        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3139      181,   182,     0,     0,    57,     0,     0,     0,     0,     0,
  3140        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3141        0,     0,   183,   184,   185,   186,   187,   188,   189,   190,
  3142      191,   192,     0,   193,   194,     0,     0,     0,     0,     0,
  3143      195,   122,   123,   124,   125,   126,   127,   128,   129,   130,
  3144      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
  3145      141,   142,   143,   144,   145,     0,     0,     0,   146,   147,
  3146      148,   149,   150,   151,   152,   153,   154,   155,     0,     0,
  3147        0,     0,     0,   156,   157,   158,   159,   160,   161,   162,
  3148      163,   164,     0,     0,   165,     0,     0,     0,     0,     0,
  3149        0,     0,     0,     0,     0,     0,   166,   167,   168,   169,
  3150      170,   171,   172,   173,   174,     0,     0,   175,   176,     0,
  3151        0,   177,   178,   179,   180,     0,     0,     0,     0,     0,
  3152        0,     0,     0,     0,     0,     0,   181,   182,     0,     0,
  3153        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3154        0,     0,     0,     0,     0,     0,     0,     0,   183,   184,
  3155      185,   186,   187,   188,   189,   190,   191,   192,     0,   193,
  3156      194,     5,     6,     7,     0,     9,   195,     0,     0,    10,
  3157       11,     0,     0,     0,    12,     0,    13,    14,    15,   243,
  3158      244,    18,    19,     0,     0,     0,     0,     0,   245,   246,
  3159      247,    23,    24,    25,    26,     0,     0,   204,     0,     0,
  3160        0,     0,     0,     0,   273,     0,     0,    32,    33,    34,
  3161       35,    36,    37,    38,    39,    40,     0,    41,    42,    43,
  3162       44,     0,    45,    46,    47,     0,     0,     0,     0,     0,
  3163        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3164        0,     0,     0,     0,     0,     0,     0,   274,     0,     0,
  3165      207,    52,     0,    53,    54,     0,     0,     0,     0,    56,
  3166       57,    58,    59,    60,    61,    62,    63,    64,     0,     0,
  3167        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3168        0,     5,     6,     7,     0,     9,     0,     0,   275,    10,
  3169       11,     0,     0,     0,    12,   276,    13,    14,    15,   243,
  3170      244,    18,    19,     0,     0,     0,     0,     0,   245,   246,
  3171      247,    23,    24,    25,    26,     0,     0,   204,     0,     0,
  3172        0,     0,     0,     0,   273,     0,     0,    32,    33,    34,
  3173       35,    36,    37,    38,    39,    40,     0,    41,    42,    43,
  3174       44,     0,    45,    46,    47,     0,     0,     0,     0,     0,
  3175        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3176        0,     0,     0,     0,     0,     0,     0,   274,     0,     0,
  3177      207,    52,     0,    53,    54,     0,     0,     0,     0,    56,
  3178       57,    58,    59,    60,    61,    62,    63,    64,     0,     0,
  3179        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3180        0,     5,     6,     7,     8,     9,     0,     0,   275,    10,
  3181       11,     0,     0,     0,    12,   526,    13,    14,    15,    16,
  3182       17,    18,    19,     0,     0,     0,     0,     0,    20,    21,
  3183       22,    23,    24,    25,    26,     0,     0,    27,     0,     0,
  3184        0,     0,     0,    28,    29,    30,    31,    32,    33,    34,
  3185       35,    36,    37,    38,    39,    40,     0,    41,    42,    43,
  3186       44,     0,    45,    46,    47,     0,    48,    49,     0,     0,
  3187        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3188        0,     0,     0,     0,     0,     0,     0,    50,     0,     0,
  3189       51,    52,     0,    53,    54,     0,    55,     0,     0,    56,
  3190       57,    58,    59,    60,    61,    62,    63,    64,     0,     0,
  3191        0,     0,     0,     0,     0,     0,     0,     0,     5,     6,
  3192        7,     0,     9,     0,     0,     0,    10,    11,    65,    66,
  3193       67,    12,     0,    13,    14,    15,    16,    17,    18,    19,
  3194        0,     0,     0,     0,     0,    20,    21,    22,    23,    24,
  3195       25,    26,     0,     0,   204,     0,     0,     0,     0,     0,
  3196        0,    29,     0,     0,    32,    33,    34,    35,    36,    37,
  3197       38,    39,    40,   205,    41,    42,    43,    44,     0,    45,
  3198       46,    47,     0,    48,    49,     0,     0,     0,     0,     0,
  3199        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3200        0,     0,     0,     0,   206,     0,     0,   207,    52,     0,
  3201       53,    54,     0,   208,   209,   210,    56,    57,   211,    59,
  3202       60,    61,    62,    63,    64,     0,     0,     0,     0,     0,
  3203        0,     0,     0,     0,     0,     5,     6,     7,     8,     9,
  3204        0,     0,     0,    10,    11,    65,   212,    67,    12,     0,
  3205       13,    14,    15,    16,    17,    18,    19,     0,     0,     0,
  3206        0,     0,    20,    21,    22,    23,    24,    25,    26,     0,
  3207        0,    27,     0,     0,     0,     0,     0,    28,    29,     0,
  3208       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  3209        0,    41,    42,    43,    44,     0,    45,    46,    47,     0,
  3210       48,    49,     0,     0,     0,     0,     0,     0,     0,     0,
  3211        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3212        0,    50,     0,     0,    51,    52,     0,    53,    54,     0,
  3213       55,     0,     0,    56,    57,    58,    59,    60,    61,    62,
  3214       63,    64,     0,     0,     0,     0,     0,     0,     0,     0,
  3215        0,     0,     5,     6,     7,     0,     9,     0,     0,     0,
  3216       10,    11,    65,    66,    67,    12,     0,    13,    14,    15,
  3217      243,   244,    18,    19,     0,     0,     0,     0,     0,   245,
  3218      246,   247,    23,    24,    25,    26,     0,     0,   204,     0,
  3219        0,     0,     0,     0,     0,    29,     0,     0,    32,    33,
  3220       34,    35,    36,    37,    38,    39,    40,   205,    41,    42,
  3221       43,    44,     0,    45,    46,    47,     0,    48,    49,     0,
  3222        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3223        0,     0,     0,     0,     0,     0,     0,     0,   206,     0,
  3224        0,   207,    52,     0,    53,    54,     0,   619,   209,   210,
  3225       56,    57,   211,    59,    60,    61,    62,    63,    64,     0,
  3226        0,     0,     0,     0,     0,     0,     0,     0,     0,     5,
  3227        6,     7,     0,     9,     0,     0,     0,    10,    11,    65,
  3228      212,    67,    12,     0,    13,    14,    15,   243,   244,    18,
  3229       19,     0,     0,     0,     0,     0,   245,   246,   247,    23,
  3230       24,    25,    26,     0,     0,   204,     0,     0,     0,     0,
  3231        0,     0,    29,     0,     0,    32,    33,    34,    35,    36,
  3232       37,    38,    39,    40,   205,    41,    42,    43,    44,     0,
  3233       45,    46,    47,     0,    48,    49,     0,     0,     0,     0,
  3234        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3235        0,     0,     0,     0,     0,   206,     0,     0,   207,    52,
  3236        0,    53,    54,     0,   208,   209,     0,    56,    57,   211,
  3237       59,    60,    61,    62,    63,    64,     0,     0,     0,     0,
  3238        0,     0,     0,     0,     0,     0,     5,     6,     7,     0,
  3239        9,     0,     0,     0,    10,    11,    65,   212,    67,    12,
  3240        0,    13,    14,    15,   243,   244,    18,    19,     0,     0,
  3241        0,     0,     0,   245,   246,   247,    23,    24,    25,    26,
  3242        0,     0,   204,     0,     0,     0,     0,     0,     0,    29,
  3243        0,     0,    32,    33,    34,    35,    36,    37,    38,    39,
  3244       40,   205,    41,    42,    43,    44,     0,    45,    46,    47,
  3245        0,    48,    49,     0,     0,     0,     0,     0,     0,     0,
  3246        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3247        0,     0,   206,     0,     0,   207,    52,     0,    53,    54,
  3248        0,     0,   209,   210,    56,    57,   211,    59,    60,    61,
  3249       62,    63,    64,     0,     0,     0,     0,     0,     0,     0,
  3250        0,     0,     0,     5,     6,     7,     0,     9,     0,     0,
  3251        0,    10,    11,    65,   212,    67,    12,     0,    13,    14,
  3252       15,   243,   244,    18,    19,     0,     0,     0,     0,     0,
  3253      245,   246,   247,    23,    24,    25,    26,     0,     0,   204,
  3254        0,     0,     0,     0,     0,     0,    29,     0,     0,    32,
  3255       33,    34,    35,    36,    37,    38,    39,    40,   205,    41,
  3256       42,    43,    44,     0,    45,    46,    47,     0,    48,    49,
  3257        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3258        0,     0,     0,     0,     0,     0,     0,     0,     0,   206,
  3259        0,     0,   207,    52,     0,    53,    54,     0,   619,   209,
  3260        0,    56,    57,   211,    59,    60,    61,    62,    63,    64,
  3261        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3262        5,     6,     7,     0,     9,     0,     0,     0,    10,    11,
  3263       65,   212,    67,    12,     0,    13,    14,    15,   243,   244,
  3264       18,    19,     0,     0,     0,     0,     0,   245,   246,   247,
  3265       23,    24,    25,    26,     0,     0,   204,     0,     0,     0,
  3266        0,     0,     0,    29,     0,     0,    32,    33,    34,    35,
  3267       36,    37,    38,    39,    40,   205,    41,    42,    43,    44,
  3268        0,    45,    46,    47,     0,    48,    49,     0,     0,     0,
  3269        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3270        0,     0,     0,     0,     0,     0,   206,     0,     0,   207,
  3271       52,     0,    53,    54,     0,     0,   209,     0,    56,    57,
  3272      211,    59,    60,    61,    62,    63,    64,     0,     0,     0,
  3273        0,     0,     0,     0,     0,     0,     0,     5,     6,     7,
  3274        0,     9,     0,     0,     0,    10,    11,    65,   212,    67,
  3275       12,     0,    13,    14,    15,    16,    17,    18,    19,     0,
  3276        0,     0,     0,     0,    20,    21,    22,    23,    24,    25,
  3277       26,     0,     0,   204,     0,     0,     0,     0,     0,     0,
  3278       29,     0,     0,    32,    33,    34,    35,    36,    37,    38,
  3279       39,    40,     0,    41,    42,    43,    44,     0,    45,    46,
  3280       47,     0,    48,    49,     0,     0,     0,     0,     0,     0,
  3281        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3282        0,     0,     0,   206,     0,     0,   207,    52,     0,    53,
  3283       54,     0,   519,     0,     0,    56,    57,    58,    59,    60,
  3284       61,    62,    63,    64,     0,     0,     0,     0,     0,     0,
  3285        0,     0,     0,     0,     5,     6,     7,     0,     9,     0,
  3286        0,     0,    10,    11,    65,   212,    67,    12,     0,    13,
  3287       14,    15,   243,   244,    18,    19,     0,     0,     0,     0,
  3288        0,   245,   246,   247,    23,    24,    25,    26,     0,     0,
  3289      204,     0,     0,     0,     0,     0,     0,    29,     0,     0,
  3290       32,    33,    34,    35,    36,    37,    38,    39,    40,     0,
  3291       41,    42,    43,    44,     0,    45,    46,    47,     0,    48,
  3292       49,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3293        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3294      206,     0,     0,   207,    52,     0,    53,    54,     0,   208,
  3295        0,     0,    56,    57,    58,    59,    60,    61,    62,    63,
  3296       64,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3297        0,     5,     6,     7,     0,     9,     0,     0,     0,    10,
  3298       11,    65,   212,    67,    12,     0,    13,    14,    15,   243,
  3299      244,    18,    19,     0,     0,     0,     0,     0,   245,   246,
  3300      247,    23,    24,    25,    26,     0,     0,   204,     0,     0,
  3301        0,     0,     0,     0,    29,     0,     0,    32,    33,    34,
  3302       35,    36,    37,    38,    39,    40,     0,    41,    42,    43,
  3303       44,     0,    45,    46,    47,     0,    48,    49,     0,     0,
  3304        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3305        0,     0,     0,     0,     0,     0,     0,   206,     0,     0,
  3306      207,    52,     0,    53,    54,     0,   815,     0,     0,    56,
  3307       57,    58,    59,    60,    61,    62,    63,    64,     0,     0,
  3308        0,     0,     0,     0,     0,     0,     0,     0,     5,     6,
  3309        7,     0,     9,     0,     0,     0,    10,    11,    65,   212,
  3310       67,    12,     0,    13,    14,    15,   243,   244,    18,    19,
  3311        0,     0,     0,     0,     0,   245,   246,   247,    23,    24,
  3312       25,    26,     0,     0,   204,     0,     0,     0,     0,     0,
  3313        0,    29,     0,     0,    32,    33,    34,    35,    36,    37,
  3314       38,    39,    40,     0,    41,    42,    43,    44,     0,    45,
  3315       46,    47,     0,    48,    49,     0,     0,     0,     0,     0,
  3316        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3317        0,     0,     0,     0,   206,     0,     0,   207,    52,     0,
  3318       53,    54,     0,   519,     0,     0,    56,    57,    58,    59,
  3319       60,    61,    62,    63,    64,     0,     0,     0,     0,     0,
  3320        0,     0,     0,     0,     0,     5,     6,     7,     0,     9,
  3321        0,     0,     0,    10,    11,    65,   212,    67,    12,     0,
  3322       13,    14,    15,   243,   244,    18,    19,     0,     0,     0,
  3323        0,     0,   245,   246,   247,    23,    24,    25,    26,     0,
  3324        0,   204,     0,     0,     0,     0,     0,     0,    29,     0,
  3325        0,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  3326        0,    41,    42,    43,    44,     0,    45,    46,    47,     0,
  3327       48,    49,     0,     0,     0,     0,     0,     0,     0,     0,
  3328        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3329        0,   206,     0,     0,   207,    52,     0,    53,    54,     0,
  3330      619,     0,     0,    56,    57,    58,    59,    60,    61,    62,
  3331       63,    64,     0,     0,     0,     0,     0,     0,     0,     0,
  3332        0,     0,     5,     6,     7,     0,     9,     0,     0,     0,
  3333       10,    11,    65,   212,    67,    12,     0,    13,    14,    15,
  3334      243,   244,    18,    19,     0,     0,     0,     0,     0,   245,
  3335      246,   247,    23,    24,    25,    26,     0,     0,   204,     0,
  3336        0,     0,     0,     0,     0,    29,     0,     0,    32,    33,
  3337       34,    35,    36,    37,    38,    39,    40,     0,    41,    42,
  3338       43,    44,     0,    45,    46,    47,     0,    48,    49,     0,
  3339        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3340        0,     0,     0,     0,     0,     0,     0,     0,   206,     0,
  3341        0,   207,    52,     0,    53,    54,     0,     0,     0,     0,
  3342       56,    57,    58,    59,    60,    61,    62,    63,    64,     0,
  3343        0,     0,     0,     0,     0,     0,     0,     0,     0,     5,
  3344        6,     7,     0,     9,     0,     0,     0,    10,    11,    65,
  3345      212,    67,    12,     0,    13,    14,    15,    16,    17,    18,
  3346       19,     0,     0,     0,     0,     0,    20,    21,    22,    23,
  3347       24,    25,    26,     0,     0,   204,     0,     0,     0,     0,
  3348        0,     0,    29,     0,     0,    32,    33,    34,    35,    36,
  3349       37,    38,    39,    40,     0,    41,    42,    43,    44,     0,
  3350       45,    46,    47,     0,    48,    49,     0,     0,     0,     0,
  3351        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3352        0,     0,     0,     0,     0,   206,     0,     0,   207,    52,
  3353        0,    53,    54,     0,     0,     0,     0,    56,    57,    58,
  3354       59,    60,    61,    62,    63,    64,     0,     0,     0,     0,
  3355        0,     0,     0,     0,     0,     0,     5,     6,     7,     0,
  3356        9,     0,     0,     0,    10,    11,    65,   212,    67,    12,
  3357        0,    13,    14,    15,    16,    17,    18,    19,     0,     0,
  3358        0,     0,     0,    20,    21,    22,    23,    24,    25,    26,
  3359        0,     0,    27,     0,     0,     0,     0,     0,     0,    29,
  3360        0,     0,    32,    33,    34,    35,    36,    37,    38,    39,
  3361       40,     0,    41,    42,    43,    44,     0,    45,    46,    47,
  3362        0,    48,    49,     0,     0,     0,     0,     0,     0,     0,
  3363        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3364        0,     0,   206,     0,     0,   207,    52,     0,    53,    54,
  3365        0,     0,     0,     0,    56,    57,    58,    59,    60,    61,
  3366       62,    63,    64,     0,     0,     0,     0,     0,     0,     0,
  3367        0,     0,     0,     5,     6,     7,     0,     9,     0,     0,
  3368        0,    10,    11,    65,    66,    67,    12,     0,    13,    14,
  3369       15,   243,   244,    18,    19,     0,     0,     0,     0,     0,
  3370      245,   246,   247,    23,    24,    25,    26,     0,     0,   204,
  3371        0,     0,     0,     0,     0,     0,   273,     0,     0,    32,
  3372       33,    34,    35,    36,    37,    38,    39,    40,     0,    41,
  3373       42,    43,    44,     0,    45,    46,    47,     0,     0,     0,
  3374        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3375        0,     0,     0,     0,     0,     0,     0,     0,     0,   274,
  3376        0,     0,   327,    52,     0,    53,    54,     0,   328,     0,
  3377        0,    56,    57,    58,    59,    60,    61,    62,    63,    64,
  3378        0,     0,     0,     0,     0,     0,     5,     6,     7,     0,
  3379        9,     0,     0,     0,    10,    11,     0,     0,     0,    12,
  3380      275,    13,    14,    15,   243,   244,    18,    19,     0,     0,
  3381        0,     0,     0,   245,   246,   247,    23,    24,    25,    26,
  3382        0,     0,   204,     0,     0,     0,     0,     0,     0,   273,
  3383        0,     0,    32,    33,    34,    35,    36,    37,    38,    39,
  3384       40,     0,    41,    42,    43,    44,     0,    45,    46,    47,
  3385        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3386        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3387        0,     0,   373,     0,     0,    51,    52,     0,    53,    54,
  3388        0,    55,     0,     0,    56,    57,    58,    59,    60,    61,
  3389       62,    63,    64,     0,     0,     0,     0,     0,     0,     5,
  3390        6,     7,     0,     9,     0,     0,     0,    10,    11,     0,
  3391        0,     0,    12,   275,    13,    14,    15,   243,   244,    18,
  3392       19,     0,     0,     0,     0,     0,   245,   246,   247,    23,
  3393       24,    25,    26,     0,     0,   204,     0,     0,     0,     0,
  3394        0,     0,   273,     0,     0,    32,    33,    34,   381,    36,
  3395       37,    38,   382,    40,     0,    41,    42,    43,    44,     0,
  3396       45,    46,    47,     0,     0,     0,     0,     0,     0,     0,
  3397        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3398        0,   383,     0,     0,     0,   384,     0,     0,   207,    52,
  3399        0,    53,    54,     0,     0,     0,     0,    56,    57,    58,
  3400       59,    60,    61,    62,    63,    64,     0,     0,     0,     0,
  3401        0,     0,     5,     6,     7,     0,     9,     0,     0,     0,
  3402       10,    11,     0,     0,     0,    12,   275,    13,    14,    15,
  3403      243,   244,    18,    19,     0,     0,     0,     0,     0,   245,
  3404      246,   247,    23,    24,    25,    26,     0,     0,   204,     0,
  3405        0,     0,     0,     0,     0,   273,     0,     0,    32,    33,
  3406       34,   381,    36,    37,    38,   382,    40,     0,    41,    42,
  3407       43,    44,     0,    45,    46,    47,     0,     0,     0,     0,
  3408        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3409        0,     0,     0,     0,     0,     0,     0,     0,   384,     0,
  3410        0,   207,    52,     0,    53,    54,     0,     0,     0,     0,
  3411       56,    57,    58,    59,    60,    61,    62,    63,    64,     0,
  3412        0,     0,     0,     0,     0,     5,     6,     7,     0,     9,
  3413        0,     0,     0,    10,    11,     0,     0,     0,    12,   275,
  3414       13,    14,    15,   243,   244,    18,    19,     0,     0,     0,
  3415        0,     0,   245,   246,   247,    23,    24,    25,    26,     0,
  3416        0,   204,     0,     0,     0,     0,     0,     0,   273,     0,
  3417        0,    32,    33,    34,    35,    36,    37,    38,    39,    40,
  3418        0,    41,    42,    43,    44,     0,    45,    46,    47,     0,
  3419        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3420        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3421        0,   274,     0,     0,   327,    52,     0,    53,    54,     0,
  3422        0,     0,     0,    56,    57,    58,    59,    60,    61,    62,
  3423       63,    64,     0,     0,     0,     0,     0,     0,     5,     6,
  3424        7,     0,     9,     0,     0,     0,    10,    11,     0,     0,
  3425        0,    12,   275,    13,    14,    15,   243,   244,    18,    19,
  3426        0,     0,     0,     0,     0,   245,   246,   247,    23,    24,
  3427       25,    26,     0,     0,   204,     0,     0,     0,     0,     0,
  3428        0,   273,     0,     0,    32,    33,    34,    35,    36,    37,
  3429       38,    39,    40,     0,    41,    42,    43,    44,     0,    45,
  3430       46,    47,     0,     0,     0,     0,     0,     0,     0,     0,
  3431        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3432        0,     0,     0,     0,   966,     0,     0,   207,    52,     0,
  3433       53,    54,     0,     0,     0,     0,    56,    57,    58,    59,
  3434       60,    61,    62,    63,    64,     0,     0,     0,     0,     0,
  3435        0,     5,     6,     7,     0,     9,     0,     0,     0,    10,
  3436       11,     0,     0,     0,    12,   275,    13,    14,    15,   243,
  3437      244,    18,    19,     0,     0,     0,     0,     0,   245,   246,
  3438      247,    23,    24,    25,    26,     0,     0,   204,     0,     0,
  3439        0,     0,     0,     0,   273,     0,     0,    32,    33,    34,
  3440       35,    36,    37,    38,    39,    40,     0,    41,    42,    43,
  3441       44,     0,    45,    46,    47,     0,     0,     0,     0,     0,
  3442        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3443        0,     0,     0,     0,     0,     0,     0,  1006,     0,     0,
  3444      207,    52,     0,    53,    54,     0,     0,     0,     0,    56,
  3445       57,    58,    59,    60,    61,    62,    63,    64,     0,     0,
  3446        0,     0,     0,   571,   572,     0,     0,   573,     0,     0,
  3447        0,     0,     0,     0,     0,     0,     0,     0,   275,   166,
  3448      167,   168,   169,   170,   171,   172,   173,   174,     0,     0,
  3449      175,   176,     0,     0,   177,   178,   179,   180,     0,     0,
  3450        0,     0,     0,     0,     0,     0,     0,     0,     0,   181,
  3451      182,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3452        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3453        0,   183,   184,   185,   186,   187,   188,   189,   190,   191,
  3454      192,     0,   193,   194,   608,   572,     0,     0,   609,   195,
  3455        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3456      166,   167,   168,   169,   170,   171,   172,   173,   174,     0,
  3457        0,   175,   176,     0,     0,   177,   178,   179,   180,     0,
  3458        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3459      181,   182,     0,     0,     0,     0,     0,     0,     0,     0,
  3460        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3461        0,     0,   183,   184,   185,   186,   187,   188,   189,   190,
  3462      191,   192,     0,   193,   194,   623,   564,     0,     0,   624,
  3463      195,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3464        0,   166,   167,   168,   169,   170,   171,   172,   173,   174,
  3465        0,     0,   175,   176,     0,     0,   177,   178,   179,   180,
  3466        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3467        0,   181,   182,     0,     0,     0,     0,     0,     0,     0,
  3468        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3469        0,     0,     0,   183,   184,   185,   186,   187,   188,   189,
  3470      190,   191,   192,     0,   193,   194,   626,   572,     0,     0,
  3471      627,   195,     0,     0,     0,     0,     0,     0,     0,     0,
  3472        0,     0,   166,   167,   168,   169,   170,   171,   172,   173,
  3473      174,     0,     0,   175,   176,     0,     0,   177,   178,   179,
  3474      180,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3475        0,     0,   181,   182,     0,     0,     0,     0,     0,     0,
  3476        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3477        0,     0,     0,     0,   183,   184,   185,   186,   187,   188,
  3478      189,   190,   191,   192,     0,   193,   194,   650,   564,     0,
  3479        0,   651,   195,     0,     0,     0,     0,     0,     0,     0,
  3480        0,     0,     0,   166,   167,   168,   169,   170,   171,   172,
  3481      173,   174,     0,     0,   175,   176,     0,     0,   177,   178,
  3482      179,   180,     0,     0,     0,     0,     0,     0,     0,     0,
  3483        0,     0,     0,   181,   182,     0,     0,     0,     0,     0,
  3484        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3485        0,     0,     0,     0,     0,   183,   184,   185,   186,   187,
  3486      188,   189,   190,   191,   192,     0,   193,   194,   653,   572,
  3487        0,     0,   654,   195,     0,     0,     0,     0,     0,     0,
  3488        0,     0,     0,     0,   166,   167,   168,   169,   170,   171,
  3489      172,   173,   174,     0,     0,   175,   176,     0,     0,   177,
  3490      178,   179,   180,     0,     0,     0,     0,     0,     0,     0,
  3491        0,     0,     0,     0,   181,   182,     0,     0,     0,     0,
  3492        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3493        0,     0,     0,     0,     0,     0,   183,   184,   185,   186,
  3494      187,   188,   189,   190,   191,   192,     0,   193,   194,   741,
  3495      564,     0,     0,   742,   195,     0,     0,     0,     0,     0,
  3496        0,     0,     0,     0,     0,   166,   167,   168,   169,   170,
  3497      171,   172,   173,   174,     0,     0,   175,   176,     0,     0,
  3498      177,   178,   179,   180,     0,     0,     0,     0,     0,     0,
  3499        0,     0,     0,     0,     0,   181,   182,     0,     0,     0,
  3500        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3501        0,     0,     0,     0,     0,     0,     0,   183,   184,   185,
  3502      186,   187,   188,   189,   190,   191,   192,     0,   193,   194,
  3503      744,   572,     0,     0,   745,   195,     0,     0,     0,     0,
  3504        0,     0,     0,     0,     0,     0,   166,   167,   168,   169,
  3505      170,   171,   172,   173,   174,     0,     0,   175,   176,     0,
  3506        0,   177,   178,   179,   180,     0,     0,     0,     0,     0,
  3507        0,     0,     0,     0,     0,     0,   181,   182,     0,     0,
  3508        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3509        0,     0,     0,     0,     0,     0,     0,     0,   183,   184,
  3510      185,   186,   187,   188,   189,   190,   191,   192,     0,   193,
  3511      194,   750,   564,     0,     0,   751,   195,     0,     0,     0,
  3512        0,     0,     0,     0,     0,     0,     0,   166,   167,   168,
  3513      169,   170,   171,   172,   173,   174,     0,     0,   175,   176,
  3514        0,     0,   177,   178,   179,   180,     0,     0,     0,     0,
  3515        0,     0,     0,     0,     0,     0,     0,   181,   182,     0,
  3516        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3517        0,     0,     0,     0,     0,     0,     0,     0,     0,   183,
  3518      184,   185,   186,   187,   188,   189,   190,   191,   192,     0,
  3519      193,   194,   820,   564,     0,     0,   821,   195,     0,     0,
  3520        0,     0,     0,     0,     0,     0,     0,     0,   166,   167,
  3521      168,   169,   170,   171,   172,   173,   174,     0,     0,   175,
  3522      176,     0,     0,   177,   178,   179,   180,     0,     0,     0,
  3523        0,     0,     0,     0,     0,     0,     0,     0,   181,   182,
  3524        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3525        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3526      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
  3527        0,   193,   194,   823,   572,     0,     0,   824,   195,     0,
  3528        0,     0,     0,     0,     0,     0,     0,     0,     0,   166,
  3529      167,   168,   169,   170,   171,   172,   173,   174,     0,     0,
  3530      175,   176,     0,     0,   177,   178,   179,   180,     0,     0,
  3531        0,     0,     0,     0,     0,     0,     0,     0,     0,   181,
  3532      182,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3533        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3534        0,   183,   184,   185,   186,   187,   188,   189,   190,   191,
  3535      192,     0,   193,   194,  1048,   564,     0,     0,  1049,   195,
  3536        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3537      166,   167,   168,   169,   170,   171,   172,   173,   174,     0,
  3538        0,   175,   176,     0,     0,   177,   178,   179,   180,     0,
  3539        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3540      181,   182,     0,     0,     0,     0,     0,     0,     0,     0,
  3541        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3542        0,     0,   183,   184,   185,   186,   187,   188,   189,   190,
  3543      191,   192,     0,   193,   194,  1051,   572,     0,     0,  1052,
  3544      195,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3545        0,   166,   167,   168,   169,   170,   171,   172,   173,   174,
  3546        0,     0,   175,   176,     0,     0,   177,   178,   179,   180,
  3547        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3548        0,   181,   182,     0,     0,     0,     0,     0,     0,     0,
  3549        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3550        0,     0,     0,   183,   184,   185,   186,   187,   188,   189,
  3551      190,   191,   192,     0,   193,   194,  1065,   564,     0,     0,
  3552     1066,   195,     0,     0,     0,     0,     0,     0,     0,     0,
  3553        0,     0,   166,   167,   168,   169,   170,   171,   172,   173,
  3554      174,     0,     0,   175,   176,     0,     0,   177,   178,   179,
  3555      180,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  3556        0,     0,   181,   182,   331,   332,   333,   334,   335,   336,
  3557      337,   338,   339,   340,   341,   342,   343,     0,     0,   344,
  3558      345,     0,     0,     0,   183,   184,   185,   186,   187,   188,
  3559      189,   190,   191,   192,     0,   193,   194,     0,     0,     0,
  3560        0,     0,   195,     0,     0,     0,     0,     0,     0,     0,
  3561        0,     0,   346,     0,   347,   348,   349,   350,   351,   352,
  3562      353,   354,   355,   356,     0,     0,     0,     0,     0,     0,
  3563        0,     0,     0,     0,     0,     0,     0,     0,     0,   236
  3566 static const yytype_int16 yycheck[] =
  3568        2,    99,    27,    69,    29,    81,    87,    66,    57,    76,
  3569        8,    16,    17,    22,     8,    20,    28,    98,   367,   225,
  3570      480,    16,    17,    55,    51,    20,   330,    93,    89,    90,
  3571       28,   267,    93,   429,    28,   271,   410,   411,    90,   361,
  3572        8,    93,   585,     4,   476,   625,   421,   480,    97,    81,
  3573       93,    53,    54,   584,   429,    55,   797,    65,    53,     2,
  3574       28,     4,    94,    95,    96,   384,    51,    76,   877,   449,
  3575      875,   467,   652,    16,    17,   936,   235,    20,   360,   668,
  3576      681,   363,   788,     2,    25,     4,   255,   729,     0,    57,
  3577       25,   733,    88,    26,   526,    69,    78,    29,    16,    17,
  3578       25,   260,    20,   425,   263,    16,    17,   330,    51,    20,
  3579       26,   897,    55,   788,    13,    88,   137,    25,    58,    88,
  3580       56,    25,   797,    66,   145,   407,   137,   932,  1011,    97,
  3581       70,   145,    26,   100,   145,    53,    54,    25,    81,   220,
  3582      122,    90,   424,    63,   426,   117,    89,    90,   144,    28,
  3583       93,    94,    95,    96,    87,    88,   478,   124,   327,    99,
  3584      100,    13,   143,   743,  1025,   137,   952,    27,   117,   250,
  3585      452,   144,    25,   753,   235,   144,   237,   986,  1061,    25,
  3586      207,   248,   114,   988,   124,    88,   139,   410,   411,    25,
  3587      602,   257,   145,   113,    37,    38,   137,   479,   279,   940,
  3588      276,   134,   137,   136,   139,   291,   139,   293,   668,   295,
  3589      134,   144,   137,   299,   257,   242,   117,   219,   134,  1024,
  3590      143,    13,   897,   225,   229,   117,   231,   232,   255,   137,
  3591      232,    13,   438,   137,   229,   668,   231,   633,   137,   945,
  3592      134,   144,   822,   142,   276,   139,   145,    13,   273,   137,
  3593      311,   312,   313,   314,   143,   316,   317,   632,   633,   311,
  3594      312,   313,   314,   643,   207,   940,   325,   275,   590,    13,
  3595      255,   330,   431,    13,   706,   864,   435,   866,   600,   921,
  3596      599,   440,   142,   257,   137,   145,   229,   888,   231,   232,
  3597      142,   137,   235,   145,   237,   376,   328,   456,  1004,   242,
  3598      327,   137,   145,   139,   370,   143,   137,   368,   369,   591,
  3599      253,   229,   255,   231,   145,    63,   368,   369,   229,   601,
  3600      231,   264,   383,    15,   137,    17,   857,   370,   328,  1004,
  3601      325,    13,   418,   276,   253,   330,  1011,   749,   140,   717,
  3602      714,   715,   327,   145,   103,   264,   724,   721,   722,   310,
  3603      142,   410,   411,   145,    88,   788,   361,   958,   959,   361,
  3604      142,    13,  1068,   145,   797,   113,   525,   310,   311,   312,
  3605      313,   314,   315,   316,   317,    90,   142,   137,   921,   145,
  3606       13,    13,   325,   139,   327,   328,  1061,   330,    56,   711,
  3607      739,   310,    87,    88,    63,   363,   315,   117,   142,   139,
  3608      476,   145,   142,    91,   864,   145,   866,   493,    52,    25,
  3609      144,   647,    56,   137,   500,    88,   622,   139,   361,   587,
  3610      425,   364,    70,   425,   728,   368,   369,    88,   710,   137,
  3611      712,   864,    88,   866,   446,   437,   438,    37,    38,   407,
  3612      383,   110,  1043,   112,   476,    90,   858,   449,   446,   144,
  3613      526,   662,   446,   865,    14,    15,   537,   139,   426,   833,
  3614      142,    90,    25,   145,   897,    87,    88,   410,   411,    25,
  3615     1050,   144,   117,   478,   143,   871,   478,    90,   446,   127,
  3616      128,   129,   425,   144,   452,   708,   898,   646,   144,    26,
  3617      142,   714,   715,   145,   526,   134,   871,   139,   721,   722,
  3618      567,   117,    88,   421,   117,    90,   449,   940,   575,   142,
  3619      142,   479,   145,   145,   136,    63,   459,   583,   584,    67,
  3620       25,   137,   144,   139,   140,   142,    70,   552,   145,   145,
  3621      449,    88,   117,   476,    52,   478,    54,    55,    56,    57,
  3622      139,   117,   603,   610,   140,   570,   464,    75,    76,   141,
  3623       87,    88,   137,   580,   117,   582,    63,   135,   144,   568,
  3624      909,   117,   110,    90,   112,   771,   915,   576,   779,   780,
  3625      738,  1004,   648,   985,   137,   636,   578,   140,  1011,    90,
  3626       56,   137,   145,   526,   140,   590,   754,   144,   590,   145,
  3627      117,   586,   120,   121,    90,   600,   755,   134,   600,   136,
  3628      625,   610,   139,   110,   616,   112,   117,   144,   610,   113,
  3629      833,    90,   117,   772,    70,   137,   648,    90,   616,   137,
  3630      622,   117,   616,   591,   783,   410,   411,   652,  1061,    26,
  3631      706,   113,   137,   601,    70,   140,   143,   580,   117,   582,
  3632      145,   643,   427,   428,   117,   113,   791,   590,   616,   708,
  3633      795,   718,   113,    87,    88,   714,   715,   600,   725,   602,
  3634      603,   759,   721,   722,   875,    97,   877,   137,   453,   125,
  3635      126,   127,   128,   129,   706,    17,    90,   679,   142,   681,
  3636      848,   747,   850,    87,    88,   746,    56,   748,    25,    90,
  3637       87,    88,   860,   636,   746,  1017,   748,    87,    88,   121,
  3638      643,    54,   136,   117,   137,   648,   711,    90,   757,   711,
  3639      144,    90,    65,    66,   632,   874,   117,   140,   743,   137,
  3640      135,   932,   933,   725,   643,   134,   728,   729,   753,   731,
  3641      137,   733,   136,   728,   117,   139,  1018,   134,   117,   136,
  3642      144,   137,   139,    90,   712,   143,   136,   144,   143,   137,
  3643      918,   919,   897,   137,   144,   923,   137,    44,   137,   927,
  3644      785,   117,    63,   706,   707,   708,   139,   926,   711,   771,
  3645      117,   714,   715,    10,   833,   986,     8,   988,   721,   722,
  3646       87,    88,    13,    16,    17,   135,   847,    20,   707,   757,
  3647      137,   857,    63,   859,   791,   847,    52,   822,    54,    55,
  3648       56,    57,   117,   746,    90,   748,   749,   137,   810,   110,
  3649      812,   112,   113,  1024,   115,    48,    49,   844,    87,    88,
  3650       53,    54,    87,    88,   851,   852,   994,   137,   855,   136,
  3651       52,   117,   137,    66,    67,   137,   683,   144,   685,   110,
  3652      842,   112,   113,   845,    52,    87,    88,   137,    10,    87,
  3653       88,   137,    52,  1021,  1022,    59,    60,    61,    62,  1004,
  3654      135,    10,   928,  1008,   137,   119,  1011,   136,  1013,   141,
  3655       90,   136,   897,    15,   901,   144,   908,    87,    88,   144,
  3656      139,   137,    87,    88,   137,   912,   888,   968,   135,   137,
  3657      833,   135,    87,    88,   136,    87,    88,   117,   136,     9,
  3658      897,   844,   144,   137,   847,    70,   144,    91,   851,   852,
  3659      937,   938,   855,   137,   140,   858,  1061,   137,  1063,   921,
  3660       85,    86,   865,  1068,   956,  1070,   136,   952,   142,   714,
  3661      715,   136,   122,    56,   144,  1080,   721,   722,   137,   144,
  3662        2,   136,     4,   137,   136,   972,   137,   974,   137,   144,
  3663      137,   137,   144,   980,    63,   898,   958,   959,   901,   124,
  3664      125,   126,   127,   128,   129,   908,   991,   117,   137,   912,
  3665      897,  1003,   205,  1000,    63,   208,   209,   210,   137,   212,
  3666      137,   766,   767,    90,   769,   770,   137,    87,    88,    51,
  3667      137,   135,   137,    55,   937,   938,   229,   122,   231,   232,
  3668       56,   110,   137,   112,   113,    87,    88,  1004,   111,   137,
  3669      117,  1008,  1017,   956,  1011,  1017,  1013,  1019,  1020,    81,
  3670       63,   110,   137,   112,   113,  1050,   137,   139,   459,   972,
  3671      137,   974,    94,    95,    96,   139,   136,   980,   885,   886,
  3672       63,  1043,   985,   890,   144,   892,   137,   894,   833,    90,
  3673     1018,    96,   961,   962,   136,    94,   797,  1000,    85,   800,
  3674     1003,   725,   144,  1020,  1061,   779,  1063,   110,   897,   112,
  3675      113,  1068,   700,  1070,  1017,   812,   117,  1004,  1025,   760,
  3676      518,  1008,  1019,  1080,  1011,   870,  1013,   110,   102,   112,
  3677      113,   211,   325,   299,    59,    97,   137,   330,   331,   332,
  3678      333,   334,   335,   929,   791,   338,   339,   340,   341,   342,
  3679      343,   344,   345,   346,  1004,  1008,   349,   350,   351,   352,
  3680      353,   354,   355,   356,   357,   358,   788,    -1,   361,  1038,
  3681     1039,    -1,    -1,    -1,  1061,  1044,  1063,  1046,  1047,    -1,
  3682       -1,  1068,    -1,  1070,    -1,   207,    -1,    -1,    -1,   996,
  3683      997,   998,   999,  1080,    -1,    -1,   897,    -1,    -1,    -1,
  3684       52,    -1,    54,    55,    56,    57,  1075,  1076,  1077,  1078,
  3685       40,    41,    42,    43,    44,  1084,    -1,   410,   411,    -1,
  3686      242,    -1,    70,     2,    -1,     4,   419,   420,   421,    54,
  3687       -1,   253,   425,   255,   427,   428,   429,    85,    86,   940,
  3688       92,   942,   264,    -1,    -1,    -1,   947,    54,    55,    -1,
  3689       57,    -1,  1059,    -1,   276,   448,    -1,    -1,    65,    66,
  3690      453,    52,    -1,    54,    55,    56,    57,    -1,    -1,    -1,
  3691       -1,   464,    51,    -1,   467,    -1,    55,   125,   126,   127,
  3692      128,   129,    -1,    -1,    -1,   478,    -1,    52,   310,    54,
  3693       55,    56,    57,   315,    -1,    -1,    -1,    -1,    70,    -1,
  3694       -1,    92,    81,    -1,    -1,   327,   328,    98,   330,    -1,
  3695     1011,   504,  1013,    85,    86,    94,    95,    96,    97,    52,
  3696       -1,    54,    55,    56,    57,    58,   519,    -1,    52,  1030,
  3697       54,    55,    56,    57,    58,    -1,    -1,    70,    -1,    -1,
  3698       -1,    -1,   364,    -1,    -1,    -1,    70,    -1,    -1,    -1,
  3699      122,   123,   124,   125,   126,   127,   128,   129,    -1,    92,
  3700     1061,    -1,  1063,    -1,    -1,    -1,    99,   100,    92,  1070,
  3701       -1,    -1,    -1,    -1,    98,    99,   100,    -1,    -1,  1080,
  3702      205,    -1,    -1,   208,   209,   210,    -1,    -1,   410,   411,
  3703       -1,   124,    -1,   586,     2,    -1,     4,   590,    -1,    -1,
  3704      124,    -1,    -1,   127,    -1,    -1,    52,   600,    54,    55,
  3705       56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3706       -1,   145,    -1,    -1,   617,    -1,   619,   449,   207,    -1,
  3707       -1,    -1,    -1,    -1,    -1,    -1,    -1,   459,    -1,   632,
  3708      633,    -1,    -1,    51,    -1,    -1,    92,    55,    -1,    -1,
  3709       -1,    -1,    98,    -1,   476,    -1,    -1,    -1,    -1,    -1,
  3710       -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,    -1,    -1,
  3711       -1,    -1,    -1,    81,   253,    -1,   255,    -1,    -1,    -1,
  3712       -1,    -1,    -1,    -1,   677,   264,    94,    95,    96,    97,
  3713       -1,     2,    -1,     4,    -1,    -1,    -1,   276,    -1,    -1,
  3714      325,    -1,    -1,    -1,   526,   330,    -1,    -1,    -1,    -1,
  3715      703,    -1,    -1,    -1,    -1,   708,   709,    -1,   711,    -1,
  3716       -1,   714,   715,    -1,    -1,    -1,    -1,    -1,   721,   722,
  3717       -1,   310,    -1,    -1,    -1,   728,   315,    -1,    -1,    -1,
  3718       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   327,   328,
  3719       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   580,    -1,
  3720      582,    52,    -1,    54,    55,    56,    57,    58,    -1,    -1,
  3721       -1,    -1,    -1,   766,   767,    -1,   769,   770,    -1,    70,
  3722      602,    -1,    -1,    94,    -1,   364,    -1,    -1,    -1,    -1,
  3723       -1,    -1,    -1,    -1,   787,   420,   421,    -1,    -1,   207,
  3724       -1,    92,    -1,    -1,   429,    -1,    -1,    98,    99,   100,
  3725       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3726       -1,   643,   815,    -1,    -1,    -1,   648,    -1,    -1,    -1,
  3727       -1,    -1,   825,   124,   242,    -1,   127,    -1,    -1,   464,
  3728      833,    -1,   467,    -1,    -1,   253,    -1,   255,   139,    -1,
  3729       -1,    -1,    -1,    -1,    -1,    -1,   264,    -1,    -1,    -1,
  3730       -1,   854,    -1,    -1,    -1,    -1,    -1,   689,   276,    -1,
  3731      449,    -1,    -1,    -1,    -1,    -1,    -1,   870,   871,    -1,
  3732      459,    -1,    -1,    -1,   706,   707,   708,    -1,    -1,    -1,
  3733       -1,    -1,   714,   715,   519,    -1,   207,   476,    -1,   721,
  3734      722,    -1,   310,    -1,    -1,    -1,    -1,   315,    -1,    -1,
  3735       -1,    52,    -1,    54,    55,    56,    57,    58,    -1,   327,
  3736      328,    -1,    -1,    -1,    -1,    -1,    -1,   749,    -1,    70,
  3737       -1,   242,    -1,    -1,    -1,     2,    -1,     4,    -1,    -1,
  3738       -1,    -1,   253,    -1,   255,    -1,    -1,   526,    -1,    -1,
  3739       -1,    92,    -1,   264,    -1,    -1,   364,    98,    99,   100,
  3740       -1,   586,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3741       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3742       -1,    -1,    -1,   124,    51,    -1,   127,    -1,    -1,    -1,
  3743       -1,    -1,   617,    -1,   619,    -1,    -1,    -1,    -1,   310,
  3744       -1,   580,    -1,   582,   315,    -1,    -1,   632,   633,    -1,
  3745       -1,   833,    -1,    -1,    -1,    -1,   327,    -1,    -1,   330,
  3746       -1,    -1,   844,   602,  1017,    -1,    -1,    -1,    -1,   851,
  3747      852,    -1,    -1,   855,    -1,    -1,   858,    -1,    -1,    -1,
  3748       -1,   449,    -1,   865,    -1,    -1,    -1,    -1,    -1,    -1,
  3749       -1,   459,   677,   364,    -1,    -1,    -1,    -1,    -1,    -1,
  3750       -1,    -1,    -1,    -1,   643,    -1,    -1,    -1,   476,   648,
  3751       -1,    -1,    -1,    -1,    -1,    -1,   898,    -1,   703,   901,
  3752       -1,    -1,    -1,    -1,    -1,    -1,   908,    -1,    -1,    -1,
  3753      912,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   410,
  3754      411,    -1,    -1,   728,    -1,    -1,    -1,    -1,    -1,    -1,
  3755       -1,    -1,    -1,    -1,    -1,   937,   938,    -1,   526,    -1,
  3756       -1,    -1,    -1,    -1,    -1,    -1,    -1,   706,   707,    -1,
  3757       -1,    -1,    -1,    -1,   956,    -1,    -1,    -1,   449,    -1,
  3758      207,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   459,    -1,
  3759      972,    -1,   974,    -1,    -1,    -1,    -1,    -1,   980,    -1,
  3760       -1,    -1,   787,   985,    -1,    -1,    -1,    -1,    -1,    -1,
  3761      749,    -1,   580,    44,   582,   242,    -1,    -1,  1000,    -1,
  3762       -1,  1003,    -1,    -1,    -1,    -1,   253,    -1,   255,    -1,
  3763      815,    -1,    -1,    -1,   602,    -1,    -1,   264,    -1,    70,
  3764       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
  3765       81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
  3766       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   854,
  3767       -1,    -1,    -1,    -1,    -1,   643,    -1,    -1,    -1,    -1,
  3768      648,    -1,    -1,   310,    -1,    -1,   871,   118,   315,   120,
  3769      121,   122,   123,   124,   125,   126,   127,   128,   129,    -1,
  3770      327,    -1,    -1,   330,    -1,   844,   137,    -1,    -1,   580,
  3771       -1,   582,   851,   852,    -1,    -1,   855,    -1,    -1,   858,
  3772       -1,    -1,    -1,    -1,    -1,    -1,   865,    -1,    -1,    -1,
  3773       -1,   602,    -1,    -1,    -1,    -1,    -1,   364,   706,   707,
  3774       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3775       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   898,
  3776       -1,    -1,   901,    -1,    -1,    -1,    -1,    -1,    -1,   908,
  3777       -1,    -1,   643,   912,    -1,    -1,    -1,    -1,    -1,    -1,
  3778       -1,   749,    -1,   410,   411,    -1,    -1,     0,    -1,    -1,
  3779       -1,    -1,    -1,    -1,    -1,     8,     9,    10,   937,   938,
  3780       13,    14,    15,    -1,    17,    -1,    -1,    -1,    -1,    -1,
  3781       -1,    -1,    -1,    26,    27,    -1,    -1,   956,    -1,    -1,
  3782       -1,    -1,   449,    -1,    37,    38,    -1,    40,    41,    42,
  3783       43,    44,   459,   972,    -1,   974,   707,   708,    -1,    -1,
  3784       -1,   980,    -1,   714,   715,    -1,   985,    -1,    -1,    -1,
  3785      721,   722,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3786       -1,  1000,    48,    49,  1003,    -1,    -1,    53,    54,    55,
  3787       -1,    -1,    -1,    -1,    87,    88,   844,    -1,   749,    -1,
  3788       -1,    67,    -1,   851,   852,    -1,    -1,   855,    -1,    -1,
  3789      858,    -1,    -1,    -1,    -1,    81,    -1,   865,   111,    -1,
  3790       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
  3791       96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3792       -1,   134,   135,    -1,    -1,    -1,   139,   140,    -1,   142,
  3793      898,   144,   145,   901,    -1,    -1,    -1,    -1,    -1,    -1,
  3794      908,    -1,    -1,    -1,   912,    -1,    -1,    -1,    -1,    -1,
  3795       -1,    -1,    -1,   580,    -1,   582,    -1,    -1,    -1,    -1,
  3796       -1,    -1,   833,    -1,    -1,    -1,    -1,    -1,    -1,   937,
  3797      938,    -1,    -1,   844,    -1,   602,    -1,    -1,    -1,    -1,
  3798      851,   852,    -1,    -1,   855,    -1,    -1,   858,   956,    -1,
  3799       -1,    -1,    -1,    -1,   865,    -1,    -1,    -1,    -1,    -1,
  3800       -1,    -1,    -1,    -1,   972,    -1,   974,    -1,    -1,    -1,
  3801       -1,    -1,   980,    -1,    -1,    -1,   643,   985,    -1,   205,
  3802       -1,    -1,   208,   209,   210,    -1,   212,   898,    -1,    -1,
  3803      901,    -1,  1000,    -1,    -1,  1003,    -1,   908,    -1,    -1,
  3804       -1,   912,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3805       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3806       -1,    -1,    -1,    -1,    -1,    -1,   937,   938,    -1,    -1,
  3807       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3808      707,   708,    -1,    -1,    -1,    -1,    -1,   714,   715,    -1,
  3809      276,    -1,    -1,    -1,   721,   722,    -1,    -1,    -1,    -1,
  3810       -1,   972,    -1,   974,    -1,    -1,    -1,    -1,    -1,   980,
  3811       -1,    -1,    -1,    -1,   985,    -1,    -1,    -1,    -1,    -1,
  3812       -1,    -1,   749,    -1,    -1,    -1,    -1,    -1,    -1,  1000,
  3813       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3814       -1,    -1,   328,    -1,    -1,   331,   332,   333,   334,   335,
  3815       -1,    -1,   338,   339,   340,   341,   342,   343,   344,   345,
  3816      346,    -1,    -1,   349,   350,   351,   352,   353,   354,   355,
  3817      356,   357,   358,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3818       52,    53,    -1,    -1,    56,    -1,    -1,    -1,    -1,    -1,
  3819       -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,    71,
  3820       72,    73,    74,    75,    76,    -1,   833,    79,    80,    -1,
  3821       -1,    83,    84,    85,    86,    -1,    -1,   844,    -1,    -1,
  3822       -1,    -1,    -1,    -1,   851,   852,    98,    99,   855,    -1,
  3823       -1,   858,    -1,   419,   420,   421,    -1,    -1,   865,    -1,
  3824       -1,   427,   428,   429,    -1,    -1,    -1,    -1,   120,   121,
  3825      122,   123,   124,   125,   126,   127,   128,   129,    -1,   131,
  3826      132,    -1,   448,    -1,    -1,    -1,   138,   453,    -1,    -1,
  3827       -1,   898,    -1,    -1,   901,    -1,    -1,    -1,   464,    -1,
  3828       -1,   467,    -1,    -1,    -1,   912,    -1,    -1,    -1,    -1,
  3829      476,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3830       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3831      937,   938,    -1,    -1,    -1,    -1,    -1,    -1,   504,    -1,
  3832       -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,    73,
  3833       74,    75,    76,   519,    -1,    79,    80,    -1,    -1,    -1,
  3834      526,    85,    86,    -1,    -1,   972,    -1,   974,    -1,    -1,
  3835       -1,    -1,    -1,   980,    -1,    -1,    -1,    -1,   985,    -1,
  3836       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3837       -1,    -1,    -1,  1000,    -1,    -1,   120,   121,   122,   123,
  3838      124,   125,   126,   127,   128,   129,    -1,    -1,    -1,    -1,
  3839       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3840      586,    -1,    -1,    -1,     0,     1,    -1,     3,     4,     5,
  3841        6,     7,    -1,    -1,    -1,    11,    12,    -1,    -1,    -1,
  3842       16,    -1,    18,    19,    20,    21,    22,    23,    24,    -1,
  3843       -1,   617,    -1,   619,    30,    31,    32,    33,    34,    35,
  3844       36,    -1,    -1,    39,    -1,    -1,   632,   633,    -1,    45,
  3845       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
  3846       56,    57,   648,    59,    60,    61,    62,    -1,    64,    65,
  3847       66,    -1,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
  3848       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3849       -1,   677,    -1,    89,    -1,    -1,    92,    93,    -1,    95,
  3850       96,    -1,    98,    -1,    -1,   101,   102,   103,   104,   105,
  3851      106,   107,   108,   109,    -1,    -1,    -1,   703,    -1,    -1,
  3852      706,    -1,    -1,   709,    -1,    -1,    -1,    -1,    -1,    -1,
  3853       -1,    -1,    -1,    -1,   130,   131,   132,    -1,    -1,    -1,
  3854       -1,    -1,   728,    -1,    -1,    -1,   142,    -1,    -1,   145,
  3855       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3856       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,
  3858      766,   767,    -1,   769,   770,    -1,    -1,     8,     9,    10,
  3859       -1,    -1,    13,    14,    15,    -1,    17,    -1,    -1,    -1,
  3860       -1,   787,    -1,    -1,    -1,    26,    27,    28,    29,    -1,
  3861       -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
  3862       41,    42,    43,    44,    -1,    -1,    -1,    -1,    -1,   815,
  3863       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   825,
  3864       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
  3865       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
  3866       81,    82,    -1,    -1,    85,    86,    87,    88,   854,    90,
  3867       91,    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,    -1,
  3868       -1,    -1,    -1,    -1,   870,   871,    -1,    -1,    -1,    -1,
  3869      111,    -1,    -1,   114,    -1,    -1,   117,   118,   119,   120,
  3870      121,   122,   123,   124,   125,   126,   127,   128,   129,    -1,
  3871       -1,    -1,    -1,   134,   135,   136,   137,     0,    -1,   140,
  3872      141,   142,   908,   144,   145,     8,     9,    10,    -1,    -1,
  3873       13,    14,    15,    -1,    17,    -1,    -1,    -1,    -1,    -1,
  3874       -1,    -1,    25,    -1,    27,    28,    29,    -1,    -1,    -1,
  3875       -1,    -1,    -1,    -1,    37,    38,    -1,    40,    41,    42,
  3876       43,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3877      956,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3878       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,
  3879       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
  3880       -1,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
  3881       -1,    -1,    -1,    -1,    97,    -1,    -1,  1003,    -1,    -1,
  3882       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
  3883       -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
  3884      123,   124,   125,   126,   127,   128,   129,    -1,    -1,    -1,
  3885       -1,    -1,   135,   136,   137,     0,    -1,   140,   141,   142,
  3886       -1,   144,   145,     8,     9,    10,    -1,    -1,    13,    14,
  3887       15,    -1,    17,    -1,    -1,    -1,    -1,    44,    -1,    -1,
  3888       25,    -1,    27,    28,    29,    -1,    -1,    -1,    -1,    -1,
  3889       -1,    -1,    37,    38,    -1,    40,    41,    42,    43,    44,
  3890       -1,    -1,    -1,    70,    71,    72,    73,    74,    75,    76,
  3891       77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
  3892       -1,    -1,    -1,    -1,    -1,    70,    71,    72,    73,    74,
  3893       75,    76,    77,    78,    79,    80,    81,    82,    -1,    -1,
  3894       85,    86,    87,    88,    -1,    90,    91,    -1,    -1,    -1,
  3895       -1,   118,    97,   120,   121,   122,   123,   124,   125,   126,
  3896      127,   128,   129,    -1,    -1,    -1,   111,    -1,    -1,   114,
  3897       -1,    -1,   117,   118,   119,   120,   121,   122,   123,   124,
  3898      125,   126,   127,   128,   129,    -1,    -1,    -1,    -1,    -1,
  3899      135,   136,   137,     0,    -1,   140,   141,   142,    -1,   144,
  3900      145,     8,     9,    10,    -1,    -1,    13,    14,    15,    -1,
  3901       17,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    26,
  3902       27,    28,    29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3903       37,    38,    -1,    40,    41,    42,    43,    44,    -1,    -1,
  3904       -1,    70,    71,    72,    73,    74,    75,    76,    77,    78,
  3905       79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
  3906       -1,    -1,    -1,    70,    71,    72,    73,    74,    75,    76,
  3907       77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
  3908       87,    88,    -1,    -1,    91,    -1,    -1,    -1,    -1,   118,
  3909       97,   120,   121,   122,   123,   124,   125,   126,   127,   128,
  3910      129,    -1,    -1,    -1,   111,    -1,    -1,   114,    -1,    -1,
  3911       -1,   118,   119,   120,   121,   122,   123,   124,   125,   126,
  3912      127,   128,   129,    -1,    -1,    -1,    -1,   134,   135,   136,
  3913      137,     0,    -1,   140,   141,   142,    -1,   144,   145,     8,
  3914        9,    10,    -1,    -1,    13,    14,    15,    -1,    17,    -1,
  3915       -1,    -1,    -1,    -1,    -1,    -1,    -1,    26,    27,    28,
  3916       29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
  3917       -1,    40,    41,    42,    43,    44,    -1,    -1,    -1,    70,
  3918       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
  3919       81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
  3920       -1,    70,    71,    72,    73,    74,    75,    76,    77,    78,
  3921       79,    80,    81,    82,    -1,    -1,    85,    86,    87,    88,
  3922       -1,    -1,    91,    -1,    -1,    -1,    -1,    -1,    97,   120,
  3923      121,   122,   123,   124,   125,   126,   127,   128,   129,    -1,
  3924       -1,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,   118,
  3925      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
  3926      129,    -1,    -1,    -1,    -1,   134,   135,   136,   137,     0,
  3927       -1,   140,   141,   142,    -1,   144,   145,     8,     9,    10,
  3928       -1,    -1,    13,    14,    15,    -1,    17,    -1,    -1,    -1,
  3929       -1,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    -1,
  3930       -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
  3931       41,    42,    43,    44,    -1,    -1,    -1,    70,    71,    72,
  3932       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
  3933       -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    70,
  3934       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
  3935       81,    82,    -1,    -1,    85,    86,    87,    88,    -1,    90,
  3936       91,    -1,    -1,    -1,    -1,    -1,    97,   120,   121,   122,
  3937      123,   124,   125,   126,   127,   128,   129,    -1,    -1,    -1,
  3938      111,    -1,    -1,   114,    -1,    -1,   117,   118,   119,   120,
  3939      121,   122,   123,   124,   125,   126,   127,   128,   129,    -1,
  3940       -1,    -1,    -1,    -1,   135,   136,   137,     0,    -1,   140,
  3941      141,   142,    -1,   144,   145,     8,     9,    10,    -1,    -1,
  3942       13,    14,    15,    -1,    17,    -1,    -1,    -1,    -1,    -1,
  3943       -1,    -1,    -1,    26,    27,    28,    -1,    -1,    -1,    -1,
  3944       -1,    -1,    -1,    -1,    37,    38,    -1,    40,    41,    42,
  3945       43,    44,    -1,    -1,    -1,    70,    71,    72,    73,    74,
  3946       75,    76,    -1,    -1,    79,    80,    -1,    -1,    -1,    -1,
  3947       85,    86,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,
  3948       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
  3949       -1,    -1,    85,    86,    87,    88,    -1,    -1,    91,    -1,
  3950       -1,    -1,    -1,    -1,    97,   120,   121,   122,   123,   124,
  3951      125,   126,   127,   128,   129,    -1,    -1,    -1,   111,    -1,
  3952       -1,    -1,    -1,    -1,    -1,   118,    -1,   120,   121,   122,
  3953      123,   124,   125,   126,   127,   128,   129,    -1,    -1,    -1,
  3954       -1,   134,   135,   136,   137,     0,   139,   140,   141,   142,
  3955       -1,   144,   145,     8,     9,    10,    -1,    -1,    13,    14,
  3956       15,    -1,    17,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3957       -1,    -1,    27,    28,    29,    -1,    -1,    -1,    -1,    -1,
  3958       -1,    -1,    37,    38,    -1,    40,    41,    42,    43,    44,
  3959       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3960       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3961       -1,    -1,    -1,    -1,    -1,    70,    71,    72,    73,    74,
  3962       75,    76,    77,    78,    79,    80,    81,    82,    -1,    -1,
  3963       85,    86,    87,    88,    -1,    -1,    91,    -1,    -1,    -1,
  3964       -1,    -1,    97,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3965       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,   114,
  3966       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,   124,
  3967      125,   126,   127,   128,   129,    -1,    -1,    -1,    -1,    -1,
  3968      135,   136,   137,     0,    -1,   140,   141,   142,    -1,   144,
  3969      145,     8,     9,    10,    -1,    -1,    13,    14,    15,    -1,
  3970       17,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    26,
  3971       27,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3972       37,    38,    -1,    40,    41,    42,    43,    44,    -1,    -1,
  3973       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3974       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3975       -1,    -1,    -1,    70,    71,    72,    73,    74,    75,    76,
  3976       77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
  3977       87,    88,    -1,    -1,    91,    -1,    -1,    -1,    -1,    -1,
  3978       97,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3979       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
  3980       -1,   118,    -1,   120,   121,   122,   123,   124,   125,   126,
  3981      127,   128,   129,    -1,    -1,    -1,    -1,   134,   135,   136,
  3982      137,     0,   139,   140,   141,   142,    -1,   144,   145,     8,
  3983        9,    10,    -1,    -1,    13,    14,    15,    -1,    17,    -1,
  3984       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,
  3985       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
  3986       -1,    40,    41,    42,    43,    44,    -1,    -1,    -1,    -1,
  3987       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3988       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3989       -1,    70,    71,    72,    73,    74,    75,    76,    77,    78,
  3990       79,    80,    81,    82,    -1,    -1,    85,    86,    87,    88,
  3991       -1,    -1,    91,    -1,    -1,    -1,    -1,    -1,    97,    -1,
  3992       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  3993       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,
  3994       -1,   120,   121,   122,   123,   124,   125,   126,   127,   128,
  3995      129,    -1,    -1,    -1,    -1,    -1,   135,   136,   137,     0,
  3996      139,   140,   141,   142,    -1,   144,   145,     8,     9,    10,
  3997       -1,    -1,    -1,    14,    15,    -1,    17,    -1,    -1,    -1,
  3998       -1,    -1,    -1,    -1,    -1,    26,    -1,    -1,    -1,    -1,
  3999       -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
  4000       41,    42,    43,    44,    -1,    -1,    -1,    -1,    -1,    -1,
  4001       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4002       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
  4003       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
  4004       81,    82,    -1,    -1,    85,    86,    87,    88,    -1,    90,
  4005       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4006       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4007      111,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,   120,
  4008      121,   122,   123,   124,   125,   126,   127,   128,   129,    -1,
  4009       -1,    -1,    -1,   134,   135,   136,   137,     0,    -1,   140,
  4010       -1,   142,    -1,   144,   145,     8,     9,    10,    -1,    -1,
  4011       -1,    14,    15,    -1,    17,    -1,    -1,    -1,    -1,    -1,
  4012       -1,    -1,    -1,    26,    -1,    -1,    -1,    -1,    -1,    -1,
  4013       -1,    -1,    -1,    -1,    37,    38,    -1,    40,    41,    42,
  4014       43,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4015       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4016       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,
  4017       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
  4018       -1,    -1,    85,    86,    87,    88,    -1,    90,    -1,    -1,
  4019       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4020       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
  4021       -1,    -1,    -1,    -1,   117,   118,    -1,   120,   121,   122,
  4022      123,   124,   125,   126,   127,   128,   129,    -1,    -1,    -1,
  4023       -1,   134,   135,   136,   137,     0,    -1,   140,    -1,   142,
  4024       -1,   144,   145,     8,     9,    10,    -1,    -1,    -1,    14,
  4025       15,    -1,    17,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4026       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4027       -1,    -1,    37,    38,    -1,    40,    41,    42,    43,    44,
  4028       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4029       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4030       -1,    -1,    -1,    -1,    -1,    70,    71,    72,    73,    74,
  4031       75,    76,    77,    78,    79,    80,    81,    82,    -1,    -1,
  4032       85,    86,    87,    88,    -1,    90,    -1,    -1,    -1,    -1,
  4033       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4034       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
  4035       -1,    -1,   117,   118,    -1,   120,   121,   122,   123,   124,
  4036      125,   126,   127,   128,   129,    -1,    -1,    -1,    -1,    -1,
  4037      135,   136,   137,     0,    -1,   140,    -1,   142,    -1,   144,
  4038      145,     8,     9,    10,    -1,    -1,    -1,    14,    15,    -1,
  4039       17,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4040       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4041       37,    38,    -1,    40,    41,    42,    43,    44,    -1,    -1,
  4042       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4043       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4044       -1,    -1,    -1,    70,    71,    72,    73,    74,    75,    76,
  4045       77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
  4046       87,    88,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
  4047       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4048       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
  4049      117,   118,    -1,   120,   121,   122,   123,   124,   125,   126,
  4050      127,   128,   129,    -1,    -1,    -1,    -1,    -1,   135,   136,
  4051      137,    -1,    -1,   140,    -1,   142,    -1,   144,   145,     1,
  4052       -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
  4053       12,    -1,    -1,    15,    16,    -1,    18,    19,    20,    21,
  4054       22,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,
  4055       32,    33,    34,    35,    36,    -1,    -1,    39,    -1,    -1,
  4056       -1,    -1,    -1,    45,    46,    47,    48,    49,    50,    51,
  4057       52,    53,    54,    55,    56,    57,    -1,    59,    60,    61,
  4058       62,    -1,    64,    65,    66,    -1,    68,    69,    -1,    -1,
  4059       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4060       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
  4061       92,    93,    -1,    95,    96,    -1,    98,    -1,    -1,   101,
  4062      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
  4063       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4064       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   130,   131,
  4065      132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4066      142,    -1,     1,   145,     3,     4,     5,     6,     7,    -1,
  4067       -1,    10,    11,    12,    -1,    14,    15,    16,    -1,    18,
  4068       19,    20,    21,    22,    23,    24,    -1,    -1,    -1,    -1,
  4069       -1,    30,    31,    32,    33,    34,    35,    36,    -1,    -1,
  4070       39,    -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,
  4071       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
  4072       59,    60,    61,    62,    -1,    64,    65,    66,    -1,    68,
  4073       69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4074       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4075       89,    -1,    -1,    92,    93,    -1,    95,    96,    -1,    98,
  4076       -1,    -1,   101,   102,   103,   104,   105,   106,   107,   108,
  4077      109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4078       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4079       -1,   130,   131,   132,    -1,    -1,    -1,    -1,    -1,    -1,
  4080       -1,    -1,    -1,   142,    -1,     1,   145,     3,     4,     5,
  4081        6,     7,    -1,    -1,    10,    11,    12,    -1,    -1,    15,
  4082       16,    17,    18,    19,    20,    21,    22,    23,    24,    -1,
  4083       -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,    35,
  4084       36,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    45,
  4085       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
  4086       56,    57,    -1,    59,    60,    61,    62,    -1,    64,    65,
  4087       66,    -1,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
  4088       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4089       -1,    -1,    -1,    89,    -1,    -1,    92,    93,    -1,    95,
  4090       96,    -1,    98,    -1,    -1,   101,   102,   103,   104,   105,
  4091      106,   107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,
  4092       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4093       -1,    -1,    -1,    -1,   130,   131,   132,    -1,    -1,    -1,
  4094       -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,     1,   145,
  4095        3,     4,     5,     6,     7,    -1,    -1,    10,    11,    12,
  4096       -1,    -1,    15,    16,    -1,    18,    19,    20,    21,    22,
  4097       23,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
  4098       33,    34,    35,    36,    -1,    -1,    39,    -1,    -1,    -1,
  4099       -1,    -1,    45,    46,    47,    48,    49,    50,    51,    52,
  4100       53,    54,    55,    56,    57,    -1,    59,    60,    61,    62,
  4101       -1,    64,    65,    66,    -1,    68,    69,    -1,    -1,    -1,
  4102       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4103       -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    92,
  4104       93,    -1,    95,    96,    -1,    98,    -1,    -1,   101,   102,
  4105      103,   104,   105,   106,   107,   108,   109,    -1,    -1,    -1,
  4106       -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
  4107        6,     7,    -1,     9,    10,    11,    12,   130,   131,   132,
  4108       16,    -1,    18,    19,    20,    21,    22,    23,    24,   142,
  4109       -1,    -1,   145,    -1,    30,    31,    32,    33,    34,    35,
  4110       36,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    45,
  4111       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
  4112       56,    57,    -1,    59,    60,    61,    62,    -1,    64,    65,
  4113       66,    -1,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
  4114       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4115       -1,    -1,    -1,    89,    -1,    -1,    92,    93,    -1,    95,
  4116       96,    -1,    98,    -1,    -1,   101,   102,   103,   104,   105,
  4117      106,   107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,
  4118       -1,    -1,     1,    -1,     3,     4,     5,     6,     7,    -1,
  4119       -1,    -1,    11,    12,   130,   131,   132,    16,    -1,    18,
  4120       19,    20,    21,    22,    23,    24,   142,    -1,    -1,   145,
  4121       -1,    30,    31,    32,    33,    34,    35,    36,    -1,    -1,
  4122       39,    -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,
  4123       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
  4124       59,    60,    61,    62,    -1,    64,    65,    66,    -1,    68,
  4125       69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4126       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4127       89,    -1,    -1,    92,    93,    -1,    95,    96,    -1,    98,
  4128       -1,    -1,   101,   102,   103,   104,   105,   106,   107,   108,
  4129      109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4130       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4131       -1,   130,   131,   132,     1,    -1,     3,     4,     5,     6,
  4132        7,   140,    -1,   142,    11,    12,   145,    -1,    -1,    16,
  4133       -1,    18,    19,    20,    21,    22,    23,    24,    -1,    -1,
  4134       -1,    -1,    -1,    30,    31,    32,    33,    34,    35,    36,
  4135       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    45,    46,
  4136       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
  4137       57,    -1,    59,    60,    61,    62,    -1,    64,    65,    66,
  4138       -1,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4139       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4140       -1,    -1,    89,    -1,    -1,    92,    93,    -1,    95,    96,
  4141       -1,    98,    -1,    -1,   101,   102,   103,   104,   105,   106,
  4142      107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4143       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4144       -1,    -1,    -1,   130,   131,   132,     1,    -1,     3,     4,
  4145        5,     6,     7,   140,    -1,   142,    11,    12,   145,    -1,
  4146       -1,    16,    -1,    18,    19,    20,    21,    22,    23,    24,
  4147       -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,
  4148       35,    36,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
  4149       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
  4150       55,    56,    57,    -1,    59,    60,    61,    62,    -1,    64,
  4151       65,    66,    -1,    68,    69,    -1,    -1,    -1,    -1,    -1,
  4152       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4153       -1,    -1,    -1,    -1,    89,    -1,    -1,    92,    93,    -1,
  4154       95,    96,    -1,    98,    -1,    -1,   101,   102,   103,   104,
  4155      105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,    -1,
  4156       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4157       -1,    -1,    -1,    -1,    -1,   130,   131,   132,    -1,    -1,
  4158      135,    -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,     1,
  4159      145,     3,     4,     5,     6,     7,    -1,    -1,    -1,    11,
  4160       12,    -1,    -1,    -1,    16,    -1,    18,    19,    20,    21,
  4161       22,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,
  4162       32,    33,    34,    35,    36,    -1,    -1,    39,    -1,    -1,
  4163       -1,    -1,    -1,    45,    46,    47,    48,    49,    50,    51,
  4164       52,    53,    54,    55,    56,    57,    -1,    59,    60,    61,
  4165       62,    -1,    64,    65,    66,    -1,    68,    69,    -1,    -1,
  4166       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4167       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
  4168       92,    93,    -1,    95,    96,    -1,    98,    -1,    -1,   101,
  4169      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
  4170       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4171       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   130,   131,
  4172      132,    -1,    -1,   135,    -1,    -1,    -1,    -1,    -1,    -1,
  4173      142,    -1,     1,   145,     3,     4,     5,     6,     7,    -1,
  4174       -1,    10,    11,    12,    -1,    -1,    -1,    16,    -1,    18,
  4175       19,    20,    21,    22,    23,    24,    -1,    -1,    -1,    -1,
  4176       -1,    30,    31,    32,    33,    34,    35,    36,    -1,    -1,
  4177       39,    -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,
  4178       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
  4179       59,    60,    61,    62,    -1,    64,    65,    66,    -1,    68,
  4180       69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4181       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4182       89,    -1,    -1,    92,    93,    -1,    95,    96,    -1,    98,
  4183       -1,    -1,   101,   102,   103,   104,   105,   106,   107,   108,
  4184      109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,
  4185       -1,     3,     4,     5,     6,     7,    -1,    -1,    -1,    11,
  4186       12,   130,   131,   132,    16,    -1,    18,    19,    20,    21,
  4187       22,    23,    24,   142,    -1,    -1,   145,    -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,    -1,    64,    65,    66,    -1,    68,    69,    -1,    -1,
  4192       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4193       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
  4194       92,    93,    -1,    95,    96,    -1,    98,    -1,    -1,   101,
  4195      102,   103,   104,   105,   106,   107,   108,   109,    -1,   111,
  4196       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
  4197        5,    -1,     7,    -1,    -1,    -1,    11,    12,   130,   131,
  4198      132,    16,    -1,    18,    19,    20,    21,    22,    23,    24,
  4199      142,    -1,    -1,   145,    -1,    30,    31,    32,    33,    34,
  4200       35,    36,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
  4201       -1,    46,    -1,    -1,    49,    50,    51,    52,    53,    54,
  4202       55,    56,    57,    58,    59,    60,    61,    62,    -1,    64,
  4203       65,    66,    -1,    68,    69,    -1,    -1,    -1,    -1,    -1,
  4204       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4205       -1,    -1,    -1,    -1,    89,    -1,    -1,    92,    93,    -1,
  4206       95,    96,    -1,    98,    99,   100,   101,   102,   103,   104,
  4207      105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,    -1,
  4208       -1,    -1,    -1,    -1,    -1,     3,     4,     5,    -1,     7,
  4209       -1,    -1,    -1,    11,    12,   130,   131,   132,    16,    -1,
  4210       18,    19,    20,    21,    22,    23,    24,    -1,    -1,    -1,
  4211      145,    -1,    30,    31,    32,    33,    34,    35,    36,    -1,
  4212       -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,
  4213       -1,    49,    50,    51,    52,    53,    54,    55,    56,    57,
  4214       -1,    59,    60,    61,    62,    -1,    64,    65,    66,    -1,
  4215       68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4216       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4217       -1,    89,    -1,    -1,    92,    93,    -1,    95,    96,    -1,
  4218       -1,    -1,    -1,   101,   102,   103,   104,   105,   106,   107,
  4219      108,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4220       -1,    -1,     3,     4,     5,    -1,     7,    -1,    -1,    -1,
  4221       11,    12,   130,   131,   132,    16,    -1,    18,    19,    20,
  4222       21,    22,    23,    24,   142,    -1,    -1,   145,    -1,    30,
  4223       31,    32,    33,    34,    35,    36,    -1,    -1,    39,    -1,
  4224       -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,
  4225       51,    52,    53,    54,    55,    56,    57,    -1,    59,    60,
  4226       61,    62,    -1,    64,    65,    66,    -1,    68,    69,    -1,
  4227       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4228       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,
  4229       -1,    92,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,
  4230      101,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
  4231       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
  4232        4,     5,     6,     7,    -1,    -1,    -1,    11,    12,   130,
  4233      131,   132,    16,    -1,    18,    19,    20,    21,    22,    23,
  4234       24,    -1,    -1,    -1,   145,    -1,    30,    31,    32,    33,
  4235       34,    35,    36,    -1,    -1,    39,    -1,    -1,    -1,    -1,
  4236       -1,    45,    46,    47,    48,    49,    50,    51,    52,    53,
  4237       54,    55,    56,    57,    -1,    59,    60,    61,    62,    -1,
  4238       64,    65,    66,    -1,    68,    69,    -1,    -1,    -1,    -1,
  4239       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4240       -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    92,    93,
  4241       -1,    95,    96,    -1,    98,    -1,    -1,   101,   102,   103,
  4242      104,   105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,
  4243       -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
  4244        7,    -1,    -1,    -1,    11,    12,   130,   131,   132,    16,
  4245       -1,    18,    19,    20,    21,    22,    23,    24,   142,    -1,
  4246       -1,    -1,    -1,    30,    31,    32,    33,    34,    35,    36,
  4247       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    45,    46,
  4248       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
  4249       57,    -1,    59,    60,    61,    62,    -1,    64,    65,    66,
  4250       -1,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4251       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4252       -1,    -1,    89,    -1,    -1,    92,    93,    -1,    95,    96,
  4253       -1,    98,    -1,    -1,   101,   102,   103,   104,   105,   106,
  4254      107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4255       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4256       -1,    -1,    -1,   130,   131,   132,    -1,    -1,    -1,    -1,
  4257       -1,    -1,    -1,    -1,    -1,   142,     3,     4,     5,     6,
  4258        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
  4259       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
  4260       -1,    -1,    -1,    30,    31,    32,    33,    34,    35,    36,
  4261       37,    38,    39,    -1,    -1,    -1,    -1,    -1,    45,    46,
  4262       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
  4263       57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4264       -1,    68,    69,    70,    71,    72,    73,    74,    75,    76,
  4265       -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,    86,
  4266       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4267       -1,    98,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4268       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4269       -1,    -1,    -1,   120,   121,   122,   123,   124,   125,   126,
  4270      127,   128,   129,    -1,   131,   132,    -1,    -1,    -1,    -1,
  4271       -1,   138,   139,     3,     4,     5,     6,     7,     8,     9,
  4272       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
  4273       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    -1,
  4274       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
  4275       -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,    49,
  4276       50,    51,    52,    53,    54,    55,    56,    57,    -1,    -1,
  4277       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
  4278       70,    71,    72,    73,    74,    75,    76,    -1,    -1,    79,
  4279       80,    -1,    -1,    83,    84,    85,    86,    -1,    -1,    -1,
  4280       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    99,
  4281       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4282       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4283      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
  4284       -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,     3,
  4285        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
  4286       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
  4287       24,    25,    26,    -1,    -1,    -1,    30,    31,    32,    33,
  4288       34,    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
  4289       -1,    45,    46,    47,    48,    49,    50,    51,    52,    53,
  4290       54,    -1,    56,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4291       -1,    -1,    -1,    -1,    68,    69,    70,    71,    72,    73,
  4292       74,    75,    76,    -1,    -1,    79,    80,    -1,    -1,    83,
  4293       84,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4294       -1,    -1,    -1,    -1,    98,    99,    -1,    -1,   102,    -1,
  4295       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4296       -1,    -1,    -1,    -1,    -1,    -1,   120,   121,   122,   123,
  4297      124,   125,   126,   127,   128,   129,    -1,   131,   132,    -1,
  4298       -1,    -1,    -1,    -1,   138,     3,     4,     5,     6,     7,
  4299        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
  4300       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
  4301       -1,    -1,    30,    31,    32,    33,    34,    35,    36,    37,
  4302       38,    39,    -1,    -1,    -1,    -1,    -1,    45,    46,    47,
  4303       48,    49,    50,    51,    52,    53,    -1,    -1,    56,    -1,
  4304       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4305       68,    69,    70,    71,    72,    73,    74,    75,    76,    -1,
  4306       -1,    79,    80,    -1,    -1,    83,    84,    85,    86,    -1,
  4307       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4308       98,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,    -1,
  4309       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4310       -1,    -1,   120,   121,   122,   123,   124,   125,   126,   127,
  4311      128,   129,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,
  4312      138,     3,     4,     5,     6,     7,     8,     9,    10,    11,
  4313       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
  4314       22,    23,    24,    25,    26,    -1,    -1,    -1,    30,    31,
  4315       32,    33,    34,    35,    36,    37,    38,    39,    -1,    -1,
  4316       -1,    -1,    -1,    45,    46,    47,    48,    49,    50,    51,
  4317       52,    53,    -1,    -1,    56,    -1,    -1,    -1,    -1,    -1,
  4318       -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,    71,
  4319       72,    73,    74,    75,    76,    -1,    -1,    79,    80,    -1,
  4320       -1,    83,    84,    85,    86,    -1,    -1,    -1,    -1,    -1,
  4321       -1,    -1,    -1,    -1,    -1,    -1,    98,    99,    -1,    -1,
  4322       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4323       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,   121,
  4324      122,   123,   124,   125,   126,   127,   128,   129,    -1,   131,
  4325      132,     3,     4,     5,    -1,     7,   138,    -1,    -1,    11,
  4326       12,    -1,    -1,    -1,    16,    -1,    18,    19,    20,    21,
  4327       22,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,
  4328       32,    33,    34,    35,    36,    -1,    -1,    39,    -1,    -1,
  4329       -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
  4330       52,    53,    54,    55,    56,    57,    -1,    59,    60,    61,
  4331       62,    -1,    64,    65,    66,    -1,    -1,    -1,    -1,    -1,
  4332       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4333       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
  4334       92,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,   101,
  4335      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
  4336       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4337       -1,     3,     4,     5,    -1,     7,    -1,    -1,   130,    11,
  4338       12,    -1,    -1,    -1,    16,   137,    18,    19,    20,    21,
  4339       22,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,
  4340       32,    33,    34,    35,    36,    -1,    -1,    39,    -1,    -1,
  4341       -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
  4342       52,    53,    54,    55,    56,    57,    -1,    59,    60,    61,
  4343       62,    -1,    64,    65,    66,    -1,    -1,    -1,    -1,    -1,
  4344       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4345       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
  4346       92,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,   101,
  4347      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
  4348       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4349       -1,     3,     4,     5,     6,     7,    -1,    -1,   130,    11,
  4350       12,    -1,    -1,    -1,    16,   137,    18,    19,    20,    21,
  4351       22,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,
  4352       32,    33,    34,    35,    36,    -1,    -1,    39,    -1,    -1,
  4353       -1,    -1,    -1,    45,    46,    47,    48,    49,    50,    51,
  4354       52,    53,    54,    55,    56,    57,    -1,    59,    60,    61,
  4355       62,    -1,    64,    65,    66,    -1,    68,    69,    -1,    -1,
  4356       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4357       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
  4358       92,    93,    -1,    95,    96,    -1,    98,    -1,    -1,   101,
  4359      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
  4360       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
  4361        5,    -1,     7,    -1,    -1,    -1,    11,    12,   130,   131,
  4362      132,    16,    -1,    18,    19,    20,    21,    22,    23,    24,
  4363       -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,
  4364       35,    36,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
  4365       -1,    46,    -1,    -1,    49,    50,    51,    52,    53,    54,
  4366       55,    56,    57,    58,    59,    60,    61,    62,    -1,    64,
  4367       65,    66,    -1,    68,    69,    -1,    -1,    -1,    -1,    -1,
  4368       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4369       -1,    -1,    -1,    -1,    89,    -1,    -1,    92,    93,    -1,
  4370       95,    96,    -1,    98,    99,   100,   101,   102,   103,   104,
  4371      105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,    -1,
  4372       -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
  4373       -1,    -1,    -1,    11,    12,   130,   131,   132,    16,    -1,
  4374       18,    19,    20,    21,    22,    23,    24,    -1,    -1,    -1,
  4375       -1,    -1,    30,    31,    32,    33,    34,    35,    36,    -1,
  4376       -1,    39,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,
  4377       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
  4378       -1,    59,    60,    61,    62,    -1,    64,    65,    66,    -1,
  4379       68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4380       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4381       -1,    89,    -1,    -1,    92,    93,    -1,    95,    96,    -1,
  4382       98,    -1,    -1,   101,   102,   103,   104,   105,   106,   107,
  4383      108,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4384       -1,    -1,     3,     4,     5,    -1,     7,    -1,    -1,    -1,
  4385       11,    12,   130,   131,   132,    16,    -1,    18,    19,    20,
  4386       21,    22,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,
  4387       31,    32,    33,    34,    35,    36,    -1,    -1,    39,    -1,
  4388       -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,
  4389       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
  4390       61,    62,    -1,    64,    65,    66,    -1,    68,    69,    -1,
  4391       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4392       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,
  4393       -1,    92,    93,    -1,    95,    96,    -1,    98,    99,   100,
  4394      101,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
  4395       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
  4396        4,     5,    -1,     7,    -1,    -1,    -1,    11,    12,   130,
  4397      131,   132,    16,    -1,    18,    19,    20,    21,    22,    23,
  4398       24,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
  4399       34,    35,    36,    -1,    -1,    39,    -1,    -1,    -1,    -1,
  4400       -1,    -1,    46,    -1,    -1,    49,    50,    51,    52,    53,
  4401       54,    55,    56,    57,    58,    59,    60,    61,    62,    -1,
  4402       64,    65,    66,    -1,    68,    69,    -1,    -1,    -1,    -1,
  4403       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4404       -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    92,    93,
  4405       -1,    95,    96,    -1,    98,    99,    -1,   101,   102,   103,
  4406      104,   105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,
  4407       -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,    -1,
  4408        7,    -1,    -1,    -1,    11,    12,   130,   131,   132,    16,
  4409       -1,    18,    19,    20,    21,    22,    23,    24,    -1,    -1,
  4410       -1,    -1,    -1,    30,    31,    32,    33,    34,    35,    36,
  4411       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    46,
  4412       -1,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
  4413       57,    58,    59,    60,    61,    62,    -1,    64,    65,    66,
  4414       -1,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4416       -1,    -1,    89,    -1,    -1,    92,    93,    -1,    95,    96,
  4417       -1,    -1,    99,   100,   101,   102,   103,   104,   105,   106,
  4418      107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4419       -1,    -1,    -1,     3,     4,     5,    -1,     7,    -1,    -1,
  4420       -1,    11,    12,   130,   131,   132,    16,    -1,    18,    19,
  4421       20,    21,    22,    23,    24,    -1,    -1,    -1,    -1,    -1,
  4422       30,    31,    32,    33,    34,    35,    36,    -1,    -1,    39,
  4423       -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,
  4424       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
  4425       60,    61,    62,    -1,    64,    65,    66,    -1,    68,    69,
  4426       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4427       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
  4428       -1,    -1,    92,    93,    -1,    95,    96,    -1,    98,    99,
  4429       -1,   101,   102,   103,   104,   105,   106,   107,   108,   109,
  4430       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4431        3,     4,     5,    -1,     7,    -1,    -1,    -1,    11,    12,
  4432      130,   131,   132,    16,    -1,    18,    19,    20,    21,    22,
  4433       23,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
  4434       33,    34,    35,    36,    -1,    -1,    39,    -1,    -1,    -1,
  4435       -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    52,
  4436       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
  4437       -1,    64,    65,    66,    -1,    68,    69,    -1,    -1,    -1,
  4438       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4439       -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    92,
  4440       93,    -1,    95,    96,    -1,    -1,    99,    -1,   101,   102,
  4441      103,   104,   105,   106,   107,   108,   109,    -1,    -1,    -1,
  4442       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
  4443       -1,     7,    -1,    -1,    -1,    11,    12,   130,   131,   132,
  4444       16,    -1,    18,    19,    20,    21,    22,    23,    24,    -1,
  4445       -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,    35,
  4446       36,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
  4447       46,    -1,    -1,    49,    50,    51,    52,    53,    54,    55,
  4448       56,    57,    -1,    59,    60,    61,    62,    -1,    64,    65,
  4449       66,    -1,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
  4450       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4451       -1,    -1,    -1,    89,    -1,    -1,    92,    93,    -1,    95,
  4452       96,    -1,    98,    -1,    -1,   101,   102,   103,   104,   105,
  4453      106,   107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,
  4454       -1,    -1,    -1,    -1,     3,     4,     5,    -1,     7,    -1,
  4455       -1,    -1,    11,    12,   130,   131,   132,    16,    -1,    18,
  4456       19,    20,    21,    22,    23,    24,    -1,    -1,    -1,    -1,
  4457       -1,    30,    31,    32,    33,    34,    35,    36,    -1,    -1,
  4458       39,    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,
  4459       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
  4460       59,    60,    61,    62,    -1,    64,    65,    66,    -1,    68,
  4461       69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4462       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4463       89,    -1,    -1,    92,    93,    -1,    95,    96,    -1,    98,
  4464       -1,    -1,   101,   102,   103,   104,   105,   106,   107,   108,
  4465      109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4466       -1,     3,     4,     5,    -1,     7,    -1,    -1,    -1,    11,
  4467       12,   130,   131,   132,    16,    -1,    18,    19,    20,    21,
  4468       22,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,
  4469       32,    33,    34,    35,    36,    -1,    -1,    39,    -1,    -1,
  4470       -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
  4471       52,    53,    54,    55,    56,    57,    -1,    59,    60,    61,
  4472       62,    -1,    64,    65,    66,    -1,    68,    69,    -1,    -1,
  4473       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4474       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
  4475       92,    93,    -1,    95,    96,    -1,    98,    -1,    -1,   101,
  4476      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
  4477       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
  4478        5,    -1,     7,    -1,    -1,    -1,    11,    12,   130,   131,
  4479      132,    16,    -1,    18,    19,    20,    21,    22,    23,    24,
  4480       -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,
  4481       35,    36,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
  4482       -1,    46,    -1,    -1,    49,    50,    51,    52,    53,    54,
  4483       55,    56,    57,    -1,    59,    60,    61,    62,    -1,    64,
  4484       65,    66,    -1,    68,    69,    -1,    -1,    -1,    -1,    -1,
  4485       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4486       -1,    -1,    -1,    -1,    89,    -1,    -1,    92,    93,    -1,
  4487       95,    96,    -1,    98,    -1,    -1,   101,   102,   103,   104,
  4488      105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,    -1,
  4489       -1,    -1,    -1,    -1,    -1,     3,     4,     5,    -1,     7,
  4490       -1,    -1,    -1,    11,    12,   130,   131,   132,    16,    -1,
  4491       18,    19,    20,    21,    22,    23,    24,    -1,    -1,    -1,
  4492       -1,    -1,    30,    31,    32,    33,    34,    35,    36,    -1,
  4493       -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,
  4494       -1,    49,    50,    51,    52,    53,    54,    55,    56,    57,
  4495       -1,    59,    60,    61,    62,    -1,    64,    65,    66,    -1,
  4496       68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4497       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4498       -1,    89,    -1,    -1,    92,    93,    -1,    95,    96,    -1,
  4499       98,    -1,    -1,   101,   102,   103,   104,   105,   106,   107,
  4500      108,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4501       -1,    -1,     3,     4,     5,    -1,     7,    -1,    -1,    -1,
  4502       11,    12,   130,   131,   132,    16,    -1,    18,    19,    20,
  4503       21,    22,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,
  4504       31,    32,    33,    34,    35,    36,    -1,    -1,    39,    -1,
  4505       -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,
  4506       51,    52,    53,    54,    55,    56,    57,    -1,    59,    60,
  4507       61,    62,    -1,    64,    65,    66,    -1,    68,    69,    -1,
  4508       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4509       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,
  4510       -1,    92,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,
  4511      101,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
  4512       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
  4513        4,     5,    -1,     7,    -1,    -1,    -1,    11,    12,   130,
  4514      131,   132,    16,    -1,    18,    19,    20,    21,    22,    23,
  4515       24,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
  4516       34,    35,    36,    -1,    -1,    39,    -1,    -1,    -1,    -1,
  4517       -1,    -1,    46,    -1,    -1,    49,    50,    51,    52,    53,
  4518       54,    55,    56,    57,    -1,    59,    60,    61,    62,    -1,
  4519       64,    65,    66,    -1,    68,    69,    -1,    -1,    -1,    -1,
  4520       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4521       -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    92,    93,
  4522       -1,    95,    96,    -1,    -1,    -1,    -1,   101,   102,   103,
  4523      104,   105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,
  4524       -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,    -1,
  4525        7,    -1,    -1,    -1,    11,    12,   130,   131,   132,    16,
  4526       -1,    18,    19,    20,    21,    22,    23,    24,    -1,    -1,
  4527       -1,    -1,    -1,    30,    31,    32,    33,    34,    35,    36,
  4528       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    46,
  4529       -1,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
  4530       57,    -1,    59,    60,    61,    62,    -1,    64,    65,    66,
  4531       -1,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4532       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4533       -1,    -1,    89,    -1,    -1,    92,    93,    -1,    95,    96,
  4534       -1,    -1,    -1,    -1,   101,   102,   103,   104,   105,   106,
  4535      107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4536       -1,    -1,    -1,     3,     4,     5,    -1,     7,    -1,    -1,
  4537       -1,    11,    12,   130,   131,   132,    16,    -1,    18,    19,
  4538       20,    21,    22,    23,    24,    -1,    -1,    -1,    -1,    -1,
  4539       30,    31,    32,    33,    34,    35,    36,    -1,    -1,    39,
  4540       -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,
  4541       50,    51,    52,    53,    54,    55,    56,    57,    -1,    59,
  4542       60,    61,    62,    -1,    64,    65,    66,    -1,    -1,    -1,
  4543       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4544       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
  4545       -1,    -1,    92,    93,    -1,    95,    96,    -1,    98,    -1,
  4546       -1,   101,   102,   103,   104,   105,   106,   107,   108,   109,
  4547       -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,    -1,
  4548        7,    -1,    -1,    -1,    11,    12,    -1,    -1,    -1,    16,
  4549      130,    18,    19,    20,    21,    22,    23,    24,    -1,    -1,
  4550       -1,    -1,    -1,    30,    31,    32,    33,    34,    35,    36,
  4551       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    46,
  4552       -1,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
  4553       57,    -1,    59,    60,    61,    62,    -1,    64,    65,    66,
  4554       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4555       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4556       -1,    -1,    89,    -1,    -1,    92,    93,    -1,    95,    96,
  4557       -1,    98,    -1,    -1,   101,   102,   103,   104,   105,   106,
  4558      107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,     3,
  4559        4,     5,    -1,     7,    -1,    -1,    -1,    11,    12,    -1,
  4560       -1,    -1,    16,   130,    18,    19,    20,    21,    22,    23,
  4561       24,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
  4562       34,    35,    36,    -1,    -1,    39,    -1,    -1,    -1,    -1,
  4563       -1,    -1,    46,    -1,    -1,    49,    50,    51,    52,    53,
  4564       54,    55,    56,    57,    -1,    59,    60,    61,    62,    -1,
  4565       64,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4566       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4567       -1,    85,    -1,    -1,    -1,    89,    -1,    -1,    92,    93,
  4568       -1,    95,    96,    -1,    -1,    -1,    -1,   101,   102,   103,
  4569      104,   105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,
  4570       -1,    -1,     3,     4,     5,    -1,     7,    -1,    -1,    -1,
  4571       11,    12,    -1,    -1,    -1,    16,   130,    18,    19,    20,
  4572       21,    22,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,
  4573       31,    32,    33,    34,    35,    36,    -1,    -1,    39,    -1,
  4574       -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,
  4575       51,    52,    53,    54,    55,    56,    57,    -1,    59,    60,
  4576       61,    62,    -1,    64,    65,    66,    -1,    -1,    -1,    -1,
  4577       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,
  4579       -1,    92,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,
  4580      101,   102,   103,   104,   105,   106,   107,   108,   109,    -1,
  4581       -1,    -1,    -1,    -1,    -1,     3,     4,     5,    -1,     7,
  4582       -1,    -1,    -1,    11,    12,    -1,    -1,    -1,    16,   130,
  4583       18,    19,    20,    21,    22,    23,    24,    -1,    -1,    -1,
  4584       -1,    -1,    30,    31,    32,    33,    34,    35,    36,    -1,
  4585       -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,
  4586       -1,    49,    50,    51,    52,    53,    54,    55,    56,    57,
  4587       -1,    59,    60,    61,    62,    -1,    64,    65,    66,    -1,
  4588       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4589       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4590       -1,    89,    -1,    -1,    92,    93,    -1,    95,    96,    -1,
  4591       -1,    -1,    -1,   101,   102,   103,   104,   105,   106,   107,
  4592      108,   109,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
  4593        5,    -1,     7,    -1,    -1,    -1,    11,    12,    -1,    -1,
  4594       -1,    16,   130,    18,    19,    20,    21,    22,    23,    24,
  4595       -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,
  4596       35,    36,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
  4597       -1,    46,    -1,    -1,    49,    50,    51,    52,    53,    54,
  4598       55,    56,    57,    -1,    59,    60,    61,    62,    -1,    64,
  4599       65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4600       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4601       -1,    -1,    -1,    -1,    89,    -1,    -1,    92,    93,    -1,
  4602       95,    96,    -1,    -1,    -1,    -1,   101,   102,   103,   104,
  4603      105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,    -1,
  4604       -1,     3,     4,     5,    -1,     7,    -1,    -1,    -1,    11,
  4605       12,    -1,    -1,    -1,    16,   130,    18,    19,    20,    21,
  4606       22,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,
  4607       32,    33,    34,    35,    36,    -1,    -1,    39,    -1,    -1,
  4608       -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
  4609       52,    53,    54,    55,    56,    57,    -1,    59,    60,    61,
  4610       62,    -1,    64,    65,    66,    -1,    -1,    -1,    -1,    -1,
  4611       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4612       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
  4613       92,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,   101,
  4614      102,   103,   104,   105,   106,   107,   108,   109,    -1,    -1,
  4615       -1,    -1,    -1,    52,    53,    -1,    -1,    56,    -1,    -1,
  4616       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   130,    68,
  4617       69,    70,    71,    72,    73,    74,    75,    76,    -1,    -1,
  4618       79,    80,    -1,    -1,    83,    84,    85,    86,    -1,    -1,
  4619       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
  4620       99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4621       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4622       -1,   120,   121,   122,   123,   124,   125,   126,   127,   128,
  4623      129,    -1,   131,   132,    52,    53,    -1,    -1,    56,   138,
  4624       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4625       68,    69,    70,    71,    72,    73,    74,    75,    76,    -1,
  4626       -1,    79,    80,    -1,    -1,    83,    84,    85,    86,    -1,
  4627       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4628       98,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4629       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4630       -1,    -1,   120,   121,   122,   123,   124,   125,   126,   127,
  4631      128,   129,    -1,   131,   132,    52,    53,    -1,    -1,    56,
  4632      138,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4633       -1,    68,    69,    70,    71,    72,    73,    74,    75,    76,
  4634       -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,    86,
  4635       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4636       -1,    98,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4637       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4638       -1,    -1,    -1,   120,   121,   122,   123,   124,   125,   126,
  4639      127,   128,   129,    -1,   131,   132,    52,    53,    -1,    -1,
  4640       56,   138,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4641       -1,    -1,    68,    69,    70,    71,    72,    73,    74,    75,
  4642       76,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  4643       86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4644       -1,    -1,    98,    99,    -1,    -1,    -1,    -1,    -1,    -1,
  4645       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4646       -1,    -1,    -1,    -1,   120,   121,   122,   123,   124,   125,
  4647      126,   127,   128,   129,    -1,   131,   132,    52,    53,    -1,
  4648       -1,    56,   138,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4649       -1,    -1,    -1,    68,    69,    70,    71,    72,    73,    74,
  4650       75,    76,    -1,    -1,    79,    80,    -1,    -1,    83,    84,
  4651       85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4652       -1,    -1,    -1,    98,    99,    -1,    -1,    -1,    -1,    -1,
  4653       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4654       -1,    -1,    -1,    -1,    -1,   120,   121,   122,   123,   124,
  4655      125,   126,   127,   128,   129,    -1,   131,   132,    52,    53,
  4656       -1,    -1,    56,   138,    -1,    -1,    -1,    -1,    -1,    -1,
  4657       -1,    -1,    -1,    -1,    68,    69,    70,    71,    72,    73,
  4658       74,    75,    76,    -1,    -1,    79,    80,    -1,    -1,    83,
  4659       84,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4660       -1,    -1,    -1,    -1,    98,    99,    -1,    -1,    -1,    -1,
  4661       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4662       -1,    -1,    -1,    -1,    -1,    -1,   120,   121,   122,   123,
  4663      124,   125,   126,   127,   128,   129,    -1,   131,   132,    52,
  4664       53,    -1,    -1,    56,   138,    -1,    -1,    -1,    -1,    -1,
  4665       -1,    -1,    -1,    -1,    -1,    68,    69,    70,    71,    72,
  4666       73,    74,    75,    76,    -1,    -1,    79,    80,    -1,    -1,
  4667       83,    84,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
  4668       -1,    -1,    -1,    -1,    -1,    98,    99,    -1,    -1,    -1,
  4669       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4670       -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,   121,   122,
  4671      123,   124,   125,   126,   127,   128,   129,    -1,   131,   132,
  4672       52,    53,    -1,    -1,    56,   138,    -1,    -1,    -1,    -1,
  4673       -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,    71,
  4674       72,    73,    74,    75,    76,    -1,    -1,    79,    80,    -1,
  4675       -1,    83,    84,    85,    86,    -1,    -1,    -1,    -1,    -1,
  4676       -1,    -1,    -1,    -1,    -1,    -1,    98,    99,    -1,    -1,
  4677       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4678       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,   121,
  4679      122,   123,   124,   125,   126,   127,   128,   129,    -1,   131,
  4680      132,    52,    53,    -1,    -1,    56,   138,    -1,    -1,    -1,
  4681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,
  4682       71,    72,    73,    74,    75,    76,    -1,    -1,    79,    80,
  4683       -1,    -1,    83,    84,    85,    86,    -1,    -1,    -1,    -1,
  4684       -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    99,    -1,
  4685       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4686       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
  4687      121,   122,   123,   124,   125,   126,   127,   128,   129,    -1,
  4688      131,   132,    52,    53,    -1,    -1,    56,   138,    -1,    -1,
  4689       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
  4690       70,    71,    72,    73,    74,    75,    76,    -1,    -1,    79,
  4691       80,    -1,    -1,    83,    84,    85,    86,    -1,    -1,    -1,
  4692       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,    99,
  4693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4694       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4695      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
  4696       -1,   131,   132,    52,    53,    -1,    -1,    56,   138,    -1,
  4697       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
  4698       69,    70,    71,    72,    73,    74,    75,    76,    -1,    -1,
  4699       79,    80,    -1,    -1,    83,    84,    85,    86,    -1,    -1,
  4700       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    98,
  4701       99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4702       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4703       -1,   120,   121,   122,   123,   124,   125,   126,   127,   128,
  4704      129,    -1,   131,   132,    52,    53,    -1,    -1,    56,   138,
  4705       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4706       68,    69,    70,    71,    72,    73,    74,    75,    76,    -1,
  4707       -1,    79,    80,    -1,    -1,    83,    84,    85,    86,    -1,
  4708       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4709       98,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4710       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4711       -1,    -1,   120,   121,   122,   123,   124,   125,   126,   127,
  4712      128,   129,    -1,   131,   132,    52,    53,    -1,    -1,    56,
  4713      138,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4714       -1,    68,    69,    70,    71,    72,    73,    74,    75,    76,
  4715       -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,    86,
  4716       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4717       -1,    98,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4718       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4719       -1,    -1,    -1,   120,   121,   122,   123,   124,   125,   126,
  4720      127,   128,   129,    -1,   131,   132,    52,    53,    -1,    -1,
  4721       56,   138,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4722       -1,    -1,    68,    69,    70,    71,    72,    73,    74,    75,
  4723       76,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    85,
  4724       86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4725       -1,    -1,    98,    99,    70,    71,    72,    73,    74,    75,
  4726       76,    77,    78,    79,    80,    81,    82,    -1,    -1,    85,
  4727       86,    -1,    -1,    -1,   120,   121,   122,   123,   124,   125,
  4728      126,   127,   128,   129,    -1,   131,   132,    -1,    -1,    -1,
  4729       -1,    -1,   138,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  4730       -1,    -1,   118,    -1,   120,   121,   122,   123,   124,   125,
  4731      126,   127,   128,   129,    -1,    -1,    -1,    -1,    -1,    -1,
  4732       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   145
  4737 static const yytype_uint16 yystos[] =
  4739        0,   147,   148,     0,     1,     3,     4,     5,     6,     7,
  4740       11,    12,    16,    18,    19,    20,    21,    22,    23,    24,
  4741       30,    31,    32,    33,    34,    35,    36,    39,    45,    46,
  4742       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
  4743       57,    59,    60,    61,    62,    64,    65,    66,    68,    69,
  4744       89,    92,    93,    95,    96,    98,   101,   102,   103,   104,
  4745      105,   106,   107,   108,   109,   130,   131,   132,   149,   150,
  4746      151,   158,   160,   162,   164,   165,   168,   169,   170,   172,
  4747      173,   174,   176,   177,   187,   190,   205,   224,   225,   226,
  4748      227,   228,   229,   230,   231,   232,   233,   234,   261,   262,
  4749      282,   283,   284,   285,   286,   287,   288,   291,   293,   294,
  4750      308,   310,   311,   312,   313,   314,   315,   316,   317,   351,
  4751      364,   151,     3,     4,     5,     6,     7,     8,     9,    10,
  4752       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
  4753       21,    22,    23,    24,    25,    26,    30,    31,    32,    33,
  4754       34,    35,    36,    37,    38,    39,    45,    46,    47,    48,
  4755       49,    50,    51,    52,    53,    56,    68,    69,    70,    71,
  4756       72,    73,    74,    75,    76,    79,    80,    83,    84,    85,
  4757       86,    98,    99,   120,   121,   122,   123,   124,   125,   126,
  4758      127,   128,   129,   131,   132,   138,   180,   181,   182,   183,
  4759      185,   186,   308,   310,    39,    58,    89,    92,    98,    99,
  4760      100,   103,   131,   169,   177,   187,   191,   197,   200,   202,
  4761      224,   313,   314,   316,   317,   349,   350,   197,   197,   139,
  4762      198,   199,   139,   194,   198,   139,   145,   358,    54,   182,
  4763      358,   152,   134,    21,    22,    30,    31,    32,   168,   187,
  4764      224,   187,    56,     1,    47,    92,   154,   155,   156,   158,
  4765      171,   172,   364,   207,   208,   192,   202,   349,   364,   191,
  4766      348,   349,   364,    46,    89,   130,   137,   176,   205,   224,
  4767      313,   314,   317,   252,   253,    54,    55,    57,   180,   298,
  4768      309,   297,   298,   299,   143,   289,   143,   295,   143,   292,
  4769      143,   296,   312,   164,   187,   187,   142,   145,   357,   362,
  4770      363,    40,    41,    42,    43,    44,    37,    38,    26,   134,
  4771      194,   198,   267,    28,   259,   117,   137,    92,    98,   173,
  4772      117,    70,    71,    72,    73,    74,    75,    76,    77,    78,
  4773       79,    80,    81,    82,    85,    86,   118,   120,   121,   122,
  4774      123,   124,   125,   126,   127,   128,   129,   189,   189,    87,
  4775       88,   136,   144,   355,   206,   162,   163,   163,   211,   213,
  4776      163,   357,   363,    89,   170,   177,   224,   240,   313,   314,
  4777      317,    52,    56,    85,    89,   178,   179,   224,   313,   314,
  4778      317,   179,    33,    34,    35,    36,    49,    50,    51,    52,
  4779       56,   139,   180,   315,   346,    88,   355,   356,   267,   285,
  4780       90,    90,   137,   191,    56,   191,   191,   191,   297,   117,
  4781       91,   137,   201,   364,    88,   136,   355,    90,    90,   137,
  4782      201,   197,   358,   359,   197,   196,   197,   202,   349,   364,
  4783      162,   359,   162,    54,    65,    66,   159,   139,   188,   134,
  4784      154,    88,   355,    90,   158,   157,   171,   140,   357,   363,
  4785      359,   359,   158,   141,   137,   145,   361,   137,   361,   135,
  4786      361,   358,    56,   312,   173,   175,   137,    88,   136,   355,
  4787      254,    63,   110,   112,   113,   300,   113,   300,   113,    67,
  4788      300,   113,   113,   290,   300,   113,    63,   113,   113,   113,
  4789      290,   113,    63,   113,    70,   142,   151,   163,   163,   163,
  4790      163,   158,   162,   162,   269,   268,    97,   166,   260,    98,
  4791      164,   191,   202,   203,   204,   171,   137,   176,   137,   160,
  4792      161,   164,   177,   187,   191,   193,   204,   224,   317,   187,
  4793      187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
  4794      187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
  4795      187,   187,   187,    52,    53,    56,   185,   266,   352,   353,
  4796      196,    52,    53,    56,   185,   265,   352,   153,   154,    13,
  4797      236,   362,   236,   163,   163,   357,    17,   276,    56,    88,
  4798      136,   355,    25,   162,    52,    56,   178,   121,   318,    88,
  4799      136,   355,   219,   347,   220,    88,   144,   354,    52,    56,
  4800      352,   161,   187,   193,   161,   193,   184,   115,   191,    98,
  4801      191,   200,   349,    52,    56,   196,    52,    56,   350,   359,
  4802      140,   359,   137,   137,   359,   182,   210,   187,   149,   135,
  4803      352,   352,   193,   134,   359,   156,   209,   349,   137,   175,
  4804       52,    56,   196,    52,    56,    52,    54,    55,    56,    57,
  4805       58,    70,    92,    98,    99,   100,   124,   127,   139,   257,
  4806      322,   324,   325,   326,   327,   328,   329,   330,   331,   334,
  4807      335,   336,   337,   340,   341,   342,   343,   344,   302,   301,
  4808      143,   300,   143,   143,   143,   187,   273,   274,   270,   271,
  4809      167,   273,   191,   137,   359,   175,   137,    44,   117,    44,
  4810       88,   136,   355,   358,    90,    90,   194,   198,   264,   358,
  4811      360,    90,    90,   194,   198,   263,    10,   235,     8,   278,
  4812      364,   154,    13,   154,    27,   237,   362,   237,   276,   202,
  4813      235,    52,    56,   196,    52,    56,   215,   218,   319,   217,
  4814       52,    56,   178,   196,   153,   162,   221,   222,   194,   195,
  4815      198,   364,   182,   191,   191,   201,    90,    90,   360,    90,
  4816       90,   349,   162,   135,   149,   359,   361,   173,   360,    92,
  4817       98,   241,   242,   243,   326,   324,   255,   117,   137,   323,
  4818      191,   137,   345,   364,    52,   137,   345,   137,   323,    52,
  4819      137,   323,    52,   303,    54,    55,    57,   307,   317,    10,
  4820      275,   135,   272,   270,    10,    98,   191,   175,   158,   187,
  4821       52,    56,   196,    52,    56,   119,   161,   193,   161,   193,
  4822      166,   194,   141,    90,   161,   193,   161,   193,   166,   195,
  4823      191,   204,   279,   364,    15,   239,   364,    14,   238,   239,
  4824      239,   212,   214,   235,   137,   236,   360,   163,   362,   163,
  4825      153,   360,   235,   359,   139,   320,   321,   180,   267,   259,
  4826       90,   137,   359,   135,   243,   137,   326,   137,   359,   249,
  4827      358,   256,   191,   322,   328,   340,   342,   331,   336,   344,
  4828      329,   337,   342,   327,   329,   304,    78,   122,   247,   248,
  4829      364,   247,   135,   191,   360,   187,   161,   193,    91,   280,
  4830      364,   154,     9,   281,   364,   163,   235,   235,   154,   154,
  4831      191,   154,   237,   153,   362,   235,   324,   153,   324,   223,
  4832      359,   242,   137,    98,   241,   140,   142,    29,   114,   258,
  4833      137,   323,   137,   323,   345,   137,   323,   137,   323,   323,
  4834      305,   244,   246,   249,   327,   329,   330,   332,   333,   336,
  4835      338,   339,   342,   344,   153,   154,    89,   177,   224,   313,
  4836      314,   317,   236,   154,   236,   235,   235,   239,   276,   277,
  4837      216,   235,   359,   235,   362,   320,   137,   242,   137,   326,
  4838       52,   250,   251,   325,   154,   154,   329,   342,   329,   329,
  4839      306,   249,   122,   117,   137,   245,    89,   224,   137,   345,
  4840      345,   137,   245,   137,   245,    56,    88,   136,   355,   154,
  4841      154,   154,   153,   242,   137,   137,   358,   235,   135,   323,
  4842      137,   323,   323,   323,   154,   122,   224,   244,   339,   342,
  4843       56,    88,   332,   336,   329,   338,   342,   329,    52,    56,
  4844      196,    52,    56,   278,   238,   235,   235,   242,   251,   329,
  4845      111,   137,   245,   137,   245,    52,    56,   345,   137,   245,
  4846      137,   245,   245,   360,   323,   329,   342,   329,   329,   245,
  4847      137,   245,   245,   245,   329,   245
  4850 #define yyerrok         (yyerrstatus = 0)  4851 #define yyclearin       (yychar = YYEMPTY)  4852 #define YYEMPTY         (-2)  4855 #define YYACCEPT        goto yyacceptlab  4856 #define YYABORT         goto yyabortlab  4857 #define YYERROR         goto yyerrorlab  4864 #define YYFAIL          goto yyerrlab  4866 #define YYRECOVERING()  (!!yyerrstatus)  4868 #define YYBACKUP(Token, Value)                                  \  4870   if (yychar == YYEMPTY && yylen == 1)                          \  4874       yytoken = YYTRANSLATE (yychar);                           \  4880       yyerror (&yylloc, parser, YY_("syntax error: cannot back up")); \  4887 #define YYERRCODE       256  4894 #define YYRHSLOC(Rhs, K) ((Rhs)[K])  4895 #ifndef YYLLOC_DEFAULT  4896 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \  4900           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \  4901           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \  4902           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \  4903           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \  4907           (Current).first_line   = (Current).last_line   =              \  4908             YYRHSLOC (Rhs, 0).last_line;                                \  4909           (Current).first_column = (Current).last_column =              \  4910             YYRHSLOC (Rhs, 0).last_column;                              \  4920 #ifndef YY_LOCATION_PRINT  4921 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL  4922 #  define YY_LOCATION_PRINT(File, Loc)                  \  4923      fprintf (File, "%d.%d-%d.%d",                      \  4924               (Loc).first_line, (Loc).first_column,     \  4925               (Loc).last_line,  (Loc).last_column)  4927 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)  4935 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)  4937 # define YYLEX yylex (&yylval, &yylloc, parser)  4945 #  define YYFPRINTF fprintf  4948 # define YYDPRINTF(Args)                        \  4954 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \  4958       YYFPRINTF (parser, "%s ", Title);                                   \  4959       yy_symbol_print (stderr,                                            \  4960                   Type, Value, Location, parser); \  4961       YYFPRINTF (parser, "\n");                                           \  4971 #if (defined __STDC__ || defined __C99__FUNC__ \  4972      || defined __cplusplus || defined _MSC_VER)  4977 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parser)
  4980     YYSTYPE const * 
const yyvaluep;
  4981     YYLTYPE const * 
const yylocationp;
  4987   YYUSE (yylocationp);
  4991     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
  5007 #if (defined __STDC__ || defined __C99__FUNC__ \  5008      || defined __cplusplus || defined _MSC_VER)  5013 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, parser)
  5016     YYSTYPE const * 
const yyvaluep;
  5017     YYLTYPE const * 
const yylocationp;
  5022     YYFPRINTF (parser, 
"token %s (", yytname[yytype]);
  5024     YYFPRINTF (parser, 
"nterm %s (", yytname[yytype]);
  5028   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parser);
  5037 #if (defined __STDC__ || defined __C99__FUNC__ \  5038      || defined __cplusplus || defined _MSC_VER)  5040 yy_stack_print (yytype_int16 *bottom, yytype_int16 *
top, 
struct parser_params *parser)
  5043 yy_stack_print (bottom, top, parser)
  5044     yytype_int16 *bottom;
  5049   for (; bottom <= 
top; ++bottom)
  5054 # define YY_STACK_PRINT(Bottom, Top)                            \  5057     yy_stack_print ((Bottom), (Top), parser);                           \  5065 #if (defined __STDC__ || defined __C99__FUNC__ \  5066      || defined __cplusplus || defined _MSC_VER)  5071 yy_reduce_print (yyvsp, yylsp, yyrule, parser)
  5078   int yynrhs = yyr2[yyrule];
  5080   unsigned long int yylno = yyrline[yyrule];
  5081   YYFPRINTF (parser, 
"Reducing stack by rule %d (line %lu):\n",
  5084   for (yyi = 0; yyi < yynrhs; yyi++)
  5087       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
  5088                        &(yyvsp[(yyi + 1) - (yynrhs)])
  5089                        , &(yylsp[(yyi + 1) - (yynrhs)])                , parser);
  5094 # define YY_REDUCE_PRINT(Rule)          \  5097     yy_reduce_print (yyvsp, yylsp, Rule, parser); \  5106 # define YYDPRINTF(Args)  5107 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)  5108 # define YY_STACK_PRINT(Bottom, Top)  5109 # define YY_REDUCE_PRINT(Rule)  5115 # define YYINITDEPTH 200  5126 # define YYMAXDEPTH 10000  5134 #  if defined __GLIBC__ && defined _STRING_H  5135 #   define yystrlen strlen  5138 #if (defined __STDC__ || defined __C99__FUNC__ \  5139      || defined __cplusplus || defined _MSC_VER)  5141 yystrlen (
const char *yystr)
  5149   for (yylen = 0; yystr[yylen]; yylen++)
  5157 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE  5158 #   define yystpcpy stpcpy  5162 #if (defined __STDC__ || defined __C99__FUNC__ \  5163      || defined __cplusplus || defined _MSC_VER)  5165 yystpcpy (
char *yydest, 
const char *yysrc)
  5168 yystpcpy (yydest, yysrc)
  5174   const char *yys = yysrc;
  5176   while ((*yyd++ = *yys++) != 
'\0')
  5193 yytnamerr (
char *yyres, 
const char *yystr)
  5198       char const *yyp = yystr;
  5205             goto do_not_strip_quotes;
  5209               goto do_not_strip_quotes;
  5222     do_not_strip_quotes: ;
  5226     return yystrlen (yystr);
  5228   return yystpcpy (yyres, yystr) - yyres;
  5240 yysyntax_error (
char *yyresult, 
int yystate, 
int yychar)
  5242   int yyn = yypact[yystate];
  5249       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
  5252       int yysize_overflow = 0;
  5253       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
  5254       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
  5260       YY_(
"syntax error, unexpected %s");
  5261       YY_(
"syntax error, unexpected %s, expecting %s");
  5262       YY_(
"syntax error, unexpected %s, expecting %s or %s");
  5263       YY_(
"syntax error, unexpected %s, expecting %s or %s or %s");
  5264       YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s");
  5268       static char const yyunexpected[] = 
"syntax error, unexpected %s";
  5269       static char const yyexpecting[] = 
", expecting %s";
  5270       static char const yyor[] = 
" or %s";
  5271       char yyformat[
sizeof yyunexpected
  5272                     + 
sizeof yyexpecting - 1
  5273                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
  5274                        * (
sizeof yyor - 1))];
  5275       char const *yyprefix = yyexpecting;
  5279       int yyxbegin = yyn < 0 ? -yyn : 0;
  5282       int yychecklim = 
YYLAST - yyn + 1;
  5286       yyarg[0] = yytname[yytype];
  5287       yyfmt = yystpcpy (yyformat, yyunexpected);
  5289       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
  5290         if (yycheck[yyx + yyn] == yyx && yyx != 
YYTERROR)
  5292             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
  5296                 yyformat[
sizeof yyunexpected - 1] = 
'\0';
  5299             yyarg[yycount++] = yytname[yyx];
  5300             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
  5301             yysize_overflow |= (yysize1 < yysize);
  5303             yyfmt = yystpcpy (yyfmt, yyprefix);
  5307       yyf = 
YY_(yyformat);
  5308       yysize1 = yysize + yystrlen (yyf);
  5309       yysize_overflow |= (yysize1 < yysize);
  5312       if (yysize_overflow)
  5320           char *yyp = yyresult;
  5322           while ((*yyp = *yyf) != 
'\0')
  5324               if (*yyp == 
'%' && yyf[1] == 
's' && yyi < yycount)
  5326                   yyp += yytnamerr (yyp, yyarg[yyi++]);
  5347 #if (defined __STDC__ || defined __C99__FUNC__ \  5348      || defined __cplusplus || defined _MSC_VER)  5353 yydestruct (yymsg, yytype, yyvaluep, yylocationp, parser)
  5362   YYUSE (yylocationp);
  5380 #ifdef YYPARSE_PARAM  5381 #if defined __STDC__ || defined __cplusplus  5382 int yyparse (
void *YYPARSE_PARAM);
  5387 #if defined __STDC__ || defined __cplusplus  5403 #ifdef YYPARSE_PARAM  5404 #if (defined __STDC__ || defined __C99__FUNC__ \  5405      || defined __cplusplus || defined _MSC_VER)  5411     void *YYPARSE_PARAM;
  5414 #if (defined __STDC__ || defined __C99__FUNC__ \  5415      || defined __cplusplus || defined _MSC_VER)  5446   char *yymsg = yymsgbuf;
  5447   YYSIZE_T yymsg_alloc = 
sizeof yymsgbuf;
  5460   yytype_int16 *yyss = yyssa;
  5461   yytype_int16 *yyssp;
  5475 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))  5488   YYDPRINTF ((parser, 
"Starting parse\n"));
  5503 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL  5522   if (yyss + yystacksize - 1 <= yyssp)
  5525       YYSIZE_T yysize = yyssp - yyss + 1;
  5533         yytype_int16 *yyss1 = yyss;
  5540         yyoverflow (
YY_(
"memory exhausted"),
  5541                     &yyss1, yysize * 
sizeof (*yyssp),
  5542                     &yyvs1, yysize * 
sizeof (*yyvsp),
  5543                     &yyls1, yysize * 
sizeof (*yylsp),
  5550 # ifndef YYSTACK_RELOCATE  5551       goto yyexhaustedlab;
  5555         goto yyexhaustedlab;
  5561         yytype_int16 *yyss1 = yyss;
  5565           goto yyexhaustedlab;
  5569 #  undef YYSTACK_RELOCATE  5576       yyssp = yyss + yysize - 1;
  5577       yyvsp = yyvs + yysize - 1;
  5578       yylsp = yyls + yysize - 1;
  5580       YYDPRINTF ((parser, 
"Stack size increased to %lu\n",
  5581                   (
unsigned long int) yystacksize));
  5583       if (yyss + yystacksize - 1 <= yyssp)
  5587   YYDPRINTF ((parser, 
"Entering state %d\n", yystate));
  5600   yyn = yypact[yystate];
  5609       YYDPRINTF ((parser, 
"Reading a token: "));
  5613   if (yychar <= 
YYEOF)
  5615       yychar = yytoken = 
YYEOF;
  5616       YYDPRINTF ((parser, 
"Now at end of input.\n"));
  5627   if (yyn < 0 || 
YYLAST < yyn || yycheck[yyn] != yytoken)
  5650   if (yychar != 
YYEOF)
  5663   yyn = yydefact[yystate];
  5684   yyval = yyvsp[1-yylen];
  5692 #line 1064 "ripper.y"  5704 #line 1073 "ripper.y"  5711                                 NODE *node = (yyvsp[(2) - (2)].
val);
  5712                                 while (node->nd_next) {
  5713                                     node = node->nd_next;
  5720                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  5721                         parser->result = dispatch1(program, (yyval.
val));
  5728 #line 1096 "ripper.y"  5734                         (yyval.
val) = (yyvsp[(1) - (2)].
val);
  5739 #line 1106 "ripper.y"  5742                         (yyval.
val) = 
new_begin(0, (yylsp[(1) - (1)]).first_column);
  5744                         (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
  5745                                                   dispatch0(void_stmt));
  5751 #line 1115 "ripper.y"  5754                         (yyval.
val) = newline_node((yyvsp[(1) - (1)].
val));
  5756                         (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
  5762 #line 1123 "ripper.y"  5765                         (yyval.
val) = 
block_append((yyvsp[(1) - (3)].
val), newline_node((yyvsp[(3) - (3)].
val)), (yylsp[(1) - (3)]).first_column);
  5767                         (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  5773 #line 1131 "ripper.y"  5775                         (yyval.
val) = remove_begin((yyvsp[(2) - (2)].
val));
  5780 #line 1138 "ripper.y"  5790 #line 1145 "ripper.y"  5794                                                             (yyvsp[(4) - (5)].
val), (yylsp[(1) - (5)]).first_column);
  5797                         (yyval.
val) = 
new_begin(0, (yylsp[(1) - (5)]).first_column);
  5799                         (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
  5805 #line 1162 "ripper.y"  5808                         (yyval.
val) = (yyvsp[(1) - (4)].
val);
  5809                         if ((yyvsp[(2) - (4)].
val)) {
  5810                             (yyval.
val) = 
new_rescue((yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  5812                         else if ((yyvsp[(3) - (4)].
val)) {
  5813                             rb_warn0(
"else without rescue is useless");
  5816                         if ((yyvsp[(4) - (4)].
val)) {
  5824                                 (yyval.
val) = 
block_append((yyvsp[(4) - (4)].
val), nil, (yylsp[(1) - (4)]).first_column);
  5827                         fixpos((yyval.
val), (yyvsp[(1) - (4)].
val));
  5829                         (yyval.
val) = dispatch4(bodystmt,
  5830                                        escape_Qundef((yyvsp[(1) - (4)].
val)),
  5831                                        escape_Qundef((yyvsp[(2) - (4)].
val)),
  5832                                        escape_Qundef((yyvsp[(3) - (4)].
val)),
  5833                                        escape_Qundef((yyvsp[(4) - (4)].
val)));
  5839 #line 1195 "ripper.y"  5845                         (yyval.
val) = (yyvsp[(1) - (2)].
val);
  5850 #line 1205 "ripper.y"  5853                         (yyval.
val) = 
new_begin(0, (yylsp[(1) - (1)]).first_column);
  5855                         (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
  5856                                                   dispatch0(void_stmt));
  5862 #line 1214 "ripper.y"  5865                         (yyval.
val) = newline_node((yyvsp[(1) - (1)].
val));
  5867                         (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
  5873 #line 1222 "ripper.y"  5876                         (yyval.
val) = 
block_append((yyvsp[(1) - (3)].
val), newline_node((yyvsp[(3) - (3)].
val)), (yylsp[(1) - (3)]).first_column);
  5878                         (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  5884 #line 1230 "ripper.y"  5886                         (yyval.
val) = remove_begin((yyvsp[(2) - (2)].
val));
  5891 #line 1236 "ripper.y"  5893                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  5898 #line 1240 "ripper.y"  5900                         yyerror0(
"BEGIN is permitted only at toplevel");
  5909 #line 1248 "ripper.y"  5913                                                             (yyvsp[(4) - (5)].
val), (yylsp[(1) - (5)]).first_column);
  5916                         (yyval.
val) = 
new_begin(0, (yylsp[(1) - (5)]).first_column);
  5918                         (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
  5924 #line 1261 "ripper.y"  5929 #line 1262 "ripper.y"  5935                         (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
  5941 #line 1271 "ripper.y"  5947                         (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
  5953 #line 1280 "ripper.y"  5958                         buf[1] = (char)(yyvsp[(3) - (3)].
val)->nd_nth;
  5962                         (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
  5968 #line 1292 "ripper.y"  5971                         yyerror0(
"can't make alias for the number variables");
  5972                         (yyval.
val) = 
new_begin(0, (yylsp[(1) - (3)]).first_column);
  5974                         (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
  5975                         (yyval.
val) = dispatch1(alias_error, (yyval.
val));
  5982 #line 1303 "ripper.y"  5985                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  5987                         (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].
val));
  5993 #line 1311 "ripper.y"  5996                         (yyval.
val) = 
new_if((yyvsp[(3) - (3)].
val), remove_begin((yyvsp[(1) - (3)].
val)), 0, (yylsp[(1) - (3)]).first_column);
  5997                         fixpos((yyval.
val), (yyvsp[(3) - (3)].
val));
  5999                         (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
  6005 #line 1320 "ripper.y"  6008                         (yyval.
val) = 
new_unless((yyvsp[(3) - (3)].
val), remove_begin((yyvsp[(1) - (3)].
val)), 0, (yylsp[(1) - (3)]).first_column);
  6009                         fixpos((yyval.
val), (yyvsp[(3) - (3)].
val));
  6011                         (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
  6017 #line 1329 "ripper.y"  6024                             (yyval.
val) = 
NEW_WHILE(
cond((yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column), (yyvsp[(1) - (3)].
val), 1);
  6028                         (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
  6034 #line 1343 "ripper.y"  6041                             (yyval.
val) = 
NEW_UNTIL(
cond((yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column), (yyvsp[(1) - (3)].
val), 1);
  6045                         (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
  6051 #line 1357 "ripper.y"  6054                         NODE *resq = 
new_resbody(0, remove_begin((yyvsp[(3) - (3)].
val)), 0, (yylsp[(1) - (3)]).first_column);
  6055                         (yyval.
val) = 
new_rescue(remove_begin((yyvsp[(1) - (3)].
val)), resq, 0, (yylsp[(1) - (3)]).first_column);
  6058                         (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6064 #line 1367 "ripper.y"  6067                             rb_warn0(
"END in method; use at_exit");
  6078                         (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].
val));
  6084 #line 1385 "ripper.y"  6089                         (yyval.
val) = (yyvsp[(1) - (3)].
val);
  6091                         (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6097 #line 1395 "ripper.y"  6100                         (yyval.
val) = 
node_assign((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6105 #line 1400 "ripper.y"  6109                         (yyval.
val) = (yyvsp[(1) - (3)].
val);
  6111                         (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6117 #line 1412 "ripper.y"  6120                         (yyval.
val) = 
node_assign((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6125 #line 1417 "ripper.y"  6128                         (yyval.
val) = 
new_op_assign((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6133 #line 1422 "ripper.y"  6139                         if (!(yyvsp[(3) - (6)].
val)) (yyvsp[(3) - (6)].
val) = 
new_zarray((yylsp[(1) - (6)]).first_column);
  6140                         args = 
arg_concat((yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val), (yylsp[(1) - (6)]).first_column);
  6141                         if ((yyvsp[(5) - (6)].
val) == 
tOROP) {
  6142                             (yyvsp[(5) - (6)].
val) = 0;
  6144                         else if ((yyvsp[(5) - (6)].
val) == 
tANDOP) {
  6145                             (yyvsp[(5) - (6)].
val) = 1;
  6148                         fixpos((yyval.
val), (yyvsp[(1) - (6)].
val));
  6151                         (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
  6152                         (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
  6158 #line 1444 "ripper.y"  6161                         (yyval.
val) = 
new_attr_op_assign((yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
  6166 #line 1449 "ripper.y"  6169                         (yyval.
val) = 
new_attr_op_assign((yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
  6174 #line 1454 "ripper.y"  6182 #line 1459 "ripper.y"  6190 #line 1464 "ripper.y"  6198 #line 1471 "ripper.y"  6202                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  6209 #line 1479 "ripper.y"  6213                         (yyval.
val) = 
new_rescue((yyvsp[(1) - (3)].
val), 
new_resbody(0, remove_begin((yyvsp[(3) - (3)].
val)), 0, (yylsp[(1) - (3)]).first_column), 0, (yylsp[(1) - (3)]).first_column);
  6215                         (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6221 #line 1492 "ripper.y"  6223                         (yyval.
val) = 
logop(idAND, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6228 #line 1496 "ripper.y"  6230                         (yyval.
val) = 
logop(idOR, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6235 #line 1500 "ripper.y"  6242 #line 1504 "ripper.y"  6249 #line 1511 "ripper.y"  6253                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  6256                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  6262 #line 1528 "ripper.y"  6264                         (yyval.
val) = 
new_qcall((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  6269 #line 1534 "ripper.y"  6279 #line 1541 "ripper.y"  6281                         (yyval.
val) = (yyvsp[(3) - (4)].
val);
  6289 #line 1550 "ripper.y"  6292                         (yyval.
val) = 
new_fcall((yyvsp[(1) - (1)].
val), 0, (yylsp[(1) - (1)]).first_column);
  6300 #line 1560 "ripper.y"  6303                         (yyval.
val) = (yyvsp[(1) - (2)].
val);
  6306                         (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
  6312 #line 1569 "ripper.y"  6317                         fixpos((yyval.
val), (yyvsp[(1) - (3)].
val));
  6322 #line 1576 "ripper.y"  6324                         (yyval.
val) = 
new_command_qcall((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  6325                         fixpos((yyval.
val), (yyvsp[(1) - (4)].
val));
  6330 #line 1581 "ripper.y"  6333                         (yyval.
val) = 
new_command_qcall((yyvsp[(2) - (5)].
val), (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val), (yylsp[(1) - (5)]).first_column);
  6335                         fixpos((yyval.
val), (yyvsp[(1) - (5)].
val));
  6340 #line 1588 "ripper.y"  6343                         fixpos((yyval.
val), (yyvsp[(1) - (4)].
val));
  6348 #line 1593 "ripper.y"  6353                         fixpos((yyval.
val), (yyvsp[(1) - (5)].
val));
  6358 #line 1600 "ripper.y"  6362                         fixpos((yyval.
val), (yyvsp[(2) - (2)].
val));
  6365                         (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
  6371 #line 1610 "ripper.y"  6374                         (yyval.
val) = 
new_yield((yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
  6375                         fixpos((yyval.
val), (yyvsp[(2) - (2)].
val));
  6377                         (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].
val));
  6383 #line 1619 "ripper.y"  6389                         (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].
val));
  6395 #line 1628 "ripper.y"  6401                         (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].
val));
  6407 #line 1637 "ripper.y"  6413                         (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].
val));
  6419 #line 1649 "ripper.y"  6422                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  6424                         (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
  6430 #line 1660 "ripper.y"  6433                         (yyval.
val) = 
new_masgn(
new_list((yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column), 0, (yylsp[(1) - (3)]).first_column);
  6435                         (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
  6441 #line 1670 "ripper.y"  6444                         (yyval.
val) = 
new_masgn((yyvsp[(1) - (1)].
val), 0, (yylsp[(1) - (1)]).first_column);
  6446                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  6452 #line 1678 "ripper.y"  6455                         (yyval.
val) = 
new_masgn(
list_append((yyvsp[(1) - (2)].
val),(yyvsp[(2) - (2)].
val),(yylsp[(1) - (2)]).first_column), 0, (yylsp[(1) - (2)]).first_column);
  6457                         (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
  6463 #line 1686 "ripper.y"  6466                         (yyval.
val) = 
new_masgn((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6468                         (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6474 #line 1694 "ripper.y"  6477                         (yyval.
val) = 
new_masgn((yyvsp[(1) - (5)].
val), 
new_postarg((yyvsp[(3) - (5)].
val),(yyvsp[(5) - (5)].
val),(yylsp[(1) - (5)]).first_column), (yylsp[(1) - (5)]).first_column);
  6479                         (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
  6480                         (yyval.
val) = mlhs_add_post((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
  6486 #line 1703 "ripper.y"  6489                         (yyval.
val) = 
new_masgn((yyvsp[(1) - (2)].
val), (
NODE *)-1, (yylsp[(1) - (2)]).first_column);
  6491                         (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].
val), 
Qnil);
  6497 #line 1711 "ripper.y"  6500                         (yyval.
val) = 
new_masgn((yyvsp[(1) - (4)].
val), 
new_postarg((
NODE *)-1, (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column);
  6502                         (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), 
Qnil);
  6503                         (yyval.
val) = mlhs_add_post((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
  6509 #line 1720 "ripper.y"  6512                         (yyval.
val) = 
new_masgn(0, (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
  6514                         (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
  6520 #line 1728 "ripper.y"  6523                         (yyval.
val) = 
new_masgn(0, 
new_postarg((yyvsp[(2) - (4)].
val),(yyvsp[(4) - (4)].
val),(yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column);
  6525                         (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
  6526                         (yyval.
val) = mlhs_add_post((yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
  6532 #line 1737 "ripper.y"  6537                         (yyval.
val) = mlhs_add_star(mlhs_new(), 
Qnil);
  6543 #line 1745 "ripper.y"  6548                         (yyval.
val) = mlhs_add_star(mlhs_new(), 
Qnil);
  6549                         (yyval.
val) = mlhs_add_post((yyval.
val), (yyvsp[(3) - (3)].
val));
  6555 #line 1757 "ripper.y"  6558                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  6560                         (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
  6566 #line 1767 "ripper.y"  6569                         (yyval.
val) = 
new_list((yyvsp[(1) - (2)].
val), (yylsp[(1) - (2)]).first_column);
  6571                         (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
  6577 #line 1775 "ripper.y"  6580                         (yyval.
val) = 
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6582                         (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
  6588 #line 1785 "ripper.y"  6591                         (yyval.
val) = 
new_list((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
  6593                         (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
  6599 #line 1793 "ripper.y"  6602                         (yyval.
val) = 
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6604                         (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6610 #line 1803 "ripper.y"  6617 #line 1807 "ripper.y"  6624 #line 1811 "ripper.y"  6627                         (yyval.
val) = 
aryset((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  6629                         (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
  6635 #line 1819 "ripper.y"  6638                         (yyval.
val) = 
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6640                         (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6646 #line 1827 "ripper.y"  6657 #line 1835 "ripper.y"  6660                         (yyval.
val) = 
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6662                         (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6668 #line 1843 "ripper.y"  6675 #line 1847 "ripper.y"  6682 #line 1851 "ripper.y"  6690 #line 1858 "ripper.y"  6694                         if (!(yyval.
val)) (yyval.
val) = 
new_begin(0, (yylsp[(1) - (1)]).first_column);
  6701 #line 1866 "ripper.y"  6705                         if (!(yyval.
val)) (yyval.
val) = 
new_begin(0, (yylsp[(1) - (1)]).first_column);
  6712 #line 1874 "ripper.y"  6715                         (yyval.
val) = 
aryset((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  6717                         (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
  6723 #line 1882 "ripper.y"  6726                         (yyval.
val) = 
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6728                         (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6734 #line 1890 "ripper.y"  6745 #line 1898 "ripper.y"  6748                         (yyval.
val) = 
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  6750                         (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6756 #line 1906 "ripper.y"  6763 #line 1910 "ripper.y"  6770 #line 1914 "ripper.y"  6778 #line 1921 "ripper.y"  6781                         yyerror0(
"class/module name must be CONSTANT");
  6783                         (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].
val));
  6790 #line 1933 "ripper.y"  6795                         (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
  6801 #line 1941 "ripper.y"  6807                         (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].
val));
  6813 #line 1950 "ripper.y"  6819                         (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  6825 #line 1964 "ripper.y"  6828                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  6833 #line 1969 "ripper.y"  6836                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  6841 #line 1980 "ripper.y"  6846                         (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
  6852 #line 1991 "ripper.y"  6855                         (yyval.
val) = 
new_undef((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
  6863 #line 1998 "ripper.y"  6868 #line 1999 "ripper.y"  6871                         NODE *undef = 
new_undef((yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  6872                         (yyval.
val) = 
block_append((yyvsp[(1) - (4)].
val), undef, (yylsp[(1) - (4)]).first_column);
  6880 #line 2009 "ripper.y"  6885 #line 2010 "ripper.y"  6890 #line 2011 "ripper.y"  6895 #line 2012 "ripper.y"  6900 #line 2013 "ripper.y"  6905 #line 2014 "ripper.y"  6910 #line 2015 "ripper.y"  6915 #line 2016 "ripper.y"  6920 #line 2017 "ripper.y"  6925 #line 2018 "ripper.y"  6930 #line 2019 "ripper.y"  6935 #line 2020 "ripper.y"  6940 #line 2021 "ripper.y"  6945 #line 2022 "ripper.y"  6950 #line 2023 "ripper.y"  6955 #line 2024 "ripper.y"  6960 #line 2025 "ripper.y"  6965 #line 2026 "ripper.y"  6970 #line 2027 "ripper.y"  6975 #line 2028 "ripper.y"  6980 #line 2029 "ripper.y"  6985 #line 2030 "ripper.y"  6990 #line 2031 "ripper.y"  6995 #line 2032 "ripper.y"  7000 #line 2033 "ripper.y"  7005 #line 2034 "ripper.y"  7010 #line 2035 "ripper.y"  7015 #line 2036 "ripper.y"  7020 #line 2037 "ripper.y"  7025 #line 2038 "ripper.y"  7030 #line 2056 "ripper.y"  7032                         (yyval.
val) = 
node_assign((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7037 #line 2060 "ripper.y"  7039                         (yyval.
val) = 
new_op_assign((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7044 #line 2064 "ripper.y"  7050                         if (!(yyvsp[(3) - (6)].
val)) (yyvsp[(3) - (6)].
val) = 
new_zarray((yylsp[(1) - (6)]).first_column);
  7056                             args = 
arg_concat((yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val), (yylsp[(1) - (6)]).first_column);
  7058                         if ((yyvsp[(5) - (6)].
val) == 
tOROP) {
  7059                             (yyvsp[(5) - (6)].
val) = 0;
  7061                         else if ((yyvsp[(5) - (6)].
val) == 
tANDOP) {
  7062                             (yyvsp[(5) - (6)].
val) = 1;
  7065                         fixpos((yyval.
val), (yyvsp[(1) - (6)].
val));
  7068                         (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
  7069                         (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
  7075 #line 2092 "ripper.y"  7078                         (yyval.
val) = 
new_attr_op_assign((yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
  7083 #line 2097 "ripper.y"  7086                         (yyval.
val) = 
new_attr_op_assign((yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
  7091 #line 2102 "ripper.y"  7099 #line 2107 "ripper.y"  7107 #line 2112 "ripper.y"  7115 #line 2117 "ripper.y"  7123 #line 2122 "ripper.y"  7131                         (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  7137 #line 2133 "ripper.y"  7145                         (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  7151 #line 2144 "ripper.y"  7153                         (yyval.
val) = 
call_bin_op((yyvsp[(1) - (3)].
val), 
'+', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7158 #line 2148 "ripper.y"  7160                         (yyval.
val) = 
call_bin_op((yyvsp[(1) - (3)].
val), 
'-', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7165 #line 2152 "ripper.y"  7167                         (yyval.
val) = 
call_bin_op((yyvsp[(1) - (3)].
val), 
'*', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7172 #line 2156 "ripper.y"  7174                         (yyval.
val) = 
call_bin_op((yyvsp[(1) - (3)].
val), 
'/', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7179 #line 2160 "ripper.y"  7181                         (yyval.
val) = 
call_bin_op((yyvsp[(1) - (3)].
val), 
'%', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7186 #line 2164 "ripper.y"  7193 #line 2168 "ripper.y"  7200 #line 2172 "ripper.y"  7207 #line 2176 "ripper.y"  7214 #line 2180 "ripper.y"  7216                         (yyval.
val) = 
call_bin_op((yyvsp[(1) - (3)].
val), 
'|', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7221 #line 2184 "ripper.y"  7223                         (yyval.
val) = 
call_bin_op((yyvsp[(1) - (3)].
val), 
'^', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7228 #line 2188 "ripper.y"  7230                         (yyval.
val) = 
call_bin_op((yyvsp[(1) - (3)].
val), 
'&', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7235 #line 2192 "ripper.y"  7242 #line 2197 "ripper.y"  7249 #line 2201 "ripper.y"  7256 #line 2205 "ripper.y"  7263 #line 2209 "ripper.y"  7265                         (yyval.
val) = 
match_op((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7270 #line 2213 "ripper.y"  7277 #line 2217 "ripper.y"  7284 #line 2221 "ripper.y"  7286                         (yyval.
val) = 
call_uni_op((yyvsp[(2) - (2)].
val), 
'~', (yylsp[(1) - (2)]).first_column);
  7291 #line 2225 "ripper.y"  7298 #line 2229 "ripper.y"  7305 #line 2233 "ripper.y"  7307                         (yyval.
val) = 
logop(
idANDOP, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7312 #line 2237 "ripper.y"  7314                         (yyval.
val) = 
logop(
idOROP, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7319 #line 2240 "ripper.y"  7324 #line 2241 "ripper.y"  7327                         (yyval.
val) = 
new_defined((yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  7332 #line 2246 "ripper.y"  7336                         (yyval.
val) = 
new_if((yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val), (yylsp[(1) - (6)]).first_column);
  7337                         fixpos((yyval.
val), (yyvsp[(1) - (6)].
val));
  7339                         (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
  7345 #line 2256 "ripper.y"  7347                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  7352 #line 2261 "ripper.y"  7353     {(yyval.
val) = 
'>';;}
  7357 #line 2262 "ripper.y"  7358     {(yyval.
val) = 
'<';;}
  7362 #line 2263 "ripper.y"  7367 #line 2264 "ripper.y"  7372 #line 2268 "ripper.y"  7374                         (yyval.
val) = 
call_bin_op((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7379 #line 2272 "ripper.y"  7382                         (yyval.
val) = 
call_bin_op((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7387 #line 2279 "ripper.y"  7391                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  7394                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  7400 #line 2292 "ripper.y"  7402                         (yyval.
val) = (yyvsp[(1) - (2)].
val);
  7407 #line 2296 "ripper.y"  7410                         (yyval.
val) = (yyvsp[(3) - (4)].
val) ? 
arg_append((yyvsp[(1) - (4)].
val), 
new_hash((yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column) : (yyvsp[(1) - (4)].
val);
  7412                         (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
  7418 #line 2304 "ripper.y"  7421                         (yyval.
val) = (yyvsp[(1) - (2)].
val) ? 
new_list(
new_hash((yyvsp[(1) - (2)].
val), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column) : 0;
  7423                         (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
  7429 #line 2314 "ripper.y"  7433                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  7440 #line 2322 "ripper.y"  7444                         (yyval.
val) = 
new_rescue((yyvsp[(1) - (3)].
val), 
new_resbody(0, remove_begin((yyvsp[(3) - (3)].
val)), 0, (yylsp[(1) - (3)]).first_column), 0, (yylsp[(1) - (3)]).first_column);
  7446                         (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  7452 #line 2333 "ripper.y"  7455                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  7457                         (yyval.
val) = dispatch1(arg_paren, escape_Qundef((yyvsp[(2) - (3)].
val)));
  7463 #line 2349 "ripper.y"  7465                       (yyval.
val) = (yyvsp[(1) - (2)].
val);
  7470 #line 2353 "ripper.y"  7473                         (yyval.
val) = (yyvsp[(3) - (4)].
val) ? 
arg_append((yyvsp[(1) - (4)].
val), 
new_hash((yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column) : (yyvsp[(1) - (4)].
val);
  7475                         (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
  7481 #line 2361 "ripper.y"  7484                         (yyval.
val) = (yyvsp[(1) - (2)].
val) ? 
new_list(
new_hash((yyvsp[(1) - (2)].
val), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column) : 0;
  7486                         (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
  7492 #line 2371 "ripper.y"  7496                         (yyval.
val) = 
new_list((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
  7498                         (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
  7504 #line 2380 "ripper.y"  7507                         (yyval.
val) = arg_blk_pass((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
  7509                         (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
  7515 #line 2388 "ripper.y"  7518                         (yyval.
val) = (yyvsp[(1) - (2)].
val) ? 
new_list(
new_hash((yyvsp[(1) - (2)].
val), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column) : 0;
  7519                         (yyval.
val) = arg_blk_pass((yyval.
val), (yyvsp[(2) - (2)].
val));
  7521                         (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
  7522                         (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
  7528 #line 2398 "ripper.y"  7531                         (yyval.
val) = (yyvsp[(3) - (4)].
val) ? 
arg_append((yyvsp[(1) - (4)].
val), 
new_hash((yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column) : (yyvsp[(1) - (4)].
val);
  7532                         (yyval.
val) = arg_blk_pass((yyval.
val), (yyvsp[(4) - (4)].
val));
  7534                         (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
  7540 #line 2409 "ripper.y"  7542                         (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
  7547 #line 2415 "ripper.y"  7555 #line 2420 "ripper.y"  7559                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  7564 #line 2428 "ripper.y"  7570                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  7576 #line 2439 "ripper.y"  7578                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  7583 #line 2443 "ripper.y"  7590 #line 2449 "ripper.y"  7593                         (yyval.
val) = 
new_list((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
  7595                         (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
  7601 #line 2457 "ripper.y"  7607                         (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
  7613 #line 2466 "ripper.y"  7617                         if ((n1 = splat_array((yyvsp[(1) - (3)].
val))) != 0) {
  7618                             (yyval.
val) = 
list_append(n1, (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7621                             (yyval.
val) = 
arg_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7624                         (yyval.
val) = arg_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  7630 #line 2480 "ripper.y"  7635                             (yyval.
val) = list_concat(n1, (yyvsp[(4) - (4)].
val));
  7638                             (yyval.
val) = 
arg_concat((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  7641                         (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
  7647 #line 2500 "ripper.y"  7651                         if ((n1 = splat_array((yyvsp[(1) - (3)].
val))) != 0) {
  7652                             (yyval.
val) = 
list_append(n1, (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7655                             (yyval.
val) = 
arg_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7658                         (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
  7664 #line 2514 "ripper.y"  7669                             (n1 = splat_array((yyvsp[(1) - (4)].
val))) != 0) {
  7670                             (yyval.
val) = list_concat(n1, (yyvsp[(4) - (4)].
val));
  7673                             (yyval.
val) = 
arg_concat((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  7676                         (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].
val)), (yyvsp[(4) - (4)].
val));
  7682 #line 2529 "ripper.y"  7688                         (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
  7694 #line 2550 "ripper.y"  7697                         (yyval.
val) = 
new_fcall((yyvsp[(1) - (1)].
val), 0, (yylsp[(1) - (1)]).first_column);
  7699                         (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].
val)), arg_new());
  7705 #line 2558 "ripper.y"  7717 #line 2568 "ripper.y"  7721                         if ((yyvsp[(3) - (4)].
val) == 
NULL) {
  7726                             set_line_body((yyvsp[(3) - (4)].
val), (yyvsp[(2) - (4)].num));
  7727                             (yyval.
val) = 
new_begin((yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  7731                         (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].
val));
  7737 #line 2584 "ripper.y"  7742 #line 2585 "ripper.y"  7745                         (yyval.
val) = 
new_begin(0, (yylsp[(1) - (3)]).first_column);
  7747                         (yyval.
val) = dispatch1(paren, 0);
  7753 #line 2593 "ripper.y"  7761 #line 2597 "ripper.y"  7766 #line 2598 "ripper.y"  7770                         (yyval.
val) = (yyvsp[(3) - (5)].
val);
  7772                         (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (5)].
val));
  7778 #line 2607 "ripper.y"  7781                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  7783                         (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
  7789 #line 2615 "ripper.y"  7795                         (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  7801 #line 2624 "ripper.y"  7807                         (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
  7813 #line 2633 "ripper.y"  7816                         if ((yyvsp[(2) - (3)].
val) == 0) {
  7820                             (yyval.
val) = (yyvsp[(2) - (3)].
val);
  7823                         (yyval.
val) = dispatch1(array, escape_Qundef((yyvsp[(2) - (3)].
val)));
  7829 #line 2646 "ripper.y"  7832                         (yyval.
val) = 
new_hash((yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  7835                         (yyval.
val) = dispatch1(hash, escape_Qundef((yyvsp[(2) - (3)].
val)));
  7841 #line 2655 "ripper.y"  7847                         (yyval.
val) = dispatch0(return0);
  7853 #line 2664 "ripper.y"  7856                         (yyval.
val) = 
new_yield((yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  7858                         (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].
val)));
  7864 #line 2672 "ripper.y"  7870                         (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
  7876 #line 2681 "ripper.y"  7882                         (yyval.
val) = dispatch0(yield0);
  7888 #line 2689 "ripper.y"  7893 #line 2690 "ripper.y"  7896                         (yyval.
val) = 
new_defined((yyvsp[(5) - (6)].
val), (yylsp[(1) - (6)]).first_column);
  7901 #line 2695 "ripper.y"  7908 #line 2699 "ripper.y"  7915 #line 2703 "ripper.y"  7919                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  7921                         (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), arg_new());
  7928 #line 2714 "ripper.y"  7933                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  7941 #line 2724 "ripper.y"  7943                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  7948 #line 2731 "ripper.y"  7951                         (yyval.
val) = 
new_if((yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val), (yylsp[(1) - (6)]).first_column);
  7952                         fixpos((yyval.
val), (yyvsp[(2) - (6)].
val));
  7954                         (yyval.
val) = dispatch3(
if, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
  7960 #line 2743 "ripper.y"  7963                         (yyval.
val) = 
new_unless((yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val), (yylsp[(1) - (6)]).first_column);
  7964                         fixpos((yyval.
val), (yyvsp[(2) - (6)].
val));
  7966                         (yyval.
val) = dispatch3(unless, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
  7972 #line 2751 "ripper.y"  7977 #line 2751 "ripper.y"  7982 #line 2754 "ripper.y"  7985                         (yyval.
val) = 
NEW_WHILE(
cond((yyvsp[(3) - (7)].
val), (yylsp[(1) - (7)]).first_column), (yyvsp[(6) - (7)].
val), 1);
  7986                         fixpos((yyval.
val), (yyvsp[(3) - (7)].
val));
  7989                         (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
  7995 #line 2763 "ripper.y"  8000 #line 2763 "ripper.y"  8005 #line 2766 "ripper.y"  8008                         (yyval.
val) = 
NEW_UNTIL(
cond((yyvsp[(3) - (7)].
val), (yylsp[(1) - (7)]).first_column), (yyvsp[(6) - (7)].
val), 1);
  8009                         fixpos((yyval.
val), (yyvsp[(3) - (7)].
val));
  8012                         (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
  8018 #line 2778 "ripper.y"  8022                         fixpos((yyval.
val), (yyvsp[(2) - (5)].
val));
  8025                         (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
  8031 #line 2788 "ripper.y"  8038                         (yyval.
val) = dispatch2(
case, 
Qnil, (yyvsp[(3) - (4)].
val));
  8044 #line 2798 "ripper.y"  8049 #line 2800 "ripper.y"  8054 #line 2803 "ripper.y"  8073                             m->nd_next = 
node_assign((yyvsp[(2) - (9)].
val), 
new_for(
new_dvar(
id, (yylsp[(1) - (9)]).first_column), 0, 0, (yylsp[(1) - (9)]).first_column), (yylsp[(1) - (9)]).first_column);
  8081                             m->nd_next = (yyvsp[(2) - (9)].
val);
  8086                                 NODE *masgn = 
new_masgn(
new_list((yyvsp[(2) - (9)].
val), (yylsp[(1) - (9)]).first_column), 0, (yylsp[(1) - (9)]).first_column);
  8087                                 m->nd_next = 
node_assign(masgn, 
new_dvar(
id, (yylsp[(1) - (9)]).first_column), (yylsp[(1) - (9)]).first_column);
  8094                         tbl[0] = 1; tbl[1] = 
id;
  8095                         (yyval.
val) = 
new_for(0, (yyvsp[(5) - (9)].
val), scope, (yylsp[(1) - (9)]).first_column);
  8096                         fixpos((yyval.
val), (yyvsp[(2) - (9)].
val));
  8098                         (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].
val));
  8104 #line 2850 "ripper.y"  8107                             yyerror0(
"class definition in method body");
  8117 #line 2861 "ripper.y"  8122                         set_line_body((yyvsp[(5) - (6)].
val), (yyvsp[(4) - (6)].num));
  8126                         (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val));
  8133 #line 2874 "ripper.y"  8143 #line 2883 "ripper.y"  8148                         set_line_body((yyvsp[(6) - (7)].
val), 
nd_line((yyvsp[(3) - (7)].
val)));
  8149                         fixpos((yyval.
val), (yyvsp[(3) - (7)].
val));
  8152                         (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
  8155                         in_def = ((yyvsp[(4) - (7)].
num) >> 1) & 1;
  8161 #line 2898 "ripper.y"  8164                             yyerror0(
"module definition in method body");
  8174 #line 2909 "ripper.y"  8179                         set_line_body((yyvsp[(4) - (5)].
val), (yyvsp[(3) - (5)].num));
  8183                         (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
  8190 #line 2922 "ripper.y"  8199 #line 2927 "ripper.y"  8207 #line 2934 "ripper.y"  8210                         NODE *body = remove_begin((yyvsp[(6) - (7)].
val));
  8214                         set_line_body(body, (yyvsp[(1) - (7)].num));
  8218                         (yyval.
val) = dispatch3(def, (yyvsp[(2) - (7)].
val), (yyvsp[(5) - (7)].
val), (yyvsp[(6) - (7)].
val));
  8227 #line 2950 "ripper.y"  8232 #line 2951 "ripper.y"  8244 #line 2962 "ripper.y"  8247                         NODE *body = remove_begin((yyvsp[(8) - (9)].
val));
  8249                         (yyval.
val) = 
NEW_DEFS((yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), body);
  8251                         set_line_body(body, (yyvsp[(1) - (9)].num));
  8255                         (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].
val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].
val));
  8264 #line 2979 "ripper.y"  8270                         (yyval.
val) = dispatch1(
break, arg_new());
  8276 #line 2988 "ripper.y"  8282                         (yyval.
val) = dispatch1(next, arg_new());
  8288 #line 2997 "ripper.y"  8294                         (yyval.
val) = dispatch0(redo);
  8300 #line 3006 "ripper.y"  8306                         (yyval.
val) = dispatch0(retry);
  8312 #line 3017 "ripper.y"  8316                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  8319                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  8325 #line 3029 "ripper.y"  8332 #line 3035 "ripper.y"  8339 #line 3041 "ripper.y"  8346 #line 3047 "ripper.y"  8353 #line 3053 "ripper.y"  8360 #line 3059 "ripper.y"  8371 #line 3069 "ripper.y"  8378 #line 3075 "ripper.y"  8385 #line 3081 "ripper.y"  8392 #line 3087 "ripper.y"  8403 #line 3097 "ripper.y"  8410 #line 3105 "ripper.y"  8415 #line 3111 "ripper.y"  8416     { (yyval.
val) = (yyvsp[(2) - (2)].
val); ;}
  8420 #line 3118 "ripper.y"  8425 #line 3127 "ripper.y"  8428                         (yyval.
val) = 
new_if((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
  8429                         fixpos((yyval.
val), (yyvsp[(2) - (5)].
val));
  8431                         (yyval.
val) = dispatch3(elsif, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
  8437 #line 3139 "ripper.y"  8440                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  8442                         (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].
val));
  8448 #line 3153 "ripper.y"  8450                         (yyval.
val) = 
assignable((yyvsp[(1) - (1)].
val), 0, (yylsp[(1) - (1)]).first_column);
  8458 #line 3160 "ripper.y"  8461                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  8463                         (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
  8469 #line 3170 "ripper.y"  8472                         (yyval.
val) = 
new_list((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
  8474                         (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
  8480 #line 3178 "ripper.y"  8483                         (yyval.
val) = 
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  8485                         (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
  8491 #line 3188 "ripper.y"  8494                         (yyval.
val) = 
new_masgn((yyvsp[(1) - (1)].
val), 0, (yylsp[(1) - (1)]).first_column);
  8496                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  8502 #line 3196 "ripper.y"  8504                         (yyval.
val) = 
assignable((yyvsp[(4) - (4)].
val), 0, (yylsp[(1) - (4)]).first_column);
  8506                         (yyval.
val) = 
new_masgn((yyvsp[(1) - (4)].
val), (yyval.
val), (yylsp[(1) - (4)]).first_column);
  8508                         (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), (yyval.
val));
  8514 #line 3205 "ripper.y"  8516                         (yyval.
val) = 
assignable((yyvsp[(4) - (6)].
val), 0, (yylsp[(1) - (6)]).first_column);
  8518                         (yyval.
val) = 
new_masgn((yyvsp[(1) - (6)].
val), 
new_postarg((yyval.
val), (yyvsp[(6) - (6)].
val), (yylsp[(1) - (6)]).first_column), (yylsp[(1) - (6)]).first_column);
  8520                         (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].
val), (yyval.
val));
  8521                         (yyval.
val) = mlhs_add_post((yyval.
val), (yyvsp[(6) - (6)].
val));
  8527 #line 3215 "ripper.y"  8530                         (yyval.
val) = 
new_masgn((yyvsp[(1) - (3)].
val), (
NODE *)-1, (yylsp[(1) - (3)]).first_column);
  8532                         (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), 
Qnil);
  8538 #line 3223 "ripper.y"  8541                         (yyval.
val) = 
new_masgn((yyvsp[(1) - (5)].
val), 
new_postarg((
NODE *)-1, (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column), (yylsp[(1) - (5)]).first_column);
  8543                         (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), 
Qnil);
  8544                         (yyval.
val) = mlhs_add_post((yyval.
val), (yyvsp[(5) - (5)].
val));
  8550 #line 3232 "ripper.y"  8552                         (yyval.
val) = 
assignable((yyvsp[(2) - (2)].
val), 0, (yylsp[(1) - (2)]).first_column);
  8554                         (yyval.
val) = 
new_masgn(0, (yyval.
val), (yylsp[(1) - (2)]).first_column);
  8556                         (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
  8562 #line 3241 "ripper.y"  8564                         (yyval.
val) = 
assignable((yyvsp[(2) - (4)].
val), 0, (yylsp[(1) - (4)]).first_column);
  8566                         (yyval.
val) = 
new_masgn(0, 
new_postarg((yyval.
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column);
  8568                         (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
  8569                         (yyval.
val) = mlhs_add_post((yyval.
val), (yyvsp[(4) - (4)].
val));
  8575 #line 3251 "ripper.y"  8580                         (yyval.
val) = mlhs_add_star(mlhs_new(), 
Qnil);
  8586 #line 3259 "ripper.y"  8591                         (yyval.
val) = mlhs_add_star(mlhs_new(), 
Qnil);
  8592                         (yyval.
val) = mlhs_add_post((yyval.
val), (yyvsp[(3) - (3)].
val));
  8598 #line 3271 "ripper.y"  8600                         (yyval.
val) = 
new_args_tail((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  8605 #line 3275 "ripper.y"  8612 #line 3279 "ripper.y"  8619 #line 3283 "ripper.y"  8626 #line 3289 "ripper.y"  8628                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  8633 #line 3293 "ripper.y"  8640 #line 3299 "ripper.y"  8647 #line 3303 "ripper.y"  8649                         (yyval.
val) = 
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
  8654 #line 3307 "ripper.y"  8661 #line 3311 "ripper.y"  8668 #line 3315 "ripper.y"  8675 #line 3319 "ripper.y"  8680                         dispatch1(excessed_comma, (yyval.
val));
  8686 #line 3327 "ripper.y"  8693 #line 3331 "ripper.y"  8700 #line 3335 "ripper.y"  8707 #line 3339 "ripper.y"  8714 #line 3343 "ripper.y"  8721 #line 3347 "ripper.y"  8728 #line 3351 "ripper.y"  8735 #line 3355 "ripper.y"  8742 #line 3359 "ripper.y"  8749 #line 3366 "ripper.y"  8756 #line 3372 "ripper.y"  8763                                           escape_Qundef((yyvsp[(2) - (3)].
val)));
  8769 #line 3382 "ripper.y"  8781 #line 3391 "ripper.y"  8785                         (yyval.
val) = (yyvsp[(2) - (4)].
val);
  8787                         (yyval.
val) = blockvar_new(escape_Qundef((yyvsp[(2) - (4)].
val)), escape_Qundef((yyvsp[(3) - (4)].
val)));
  8793 #line 3403 "ripper.y"  8800 #line 3407 "ripper.y"  8805                         (yyval.
val) = (yyvsp[(3) - (4)].
val);
  8811 #line 3419 "ripper.y"  8818 #line 3426 "ripper.y"  8825 #line 3433 "ripper.y"  8836 #line 3441 "ripper.y"  8843 #line 3446 "ripper.y"  8850 #line 3449 "ripper.y"  8858 #line 3454 "ripper.y"  8865 #line 3457 "ripper.y"  8873 #line 3462 "ripper.y"  8884                         (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
  8891 #line 3479 "ripper.y"  8894                         (yyval.
val) = (yyvsp[(2) - (4)].
val);
  8896                         (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
  8902 #line 3487 "ripper.y"  8904                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  8909 #line 3493 "ripper.y"  8912                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  8917 #line 3498 "ripper.y"  8919                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  8924 #line 3504 "ripper.y"  8933 #line 3510 "ripper.y"  8935                         (yyval.
val) = (yyvsp[(3) - (4)].
val);
  8943 #line 3519 "ripper.y"  8953                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  8954                         fixpos((yyval.
val), (yyvsp[(1) - (2)].
val));
  8962 #line 3535 "ripper.y"  8964                         (yyval.
val) = 
new_qcall((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  8969 #line 3539 "ripper.y"  8974                         (yyval.
val) = (yyvsp[(5) - (5)].
val);
  8975                         fixpos((yyval.
val), (yyvsp[(1) - (5)].
val));
  8977                         (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
  8984 #line 3551 "ripper.y"  8989                         (yyval.
val) = (yyvsp[(5) - (5)].
val);
  8990                         fixpos((yyval.
val), (yyvsp[(1) - (5)].
val));
  8992                         (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
  8999 #line 3565 "ripper.y"  9002                         (yyval.
val) = (yyvsp[(1) - (2)].
val);
  9005                         (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), (yyvsp[(2) - (2)].
val));
  9011 #line 3574 "ripper.y"  9020 #line 3580 "ripper.y"  9022                         (yyval.
val) = 
new_qcall((yyvsp[(2) - (5)].
val), (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
  9028 #line 3585 "ripper.y"  9037 #line 3591 "ripper.y"  9045 #line 3596 "ripper.y"  9052 #line 3600 "ripper.y"  9061 #line 3606 "ripper.y"  9063                         (yyval.
val) = 
new_qcall((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), 
ID2VAL(idCall), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  9069 #line 3611 "ripper.y"  9078 #line 3617 "ripper.y"  9086 #line 3622 "ripper.y"  9092                         (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
  9098 #line 3631 "ripper.y"  9104                         (yyval.
val) = dispatch0(zsuper);
  9110 #line 3640 "ripper.y"  9116                             (yyval.
val) = 
new_call((yyvsp[(1) - (4)].
val), 
tAREF, (yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  9117                         fixpos((yyval.
val), (yyvsp[(1) - (4)].
val));
  9119                         (yyval.
val) = dispatch2(aref, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
  9125 #line 3654 "ripper.y"  9134 #line 3660 "ripper.y"  9136                         (yyval.
val) = (yyvsp[(3) - (4)].
val);
  9144 #line 3667 "ripper.y"  9153 #line 3673 "ripper.y"  9155                         (yyval.
val) = (yyvsp[(3) - (4)].
val);
  9163 #line 3681 "ripper.y"  9168 #line 3682 "ripper.y"  9173 #line 3684 "ripper.y"  9175                         (yyval.
val) = 
new_brace_body((yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  9182 #line 3691 "ripper.y"  9187 #line 3692 "ripper.y"  9192 #line 3694 "ripper.y"  9194                         (yyval.
val) = 
new_do_body((yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
  9201 #line 3704 "ripper.y"  9204                         (yyval.
val) = 
NEW_WHEN((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
  9207                         (yyval.
val) = dispatch3(when, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
  9213 #line 3721 "ripper.y"  9216                         if ((yyvsp[(3) - (6)].
val)) {
  9217                             (yyvsp[(3) - (6)].
val) = 
node_assign((yyvsp[(3) - (6)].
val), 
new_errinfo((yylsp[(1) - (6)]).first_column), (yylsp[(1) - (6)]).first_column);
  9218                             (yyvsp[(5) - (6)].
val) = 
block_append((yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val), (yylsp[(1) - (6)]).first_column);
  9220                         (yyval.
val) = 
new_resbody((yyvsp[(2) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val), (yylsp[(1) - (6)]).first_column);
  9221                         fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
  9223                         (yyval.
val) = dispatch4(rescue,
  9224                                        escape_Qundef((yyvsp[(2) - (6)].
val)),
  9225                                        escape_Qundef((yyvsp[(3) - (6)].
val)),
  9226                                        escape_Qundef((yyvsp[(5) - (6)].
val)),
  9227                                        escape_Qundef((yyvsp[(6) - (6)].
val)));
  9233 #line 3741 "ripper.y"  9236                         (yyval.
val) = 
new_list((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
  9244 #line 3749 "ripper.y"  9247                         if (!((yyval.
val) = splat_array((yyvsp[(1) - (1)].
val)))) (yyval.
val) = (yyvsp[(1) - (1)].
val);
  9249                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  9255 #line 3760 "ripper.y"  9257                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  9262 #line 3767 "ripper.y"  9265                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  9267                         (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].
val));
  9273 #line 3779 "ripper.y"  9278                         (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
  9284 #line 3790 "ripper.y"  9287                         NODE *node = (yyvsp[(1) - (1)].
val);
  9292                             node = 
evstr2dstr(node, (yylsp[(1) - (1)]).first_column);
  9296                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
  9302 #line 3807 "ripper.y"  9312 #line 3815 "ripper.y"  9315                         (yyval.
val) = 
literal_concat((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
  9317                         (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
  9323 #line 3825 "ripper.y"  9330 #line 3831 "ripper.y"  9337 #line 3837 "ripper.y"  9339                         (yyval.
val) = 
new_regexp((yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  9344 #line 3843 "ripper.y"  9349                         (yyval.
val) = dispatch0(words_new);
  9350                         (yyval.
val) = dispatch1(array, (yyval.
val));
  9356 #line 3852 "ripper.y"  9359                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  9361                         (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
  9367 #line 3862 "ripper.y"  9372                         (yyval.
val) = dispatch0(words_new);
  9378 #line 3870 "ripper.y"  9381                         (yyval.
val) = 
list_append((yyvsp[(1) - (3)].
val), 
evstr2dstr((yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column), (yylsp[(1) - (3)]).first_column);
  9383                         (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
  9389 #line 3882 "ripper.y"  9391                         (yyval.
val) = dispatch0(word_new);
  9392                         (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
  9397 #line 3888 "ripper.y"  9400                         (yyval.
val) = 
literal_concat((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
  9402                         (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
  9408 #line 3898 "ripper.y"  9413                         (yyval.
val) = dispatch0(symbols_new);
  9414                         (yyval.
val) = dispatch1(array, (yyval.
val));
  9420 #line 3907 "ripper.y"  9423                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  9425                         (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
  9431 #line 3917 "ripper.y"  9436                         (yyval.
val) = dispatch0(symbols_new);
  9442 #line 3925 "ripper.y"  9445                         (yyvsp[(2) - (3)].
val) = 
evstr2dstr((yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  9453                         (yyval.
val) = 
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  9455                         (yyval.
val) = dispatch2(symbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
  9461 #line 3943 "ripper.y"  9466                         (yyval.
val) = dispatch0(qwords_new);
  9467                         (yyval.
val) = dispatch1(array, (yyval.
val));
  9473 #line 3952 "ripper.y"  9476                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  9478                         (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
  9484 #line 3962 "ripper.y"  9489                         (yyval.
val) = dispatch0(qsymbols_new);
  9490                         (yyval.
val) = dispatch1(array, (yyval.
val));
  9496 #line 3971 "ripper.y"  9499                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  9501                         (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
  9507 #line 3981 "ripper.y"  9512                         (yyval.
val) = dispatch0(qwords_new);
  9518 #line 3989 "ripper.y"  9521                         (yyval.
val) = 
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  9524                         (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
  9530 #line 4000 "ripper.y"  9535                         (yyval.
val) = dispatch0(qsymbols_new);
  9541 #line 4008 "ripper.y"  9548                         (yyval.
val) = 
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  9551                         (yyval.
val) = dispatch2(qsymbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
  9557 #line 4023 "ripper.y"  9562                         (yyval.
val) = dispatch0(string_content);
  9568 #line 4031 "ripper.y"  9571                         (yyval.
val) = 
literal_concat((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
  9573                         (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
  9579 #line 4041 "ripper.y"  9584                         (yyval.
val) = dispatch0(xstring_new);
  9590 #line 4049 "ripper.y"  9593                         (yyval.
val) = 
literal_concat((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
  9595                         (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
  9601 #line 4059 "ripper.y"  9606                         (yyval.
val) = ripper_new_yylval(0, dispatch0(regexp_new), 0);
  9612 #line 4067 "ripper.y"  9615                         NODE *head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].
val);
  9633                             (yyval.
val) = 
list_append(head, tail, (yylsp[(1) - (2)]).first_column);
  9636                         VALUE s1 = 1, s2 = 0, n1 = (yyvsp[(1) - (2)].
val), n2 = (yyvsp[(2) - (2)].
val);
  9637                         if (ripper_is_node_yylval(n1)) {
  9638                             s1 = 
RNODE(n1)->nd_cval;
  9639                             n1 = 
RNODE(n1)->nd_rval;
  9641                         if (ripper_is_node_yylval(n2)) {
  9642                             s2 = 
RNODE(n2)->nd_cval;
  9643                             n2 = 
RNODE(n2)->nd_rval;
  9645                         (yyval.
val) = dispatch2(regexp_add, n1, n2);
  9647                             (yyval.
val) = ripper_new_yylval(0, (yyval.
val), s2);
  9654 #line 4108 "ripper.y"  9664 #line 4115 "ripper.y"  9673 #line 4121 "ripper.y"  9680                         (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].
val));
  9686 #line 4131 "ripper.y"  9696 #line 4137 "ripper.y"  9704 #line 4141 "ripper.y"  9712 #line 4145 "ripper.y"  9720 #line 4149 "ripper.y"  9728 #line 4154 "ripper.y"  9739                         (yyval.
val) = 
new_evstr((yyvsp[(7) - (8)].
val), (yylsp[(1) - (8)]).first_column);
  9741                         (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(7) - (8)].
val));
  9747 #line 4172 "ripper.y"  9750                         (yyval.
val) = 
new_gvar((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
  9752                         (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
  9758 #line 4180 "ripper.y"  9761                         (yyval.
val) = 
new_ivar((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
  9763                         (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
  9769 #line 4188 "ripper.y"  9775                         (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
  9781 #line 4200 "ripper.y"  9785                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  9787                         (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].
val));
  9793 #line 4217 "ripper.y"  9797                         (yyval.
val) = 
dsym_node((yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
  9799                         (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].
val));
  9805 #line 4229 "ripper.y"  9808                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
  9817 #line 4240 "ripper.y"  9827 #line 4247 "ripper.y"  9837 #line 4254 "ripper.y"  9847 #line 4261 "ripper.y"  9857 #line 4276 "ripper.y"  9862 #line 4277 "ripper.y"  9867 #line 4278 "ripper.y"  9872 #line 4279 "ripper.y"  9877 #line 4280 "ripper.y"  9882 #line 4281 "ripper.y"  9887 #line 4282 "ripper.y"  9888     {(yyval.
val) = 
KWD2EID(_ENCODING__, (yyvsp[(1) - (1)].
val));;}
  9892 #line 4286 "ripper.y"  9895                         if (!((yyval.
val) = 
gettable((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column))) (yyval.
val) = 
new_begin(0, (yylsp[(1) - (1)]).first_column);
  9897                         if (id_is_var(
get_id((yyvsp[(1) - (1)].
val)))) {
  9898                             (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
  9901                             (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].
val));
  9908 #line 4299 "ripper.y"  9911                         if (!((yyval.
val) = 
gettable((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column))) (yyval.
val) = 
new_begin(0, (yylsp[(1) - (1)]).first_column);
  9913                         (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
  9919 #line 4309 "ripper.y"  9926 #line 4313 "ripper.y"  9933 #line 4319 "ripper.y"  9943 #line 4326 "ripper.y"  9953 #line 4335 "ripper.y"  9961 #line 4340 "ripper.y"  9963                         (yyval.
val) = (yyvsp[(3) - (4)].
val);
  9968 #line 4344 "ripper.y"  9979 #line 4354 "ripper.y"  9982                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
  9984                         (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
  9992 #line 4363 "ripper.y" 10001 #line 4369 "ripper.y" 10004                         (yyval.
val) = (yyvsp[(2) - (3)].
val);
 10011 #line 4378 "ripper.y" 10013                         (yyval.
val) = 
new_args_tail((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
 10018 #line 4382 "ripper.y" 10025 #line 4386 "ripper.y" 10032 #line 4390 "ripper.y" 10039 #line 4396 "ripper.y" 10041                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
 10046 #line 4400 "ripper.y" 10053 #line 4406 "ripper.y" 10060 #line 4410 "ripper.y" 10062                         (yyval.
val) = 
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
 10067 #line 4414 "ripper.y" 10074 #line 4418 "ripper.y" 10081 #line 4422 "ripper.y" 10088 #line 4426 "ripper.y" 10095 #line 4430 "ripper.y" 10102 #line 4434 "ripper.y" 10109 #line 4438 "ripper.y" 10116 #line 4442 "ripper.y" 10123 #line 4446 "ripper.y" 10130 #line 4450 "ripper.y" 10137 #line 4454 "ripper.y" 10144 #line 4458 "ripper.y" 10151 #line 4462 "ripper.y" 10159 #line 4469 "ripper.y" 10162                         yyerror0(
"formal argument cannot be a constant");
 10165                         (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
 10172 #line 4479 "ripper.y" 10175                         yyerror0(
"formal argument cannot be an instance variable");
 10178                         (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
 10185 #line 4489 "ripper.y" 10188                         yyerror0(
"formal argument cannot be a global variable");
 10191                         (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
 10198 #line 4499 "ripper.y" 10201                         yyerror0(
"formal argument cannot be a class variable");
 10204                         (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
 10211 #line 4512 "ripper.y" 10214                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
 10219 #line 4519 "ripper.y" 10224                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
 10229 #line 4528 "ripper.y" 10241 #line 4537 "ripper.y" 10255                         (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
 10261 #line 4558 "ripper.y" 10268 #line 4563 "ripper.y" 10271                         (yyval.
val) = (yyvsp[(1) - (3)].
val);
 10282 #line 4577 "ripper.y" 10287                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
 10292 #line 4586 "ripper.y" 10295                         (yyval.
val) = 
assignable((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
 10305 #line 4596 "ripper.y" 10308                         (yyval.
val) = 
assignable((yyvsp[(1) - (1)].
val), (
NODE *)-1, (yylsp[(1) - (1)]).first_column);
 10318 #line 4608 "ripper.y" 10320                         (yyval.
val) = 
assignable((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
 10330 #line 4617 "ripper.y" 10332                         (yyval.
val) = 
assignable((yyvsp[(1) - (1)].
val), (
NODE *)-1, (yylsp[(1) - (1)]).first_column);
 10342 #line 4628 "ripper.y" 10345                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
 10353 #line 4636 "ripper.y" 10356                         (yyval.
val) = kwd_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
 10364 #line 4647 "ripper.y" 10367                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
 10375 #line 4655 "ripper.y" 10378                         (yyval.
val) = kwd_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
 10386 #line 4669 "ripper.y" 10390                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
 10392                         (yyval.
val) = dispatch1(kwrest_param, (yyvsp[(2) - (2)].
val));
 10398 #line 4678 "ripper.y" 10404                         (yyval.
val) = dispatch1(kwrest_param, 
Qnil);
 10410 #line 4689 "ripper.y" 10413                         (yyval.
val) = 
assignable((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
 10424 #line 4702 "ripper.y" 10427                         (yyval.
val) = 
assignable((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
 10438 #line 4715 "ripper.y" 10441                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
 10449 #line 4723 "ripper.y" 10452                         NODE *opts = (yyvsp[(1) - (3)].
val);
 10454                         while (opts->nd_next) {
 10455                             opts = opts->nd_next;
 10457                         opts->nd_next = (yyvsp[(3) - (3)].
val);
 10458                         (yyval.
val) = (yyvsp[(1) - (3)].
val);
 10466 #line 4739 "ripper.y" 10469                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
 10477 #line 4747 "ripper.y" 10480                         NODE *opts = (yyvsp[(1) - (3)].
val);
 10482                         while (opts->nd_next) {
 10483                             opts = opts->nd_next;
 10485                         opts->nd_next = (yyvsp[(3) - (3)].
val);
 10486                         (yyval.
val) = (yyvsp[(1) - (3)].
val);
 10494 #line 4767 "ripper.y" 10498                             yyerror0(
"rest argument must be local variable");
 10502                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
 10504                         (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].
val));
 10510 #line 4780 "ripper.y" 10516                         (yyval.
val) = dispatch1(rest_param, 
Qnil);
 10522 #line 4795 "ripper.y" 10526                             yyerror0(
"block argument must be local variable");
 10528                             yyerror0(
"duplicated block argument name");
 10532                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
 10534                         (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].
val));
 10540 #line 4812 "ripper.y" 10542                         (yyval.
val) = (yyvsp[(2) - (2)].
val);
 10547 #line 4816 "ripper.y" 10558 #line 4826 "ripper.y" 10562                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
 10565                         (yyval.
val) = (yyvsp[(1) - (1)].
val);
 10571 #line 4835 "ripper.y" 10576 #line 4836 "ripper.y" 10579                         if ((yyvsp[(3) - (4)].
val) == 0) {
 10580                             yyerror0(
"can't define singleton method for ().");
 10592                                 yyerror0(
"can't define singleton method for literals");
 10599                         (yyval.
val) = (yyvsp[(3) - (4)].
val);
 10601                         (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].
val));
 10607 #line 4867 "ripper.y" 10610                         (yyval.
val) = (yyvsp[(1) - (2)].
val);
 10612                         (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].
val));
 10618 #line 4879 "ripper.y" 10625 #line 4884 "ripper.y" 10628                         NODE *assocs = (yyvsp[(1) - (3)].
val);
 10629                         NODE *tail = (yyvsp[(3) - (3)].
val);
 10634                             if (assocs->nd_head &&
 10638                                 tail = tail->nd_next->nd_head->nd_head;
 10640                             assocs = list_concat(assocs, tail);
 10642                         (yyval.
val) = assocs;
 10650 #line 4908 "ripper.y" 10657                         (yyval.
val) = 
list_append(
new_list((yyvsp[(1) - (3)].
val), (yylsp[(1) - (3)]).first_column), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
 10659                         (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
 10665 #line 4920 "ripper.y" 10668                         (yyval.
val) = 
list_append(
new_list(
new_lit(
ID2SYM((yyvsp[(1) - (2)].
val)), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
 10670                         (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
 10676 #line 4928 "ripper.y" 10679                         (yyval.
val) = 
list_append(
new_list(
dsym_node((yyvsp[(2) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
 10681                         (yyval.
val) = dispatch2(assoc_new, dispatch1(dyna_symbol, (yyvsp[(2) - (4)].
val)), (yyvsp[(4) - (4)].
val));
 10687 #line 4936 "ripper.y" 10691                             !((yyvsp[(2) - (2)].
val)->nd_head && (yyvsp[(2) - (2)].
val)->
nd_head->nd_alen))
 10694                             (yyval.
val) = 
list_append(
new_list(0, (yylsp[(1) - (2)]).first_column), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
 10696                         (yyval.
val) = dispatch1(assoc_splat, (yyvsp[(2) - (2)].
val));
 10702 #line 4970 "ripper.y" 10709 #line 4974 "ripper.y" 10716 #line 4981 "ripper.y" 10723 #line 5005 "ripper.y" 10728 #line 5006 "ripper.y" 10733 #line 5010 "ripper.y" 10738 #line 5014 "ripper.y" 10746 #line 10745 "ripper.c" 10764   yystate = yypgoto[yyn - 
YYNTOKENS] + *yyssp;
 10765   if (0 <= yystate && yystate <= 
YYLAST && yycheck[yystate] == *yyssp)
 10766     yystate = yytable[yystate];
 10781 #if ! YYERROR_VERBOSE 10782       yyerror (&yylloc, parser, 
YY_(
"syntax error"));
 10785         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
 10791             if (yymsg != yymsgbuf)
 10795               yymsg_alloc = yyalloc;
 10799                 yymsg_alloc = 
sizeof yymsgbuf;
 10803         if (0 < yysize && yysize <= yymsg_alloc)
 10805             (void) yysyntax_error (yymsg, yystate, yychar);
 10806             yyerror (&yylloc, parser, yymsg);
 10810             yyerror (&yylloc, parser, 
YY_(
"syntax error"));
 10812               goto yyexhaustedlab;
 10818   yyerror_range[0] = yylloc;
 10820   if (yyerrstatus == 3)
 10825       if (yychar <= 
YYEOF)
 10828           if (yychar == 
YYEOF)
 10833           yydestruct (
"Error: discarding",
 10834                       yytoken, &yylval, &yylloc, parser);
 10855   yyerror_range[0] = yylsp[1-yylen];
 10873       yyn = yypact[yystate];
 10879               yyn = yytable[yyn];
 10889       yyerror_range[0] = *yylsp;
 10890       yydestruct (
"Error: popping",
 10891                   yystos[yystate], yyvsp, yylsp, parser);
 10902   yyerror_range[1] = yylloc;
 10934   yyerror (&yylloc, parser, 
YY_(
"memory exhausted"));
 10941      yydestruct (
"Cleanup: discarding lookahead",
 10942                  yytoken, &yylval, &yylloc, parser);
 10947   while (yyssp != yyss)
 10949       yydestruct (
"Cleanup: popping",
 10950                   yystos[*yyssp], yyvsp, yylsp, parser);
 10957 #if YYERROR_VERBOSE 10958   if (yymsg != yymsgbuf)
 10962   return YYID (yyresult);
 10966 #line 5018 "ripper.y" 10971 # define yylval  (*parser->lval) 10980 # define nextc()                      parser_nextc(parser) 10981 # define pushback(c)                  parser_pushback(parser, (c)) 10982 # define newtok()                     parser_newtok(parser) 10983 # define tokspace(n)                  parser_tokspace(parser, (n)) 10984 # define tokadd(c)                    parser_tokadd(parser, (c)) 10985 # define tok_hex(numlen)              parser_tok_hex(parser, (numlen)) 10986 # define read_escape(flags,e)         parser_read_escape(parser, (flags), (e)) 10987 # define tokadd_escape(e)             parser_tokadd_escape(parser, (e)) 10988 # define regx_options()               parser_regx_options(parser) 10989 # define tokadd_string(f,t,p,n,e)     parser_tokadd_string(parser,(f),(t),(p),(n),(e)) 10990 # define parse_string(n)              parser_parse_string(parser,(n)) 10991 # define tokaddmbc(c, enc)            parser_tokaddmbc(parser, (c), (enc)) 10992 # define here_document(n)             parser_here_document(parser,(n)) 10993 # define heredoc_identifier()         parser_heredoc_identifier(parser) 10994 # define heredoc_restore(n)           parser_heredoc_restore(parser,(n)) 10995 # define whole_match_p(e,l,i)         parser_whole_match_p(parser,(e),(l),(i)) 10996 # define number_literal_suffix(f)     parser_number_literal_suffix(parser, (f)) 10997 # define set_number_literal(v, t, f)  parser_set_number_literal(parser, (v), (t), (f)) 10998 # define set_integer_literal(v, f)    parser_set_integer_literal(parser, (v), (f)) 11001 # define set_yylval_str(x) (yylval.node = NEW_STR(x)) 11002 # define set_yylval_num(x) (yylval.num = (x)) 11003 # define set_yylval_id(x)  (yylval.id = (x)) 11004 # define set_yylval_name(x)  (yylval.id = (x)) 11005 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x)) 11006 # define set_yylval_node(x) (yylval.node = (x)) 11007 # define yylval_id() (yylval.id) 11009 static inline VALUE 11010 ripper_yylval_id(
ID x)
 11012     return ripper_new_yylval(x, 
ID2SYM(x), 0);
 11014 # define set_yylval_str(x) (yylval.val = (x)) 11015 # define set_yylval_num(x) (yylval.val = ripper_new_yylval((x), 0, 0)) 11016 # define set_yylval_id(x)  (void)(x) 11017 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x)) 11018 # define set_yylval_literal(x) (void)(x) 11019 # define set_yylval_node(x) (void)(x) 11020 # define yylval_id() yylval.id 11024 #define literal_flush(p) (parser->tokp = (p)) 11025 #define dispatch_scan_event(t) ((void)0) 11026 #define dispatch_delayed_token(t) ((void)0) 11027 #define has_delayed_token() (0) 11029 #define literal_flush(p) ((void)0) 11031 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val)) 11033 static inline VALUE 11034 intern_sym(
const char *
name)
 11045     return lex_p > parser->tokp;
 11052     VALUE rval = ripper_dispatch1(parser, ripper_token2eventid(t), str);
 11058 ripper_dispatch_scan_event(
struct parser_params *parser, 
int t)
 11060     if (!ripper_has_scan_event(parser)) 
return;
 11061     yylval_rval = ripper_scan_event_val(parser, t);
 11063 #define dispatch_scan_event(t) ripper_dispatch_scan_event(parser, t) 11066 ripper_dispatch_delayed_token(
struct parser_params *parser, 
int t)
 11069     const char *saved_tokp = parser->tokp;
 11072     parser->tokp = 
lex_pbeg + parser->delayed_col;
 11073     yylval_rval = ripper_dispatch1(parser, ripper_token2eventid(t), parser->delayed);
 11074     parser->delayed = 
Qnil;
 11076     parser->tokp = saved_tokp;
 11078 #define dispatch_delayed_token(t) ripper_dispatch_delayed_token(parser, t) 11079 #define has_delayed_token() (!NIL_P(parser->delayed)) 11085 #define parser_encoding_name()  (current_enc->name) 11086 #define parser_mbclen()  mbclen((lex_p-1),lex_pend,current_enc) 11087 #define is_identchar(p,e,enc) (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p))) 11088 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc)) 11090 #define parser_isascii() ISASCII(*(lex_p-1)) 11093 token_info_get_column(
struct parser_params *parser, 
const char *pend)
 11097     for (p = 
lex_pbeg; p < pend; p++) {
 11107 token_info_has_nonspaces(
struct parser_params *parser, 
const char *pend)
 11110     for (p = 
lex_pbeg; p < pend; p++) {
 11111         if (*p != 
' ' && *p != 
'\t') {
 11128     ptinfo->
column = token_info_get_column(parser, t);
 11129     ptinfo->
nonspc = token_info_has_nonspaces(parser, t);
 11136 token_info_pop_gen(
struct parser_params *parser, 
const char *token, 
size_t len)
 11142     if (!ptinfo) 
return;
 11147         !token_info_has_nonspaces(parser, t) &&
 11148         token_info_get_column(parser, t) != ptinfo->
column) {
 11150                   "mismatched indentations at '%s' with '%s' at %d",
 11158 parser_precise_mbclen(
struct parser_params *parser, 
const char *p)
 11169 parser_yyerror(
struct parser_params *parser, 
const char *msg)
 11172     const int max_line_margin = 30;
 11173     const char *p, *pe;
 11174     const char *pre = 
"", *post = 
"", *pend;
 11175     const char *code = 
"", *caret = 
"", *newline = 
"";
 11182     if (pend > 
lex_pbeg && pend[-1] == 
'\n') {
 11183         if (--pend > 
lex_pbeg && pend[-1] == 
'\r') --pend;
 11188     while ((lim < p) && (*(p-1) != 
'\n')) p--;
 11190     lim = pend - pe > max_line_margin ? pe + max_line_margin : pend;
 11191     while ((pe < lim) && (*pe != 
'\n')) pe++;
 11203             if (pe < pend) post = 
"...";
 11207         i = (int)(lim - p);
 11211         pe = (parser->tokp < lim ? parser->tokp : lim);
 11214                 *p2++ = *p++ == 
'\t' ? 
'\t' : 
' ';
 11220             memset(p2, 
'~', (lim - p));
 11231                   pre, (
int)len, code, post, newline,
 11234     dispatch1(parse_error, 
STR_NEW2(msg));
 11266 #define vtable_alloc(prev) vtable_alloc_gen(parser, __LINE__, prev) 11284 #define vtable_free(tbl) vtable_free_gen(parser, __LINE__, #tbl, tbl) 11297         rb_parser_fatal(parser, 
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
 11306 #define vtable_add(tbl, id) vtable_add_gen(parser, __LINE__, #tbl, tbl, id) 11311                struct vtable *tbl, 
int n)
 11315                          line, name, tbl, n);
 11317     if (tbl->
pos < n) {
 11323 #define vtable_pop(tbl, n) vtable_pop_gen(parser, __LINE__, #tbl, tbl, n) 11327 vtable_included(
const struct vtable * tbl, 
ID id)
 11332         for (i = 0; i < tbl->
pos; i++) {
 11333             if (tbl->
tbl[i] == 
id) {
 11345 debug_lines(
VALUE fname)
 11348     CONST_ID(script_lines, 
"SCRIPT_LINES__");
 11361 coverage(
VALUE fname, 
int n)
 11364     if (
RTEST(coverages) && 
RBASIC(coverages)->klass == 0) {
 11382 yycompile0(
VALUE arg)
 11399         if (!e_option_supplied(parser)) {
 11405     parser_prepare(parser);
 11407 #define RUBY_DTRACE_PARSE_HOOK(name) \ 11408     if (RUBY_DTRACE_PARSE_##name##_ENABLED()) { \ 11409         RUBY_DTRACE_PARSE_##name(ruby_sourcefile, ruby_sourceline); \ 11423     if (parser->error_p) {
 11424         VALUE mesg = parser->error_buffer;
 11436         VALUE opt = parser->compile_option;
 11442         tree->nd_body = prelude;
 11444     return (
VALUE)tree;
 11458 must_be_ascii_compatible(
VALUE s)
 11470     char *beg, *end, *start;
 11481     end = memchr(beg, 
'\n', len);
 11482     if (end) len = ++end - beg;
 11491     if (
NIL_P(line)) 
return line;
 11492     must_be_ascii_compatible(line);
 11520     node = yycompile(parser, fname, line);
 11529     must_be_ascii_compatible(s);
 11542     must_be_ascii_compatible(s);
 11543     return parser_compile_string(vparser, f, s, line);
 11593     node = yycompile(parser, fname, start);
 11600 #define STR_FUNC_ESCAPE 0x01 11601 #define STR_FUNC_EXPAND 0x02 11602 #define STR_FUNC_REGEXP 0x04 11603 #define STR_FUNC_QWORDS 0x08 11604 #define STR_FUNC_SYMBOL 0x10 11605 #define STR_FUNC_INDENT 0x20 11606 #define STR_FUNC_LABEL  0x40 11607 #define STR_FUNC_TERM   0x8000 11638 #define lex_goto_eol(parser) ((parser)->lex.pcur = (parser)->lex.pend) 11639 #define lex_eol_p() (lex_p >= lex_pend) 11640 #define peek(c) peek_n((c), 0) 11641 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n]) 11642 #define peekc() peekc_n(0) 11643 #define peekc_n(n) (lex_p+(n) < lex_pend ? (unsigned char)lex_p[n] : -1) 11667                            parser->tokp, 
lex_pend - parser->tokp);
 11669             parser->delayed_col = (int)(parser->tokp - 
lex_pbeg);
 11673                            parser->tokp, 
lex_pend - parser->tokp);
 11700         rb_warn0(
"encountered \\r in middle of line, treated as a mere space");
 11711         if (parser_nextline(parser)) 
return -1;
 11713     c = (
unsigned char)*
lex_p++;
 11715         c = parser_cr(parser, c);
 11724     if (c == -1) 
return;
 11731 #define was_bol() (lex_p == lex_pbeg + 1) 11733 #define tokfix() (tokenbuf[tokidx]='\0') 11734 #define tok() tokenbuf 11735 #define toklen() tokidx 11736 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0) 11777 parser_tok_hex(
struct parser_params *parser, 
size_t *numlen)
 11783         parser->tokp = 
lex_p;
 11791 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n)) 11795                         int regexp_literal, 
int wide)
 11801     if (wide ? (numlen == 0 || numlen > 6) : (numlen < 4))  {
 11802         yyerror0(
"invalid Unicode escape");
 11803         return wide && numlen > 0;
 11805     if (codepoint > 0x10ffff) {
 11806         yyerror0(
"invalid Unicode codepoint (too large)");
 11809     if ((codepoint & 0xfffff800) == 0xd800) {
 11810         yyerror0(
"invalid Unicode codepoint");
 11813     if (regexp_literal) {
 11816     else if (codepoint >= 0x80) {
 11818         if (*encp && utf8 != *encp) {
 11819             static const char mixed_utf8[] = 
"UTF-8 mixed within %s source";
 11821             char *mesg = 
alloca(len);
 11838                    int string_literal, 
int symbol_literal, 
int regexp_literal)
 11847     const int open_brace = 
'{', close_brace = 
'}';
 11851     if (
peek(open_brace)) {  
 11856             if (regexp_literal) 
tokadd(last);
 11857             if (!parser_tokadd_codepoint(parser, encp, regexp_literal, 
TRUE)) {
 11864         } 
while (c != close_brace);
 11866         if (c != close_brace) {
 11869             yyerror0(
"unterminated Unicode escape");
 11873         if (regexp_literal) 
tokadd(close_brace);
 11877         if (!parser_tokadd_codepoint(parser, encp, regexp_literal, 
FALSE)) {
 11885 #define ESCAPE_CONTROL 1 11886 #define ESCAPE_META    2 11889 parser_read_escape(
struct parser_params *parser, 
int flags,
 11895     switch (c = 
nextc()) {
 11920       case '0': 
case '1': 
case '2': 
case '3': 
 11921       case '4': 
case '5': 
case '6': 
case '7':
 11929         if (numlen == 0) 
return 0;
 11940         if ((c = 
nextc()) != 
'-') {
 11943         if ((c = 
nextc()) == 
'\\') {
 11944             if (
peek(
'u')) 
goto eof;
 11945             return read_escape(flags|ESCAPE_META, encp) | 0x80;
 11947         else if (c == -1 || !
ISASCII(c)) 
goto eof;
 11949             return ((c & 0xff) | 0x80);
 11953         if ((c = 
nextc()) != 
'-') {
 11958         if ((c = 
nextc())== 
'\\') {
 11959             if (
peek(
'u')) 
goto eof;
 11964         else if (c == -1 || !
ISASCII(c)) 
goto eof;
 11969         yyerror0(
"Invalid escape character syntax");
 11993     switch (c = 
nextc()) {
 11997       case '0': 
case '1': 
case '2': 
case '3': 
 11998       case '4': 
case '5': 
case '6': 
case '7':
 12001             if (numlen == 0) 
goto eof;
 12010             if (numlen == 0) 
return -1;
 12017         if ((c = 
nextc()) != 
'-') {
 12027         if ((c = 
nextc()) != 
'-') {
 12035         if (flags & ESCAPE_CONTROL) 
goto eof;
 12039         if ((c = 
nextc()) == 
'\\') {
 12042         else if (c == -1) 
goto eof;
 12048         yyerror0(
"Invalid escape character syntax");
 12095 dispose_string(
VALUE str)
 12104     int len = parser_precise_mbclen(parser, 
lex_p-1);
 12105     if (len < 0) 
return -1;
 12112 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c)) 12115 simple_re_meta(
int c)
 12118       case '$': 
case '*': 
case '+': 
case '.':
 12119       case '?': 
case '^': 
case '|':
 12120       case ')': 
case ']': 
case '}': 
case '>':
 12128 parser_update_heredoc_indent(
struct parser_params *parser, 
int c)
 12138         else if (c == 
'\t') {
 12143         else if (c != 
'\n') {
 12155                      int func, 
int term, 
int paren, 
long *nest,
 12161     static const char mixed_msg[] = 
"%s mixed within %s source";
 12163 #define mixed_error(enc1, enc2) if (!errbuf) {  \ 12164         size_t len = sizeof(mixed_msg) - 4;     \ 12165         len += strlen(rb_enc_name(enc1));       \ 12166         len += strlen(rb_enc_name(enc2));       \ 12167         errbuf = ALLOCA_N(char, len);           \ 12168         snprintf(errbuf, len, mixed_msg,        \ 12169                  rb_enc_name(enc1),             \ 12170                  rb_enc_name(enc2));            \ 12171         yyerror0(errbuf);                       \ 12173 #define mixed_escape(beg, enc1, enc2) do {      \ 12174         const char *pos = lex_p;                \ 12176         mixed_error((enc1), (enc2));            \ 12180     while ((c = 
nextc()) != -1) {
 12182             parser_update_heredoc_indent(parser, c);
 12185         if (paren && c == paren) {
 12188         else if (c == term) {
 12189             if (!nest || !*nest) {
 12197             if (c2 == 
'$' || c2 == 
'@' || c2 == 
'{') {
 12202         else if (c == 
'\\') {
 12208                 if (func & STR_FUNC_EXPAND) 
continue;
 12217                 if ((func & STR_FUNC_EXPAND) == 0) {
 12221                 if (!parser_tokadd_utf8(parser, &enc, term,
 12229                 if (c == -1) 
return -1;
 12231                     if ((func & STR_FUNC_EXPAND) == 0) 
tokadd(
'\\');
 12234                 if (func & STR_FUNC_REGEXP) {
 12235                     if (c == term && !simple_re_meta(c)) {
 12242                     if (enc && enc != *encp) {
 12247                 else if (func & STR_FUNC_EXPAND) {
 12249                     if (func & STR_FUNC_ESCAPE) 
tokadd(
'\\');
 12252                 else if ((func & STR_FUNC_QWORDS) && 
ISSPACE(c)) {
 12255                 else if (c != term && !(paren && c == paren)) {
 12267             else if (enc != *encp) {
 12282             else if (enc != *encp) {
 12289     if (enc) *encp = 
enc;
 12293 #define NEW_STRTERM(func, term, paren) \ 12294         rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0) 12301     if (!ripper_is_node_yylval(content))
 12302         content = ripper_new_yylval(0, 0, content);
 12304         ptrdiff_t len = 
lex_p - parser->tokp;
 12309         parser->tokp = 
lex_p;
 12313     if (
yylval.val != content)
 12318 #define flush_string_content(enc) token_flush_string_content(parser, (enc)) 12320 #define flush_string_content(enc) ((void)(enc)) 12327 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0) 12328 #define SPECIAL_PUNCT(idx) ( \ 12329         BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \ 12330         BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \ 12331         BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \ 12332         BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \ 12333         BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \ 12341 #undef SPECIAL_PUNCT 12348     const char *p = 
lex_p;
 12354         if ((c = *p) == 
'-') {
 12358         else if (is_global_name_punct(c) || 
ISDIGIT(c)) {
 12363         if ((c = *p) == 
'@') {
 12380 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY) 12381 #define IS_END() IS_lex_state(EXPR_END_ANY) 12382 #define IS_BEG() (IS_lex_state(EXPR_BEG_ANY) || IS_lex_state_all(EXPR_ARG|EXPR_LABELED)) 12383 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c)) 12384 #define IS_LABEL_POSSIBLE() (\ 12385         (IS_lex_state(EXPR_LABEL|EXPR_ENDFN) && !cmd_state) || \ 12387 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1)) 12388 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT) 12413     int func = (int)quote->nd_func;
 12429     if (c == term && !quote->nd_nest) {
 12430         if (func & STR_FUNC_QWORDS) {
 12434         return parser_string_term(parser, func);
 12442         int t = parser_peek_variable_name(parser);
 12450         if (parser->
eofp) {
 12452 # define unterminated_literal(mesg) yyerror0(mesg) 12454 # define unterminated_literal(mesg) compile_error(PARSER_ARG  mesg) 12487     else if (c == 
'~') {
 12505         while ((c = 
nextc()) != -1 && c != term) {
 12507             if (!newline && c == 
'\n') newline = 1;
 12508             else if (newline) newline = 2;
 12516             rb_warn0(
"here document identifier ends with a newline");
 12563     line = here->nd_orig;
 12570     dispose_string(here->nd_lit);
 12576 dedent_string(
VALUE string, 
int width)
 12583     for (i = 0; i < len && col < width; i++) {
 12584         if (str[i] == 
' ') {
 12587         else if (str[i] == 
'\t') {
 12589             if (n > width) 
break;
 12601     MEMMOVE(str, str + i, 
char, len - i);
 12610     NODE *node, *str_node;
 12614     if (indent <= 0) 
return root;
 12616     if (!root) 
return root;
 12618     node = str_node = root;
 12622         VALUE lit = str_node->nd_lit;
 12623         if (bol) dedent_string(lit, indent);
 12628             if ((str_node = node->nd_head) != 0) {
 12644     if (indent <= 0) 
return array;
 12657     col = dedent_string(input, wid);
 12664     const char *eos, 
long len, 
int indent)
 12670         while (*p && 
ISSPACE(*p)) p++;
 12673     if (n < 0) 
return FALSE;
 12674     if (n > 0 && p[len] != 
'\n') {
 12675         if (p[len] != 
'\r') 
return FALSE;
 12676         if (n <= 1 || p[len+1] != 
'\n') 
return FALSE;
 12678     return strncmp(eos, p, len) == 0;
 12681 #define NUM_SUFFIX_R   (1<<0) 12682 #define NUM_SUFFIX_I   (1<<1) 12683 #define NUM_SUFFIX_ALL 3 12686 parser_number_literal_suffix(
struct parser_params *parser, 
int mask)
 12689     const char *lastp = 
lex_p;
 12691     while ((c = 
nextc()) != -1) {
 12694             mask &= ~NUM_SUFFIX_I;
 12701             mask &= ~NUM_SUFFIX_R;
 12713                 yyerror0(
"unexpected fraction part after numeric literal");
 12755     ripper_dispatch1(parser, ripper_token2eventid(
tHEREDOC_END), str);
 12760 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser) 12762 #define dispatch_heredoc_end() ((void)0) 12768     int c, func, indent = 0;
 12769     const char *eos, *p, *
pend;
 12778     if ((c = 
nextc()) == -1) {
 12789             else if ((len = 
lex_p - parser->tokp) > 0) {
 12823                 switch (pend[-1]) {
 12825                     if (--pend == p || pend[-1] != 
'\r') {
 12836                 while (p + i < pend && parser_update_heredoc_indent(parser, p[i]))
 12852             if (
nextc() == -1) {
 12854                     dispose_string(str);
 12865             int t = parser_peek_variable_name(parser);
 12879                 if (parser->
eofp) 
goto error;
 12894             if ((c = 
nextc()) == -1) 
goto error;
 12915     rb_warning1(
"ambiguous first argument; put parentheses or a space even after `%c' operator", 
WARN_I(c));
 12920 #define arg_ambiguous(c) (arg_ambiguous_gen(parser, (c)), 1) 12925     switch (id_type(lhs)) {
 12930         yyerror0(
"formal argument cannot be a constant");
 12933         yyerror0(
"formal argument cannot be an instance variable");
 12936         yyerror0(
"formal argument cannot be a global variable");
 12939         yyerror0(
"formal argument cannot be a class variable");
 12942         yyerror0(
"formal argument must be local variable");
 12946         lhs = dispatch1(param_error, lhs);
 12967     if (len > 5 && name[nlen = len - 5] == 
'-') {
 12968         if (
rb_memcicmp(name + nlen + 1, 
"unix", 4) == 0)
 12971     if (len > 4 && name[nlen = len - 4] == 
'-') {
 12974         if (
rb_memcicmp(name + nlen + 1, 
"mac", 3) == 0 &&
 12975             !(len == 8 && 
rb_memcicmp(name, 
"utf8-mac", len) == 0))
 12983 parser_set_encode(
struct parser_params *parser, 
const char *name)
 12990         excargs[1] = 
rb_sprintf(
"unknown encoding name: %s", name);
 13007         for (i = 0; i < n; ++i) {
 13030 magic_comment_encoding(
struct parser_params *parser, 
const char *name, 
const char *
val)
 13032     if (!comment_at_top(parser)) {
 13035     parser_set_encode(parser, val);
 13039 parser_get_bool(
struct parser_params *parser, 
const char *name, 
const char *
val)
 13042       case 't': 
case 'T':
 13047       case 'f': 
case 'F':
 13058 parser_set_token_info(
struct parser_params *parser, 
const char *name, 
const char *val)
 13060     int b = parser_get_bool(parser, name, val);
 13065 parser_set_compile_option_flag(
struct parser_params *parser, 
const char *name, 
const char *val)
 13074     b = parser_get_bool(parser, name, val);
 13083 # if WARN_PAST_SCOPE 13085 parser_set_past_scope(
struct parser_params *parser, 
const char *name, 
const char *val)
 13087     int b = parser_get_bool(parser, name, val);
 13088     if (b >= 0) parser->past_scope_enabled = b;
 13099     {
"coding", magic_comment_encoding, parser_encode_length},
 13100     {
"encoding", magic_comment_encoding, parser_encode_length},
 13101     {
"frozen_string_literal", parser_set_compile_option_flag},
 13102     {
"warn_indent", parser_set_token_info},
 13103 # if WARN_PAST_SCOPE 13104     {
"warn_past_scope", parser_set_past_scope},
 13108 static const char *
 13109 magic_comment_marker(
const char *str, 
long len)
 13116             if (str[i-1] == 
'*' && str[i-2] == 
'-') {
 13117                 return str + i + 1;
 13122             if (i + 1 >= len) 
return 0;
 13123             if (str[i+1] != 
'-') {
 13126             else if (str[i-1] != 
'-') {
 13130                 return str + i + 2;
 13142 parser_magic_comment(
struct parser_params *parser, 
const char *str, 
long len)
 13145     VALUE name = 0, val = 0;
 13146     const char *beg, *end, *vbeg, *vend;
 13147 #define str_copy(_s, _p, _n) ((_s) \ 13148         ? (void)(rb_str_resize((_s), (_n)), \ 13149            MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \ 13150         : (void)((_s) = STR_NEW((_p), (_n)))) 13152     if (len <= 7) 
return FALSE;
 13153     if (!!(beg = magic_comment_marker(str, len))) {
 13154         if (!(end = magic_comment_marker(beg, str + len - beg)))
 13158         len = end - beg - 3;
 13168         for (; len > 0 && *str; str++, --
len) {
 13170               case '\'': 
case '"': 
case ':': 
case ';':
 13175         for (beg = str; len > 0; str++, --
len) {
 13177               case '\'': 
case '"': 
case ':': 
case ';':
 13185         for (end = str; len > 0 && 
ISSPACE(*str); str++, --
len);
 13188             if (!indicator) 
return FALSE;
 13192         do str++; 
while (--len > 0 && 
ISSPACE(*str));
 13195             for (vbeg = ++str; --len > 0 && *str != 
'"'; str++) {
 13196                 if (*str == 
'\\') {
 13208             for (vbeg = str; len > 0 && *str != 
'"' && *str != 
';' && !
ISSPACE(*str); --
len, str++);
 13212             while (len > 0 && (*str == 
';' || 
ISSPACE(*str))) --len, str++;
 13215             while (len > 0 && (
ISSPACE(*str))) --len, str++;
 13216             if (len) 
return FALSE;
 13222         for (i = 0; i < n; ++i) {
 13223             if (s[i] == 
'-') s[i] = 
'_';
 13229                     n = (*p->
length)(parser, vbeg, n);
 13235         } 
while (++p < magic_comments + 
numberof(magic_comments));
 13246 set_file_encoding(
struct parser_params *parser, 
const char *str, 
const char *send)
 13249     const char *beg = str;
 13253         if (send - str <= 6) 
return;
 13255           case 'C': 
case 'c': str += 6; 
continue;
 13256           case 'O': 
case 'o': str += 5; 
continue;
 13257           case 'D': 
case 'd': str += 4; 
continue;
 13258           case 'I': 
case 'i': str += 3; 
continue;
 13259           case 'N': 
case 'n': str += 2; 
continue;
 13260           case 'G': 
case 'g': str += 1; 
continue;
 13261           case '=': 
case ':':
 13274             if (++str >= send) 
return;
 13277         if (*str != 
'=' && *str != 
':') 
return;
 13282     while ((*str == 
'-' || *str == 
'_' || 
ISALNUM(*str)) && ++str < send);
 13283     s = 
rb_str_new(beg, parser_encode_length(parser, beg, str - beg));
 13299             (
unsigned char)
lex_p[0] == 0xbb &&
 13300             (
unsigned char)
lex_p[1] == 0xbf) {
 13315 #define ambiguous_operator(tok, op, syn) ( \ 13316     rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \ 13317     rb_warning0("even though it seems like "syn"")) 13319 #define ambiguous_operator(tok, op, syn) \ 13320     dispatch2(operator_ambiguous, TOKEN2VAL(tok), rb_str_new_cstr(syn)) 13322 #define warn_balanced(tok, op, syn) ((void) \ 13323     (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN) && \ 13324      space_seen && !ISSPACE(c) && \ 13325      (ambiguous_operator(tok, op, syn), 0)), \ 13326      (enum yytokentype)(tok)) 13329 parse_rational(
struct parser_params *parser, 
char *str, 
int len, 
int seen_point)
 13332     char *point = &str[seen_point];
 13333     size_t fraclen = len-seen_point-1;
 13334     memmove(point, point+1, fraclen+1);
 13342     int is_float, seen_point, seen_e, nondigit;
 13345     is_float = seen_point = seen_e = nondigit = 0;
 13348     if (c == 
'-' || c == 
'+') {
 13353 #define no_digits() do {yyerror0("numeric literal without digits"); return 0;} while (0) 13356         if (c == 
'x' || c == 
'X') {
 13362                         if (nondigit) 
break;
 13369                 } 
while ((c = 
nextc()) != -1);
 13373             if (
toklen() == start) {
 13376             else if (nondigit) 
goto trailing_uc;
 13380         if (c == 
'b' || c == 
'B') {
 13383             if (c == 
'0' || c == 
'1') {
 13386                         if (nondigit) 
break;
 13390                     if (c != 
'0' && c != 
'1') 
break;
 13393                 } 
while ((c = 
nextc()) != -1);
 13397             if (
toklen() == start) {
 13400             else if (nondigit) 
goto trailing_uc;
 13404         if (c == 
'd' || c == 
'D') {
 13410                         if (nondigit) 
break;
 13417                 } 
while ((c = 
nextc()) != -1);
 13421             if (
toklen() == start) {
 13424             else if (nondigit) 
goto trailing_uc;
 13432         if (c == 
'o' || c == 
'O') {
 13435             if (c == -1 || c == 
'_' || !
ISDIGIT(c)) {
 13439         if (c >= 
'0' && c <= 
'7') {
 13444                     if (nondigit) 
break;
 13448                 if (c < '0' || c > 
'9') 
break;
 13449                 if (c > 
'7') 
goto invalid_octal;
 13452             } 
while ((c = 
nextc()) != -1);
 13456                 if (nondigit) 
goto trailing_uc;
 13465         if (c > 
'7' && c <= 
'9') {
 13469         else if (c == 
'.' || c == 
'e' || c == 
'E') {
 13481           case '0': 
case '1': 
case '2': 
case '3': 
case '4':
 13482           case '5': 
case '6': 
case '7': 
case '8': 
case '9':
 13488             if (nondigit) 
goto trailing_uc;
 13489             if (seen_point || seen_e) {
 13494                 if (c0 == -1 || !
ISDIGIT(c0)) {
 13519             if (c != 
'-' && c != 
'+' && !
ISDIGIT(c)) {
 13528             nondigit = (c == 
'-' || c == 
'+') ? c : 0;
 13532             if (nondigit) 
goto decode_num;
 13548         snprintf(tmp, 
sizeof(tmp), 
"trailing `%c' in number", nondigit);
 13559             v = parse_rational(parser, 
tok(), 
toklen(), seen_point);
 13563             if (
errno == ERANGE) {
 13630             const char *start = 
lex_p - 1, *p = start;
 13632                 int n = parser_precise_mbclen(parser, p);
 13633                 if (n < 0) 
return -1;
 13636             rb_warn2(
"`?' just followed by `%.*s' is interpreted as" \
 13637                      " a conditional operator, put a space after `?'",
 13642     else if (c == 
'\\') {
 13646             if (!parser_tokadd_utf8(parser, &enc, -1, 0, 0))
 13678         if (c == -1 || !
ISALNUM(c)) {
 13685                 yyerror0(
"unknown type of %string");
 13689         if (c == -1 || term == -1) {
 13694         if (term == 
'(') term = 
')';
 13695         else if (term == 
'[') term = 
']';
 13696         else if (term == 
'{') term = 
'}';
 13697         else if (term == 
'<') term = 
'>';
 13747             yyerror0(
"unknown type of %string");
 13751     if ((c = 
nextc()) == 
'=') {
 13791     const unsigned long nth_ref_max =
 13792         ((FIXNUM_MAX < INT_MAX) ? FIXNUM_MAX : INT_MAX) >> 1;
 13796     if (overflow || n > nth_ref_max) {
 13873       case '1': 
case '2': 
case '3':
 13874       case '4': 
case '5': 
case '6':
 13875       case '7': 
case '8': 
case '9':
 13880         } 
while (c != -1 && 
ISDIGIT(c));
 13902     if (tokadd_ident(parser, c)) 
return 0;
 13904     tokenize_ident(parser, last_state);
 13912     register int c = 
nextc();
 13922         if (result == 
tIVAR) {
 13932         if (result == 
tIVAR) {
 13941     if (tokadd_ident(parser, c)) 
return 0;
 13943     tokenize_ident(parser, last_state);
 13948 parse_ident(
struct parser_params *parser, 
int c, 
int cmd_state)
 13960     if ((c == 
'!' || c == 
'?') && !
peek(
'=')) {
 14014                 if (kw->
id[0] != kw->
id[1])
 14036     ident = tokenize_ident(parser, last_state);
 14050     int space_seen = 0;
 14054     int fallthru = 
FALSE;
 14073     switch (c = 
nextc()) {
 14081       case ' ': 
case '\t': 
case '\f': 
case '\r':
 14085         while ((c = 
nextc())) {
 14087               case ' ': 
case '\t': 
case '\f': 
case '\r':
 14104             if (comment_at_top(parser)) {
 14114         c = (
IS_lex_state(EXPR_BEG|EXPR_CLASS|EXPR_FNAME|EXPR_DOT) &&
 14122                 goto normal_newline;
 14126         while ((c = 
nextc())) {
 14128               case ' ': 
case '\t': 
case '\f': 
case '\r':
 14135                 if (
peek(
'.') == (c == 
'&')) {
 14148                     parser->tokp = 
lex_p;
 14151                 goto normal_newline;
 14160         if ((c = 
nextc()) == 
'*') {
 14161             if ((c = 
nextc()) == 
'=') {
 14168                 rb_warning0(
"`**' interpreted as argument prefix");
 14186                 rb_warning0(
"`*' interpreted as argument prefix");
 14223                 int first_p = 
TRUE;
 14238                     if (c != 
'=') 
continue;
 14239                     if (c == 
'=' && strncmp(
lex_p, 
"end", 3) == 0 &&
 14251         if ((c = 
nextc()) == 
'=') {
 14252             if ((c = 
nextc()) == 
'=') {
 14261         else if (c == 
'>') {
 14275             if (token) 
return token;
 14286             if ((c = 
nextc()) == 
'>') {
 14293             if ((c = 
nextc()) == 
'=') {
 14306         if ((c = 
nextc()) == 
'=') {
 14310             if ((c = 
nextc()) == 
'=') {
 14347         return parse_qmark(parser, space_seen);
 14350         if ((c = 
nextc()) == 
'&') {
 14352             if ((c = 
nextc()) == 
'=') {
 14360         else if (c == 
'=') {
 14365         else if (c == 
'.') {
 14373                 !(c == 
'\'' || c == 
'"' ||
 14375                 rb_warning0(
"`&' interpreted as argument prefix");
 14389         if ((c = 
nextc()) == 
'|') {
 14391             if ((c = 
nextc()) == 
'=') {
 14427                 return parse_numeric(parser, 
'+');
 14469         if ((c = 
nextc()) == 
'.') {
 14470             if ((c = 
nextc()) == 
'.') {
 14478             yyerror0(
"no .<digit> floating literal anymore; put 0 before dot");
 14483       case '0': 
case '1': 
case '2': 
case '3': 
case '4':
 14484       case '5': 
case '6': 
case '7': 
case '8': 
case '9':
 14485         return parse_numeric(parser, c);
 14537         if ((c = 
nextc()) == 
'=') {
 14552         if ((c = 
nextc()) == 
'=') {
 14572             if ((c = 
nextc()) != 
'@') {
 14586         else if (!space_seen) {
 14593             rb_warning0(
"parentheses after method name is interpreted as " 14594                         "an argument list, not a decomposed argument");
 14605             if ((c = 
nextc()) == 
']') {
 14607                 if ((c = 
nextc()) == 
'=') {
 14663         return parse_percent(parser, space_seen, last_state);
 14666         return parse_gvar(parser, last_state);
 14669         return parse_atmark(parser, last_state);
 14696     return parse_ident(parser, c, cmd_state);
 14704     parser->
lval = lval;
 14706     t = parser_yylex(parser);
 14718 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1)) 14732 nodetype(
NODE *node)                    
 14738 nodeline(
NODE *node)
 14744 newline_node(
NODE *node)
 14747         node = remove_begin(node);
 14758     if (orig == (
NODE*)1) 
return;
 14767 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg)) 14774 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg)) 14779     NODE *end, *h = head, *nd;
 14781     if (tail == 0) 
return head;
 14783     if (h == 0) 
return tail;
 14824         tail->nd_end = tail;
 14826     end->nd_next = tail;
 14827     h->nd_end = tail->nd_end;
 14837     if (list == 0) 
return new_list(item, column);
 14838     if (list->nd_next) {
 14839         last = list->nd_next->nd_end;
 14845     list->nd_alen += 1;
 14846     last->nd_next = 
new_list(item, column);
 14847     list->nd_next->nd_end = last->nd_next;
 14853 list_concat(
NODE *head, 
NODE *tail)
 14857     if (head->nd_next) {
 14858         last = head->nd_next->nd_end;
 14864     head->nd_alen += tail->nd_alen;
 14865     last->nd_next = tail;
 14866     if (tail->nd_next) {
 14867         head->nd_next->nd_end = tail->nd_next->nd_end;
 14870         head->nd_next->nd_end = tail;
 14879     if (
NIL_P(tail)) 
return 1;
 14900     if (!head) 
return tail;
 14901     if (!tail) 
return head;
 14921         if (htype == 
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
 14924             lit = headlast->nd_lit;
 14927             lit = head->nd_lit;
 14930             if (!literal_concat0(parser, lit, tail->nd_lit)) {
 14945             if (!literal_concat0(parser, head->nd_lit, tail->nd_lit))
 14947             tail->nd_lit = head->nd_lit;
 14951         else if (
NIL_P(tail->nd_lit)) {
 14953             head->nd_alen += tail->nd_alen - 1;
 14954             head->nd_next->nd_end->nd_next = tail->nd_next;
 14955             head->nd_next->nd_end = tail->nd_next->nd_end;
 14958         else if (htype == 
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
 14960             lit = headlast->nd_lit;
 14961             if (!literal_concat0(parser, lit, tail->nd_lit))
 14963             tail->nd_lit = 
Qnil;
 14968             tail->nd_head = 
new_str(tail->nd_lit, column);
 14969             list_concat(head, tail);
 15017     fixpos(expr, recv);
 15057                 const VALUE lit = node1->nd_lit;
 15088 # if WARN_PAST_SCOPE 15094         if (vtable_included(past, 
id)) 
return 1;
 15131     switch (id_type(
id)) {
 15149 # if WARN_PAST_SCOPE 15178 kwd_append(
NODE *kwlist, 
NODE *kw)
 15181         NODE *kws = kwlist;
 15182         while (kws->nd_next) {
 15183             kws = kws->nd_next;
 15199 new_regexp_gen(
struct parser_params *parser, 
NODE *node, 
int options, 
int column)
 15209             VALUE src = node->nd_lit;
 15221         for (list = (prev = node)->
nd_next; 
list; list = list->nd_next) {
 15223                 VALUE tail = list->nd_head->nd_lit;
 15225                     VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
 15226                     if (!literal_concat0(parser, lit, tail)) {
 15231                     prev->nd_next = list->nd_next;
 15244         if (!node->nd_next) {
 15245             VALUE src = node->nd_lit;
 15492     if (ripper_is_node_yylval(re)) {
 15493         src = 
RNODE(re)->nd_cval;
 15494         re = 
RNODE(re)->nd_rval;
 15496     if (ripper_is_node_yylval(opt)) {
 15497         options = (int)
RNODE(opt)->nd_tag;
 15498         opt = 
RNODE(opt)->nd_rval;
 15500     if (src && 
NIL_P(parser_reg_compile(parser, src, options, &
err))) {
 15503     return dispatch2(regexp_literal, re, opt);
 15509     return dispatch1(xstring_literal, str);
 15515     "EXPR_BEG",    
"EXPR_END",    
"EXPR_ENDARG", 
"EXPR_ENDFN",  
"EXPR_ARG",
 15516     "EXPR_CMDARG", 
"EXPR_MID",    
"EXPR_FNAME",  
"EXPR_DOT",    
"EXPR_CLASS",
 15517     "EXPR_LABEL",  
"EXPR_LABELED",
"EXPR_FITEM",
 15524     unsigned int mask = 1;
 15525     static const char none[] = 
"EXPR_NONE";
 15528         if ((
unsigned)state & mask) {
 15562     append_lex_state_name(from, mesg);
 15564     append_lex_state_name(to, mesg);
 15566     flush_debug_buffer(parser, parser->
debug_output, mesg);
 15573     return append_lex_state_name(state, 
rb_str_new(0, 0));
 15577 append_bitstack_value(stack_type stack, 
VALUE mesg)
 15584         for (; mask && !(stack & mask); mask >>= 1) 
continue;
 15585         for (; mask; mask >>= 1) 
rb_str_cat(mesg, stack & mask ? 
"1" : 
"0", 1);
 15591                         const char *name, 
int line)
 15594     append_bitstack_value(stack, mesg);
 15596     flush_debug_buffer(parser, parser->
debug_output, mesg);
 15612     dispatch1(parse_error, mesg);
 15617     append_lex_state_name(
lex_state, mesg);
 15633 assignable_result0(
NODE *node, 
int column)
 15650 # define assignable_result(x) (lhs) 15651 # define parser_yyerror(parser, x) (lhs = assign_error_gen(parser, lhs)) 15653 # define assignable_result(x) assignable_result0(x, column) 15658         yyerror0(
"Can't change the value of self");
 15667         yyerror0(
"Can't assign to false");
 15670         yyerror0(
"Can't assign to __FILE__");
 15673         yyerror0(
"Can't assign to __LINE__");
 15676         yyerror0(
"Can't assign to __ENCODING__");
 15679     switch (id_type(
id)) {
 15710         yyerror0(
"dynamic constant assignment");
 15719 #undef assignable_result 15720 #undef parser_yyerror 15724 is_private_local_id(
ID name)
 15727     if (name == idUScore) 
return 1;
 15737     if (is_private_local_id(name)) 
return 1;
 15740             yyerror0(
"duplicated argument name");
 15753             yyerror0(
"duplicated argument name");
 15762     shadowing_lvar_0(parser, name);
 15775     if (!shadowing_lvar_0(parser, name)) 
return;
 15824     if (!node2) 
return node1;
 15827         if (node1->nd_head)
 15828             node1->nd_head = 
arg_concat(node1->nd_head, node2, column);
 15830             node1->nd_head = 
new_list(node2, column);
 15834         node1->nd_body = list_concat(
new_list(node1->nd_body, column), node2);
 15840         node1->nd_body = list_concat(node1->nd_body, node2);
 15853     if (!node1) 
return new_list(node2, column);
 15858         node1->nd_head = 
arg_append(node1->nd_head, node2, column);
 15871 splat_array(
NODE* node)
 15881     if (!lhs) 
return 0;
 15893         lhs->nd_value = rhs;
 15898         lhs->nd_args = 
arg_append(lhs->nd_args, rhs, column);
 15924             if (!cond) 
yyerror0(
"void value expression");
 15929             while (node->nd_next) {
 15930                 node = node->nd_next;
 15932             node = node->nd_head;
 15936             node = node->nd_body;
 15941             if (!node->nd_body) {
 15942                 node = node->nd_else;
 15945             else if (!node->nd_else) {
 15946                 node = node->nd_body;
 15950             node = node->nd_else;
 15956             node = node->nd_2nd;
 15970     const char *useless = 0;
 15977         switch (node->nd_mid) {
 16008         useless = 
"a variable";
 16011         useless = 
"a constant";
 16018         useless = 
"a literal";
 16043         useless = 
"defined?";
 16060         if (!node->nd_next) 
return;
 16062         node = node->nd_next;
 16067 remove_begin(
NODE *node)
 16069     NODE **n = &node, *n1 = node;
 16071         *n = n1 = n1->nd_body;
 16077 remove_begin_all(
NODE *node)
 16079     NODE **n = &node, *n1 = node;
 16081         *n = n1 = n1->nd_body;
 16089     NODE *node = *body;
 16095 #define subnodes(n1, n2) \ 16096     ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \ 16097      (!node->n2) ? (body = &node->n1, 1) : \ 16098      (reduce_nodes(&node->n1), body = &node->n2, 1)) 16108             *body = node = node->nd_stts;
 16112             *body = node = node->nd_body;
 16116             body = &node->nd_end->nd_head;
 16123             body = &node->nd_body;
 16132             if (node->nd_else) {
 16133                 body = &node->nd_resq;
 16149 is_static_content(
NODE *node)
 16151     if (!node) 
return 1;
 16154         if (!(node = node->nd_head)) 
break;
 16157             if (!is_static_content(node->nd_head)) 
return 0;
 16158         } 
while ((node = node->nd_next) != 0);
 16188     if (!node->nd_value) 
return 1;
 16189     if (is_static_content(node->nd_value)) {
 16191         parser_warn(node->nd_value, 
"found = in conditional, should be ==");
 16197 warn_unless_e_option(
struct parser_params *parser, 
NODE *node, 
const char *str)
 16199     if (!e_option_supplied(parser)) 
parser_warn(node, str);
 16203 warning_unless_e_option(
struct parser_params *parser, 
NODE *node, 
const char *str)
 16215     if (node == 0) 
return 0;
 16220         warn_unless_e_option(parser, node, 
"integer literal in conditional range");
 16223     return cond0(parser, node, 
FALSE, column);
 16227 literal_node(
NODE *node)
 16229     if (!node) 
return 1;        
 16250     if (node == 0) 
return 0;
 16251     assign_in_cond(parser, node);
 16257         if (!method_op) 
rb_warn0(
"string literal in condition");
 16265                 warning_unless_e_option(parser, node, 
"regex literal in condition");
 16274         node->nd_1st = cond0(parser, node->nd_1st, 
FALSE, column);
 16275         node->nd_2nd = cond0(parser, node->nd_2nd, 
FALSE, column);
 16280         node->nd_beg = range_op(parser, node->nd_beg, column);
 16281         node->nd_end = range_op(parser, node->nd_end, column);
 16284         if (!method_op && !e_option_supplied(parser)) {
 16285             int b = literal_node(node->nd_beg);
 16286             int e = literal_node(node->nd_end);
 16300                 warn_unless_e_option(parser, node, 
"regex literal in condition");
 16316     if (node == 0) 
return 0;
 16317     return cond0(parser, node, method_op, column);
 16325     if (!cc) 
return right;
 16326     cc = cond0(parser, cc, 
FALSE, column);
 16327     node_if = 
NEW_IF(cc, left, right);
 16329     return newline_node(node_if);
 16337     if (!cc) 
return right;
 16338     cc = cond0(parser, cc, 
FALSE, column);
 16341     return newline_node(node_unless);
 16350         NODE *node = left, *second;
 16351         while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
 16354         node->nd_2nd = 
NEW_NODE(type, second, right, 0);
 16358     op = 
NEW_NODE(type, left, right, 0);
 16375         no_blockarg(parser, node);
 16377             if (node->nd_next == 0) {
 16378                 node = node->nd_head;
 16392     if (node) no_blockarg(parser, node);
 16402     int type = 
TYPE(lit);
 16428         rb_parser_fatal(parser, 
"unknown literal type (%d) passed to negate_lit", type);
 16435 arg_blk_pass(
NODE *node1, 
NODE *node2)
 16438         node2->nd_head = node1;
 16452     args->
pre_init       = m ? m->nd_next : 0;
 16477     if (parser->
error_p) 
return node;
 16496             NODE *val_node = kwn->nd_body->nd_value;
 16497             ID vid = kwn->nd_body->nd_vid;
 16499             if (val_node == (
NODE *)-1) {
 16506             kwn = kwn->nd_next;
 16511         vtable_pop(
lvtbl->args, vtable_size(required_kw_vars) + vtable_size(kw_vars) + (b != 0));
 16513         for (i=0; i<vtable_size(required_kw_vars); i++) 
arg_var(required_kw_vars->
tbl[i]);
 16514         for (i=0; i<vtable_size(kw_vars); i++) 
arg_var(kw_vars->
tbl[i]);
 16550         lit = node->nd_lit;
 16568     node->nd_next->nd_end = node->nd_next;
 16569     node->nd_next->nd_next = 0;
 16571         list_concat(*result, node);
 16582     while (hash && hash->nd_head && hash->nd_next) {
 16583         NODE *head = hash->nd_head;
 16584         NODE *value = hash->nd_next;
 16585         NODE *next = value->nd_next;
 16589             st_lookup(literal_keys, (key = head->nd_lit), &data)) {
 16591                             "key %+"PRIsVALUE" is duplicated and overwritten on line %d",
 16592                             head->nd_lit, 
nd_line(head));
 16593             head = ((
NODE *)data)->nd_next;
 16594             head->nd_head = 
block_append(head->nd_head, value->nd_head, column);
 16604         if (!result) result = hash;
 16605         else list_concat(result, hash);
 16614     if (hash) hash = remove_duplicate_keys(parser, hash, column);
 16628         ID vid = lhs->nd_vid;
 16630             lhs->nd_value = rhs;
 16634                 switch (id_type(vid)) {
 16638                     asgn->nd_aid = vid;
 16642         else if (op == 
tANDOP) {
 16643             lhs->nd_value = rhs;
 16660                        ID atype, 
ID attr, 
ID op, 
NODE *rhs, 
int column)
 16667     else if (op == 
tANDOP) {
 16684     else if (op == 
tANDOP) {
 16710         yyerror0(
"dynamic constant assignment");
 16712     return new_cdecl(0, 0, (path), column);
 16718     return dispatch3(opassign, lhs, op, rhs);
 16724     VALUE recv = dispatch3(field, lhs, type, attr);
 16725     return dispatch3(opassign, recv, op, rhs);
 16731     VALUE ret = dispatch3(call, (r), (q), (m));
 16732     return method_optarg(ret, (a));
 16739         path = dispatch1(assign_error, path);
 16748     a = dispatch1(assign_error, a);
 16766     if (!local->
used) 
return;
 16770     if (cnt != local->
vars->
pos) {
 16773     for (i = 0; i < 
cnt; ++i) {
 16774         if (!v[i] || (u[i] & 
LVAR_USED)) 
continue;
 16775         if (is_private_local_id(v[i])) 
continue;
 16781 local_push_gen(
struct parser_params *parser, 
int inherit_dvars)
 16789     local->
used = !(inherit_dvars &&
 16792 # if WARN_PAST_SCOPE 16805         warn_unused_var(parser, 
lvtbl);
 16808 # if WARN_PAST_SCOPE 16809     while (
lvtbl->past) {
 16826     int cnt_args = vtable_size(
lvtbl->args);
 16827     int cnt_vars = vtable_size(
lvtbl->vars);
 16828     int cnt = cnt_args + cnt_vars;
 16832     if (cnt <= 0) 
return 0;
 16836     for (i = 0, j = cnt_args+1; i < cnt_vars; ++i) {
 16838         if (!vtable_included(
lvtbl->args, 
id)) {
 16842     if (--j < cnt) 
REALLOC_N(buf, 
ID, (cnt = j) + 1);
 16866     struct vtable *vars, *args, *used;
 16868     vars = 
lvtbl->vars;
 16869     args = 
lvtbl->args;
 16870     used = 
lvtbl->used;
 16875         if (used) used = used->
prev;
 16881     else if (vtable_included(args, 
id)) {
 16885         int i = vtable_included(vars, 
id);
 16886         if (i && used && vidrefp) *vidrefp = &used->
tbl[i-1];
 16891 static const struct vtable *
 16899     return lvtbl->args;
 16905     struct vtable *tmp = *vtblp;
 16906     *vtblp = tmp->
prev;
 16907 # if WARN_PAST_SCOPE 16908     if (parser->past_scope_enabled) {
 16922     if ((tmp = 
lvtbl->used) != 0) {
 16923         warn_unused_var(parser, 
lvtbl);
 16927     dyna_pop_vtable(parser, &
lvtbl->args);
 16928     dyna_pop_vtable(parser, &
lvtbl->vars);
 16934     while (
lvtbl->args != lvargs) {
 16935         dyna_pop_1(parser);
 16936         if (!
lvtbl->args) {
 16942     dyna_pop_1(parser);
 16954     struct vtable *vars, *args, *used;
 16957     args = 
lvtbl->args;
 16958     vars = 
lvtbl->vars;
 16959     used = 
lvtbl->used;
 16962         if (vtable_included(args, 
id)) {
 16965         if ((i = vtable_included(vars, 
id)) != 0) {
 16966             if (used && vidrefp) *vidrefp = &used->
tbl[i-1];
 16971         if (!vidrefp) used = 0;
 16972         if (used) used = used->
prev;
 16985     return (vtable_included(
lvtbl->args, 
id) ||
 16986             vtable_included(
lvtbl->vars, 
id));
 16993         "regexp encoding option '%c' differs from source encoding '%s'",
 17039     if (c) reg_fragment_enc_error(parser, str, c);
 17065           int back_num, 
int *back_refs, 
OnigRegex regex, 
void *arg0)
 17070     long len = name_end - 
name;
 17071     const char *s = (
const char *)name;
 17090 reg_named_capture_assign_gen(
struct parser_params* parser, 
VALUE regexp, 
int column)
 17124     re = parser_reg_compile(parser, str, options);
 17140     if (c) reg_fragment_enc_error(parser, str, c);
 17155     NODE *scope = node;
 17158     if (!node) 
return node;
 17162     node = node->nd_body;
 17166         node = node->nd_body;
 17174         prelude->nd_body = node;
 17175         scope->nd_body = prelude;
 17178         scope->nd_body = node;
 17188     NODE *scope = node;
 17191     if (!node) 
return node;
 17195     node = node->nd_body;
 17199         node = node->nd_body;
 17215         prelude->nd_body = node;
 17216         scope->nd_body = prelude;
 17219         scope->nd_body = node;
 17249     parser->delayed = 
Qnil;
 17250     parser->result = 
Qnil;
 17251     parser->parsing_thread = 
Qnil;
 17261 #define parser_mark ripper_parser_mark 17262 #define parser_free ripper_parser_free 17266 parser_mark(
void *ptr)
 17295 parser_free(
void *ptr)
 17303     for (local = 
lvtbl; local; local = 
prev) {
 17305         prev = local->
prev;
 17310         while ((ptinfo = parser->
token_info) != 0) {
 17319 parser_memsize(
const void *ptr)
 17323     size_t size = 
sizeof(*parser);
 17326     for (local = 
lvtbl; local; local = local->
prev) {
 17327         size += 
sizeof(*local);
 17348 #undef rb_reserved_word 17353     return reserved_word(str, len);
 17361                                          &parser_data_type, p);
 17362     parser_initialize(p);
 17380 #define rb_parser_end_seen_p ripper_parser_end_seen_p 17381 #define rb_parser_encoding ripper_parser_encoding 17382 #define rb_parser_get_yydebug ripper_parser_get_yydebug 17383 #define rb_parser_set_yydebug ripper_parser_set_yydebug 17384 static VALUE ripper_parser_end_seen_p(
VALUE vparser);
 17385 static VALUE ripper_parser_encoding(
VALUE vparser);
 17386 static VALUE ripper_parser_get_yydebug(
VALUE self);
 17396 ripper_error_p(
VALUE vparser)
 17462     yydebug = 
RTEST(flag);
 17468 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE)) 17469 #define NEWHEAP() (rb_imemo_alloc_t *)rb_imemo_new(imemo_alloc, 0, (VALUE)parser->heap, 0, 0) 17470 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->ptr = (p), \ 17471                            (n)->cnt = (c), (p)) 17488     void *ptr = 
xcalloc(nelem, size);
 17499     if (ptr && (n = parser->
heap) != 
NULL) {
 17501             if (n->
ptr == ptr) {
 17518     while ((n = *prev) != 
NULL) {
 17519         if (n->ptr == ptr) {
 17547 parser_compile_error(
struct parser_params *parser, 
const char *fmt, ...)
 17565 #ifdef RIPPER_DEBUG 17566 extern int rb_is_pointer_to_heap(
VALUE);
 17572     if (x == 
Qfalse) 
return x;
 17573     if (x == 
Qtrue) 
return x;
 17574     if (x == 
Qnil) 
return x;
 17579     if (!rb_is_pointer_to_heap(x))
 17591         if (
nd_type(x) != NODE_RIPPER) {
 17594         return ((
NODE *)x)->nd_rval;
 17603 #define validate(x) ((x) = get_value(x)) 17615     return rb_funcall(parser->value, mid, 1, a);
 17623     return rb_funcall(parser->value, mid, 2, a, b);
 17632     return rb_funcall(parser->value, mid, 3, a, b, c);
 17642     return rb_funcall(parser->value, mid, 4, a, b, c, d);
 17653     return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
 17666     return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
 17670 ripper_get_id(
VALUE v)
 17675     if (
nd_type(nd) != NODE_RIPPER) 
return 0;
 17680 ripper_get_value(
VALUE v)
 17687     return nd->nd_rval;
 17697 ripper_compile_error(
struct parser_params *parser, 
const char *fmt, ...)
 17702     va_start(args, fmt);
 17706     ripper_error_gen(parser);
 17715                  "gets returned %"PRIsVALUE" (expected String or nil)",
 17728 ripper_s_allocate(
VALUE klass)
 17732                                        &parser_data_type, p);
 17737 #define ripper_initialized_p(r) ((r)->lex.input != 0) 17753     VALUE src, fname, lineno;
 17756     rb_scan_args(argc, argv, 
"12", &src, &fname, &lineno);
 17761         lex_gets = ripper_lex_get_generic;
 17769     if (
NIL_P(fname)) {
 17777     parser_initialize(parser);
 17786 struct ripper_args {
 17793 ripper_parse0(
VALUE parser_v)
 17798     parser_prepare(parser);
 17799     ripper_yyparse((
void*)parser);
 17800     return parser->result;
 17804 ripper_ensure(
VALUE parser_v)
 17809     parser->parsing_thread = 
Qnil;
 17820 ripper_parse(
VALUE self)
 17825     if (!ripper_initialized_p(parser)) {
 17828     if (!
NIL_P(parser->parsing_thread)) {
 17835     rb_ensure(ripper_parse0, 
self, ripper_ensure, 
self);
 17837     return parser->result;
 17848 ripper_column(
VALUE self)
 17854     if (!ripper_initialized_p(parser)) {
 17857     if (
NIL_P(parser->parsing_thread)) 
return Qnil;
 17869 ripper_filename(
VALUE self)
 17874     if (!ripper_initialized_p(parser)) {
 17888 ripper_lineno(
VALUE self)
 17893     if (!ripper_initialized_p(parser)) {
 17896     if (
NIL_P(parser->parsing_thread)) 
return Qnil;
 17907 ripper_state(
VALUE self)
 17912     if (!ripper_initialized_p(parser)) {
 17915     if (
NIL_P(parser->parsing_thread)) 
return Qnil;
 17919 #ifdef RIPPER_DEBUG 17940 ripper_lex_state_name(
VALUE self, 
VALUE state)
 17948     ripper_init_eventids1();
 17949     ripper_init_eventids2();
 17958 InitVM_ripper(
void)
 17977 #ifdef RIPPER_DEBUG 18023     ripper_init_eventids1_table(Ripper);
 18024     ripper_init_eventids2_table(Ripper);
 #define STRNCASECMP(s1, s2, n)
void rb_define_global_const(const char *, VALUE)
void rb_fatal(const char *fmt,...)
ONIG_EXTERN int onig_foreach_name(OnigRegex reg, int(*func)(const OnigUChar *, const OnigUChar *, int, int *, OnigRegex, void *), void *arg)
VALUE rb_ary_unshift(VALUE ary, VALUE item)
#define new_command(m, a)
#define IS_LABEL_SUFFIX(n)
int rb_enc_codelen(int c, rb_encoding *enc)
#define new_args_tail(k, kr, b, column)
#define NEW_OP_ASGN_AND(i, val)
#define MBCLEN_CHARFOUND_P(ret)
#define NEW_STRTERM(func, term, paren)
#define RRATIONAL_SET_NUM(rat, n)
#define NEW_OP_ASGN1(p, id, a)
#define RUBY_TYPED_FREE_IMMEDIATELY
NODE * rb_parser_compile_string_path(VALUE vparser, VALUE f, VALUE s, int line)
long rb_str_coderange_scan_restartable(const char *, const char *, rb_encoding *, int *)
#define RE_OPTION_ENCODING_IDX(o)
#define new_regexp(node, opt, column)
size_t strlen(const char *)
#define new_call(recv, mid, args, column)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
#define scan_oct(s, l, e)
#define reg_compile(str, options)
ID rb_intern2(const char *, long)
void rb_define_singleton_method(VALUE obj, const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a singleton method for obj. 
#define keyword_do_LAMBDA
#define list_append(l, i, column)
#define rb_usascii_str_new2
void rb_raise(VALUE exc, const char *fmt,...)
VALUE rb_str_cat(VALUE, const char *, long)
VALUE rb_reg_check_preprocess(VALUE)
PRINTF_ARGS(void rb_parser_fatal(struct parser_params *parser, const char *fmt,...), 2, 3)
#define new_errinfo(column)
#define str_copy(_s, _p, _n)
NODE * rb_parser_compile_file_path(VALUE vparser, VALUE fname, VALUE file, int start)
enum lex_state_e rb_parser_trace_lex_state(struct parser_params *, enum lex_state_e, enum lex_state_e, int)
#define keyword__ENCODING__
VALUE rb_parser_end_seen_p(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
#define intern_cstr(n, l, en)
#define new_ivar(id, column)
struct token_info token_info
#define new_args(f, o, r, p, t)
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
void rb_define_private_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
#define token_info_push(token)
int rb_enc_symname2_p(const char *, long, rb_encoding *)
VALUE rb_default_coverage(int)
VALUE rb_ary_push(VALUE ary, VALUE item)
#define NEW_CLASS(n, b, s)
struct local_vars * lvtbl
#define new_fcall(mid, args, column)
unsigned short int yytype_uint16
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
unsigned int command_start
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
#define nd_set_column(n, v)
int rb_local_defined(ID id, const struct rb_block *base_block)
#define is_identchar(p, e, enc)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method. 
NODE * rb_parser_compile_file(VALUE vparser, const char *f, VALUE file, int start)
void rb_str_set_len(VALUE, long)
VALUE rb_io_gets_internal(VALUE io)
int rb_enc_str_coderange(VALUE)
#define reg_fragment_setenc(str, options)
#define new_hash(hash, column)
#define literal_concat(h, t, column)
#define RSTRING_GETMEM(str, ptrvar, lenvar)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
#define dispatch_scan_event(t)
#define NEW_OP_ASGN2(r, t, i, o, val)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
#define SET_LEX_STATE(ls)
#define local_id_ref(id, vidp)
#define nd_set_type(n, t)
#define cond(node, column)
void rb_gc_mark(VALUE ptr)
#define parser_is_identchar()
#define rb_enc_islower(c, enc)
VALUE rb_io_write(VALUE, VALUE)
#define RE_OPTION_ENCODING(e)
#define new_yield(node, column)
#define RCOMPLEX_SET_IMAG(cmp, i)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
An equivalent to ensure clause. 
void rb_gc_force_recycle(VALUE obj)
#define MEMO_NEW(a, b, c)
#define NEW_IASGN(v, val)
rb_encoding * rb_utf8_encoding(void)
VALUE rb_str_buf_append(VALUE, VALUE)
#define new_str(s, column)
#define st_init_numtable_with_size
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
#define new_postarg(i, v, column)
#define new_cdecl(v, val, path, column)
RUBY_EXTERN void * memmove(void *, const void *, size_t)
RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_parser_reg_compile(struct parser_params *parser, VALUE str, int options)
#define IS_lex_state_all(ls)
RUBY_EXTERN unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow)
#define unterminated_literal(mesg)
VALUE rb_str_buf_cat(VALUE, const char *, long)
RUBY_SYMBOL_EXPORT_BEGIN typedef unsigned long st_data_t
#define SPECIAL_PUNCT(idx)
#define new_if(cc, left, right, column)
unsigned int ruby__end__seen
VALUE ruby_sourcefile_string
#define arg_concat(h, t, column)
const char rb_parser_lex_state_names[][13]
VALUE rb_obj_class(VALUE)
call-seq: obj.class -> class 
#define RB_TYPE_P(obj, type)
#define new_list(item, column)
#define yyerror(yylloc, parser, msg)
#define assignable_result(x)
#define NEW_ATTRASGN(r, m, a)
void rb_parser_printf(struct parser_params *parser, const char *fmt,...)
#define new_defined(expr, column)
#define parser_warning(node, mesg)
#define whole_match_p(e, l, i)
#define heredoc_line_indent
#define const_path_field(w, n, column)
#define set_yylval_literal(x)
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define scan_hex(s, l, e)
#define rb_intern_str(string)
#define rb_rational_raw1(x)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
#define heredoc_dedent(str)
RUBY_EXTERN VALUE rb_cObject
VALUE rb_parser_encoding(VALUE vparser)
struct parser_params * parser
VALUE rb_get_coverages(void)
NODE * rb_compile_string(const char *f, VALUE s, int line)
#define new_undef(i, column)
const struct rb_block * base_block
VALUE rb_obj_as_string(VALUE)
void rb_set_errinfo(VALUE err)
Sets the current exception ($!) to the given value. 
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
int rb_ascii8bit_encindex(void)
#define NEW_ARGSPUSH(a, b)
#define set_yylval_name(x)
#define reg_named_capture_assign(regexp, column)
#define new_command_qcall(q, r, m, a, column)
#define NEW_UNLESS(c, t, e)
RUBY_EXTERN VALUE rb_mKernel
#define rb_warning1(fmt, a)
VALUE rb_thread_current(void)
#define block_dup_check(n1, n2)
#define aryset(node1, node2, column)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class. 
#define heredoc_identifier()
struct rb_imemo_alloc_struct * next
#define gettable(id, column)
#define new_evstr(n, column)
#define method_add_block(m, b)
void rb_define_const(VALUE, const char *, VALUE)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
#define new_attr_op_assign(lhs, type, attr, op, rhs, column)
rb_atomic_t cnt[RUBY_NSIG]
#define lex_goto_eol(parser)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
#define match_op(node1, node2, column)
#define top_const_field(n)
VALUE rb_rational_new(VALUE, VALUE)
#define dvar_defined_ref(id, vidp)
#define ALLOCA_N(type, n)
#define flush_string_content(enc)
#define NEW_OP_CDECL(v, op, val)
VALUE rb_parser_set_context(VALUE vparser, const struct rb_block *base, int main)
#define ENC_CODERANGE_UNKNOWN
#define tokadd_string(f, t, p, n, e)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
VALUE rb_enc_associate_index(VALUE obj, int idx)
#define set_integer_literal(v, f)
#define YY_REDUCE_PRINT(Rule)
#define block_append(h, t, column)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
RUBY_EXTERN VALUE rb_int_positive_pow(long x, unsigned long y)
VALUE rb_make_backtrace(void)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
#define NEW_WHEN(c, t, e)
VALUE rb_str_resize(VALUE, long)
#define NEW_DASGN(v, val)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
#define mixed_escape(beg, enc1, enc2)
#define set_yylval_num(x)
#define NEW_BLOCK_PASS(b)
VALUE rb_str_subseq(VALUE, long, long)
#define new_const_op_assign(lhs, op, rhs, column)
VALUE rb_funcallv_public(VALUE, ID, int, const VALUE *)
Calls a method. 
#define set_number_literal(v, t, f)
#define REALLOC_N(var, type, n)
int rb_dvar_defined(ID id, const struct rb_block *base_block)
#define has_delayed_token()
#define new_unless(cc, left, right, column)
#define token_info_pop(token)
VALUE rb_sprintf(const char *format,...)
#define new_dstr(s, column)
#define IS_lex_state_for(x, ls)
#define NEW_OP_ASGN_OR(i, val)
#define rb_enc_isspace(c, enc)
#define rb_node_newnode(type, a1, a2, a3)
int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc)
#define new_scope(a, b, column)
#define MEMMOVE(p1, p2, type, n)
VALUE rb_str_vcatf(VALUE, const char *, va_list)
#define RUBY_SYMBOL_EXPORT_END
void rb_compile_warning(const char *file, int line, const char *fmt,...)
#define NEW_RESCUE(b, res, e)
#define new_lit(sym, column)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
#define warn_balanced(tok, op, syn)
#define new_for(var, iter, body, column)
unsigned char buf[MIME_BUF_SIZE]
#define rb_warn3L(l, fmt, a, b, c)
VALUE rb_assoc_new(VALUE car, VALUE cdr)
#define rb_warn1L(l, fmt, a)
#define method_cond(node, column)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
unsigned char yytype_uint8
#define NEW_PRELUDE(p, b, o)
VALUE rb_make_exception(int argc, const VALUE *argv)
Make an Exception object from the list of arguments in a manner similar to Kernel#raise. 
#define heredoc_restore(n)
void rb_exc_raise(VALUE mesg)
Raises an exception in the current thread. 
#define arg_append(h, t, column)
#define vtable_pop(tbl, n)
#define new_do_body(param, stmt, column)
#define vtable_alloc(prev)
#define RUBY_SYMBOL_EXPORT_BEGIN
#define COVERAGE_INDEX_LINES
#define logop(id, node1, node2, column)
VALUE rb_io_puts(int, const VALUE *, VALUE)
#define NEW_ENSURE(b, en)
#define RUBY_DTRACE_PARSE_HOOK(name)
VALUE rb_syntax_error_append(VALUE exc, VALUE file, int line, int column, rb_encoding *enc, const char *fmt, va_list args)
const char * rb_id2name(ID)
#define rb_enc_asciicompat(enc)
VALUE rb_str_new_cstr(const char *)
int rb_reg_fragment_setenc(struct parser_params *, VALUE, int)
#define set_yylval_str(x)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
#define const_decl(path, column)
void rb_parser_show_bitstack(struct parser_params *, stack_type, const char *, int)
VALUE rb_obj_hide(VALUE obj)
Make the object invisible from Ruby code. 
#define new_op_assign(lhs, op, rhs, column)
#define ENCODING_IS_ASCII8BIT(obj)
unsigned int token_info_enabled
#define vtable_add(tbl, id)
#define attrset(node, q, id, column)
VALUE rb_sym_intern_ascii_cstr(const char *ptr)
#define node_assign(node1, node2, column)
int rb_respond_to(VALUE, ID)
register unsigned int len
#define StringValueCStr(v)
#define new_dvar(id, column)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e - 0x20+31)/32]
void rb_str_modify(VALUE)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
#define call_bin_op(recv, id, arg1, column)
RUBY_EXTERN VALUE rb_stderr
VALUE rb_ident_hash_new(void)
#define ADD2HEAP(n, c, p)
#define new_rescue(b, res, e, column)
#define NEW_GASGN(v, val)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define RARRAY_AREF(a, i)
#define read_escape(flags, e)
#define dispatch_delayed_token(t)
#define new_resbody(e, s, r, column)
#define parser_warn(node, mesg)
VALUE rb_complex_raw(VALUE x, VALUE y)
#define NEW_UNTIL(c, b, n)
VALUE rb_str_catf(VALUE str, const char *format,...)
#define YYSTACK_ALLOC_MAXIMUM
#define NEW_QCALL(q, r, m, a)
VALUE rb_parser_lex_state_name(enum lex_state_e state)
VALUE rb_big_norm(VALUE x)
#define parser_encoding_name()
#define NEW_WHILE(c, b, n)
#define new_qcall(q, r, m, a, column)
#define NEW_POSTARG(i, v)
VALUE rb_class_new_instance(int, const VALUE *, VALUE)
Allocates and initializes an instance of klass. 
void rb_parser_fatal(struct parser_params *parser, const char *fmt,...)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
VALUE rb_str_cat_cstr(VALUE, const char *)
#define NEW_CVASGN(v, val)
VALUE rb_errinfo(void)
The current exception in the current thread. 
#define TypedData_Make_Struct(klass, type, data_type, sval)
#define NEW_MATCH3(r, n2)
#define number_literal_suffix(f)
#define STR_NEW3(p, n, e, func)
#define NEW_OPT_ARG(i, v)
#define new_brace_body(param, stmt, column)
struct parser_params::@46 lex
#define IS_LABEL_POSSIBLE()
VALUE rb_filesystem_str_new_cstr(const char *)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
VALUE rb_parser_new(void)
VALUE rb_const_get_at(VALUE, ID)
int main(int argc, char **argv)
#define set_yylval_node(x)
#define new_xstring(node, column)
#define RE_OPTION_ENCODING_NONE(o)
#define assignable(id, node, column)
#define ruby_eval_tree_begin
#define ruby_sourcefile_string
#define formal_argument(id)
RUBY_SYMBOL_EXPORT_BEGIN void * alloca()
#define dispatch_heredoc_end()
VALUE rb_str_new_frozen(VALUE)
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
#define YY_STACK_PRINT(Bottom, Top)
#define NEW_CALL(r, m, a)
#define YYSTACK_RELOCATE(Stack)
rb_encoding * rb_ascii8bit_encoding(void)
#define lambda_beginning_p()
#define new_gvar(id, column)
int rb_enc_find_index(const char *name)
#define RCOMPLEX_SET_REAL(cmp, r)
#define CONST_ID(var, str)
#define call_uni_op(recv, id, column)
RUBY_EXTERN VALUE rb_stdout
VALUE rb_str_intern(VALUE)
#define rb_intern_const(str)
#define new_begin(b, column)
#define mixed_error(enc1, enc2)
#define NEW_MATCH2(n1, n2)
NODE * rb_parser_compile_cstr(VALUE vparser, const char *f, const char *s, int len, int line)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
#define YY_LOCATION_PRINT(File, Loc)
#define shadowing_lvar(name)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
#define reg_fragment_check(str, options)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
#define nd_set_line(n, l)
VALUE rb_vsprintf(const char *, va_list)
NODE * rb_compile_file(const char *f, VALUE file, int start)
VALUE rb_parser_get_yydebug(VALUE self)
#define NEW_LASGN(v, val)
#define evstr2dstr(n, column)
#define ENCODING_SET(obj, i)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chomp, int split)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
#define new_masgn(l, r, column)
int rb_memcicmp(const void *, const void *, long)
#define new_lvar(id, column)
NODE * rb_parser_compile_string(VALUE vparser, const char *f, VALUE s, int line)
#define rb_enc_prev_char(s, p, e, enc)
#define dsym_node(node, column)
#define new_zarray(column)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
VALUE rb_attr_get(VALUE, ID)
#define tokaddmbc(c, enc)
#define NEW_CDECL(v, val, path)
#define NEW_OPCALL(r, m, a)
#define NEW_DEFS(r, i, a, d)
#define backref_assign_error(n, a, column)
#define new_kw_arg(k, column)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
rb_encoding * rb_enc_from_index(int index)
#define IS_AFTER_OPERATOR()
VALUE rb_str_new(const char *, long)
#define rb_warn2(fmt, a, b)