diff options
author | Marc Espie <espie@cvs.openbsd.org> | 1999-06-17 21:12:58 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 1999-06-17 21:12:58 +0000 |
commit | 081e30a13c9397b8d8c3dac5fc55196eb985ff67 (patch) | |
tree | a7cb46c17651fab78a328fbb09de0b1e1c073487 /gnu/egcs/gcc/java | |
parent | 94facf520a7352fcca192b8a9e4e3edf677768ca (diff) |
Update to 990608 snapshot.
Highlights:
- official fix for an alpha bug,
- cpp changes semantic slightly,
- valarray in libstdc++.
Diffstat (limited to 'gnu/egcs/gcc/java')
-rw-r--r-- | gnu/egcs/gcc/java/ChangeLog | 140 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/Make-lang.in | 6 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/class.c | 4 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/decl.c | 2 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/except.c | 158 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/expr.c | 43 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/java-except.h | 9 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/jvspec.c | 10 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/lex.c | 4 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/parse-scan.c | 6 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/parse.c | 4071 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/parse.y | 84 | ||||
-rw-r--r-- | gnu/egcs/gcc/java/xref.c | 2 |
13 files changed, 2424 insertions, 2115 deletions
diff --git a/gnu/egcs/gcc/java/ChangeLog b/gnu/egcs/gcc/java/ChangeLog index 61ccfe6b3f9..c396a8003ec 100644 --- a/gnu/egcs/gcc/java/ChangeLog +++ b/gnu/egcs/gcc/java/ChangeLog @@ -1,3 +1,133 @@ +Sat Jun 5 11:46:59 1999 Anthony Green <green@cygnus.com> + + * Make-lang.in (gcjh): More parallel build fixes. + +1999-06-03 Mike Stump <mrs@wrs.com> + + * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds. + +Wed Jun 2 10:44:38 1999 Anthony Green <green@cygnus.com> + + * except.c (link_handler): Chain exception handlers in order. + +Wed Jun 2 10:41:24 1999 Anthony Green <green@cygnus.com> + + * expr.c (expand_byte_code): Fill unreachable bytecode regions + with nops and process as usual in order to always set correct EH + ranges. Emit detailed warnings about unreachable bytecodes. + +Wed Jun 2 10:35:13 1999 Anthony Green <green@cygnus.com> + + * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as + constant. + +Fri May 28 18:22:45 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * parse.y (lookup_field_wrapper): Unified returned value to NULL + or the searched field decl. + +Fri May 28 11:34:05 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * parse.y (fold_constant_for_init): Convert numerical constant + values to the type of the assigned field. + +Thu May 27 19:57:40 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * expr.c (lookup_field): Relaxed the test on class loading error + detection. + * parse.y (fold_constant_for_init): Enabeled old code. + +Wed May 26 18:06:02 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast' + decide the validity of the cast of a java.lang.Cloneable reference + to an array. + (patch_conditional_expr): Fixed first argument passed to + binary_numeric_promotion. + +Wed May 26 15:33:06 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * parse.y (qualify_ambiguous_name): Take into account that a + CONVERT_EXPR might specify a type as a WFL. + +Tue May 25 15:06:13 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * parse.y (patch_assignment): Save the rhs before using it as an + argument to _Jv_CheckArrayStore. + +Tue May 25 11:23:59 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * lex.c (java_parse_doc_section): Fixed `tag' buffer size. + +Mon May 24 13:26:00 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * lex.c (java_lex): Accepts `+' or `-' after the beginning of a + floating point litteral only when the exponent indicator has been + parsed. + +Sat May 22 13:54:41 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * parse.y (formal_parameter:): Construct argument tree list + element even if a yet unsupported final parameter was encountered. + +Tue May 18 00:28:58 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * parse.y (finish_method_declaration): Issue errors for native or + abstract methods declared with a method body, as well as for non + native or non abstract methods with no method body. + +1999-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * class.c (build_utf8_ref): Initialize variable `field'. + + * decl.c (init_decl_processing): Initialize variable `field'. + + * expr.c (build_known_method_ref): Mark parameters `method_type', + `method_signature' and `arg_list' with ATTRIBUTE_UNUSED. + (process_jvm_instruction): Likewise for parameter `length'. + + * jvspec.c (lang_specific_driver): Mark variables `saw_math', + `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with + ATTRIBUTE_UNUSED. + + * parse.y (maybe_generate_clinit): Remove unused variable + `has_non_primitive_fields'. + (find_in_imports_on_demand): Initialize variables `node_to_use' + and `cl'. + (patch_binop): Likewise for variable `prom_type'. + (patch_unaryop): Likewise for variable `prom_type'. + + * verify.c (verify_jvm_instructions): Likewise for variable `last'. + + * xref.c (xref_table): Add missing initializer. + +1999-05-14 Tom Tromey <tromey@cygnus.com> + + * java-except.h (struct eh_range): Removed unused `next' member. + * verify.c (verify_jvm_instructions): Call check_nested_ranges + after adding all exception handlers. Sort exception ranges in + order of start PC. + (struct pc_index): New structure. + (start_pc_cmp): New function. + * except.c (add_handler): Return `void'. Don't call link_handler; + instead construct an ordinary linked list and do range + coalescing. + (check_nested_ranges): New function. + (link_handler): Changed interface to allow merging of eh_ranges. + Split overlapping ranges. Return `void'. + +Mon May 17 19:20:24 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * parse.y (constructor_block_end:): New rule, tagged <node>. + (constructor_body:): Use `constructor_block_end' instead of + `block_end'. + +Mon May 17 18:01:40 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> + + * parse.y (statement_nsi:): Pop `for' statement block. + (java_complete_lhs): Labeled blocks containing no statement are + marked as completing normally. + Fri May 14 12:31:08 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> * xref.c (xref_set_current_fp): New function, defined. @@ -43,13 +173,13 @@ Thu May 13 13:23:38 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> * xref.h (xref_get_data): New function, declared. (XREF_GET_DATA): Use xref_get_data. -1999-05-13 Kaveh R. Ghazi <ghazi@snafu.rutgers.edu> +1999-05-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * gjavah.c (print_include): Cast the result of `strlen' to int when comparing against a signed value. (add_namelet): Likewise. -1999-05-12 Kaveh R. Ghazi <ghazi@snafu.rutgers.edu> +1999-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * expr.c (expand_invoke): Mark parameter `nargs' with ATTRIBUTE_UNUSED. @@ -1545,7 +1675,7 @@ Sat Dec 12 20:13:19 1998 Per Bothner <bothner@cygnus.com> * parse.y (java_complete_expand_methods): Call write_classfile here, and not in java_expand_classes (which only gets first class). -Sat Dec 12 19:46:04 1998 Alexandre Petit-Bianco <apbianco@sendai.cygnus.com> +Sat Dec 12 19:46:04 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (<type_declaration>): Do maybe_generate_clinit last. (register_fields): If a static fields has an initializer, just @@ -1582,7 +1712,7 @@ Sat Dec 12 19:21:11 1998 Per Bothner <bothner@cygnus.com> * class.c (make_class_data): Renamed dtable -> vtable, and dtable_method_count -> vtable_method_count. -Thu Dec 10 20:00:54 1998 Alexandre Petit-Bianco <apbianco@sendai.cygnus.com> +Thu Dec 10 20:00:54 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> * decl.c (long_zero_node, float_zero_node, double_zero_node): New global variables, initialized. @@ -3333,7 +3463,7 @@ Thu Sep 3 18:04:09 1998 Per Bothner <bothner@cygnus.com> * gjavah.c: Support new -prepend -add -append flags. (print_method_info): Method is not virtual if class is final. -Thu Sep 3 12:03:53 1998 Alexandre Petit-Bianco <apbianco@sendai.cygnus.com> +Thu Sep 3 12:03:53 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> * jv-scan.c: Fixed copyright assignment. * keyword.gperf: Likewise. diff --git a/gnu/egcs/gcc/java/Make-lang.in b/gnu/egcs/gcc/java/Make-lang.in index 557001bcc94..5c9bf1349c2 100644 --- a/gnu/egcs/gcc/java/Make-lang.in +++ b/gnu/egcs/gcc/java/Make-lang.in @@ -97,7 +97,7 @@ $(GCJ)-cross$(exeext): $(GCJ)$(exeext) # Dependencies here must be kept in sync with dependencies in Makefile.in. jvgenmain$(exeext): $(srcdir)/java/jvgenmain.c $(srcdir)/java/mangle.c \ - $(OBSTACK) $(LIBDEPS) + $(OBSTACK) $(LIBDEPS) $(TREE_H) cd java && $(MAKE) $(FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) ../jvgenmain$(exeext) # This must be kept in sync with dependencies in Makefile.in. @@ -107,7 +107,7 @@ GCJH_SOURCES = $(srcdir)/java/gjavah.c $(srcdir)/java/jcf-io.c \ $(srcdir)/java/javaop.def $(srcdir)/java/jcf-depend.c \ $(srcdir)/java/jcf-path.c -gcjh$(exeext): $(GCJH_SOURCES) $(LIBDEPS) +gcjh$(exeext): $(GCJH_SOURCES) $(LIBDEPS) $(TREE_H) cd java && $(MAKE) $(FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) ../gcjh$(exeext) # This must be kept in sync with dependencies in Makefile.in. @@ -119,7 +119,7 @@ jv-scan$(exeext): $(JV_SCAN_SOURCES) stamp-objlist $(LIBDEPS) # This must be kept in sync with dependencies in Makefile.in. JCF_DUMP_SOURCES = $(srcdir)/java/jcf-dump.c $(srcdir)/java/jcf-io.c \ - $(srcdir)/java/zextract.c $(srcdir)/../libiberty/memmove.c + $(srcdir)/java/zextract.c $(srcdir)/../libiberty/memmove.c $(TREE_H) jcf-dump$(exeext): $(JCF_DUMP_SOURCES) cd java && $(MAKE) $(FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) ../jcf-dump$(exeext) diff --git a/gnu/egcs/gcc/java/class.c b/gnu/egcs/gcc/java/class.c index 2e00e74eb47..8217a950768 100644 --- a/gnu/egcs/gcc/java/class.c +++ b/gnu/egcs/gcc/java/class.c @@ -559,7 +559,7 @@ build_utf8_ref (name) int name_len = IDENTIFIER_LENGTH(name); char buf[60]; char *buf_ptr; - tree ctype, field, str_type, cinit, string; + tree ctype, field = NULL_TREE, str_type, cinit, string; static int utf8_count = 0; int name_hash; tree ref = IDENTIFIER_UTF8_REF (name); @@ -583,6 +583,7 @@ build_utf8_ref (name) TREE_TYPE (string) = str_type; PUSH_FIELD_VALUE (cinit, "data", string); FINISH_RECORD_CONSTRUCTOR (cinit); + TREE_CONSTANT (cinit) = 1; /* Build a unique identifier based on buf. */ sprintf(buf, "_Utf%d", ++utf8_count); @@ -608,6 +609,7 @@ build_utf8_ref (name) DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 1; TREE_READONLY (decl) = 1; + TREE_THIS_VOLATILE (decl) = 0; DECL_INITIAL (decl) = cinit; TREE_CHAIN (decl) = utf8_decl_list; layout_decl (decl, 0); diff --git a/gnu/egcs/gcc/java/decl.c b/gnu/egcs/gcc/java/decl.c index 625ba8a5bea..de03e5fd007 100644 --- a/gnu/egcs/gcc/java/decl.c +++ b/gnu/egcs/gcc/java/decl.c @@ -432,7 +432,7 @@ void init_decl_processing () { register tree endlink; - tree field; + tree field = NULL_TREE; tree t; current_function_decl = NULL; diff --git a/gnu/egcs/gcc/java/except.c b/gnu/egcs/gcc/java/except.c index 8fbf0b60e06..0e6eb398f8f 100644 --- a/gnu/egcs/gcc/java/except.c +++ b/gnu/egcs/gcc/java/except.c @@ -108,51 +108,102 @@ find_handler (pc) return find_handler_in_range (pc, h, cache_next_child); } -#if 0 -first_child; -next_sibling; -outer; -#endif +/* Recursive helper routine for check_nested_ranges. */ -/* Recursive helper routine for add_handler. */ - -static int -link_handler (start_pc, end_pc, handler, type, outer) - int start_pc, end_pc; - tree handler; - tree type; - struct eh_range *outer; +static void +link_handler (range, outer) + struct eh_range *range, *outer; { struct eh_range **ptr; - if (start_pc < outer->start_pc || end_pc > outer->end_pc) - return 0; /* invalid or non-nested exception range */ - if (start_pc == outer->start_pc && end_pc == outer->end_pc) + + if (range->start_pc == outer->start_pc && range->end_pc == outer->end_pc) + { + outer->handlers = chainon (range->handlers, outer->handlers); + return; + } + + /* If the new range completely encloses the `outer' range, then insert it + between the outer range and its parent. */ + if (range->start_pc <= outer->start_pc && range->end_pc >= outer->end_pc) + { + range->outer = outer->outer; + range->next_sibling = NULL; + range->first_child = outer; + outer->outer->first_child = range; + outer->outer = range; + return; + } + + /* Handle overlapping ranges by splitting the new range. */ + if (range->start_pc < outer->start_pc || range->end_pc > outer->end_pc) { - outer->handlers = tree_cons (type, handler, outer->handlers); - return 1; + struct eh_range *h + = (struct eh_range *) oballoc (sizeof (struct eh_range)); + if (range->start_pc < outer->start_pc) + { + h->start_pc = range->start_pc; + h->end_pc = outer->start_pc; + range->start_pc = outer->start_pc; + } + else + { + h->start_pc = outer->end_pc; + h->end_pc = range->end_pc; + range->end_pc = outer->end_pc; + } + h->first_child = NULL; + h->outer = NULL; + h->handlers = build_tree_list (TREE_PURPOSE (range->handlers), + TREE_VALUE (range->handlers)); + h->next_sibling = NULL; + /* Restart both from the top to avoid having to make this + function smart about reentrancy. */ + link_handler (h, &whole_range); + link_handler (range, &whole_range); + return; } + ptr = &outer->first_child; for (;; ptr = &(*ptr)->next_sibling) { - if (*ptr == NULL || end_pc <= (*ptr)->start_pc) + if (*ptr == NULL || range->end_pc <= (*ptr)->start_pc) { - struct eh_range *h = (struct eh_range *) - oballoc (sizeof (struct eh_range)); - h->start_pc = start_pc; - h->end_pc = end_pc; - h->next_sibling = *ptr; - h->first_child = NULL; - h->outer = outer; - h->handlers = build_tree_list (type, handler); - *ptr = h; - return 1; + range->next_sibling = *ptr; + range->first_child = NULL; + range->outer = outer; + *ptr = range; + return; + } + else if (range->start_pc < (*ptr)->end_pc) + { + link_handler (range, *ptr); + return; } - else if (start_pc < (*ptr)->end_pc) - return link_handler (start_pc, end_pc, handler, type, *ptr); /* end_pc > (*ptr)->start_pc && start_pc >= (*ptr)->end_pc. */ } } +/* The first pass of exception range processing (calling add_handler) + constructs a linked list of exception ranges. We turn this into + the data structure expected by the rest of the code, and also + ensure that exception ranges are properly nested. */ + +void +handle_nested_ranges () +{ + struct eh_range *ptr, *next; + + ptr = whole_range.first_child; + whole_range.first_child = NULL; + for (; ptr; ptr = next) + { + next = ptr->next_sibling; + ptr->next_sibling = NULL; + link_handler (ptr, &whole_range); + } +} + + /* Called to re-initialize the exception machinery for a new method. */ void @@ -174,13 +225,54 @@ java_set_exception_lang_code () set_exception_version_code (1); } -int +/* Add an exception range. If we already have an exception range + which has the same handler and label, and the new range overlaps + that one, then we simply extend the existing range. Some bytecode + obfuscators generate seemingly nonoverlapping exception ranges + which, when coalesced, do in fact nest correctly. + + This constructs an ordinary linked list which check_nested_ranges() + later turns into the data structure we actually want. + + We expect the input to come in order of increasing START_PC. This + function doesn't attempt to detect the case where two previously + added disjoint ranges could be coalesced by a new range; that is + what the sorting counteracts. */ + +void add_handler (start_pc, end_pc, handler, type) int start_pc, end_pc; tree handler; tree type; { - return link_handler (start_pc, end_pc, handler, type, &whole_range); + struct eh_range *ptr, *prev = NULL, *h; + + for (ptr = whole_range.first_child; ptr; ptr = ptr->next_sibling) + { + if (start_pc >= ptr->start_pc + && start_pc <= ptr->end_pc + && TREE_PURPOSE (ptr->handlers) == type + && TREE_VALUE (ptr->handlers) == handler) + { + /* Already found an overlapping range, so coalesce. */ + ptr->end_pc = MAX (ptr->end_pc, end_pc); + return; + } + prev = ptr; + } + + h = (struct eh_range *) oballoc (sizeof (struct eh_range)); + h->start_pc = start_pc; + h->end_pc = end_pc; + h->first_child = NULL; + h->outer = NULL; + h->handlers = build_tree_list (type, handler); + h->next_sibling = NULL; + + if (prev == NULL) + whole_range.first_child = h; + else + prev->next_sibling = h; } diff --git a/gnu/egcs/gcc/java/expr.c b/gnu/egcs/gcc/java/expr.c index d975c42c5ed..9beb724ea37 100644 --- a/gnu/egcs/gcc/java/expr.c +++ b/gnu/egcs/gcc/java/expr.c @@ -1162,7 +1162,7 @@ lookup_field (typep, name) if (CLASS_P (*typep) && !CLASS_LOADED_P (*typep)) { load_class (*typep, 1); - if (TREE_CODE (TYPE_SIZE (*typep)) == ERROR_MARK) + if (!TYPE_SIZE (*typep) || TREE_CODE (TYPE_SIZE (*typep)) == ERROR_MARK) return error_mark_node; } do @@ -1431,7 +1431,8 @@ tree dtable_ident = NULL_TREE; tree build_known_method_ref (method, method_type, self_type, method_signature, arg_list) - tree method, method_type, self_type, method_signature, arg_list; + tree method, method_type ATTRIBUTE_UNUSED, self_type, + method_signature ATTRIBUTE_UNUSED, arg_list ATTRIBUTE_UNUSED; { tree func; if (is_compiled_class (self_type)) @@ -1985,6 +1986,7 @@ expand_byte_code (jcf, method) int i; int saw_index; unsigned char *linenumber_pointer; + int dead_code_index = -1; #undef RET /* Defined by config/i386/i386.h */ #undef AND /* Causes problems with opcodes for iand and land. */ @@ -2163,15 +2165,29 @@ expand_byte_code (jcf, method) if (! (instruction_bits [PC] & BCODE_VERIFIED)) { - /* never executed - skip */ - warning ("Some bytecode operations (starting at pc %d) can never be executed", PC); - while (PC < length - && ! (instruction_bits [PC] & BCODE_VERIFIED)) - PC++; - continue; + if (dead_code_index == -1) + { + /* This is the start of a region of unreachable bytecodes. + They still need to be processed in order for EH ranges + to get handled correctly. However, we can simply + replace these bytecodes with nops. */ + dead_code_index = PC; + } + + /* Turn this bytecode into a nop. */ + byte_ops[PC] = 0x0; + } + else + { + if (dead_code_index != -1) + { + /* We've just reached the end of a region of dead code. */ + warning ("Unreachable bytecode from %d to before %d.", + dead_code_index, PC); + dead_code_index = -1; + } } - /* Handle possible line number entry for this PC. This code handles out-of-order and multiple linenumbers per PC, @@ -2203,6 +2219,13 @@ expand_byte_code (jcf, method) maybe_poplevels (PC); maybe_end_try (PC); } /* for */ + + if (dead_code_index != -1) + { + /* We've just reached the end of a region of dead code. */ + warning ("Unreachable bytecode from %d to the end of the method.", + dead_code_index); + } } static void @@ -2230,7 +2253,7 @@ int process_jvm_instruction (PC, byte_ops, length) int PC; unsigned char* byte_ops; - long length; + long length ATTRIBUTE_UNUSED; { const char *opname; /* Temporary ??? */ int oldpc = PC; /* PC at instruction start. */ diff --git a/gnu/egcs/gcc/java/java-except.h b/gnu/egcs/gcc/java/java-except.h index cdc123d744a..07b3feb3046 100644 --- a/gnu/egcs/gcc/java/java-except.h +++ b/gnu/egcs/gcc/java/java-except.h @@ -47,11 +47,6 @@ struct eh_range /* The next child of outer, in address order. */ struct eh_range *next_sibling; - -#if 0 - /* Next handler, sorted by ascending start_pc then descending end_pc. */ - tree next; -#endif }; /* A dummy range that represents the entire method. */ @@ -69,6 +64,8 @@ extern void maybe_start_try PROTO ((int)); extern void maybe_end_try PROTO ((int)); -extern int add_handler PROTO ((int, int, tree, tree)); +extern void add_handler PROTO ((int, int, tree, tree)); + +extern void handle_nested_ranges PROTO ((void)); extern void expand_resume_after_catch PROTO ((void)); diff --git a/gnu/egcs/gcc/java/jvspec.c b/gnu/egcs/gcc/java/jvspec.c index 95330da332d..815ff3fd8bc 100644 --- a/gnu/egcs/gcc/java/jvspec.c +++ b/gnu/egcs/gcc/java/jvspec.c @@ -145,19 +145,19 @@ lang_specific_driver (fn, in_argc, in_argv, in_added_libraries) int saw_speclang = 0; /* "-lm" or "-lmath" if it appears on the command line. */ - char *saw_math = 0; + char *saw_math ATTRIBUTE_UNUSED = 0; /* "-lc" if it appears on the command line. */ - char *saw_libc = 0; + char *saw_libc ATTRIBUTE_UNUSED = 0; /* "-lgcjgc" if it appears on the command line. */ - char *saw_gc = 0; + char *saw_gc ATTRIBUTE_UNUSED = 0; /* Saw `-l' option for the thread library. */ - char *saw_threadlib = 0; + char *saw_threadlib ATTRIBUTE_UNUSED = 0; /* Saw `-lgcj' on command line. */ - int saw_libgcj = 0; + int saw_libgcj ATTRIBUTE_UNUSED = 0; /* Saw -C or -o option, respectively. */ int saw_C = 0; diff --git a/gnu/egcs/gcc/java/lex.c b/gnu/egcs/gcc/java/lex.c index 18d873fb135..fbaa23d80f0 100644 --- a/gnu/egcs/gcc/java/lex.c +++ b/gnu/egcs/gcc/java/lex.c @@ -427,7 +427,7 @@ java_parse_doc_section (c) /* We're parsing @deprecated */ if (valid_tag && (c == '@')) { - char tag [10]; + char tag [11]; int tag_index = 0; while (tag_index < 10 && c != UEOF && c != ' ' && c != '\n') @@ -741,7 +741,7 @@ java_lex (java_lval) stage = 4; /* So we fall through */ } - if ((c=='-' || c =='+') && stage < 3) + if ((c=='-' || c =='+') && stage == 2) { stage = 3; literal_token [literal_index++] = c; diff --git a/gnu/egcs/gcc/java/parse-scan.c b/gnu/egcs/gcc/java/parse-scan.c index fcc19aa63cc..6340ee8795f 100644 --- a/gnu/egcs/gcc/java/parse-scan.c +++ b/gnu/egcs/gcc/java/parse-scan.c @@ -1375,7 +1375,7 @@ static const short yycheck[] = { 3, #define YYPURE 1 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/x1/java/install/share/bison.simple" +#line 3 "/usr/cygnus/gnupro-98r2/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -1568,7 +1568,7 @@ __yy_memcpy (char *to, char *from, int count) #endif #endif -#line 196 "/x1/java/install/share/bison.simple" +#line 196 "/usr/cygnus/gnupro-98r2/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. @@ -2156,7 +2156,7 @@ case 337: break;} } /* the action file gets copied in in place of this dollarsign */ -#line 498 "/x1/java/install/share/bison.simple" +#line 498 "/usr/cygnus/gnupro-98r2/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; diff --git a/gnu/egcs/gcc/java/parse.c b/gnu/egcs/gcc/java/parse.c index 92ed988cf24..53fc6dc4963 100644 --- a/gnu/egcs/gcc/java/parse.c +++ b/gnu/egcs/gcc/java/parse.c @@ -402,11 +402,11 @@ typedef union { -#define YYFINAL 775 +#define YYFINAL 777 #define YYFLAG -32768 #define YYNTBASE 110 -#define YYTRANSLATE(x) ((unsigned)(x) <= 364 ? yytranslate[x] : 265) +#define YYTRANSLATE(x) ((unsigned)(x) <= 364 ? yytranslate[x] : 266) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -465,41 +465,42 @@ static const short yyprhs[] = { 0, 363, 365, 369, 373, 376, 380, 383, 387, 388, 391, 394, 396, 400, 404, 406, 409, 411, 414, 418, 420, 421, 425, 428, 432, 436, 441, 444, 448, 452, 457, - 462, 468, 476, 483, 485, 487, 488, 493, 494, 500, - 501, 507, 508, 515, 519, 524, 527, 531, 534, 538, - 541, 545, 547, 550, 552, 554, 556, 558, 560, 563, - 566, 569, 573, 578, 580, 584, 588, 591, 595, 597, - 599, 601, 604, 606, 608, 610, 613, 616, 620, 622, - 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, - 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, - 664, 666, 669, 672, 675, 678, 681, 684, 687, 690, - 694, 699, 704, 710, 715, 721, 728, 736, 743, 745, - 747, 749, 751, 753, 755, 757, 763, 766, 770, 775, - 783, 791, 792, 796, 801, 804, 808, 814, 817, 821, - 825, 830, 832, 835, 838, 840, 843, 847, 850, 853, - 857, 860, 865, 868, 871, 875, 880, 883, 885, 893, - 901, 908, 912, 918, 923, 931, 938, 941, 944, 948, - 951, 952, 954, 956, 959, 960, 962, 964, 968, 972, - 975, 979, 982, 986, 989, 993, 996, 1000, 1003, 1007, - 1010, 1014, 1018, 1021, 1025, 1031, 1037, 1040, 1045, 1049, - 1051, 1055, 1059, 1064, 1067, 1069, 1072, 1075, 1080, 1083, - 1087, 1092, 1095, 1098, 1100, 1102, 1104, 1106, 1110, 1112, - 1114, 1116, 1118, 1122, 1126, 1130, 1134, 1138, 1142, 1146, - 1150, 1156, 1161, 1168, 1174, 1179, 1185, 1191, 1198, 1202, - 1206, 1211, 1217, 1220, 1224, 1228, 1232, 1234, 1238, 1242, - 1246, 1250, 1255, 1260, 1265, 1270, 1274, 1278, 1280, 1283, - 1287, 1291, 1294, 1297, 1301, 1305, 1309, 1313, 1316, 1320, - 1325, 1331, 1338, 1344, 1351, 1356, 1361, 1366, 1371, 1375, - 1380, 1384, 1389, 1391, 1393, 1395, 1397, 1400, 1403, 1405, - 1407, 1410, 1413, 1415, 1418, 1421, 1424, 1427, 1430, 1433, - 1435, 1438, 1441, 1443, 1446, 1449, 1455, 1460, 1465, 1471, - 1476, 1479, 1485, 1490, 1496, 1498, 1502, 1506, 1510, 1514, - 1518, 1522, 1524, 1528, 1532, 1536, 1540, 1542, 1546, 1550, - 1554, 1558, 1562, 1566, 1568, 1572, 1576, 1580, 1584, 1588, - 1592, 1596, 1600, 1604, 1608, 1610, 1614, 1618, 1622, 1626, - 1628, 1632, 1636, 1638, 1642, 1646, 1648, 1652, 1656, 1658, - 1662, 1666, 1668, 1672, 1676, 1678, 1684, 1689, 1693, 1699, - 1701, 1703, 1707, 1711, 1713, 1715, 1717, 1719, 1721, 1723 + 459, 462, 467, 473, 481, 488, 490, 492, 493, 498, + 499, 505, 506, 512, 513, 520, 524, 529, 532, 536, + 539, 543, 546, 550, 552, 555, 557, 559, 561, 563, + 565, 568, 571, 574, 578, 583, 585, 589, 593, 596, + 600, 602, 604, 606, 609, 611, 613, 615, 618, 621, + 625, 627, 629, 631, 633, 635, 637, 639, 641, 643, + 645, 647, 649, 651, 653, 655, 657, 659, 661, 663, + 665, 667, 669, 671, 674, 677, 680, 683, 686, 689, + 692, 695, 699, 704, 709, 715, 720, 726, 733, 741, + 748, 750, 752, 754, 756, 758, 760, 762, 768, 771, + 775, 780, 788, 796, 797, 801, 806, 809, 813, 819, + 822, 826, 830, 835, 837, 840, 843, 845, 848, 852, + 855, 858, 862, 865, 870, 873, 876, 880, 885, 888, + 890, 898, 906, 913, 917, 923, 928, 936, 943, 946, + 949, 953, 956, 957, 959, 961, 964, 965, 967, 969, + 973, 977, 980, 984, 987, 991, 994, 998, 1001, 1005, + 1008, 1012, 1015, 1019, 1023, 1026, 1030, 1036, 1042, 1045, + 1050, 1054, 1056, 1060, 1064, 1069, 1072, 1074, 1077, 1080, + 1085, 1088, 1092, 1097, 1100, 1103, 1105, 1107, 1109, 1111, + 1115, 1117, 1119, 1121, 1123, 1127, 1131, 1135, 1139, 1143, + 1147, 1151, 1155, 1161, 1166, 1173, 1179, 1184, 1190, 1196, + 1203, 1207, 1211, 1216, 1222, 1225, 1229, 1233, 1237, 1239, + 1243, 1247, 1251, 1255, 1260, 1265, 1270, 1275, 1279, 1283, + 1285, 1288, 1292, 1296, 1299, 1302, 1306, 1310, 1314, 1318, + 1321, 1325, 1330, 1336, 1343, 1349, 1356, 1361, 1366, 1371, + 1376, 1380, 1385, 1389, 1394, 1396, 1398, 1400, 1402, 1405, + 1408, 1410, 1412, 1415, 1418, 1420, 1423, 1426, 1429, 1432, + 1435, 1438, 1440, 1443, 1446, 1448, 1451, 1454, 1460, 1465, + 1470, 1476, 1481, 1484, 1490, 1495, 1501, 1503, 1507, 1511, + 1515, 1519, 1523, 1527, 1529, 1533, 1537, 1541, 1545, 1547, + 1551, 1555, 1559, 1563, 1567, 1571, 1573, 1577, 1581, 1585, + 1589, 1593, 1597, 1601, 1605, 1609, 1613, 1615, 1619, 1623, + 1627, 1631, 1633, 1637, 1641, 1643, 1647, 1651, 1653, 1657, + 1661, 1663, 1667, 1671, 1673, 1677, 1681, 1683, 1689, 1694, + 1698, 1704, 1706, 1708, 1712, 1716, 1718, 1720, 1722, 1724, + 1726, 1728 }; static const short yyrhs[] = { 123, @@ -517,7 +518,7 @@ static const short yyrhs[] = { 123, 55, 119, 99, 0, 55, 1, 0, 55, 119, 1, 0, 55, 119, 101, 5, 99, 0, 55, 119, 101, 1, 0, 55, 119, 101, 5, 1, 0, 132, 0, - 165, 0, 99, 0, 1, 0, 44, 0, 131, 44, + 166, 0, 99, 0, 1, 0, 44, 0, 131, 44, 0, 0, 131, 67, 122, 135, 136, 133, 138, 0, 0, 67, 122, 135, 136, 134, 138, 0, 131, 67, 1, 0, 67, 1, 0, 67, 122, 1, 0, 131, @@ -526,13 +527,13 @@ static const short yyrhs[] = { 123, 1, 0, 117, 0, 137, 100, 117, 0, 137, 100, 1, 0, 95, 96, 0, 95, 139, 96, 0, 140, 0, 139, 140, 0, 141, 0, 156, 0, 158, 0, - 178, 0, 142, 0, 142, 99, 0, 147, 0, 132, - 0, 165, 0, 112, 143, 99, 0, 131, 112, 143, + 179, 0, 142, 0, 142, 99, 0, 147, 0, 132, + 0, 166, 0, 112, 143, 99, 0, 131, 112, 143, 99, 0, 144, 0, 143, 100, 144, 0, 143, 100, 1, 0, 145, 0, 145, 92, 146, 0, 145, 92, 1, 0, 145, 92, 146, 1, 0, 122, 0, 145, 97, 98, 0, 122, 1, 0, 145, 97, 1, 0, - 145, 98, 1, 0, 263, 0, 176, 0, 0, 149, + 145, 98, 1, 0, 264, 0, 177, 0, 0, 149, 148, 155, 0, 149, 1, 0, 112, 150, 153, 0, 59, 150, 153, 0, 131, 112, 150, 153, 0, 131, 59, 150, 153, 0, 112, 1, 0, 131, 112, 1, @@ -543,139 +544,139 @@ static const short yyrhs[] = { 123, 1, 0, 112, 145, 0, 131, 112, 145, 0, 112, 1, 0, 131, 112, 1, 0, 0, 53, 154, 0, 53, 1, 0, 116, 0, 154, 100, 116, 0, 154, - 100, 1, 0, 178, 0, 178, 99, 0, 99, 0, - 157, 178, 0, 157, 178, 99, 0, 44, 0, 0, + 100, 1, 0, 179, 0, 179, 99, 0, 99, 0, + 157, 179, 0, 157, 179, 99, 0, 44, 0, 0, 160, 159, 162, 0, 161, 153, 0, 131, 161, 153, 0, 120, 93, 94, 0, 120, 93, 151, 94, 0, - 179, 180, 0, 179, 163, 180, 0, 179, 181, 180, - 0, 179, 163, 181, 180, 0, 164, 93, 94, 99, - 0, 164, 93, 232, 94, 99, 0, 119, 101, 65, - 93, 232, 94, 99, 0, 119, 101, 65, 93, 94, - 99, 0, 76, 0, 65, 0, 0, 61, 122, 166, - 171, 0, 0, 131, 61, 122, 167, 171, 0, 0, - 61, 122, 170, 168, 171, 0, 0, 131, 61, 122, - 170, 169, 171, 0, 61, 122, 1, 0, 131, 61, - 122, 1, 0, 63, 117, 0, 170, 100, 117, 0, - 63, 1, 0, 170, 100, 1, 0, 95, 96, 0, - 95, 172, 96, 0, 173, 0, 172, 173, 0, 174, - 0, 175, 0, 132, 0, 165, 0, 142, 0, 149, - 99, 0, 149, 1, 0, 95, 96, 0, 95, 177, - 96, 0, 95, 177, 100, 96, 0, 146, 0, 177, - 100, 146, 0, 177, 100, 1, 0, 95, 96, 0, - 179, 181, 180, 0, 95, 0, 96, 0, 182, 0, - 181, 182, 0, 183, 0, 185, 0, 132, 0, 184, - 99, 0, 112, 143, 0, 131, 112, 143, 0, 187, - 0, 190, 0, 194, 0, 195, 0, 206, 0, 210, - 0, 187, 0, 191, 0, 196, 0, 207, 0, 211, - 0, 178, 0, 188, 0, 192, 0, 197, 0, 209, - 0, 217, 0, 218, 0, 219, 0, 221, 0, 220, - 0, 223, 0, 99, 0, 122, 88, 0, 189, 185, - 0, 122, 1, 0, 189, 186, 0, 193, 99, 0, - 1, 99, 0, 1, 95, 0, 1, 96, 0, 164, - 93, 1, 0, 164, 93, 94, 1, 0, 164, 93, - 232, 1, 0, 164, 93, 232, 94, 1, 0, 119, - 101, 65, 1, 0, 119, 101, 65, 93, 1, 0, - 119, 101, 65, 93, 232, 1, 0, 119, 101, 65, - 93, 232, 94, 1, 0, 119, 101, 65, 93, 94, - 1, 0, 260, 0, 244, 0, 245, 0, 241, 0, - 242, 0, 238, 0, 230, 0, 48, 93, 263, 94, - 185, 0, 48, 1, 0, 48, 93, 1, 0, 48, - 93, 263, 1, 0, 48, 93, 263, 94, 186, 56, - 185, 0, 48, 93, 263, 94, 186, 56, 186, 0, - 0, 199, 198, 200, 0, 68, 93, 263, 94, 0, - 68, 1, 0, 68, 93, 1, 0, 68, 93, 263, - 94, 1, 0, 95, 96, 0, 95, 203, 96, 0, - 95, 201, 96, 0, 95, 201, 203, 96, 0, 202, - 0, 201, 202, 0, 203, 181, 0, 204, 0, 203, - 204, 0, 62, 264, 88, 0, 47, 88, 0, 62, - 1, 0, 62, 264, 1, 0, 47, 1, 0, 66, - 93, 263, 94, 0, 205, 185, 0, 66, 1, 0, - 66, 93, 1, 0, 66, 93, 263, 1, 0, 205, - 186, 0, 51, 0, 208, 185, 66, 93, 263, 94, - 99, 0, 213, 99, 263, 99, 215, 94, 185, 0, - 213, 99, 99, 215, 94, 185, 0, 213, 99, 1, - 0, 213, 99, 263, 99, 1, 0, 213, 99, 99, - 1, 0, 213, 99, 263, 99, 215, 94, 186, 0, - 213, 99, 99, 215, 94, 186, 0, 71, 93, 0, - 71, 1, 0, 71, 93, 1, 0, 212, 214, 0, - 0, 216, 0, 184, 0, 216, 1, 0, 0, 216, - 0, 193, 0, 216, 100, 193, 0, 216, 100, 1, - 0, 54, 99, 0, 54, 122, 99, 0, 54, 1, - 0, 54, 122, 1, 0, 73, 99, 0, 73, 122, - 99, 0, 73, 1, 0, 73, 122, 1, 0, 58, - 99, 0, 58, 263, 99, 0, 58, 1, 0, 58, - 263, 1, 0, 49, 263, 99, 0, 49, 1, 0, - 49, 263, 1, 0, 222, 93, 263, 94, 178, 0, - 222, 93, 263, 94, 1, 0, 222, 1, 0, 222, - 93, 1, 94, 0, 222, 93, 1, 0, 44, 0, - 70, 178, 224, 0, 70, 178, 227, 0, 70, 178, - 224, 227, 0, 70, 1, 0, 225, 0, 224, 225, - 0, 226, 178, 0, 60, 93, 152, 94, 0, 60, - 1, 0, 60, 93, 1, 0, 60, 93, 1, 94, - 0, 64, 178, 0, 64, 1, 0, 229, 0, 233, - 0, 111, 0, 76, 0, 93, 263, 94, 0, 230, - 0, 237, 0, 238, 0, 239, 0, 119, 101, 67, - 0, 113, 101, 67, 0, 59, 101, 67, 0, 119, - 101, 76, 0, 93, 263, 1, 0, 119, 101, 1, - 0, 113, 101, 1, 0, 59, 101, 1, 0, 72, - 116, 93, 232, 94, 0, 72, 116, 93, 94, 0, - 72, 116, 93, 232, 94, 138, 0, 72, 116, 93, - 94, 138, 0, 231, 122, 93, 94, 0, 231, 122, - 93, 94, 138, 0, 231, 122, 93, 232, 94, 0, - 231, 122, 93, 232, 94, 138, 0, 72, 1, 99, - 0, 72, 116, 1, 0, 72, 116, 93, 1, 0, - 72, 116, 93, 232, 1, 0, 231, 1, 0, 231, - 122, 1, 0, 119, 101, 72, 0, 228, 101, 72, - 0, 263, 0, 232, 100, 263, 0, 232, 100, 1, - 0, 72, 113, 234, 0, 72, 115, 234, 0, 72, - 113, 234, 236, 0, 72, 115, 234, 236, 0, 72, - 115, 236, 176, 0, 72, 113, 236, 176, 0, 72, - 1, 98, 0, 72, 1, 97, 0, 235, 0, 234, - 235, 0, 97, 263, 98, 0, 97, 263, 1, 0, - 97, 1, 0, 97, 98, 0, 236, 97, 98, 0, - 236, 97, 1, 0, 228, 101, 122, 0, 65, 101, - 122, 0, 65, 1, 0, 119, 93, 94, 0, 119, - 93, 232, 94, 0, 228, 101, 122, 93, 94, 0, - 228, 101, 122, 93, 232, 94, 0, 65, 101, 122, - 93, 94, 0, 65, 101, 122, 93, 232, 94, 0, - 65, 101, 1, 94, 0, 65, 101, 1, 101, 0, - 119, 97, 263, 98, 0, 229, 97, 263, 98, 0, - 119, 97, 1, 0, 119, 97, 263, 1, 0, 229, - 97, 1, 0, 229, 97, 263, 1, 0, 228, 0, - 119, 0, 241, 0, 242, 0, 240, 46, 0, 240, - 45, 0, 244, 0, 245, 0, 3, 243, 0, 4, - 243, 0, 246, 0, 3, 1, 0, 4, 1, 0, - 46, 243, 0, 46, 1, 0, 45, 243, 0, 45, - 1, 0, 240, 0, 89, 243, 0, 90, 243, 0, - 247, 0, 89, 1, 0, 90, 1, 0, 93, 113, - 236, 94, 243, 0, 93, 113, 94, 243, 0, 93, - 263, 94, 246, 0, 93, 119, 236, 94, 246, 0, - 93, 113, 97, 1, 0, 93, 1, 0, 93, 113, - 236, 94, 1, 0, 93, 113, 94, 1, 0, 93, - 119, 236, 94, 1, 0, 243, 0, 248, 5, 243, - 0, 248, 6, 243, 0, 248, 7, 243, 0, 248, - 5, 1, 0, 248, 6, 1, 0, 248, 7, 1, - 0, 248, 0, 249, 3, 248, 0, 249, 4, 248, - 0, 249, 3, 1, 0, 249, 4, 1, 0, 249, - 0, 250, 8, 249, 0, 250, 9, 249, 0, 250, - 10, 249, 0, 250, 8, 1, 0, 250, 9, 1, - 0, 250, 10, 1, 0, 250, 0, 251, 20, 250, - 0, 251, 18, 250, 0, 251, 21, 250, 0, 251, - 19, 250, 0, 251, 57, 114, 0, 251, 20, 1, - 0, 251, 18, 1, 0, 251, 21, 1, 0, 251, - 19, 1, 0, 251, 57, 1, 0, 251, 0, 252, - 16, 251, 0, 252, 17, 251, 0, 252, 16, 1, - 0, 252, 17, 1, 0, 252, 0, 253, 11, 252, - 0, 253, 11, 1, 0, 253, 0, 254, 12, 253, - 0, 254, 12, 1, 0, 254, 0, 255, 13, 254, - 0, 255, 13, 1, 0, 255, 0, 256, 14, 255, - 0, 256, 14, 1, 0, 256, 0, 257, 15, 256, - 0, 257, 15, 1, 0, 257, 0, 257, 87, 263, - 88, 258, 0, 257, 87, 88, 1, 0, 257, 87, - 1, 0, 257, 87, 263, 88, 1, 0, 258, 0, - 260, 0, 261, 262, 259, 0, 261, 262, 1, 0, - 119, 0, 237, 0, 239, 0, 91, 0, 92, 0, - 259, 0, 263, 0 + 180, 163, 0, 180, 164, 163, 0, 180, 182, 163, + 0, 180, 164, 182, 163, 0, 181, 0, 181, 99, + 0, 165, 93, 94, 99, 0, 165, 93, 233, 94, + 99, 0, 119, 101, 65, 93, 233, 94, 99, 0, + 119, 101, 65, 93, 94, 99, 0, 76, 0, 65, + 0, 0, 61, 122, 167, 172, 0, 0, 131, 61, + 122, 168, 172, 0, 0, 61, 122, 171, 169, 172, + 0, 0, 131, 61, 122, 171, 170, 172, 0, 61, + 122, 1, 0, 131, 61, 122, 1, 0, 63, 117, + 0, 171, 100, 117, 0, 63, 1, 0, 171, 100, + 1, 0, 95, 96, 0, 95, 173, 96, 0, 174, + 0, 173, 174, 0, 175, 0, 176, 0, 132, 0, + 166, 0, 142, 0, 149, 99, 0, 149, 1, 0, + 95, 96, 0, 95, 178, 96, 0, 95, 178, 100, + 96, 0, 146, 0, 178, 100, 146, 0, 178, 100, + 1, 0, 95, 96, 0, 180, 182, 181, 0, 95, + 0, 96, 0, 183, 0, 182, 183, 0, 184, 0, + 186, 0, 132, 0, 185, 99, 0, 112, 143, 0, + 131, 112, 143, 0, 188, 0, 191, 0, 195, 0, + 196, 0, 207, 0, 211, 0, 188, 0, 192, 0, + 197, 0, 208, 0, 212, 0, 179, 0, 189, 0, + 193, 0, 198, 0, 210, 0, 218, 0, 219, 0, + 220, 0, 222, 0, 221, 0, 224, 0, 99, 0, + 122, 88, 0, 190, 186, 0, 122, 1, 0, 190, + 187, 0, 194, 99, 0, 1, 99, 0, 1, 95, + 0, 1, 96, 0, 165, 93, 1, 0, 165, 93, + 94, 1, 0, 165, 93, 233, 1, 0, 165, 93, + 233, 94, 1, 0, 119, 101, 65, 1, 0, 119, + 101, 65, 93, 1, 0, 119, 101, 65, 93, 233, + 1, 0, 119, 101, 65, 93, 233, 94, 1, 0, + 119, 101, 65, 93, 94, 1, 0, 261, 0, 245, + 0, 246, 0, 242, 0, 243, 0, 239, 0, 231, + 0, 48, 93, 264, 94, 186, 0, 48, 1, 0, + 48, 93, 1, 0, 48, 93, 264, 1, 0, 48, + 93, 264, 94, 187, 56, 186, 0, 48, 93, 264, + 94, 187, 56, 187, 0, 0, 200, 199, 201, 0, + 68, 93, 264, 94, 0, 68, 1, 0, 68, 93, + 1, 0, 68, 93, 264, 94, 1, 0, 95, 96, + 0, 95, 204, 96, 0, 95, 202, 96, 0, 95, + 202, 204, 96, 0, 203, 0, 202, 203, 0, 204, + 182, 0, 205, 0, 204, 205, 0, 62, 265, 88, + 0, 47, 88, 0, 62, 1, 0, 62, 265, 1, + 0, 47, 1, 0, 66, 93, 264, 94, 0, 206, + 186, 0, 66, 1, 0, 66, 93, 1, 0, 66, + 93, 264, 1, 0, 206, 187, 0, 51, 0, 209, + 186, 66, 93, 264, 94, 99, 0, 214, 99, 264, + 99, 216, 94, 186, 0, 214, 99, 99, 216, 94, + 186, 0, 214, 99, 1, 0, 214, 99, 264, 99, + 1, 0, 214, 99, 99, 1, 0, 214, 99, 264, + 99, 216, 94, 187, 0, 214, 99, 99, 216, 94, + 187, 0, 71, 93, 0, 71, 1, 0, 71, 93, + 1, 0, 213, 215, 0, 0, 217, 0, 185, 0, + 217, 1, 0, 0, 217, 0, 194, 0, 217, 100, + 194, 0, 217, 100, 1, 0, 54, 99, 0, 54, + 122, 99, 0, 54, 1, 0, 54, 122, 1, 0, + 73, 99, 0, 73, 122, 99, 0, 73, 1, 0, + 73, 122, 1, 0, 58, 99, 0, 58, 264, 99, + 0, 58, 1, 0, 58, 264, 1, 0, 49, 264, + 99, 0, 49, 1, 0, 49, 264, 1, 0, 223, + 93, 264, 94, 179, 0, 223, 93, 264, 94, 1, + 0, 223, 1, 0, 223, 93, 1, 94, 0, 223, + 93, 1, 0, 44, 0, 70, 179, 225, 0, 70, + 179, 228, 0, 70, 179, 225, 228, 0, 70, 1, + 0, 226, 0, 225, 226, 0, 227, 179, 0, 60, + 93, 152, 94, 0, 60, 1, 0, 60, 93, 1, + 0, 60, 93, 1, 94, 0, 64, 179, 0, 64, + 1, 0, 230, 0, 234, 0, 111, 0, 76, 0, + 93, 264, 94, 0, 231, 0, 238, 0, 239, 0, + 240, 0, 119, 101, 67, 0, 113, 101, 67, 0, + 59, 101, 67, 0, 119, 101, 76, 0, 93, 264, + 1, 0, 119, 101, 1, 0, 113, 101, 1, 0, + 59, 101, 1, 0, 72, 116, 93, 233, 94, 0, + 72, 116, 93, 94, 0, 72, 116, 93, 233, 94, + 138, 0, 72, 116, 93, 94, 138, 0, 232, 122, + 93, 94, 0, 232, 122, 93, 94, 138, 0, 232, + 122, 93, 233, 94, 0, 232, 122, 93, 233, 94, + 138, 0, 72, 1, 99, 0, 72, 116, 1, 0, + 72, 116, 93, 1, 0, 72, 116, 93, 233, 1, + 0, 232, 1, 0, 232, 122, 1, 0, 119, 101, + 72, 0, 229, 101, 72, 0, 264, 0, 233, 100, + 264, 0, 233, 100, 1, 0, 72, 113, 235, 0, + 72, 115, 235, 0, 72, 113, 235, 237, 0, 72, + 115, 235, 237, 0, 72, 115, 237, 177, 0, 72, + 113, 237, 177, 0, 72, 1, 98, 0, 72, 1, + 97, 0, 236, 0, 235, 236, 0, 97, 264, 98, + 0, 97, 264, 1, 0, 97, 1, 0, 97, 98, + 0, 237, 97, 98, 0, 237, 97, 1, 0, 229, + 101, 122, 0, 65, 101, 122, 0, 65, 1, 0, + 119, 93, 94, 0, 119, 93, 233, 94, 0, 229, + 101, 122, 93, 94, 0, 229, 101, 122, 93, 233, + 94, 0, 65, 101, 122, 93, 94, 0, 65, 101, + 122, 93, 233, 94, 0, 65, 101, 1, 94, 0, + 65, 101, 1, 101, 0, 119, 97, 264, 98, 0, + 230, 97, 264, 98, 0, 119, 97, 1, 0, 119, + 97, 264, 1, 0, 230, 97, 1, 0, 230, 97, + 264, 1, 0, 229, 0, 119, 0, 242, 0, 243, + 0, 241, 46, 0, 241, 45, 0, 245, 0, 246, + 0, 3, 244, 0, 4, 244, 0, 247, 0, 3, + 1, 0, 4, 1, 0, 46, 244, 0, 46, 1, + 0, 45, 244, 0, 45, 1, 0, 241, 0, 89, + 244, 0, 90, 244, 0, 248, 0, 89, 1, 0, + 90, 1, 0, 93, 113, 237, 94, 244, 0, 93, + 113, 94, 244, 0, 93, 264, 94, 247, 0, 93, + 119, 237, 94, 247, 0, 93, 113, 97, 1, 0, + 93, 1, 0, 93, 113, 237, 94, 1, 0, 93, + 113, 94, 1, 0, 93, 119, 237, 94, 1, 0, + 244, 0, 249, 5, 244, 0, 249, 6, 244, 0, + 249, 7, 244, 0, 249, 5, 1, 0, 249, 6, + 1, 0, 249, 7, 1, 0, 249, 0, 250, 3, + 249, 0, 250, 4, 249, 0, 250, 3, 1, 0, + 250, 4, 1, 0, 250, 0, 251, 8, 250, 0, + 251, 9, 250, 0, 251, 10, 250, 0, 251, 8, + 1, 0, 251, 9, 1, 0, 251, 10, 1, 0, + 251, 0, 252, 20, 251, 0, 252, 18, 251, 0, + 252, 21, 251, 0, 252, 19, 251, 0, 252, 57, + 114, 0, 252, 20, 1, 0, 252, 18, 1, 0, + 252, 21, 1, 0, 252, 19, 1, 0, 252, 57, + 1, 0, 252, 0, 253, 16, 252, 0, 253, 17, + 252, 0, 253, 16, 1, 0, 253, 17, 1, 0, + 253, 0, 254, 11, 253, 0, 254, 11, 1, 0, + 254, 0, 255, 12, 254, 0, 255, 12, 1, 0, + 255, 0, 256, 13, 255, 0, 256, 13, 1, 0, + 256, 0, 257, 14, 256, 0, 257, 14, 1, 0, + 257, 0, 258, 15, 257, 0, 258, 15, 1, 0, + 258, 0, 258, 87, 264, 88, 259, 0, 258, 87, + 88, 1, 0, 258, 87, 1, 0, 258, 87, 264, + 88, 1, 0, 259, 0, 261, 0, 262, 263, 260, + 0, 262, 263, 1, 0, 119, 0, 238, 0, 240, + 0, 91, 0, 92, 0, 260, 0, 264, 0 }; #endif @@ -694,44 +695,45 @@ static const short yyrline[] = { 0, 796, 798, 802, 805, 812, 818, 826, 828, 830, 832, 834, 838, 840, 844, 851, 852, 856, 859, 861, 863, 865, 867, 869, 871, 873, 880, 883, 885, 894, 896, - 900, 905, 910, 914, 919, 921, 923, 930, 932, 934, - 938, 941, 943, 947, 949, 950, 955, 961, 968, 976, - 983, 986, 989, 993, 996, 1000, 1009, 1011, 1013, 1018, - 1025, 1033, 1035, 1039, 1046, 1056, 1060, 1063, 1066, 1069, - 1072, 1075, 1078, 1081, 1083, 1087, 1093, 1098, 1100, 1104, - 1107, 1111, 1113, 1116, 1118, 1119, 1121, 1125, 1129, 1135, - 1140, 1143, 1145, 1149, 1155, 1159, 1164, 1173, 1177, 1182, - 1194, 1196, 1199, 1201, 1203, 1207, 1211, 1214, 1218, 1220, - 1221, 1222, 1223, 1224, 1228, 1230, 1231, 1232, 1233, 1236, - 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, - 1250, 1255, 1266, 1269, 1273, 1280, 1290, 1296, 1302, 1308, - 1310, 1316, 1318, 1324, 1326, 1328, 1330, 1332, 1336, 1338, - 1339, 1340, 1341, 1342, 1343, 1346, 1352, 1354, 1356, 1360, - 1365, 1370, 1376, 1386, 1392, 1394, 1396, 1403, 1406, 1408, - 1410, 1414, 1416, 1419, 1423, 1425, 1428, 1435, 1441, 1443, - 1445, 1449, 1457, 1460, 1462, 1464, 1468, 1473, 1482, 1487, - 1490, 1497, 1499, 1501, 1505, 1508, 1517, 1524, 1526, 1530, - 1543, 1545, 1551, 1557, 1561, 1563, 1567, 1570, 1572, 1576, - 1579, 1581, 1583, 1587, 1590, 1592, 1594, 1598, 1601, 1603, - 1605, 1609, 1615, 1617, 1621, 1628, 1630, 1632, 1634, 1638, - 1646, 1649, 1651, 1656, 1660, 1662, 1669, 1677, 1694, 1696, - 1698, 1702, 1705, 1710, 1712, 1715, 1717, 1719, 1721, 1722, - 1723, 1724, 1728, 1730, 1732, 1737, 1739, 1741, 1743, 1745, - 1749, 1752, 1757, 1759, 1764, 1765, 1766, 1767, 1768, 1770, - 1772, 1774, 1776, 1778, 1782, 1784, 1787, 1793, 1798, 1802, - 1805, 1807, 1809, 1813, 1815, 1817, 1819, 1823, 1826, 1830, - 1836, 1838, 1846, 1873, 1875, 1879, 1884, 1891, 1895, 1898, - 1900, 1911, 1922, 1927, 1936, 1938, 1942, 1945, 1947, 1952, - 1957, 1962, 1969, 1971, 1972, 1973, 1976, 1981, 1986, 1988, - 1989, 1991, 1993, 1994, 1996, 2000, 2003, 2007, 2010, 2014, - 2016, 2018, 2020, 2021, 2023, 2027, 2036, 2038, 2040, 2053, - 2055, 2061, 2063, 2065, 2069, 2071, 2076, 2081, 2086, 2088, - 2090, 2094, 2096, 2101, 2106, 2108, 2112, 2114, 2119, 2124, - 2129, 2131, 2133, 2137, 2139, 2144, 2149, 2154, 2159, 2161, - 2163, 2165, 2167, 2169, 2173, 2175, 2180, 2185, 2187, 2191, - 2193, 2198, 2202, 2204, 2209, 2213, 2215, 2220, 2224, 2226, - 2231, 2235, 2237, 2242, 2246, 2248, 2253, 2259, 2261, 2265, - 2267, 2270, 2273, 2281, 2283, 2284, 2287, 2289, 2292, 2296 + 900, 905, 910, 914, 919, 924, 926, 933, 935, 937, + 941, 944, 946, 950, 952, 953, 958, 964, 971, 979, + 986, 989, 992, 996, 999, 1003, 1012, 1014, 1016, 1020, + 1022, 1025, 1032, 1040, 1042, 1046, 1053, 1063, 1067, 1070, + 1073, 1076, 1079, 1082, 1085, 1088, 1090, 1094, 1100, 1105, + 1107, 1111, 1114, 1118, 1120, 1123, 1125, 1126, 1128, 1132, + 1136, 1142, 1147, 1150, 1152, 1156, 1162, 1166, 1171, 1180, + 1184, 1189, 1201, 1203, 1206, 1208, 1210, 1214, 1218, 1221, + 1225, 1227, 1228, 1229, 1230, 1231, 1235, 1237, 1238, 1239, + 1240, 1244, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, + 1254, 1255, 1258, 1263, 1274, 1277, 1281, 1288, 1298, 1304, + 1310, 1316, 1318, 1324, 1326, 1332, 1334, 1336, 1338, 1340, + 1344, 1346, 1347, 1348, 1349, 1350, 1351, 1354, 1360, 1362, + 1364, 1368, 1373, 1378, 1384, 1394, 1400, 1402, 1404, 1411, + 1414, 1416, 1418, 1422, 1424, 1427, 1431, 1433, 1436, 1443, + 1449, 1451, 1453, 1457, 1465, 1468, 1470, 1472, 1476, 1481, + 1490, 1495, 1498, 1505, 1507, 1509, 1513, 1516, 1525, 1532, + 1534, 1538, 1551, 1553, 1559, 1565, 1569, 1571, 1575, 1578, + 1580, 1584, 1587, 1589, 1591, 1595, 1598, 1600, 1602, 1606, + 1609, 1611, 1613, 1617, 1623, 1625, 1629, 1636, 1638, 1640, + 1642, 1646, 1654, 1657, 1659, 1664, 1668, 1670, 1677, 1685, + 1702, 1704, 1706, 1710, 1713, 1718, 1720, 1723, 1725, 1727, + 1729, 1730, 1731, 1732, 1736, 1738, 1740, 1745, 1747, 1749, + 1751, 1753, 1757, 1760, 1765, 1767, 1772, 1773, 1774, 1775, + 1776, 1778, 1780, 1782, 1784, 1786, 1790, 1792, 1795, 1801, + 1806, 1810, 1813, 1815, 1817, 1821, 1823, 1825, 1827, 1831, + 1834, 1838, 1844, 1846, 1854, 1881, 1883, 1887, 1892, 1899, + 1903, 1906, 1908, 1919, 1930, 1935, 1944, 1946, 1950, 1953, + 1955, 1960, 1965, 1970, 1977, 1979, 1980, 1981, 1984, 1989, + 1994, 1996, 1997, 1999, 2001, 2002, 2004, 2008, 2011, 2015, + 2018, 2022, 2024, 2026, 2028, 2029, 2031, 2035, 2044, 2046, + 2048, 2061, 2063, 2069, 2071, 2073, 2077, 2079, 2084, 2089, + 2094, 2096, 2098, 2102, 2104, 2109, 2114, 2116, 2120, 2122, + 2127, 2132, 2137, 2139, 2141, 2145, 2147, 2152, 2157, 2162, + 2167, 2169, 2171, 2173, 2175, 2177, 2181, 2183, 2188, 2193, + 2195, 2199, 2201, 2206, 2210, 2212, 2217, 2221, 2223, 2228, + 2232, 2234, 2239, 2243, 2245, 2250, 2254, 2256, 2261, 2267, + 2269, 2273, 2275, 2278, 2281, 2289, 2291, 2292, 2295, 2297, + 2300, 2304 }; #endif @@ -764,7 +766,7 @@ static const char * const yytname[] = { "$","error","$undefined.","PLUS_TK", "variable_declarator_id","variable_initializer","method_declaration","@3","method_header", "method_declarator","formal_parameter_list","formal_parameter","throws","class_type_list", "method_body","static_initializer","static","constructor_declaration","@4","constructor_header", -"constructor_declarator","constructor_body","explicit_constructor_invocation", +"constructor_declarator","constructor_body","constructor_block_end","explicit_constructor_invocation", "this_or_super","interface_declaration","@5","@6","@7","@8","extends_interfaces", "interface_body","interface_member_declarations","interface_member_declaration", "constant_declaration","abstract_method_declaration","array_initializer","variable_initializers", @@ -807,41 +809,42 @@ static const short yyr1[] = { 0, 151, 151, 151, 152, 152, 152, 152, 153, 153, 153, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 158, 160, 160, 161, 161, 162, 162, 162, 162, 163, - 163, 163, 163, 164, 164, 166, 165, 167, 165, 168, - 165, 169, 165, 165, 165, 170, 170, 170, 170, 171, - 171, 172, 172, 173, 173, 173, 173, 174, 175, 175, - 176, 176, 176, 177, 177, 177, 178, 178, 179, 180, - 181, 181, 182, 182, 182, 183, 184, 184, 185, 185, - 185, 185, 185, 185, 186, 186, 186, 186, 186, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 188, 189, 190, 190, 191, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 193, 193, - 193, 193, 193, 193, 193, 194, 194, 194, 194, 195, - 196, 198, 197, 199, 199, 199, 199, 200, 200, 200, - 200, 201, 201, 202, 203, 203, 204, 204, 204, 204, - 204, 205, 206, 206, 206, 206, 207, 208, 209, 210, - 210, 210, 210, 210, 211, 211, 212, 212, 212, 213, - 214, 214, 214, 214, 215, 215, 216, 216, 216, 217, - 217, 217, 217, 218, 218, 218, 218, 219, 219, 219, - 219, 220, 220, 220, 221, 221, 221, 221, 221, 222, - 223, 223, 223, 223, 224, 224, 225, 226, 226, 226, - 226, 227, 227, 228, 228, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 163, 164, 164, 164, 164, 165, 165, 167, 166, 168, + 166, 169, 166, 170, 166, 166, 166, 171, 171, 171, + 171, 172, 172, 173, 173, 174, 174, 174, 174, 175, + 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, + 180, 181, 182, 182, 183, 183, 183, 184, 185, 185, + 186, 186, 186, 186, 186, 186, 187, 187, 187, 187, + 187, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 189, 190, 191, 191, 192, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, + 195, 196, 197, 199, 198, 200, 200, 200, 200, 201, + 201, 201, 201, 202, 202, 203, 204, 204, 205, 205, + 205, 205, 205, 206, 207, 207, 207, 207, 208, 209, + 210, 211, 211, 211, 211, 211, 212, 212, 213, 213, + 213, 214, 215, 215, 215, 215, 216, 216, 217, 217, + 217, 218, 218, 218, 218, 219, 219, 219, 219, 220, + 220, 220, 220, 221, 221, 221, 222, 222, 222, 222, + 222, 223, 224, 224, 224, 224, 225, 225, 226, 227, + 227, 227, 227, 228, 228, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 231, 231, 232, 232, 232, 233, - 233, 233, 233, 233, 233, 233, 233, 234, 234, 235, - 235, 235, 236, 236, 236, 237, 237, 237, 238, 238, - 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, - 239, 239, 240, 240, 240, 240, 241, 242, 243, 243, - 243, 243, 243, 243, 243, 244, 244, 245, 245, 246, - 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, - 248, 249, 249, 249, 249, 249, 250, 250, 250, 250, - 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, - 251, 251, 251, 251, 252, 252, 252, 252, 252, 253, - 253, 253, 254, 254, 254, 255, 255, 255, 256, 256, - 256, 257, 257, 257, 258, 258, 258, 258, 258, 259, - 259, 260, 260, 261, 261, 261, 262, 262, 263, 264 + 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 232, 232, 233, 233, + 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, + 235, 236, 236, 236, 237, 237, 237, 238, 238, 238, + 239, 239, 239, 239, 239, 239, 239, 239, 240, 240, + 240, 240, 240, 240, 241, 241, 241, 241, 242, 243, + 244, 244, 244, 244, 244, 244, 244, 245, 245, 246, + 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, + 249, 249, 249, 250, 250, 250, 250, 250, 251, 251, + 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, + 253, 254, 254, 254, 255, 255, 255, 256, 256, 256, + 257, 257, 257, 258, 258, 258, 259, 259, 259, 259, + 259, 260, 260, 261, 261, 262, 262, 262, 263, 263, + 264, 265 }; static const short yyr2[] = { 0, @@ -859,42 +862,43 @@ static const short yyr2[] = { 0, 2, 3, 2, 3, 2, 3, 4, 3, 3, 3, 1, 3, 3, 2, 3, 2, 3, 0, 2, 2, 1, 3, 3, 1, 2, 1, 2, 3, 1, 0, - 3, 2, 3, 3, 4, 2, 3, 3, 4, 4, - 5, 7, 6, 1, 1, 0, 4, 0, 5, 0, - 5, 0, 6, 3, 4, 2, 3, 2, 3, 2, - 3, 1, 2, 1, 1, 1, 1, 1, 2, 2, - 2, 3, 4, 1, 3, 3, 2, 3, 1, 1, - 1, 2, 1, 1, 1, 2, 2, 3, 1, 1, + 3, 2, 3, 3, 4, 2, 3, 3, 4, 1, + 2, 4, 5, 7, 6, 1, 1, 0, 4, 0, + 5, 0, 5, 0, 6, 3, 4, 2, 3, 2, + 3, 2, 3, 1, 2, 1, 1, 1, 1, 1, + 2, 2, 2, 3, 4, 1, 3, 3, 2, 3, + 1, 1, 1, 2, 1, 1, 1, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 4, 4, 5, 4, 5, 6, 7, 6, 1, 1, - 1, 1, 1, 1, 1, 5, 2, 3, 4, 7, - 7, 0, 3, 4, 2, 3, 5, 2, 3, 3, - 4, 1, 2, 2, 1, 2, 3, 2, 2, 3, - 2, 4, 2, 2, 3, 4, 2, 1, 7, 7, - 6, 3, 5, 4, 7, 6, 2, 2, 3, 2, - 0, 1, 1, 2, 0, 1, 1, 3, 3, 2, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 4, 4, 5, 4, 5, 6, 7, 6, + 1, 1, 1, 1, 1, 1, 1, 5, 2, 3, + 4, 7, 7, 0, 3, 4, 2, 3, 5, 2, + 3, 3, 4, 1, 2, 2, 1, 2, 3, 2, + 2, 3, 2, 4, 2, 2, 3, 4, 2, 1, + 7, 7, 6, 3, 5, 4, 7, 6, 2, 2, + 3, 2, 0, 1, 1, 2, 0, 1, 1, 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, - 3, 3, 2, 3, 5, 5, 2, 4, 3, 1, - 3, 3, 4, 2, 1, 2, 2, 4, 2, 3, - 4, 2, 2, 1, 1, 1, 1, 3, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, - 5, 4, 6, 5, 4, 5, 5, 6, 3, 3, - 4, 5, 2, 3, 3, 3, 1, 3, 3, 3, - 3, 4, 4, 4, 4, 3, 3, 1, 2, 3, - 3, 2, 2, 3, 3, 3, 3, 2, 3, 4, - 5, 6, 5, 6, 4, 4, 4, 4, 3, 4, - 3, 4, 1, 1, 1, 1, 2, 2, 1, 1, - 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, - 2, 2, 1, 2, 2, 5, 4, 4, 5, 4, - 2, 5, 4, 5, 1, 3, 3, 3, 3, 3, - 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, - 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, - 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, - 3, 1, 3, 3, 1, 5, 4, 3, 5, 1, - 1, 3, 3, 1, 1, 1, 1, 1, 1, 1 + 3, 2, 3, 3, 2, 3, 5, 5, 2, 4, + 3, 1, 3, 3, 4, 2, 1, 2, 2, 4, + 2, 3, 4, 2, 2, 1, 1, 1, 1, 3, + 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, + 3, 3, 5, 4, 6, 5, 4, 5, 5, 6, + 3, 3, 4, 5, 2, 3, 3, 3, 1, 3, + 3, 3, 3, 4, 4, 4, 4, 3, 3, 1, + 2, 3, 3, 2, 2, 3, 3, 3, 3, 2, + 3, 4, 5, 6, 5, 6, 4, 4, 4, 4, + 3, 4, 3, 4, 1, 1, 1, 1, 2, 2, + 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, + 2, 1, 2, 2, 1, 2, 2, 5, 4, 4, + 5, 4, 2, 5, 4, 5, 1, 3, 3, 3, + 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, + 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, + 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, + 1, 3, 3, 1, 3, 3, 1, 5, 4, 3, + 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, + 1, 1 }; static const short yydefact[] = { 0, @@ -902,1334 +906,1312 @@ static const short yydefact[] = { 0, 0, 36, 43, 44, 38, 0, 51, 52, 46, 27, 0, 23, 24, 25, 0, 62, 0, 41, 0, 0, 37, 39, 0, 0, 56, 0, 0, 47, 45, 0, - 164, 0, 0, 160, 63, 0, 69, 42, 40, 0, - 0, 0, 61, 0, 49, 0, 26, 168, 17, 166, - 15, 0, 157, 0, 0, 68, 16, 0, 0, 59, - 165, 0, 162, 64, 69, 50, 48, 12, 0, 10, - 11, 170, 0, 8, 9, 13, 14, 15, 0, 176, - 178, 0, 177, 0, 172, 174, 175, 169, 167, 161, - 67, 71, 72, 70, 0, 159, 0, 57, 113, 0, + 166, 0, 0, 162, 63, 0, 69, 42, 40, 0, + 0, 0, 61, 0, 49, 0, 26, 170, 17, 168, + 15, 0, 159, 0, 0, 68, 16, 0, 0, 59, + 167, 0, 164, 64, 69, 50, 48, 12, 0, 10, + 11, 172, 0, 8, 9, 13, 14, 15, 0, 178, + 180, 0, 179, 0, 174, 176, 177, 171, 169, 163, + 67, 71, 72, 70, 0, 161, 0, 57, 113, 0, 128, 111, 0, 0, 90, 93, 128, 0, 0, 0, - 115, 0, 0, 180, 179, 171, 173, 0, 0, 60, - 163, 0, 0, 0, 0, 108, 99, 88, 0, 0, + 115, 0, 0, 182, 181, 173, 175, 0, 0, 60, + 165, 0, 0, 0, 0, 108, 99, 88, 0, 0, 0, 0, 107, 21, 18, 22, 20, 19, 114, 128, - 112, 0, 128, 74, 73, 55, 189, 75, 23, 0, + 112, 0, 128, 74, 73, 55, 191, 75, 23, 0, 86, 0, 77, 79, 83, 85, 0, 80, 0, 81, 140, 128, 87, 82, 0, 58, 119, 116, 0, 0, 0, 121, 130, 131, 129, 120, 118, 92, 0, 91, - 95, 0, 0, 0, 0, 0, 0, 0, 337, 0, - 0, 0, 0, 6, 5, 2, 3, 4, 7, 336, - 0, 404, 0, 103, 403, 334, 339, 0, 335, 340, - 341, 342, 420, 405, 406, 435, 409, 410, 413, 423, - 442, 447, 454, 465, 470, 473, 476, 479, 482, 485, - 490, 499, 491, 0, 102, 100, 98, 101, 110, 89, - 109, 187, 0, 128, 76, 78, 84, 106, 0, 137, - 0, 142, 0, 55, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 337, 0, 221, 0, 8, - 404, 0, 0, 195, 0, 210, 0, 191, 193, 0, - 194, 199, 211, 0, 200, 212, 0, 201, 202, 213, - 252, 0, 203, 0, 214, 204, 291, 0, 215, 216, - 217, 219, 218, 0, 220, 245, 244, 0, 242, 243, - 240, 241, 239, 126, 124, 0, 117, 0, 0, 414, - 404, 340, 342, 411, 415, 412, 419, 418, 417, 416, - 0, 388, 0, 0, 0, 16, 0, 424, 421, 425, - 422, 431, 0, 404, 0, 181, 184, 0, 0, 0, - 0, 0, 96, 0, 0, 363, 0, 408, 407, 0, + 95, 0, 0, 0, 0, 0, 0, 0, 339, 0, + 0, 0, 0, 6, 5, 2, 3, 4, 7, 338, + 0, 406, 0, 103, 405, 336, 341, 0, 337, 342, + 343, 344, 422, 407, 408, 437, 411, 412, 415, 425, + 444, 449, 456, 467, 472, 475, 478, 481, 484, 487, + 492, 501, 493, 0, 102, 100, 98, 101, 110, 89, + 109, 189, 0, 128, 76, 78, 84, 106, 0, 137, + 0, 142, 0, 55, 0, 0, 280, 0, 0, 0, + 0, 0, 0, 0, 0, 339, 0, 223, 0, 8, + 406, 0, 0, 197, 0, 212, 0, 193, 195, 0, + 196, 201, 213, 0, 202, 214, 0, 203, 204, 215, + 254, 0, 205, 0, 216, 206, 293, 0, 217, 218, + 219, 221, 220, 0, 222, 247, 246, 0, 244, 245, + 242, 243, 241, 126, 124, 0, 117, 0, 0, 416, + 406, 342, 344, 413, 417, 414, 421, 420, 419, 418, + 0, 390, 0, 0, 0, 16, 0, 426, 423, 427, + 424, 433, 0, 406, 0, 183, 186, 0, 0, 0, + 0, 0, 96, 0, 0, 365, 0, 410, 409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 497, 498, 0, 144, 0, 143, 136, 105, 134, 138, - 189, 141, 0, 228, 229, 227, 247, 0, 313, 0, - 302, 300, 0, 310, 308, 0, 274, 0, 255, 0, - 324, 0, 288, 0, 306, 304, 0, 0, 197, 0, - 0, 224, 222, 0, 0, 190, 188, 192, 196, 320, - 404, 223, 226, 0, 273, 0, 404, 0, 293, 297, - 290, 0, 0, 317, 0, 127, 125, 123, 122, 133, - 132, 350, 345, 0, 387, 377, 376, 359, 0, 370, - 378, 0, 371, 0, 360, 0, 0, 0, 0, 0, - 0, 347, 338, 182, 0, 349, 344, 389, 0, 367, - 399, 0, 348, 343, 365, 346, 366, 386, 401, 0, - 364, 0, 439, 436, 440, 437, 441, 438, 445, 443, - 446, 444, 451, 448, 452, 449, 453, 450, 461, 456, - 463, 458, 460, 455, 462, 457, 464, 0, 459, 468, - 466, 469, 467, 472, 471, 475, 474, 478, 477, 481, - 480, 484, 483, 488, 0, 0, 493, 492, 145, 135, - 404, 0, 0, 146, 0, 248, 0, 314, 312, 303, - 301, 311, 309, 275, 0, 256, 0, 0, 0, 321, - 325, 0, 322, 289, 307, 305, 338, 0, 198, 230, - 0, 0, 0, 253, 0, 294, 0, 282, 0, 0, - 319, 0, 395, 396, 0, 382, 383, 0, 379, 372, - 0, 375, 373, 374, 361, 352, 0, 433, 427, 430, - 0, 0, 428, 186, 183, 185, 390, 0, 400, 397, - 0, 402, 398, 355, 0, 487, 0, 0, 147, 0, - 0, 148, 249, 0, 276, 272, 0, 329, 0, 333, - 332, 326, 323, 327, 234, 0, 231, 232, 0, 0, - 0, 258, 0, 262, 0, 265, 0, 299, 298, 284, - 0, 296, 0, 318, 0, 393, 0, 381, 380, 385, - 384, 354, 362, 351, 432, 426, 434, 429, 369, 368, - 391, 0, 356, 357, 489, 486, 0, 149, 0, 0, - 0, 246, 0, 199, 0, 206, 207, 0, 208, 209, - 0, 257, 330, 0, 235, 0, 0, 233, 271, 268, - 269, 500, 0, 260, 263, 0, 259, 0, 266, 0, - 0, 283, 0, 316, 315, 394, 353, 392, 358, 0, - 150, 0, 0, 0, 225, 277, 0, 331, 328, 238, - 236, 0, 270, 267, 261, 0, 281, 0, 0, 0, - 151, 0, 250, 0, 0, 237, 279, 280, 153, 0, - 0, 0, 0, 152, 0, 0, 0, 0, 286, 0, - 251, 285, 0, 0, 0 + 499, 500, 0, 144, 0, 143, 136, 105, 134, 138, + 191, 141, 0, 230, 231, 229, 249, 0, 315, 0, + 304, 302, 0, 312, 310, 0, 276, 0, 257, 0, + 326, 0, 290, 0, 308, 306, 0, 0, 199, 0, + 0, 226, 224, 0, 0, 192, 190, 194, 198, 322, + 406, 225, 228, 0, 275, 0, 406, 0, 295, 299, + 292, 0, 0, 319, 0, 127, 125, 123, 122, 133, + 132, 352, 347, 0, 389, 379, 378, 361, 0, 372, + 380, 0, 373, 0, 362, 0, 0, 0, 0, 0, + 0, 349, 340, 184, 0, 351, 346, 391, 0, 369, + 401, 0, 350, 345, 367, 348, 368, 388, 403, 0, + 366, 0, 441, 438, 442, 439, 443, 440, 447, 445, + 448, 446, 453, 450, 454, 451, 455, 452, 463, 458, + 465, 460, 462, 457, 464, 459, 466, 0, 461, 470, + 468, 471, 469, 474, 473, 477, 476, 480, 479, 483, + 482, 486, 485, 490, 0, 0, 495, 494, 145, 135, + 406, 146, 0, 0, 150, 0, 250, 0, 316, 314, + 305, 303, 313, 311, 277, 0, 258, 0, 0, 0, + 323, 327, 0, 324, 291, 309, 307, 340, 0, 200, + 232, 0, 0, 0, 255, 0, 296, 0, 284, 0, + 0, 321, 0, 397, 398, 0, 384, 385, 0, 381, + 374, 0, 377, 375, 376, 363, 354, 0, 435, 429, + 432, 0, 0, 430, 188, 185, 187, 392, 0, 402, + 399, 0, 404, 400, 357, 0, 489, 0, 0, 147, + 0, 0, 151, 148, 251, 0, 278, 274, 0, 331, + 0, 335, 334, 328, 325, 329, 236, 0, 233, 234, + 0, 0, 0, 260, 0, 264, 0, 267, 0, 301, + 300, 286, 0, 298, 0, 320, 0, 395, 0, 383, + 382, 387, 386, 356, 364, 353, 434, 428, 436, 431, + 371, 370, 393, 0, 358, 359, 491, 488, 0, 149, + 0, 0, 0, 248, 0, 201, 0, 208, 209, 0, + 210, 211, 0, 259, 332, 0, 237, 0, 0, 235, + 273, 270, 271, 502, 0, 262, 265, 0, 261, 0, + 268, 0, 0, 285, 0, 318, 317, 396, 355, 394, + 360, 0, 152, 0, 0, 0, 227, 279, 0, 333, + 330, 240, 238, 0, 272, 269, 263, 0, 283, 0, + 0, 0, 153, 0, 252, 0, 0, 239, 281, 282, + 155, 0, 0, 0, 0, 154, 0, 0, 0, 0, + 288, 0, 253, 287, 0, 0, 0 }; -static const short yydefgoto[] = { 773, +static const short yydefgoto[] = { 775, 210, 279, 211, 85, 86, 68, 60, 87, 212, 22, 23, 24, 8, 9, 10, 11, 12, 13, 14, 15, 283, 284, 132, 105, 47, 70, 104, 130, 162, 163, 164, 91, 114, 115, 116, 213, 166, 259, 92, 111, 181, 182, 136, 185, 398, 168, 169, 170, 261, 171, - 172, 402, 552, 285, 18, 43, 72, 65, 107, 44, - 63, 94, 95, 96, 97, 214, 358, 286, 175, 437, - 718, 288, 289, 290, 291, 693, 292, 293, 294, 295, - 696, 296, 297, 298, 299, 697, 300, 444, 301, 584, - 653, 654, 655, 656, 302, 303, 699, 304, 305, 306, - 700, 307, 308, 451, 661, 662, 309, 310, 311, 312, - 313, 314, 315, 570, 571, 572, 573, 215, 216, 217, - 218, 489, 219, 470, 471, 472, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 393, 490, 713 + 172, 402, 552, 553, 285, 18, 43, 72, 65, 107, + 44, 63, 94, 95, 96, 97, 214, 358, 286, 175, + 555, 720, 288, 289, 290, 291, 695, 292, 293, 294, + 295, 698, 296, 297, 298, 299, 699, 300, 444, 301, + 585, 655, 656, 657, 658, 302, 303, 701, 304, 305, + 306, 702, 307, 308, 451, 663, 664, 309, 310, 311, + 312, 313, 314, 315, 571, 572, 573, 574, 215, 216, + 217, 218, 489, 219, 470, 471, 472, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 393, 490, 715 }; -static const short yypact[] = { 538, --32768,-32768, 61, -61, 310, 456,-32768,-32768, 245, 513, - 578,-32768,-32768,-32768,-32768, 567,-32768,-32768,-32768,-32768, - 19,-32768,-32768,-32768, 160,-32768, 296,-32768, 33, 603, --32768,-32768, 680, 629,-32768, -61, 486,-32768,-32768, 503, --32768, 504, -50, -27,-32768, 510, 130,-32768,-32768, -61, - 693, 338,-32768, 356,-32768, 37,-32768,-32768,-32768,-32768, - -2, 830,-32768, 520, -50,-32768,-32768, 342, 521,-32768, --32768, -50, -27,-32768, 130,-32768,-32768,-32768, 530,-32768, --32768,-32768, 539, 156,-32768,-32768, 197, -55, 787,-32768, --32768, 53,-32768, 988,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 236, 132,-32768, -50,-32768,-32768, 371, - 379,-32768, 122, 550,-32768, 716, 379, 43, 77, 260, --32768, 562, 565,-32768,-32768,-32768,-32768, 568, 869,-32768, --32768, 132, 421, 574, 95,-32768,-32768,-32768, 580, 1258, - 113, 478,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 379, --32768, 759, 379,-32768,-32768, 523, 519,-32768, 548, 787, --32768, 1021,-32768,-32768, 576,-32768, 203,-32768, 602,-32768, --32768, 625,-32768,-32768, 1818,-32768,-32768,-32768, 582, 948, - -29,-32768,-32768,-32768, 588,-32768,-32768,-32768, 350,-32768, --32768, 2787, 2838, 2903, 2954, 609, 28, 700,-32768, 3019, - 3070, 3135, 5134,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 632, 949, 66,-32768, 642, 656,-32768, 583,-32768, 437, --32768, 771, 831,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 887, 895, 950, 1007, 889, 745, 762, 758, 777, 268, --32768,-32768,-32768, 819,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 896, 625,-32768,-32768,-32768,-32768, 671, 712, - 704,-32768, 502, 114, 306, 3186,-32768, 263, 2091, 47, - 391, 416, 232, 423, 307, 723, 5433,-32768, -61, 733, - 1018, 319, 918,-32768, 728,-32768, 1750,-32768,-32768, 725, --32768,-32768,-32768, 1886,-32768,-32768, 788,-32768,-32768,-32768, --32768, 1886,-32768, 1886,-32768,-32768, 5484, 791,-32768,-32768, --32768,-32768,-32768, 426,-32768, 706, 782, 831, 892, 897, --32768,-32768,-32768,-32768, 850, 590,-32768, 711, 593,-32768, - 545,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 31,-32768, 622, 908, 739, 739, 430,-32768,-32768,-32768, --32768,-32768, 683, 998, 86,-32768,-32768, 694, 468, 5201, - 3251, 30,-32768, 474, 3302,-32768, 458,-32768,-32768, 3367, - 3418, 3483, 3534, 3599, 3650, 3715, 3766, 3831, 3882, 3947, - 3998, 719, 4063, 4114, 4179, 4230, 4295, 4346, 4411, 2142, --32768,-32768, 4462,-32768, 188,-32768,-32768,-32768, 797,-32768, --32768,-32768, 1750,-32768,-32768,-32768,-32768, 4527,-32768, 59, --32768,-32768, 74,-32768,-32768, 127,-32768, 4578,-32768, 4643, --32768, 796,-32768, 5042,-32768,-32768, 217, 295, 744, 2207, - 775,-32768,-32768, -61, 2258,-32768,-32768,-32768,-32768,-32768, - 1087,-32768,-32768, 754,-32768, 804, 1038, 948,-32768,-32768, --32768, 69, 2323,-32768, 4694,-32768, 850,-32768,-32768,-32768, --32768,-32768,-32768, 494, 808,-32768,-32768,-32768, 2374, 739, --32768, 490, 739, 490,-32768, 2439, 4759, 224, 359, 2490, - 450,-32768, 1509,-32768, 2026,-32768,-32768,-32768, 617,-32768, --32768, 234,-32768,-32768,-32768,-32768,-32768, 810,-32768, 248, --32768, 5252,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 887, --32768, 887,-32768, 895,-32768, 895,-32768, 895,-32768, 950, --32768, 950,-32768, 950,-32768, 950,-32768, 156,-32768,-32768, - 1007,-32768, 1007,-32768, 889,-32768, 745,-32768, 762,-32768, - 758,-32768, 777,-32768, 880, 820,-32768,-32768,-32768,-32768, - 1076, 1750, 827,-32768, 1750,-32768, 352,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 438,-32768, 829, 461, 309, 796, --32768, 602,-32768,-32768,-32768,-32768,-32768, 469, 744,-32768, - 928, 94, 185,-32768, 838,-32768, 5176,-32768, 5067, 834, - 851, 856,-32768,-32768, 5317,-32768,-32768, 262,-32768, 859, - 265,-32768, 859,-32768,-32768, 132, 102,-32768,-32768,-32768, - 4810, 1388,-32768,-32768,-32768,-32768,-32768, 4875,-32768,-32768, - 5368,-32768,-32768, 132, 627,-32768, 4926, 799,-32768, 1750, - 2555,-32768,-32768, 1952,-32768,-32768, 396,-32768, 737,-32768, --32768,-32768,-32768,-32768,-32768, 2606,-32768,-32768, 952, 355, - 4991,-32768, 190,-32768, 1484,-32768, 5433,-32768,-32768,-32768, - 867, 863, 5109,-32768, 402,-32768, 648,-32768,-32768,-32768, --32768,-32768,-32768, 132,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 726,-32768, 132,-32768,-32768, 471,-32768, 239, 116, - 477,-32768, 910, 920, 1952,-32768,-32768, 1952,-32768,-32768, - 884,-32768, 893, 901,-32768, 995, 142,-32768,-32768,-32768, --32768,-32768, 424,-32768,-32768, 1614,-32768, 1682,-32768, 905, - 1886,-32768, 907,-32768,-32768,-32768,-32768,-32768,-32768, 2671, --32768, 242, 4527, 1886,-32768,-32768, 2722,-32768,-32768,-32768, --32768, 1008,-32768,-32768,-32768, 917,-32768, 1886, 289, 177, --32768, 439,-32768, 5067, 919,-32768,-32768,-32768,-32768, 291, - 1952, 925, 5109,-32768, 965, 1952, 942, 1952,-32768, 1952, --32768,-32768, 1039, 1045,-32768 +static const short yypact[] = { 507, +-32768,-32768, 15, -30, 18, 244,-32768,-32768, 414, 443, + 556,-32768,-32768,-32768,-32768, 714,-32768,-32768,-32768,-32768, + 23,-32768,-32768,-32768, 359,-32768, 340,-32768, 49, 601, +-32768,-32768, 585, 603,-32768, -30, 417,-32768,-32768, 92, +-32768, 489, -24, 107,-32768, 529, 295,-32768,-32768, -30, + 710, 452,-32768, 344,-32768, 40,-32768,-32768,-32768,-32768, + 192, 1047,-32768, 530, -24,-32768,-32768, 388, 534,-32768, +-32768, -24, 107,-32768, 295,-32768,-32768,-32768, 540,-32768, +-32768,-32768, 548, 258,-32768,-32768, 307, 442, 736,-32768, +-32768, 77,-32768, 1638,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 312, 406,-32768, -24,-32768,-32768, 379, + -18,-32768, 426, 331,-32768, 693, -18, 120, 210, 429, +-32768, 564, 587,-32768,-32768,-32768,-32768, 593, 951,-32768, +-32768, 406, 607, 617, 214,-32768,-32768,-32768, 618, 1077, + 219, 531,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -18, +-32768, 361, -18,-32768,-32768, 460, 471,-32768, 494, 736, +-32768, 1204,-32768,-32768, 500,-32768, 180,-32768, 535,-32768, +-32768, 591,-32768,-32768, 1759,-32768,-32768,-32768, 620, 728, + 377,-32768,-32768,-32768, 613,-32768,-32768,-32768, 157,-32768, +-32768, 2663, 2728, 2779, 2844, 655, 32, 707,-32768, 2895, + 2960, 3011, 5025,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 673, 881, 56,-32768, 678, 746,-32768, 640,-32768, 671, +-32768, 715, 866,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 899, 921, 1006, 838, 920, 654, 814, 820, 847, 263, +-32768,-32768,-32768, 850,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 963, 591,-32768,-32768,-32768,-32768, 484, 769, + 775,-32768, -1, 306, 353, 3076,-32768, 232, 1357, 35, + 392, 419, 228, 424, 234, 779, 5324,-32768, -30, 538, + 974, 265, 872,-32768, 784,-32768, 1691,-32768,-32768, 789, +-32768,-32768,-32768, 1827,-32768,-32768, 797,-32768,-32768,-32768, +-32768, 1827,-32768, 1827,-32768,-32768, 5375, 802,-32768,-32768, +-32768,-32768,-32768, 427,-32768, 737, 806, 866, 902, 916, +-32768,-32768,-32768,-32768, 891, 642,-32768, 592, 660,-32768, + 189,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 409,-32768, 666, 964, 793, 793, 428,-32768,-32768,-32768, +-32768,-32768, 777, 1121, 66,-32768,-32768, 622, 432, 5092, + 3127, 729,-32768, -28, 3192,-32768, 435,-32768,-32768, 3243, + 3308, 3359, 3424, 3475, 3540, 3591, 3656, 3707, 3772, 3823, + 3888, 864, 3939, 4004, 4055, 4120, 4171, 4236, 4287, 2032, +-32768,-32768, 4352,-32768, 605,-32768,-32768,-32768, 810,-32768, +-32768,-32768, 1691,-32768,-32768,-32768,-32768, 4403,-32768, 95, +-32768,-32768, 126,-32768,-32768, 174,-32768, 4468,-32768, 4519, +-32768, 785,-32768, 4933,-32768,-32768, 182, 269, 815, 2083, + 604,-32768,-32768, -30, 2148,-32768,-32768,-32768,-32768,-32768, + 1158,-32768,-32768, 823,-32768, 861, 1018, 728,-32768,-32768, +-32768, 86, 2199,-32768, 4584,-32768, 891,-32768,-32768,-32768, +-32768,-32768,-32768, 565, 836,-32768,-32768,-32768, 2264, 793, +-32768, 590, 793, 590,-32768, 2315, 4635, 223, -43, 2380, + 191,-32768, 894,-32768, 1967,-32768,-32768,-32768, 649,-32768, +-32768, 237,-32768,-32768,-32768,-32768,-32768, 839,-32768, 239, +-32768, 5143,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 899, +-32768, 899,-32768, 921,-32768, 921,-32768, 921,-32768, 1006, +-32768, 1006,-32768, 1006,-32768, 1006,-32768, 258,-32768,-32768, + 838,-32768, 838,-32768, 920,-32768, 654,-32768, 814,-32768, + 820,-32768, 847,-32768, 933, 857,-32768,-32768,-32768,-32768, + 1254,-32768, 1691, 859, 856, 1691,-32768, 314,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 348,-32768, 870, 461, 229, + 785,-32768, 535,-32768,-32768,-32768,-32768,-32768, 467, 815, +-32768, 967, 14, 444,-32768, 878,-32768, 5067,-32768, 4958, + 876, 887, 892,-32768,-32768, 5208,-32768,-32768, 241,-32768, + 895, 299,-32768, 895,-32768,-32768, 406, 17,-32768,-32768, +-32768, 4700, 487,-32768,-32768,-32768,-32768,-32768, 4751,-32768, +-32768, 5259,-32768,-32768, 406, 704,-32768, 4816, 662,-32768, + 1691, 2431,-32768,-32768,-32768, 1893,-32768,-32768, 343,-32768, + 835,-32768,-32768,-32768,-32768,-32768,-32768, 2496,-32768,-32768, + 999, 91, 4867,-32768, 674,-32768, 1467,-32768, 5324,-32768, +-32768,-32768, 928, 923, 5000,-32768, 410,-32768, 723,-32768, +-32768,-32768,-32768,-32768,-32768, 406,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 731,-32768, 406,-32768,-32768, 477,-32768, + 243, 108, 485,-32768, 978, 979, 1893,-32768,-32768, 1893, +-32768,-32768, 942,-32768, 948, 950,-32768, 1053, 128,-32768, +-32768,-32768,-32768,-32768, 328,-32768,-32768, 1540,-32768, 1608, +-32768, 961, 1827,-32768, 970,-32768,-32768,-32768,-32768,-32768, +-32768, 2547,-32768, 262, 4403, 1827,-32768,-32768, 2612,-32768, +-32768,-32768,-32768, 1071,-32768,-32768,-32768, 980,-32768, 1827, + 296, 202,-32768, 358,-32768, 4958, 983,-32768,-32768,-32768, +-32768, 302, 1893, 990, 5000,-32768, 1021, 1893, 992, 1893, +-32768, 1893,-32768,-32768, 1087, 1089,-32768 }; static const short yypgoto[] = {-32768, --32768, -25, -53, 666, -34, -121, 645,-32768, -3, 597, --32768, 134,-32768, 1040, 806,-32768, 449,-32768,-32768, 689, - 17, 610,-32768,-32768, 999, 981,-32768, -131,-32768, 904, --32768, -57, -117, 924, -163, -192,-32768,-32768, 305, -65, - 805, -321, -98,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 909,-32768,-32768, 664, -41,-32768,-32768,-32768,-32768, 1016, - 429,-32768, 983,-32768,-32768, 393,-32768, -106, 818, -401, - -165, -283,-32768, 774, -280, -36, -585,-32768, -492,-32768, --32768,-32768, -302,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 432, 434, -615, -447,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -433,-32768, -630, 785,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 524,-32768, 532,-32768,-32768, -63, --32768, -316,-32768, 747, 103, -261, 1023, 223, 1044, 254, - 380, 442, -111, 531, 620, -468,-32768, 600, 636, 681, - 596, 715, 722, 734, 724, 736,-32768, 495, 720, 750, --32768,-32768, 65,-32768 +-32768, -57, -60, 711, -16, -123, 568,-32768, -3, 552, +-32768, 130,-32768, 1085, 791,-32768, 22,-32768,-32768, 778, + 12, 154,-32768,-32768, 1044, 1030,-32768, -128,-32768, 945, +-32768, 382, -106, 973, -165, -193,-32768,-32768, 469, -58, + 865, -327, -40,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 957,-32768, 142,-32768, 718, -10,-32768,-32768,-32768,-32768, + 1072, 584,-32768, 1031,-32768,-32768, 372,-32768, -122, 867, + 843, -166, -279,-32768, 819, -234, 197, -551,-32768, -529, +-32768,-32768,-32768, -301,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 476, 486, -619, -496,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, -436,-32768, -603, 832,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 569,-32768, 573,-32768,-32768, + 119,-32768, -386,-32768, 799, 362, -326, 858, 163, 1120, + 320, 437, 438, -112, 560, 636, -470,-32768, 632, 724, + 651, 625, 761, 765, 760, 764, 776,-32768, 526, 771, + 717,-32768,-32768, 29,-32768 }; -#define YYLAST 5593 +#define YYLAST 5484 static const short yytable[] = { 21, - 176, 554, 29, 438, 450, 152, 459, 59, 84, 287, - 357, 67, 184, 442, 613, 325, 16, 117, 143, 38, - 93, 445, 174, 446, 20, 16, 16, 16, 342, 59, - 493, 462, 723, 48, 59, 84, 83, 76, 61, 719, - 84, 120, 61, 144, 62, 50, 16, 342, 694, 16, - 16, 249, 93, 124, 251, 174, 150, 153, 88, 558, - 61, 19, 260, 123, 327, 61, 363, 16, 83, 586, - 328, 165, 64, 262, 560, 84, 347, 146, 89, 84, - 334, 336, 338, 340, 474, 88, 482, 173, 349, 351, - 88, 479, 481, 59, 648, 186, 494, 463, 50, 67, - 719, 495, 673, 83, 165, 496, 84, 179, 84, 694, - 89, 316, 694, 246, -320, 20, 648, 39, 582, 40, - 173, 280, 137, 762, 61, 88, 84, 562, 343, 88, - 61, 49, 767, 50, 123, 77, 83, 25, 27, -155, - 145, 695, 741, 678, 345, 160, 20, 343, 353, 180, - 629, 125, 399, 632, 326, 396, 88, 559, 88, 607, - 41, 429, 457, 346, -94, -94, 422, -292, 587, 52, - 54, 281, 561, 57, 147, 694, 88, 741, 160, 483, - 694, 69, 694, 57, 694, 625, 698, 649, 331, 331, - 331, 331, 187, 618, 61, 674, 331, 331, 354, 84, - 701, 618, 695, 258, 245, 695, -320, 461, 600, 732, - 247, 603, 110, -97, 133, 618, 113, 575, -97, -97, - -97, -97, 42, 316, 610, 563, 129, 179, 688, 84, - 316, 650, 421, 280, 619, 742, 650, 555, 316, 647, - 316, 618, 708, 316, -30, 1, 651, 698, 622, 88, - 698, 651, 118, 280, -156, 110, 113, 434, 504, 506, - 508, 701, 668, 411, 701, 670, 355, 245, 695, 180, - 760, 438, 189, 695, 84, 695, 618, 695, 667, 88, - 652, 549, 389, 281, 659, 714, 450, 328, 2, 740, - 441, 756, 616, 119, 67, 482, 45, -104, 441, 3, - 441, -104, 179, 447, 682, 4, 407, 425, 282, 640, - 26, 5, 189, 698, 690, 576, 579, 704, 698, 432, - 698, 597, 698, 448, 88, 61, 157, 701, 528, 707, - 410, 620, 701, 416, 701, 128, 701, 731, 71, 316, - 751, 428, 101, 7, 180, 623, 438, -65, 20, 280, - 137, 367, 633, 692, 390, 709, 74, 148, 46, 669, - 450, 412, 671, -25, -25, 609, 331, 331, 331, 331, + 459, 84, 29, 176, 83, 450, 174, 438, 287, 357, + 184, 16, 614, 325, 650, 19, 152, 675, 26, 474, + 16, 16, 16, 38, 117, 59, 479, 481, 84, 67, + 31, 123, 342, 84, 134, 342, 83, 721, 61, 174, + 76, 16, 61, 497, 16, 16, 260, 59, 583, 48, + 612, 93, 59, 602, 31, 20, 363, 20, 88, 442, + 61, 725, 16, 150, 153, 61, 482, 445, 84, 446, + 62, 83, 84, 89, 347, 179, 143, 124, 135, 334, + 336, 338, 340, 93, 696, 88, 587, 349, 351, 608, + 88, 711, 55, 404, 405, 559, 56, 406, 721, 84, + 20, 84, 123, 20, 83, 89, 697, 651, 650, 249, + 676, 59, 251, 619, 280, 626, 619, 67, 173, 84, + 144, 39, 326, 40, 61, 88, 561, -157, 743, 88, + 61, 262, 343, 25, 27, 343, 399, 345, 77, 700, + 160, 353, 680, 601, 180, 696, 604, 49, 696, 50, + 422, 173, 764, 17, -94, -94, 88, 137, 88, 483, + 457, 769, 17, 17, 17, 52, 54, 697, 245, 57, + 697, 281, 429, 160, 563, 125, 88, 20, 712, 57, + 258, 346, 576, 17, -294, 588, 17, 17, 331, 331, + 331, 331, 84, 560, 61, 179, 331, 331, 354, 703, + 700, 734, 743, 700, 17, 461, 64, 619, 110, 669, + 146, 696, 113, 396, 186, 90, 696, 145, 696, 246, + 696, 744, 84, 611, 562, 434, 280, 619, 421, 642, + 355, 245, 411, 697, 425, 684, 556, 620, 697, 623, + 697, 670, 697, 649, 28, 692, 280, 90, -97, 88, + -97, 110, 113, -97, -97, -97, -97, 504, 506, 508, + 703, 709, 710, 703, 180, 432, 700, 84, 189, 482, + 179, 700, 564, 700, -104, 700, 438, 389, -104, 88, + 577, 360, 161, 281, 613, 361, 661, 602, 450, 362, + 441, 617, 50, 316, 410, 762, 742, 416, 441, 672, + 441, 619, 758, 447, 282, 428, -322, 147, 189, -25, + -25, 187, 67, 706, 635, 161, 247, 20, 448, 20, + 598, 528, 157, 157, 88, 61, 703, 580, 745, 20, + 412, 703, 426, 703, 621, 703, 624, 317, 671, 180, + 45, 733, 280, 704, 74, 752, 69, 367, 637, 390, + -25, 438, 433, 407, 118, -25, -25, -25, 635, 41, + 753, -25, 578, 450, 610, -25, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 88, 331, - 331, 331, 331, 331, 331, 331, 630, 759, 577, 764, - -65, 417, 20, -66, 84, 20, 702, 317, 408, 551, - 42, 413, 724, 157, -25, 426, 433, -65, 427, -25, - -25, -25, 189, 750, 442, -25, 419, 445, 46, -25, - 282, 177, 434, 423, 743, 492, 454, 282, 318, 500, - 475, 134, -158, 167, 438, 282, -66, 282, 635, 633, - 747, -97, 710, -97, 88, 634, -97, -97, -97, -97, - -65, 450, 611, 753, 546, 601, 28, 31, 501, 189, - 450, 638, 641, 133, 2, 644, 167, 758, 486, 645, - 78, 645, 557, 331, 672, 135, 465, 407, 248, 331, - 692, 31, 565, 418, 567, 747, 53, 753, 316, 758, - -254, 316, 683, 100, 492, 57, 157, 498, 280, 676, - 106, 280, 80, 55, 58, 81, 20, 56, 420, 317, - 66, 744, -31, 1, 178, 424, 317, 590, 455, 592, - 98, 102, 476, 316, 317, 316, 317, -495, -495, 317, - 109, 636, 761, 598, 487, 131, 282, -28, 1, 112, - 318, 20, 727, 612, 492, 497, 601, 318, 281, 245, - 502, 281, 729, 639, 319, 318, 2, 318, 725, 20, - 318, 646, 149, 730, 57, 151, 316, 189, 154, 733, - 316, 20, 599, 4, 183, 599, 280, -29, 1, 5, - 188, 2, 324, 366, 203, 84, 601, 593, 20, 20, - 456, 316, 3, 460, 594, 20, 404, 405, 4, 316, - 406, 280, -34, 1, 5, 20, 20, 331, 331, 17, - 35, 7, 6, 179, 252, 20, 320, -139, 17, 17, - 17, 2, 464, 331, 20, 317, 281, 36, -33, 1, - 441, 316, 3, 37, 316, 88, 7, 360, 4, 17, - 253, 361, 17, 17, 5, 362, 2, 20, 138, 139, - 20, 281, 316, 20, 316, 180, 318, 316, 735, 20, - 17, 736, 280, 4, 280, 20, 319, 20, 20, 5, - 316, 90, 2, 319, 257, 20, 7, 134, 20, -32, - 1, 319, 680, 319, 316, 282, 319, 329, 282, 4, - 316, 441, -35, 1, 441, 5, 157, 316, 32, 316, - 344, 7, 316, 90, 316, 321, 316, 20, 99, 341, - 617, 458, 281, 103, 281, 712, 618, 441, 32, 527, - 684, 720, 32, 2, 765, 159, 618, 7, 320, 769, - 441, 771, 359, 772, 3, 320, 2, 703, 161, 32, - 4, 726, 364, 320, 441, 320, 5, 618, 320, 78, - -339, -339, 365, 4, 2, 385, 159, 441, 159, 5, - 78, 57, 441, 282, 441, 157, 441, 282, 78, 397, - 387, 161, 155, 386, 317, 493, 477, 317, 7, 478, - 2, 80, 319, 359, 81, 20, 78, 121, 282, 484, - 388, 7, 80, 485, 322, 81, 20, 752, 401, 493, - 80, 755, -339, 81, 20, 318, -339, 140, 318, 317, - 400, 317, 141, 142, 30, -154, 34, 321, 80, 728, - 435, 81, 20, 439, 321, 618, -341, -341, 282, 118, - 35, 282, 321, 359, 321, 469, 78, 321, 51, 578, - 318, 494, 318, 139, 320, 122, 495, 36, 583, 282, - 496, 282, 317, 37, 282, 568, 317, 250, 139, 569, - 20, -496, -496, 687, 602, 494, 604, 282, 80, 585, - 495, 81, 20, 2, 496, 368, 369, 317, -341, 78, - 626, 282, -341, 318, 20, 317, 443, 318, 79, 453, - 4, 370, 371, 372, 282, 550, 5, 373, 374, 282, - 595, 282, 621, 282, 383, 384, 322, 627, 318, 391, - 392, 80, 156, 322, 81, 20, 318, 317, 78, 631, - 317, 322, 637, 322, 323, 82, 322, 79, 647, 4, - 657, 319, 663, 321, 319, 5, -405, -405, 317, 2, - 317, -406, -406, 317, 664, 78, 141, 142, 318, 665, - 80, 318, 708, 81, 20, 601, 317, 375, 376, 377, - 721, 35, 587, 157, 158, 734, 319, 78, 319, 318, - 317, 318, 510, 512, 318, -205, 317, 80, 531, 533, - 81, 20, 737, 317, 37, 317, 738, 318, 317, 394, - 317, 35, 317, 320, 739, 740, 320, 78, 746, 80, - 748, 318, 81, 20, 466, 467, 468, 318, 756, 319, - 514, 516, 518, 319, 318, 757, 318, 763, 766, 318, - 768, 318, 322, 318, 378, 379, 380, 381, 320, 80, - 320, 2, 81, 20, 319, 770, 323, 78, 774, -494, - -494, 360, 319, 323, 775, 361, 79, 529, 4, 362, - 33, 323, 75, 323, 5, 108, 323, 395, 520, 522, - 524, 526, 190, 382, 156, 256, 553, 73, 254, 80, - 78, 320, 81, 20, 319, 320, 127, 319, 403, 79, - 449, 4, 321, 126, 715, 321, 716, 5, -494, -494, - 360, 452, 473, 642, 480, 319, 320, 319, 362, 535, - 319, 643, 80, -15, 320, 81, 20, 537, -494, -494, - 360, 541, 548, 319, 430, 157, 255, 321, 431, 321, - 539, 686, 0, -15, 543, 0, 0, 319, -494, -494, - 360, 0, 0, 319, 430, 0, 320, 0, 362, 320, - 319, 0, 319, 0, 0, 319, 0, 319, 0, 319, - 0, 0, 323, 0, 0, 0, 0, 320, 0, 320, - 321, -15, 320, 0, 321, 0, -494, -494, 360, 0, - 0, 322, 430, 0, 322, 320, 628, -494, -494, 360, - 0, 0, 0, 361, 0, 321, 0, 431, 0, 320, - 0, 0, 0, 321, 0, 320, 0, 0, 0, 0, - 0, 0, 320, 0, 320, 0, 322, 320, 322, 320, - 0, 320, 0, 0, 332, 332, 332, 332, 0, 0, - 0, 0, 332, 332, 0, 321, 0, 0, 321, 0, - 0, 0, 0, 0, 0, 333, 333, 333, 333, 0, - 0, 0, 0, 333, 333, 0, 321, 0, 321, 322, - 0, 321, 0, 322, 0, 0, 0, 0, 191, 0, - 192, 193, 0, 0, 321, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 322, 0, 0, 0, 321, 0, - 0, 0, 322, 0, 321, 0, 0, 0, 0, 0, - 0, 321, 0, 321, 0, 0, 321, 0, 321, 0, - 321, 323, 194, 195, 323, 0, 0, 78, 0, 0, - 0, 0, 0, 0, 322, 0, 196, 322, 0, 0, - 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, - 0, 0, 0, 199, 0, 322, 323, 322, 323, 80, - 322, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 203, 322, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 322, 0, 0, - 0, 0, 0, 322, 0, 0, 0, 0, 0, 323, - 322, 0, 322, 323, 0, 322, 0, 322, 677, 322, - 0, 0, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 323, 332, 332, 332, 332, 332, - 332, 332, 323, 333, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 333, 333, 0, 333, 333, 333, 333, - 333, 333, 333, 0, 0, 0, 0, 78, 0, 0, - 0, 0, 0, 0, 323, 0, 196, 323, 0, 0, - 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, - 0, 0, 0, 199, 0, 323, 0, 323, 0, 80, - 323, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 323, 263, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 323, 0, 332, - 0, 0, 0, 323, 0, 332, 0, 0, 0, 0, - 323, 0, 323, 0, 0, 323, 0, 323, 0, 323, - 333, 0, 0, 0, 0, 0, 333, 264, 194, 195, - 650, 265, 266, 78, 267, 0, 0, 268, 0, 0, - 0, 269, 196, 0, 0, 651, 0, 0, 270, 271, - 5, 272, 0, 273, 274, 198, 275, 0, 78, 276, - 0, 0, 0, 0, 0, 80, 0, 196, 81, 20, - 0, 0, 0, 197, 0, 0, 277, 0, 157, 717, - 198, 0, 278, 0, 199, 204, 205, 206, 207, 0, - 80, 208, 209, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 206, 207, 263, 0, 208, 209, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 332, 332, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, - 0, 0, 0, 0, 333, 333, 0, 264, 194, 195, - 650, 265, 266, 78, 267, 0, 0, 268, 0, 0, - 333, 269, 196, 0, 0, 651, 0, 0, 270, 271, - 5, 272, 263, 273, 274, 198, 275, 0, 0, 276, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 0, 0, 0, 0, 277, 0, 157, 745, - 0, 0, 278, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 0, 0, 264, 194, 195, -264, 265, - 266, 78, 267, 0, 0, 268, 0, 0, 0, 269, - 196, 0, 0, -264, 0, 0, 270, 271, 5, 272, - 263, 273, 274, 198, 275, 0, 0, 276, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 0, 0, 0, 0, 277, 0, 157, -264, 0, 0, - 278, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 0, 0, 264, 194, 195, 0, 265, 266, 78, - 267, 0, 0, 268, 0, 0, 0, 269, 196, 0, - 0, 0, 0, 0, 270, 271, 5, 272, 263, 273, + 331, 331, 331, 331, 331, 331, 631, 84, 101, 492, + 434, -65, 417, 500, 761, -65, 673, 413, -322, 551, + 766, 694, 46, 119, 427, 316, 46, 636, 189, 462, + 726, 128, 316, -30, 1, 746, 282, 53, 546, 419, + 316, 42, 316, 282, 423, 316, 137, 454, 475, 138, + 139, 282, 486, 282, -65, 501, 558, -256, -65, -66, + 438, 638, -31, 1, 88, 408, 566, 643, 568, 317, + 646, 763, 71, -158, 450, 189, 317, 2, 492, 250, + 139, 640, 442, 450, 317, 445, 317, 647, 3, 317, + 327, 133, 465, 331, 4, 463, 328, 647, 674, 331, + 5, 591, -66, 593, 418, 407, 2, 679, 749, 58, + 652, 57, 280, 498, 318, 280, 685, 599, 487, 678, + 129, 755, 20, 4, 157, 653, -28, 1, 492, 5, + 165, 420, 7, 245, 42, 760, 424, -97, 133, 455, + 476, 316, -97, -97, -97, -97, 148, 502, 694, 66, + 98, 248, 282, 749, 102, 755, 78, 760, 120, 654, + 109, 7, 50, 165, 727, 196, -160, 729, 112, 281, + 2, 197, 281, 641, -139, -29, 1, 731, 198, 648, + 57, 3, 199, 189, 149, 317, 252, 4, 80, 732, + 280, 81, 20, 5, 20, 200, 201, 735, 157, 202, + 84, 6, 397, 179, -32, 1, 253, 151, 204, 205, + 206, 207, 458, 154, 208, 209, 280, 167, 257, 2, + -34, 1, -33, 1, 493, 7, 318, 177, 331, 331, + 3, 319, 320, 318, 20, 20, 4, 183, 188, 20, + 324, 318, 5, 318, 331, 20, 318, 281, 2, 157, + 167, 99, 441, 20, 118, 2, 103, 88, 359, 3, + 366, 78, 456, 134, 2, 4, 2, 682, 100, 20, + 2, 5, 180, 281, 7, 106, 78, 280, 594, 280, + 460, 4, 493, 4, 385, 595, 464, 5, 579, 5, + 494, 316, 20, 80, 316, 495, 81, 20, 20, 496, + 159, 714, 282, 7, 203, 282, 602, 722, 80, 20, + 131, 81, 20, 441, 630, 155, 441, 634, 549, 7, + 178, 7, 20, 20, 328, 20, 316, 344, 316, -35, + 1, 159, 329, 159, 281, 317, 281, 484, 317, 441, + 652, 485, 318, 319, 320, 20, 689, 20, 494, 493, + 319, 320, 441, 495, 321, 653, 121, 496, 319, 320, + 319, 320, 618, 319, 320, 20, 441, 20, 619, 316, + 317, 20, 317, 2, 316, 341, 78, 35, 57, 441, + 282, -497, -497, 754, 441, 282, 441, 757, 441, 716, + 4, 35, 690, 359, 36, 316, 5, 78, 364, 35, + 37, -341, -341, 316, 140, 78, 282, 32, 80, 141, + 142, 81, 20, 317, 122, 494, 36, 686, 317, 30, + 495, 34, 37, 619, 496, -498, -498, 32, 7, 80, + 322, 32, 81, 20, 20, 316, 728, 80, 316, 317, + 81, 20, 619, 51, 730, 386, 282, 317, 32, 282, + 619, 600, 387, -341, 600, 705, 316, -341, 316, 319, + 320, 316, 365, 603, 569, 605, 321, 282, 570, 282, + -343, -343, 282, 321, 316, 378, 379, 380, 381, 317, + 388, 321, 317, 321, 527, 282, 321, 400, 316, 401, + 477, -156, 318, 478, 316, 318, 435, 359, 2, 282, + 317, 316, 317, 316, 78, 317, 316, 439, 316, 469, + 316, 323, 282, 737, 382, 443, 738, 282, 317, 282, + 453, 282, -343, 370, 371, 372, -343, 318, 550, 318, + 368, 369, 317, 78, 139, 35, 80, 584, 317, 81, + 20, 78, 322, 373, 374, 317, 586, 317, 596, 322, + 317, 622, 317, 627, 317, 383, 384, 322, 37, 322, + 391, 392, 322, 78, 628, 80, -407, -407, 81, 20, + 318, 632, 196, 80, 633, 318, 81, 20, 197, 767, + -408, -408, 321, 639, 771, 198, 773, 649, 774, 199, + 659, -496, -496, 360, 665, 80, 318, 361, 81, 20, + 666, 362, 200, 201, 318, 667, 202, 141, 142, 319, + 320, 602, 319, 320, 156, 204, 205, 206, 207, 710, + 78, 208, 209, 323, 510, 512, 2, 531, 533, 79, + 323, 4, 78, 375, 376, 377, 318, 5, 323, 318, + 323, 723, 588, 323, 319, 320, 319, 320, 520, 522, + 524, 526, 80, 736, -207, 81, 20, 318, 322, 318, + 739, 740, 318, 741, 80, 157, 158, 81, 20, 332, + 332, 332, 332, 742, 748, 318, 394, 332, 332, -15, + 466, 467, 468, 750, -496, -496, 360, 319, 320, 318, + 430, 758, 319, 320, 431, 318, 770, 191, 759, 192, + 193, 765, 318, 768, 318, 772, 776, 318, 777, 318, + 2, 318, 529, 319, 320, 33, 78, 75, 514, 516, + 518, 319, 320, -15, 108, 79, 256, 4, -496, -496, + 360, 190, 321, 5, 430, 321, 254, 395, 362, 323, + 554, 194, 195, 73, 127, 449, 78, 403, 80, 437, + 717, 81, 20, 319, 320, 196, 319, 320, 452, 644, + 718, 197, 82, 645, 473, 535, 539, 321, 198, 321, + 537, 541, 199, 688, 319, 320, 319, 320, 80, 319, + 320, 81, 20, 548, 543, 200, 201, 0, 0, 202, + 0, 203, 319, 320, 0, 0, 0, 0, 204, 205, + 206, 207, 0, 0, 208, 209, 319, 320, 322, 0, + 321, 322, 319, 320, 0, 321, 0, 0, 0, 319, + 320, 319, 320, 0, 319, 320, 319, 320, 319, 320, + 0, -496, -496, 360, 0, 0, 321, 480, 0, 0, + 0, 362, 0, 322, 321, 322, 0, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 0, + 332, 332, 332, 332, 332, 332, 332, 156, -496, -496, + 360, 0, 0, 78, 361, 0, 321, 0, 431, 321, + 0, 0, 79, 0, 4, 0, 322, 0, 0, 323, + 5, 322, 323, 0, 0, 0, 0, 321, 0, 321, + 0, 0, 321, 0, 0, 80, 0, 0, 81, 20, + 0, 0, 322, 0, 0, 321, 0, 0, 157, 255, + 322, 0, 0, 0, 323, 0, 323, 0, 0, 321, + 0, 333, 333, 333, 333, 321, 0, 0, 0, 333, + 333, 0, 321, 0, 321, 0, 0, 321, 0, 321, + 0, 321, 322, 0, 332, 322, 0, 0, 0, -15, + 332, 0, 0, 0, -496, -496, 360, 323, 0, 0, + 430, 0, 323, 322, 629, 322, 0, 414, 322, 192, + 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 322, 0, 323, 0, 0, 0, 0, 0, 0, + 0, 323, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 322, 0, + 322, 194, 195, 322, 0, 322, 78, 322, 0, 0, + 0, 0, 0, 323, 0, 196, 323, 0, 0, 0, + 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 199, 0, 323, 0, 323, 0, 80, 323, + 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, + 0, 0, 323, 0, 0, 415, 0, 0, 204, 205, + 206, 207, 0, 0, 208, 209, 323, 263, 0, 332, + 332, 0, 323, 0, 0, 0, 0, 0, 0, 323, + 0, 323, 0, 0, 323, 332, 323, 0, 323, 333, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, + 333, 0, 333, 333, 333, 333, 333, 333, 333, 0, + 264, 194, 195, 652, 265, 266, 78, 267, 0, 0, + 268, 0, 0, 0, 269, 196, 0, 0, 653, 0, + 0, 270, 271, 5, 272, 0, 273, 274, 198, 275, + 263, 0, 276, 0, 0, 0, 0, 0, 80, 0, + 0, 81, 20, 0, 0, 0, 0, 0, 0, 277, + 0, 157, 719, 0, 0, 278, 0, 0, 204, 205, + 206, 207, 0, 0, 208, 209, 0, 0, 0, 0, + 0, 0, 0, 264, 194, 195, 652, 265, 266, 78, + 267, 0, 0, 268, 0, 0, 333, 269, 196, 0, + 0, 653, 333, 0, 270, 271, 5, 272, 263, 273, 274, 198, 275, 0, 0, 276, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 0, 0, - 0, 0, 277, 0, 157, 436, 0, 0, 278, 0, + 0, 0, 277, 0, 157, 747, 0, 0, 278, 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, 0, - 0, 264, 194, 195, 0, 265, 266, 78, 267, 0, - 0, 268, 0, 0, 0, 269, 196, 0, 0, 0, - 0, 0, 270, 271, 5, 272, 263, 273, 274, 198, - 275, 0, 0, 276, 0, 0, 0, 0, 0, 80, + 0, 264, 194, 195, -266, 265, 266, 78, 267, 0, + 0, 268, 0, 0, 0, 269, 196, 0, 0, -266, + 0, 0, 270, 271, 5, 272, 0, 273, 274, 198, + 275, 2, 0, 276, 0, 0, 0, 78, 0, 80, + 0, 263, 81, 20, 0, 0, 79, 0, 4, 0, + 277, 0, 157, -266, 5, 0, 278, 0, 0, 204, + 205, 206, 207, 0, 0, 208, 209, 0, 0, 80, 0, 0, 81, 20, 0, 0, 0, 0, 0, 0, - 277, 0, 157, 0, 0, 0, 278, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 0, 0, 440, - 194, 195, 0, 265, 266, 78, 267, 0, 0, 268, - 0, 0, 0, 269, 196, 0, 0, 0, 0, 0, - 270, 271, 263, 272, 0, 273, 274, 198, 275, 0, - 0, 276, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 0, 0, 0, 0, 277, 0, - 157, 0, 0, 0, 278, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 440, 194, 195, 0, 691, - 266, 78, 267, 0, 0, 268, 0, 0, 0, 269, - 196, 0, 0, 0, 0, 0, 270, 271, 0, 272, - 0, 273, 274, 198, 275, 0, 614, 276, 192, 193, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 0, 0, 0, 0, 277, 0, 157, 0, 0, 0, - 278, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 194, 195, 0, 0, 0, 78, 0, 0, 0, 0, - 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, - 197, 414, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 203, 615, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 544, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 194, 195, 0, 415, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 491, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 545, - 200, 201, 0, 0, 202, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 580, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, + 0, 333, 333, 126, 264, 194, 195, 0, 265, 266, + 78, 267, 0, 0, 268, 0, 0, 333, 269, 196, + 0, 0, 0, 0, 0, 270, 271, 5, 272, 263, + 273, 274, 198, 275, 0, 0, 276, 0, 0, 0, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 0, + 0, 0, 0, 277, 0, 157, 436, 0, 0, 278, + 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, + 0, 0, 264, 194, 195, 0, 265, 266, 78, 267, + 0, 0, 268, 0, 0, 0, 269, 196, 0, 0, + 0, 0, 0, 270, 271, 5, 272, 263, 273, 274, + 198, 275, 0, 0, 276, 0, 0, 0, 0, 0, + 80, 0, 0, 81, 20, 0, 0, 0, 0, 0, + 0, 277, 0, 157, 0, 0, 0, 278, 0, 0, + 204, 205, 206, 207, 0, 0, 208, 209, 0, 0, + 440, 194, 195, 0, 265, 266, 78, 267, 0, 0, + 268, 0, 0, 0, 269, 196, 0, 0, 0, 0, + 0, 270, 271, 263, 272, 0, 273, 274, 198, 275, + 0, 0, 276, 0, 0, 0, 0, 0, 80, 0, + 0, 81, 20, 0, 0, 0, 0, 0, 0, 277, + 0, 157, 0, 0, 0, 278, 0, 0, 204, 205, + 206, 207, 0, 0, 208, 209, 440, 194, 195, 0, + 693, 266, 78, 267, 0, 0, 268, 0, 0, 0, + 269, 196, 0, 0, 0, 0, 0, 270, 271, 0, + 272, 0, 273, 274, 198, 275, 0, 615, 276, 192, + 193, 0, 0, 0, 80, 0, 0, 81, 20, 0, + 0, 0, 0, 0, 0, 277, 0, 157, 0, 0, + 0, 278, 0, 0, 204, 205, 206, 207, 0, 0, + 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 194, 195, 0, 0, 0, 78, 0, 0, 0, + 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, + 0, 197, 544, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 194, 195, 148, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 588, 0, 192, 193, 0, 0, 198, + 0, 203, 616, 0, 0, 0, 0, 0, 204, 205, + 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, + 0, 78, 0, 491, 0, 192, 193, 0, 0, 0, + 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 80, 0, 0, 81, 20, 0, 545, + 200, 201, 0, 0, 202, 0, 0, 194, 195, 0, + 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, + 209, 196, 0, 0, 0, 0, 0, 197, 581, 0, + 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, + 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, + 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, + 148, 0, 0, 0, 204, 205, 206, 207, 0, 0, + 208, 209, 194, 195, 0, 0, 0, 78, 0, 589, + 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 581, 0, 0, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 596, 0, 192, 193, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 194, 195, - 0, 589, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 605, - 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 0, - 0, 597, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, - 491, 0, 192, 193, 0, 0, 0, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, + 202, 582, 0, 194, 195, 0, 0, 0, 78, 204, + 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, + 0, 0, 0, 197, 597, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 606, 0, 194, 195, 0, 0, 0, 78, - 204, 205, 206, 207, 0, 0, 208, 209, 196, 0, - 0, 0, 0, 0, 197, 580, 0, 192, 193, 0, + 0, 202, 0, 0, 0, 0, 0, 590, 0, 0, + 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, + 0, 0, 0, 78, 0, 606, 0, 192, 193, 0, + 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, + 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, + 0, 0, 200, 201, 0, 0, 202, 0, 0, 194, + 195, 598, 0, 0, 78, 204, 205, 206, 207, 0, + 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, + 491, 0, 192, 193, 0, 0, 198, 0, 0, 0, + 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, + 20, 0, 0, 200, 201, 0, 0, 202, 607, 0, + 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, + 0, 0, 208, 209, 194, 195, 0, 0, 0, 78, + 0, 581, 0, 192, 193, 0, 0, 0, 196, 0, + 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 0, 0, 597, 0, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 194, - 195, 0, 0, 0, 78, 0, 705, 0, 192, 193, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 689, 0, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 705, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 706, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 588, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, + 0, 0, 202, 0, 0, 194, 195, 598, 0, 0, + 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, + 0, 0, 0, 0, 0, 197, 707, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 749, 0, 194, 195, 0, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 330, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 0, 0, 0, - 754, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 335, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, + 201, 0, 0, 202, 691, 0, 0, 0, 0, 0, + 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, + 194, 195, 0, 0, 0, 78, 0, 707, 0, 192, + 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 200, 201, 0, 0, 202, 708, + 0, 194, 195, 0, 0, 0, 78, 204, 205, 206, + 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, + 0, 197, 589, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 194, 195, 0, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 337, 0, 192, 193, 0, 0, 198, + 751, 0, 0, 0, 0, 0, 0, 0, 204, 205, + 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, + 0, 78, 0, 330, 0, 192, 193, 0, 0, 0, + 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, + 200, 201, 0, 0, 202, 0, 0, 194, 195, 0, + 756, 0, 78, 204, 205, 206, 207, 0, 0, 208, + 209, 196, 0, 0, 0, 0, 0, 197, 335, 0, + 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, + 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, + 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, + 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, + 208, 209, 194, 195, 0, 0, 0, 78, 0, 337, + 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 339, 0, 192, 193, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 194, 195, - 0, 0, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 348, - 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 0, - 0, 0, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, - 350, 0, 192, 193, 0, 0, 0, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, + 202, 0, 0, 194, 195, 0, 0, 0, 78, 204, + 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, + 0, 0, 0, 197, 339, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 194, 195, 0, 0, 0, 78, - 204, 205, 206, 207, 0, 0, 208, 209, 196, 0, - 0, 0, 0, 0, 197, 352, 0, 192, 193, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 194, - 195, 0, 0, 0, 78, 0, 409, 0, 192, 193, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, + 0, 0, 0, 78, 0, 348, 0, 192, 193, 0, + 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, + 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, + 0, 0, 200, 201, 0, 0, 202, 0, 0, 194, + 195, 0, 0, 0, 78, 204, 205, 206, 207, 0, + 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, + 350, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 491, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 499, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, + 0, 0, 208, 209, 194, 195, 0, 0, 0, 78, + 0, 352, 0, 192, 193, 0, 0, 0, 196, 0, + 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, + 0, 0, 202, 0, 0, 194, 195, 0, 0, 0, + 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, + 0, 0, 0, 0, 0, 197, 409, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 194, 195, 0, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 503, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 505, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, + 201, 0, 0, 202, 0, 0, 0, 0, 0, 0, + 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, + 194, 195, 0, 0, 0, 78, 0, 491, 0, 192, + 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, + 0, 194, 195, 0, 0, 0, 78, 204, 205, 206, + 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, + 0, 197, 499, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 194, 195, 0, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 507, 0, 192, 193, 0, 0, 198, + 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, + 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, + 0, 78, 0, 503, 0, 192, 193, 0, 0, 0, + 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, + 200, 201, 0, 0, 202, 0, 0, 194, 195, 0, + 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, + 209, 196, 0, 0, 0, 0, 0, 197, 505, 0, + 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, + 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, + 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, + 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, + 208, 209, 194, 195, 0, 0, 0, 78, 0, 507, + 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 509, 0, 192, 193, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 194, 195, - 0, 0, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 511, - 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 0, - 0, 0, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, - 513, 0, 192, 193, 0, 0, 0, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, + 202, 0, 0, 194, 195, 0, 0, 0, 78, 204, + 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, + 0, 0, 0, 197, 509, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 194, 195, 0, 0, 0, 78, - 204, 205, 206, 207, 0, 0, 208, 209, 196, 0, - 0, 0, 0, 0, 197, 515, 0, 192, 193, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 194, - 195, 0, 0, 0, 78, 0, 517, 0, 192, 193, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, + 0, 0, 0, 78, 0, 511, 0, 192, 193, 0, + 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, + 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, + 0, 0, 200, 201, 0, 0, 202, 0, 0, 194, + 195, 0, 0, 0, 78, 204, 205, 206, 207, 0, + 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, + 513, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 519, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 521, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, + 0, 0, 208, 209, 194, 195, 0, 0, 0, 78, + 0, 515, 0, 192, 193, 0, 0, 0, 196, 0, + 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, + 0, 0, 202, 0, 0, 194, 195, 0, 0, 0, + 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, + 0, 0, 0, 0, 0, 197, 517, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 194, 195, 0, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 523, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 525, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, + 201, 0, 0, 202, 0, 0, 0, 0, 0, 0, + 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, + 194, 195, 0, 0, 0, 78, 0, 519, 0, 192, + 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, + 0, 194, 195, 0, 0, 0, 78, 204, 205, 206, + 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, + 0, 197, 521, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 194, 195, 0, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 530, 0, 192, 193, 0, 0, 198, + 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, + 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, + 0, 78, 0, 523, 0, 192, 193, 0, 0, 0, + 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, + 200, 201, 0, 0, 202, 0, 0, 194, 195, 0, + 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, + 209, 196, 0, 0, 0, 0, 0, 197, 525, 0, + 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, + 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, + 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, + 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, + 208, 209, 194, 195, 0, 0, 0, 78, 0, 530, + 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 532, 0, 192, 193, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 194, 195, - 0, 0, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 534, - 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 0, - 0, 0, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, - 536, 0, 192, 193, 0, 0, 0, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, + 202, 0, 0, 194, 195, 0, 0, 0, 78, 204, + 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, + 0, 0, 0, 197, 532, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 194, 195, 0, 0, 0, 78, - 204, 205, 206, 207, 0, 0, 208, 209, 196, 0, - 0, 0, 0, 0, 197, 538, 0, 192, 193, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 194, - 195, 0, 0, 0, 78, 0, 540, 0, 192, 193, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, + 0, 0, 0, 78, 0, 534, 0, 192, 193, 0, + 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, + 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, + 0, 0, 200, 201, 0, 0, 202, 0, 0, 194, + 195, 0, 0, 0, 78, 204, 205, 206, 207, 0, + 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, + 536, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 542, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 547, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, + 0, 0, 208, 209, 194, 195, 0, 0, 0, 78, + 0, 538, 0, 192, 193, 0, 0, 0, 196, 0, + 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, + 0, 0, 202, 0, 0, 194, 195, 0, 0, 0, + 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, + 0, 0, 0, 0, 0, 197, 540, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 194, 195, 0, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 556, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 564, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, + 201, 0, 0, 202, 0, 0, 0, 0, 0, 0, + 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, + 194, 195, 0, 0, 0, 78, 0, 542, 0, 192, + 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, + 0, 194, 195, 0, 0, 0, 78, 204, 205, 206, + 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, + 0, 197, 547, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 194, 195, 0, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 566, 0, 192, 193, 0, 0, 198, + 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, + 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, + 0, 78, 0, 557, 0, 192, 193, 0, 0, 0, + 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, + 200, 201, 0, 0, 202, 0, 0, 194, 195, 0, + 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, + 209, 196, 0, 0, 0, 0, 0, 197, 565, 0, + 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, + 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, + 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, + 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, + 208, 209, 194, 195, 0, 0, 0, 78, 0, 567, + 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 591, 0, 192, 193, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 194, 195, - 0, 0, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 608, - 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, - 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 0, - 0, 0, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, - 675, 0, 192, 193, 0, 0, 0, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, + 202, 0, 0, 194, 195, 0, 0, 0, 78, 204, + 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, + 0, 0, 0, 197, 592, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 194, 195, 0, 0, 0, 78, - 204, 205, 206, 207, 0, 0, 208, 209, 196, 0, - 0, 0, 0, 0, 197, 679, 0, 192, 193, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 194, - 195, 0, 0, 0, 78, 0, 685, 0, 192, 193, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, + 0, 0, 0, 78, 0, 609, 0, 192, 193, 0, + 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, + 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, + 0, 0, 200, 201, 0, 0, 202, 0, 0, 194, + 195, 0, 0, 0, 78, 204, 205, 206, 207, 0, + 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, + 677, 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 711, 0, 192, 193, 0, 0, 198, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, + 0, 0, 208, 209, 194, 195, 0, 0, 0, 78, + 0, 681, 0, 192, 193, 0, 0, 0, 196, 0, + 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, + 0, 0, 202, 0, 0, 194, 195, 0, 0, 0, + 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, + 0, 0, 0, 0, 0, 197, 687, 0, 192, 193, + 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, + 201, 0, 0, 202, 0, 0, 0, 0, 0, 0, + 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, + 194, 195, 0, 0, 0, 78, 0, 713, 0, 192, + 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 574, 0, 0, 0, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, 199, 660, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, -287, -287, -287, 0, 0, - 0, -287, 204, 205, 206, 207, 0, 0, 208, 209, - -287, 0, 0, 0, 0, 0, -287, 0, 0, 722, - 0, 194, 195, -287, 0, 0, 78, -287, 0, 0, - 0, 0, 0, -287, 0, 196, -287, -287, 0, 0, - 0, 197, 0, 0, -287, 0, 192, 193, 198, 0, - -287, 0, 199, -287, -287, -287, -287, 0, 80, -287, - -287, 81, 20, 194, 195, 0, 0, 0, 78, 277, - -295, 0, 0, 0, 0, 0, 0, 196, 204, 205, - 206, 207, 0, 197, 208, 209, 658, 0, 194, 195, - 198, 0, 0, 78, 199, 0, 0, 0, 0, 0, - 80, 0, 196, 81, 20, 0, 0, 0, 197, 0, - 0, 277, -295, 192, 193, 198, 0, 0, 0, 199, - 204, 205, 206, 207, 0, 80, 208, 209, 81, 20, - 194, 195, 200, 201, 0, 78, 202, 0, 203, 356, - 0, 0, 0, 0, 196, 204, 205, 206, 207, 0, - 197, 208, 209, 0, 0, 194, 195, 198, 0, 0, - 78, 199, 0, 0, 192, 193, 0, 80, 0, 196, - 81, 20, 0, 0, 0, 197, 0, 0, 277, 0, - 0, 0, 198, 0, 0, 0, 199, 204, 205, 206, - 207, 0, 80, 208, 209, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 488, 0, 194, 195, 0, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 0, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 624, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 0, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, + 0, 194, 195, 0, 0, 0, 78, 204, 205, 206, + 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, + 0, 197, 0, 575, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 666, 0, 194, 195, 0, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 0, 0, 192, 193, 0, 0, 198, + 0, 81, 20, 0, 0, 200, 201, 0, 662, 202, + 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, + 206, 207, 0, 0, 208, 209, -289, -289, -289, 0, + 0, 0, -289, 0, 0, 0, 0, 0, 0, 0, + 0, -289, 0, 0, 0, 0, 0, -289, 0, 0, + 724, 0, 194, 195, -289, 0, 0, 78, -289, 0, + 0, 0, 0, 0, -289, 0, 196, -289, -289, 0, + 0, 0, 197, 0, 0, -289, 0, 192, 193, 198, + 0, -289, 0, 199, -289, -289, -289, -289, 0, 80, + -289, -289, 81, 20, 194, 195, 0, 0, 0, 78, + 277, -297, 0, 0, 0, 0, 0, 0, 196, 204, + 205, 206, 207, 0, 197, 208, 209, 660, 0, 194, + 195, 198, 0, 0, 78, 199, 0, 0, 0, 0, + 0, 80, 0, 196, 81, 20, 0, 0, 0, 197, + 0, 0, 277, -297, 192, 193, 198, 0, 0, 0, + 199, 204, 205, 206, 207, 0, 80, 208, 209, 81, + 20, 194, 195, 200, 201, 0, 78, 202, 0, 203, + 356, 0, 0, 0, 0, 196, 204, 205, 206, 207, + 0, 197, 208, 209, 0, 0, 194, 195, 198, 0, + 0, 78, 199, 0, 0, 192, 193, 0, 80, 0, + 196, 81, 20, 0, 0, 0, 197, 0, 0, 277, + 0, 0, 0, 198, 0, 0, 0, 199, 204, 205, + 206, 207, 0, 80, 208, 209, 81, 20, 0, 0, + 200, 201, 0, 0, 202, 488, 0, 194, 195, 0, + 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, + 209, 196, 0, 0, 0, 0, 0, 197, 0, 0, + 192, 193, 0, 0, 198, 0, 0, 0, 199, 0, + 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, + 0, 200, 201, 0, 0, 202, 625, 0, 0, 0, + 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, + 208, 209, 194, 195, 0, 0, 0, 78, 0, 0, + 0, 192, 193, 0, 0, 0, 196, 0, 0, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 681, 0, 0, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 2, 194, 195, - 0, 0, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 0, + 202, 668, 0, 194, 195, 0, 0, 0, 78, 204, + 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, + 0, 0, 0, 197, 0, 0, 192, 193, 0, 0, + 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, + 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, + 0, 202, 683, 0, 0, 0, 0, 0, 0, 0, + 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, + 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, + 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, - 0, 0, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209 + 0, 0, 200, 201, 0, 0, 202, 0, 2, 194, + 195, 0, 0, 0, 78, 204, 205, 206, 207, 0, + 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, + 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, + 20, 0, 0, 0, 0, 0, 0, 277, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 205, 206, 207, + 0, 0, 208, 209 }; static const short yycheck[] = { 3, - 132, 403, 6, 287, 307, 123, 328, 42, 62, 175, - 203, 46, 134, 294, 483, 179, 0, 83, 117, 1, - 62, 302, 129, 304, 86, 9, 10, 11, 1, 64, - 1, 1, 663, 1, 69, 89, 62, 1, 42, 655, - 94, 97, 46, 1, 95, 101, 30, 1, 634, 33, - 34, 150, 94, 1, 153, 162, 122, 123, 62, 1, - 64, 1, 169, 89, 94, 69, 1, 51, 94, 1, - 100, 129, 100, 172, 1, 129, 198, 1, 62, 133, - 192, 193, 194, 195, 346, 89, 1, 129, 200, 201, - 94, 353, 354, 128, 1, 1, 67, 67, 101, 134, - 716, 72, 1, 129, 162, 76, 160, 133, 162, 695, - 94, 175, 698, 1, 1, 86, 1, 99, 435, 101, - 162, 175, 1, 754, 128, 129, 180, 1, 101, 133, - 134, 99, 763, 101, 160, 99, 162, 4, 5, 93, - 98, 634, 1, 612, 198, 129, 86, 101, 202, 133, - 552, 99, 259, 555, 180, 254, 160, 99, 162, 476, - 1, 279, 326, 198, 99, 100, 273, 99, 100, 36, - 37, 175, 99, 40, 98, 761, 180, 1, 162, 94, - 766, 52, 768, 50, 770, 502, 634, 94, 192, 193, - 194, 195, 98, 100, 198, 94, 200, 201, 202, 253, - 634, 100, 695, 1, 140, 698, 93, 329, 470, 94, - 98, 473, 79, 92, 93, 100, 83, 1, 97, 98, - 99, 100, 63, 287, 1, 99, 95, 253, 630, 283, - 294, 47, 1, 287, 1, 94, 47, 403, 302, 1, - 304, 100, 1, 307, 0, 1, 62, 695, 1, 253, - 698, 62, 97, 307, 95, 122, 123, 283, 370, 371, - 372, 695, 1, 1, 698, 1, 202, 203, 761, 253, - 94, 555, 139, 766, 328, 768, 100, 770, 595, 283, - 96, 94, 15, 287, 587, 96, 589, 100, 44, 1, - 294, 1, 485, 97, 329, 1, 1, 95, 302, 55, - 304, 99, 328, 307, 621, 61, 1, 1, 175, 1, - 1, 67, 179, 761, 631, 99, 434, 639, 766, 1, - 768, 98, 770, 307, 328, 329, 95, 761, 382, 646, - 266, 98, 766, 269, 768, 100, 770, 99, 1, 403, - 99, 277, 1, 99, 328, 98, 630, 52, 86, 403, - 1, 218, 1, 634, 87, 1, 1, 98, 63, 98, - 663, 99, 98, 45, 46, 477, 370, 371, 372, 373, + 328, 62, 6, 132, 62, 307, 129, 287, 175, 203, + 134, 0, 483, 179, 1, 1, 123, 1, 1, 346, + 9, 10, 11, 1, 83, 42, 353, 354, 89, 46, + 9, 89, 1, 94, 53, 1, 94, 657, 42, 162, + 1, 30, 46, 72, 33, 34, 169, 64, 435, 1, + 94, 62, 69, 97, 33, 86, 1, 86, 62, 294, + 64, 665, 51, 122, 123, 69, 1, 302, 129, 304, + 95, 129, 133, 62, 198, 133, 117, 1, 97, 192, + 193, 194, 195, 94, 636, 89, 1, 200, 201, 476, + 94, 1, 1, 95, 96, 1, 5, 99, 718, 160, + 86, 162, 160, 86, 162, 94, 636, 94, 1, 150, + 94, 128, 153, 100, 175, 502, 100, 134, 129, 180, + 1, 99, 180, 101, 128, 129, 1, 93, 1, 133, + 134, 172, 101, 4, 5, 101, 259, 198, 99, 636, + 129, 202, 613, 470, 133, 697, 473, 99, 700, 101, + 273, 162, 756, 0, 99, 100, 160, 1, 162, 94, + 326, 765, 9, 10, 11, 36, 37, 697, 140, 40, + 700, 175, 279, 162, 1, 99, 180, 86, 88, 50, + 1, 198, 1, 30, 99, 100, 33, 34, 192, 193, + 194, 195, 253, 99, 198, 253, 200, 201, 202, 636, + 697, 94, 1, 700, 51, 329, 100, 100, 79, 596, + 1, 763, 83, 254, 1, 62, 768, 98, 770, 1, + 772, 94, 283, 1, 99, 283, 287, 100, 1, 1, + 202, 203, 1, 763, 1, 622, 403, 1, 768, 1, + 770, 1, 772, 1, 1, 632, 307, 94, 92, 253, + 94, 122, 123, 97, 98, 99, 100, 370, 371, 372, + 697, 648, 1, 700, 253, 1, 763, 328, 139, 1, + 328, 768, 99, 770, 95, 772, 556, 15, 99, 283, + 99, 93, 129, 287, 94, 97, 588, 97, 590, 101, + 294, 485, 101, 175, 266, 94, 1, 269, 302, 1, + 304, 100, 1, 307, 175, 277, 1, 98, 179, 45, + 46, 98, 329, 641, 1, 162, 98, 86, 307, 86, + 98, 382, 95, 95, 328, 329, 763, 434, 1, 86, + 99, 768, 99, 770, 98, 772, 98, 175, 98, 328, + 1, 99, 403, 1, 1, 732, 52, 218, 1, 87, + 86, 631, 88, 1, 97, 91, 92, 93, 1, 1, + 99, 97, 94, 665, 477, 101, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 552, 99, 94, 99, - 95, 1, 86, 52, 448, 86, 1, 175, 93, 403, - 63, 268, 1, 95, 86, 99, 88, 52, 275, 91, - 92, 93, 279, 730, 695, 97, 1, 698, 63, 101, - 287, 1, 448, 1, 1, 361, 1, 294, 175, 365, - 1, 53, 95, 129, 718, 302, 95, 304, 1, 1, - 721, 92, 88, 94, 448, 94, 97, 98, 99, 100, - 95, 754, 94, 734, 390, 97, 1, 9, 1, 326, - 763, 1, 569, 93, 44, 572, 162, 748, 1, 1, - 50, 1, 408, 477, 606, 97, 343, 1, 1, 483, - 761, 33, 418, 93, 420, 766, 1, 768, 552, 770, - 95, 555, 624, 65, 430, 362, 95, 364, 552, 611, - 72, 555, 82, 1, 1, 85, 86, 5, 93, 287, - 1, 88, 0, 1, 94, 93, 294, 453, 93, 455, - 1, 1, 93, 587, 302, 589, 304, 91, 92, 307, - 1, 94, 94, 469, 67, 107, 403, 0, 1, 1, - 287, 86, 674, 94, 480, 72, 97, 294, 552, 485, - 93, 555, 684, 93, 175, 302, 44, 304, 665, 86, - 307, 93, 1, 93, 431, 1, 630, 434, 1, 93, - 634, 86, 470, 61, 1, 473, 630, 0, 1, 67, - 1, 44, 1, 1, 95, 639, 97, 94, 86, 86, - 1, 655, 55, 1, 101, 86, 95, 96, 61, 663, - 99, 655, 0, 1, 67, 86, 86, 611, 612, 0, - 44, 99, 75, 639, 96, 86, 175, 95, 9, 10, - 11, 44, 1, 627, 86, 403, 630, 61, 0, 1, - 634, 695, 55, 67, 698, 639, 99, 93, 61, 30, - 93, 97, 33, 34, 67, 101, 44, 86, 99, 100, - 86, 655, 716, 86, 718, 639, 403, 721, 695, 86, - 51, 698, 716, 61, 718, 86, 287, 86, 86, 67, - 734, 62, 44, 294, 99, 86, 99, 53, 86, 0, - 1, 302, 618, 304, 748, 552, 307, 100, 555, 61, - 754, 695, 0, 1, 698, 67, 95, 761, 10, 763, - 1, 99, 766, 94, 768, 175, 770, 86, 64, 101, - 94, 1, 716, 69, 718, 651, 100, 721, 30, 1, - 94, 657, 34, 44, 761, 129, 100, 99, 287, 766, - 734, 768, 101, 770, 55, 294, 44, 1, 129, 51, - 61, 94, 101, 302, 748, 304, 67, 100, 307, 50, - 45, 46, 97, 61, 44, 11, 160, 761, 162, 67, - 50, 628, 766, 630, 768, 95, 770, 634, 50, 99, - 13, 162, 128, 12, 552, 1, 94, 555, 99, 97, - 44, 82, 403, 101, 85, 86, 50, 1, 655, 96, - 14, 99, 82, 100, 175, 85, 86, 733, 95, 1, - 82, 737, 97, 85, 86, 552, 101, 92, 555, 587, - 99, 589, 97, 98, 9, 93, 11, 287, 82, 94, - 93, 85, 86, 99, 294, 100, 45, 46, 695, 97, - 44, 698, 302, 101, 304, 97, 50, 307, 33, 65, - 587, 67, 589, 100, 403, 59, 72, 61, 95, 716, - 76, 718, 630, 67, 721, 60, 634, 99, 100, 64, - 86, 91, 92, 65, 472, 67, 474, 734, 82, 66, - 72, 85, 86, 44, 76, 45, 46, 655, 97, 50, - 1, 748, 101, 630, 86, 663, 99, 634, 59, 99, - 61, 5, 6, 7, 761, 99, 67, 3, 4, 766, - 93, 768, 93, 770, 16, 17, 287, 88, 655, 91, - 92, 82, 44, 294, 85, 86, 663, 695, 50, 93, - 698, 302, 94, 304, 175, 96, 307, 59, 1, 61, - 93, 552, 99, 403, 555, 67, 45, 46, 716, 44, - 718, 45, 46, 721, 94, 50, 97, 98, 695, 94, - 82, 698, 1, 85, 86, 97, 734, 8, 9, 10, - 94, 44, 100, 95, 96, 56, 587, 50, 589, 716, - 748, 718, 373, 374, 721, 56, 754, 82, 383, 384, - 85, 86, 99, 761, 67, 763, 94, 734, 766, 94, - 768, 44, 770, 552, 94, 1, 555, 50, 94, 82, - 94, 748, 85, 86, 97, 98, 99, 754, 1, 630, - 375, 376, 377, 634, 761, 99, 763, 99, 94, 766, - 56, 768, 403, 770, 18, 19, 20, 21, 587, 82, - 589, 44, 85, 86, 655, 94, 287, 50, 0, 91, - 92, 93, 663, 294, 0, 97, 59, 382, 61, 101, - 11, 302, 54, 304, 67, 75, 307, 253, 378, 379, - 380, 381, 139, 57, 44, 162, 403, 52, 160, 82, - 50, 630, 85, 86, 695, 634, 94, 698, 261, 59, - 307, 61, 552, 96, 653, 555, 653, 67, 91, 92, - 93, 307, 346, 570, 97, 716, 655, 718, 101, 385, - 721, 570, 82, 86, 663, 85, 86, 386, 91, 92, - 93, 388, 393, 734, 97, 95, 96, 587, 101, 589, - 387, 627, -1, 86, 389, -1, -1, 748, 91, 92, - 93, -1, -1, 754, 97, -1, 695, -1, 101, 698, - 761, -1, 763, -1, -1, 766, -1, 768, -1, 770, - -1, -1, 403, -1, -1, -1, -1, 716, -1, 718, - 630, 86, 721, -1, 634, -1, 91, 92, 93, -1, - -1, 552, 97, -1, 555, 734, 101, 91, 92, 93, - -1, -1, -1, 97, -1, 655, -1, 101, -1, 748, - -1, -1, -1, 663, -1, 754, -1, -1, -1, -1, - -1, -1, 761, -1, 763, -1, 587, 766, 589, 768, - -1, 770, -1, -1, 192, 193, 194, 195, -1, -1, - -1, -1, 200, 201, -1, 695, -1, -1, 698, -1, - -1, -1, -1, -1, -1, 192, 193, 194, 195, -1, - -1, -1, -1, 200, 201, -1, 716, -1, 718, 630, - -1, 721, -1, 634, -1, -1, -1, -1, 1, -1, - 3, 4, -1, -1, 734, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 655, -1, -1, -1, 748, -1, - -1, -1, 663, -1, 754, -1, -1, -1, -1, -1, - -1, 761, -1, 763, -1, -1, 766, -1, 768, -1, - 770, 552, 45, 46, 555, -1, -1, 50, -1, -1, - -1, -1, -1, -1, 695, -1, 59, 698, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - -1, -1, -1, 76, -1, 716, 587, 718, 589, 82, - 721, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, 95, 734, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 748, -1, -1, - -1, -1, -1, 754, -1, -1, -1, -1, -1, 630, - 761, -1, 763, 634, -1, 766, -1, 768, 1, 770, - -1, -1, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 655, 383, 384, 385, 386, 387, - 388, 389, 663, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, - 387, 388, 389, -1, -1, -1, -1, 50, -1, -1, - -1, -1, -1, -1, 695, -1, 59, 698, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - -1, -1, -1, 76, -1, 716, -1, 718, -1, 82, - 721, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, 734, 1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 748, -1, 477, - -1, -1, -1, 754, -1, 483, -1, -1, -1, -1, - 761, -1, 763, -1, -1, 766, -1, 768, -1, 770, - 477, -1, -1, -1, -1, -1, 483, 44, 45, 46, - 47, 48, 49, 50, 51, -1, -1, 54, -1, -1, - -1, 58, 59, -1, -1, 62, -1, -1, 65, 66, - 67, 68, -1, 70, 71, 72, 73, -1, 50, 76, - -1, -1, -1, -1, -1, 82, -1, 59, 85, 86, - -1, -1, -1, 65, -1, -1, 93, -1, 95, 96, - 72, -1, 99, -1, 76, 102, 103, 104, 105, -1, - 82, 108, 109, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, - 102, 103, 104, 105, 1, -1, 108, 109, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 611, 612, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 627, - -1, -1, -1, -1, 611, 612, -1, 44, 45, 46, - 47, 48, 49, 50, 51, -1, -1, 54, -1, -1, - 627, 58, 59, -1, -1, 62, -1, -1, 65, 66, - 67, 68, 1, 70, 71, 72, 73, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, -1, -1, -1, -1, 93, -1, 95, 96, - -1, -1, 99, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, -1, -1, 44, 45, 46, 47, 48, - 49, 50, 51, -1, -1, 54, -1, -1, -1, 58, - 59, -1, -1, 62, -1, -1, 65, 66, 67, 68, - 1, 70, 71, 72, 73, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - -1, -1, -1, -1, 93, -1, 95, 96, -1, -1, - 99, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, -1, -1, 44, 45, 46, -1, 48, 49, 50, - 51, -1, -1, 54, -1, -1, -1, 58, 59, -1, - -1, -1, -1, -1, 65, 66, 67, 68, 1, 70, + 384, 385, 386, 387, 388, 389, 553, 448, 1, 361, + 448, 52, 1, 365, 99, 52, 98, 268, 93, 403, + 99, 636, 63, 97, 275, 287, 63, 94, 279, 1, + 1, 100, 294, 0, 1, 88, 287, 1, 390, 1, + 302, 63, 304, 294, 1, 307, 1, 1, 1, 99, + 100, 302, 1, 304, 95, 1, 408, 95, 95, 52, + 720, 94, 0, 1, 448, 93, 418, 570, 420, 287, + 573, 94, 1, 95, 756, 326, 294, 44, 430, 99, + 100, 1, 697, 765, 302, 700, 304, 1, 55, 307, + 94, 93, 343, 477, 61, 67, 100, 1, 607, 483, + 67, 453, 95, 455, 93, 1, 44, 1, 723, 1, + 47, 362, 553, 364, 175, 556, 625, 469, 67, 612, + 95, 736, 86, 61, 95, 62, 0, 1, 480, 67, + 129, 93, 99, 485, 63, 750, 93, 92, 93, 93, + 93, 403, 97, 98, 99, 100, 98, 93, 763, 1, + 1, 1, 403, 768, 1, 770, 50, 772, 97, 96, + 1, 99, 101, 162, 667, 59, 95, 676, 1, 553, + 44, 65, 556, 93, 95, 0, 1, 686, 72, 93, + 431, 55, 76, 434, 1, 403, 96, 61, 82, 93, + 631, 85, 86, 67, 86, 89, 90, 93, 95, 93, + 641, 75, 99, 641, 0, 1, 93, 1, 102, 103, + 104, 105, 1, 1, 108, 109, 657, 129, 99, 44, + 0, 1, 0, 1, 1, 99, 287, 1, 612, 613, + 55, 175, 175, 294, 86, 86, 61, 1, 1, 86, + 1, 302, 67, 304, 628, 86, 307, 631, 44, 95, + 162, 64, 636, 86, 97, 44, 69, 641, 101, 55, + 1, 50, 1, 53, 44, 61, 44, 619, 65, 86, + 44, 67, 641, 657, 99, 72, 50, 718, 94, 720, + 1, 61, 1, 61, 11, 101, 1, 67, 65, 67, + 67, 553, 86, 82, 556, 72, 85, 86, 86, 76, + 129, 653, 553, 99, 95, 556, 97, 659, 82, 86, + 107, 85, 86, 697, 553, 128, 700, 556, 94, 99, + 94, 99, 86, 86, 100, 86, 588, 1, 590, 0, + 1, 160, 100, 162, 718, 553, 720, 96, 556, 723, + 47, 100, 403, 287, 287, 86, 65, 86, 67, 1, + 294, 294, 736, 72, 175, 62, 1, 76, 302, 302, + 304, 304, 94, 307, 307, 86, 750, 86, 100, 631, + 588, 86, 590, 44, 636, 101, 50, 44, 629, 763, + 631, 91, 92, 735, 768, 636, 770, 739, 772, 96, + 61, 44, 631, 101, 61, 657, 67, 50, 101, 44, + 67, 45, 46, 665, 92, 50, 657, 10, 82, 97, + 98, 85, 86, 631, 59, 67, 61, 94, 636, 9, + 72, 11, 67, 100, 76, 91, 92, 30, 99, 82, + 175, 34, 85, 86, 86, 697, 94, 82, 700, 657, + 85, 86, 100, 33, 94, 12, 697, 665, 51, 700, + 100, 470, 13, 97, 473, 1, 718, 101, 720, 403, + 403, 723, 97, 472, 60, 474, 287, 718, 64, 720, + 45, 46, 723, 294, 736, 18, 19, 20, 21, 697, + 14, 302, 700, 304, 1, 736, 307, 99, 750, 95, + 94, 93, 553, 97, 756, 556, 93, 101, 44, 750, + 718, 763, 720, 765, 50, 723, 768, 99, 770, 97, + 772, 175, 763, 697, 57, 99, 700, 768, 736, 770, + 99, 772, 97, 5, 6, 7, 101, 588, 99, 590, + 45, 46, 750, 50, 100, 44, 82, 95, 756, 85, + 86, 50, 287, 3, 4, 763, 66, 765, 93, 294, + 768, 93, 770, 1, 772, 16, 17, 302, 67, 304, + 91, 92, 307, 50, 88, 82, 45, 46, 85, 86, + 631, 93, 59, 82, 99, 636, 85, 86, 65, 763, + 45, 46, 403, 94, 768, 72, 770, 1, 772, 76, + 93, 91, 92, 93, 99, 82, 657, 97, 85, 86, + 94, 101, 89, 90, 665, 94, 93, 97, 98, 553, + 553, 97, 556, 556, 44, 102, 103, 104, 105, 1, + 50, 108, 109, 287, 373, 374, 44, 383, 384, 59, + 294, 61, 50, 8, 9, 10, 697, 67, 302, 700, + 304, 94, 100, 307, 588, 588, 590, 590, 378, 379, + 380, 381, 82, 56, 56, 85, 86, 718, 403, 720, + 99, 94, 723, 94, 82, 95, 96, 85, 86, 192, + 193, 194, 195, 1, 94, 736, 94, 200, 201, 86, + 97, 98, 99, 94, 91, 92, 93, 631, 631, 750, + 97, 1, 636, 636, 101, 756, 56, 1, 99, 3, + 4, 99, 763, 94, 765, 94, 0, 768, 0, 770, + 44, 772, 382, 657, 657, 11, 50, 54, 375, 376, + 377, 665, 665, 86, 75, 59, 162, 61, 91, 92, + 93, 139, 553, 67, 97, 556, 160, 253, 101, 403, + 403, 45, 46, 52, 94, 307, 50, 261, 82, 287, + 655, 85, 86, 697, 697, 59, 700, 700, 307, 571, + 655, 65, 96, 571, 346, 385, 387, 588, 72, 590, + 386, 388, 76, 628, 718, 718, 720, 720, 82, 723, + 723, 85, 86, 393, 389, 89, 90, -1, -1, 93, + -1, 95, 736, 736, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 750, 750, 553, -1, + 631, 556, 756, 756, -1, 636, -1, -1, -1, 763, + 763, 765, 765, -1, 768, 768, 770, 770, 772, 772, + -1, 91, 92, 93, -1, -1, 657, 97, -1, -1, + -1, 101, -1, 588, 665, 590, -1, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, + 383, 384, 385, 386, 387, 388, 389, 44, 91, 92, + 93, -1, -1, 50, 97, -1, 697, -1, 101, 700, + -1, -1, 59, -1, 61, -1, 631, -1, -1, 553, + 67, 636, 556, -1, -1, -1, -1, 718, -1, 720, + -1, -1, 723, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 657, -1, -1, 736, -1, -1, 95, 96, + 665, -1, -1, -1, 588, -1, 590, -1, -1, 750, + -1, 192, 193, 194, 195, 756, -1, -1, -1, 200, + 201, -1, 763, -1, 765, -1, -1, 768, -1, 770, + -1, 772, 697, -1, 477, 700, -1, -1, -1, 86, + 483, -1, -1, -1, 91, 92, 93, 631, -1, -1, + 97, -1, 636, 718, 101, 720, -1, 1, 723, 3, + 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 736, -1, 657, -1, -1, -1, -1, -1, -1, + -1, 665, -1, -1, -1, 750, -1, -1, -1, -1, + -1, 756, -1, -1, -1, -1, -1, -1, 763, -1, + 765, 45, 46, 768, -1, 770, 50, 772, -1, -1, + -1, -1, -1, 697, -1, 59, 700, -1, -1, -1, + -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + -1, -1, 76, -1, 718, -1, 720, -1, 82, 723, + -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, + -1, -1, 736, -1, -1, 99, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 750, 1, -1, 612, + 613, -1, 756, -1, -1, -1, -1, -1, -1, 763, + -1, 765, -1, -1, 768, 628, 770, -1, 772, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, -1, 383, 384, 385, 386, 387, 388, 389, -1, + 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, + 54, -1, -1, -1, 58, 59, -1, -1, 62, -1, + -1, 65, 66, 67, 68, -1, 70, 71, 72, 73, + 1, -1, 76, -1, -1, -1, -1, -1, 82, -1, + -1, 85, 86, -1, -1, -1, -1, -1, -1, 93, + -1, 95, 96, -1, -1, 99, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, -1, -1, -1, -1, + -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, + 51, -1, -1, 54, -1, -1, 477, 58, 59, -1, + -1, 62, 483, -1, 65, 66, 67, 68, 1, 70, 71, 72, 73, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, 93, -1, 95, 96, -1, -1, 99, -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, - -1, 44, 45, 46, -1, 48, 49, 50, 51, -1, - -1, 54, -1, -1, -1, 58, 59, -1, -1, -1, - -1, -1, 65, 66, 67, 68, 1, 70, 71, 72, - 73, -1, -1, 76, -1, -1, -1, -1, -1, 82, + -1, 44, 45, 46, 47, 48, 49, 50, 51, -1, + -1, 54, -1, -1, -1, 58, 59, -1, -1, 62, + -1, -1, 65, 66, 67, 68, -1, 70, 71, 72, + 73, 44, -1, 76, -1, -1, -1, 50, -1, 82, + -1, 1, 85, 86, -1, -1, 59, -1, 61, -1, + 93, -1, 95, 96, 67, -1, 99, -1, -1, 102, + 103, 104, 105, -1, -1, 108, 109, -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, - 93, -1, 95, -1, -1, -1, 99, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, -1, -1, 44, - 45, 46, -1, 48, 49, 50, 51, -1, -1, 54, - -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, - 65, 66, 1, 68, -1, 70, 71, 72, 73, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, -1, -1, -1, -1, 93, -1, - 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 44, 45, 46, -1, 48, - 49, 50, 51, -1, -1, 54, -1, -1, -1, 58, - 59, -1, -1, -1, -1, -1, 65, 66, -1, 68, - -1, 70, 71, 72, 73, -1, 1, 76, 3, 4, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - -1, -1, -1, -1, 93, -1, 95, -1, -1, -1, - 99, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, 46, -1, -1, -1, 50, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - 95, 96, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, - -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 45, 46, -1, 99, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, 88, - 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + -1, 612, 613, 96, 44, 45, 46, -1, 48, 49, + 50, 51, -1, -1, 54, -1, -1, 628, 58, 59, + -1, -1, -1, -1, -1, 65, 66, 67, 68, 1, + 70, 71, 72, 73, -1, -1, 76, -1, -1, -1, + -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, + -1, -1, -1, 93, -1, 95, 96, -1, -1, 99, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + -1, -1, 44, 45, 46, -1, 48, 49, 50, 51, + -1, -1, 54, -1, -1, -1, 58, 59, -1, -1, + -1, -1, -1, 65, 66, 67, 68, 1, 70, 71, + 72, 73, -1, -1, 76, -1, -1, -1, -1, -1, + 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, + -1, 93, -1, 95, -1, -1, -1, 99, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, + 44, 45, 46, -1, 48, 49, 50, 51, -1, -1, + 54, -1, -1, -1, 58, 59, -1, -1, -1, -1, + -1, 65, 66, 1, 68, -1, 70, 71, 72, 73, + -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, + -1, 85, 86, -1, -1, -1, -1, -1, -1, 93, + -1, 95, -1, -1, -1, 99, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 44, 45, 46, -1, + 48, 49, 50, 51, -1, -1, 54, -1, -1, -1, + 58, 59, -1, -1, -1, -1, -1, 65, 66, -1, + 68, -1, 70, 71, 72, 73, -1, 1, 76, 3, + 4, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, -1, -1, -1, -1, 93, -1, 95, -1, -1, + -1, 99, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 45, 46, -1, -1, -1, 50, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 45, 46, 98, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, 95, 96, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, + -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, 88, + 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, + -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, + 98, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, 94, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, - -1, 99, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, 98, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 93, 94, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, 94, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, 98, -1, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + -1, 93, -1, -1, -1, -1, -1, 99, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, + 46, 98, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, 94, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, 94, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, 45, 46, 98, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, 94, -1, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, - 99, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + 90, -1, -1, 93, 94, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, + 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, 94, + -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, + 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, + -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + 94, -1, -1, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, + -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, + 99, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, + 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, + 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, + -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, + -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, + -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, + 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, + 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, + -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, + -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, + -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, + 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, + 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, + -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, + -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, + -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, + -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, + -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, + 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, + 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, - -1, -1, 72, -1, -1, -1, 76, 1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, 44, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, -1, -1, 1, - -1, 45, 46, 72, -1, -1, 50, 76, -1, -1, - -1, -1, -1, 82, -1, 59, 85, 86, -1, -1, - -1, 65, -1, -1, 93, -1, 3, 4, 72, -1, - 99, -1, 76, 102, 103, 104, 105, -1, 82, 108, - 109, 85, 86, 45, 46, -1, -1, -1, 50, 93, - 94, -1, -1, -1, -1, -1, -1, 59, 102, 103, - 104, 105, -1, 65, 108, 109, 1, -1, 45, 46, - 72, -1, -1, 50, 76, -1, -1, -1, -1, -1, - 82, -1, 59, 85, 86, -1, -1, -1, 65, -1, - -1, 93, 94, 3, 4, 72, -1, -1, -1, 76, - 102, 103, 104, 105, -1, 82, 108, 109, 85, 86, - 45, 46, 89, 90, -1, 50, 93, -1, 95, 96, - -1, -1, -1, -1, 59, 102, 103, 104, 105, -1, - 65, 108, 109, -1, -1, 45, 46, 72, -1, -1, - 50, 76, -1, -1, 3, 4, -1, 82, -1, 59, - 85, 86, -1, -1, -1, 65, -1, -1, 93, -1, - -1, -1, 72, -1, -1, -1, 76, 102, 103, 104, - 105, -1, 82, 108, 109, 85, 86, -1, -1, 89, - 90, -1, -1, 93, 94, -1, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, -1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, 94, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, -1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, + 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, + -1, 65, -1, 1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - 94, -1, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, -1, -1, 3, 4, -1, -1, 72, - -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, - -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, 94, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, + -1, 85, 86, -1, -1, 89, 90, -1, 1, 93, + -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 44, 45, 46, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, + 1, -1, 45, 46, 72, -1, -1, 50, 76, -1, + -1, -1, -1, -1, 82, -1, 59, 85, 86, -1, + -1, -1, 65, -1, -1, 93, -1, 3, 4, 72, + -1, 99, -1, 76, 102, 103, 104, 105, -1, 82, + 108, 109, 85, 86, 45, 46, -1, -1, -1, 50, + 93, 94, -1, -1, -1, -1, -1, -1, 59, 102, + 103, 104, 105, -1, 65, 108, 109, 1, -1, 45, + 46, 72, -1, -1, 50, 76, -1, -1, -1, -1, + -1, 82, -1, 59, 85, 86, -1, -1, -1, 65, + -1, -1, 93, 94, 3, 4, 72, -1, -1, -1, + 76, 102, 103, 104, 105, -1, 82, 108, 109, 85, + 86, 45, 46, 89, 90, -1, 50, 93, -1, 95, + 96, -1, -1, -1, -1, 59, 102, 103, 104, 105, + -1, 65, 108, 109, -1, -1, 45, 46, 72, -1, + -1, 50, 76, -1, -1, 3, 4, -1, 82, -1, + 59, 85, 86, -1, -1, -1, 65, -1, -1, 93, + -1, -1, -1, 72, -1, -1, -1, 76, 102, 103, + 104, 105, -1, 82, 108, 109, 85, 86, -1, -1, + 89, 90, -1, -1, 93, 94, -1, 45, 46, -1, + -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, -1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, 44, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, -1, + -1, 89, 90, -1, -1, 93, 94, -1, -1, -1, + -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, -1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, + -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, + -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, + 93, 94, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, -1, -1, 3, 4, -1, -1, + 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, + 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, + -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, -1, -1, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109 + -1, -1, 89, 90, -1, -1, 93, -1, 44, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, -1, -1, -1, -1, -1, -1, 93, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109 }; #define YYPURE 1 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" +#line 3 "/usr/cygnus/gnupro-98r2/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -2422,7 +2404,7 @@ __yy_memcpy (char *to, char *from, int count) #endif #endif -#line 196 "/usr/lib/bison.simple" +#line 196 "/usr/cygnus/gnupro-98r2/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. @@ -3186,281 +3168,284 @@ case 124: break;} case 125: #line 920 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("final parameters"); ; +{ + parse_jdk1_1_error ("final parameters"); + yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); + ; break;} case 126: -#line 922 "./parse.y" +#line 925 "./parse.y" {yyerror ("Missing identifier"); RECOVER;; break;} case 127: -#line 924 "./parse.y" +#line 927 "./parse.y" { SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[-2].value)); yyerror ("Missing identifier"); RECOVER; ; break;} case 128: -#line 931 "./parse.y" +#line 934 "./parse.y" { yyval.node = NULL_TREE; ; break;} case 129: -#line 933 "./parse.y" +#line 936 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 130: -#line 935 "./parse.y" +#line 938 "./parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 131: -#line 940 "./parse.y" +#line 943 "./parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ; break;} case 132: -#line 942 "./parse.y" +#line 945 "./parse.y" { yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ; break;} case 133: -#line 944 "./parse.y" +#line 947 "./parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 136: -#line 951 "./parse.y" +#line 954 "./parse.y" { yyval.node = NULL_TREE; ; break;} case 137: -#line 957 "./parse.y" +#line 960 "./parse.y" { TREE_CHAIN (yyvsp[0].node) = ctxp->static_initialized; ctxp->static_initialized = yyvsp[0].node; ; break;} case 138: -#line 962 "./parse.y" +#line 965 "./parse.y" { TREE_CHAIN (yyvsp[-1].node) = ctxp->static_initialized; ctxp->static_initialized = yyvsp[-1].node; ; break;} case 139: -#line 970 "./parse.y" +#line 973 "./parse.y" { SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[0].value)); ; break;} case 140: -#line 978 "./parse.y" +#line 981 "./parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} case 141: -#line 983 "./parse.y" +#line 986 "./parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 142: -#line 988 "./parse.y" +#line 991 "./parse.y" { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 143: -#line 990 "./parse.y" +#line 993 "./parse.y" { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 144: -#line 995 "./parse.y" +#line 998 "./parse.y" { yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 145: -#line 997 "./parse.y" +#line 1000 "./parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 146: -#line 1005 "./parse.y" +#line 1008 "./parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; yyval.node = yyvsp[0].node; ; break;} case 147: -#line 1010 "./parse.y" +#line 1013 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 148: -#line 1012 "./parse.y" +#line 1015 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 149: -#line 1014 "./parse.y" +#line 1017 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 150: -#line 1020 "./parse.y" +case 152: +#line 1027 "./parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, NULL_TREE); yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-3].node), yyval.node); yyval.node = java_method_add_stmt (current_function_decl, yyval.node); ; break;} -case 151: -#line 1026 "./parse.y" +case 153: +#line 1033 "./parse.y" { yyval.node = build_method_invocation (yyvsp[-4].node, yyvsp[-2].node); yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-4].node), yyval.node); yyval.node = java_method_add_stmt (current_function_decl, yyval.node); ; break;} -case 152: -#line 1034 "./parse.y" +case 154: +#line 1041 "./parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} -case 153: -#line 1036 "./parse.y" +case 155: +#line 1043 "./parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} -case 154: -#line 1041 "./parse.y" +case 156: +#line 1048 "./parse.y" { tree wfl = build_wfl_node (this_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; yyval.node = wfl; ; break;} -case 155: -#line 1047 "./parse.y" +case 157: +#line 1054 "./parse.y" { tree wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; yyval.node = wfl; ; break;} -case 156: -#line 1058 "./parse.y" +case 158: +#line 1065 "./parse.y" { create_interface (0, yyvsp[0].node, NULL_TREE); ; break;} -case 157: -#line 1060 "./parse.y" +case 159: +#line 1067 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 158: -#line 1064 "./parse.y" +case 160: +#line 1071 "./parse.y" { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ; break;} -case 159: -#line 1066 "./parse.y" +case 161: +#line 1073 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 160: -#line 1070 "./parse.y" +case 162: +#line 1077 "./parse.y" { create_interface (0, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 161: -#line 1072 "./parse.y" +case 163: +#line 1079 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 162: -#line 1076 "./parse.y" +case 164: +#line 1083 "./parse.y" { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 163: -#line 1078 "./parse.y" +case 165: +#line 1085 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 164: -#line 1082 "./parse.y" +case 166: +#line 1089 "./parse.y" {yyerror ("'{' expected"); RECOVER;; break;} -case 165: -#line 1084 "./parse.y" +case 167: +#line 1091 "./parse.y" {yyerror ("'{' expected"); RECOVER;; break;} -case 166: -#line 1089 "./parse.y" +case 168: +#line 1096 "./parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} -case 167: -#line 1094 "./parse.y" +case 169: +#line 1101 "./parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} -case 168: -#line 1099 "./parse.y" +case 170: +#line 1106 "./parse.y" {yyerror ("Invalid interface type"); RECOVER;; break;} -case 169: -#line 1101 "./parse.y" +case 171: +#line 1108 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 170: -#line 1106 "./parse.y" +case 172: +#line 1113 "./parse.y" { yyval.node = NULL_TREE; ; break;} -case 171: -#line 1108 "./parse.y" +case 173: +#line 1115 "./parse.y" { yyval.node = NULL_TREE; ; break;} -case 176: -#line 1120 "./parse.y" +case 178: +#line 1127 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner class declaration"); ; break;} -case 177: -#line 1122 "./parse.y" +case 179: +#line 1129 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner interface declaration"); ; break;} -case 179: -#line 1131 "./parse.y" +case 181: +#line 1138 "./parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ; break;} -case 180: -#line 1136 "./parse.y" +case 182: +#line 1143 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 181: -#line 1142 "./parse.y" +case 183: +#line 1149 "./parse.y" { yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ; break;} -case 182: -#line 1144 "./parse.y" +case 184: +#line 1151 "./parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} -case 183: -#line 1146 "./parse.y" +case 185: +#line 1153 "./parse.y" { yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} -case 184: -#line 1151 "./parse.y" +case 186: +#line 1158 "./parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, NULL_TREE); ; break;} -case 185: -#line 1156 "./parse.y" +case 187: +#line 1163 "./parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, yyvsp[-2].node); ; break;} -case 186: -#line 1160 "./parse.y" +case 188: +#line 1167 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 187: -#line 1166 "./parse.y" +case 189: +#line 1173 "./parse.y" { /* Store the location of the `}' when doing xrefs */ if (current_function_decl && flag_emit_xref) @@ -3469,16 +3454,16 @@ case 187: yyval.node = empty_stmt_node; ; break;} -case 188: -#line 1174 "./parse.y" +case 190: +#line 1181 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 189: -#line 1179 "./parse.y" +case 191: +#line 1186 "./parse.y" { enter_block (); ; break;} -case 190: -#line 1184 "./parse.y" +case 192: +#line 1191 "./parse.y" { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ @@ -3488,32 +3473,36 @@ case 190: yyval.node = exit_block (); ; break;} -case 194: -#line 1202 "./parse.y" +case 196: +#line 1209 "./parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} -case 195: -#line 1204 "./parse.y" +case 197: +#line 1211 "./parse.y" { parse_jdk1_1_error ("inner class declaration"); ; break;} -case 197: -#line 1213 "./parse.y" +case 199: +#line 1220 "./parse.y" { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 198: -#line 1215 "./parse.y" +case 200: +#line 1222 "./parse.y" { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 204: -#line 1225 "./parse.y" +case 206: +#line 1232 "./parse.y" { yyval.node = exit_block (); ; break;} -case 221: -#line 1252 "./parse.y" +case 211: +#line 1241 "./parse.y" +{ yyval.node = exit_block (); ; + break;} +case 223: +#line 1260 "./parse.y" { yyval.node = empty_stmt_node; ; break;} -case 222: -#line 1257 "./parse.y" +case 224: +#line 1265 "./parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); @@ -3522,20 +3511,20 @@ case 222: PUSH_LABELED_BLOCK (yyval.node); ; break;} -case 223: -#line 1268 "./parse.y" +case 225: +#line 1276 "./parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} -case 224: -#line 1270 "./parse.y" +case 226: +#line 1278 "./parse.y" {yyerror ("':' expected"); RECOVER;; break;} -case 225: -#line 1275 "./parse.y" +case 227: +#line 1283 "./parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} -case 226: -#line 1282 "./parse.y" +case 228: +#line 1290 "./parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ @@ -3545,109 +3534,109 @@ case 226: yyval.node = JAVA_MAYBE_GENERATE_DEBUG_INFO (yyval.node); ; break;} -case 227: -#line 1291 "./parse.y" +case 229: +#line 1299 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} -case 228: -#line 1297 "./parse.y" +case 230: +#line 1305 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} -case 229: -#line 1303 "./parse.y" +case 231: +#line 1311 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} -case 230: -#line 1309 "./parse.y" +case 232: +#line 1317 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 231: -#line 1311 "./parse.y" +case 233: +#line 1319 "./parse.y" { yyerror ("Constructor invocation must be first " "thing in a constructor"); RECOVER; ; break;} -case 232: -#line 1317 "./parse.y" +case 234: +#line 1325 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 233: -#line 1319 "./parse.y" +case 235: +#line 1327 "./parse.y" { yyerror ("Constructor invocation must be first " "thing in a constructor"); RECOVER; ; break;} -case 234: -#line 1325 "./parse.y" +case 236: +#line 1333 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} -case 235: -#line 1327 "./parse.y" +case 237: +#line 1335 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 236: -#line 1329 "./parse.y" +case 238: +#line 1337 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 237: -#line 1331 "./parse.y" +case 239: +#line 1339 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 238: -#line 1333 "./parse.y" +case 240: +#line 1341 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 246: -#line 1348 "./parse.y" +case 248: +#line 1356 "./parse.y" { yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node, NULL_TREE); ; break;} -case 247: -#line 1353 "./parse.y" +case 249: +#line 1361 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} -case 248: -#line 1355 "./parse.y" +case 250: +#line 1363 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 249: -#line 1357 "./parse.y" +case 251: +#line 1365 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 250: -#line 1362 "./parse.y" +case 252: +#line 1370 "./parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 251: -#line 1367 "./parse.y" +case 253: +#line 1375 "./parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 252: -#line 1372 "./parse.y" +case 254: +#line 1380 "./parse.y" { enter_block (); ; break;} -case 253: -#line 1376 "./parse.y" +case 255: +#line 1384 "./parse.y" { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statment also have its own @@ -3657,113 +3646,113 @@ case 253: yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-2].node), yyvsp[-2].node); ; break;} -case 254: -#line 1388 "./parse.y" +case 256: +#line 1396 "./parse.y" { yyval.node = build (SWITCH_EXPR, NULL_TREE, yyvsp[-1].node, NULL_TREE); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} -case 255: -#line 1393 "./parse.y" +case 257: +#line 1401 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} -case 256: -#line 1395 "./parse.y" +case 258: +#line 1403 "./parse.y" {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; break;} -case 257: -#line 1397 "./parse.y" +case 259: +#line 1405 "./parse.y" {yyerror ("'{' expected"); RECOVER;; break;} -case 258: -#line 1405 "./parse.y" +case 260: +#line 1413 "./parse.y" { yyval.node = NULL_TREE; ; break;} -case 259: -#line 1407 "./parse.y" +case 261: +#line 1415 "./parse.y" { yyval.node = NULL_TREE; ; break;} -case 260: -#line 1409 "./parse.y" +case 262: +#line 1417 "./parse.y" { yyval.node = NULL_TREE; ; break;} -case 261: -#line 1411 "./parse.y" +case 263: +#line 1419 "./parse.y" { yyval.node = NULL_TREE; ; break;} -case 267: -#line 1430 "./parse.y" +case 269: +#line 1438 "./parse.y" { tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; java_method_add_stmt (current_function_decl, lab); ; break;} -case 268: -#line 1436 "./parse.y" +case 270: +#line 1444 "./parse.y" { tree lab = build1 (DEFAULT_EXPR, NULL_TREE, NULL_TREE); EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; java_method_add_stmt (current_function_decl, lab); ; break;} -case 269: -#line 1442 "./parse.y" +case 271: +#line 1450 "./parse.y" {yyerror ("Missing or invalid constant expression"); RECOVER;; break;} -case 270: -#line 1444 "./parse.y" +case 272: +#line 1452 "./parse.y" {yyerror ("':' expected"); RECOVER;; break;} -case 271: -#line 1446 "./parse.y" +case 273: +#line 1454 "./parse.y" {yyerror ("':' expected"); RECOVER;; break;} -case 272: -#line 1451 "./parse.y" +case 274: +#line 1459 "./parse.y" { tree body = build_loop_body (yyvsp[-2].operator.location, yyvsp[-1].node, 0); yyval.node = build_new_loop (body); ; break;} -case 273: -#line 1459 "./parse.y" +case 275: +#line 1467 "./parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} -case 274: -#line 1461 "./parse.y" +case 276: +#line 1469 "./parse.y" {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;; break;} -case 275: -#line 1463 "./parse.y" +case 277: +#line 1471 "./parse.y" {yyerror ("Missing term and ')' expected"); RECOVER;; break;} -case 276: -#line 1465 "./parse.y" +case 278: +#line 1473 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 277: -#line 1470 "./parse.y" +case 279: +#line 1478 "./parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} -case 278: -#line 1475 "./parse.y" +case 280: +#line 1483 "./parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ; break;} -case 279: -#line 1484 "./parse.y" +case 281: +#line 1492 "./parse.y" { yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ; break;} -case 280: -#line 1489 "./parse.y" +case 282: +#line 1497 "./parse.y" { yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 281: -#line 1491 "./parse.y" +case 283: +#line 1499 "./parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ @@ -3771,24 +3760,24 @@ case 281: empty_stmt_node; ; break;} -case 282: -#line 1498 "./parse.y" +case 284: +#line 1506 "./parse.y" {yyerror ("Invalid control expression"); RECOVER;; break;} -case 283: -#line 1500 "./parse.y" +case 285: +#line 1508 "./parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} -case 284: -#line 1502 "./parse.y" +case 286: +#line 1510 "./parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} -case 285: -#line 1507 "./parse.y" +case 287: +#line 1515 "./parse.y" { yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);; break;} -case 286: -#line 1509 "./parse.y" +case 288: +#line 1517 "./parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ @@ -3796,24 +3785,24 @@ case 286: empty_stmt_node; ; break;} -case 287: -#line 1519 "./parse.y" +case 289: +#line 1527 "./parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ enter_block (); ; break;} -case 288: -#line 1525 "./parse.y" +case 290: +#line 1533 "./parse.y" {yyerror ("'(' expected"); DRECOVER(for_1);; break;} -case 289: -#line 1527 "./parse.y" +case 291: +#line 1535 "./parse.y" {yyerror ("Invalid init statement"); RECOVER;; break;} -case 290: -#line 1532 "./parse.y" +case 292: +#line 1540 "./parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ @@ -3825,180 +3814,180 @@ case 290: java_method_add_stmt (current_function_decl, yyval.node); ; break;} -case 291: -#line 1544 "./parse.y" +case 293: +#line 1552 "./parse.y" { yyval.node = empty_stmt_node; ; break;} -case 292: -#line 1546 "./parse.y" +case 294: +#line 1554 "./parse.y" { /* Init statement recorded within the previously defined block scope */ yyval.node = java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} -case 293: -#line 1552 "./parse.y" +case 295: +#line 1560 "./parse.y" { /* Local variable are recorded within the previously defined block scope */ yyval.node = NULL_TREE; ; break;} -case 294: -#line 1558 "./parse.y" +case 296: +#line 1566 "./parse.y" {yyerror ("';' expected"); DRECOVER(for_init_1);; break;} -case 295: -#line 1562 "./parse.y" +case 297: +#line 1570 "./parse.y" {yyval.node = empty_stmt_node;; break;} -case 296: -#line 1564 "./parse.y" +case 298: +#line 1572 "./parse.y" { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ; break;} -case 297: -#line 1569 "./parse.y" +case 299: +#line 1577 "./parse.y" { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ; break;} -case 298: -#line 1571 "./parse.y" +case 300: +#line 1579 "./parse.y" { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ; break;} -case 299: -#line 1573 "./parse.y" +case 301: +#line 1581 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 300: -#line 1578 "./parse.y" +case 302: +#line 1586 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ; break;} -case 301: -#line 1580 "./parse.y" +case 303: +#line 1588 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ; break;} -case 302: -#line 1582 "./parse.y" +case 304: +#line 1590 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 303: -#line 1584 "./parse.y" +case 305: +#line 1592 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 304: -#line 1589 "./parse.y" +case 306: +#line 1597 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ; break;} -case 305: -#line 1591 "./parse.y" +case 307: +#line 1599 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ; break;} -case 306: -#line 1593 "./parse.y" +case 308: +#line 1601 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 307: -#line 1595 "./parse.y" +case 309: +#line 1603 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 308: -#line 1600 "./parse.y" +case 310: +#line 1608 "./parse.y" { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ; break;} -case 309: -#line 1602 "./parse.y" +case 311: +#line 1610 "./parse.y" { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} -case 310: -#line 1604 "./parse.y" +case 312: +#line 1612 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 311: -#line 1606 "./parse.y" +case 313: +#line 1614 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 312: -#line 1611 "./parse.y" +case 314: +#line 1619 "./parse.y" { yyval.node = build1 (THROW_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} -case 313: -#line 1616 "./parse.y" +case 315: +#line 1624 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 314: -#line 1618 "./parse.y" +case 316: +#line 1626 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 315: -#line 1623 "./parse.y" +case 317: +#line 1631 "./parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = EXPR_WFL_LINECOL (MODIFIER_WFL (SYNCHRONIZED_TK)); ; break;} -case 316: -#line 1629 "./parse.y" +case 318: +#line 1637 "./parse.y" {yyerror ("'{' expected"); RECOVER;; break;} -case 317: -#line 1631 "./parse.y" +case 319: +#line 1639 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} -case 318: -#line 1633 "./parse.y" +case 320: +#line 1641 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 319: -#line 1635 "./parse.y" +case 321: +#line 1643 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 320: -#line 1640 "./parse.y" +case 322: +#line 1648 "./parse.y" { if ((1 << yyvsp[0].value) != ACC_SYNCHRONIZED) fatal ("synchronized was '%d' - yyparse", (1 << yyvsp[0].value)); ; break;} -case 321: -#line 1648 "./parse.y" +case 323: +#line 1656 "./parse.y" { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 322: -#line 1650 "./parse.y" +case 324: +#line 1658 "./parse.y" { yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 323: -#line 1652 "./parse.y" +case 325: +#line 1660 "./parse.y" { yyval.node = build_try_finally_statement (yyvsp[-3].operator.location, build_try_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-1].node), yyvsp[0].node); ; break;} -case 324: -#line 1657 "./parse.y" +case 326: +#line 1665 "./parse.y" {yyerror ("'{' expected"); DRECOVER (try_statement);; break;} -case 326: -#line 1663 "./parse.y" +case 328: +#line 1671 "./parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ; break;} -case 327: -#line 1671 "./parse.y" +case 329: +#line 1679 "./parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); yyval.node = yyvsp[-1].node; ; break;} -case 328: -#line 1679 "./parse.y" +case 330: +#line 1687 "./parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is @@ -4015,185 +4004,185 @@ case 328: EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; ; break;} -case 329: -#line 1695 "./parse.y" +case 331: +#line 1703 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} -case 330: -#line 1697 "./parse.y" +case 332: +#line 1705 "./parse.y" {yyerror ("Missing term or ')' expected"); DRECOVER (2);; break;} -case 331: -#line 1699 "./parse.y" +case 333: +#line 1707 "./parse.y" {yyerror ("')' expected"); DRECOVER (1);; break;} -case 332: -#line 1704 "./parse.y" +case 334: +#line 1712 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 333: -#line 1706 "./parse.y" +case 335: +#line 1714 "./parse.y" {yyerror ("'{' expected"); RECOVER; ; break;} -case 337: -#line 1718 "./parse.y" +case 339: +#line 1726 "./parse.y" { yyval.node = build_this (yyvsp[0].operator.location); ; break;} -case 338: -#line 1720 "./parse.y" +case 340: +#line 1728 "./parse.y" {yyval.node = yyvsp[-1].node;; break;} -case 343: -#line 1729 "./parse.y" +case 345: +#line 1737 "./parse.y" { yyval.node = parse_jdk1_1_error ("named class literals"); ; break;} -case 344: -#line 1731 "./parse.y" +case 346: +#line 1739 "./parse.y" { yyval.node = build_class_ref (yyvsp[-2].node); ; break;} -case 345: -#line 1733 "./parse.y" +case 347: +#line 1741 "./parse.y" { yyval.node = build_class_ref (void_type_node); ; break;} -case 346: -#line 1738 "./parse.y" +case 348: +#line 1746 "./parse.y" { yyval.node = parse_jdk1_1_error ("class literals"); ; break;} -case 347: -#line 1740 "./parse.y" +case 349: +#line 1748 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 348: -#line 1742 "./parse.y" +case 350: +#line 1750 "./parse.y" {yyerror ("'class' or 'this' expected" ); RECOVER;; break;} -case 349: -#line 1744 "./parse.y" +case 351: +#line 1752 "./parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} -case 350: -#line 1746 "./parse.y" +case 352: +#line 1754 "./parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} -case 351: -#line 1751 "./parse.y" +case 353: +#line 1759 "./parse.y" { yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} -case 352: -#line 1753 "./parse.y" +case 354: +#line 1761 "./parse.y" { yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; break;} -case 353: -#line 1758 "./parse.y" +case 355: +#line 1766 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner class instance creation"); ; break;} -case 354: -#line 1760 "./parse.y" +case 356: +#line 1768 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner class instance creation"); ; break;} -case 359: -#line 1769 "./parse.y" +case 361: +#line 1777 "./parse.y" {yyerror ("'(' expected"); DRECOVER(new_1);; break;} -case 360: -#line 1771 "./parse.y" +case 362: +#line 1779 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} -case 361: -#line 1773 "./parse.y" +case 363: +#line 1781 "./parse.y" {yyerror ("')' or term expected"); RECOVER;; break;} -case 362: -#line 1775 "./parse.y" +case 364: +#line 1783 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 363: -#line 1777 "./parse.y" +case 365: +#line 1785 "./parse.y" {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; break;} -case 364: -#line 1779 "./parse.y" +case 366: +#line 1787 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} -case 367: -#line 1789 "./parse.y" +case 369: +#line 1797 "./parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ; break;} -case 368: -#line 1794 "./parse.y" +case 370: +#line 1802 "./parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ; break;} -case 369: -#line 1799 "./parse.y" +case 371: +#line 1807 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 370: -#line 1804 "./parse.y" +case 372: +#line 1812 "./parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} -case 371: -#line 1806 "./parse.y" +case 373: +#line 1814 "./parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} -case 372: -#line 1808 "./parse.y" +case 374: +#line 1816 "./parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, CURRENT_OSB (ctxp));; break;} -case 373: -#line 1810 "./parse.y" +case 375: +#line 1818 "./parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, CURRENT_OSB (ctxp));; break;} -case 374: -#line 1814 "./parse.y" +case 376: +#line 1822 "./parse.y" { yyval.node = parse_jdk1_1_error ("anonymous array"); ; break;} -case 375: -#line 1816 "./parse.y" +case 377: +#line 1824 "./parse.y" { yyval.node = parse_jdk1_1_error ("anonymous array"); ; break;} -case 376: -#line 1818 "./parse.y" +case 378: +#line 1826 "./parse.y" {yyerror ("'[' expected"); DRECOVER ("]");; break;} -case 377: -#line 1820 "./parse.y" +case 379: +#line 1828 "./parse.y" {yyerror ("']' expected"); RECOVER;; break;} -case 378: -#line 1825 "./parse.y" +case 380: +#line 1833 "./parse.y" { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; break;} -case 379: -#line 1827 "./parse.y" +case 381: +#line 1835 "./parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; break;} -case 380: -#line 1832 "./parse.y" +case 382: +#line 1840 "./parse.y" { EXPR_WFL_LINECOL (yyvsp[-1].node) = yyvsp[-2].operator.location; yyval.node = yyvsp[-1].node; ; break;} -case 381: -#line 1837 "./parse.y" +case 383: +#line 1845 "./parse.y" {yyerror ("']' expected"); RECOVER;; break;} -case 382: -#line 1839 "./parse.y" +case 384: +#line 1847 "./parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); RECOVER; ; break;} -case 383: -#line 1848 "./parse.y" +case 385: +#line 1856 "./parse.y" { int allocate = 0; /* If not initialized, allocate memory for the osb @@ -4220,20 +4209,20 @@ case 383: CURRENT_OSB (ctxp) = 1; ; break;} -case 384: -#line 1874 "./parse.y" +case 386: +#line 1882 "./parse.y" { CURRENT_OSB (ctxp)++; ; break;} -case 385: -#line 1876 "./parse.y" +case 387: +#line 1884 "./parse.y" { yyerror ("']' expected"); RECOVER;; break;} -case 386: -#line 1881 "./parse.y" +case 388: +#line 1889 "./parse.y" { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} -case 387: -#line 1885 "./parse.y" +case 389: +#line 1893 "./parse.y" { tree super_wfl = build_wfl_node (super_identifier_node); @@ -4241,20 +4230,20 @@ case 387: yyval.node = make_qualified_name (super_wfl, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} -case 388: -#line 1892 "./parse.y" +case 390: +#line 1900 "./parse.y" {yyerror ("Field expected"); DRECOVER (super_field_acces);; break;} -case 389: -#line 1897 "./parse.y" +case 391: +#line 1905 "./parse.y" { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ; break;} -case 390: -#line 1899 "./parse.y" +case 392: +#line 1907 "./parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} -case 391: -#line 1901 "./parse.y" +case 393: +#line 1909 "./parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation @@ -4266,8 +4255,8 @@ case 391: } ; break;} -case 392: -#line 1912 "./parse.y" +case 394: +#line 1920 "./parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation @@ -4279,122 +4268,122 @@ case 392: } ; break;} -case 393: -#line 1923 "./parse.y" +case 395: +#line 1931 "./parse.y" { yyval.node = build_this_super_qualified_invocation (0, yyvsp[-2].node, NULL_TREE, yyvsp[-4].operator.location, yyvsp[-3].operator.location); ; break;} -case 394: -#line 1928 "./parse.y" +case 396: +#line 1936 "./parse.y" { yyval.node = build_this_super_qualified_invocation (0, yyvsp[-3].node, yyvsp[-1].node, yyvsp[-5].operator.location, yyvsp[-4].operator.location); ; break;} -case 395: -#line 1937 "./parse.y" +case 397: +#line 1945 "./parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} -case 396: -#line 1939 "./parse.y" +case 398: +#line 1947 "./parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} -case 397: -#line 1944 "./parse.y" +case 399: +#line 1952 "./parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} -case 398: -#line 1946 "./parse.y" +case 400: +#line 1954 "./parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} -case 399: -#line 1948 "./parse.y" +case 401: +#line 1956 "./parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} -case 400: -#line 1953 "./parse.y" +case 402: +#line 1961 "./parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} -case 401: -#line 1958 "./parse.y" +case 403: +#line 1966 "./parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} -case 402: -#line 1963 "./parse.y" +case 404: +#line 1971 "./parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} -case 407: -#line 1978 "./parse.y" +case 409: +#line 1986 "./parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} -case 408: -#line 1983 "./parse.y" +case 410: +#line 1991 "./parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} -case 411: -#line 1990 "./parse.y" -{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; - break;} -case 412: -#line 1992 "./parse.y" +case 413: +#line 1998 "./parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 414: -#line 1995 "./parse.y" -{yyerror ("Missing term"); RECOVER; - break;} -case 415: -#line 1997 "./parse.y" -{yyerror ("Missing term"); RECOVER; +#line 2000 "./parse.y" +{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 416: -#line 2002 "./parse.y" -{yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; +#line 2003 "./parse.y" +{yyerror ("Missing term"); RECOVER; break;} case 417: -#line 2004 "./parse.y" +#line 2005 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} case 418: -#line 2009 "./parse.y" +#line 2010 "./parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 419: -#line 2011 "./parse.y" +#line 2012 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} -case 421: +case 420: #line 2017 "./parse.y" -{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; +{yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} -case 422: +case 421: #line 2019 "./parse.y" +{yyerror ("Missing term"); RECOVER; + break;} +case 423: +#line 2025 "./parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 424: -#line 2022 "./parse.y" +#line 2027 "./parse.y" +{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; + break;} +case 426: +#line 2030 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} -case 425: -#line 2024 "./parse.y" +case 427: +#line 2032 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} -case 426: -#line 2029 "./parse.y" +case 428: +#line 2037 "./parse.y" { tree type = yyvsp[-3].node; while (CURRENT_OSB (ctxp)--) @@ -4403,16 +4392,16 @@ case 426: yyval.node = build_cast (yyvsp[-4].operator.location, type, yyvsp[0].node); ; break;} -case 427: -#line 2037 "./parse.y" +case 429: +#line 2045 "./parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 428: -#line 2039 "./parse.y" +case 430: +#line 2047 "./parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 429: -#line 2041 "./parse.y" +case 431: +#line 2049 "./parse.y" { char *ptr; while (CURRENT_OSB (ctxp)--) @@ -4426,276 +4415,276 @@ case 429: yyval.node = build_cast (yyvsp[-4].operator.location, yyvsp[-3].node, yyvsp[0].node); ; break;} -case 430: -#line 2054 "./parse.y" +case 432: +#line 2062 "./parse.y" {yyerror ("']' expected, invalid type expression");; break;} -case 431: -#line 2056 "./parse.y" +case 433: +#line 2064 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid type expression"); RECOVER; RECOVER; ; break;} -case 432: -#line 2062 "./parse.y" +case 434: +#line 2070 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 433: -#line 2064 "./parse.y" +case 435: +#line 2072 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 434: -#line 2066 "./parse.y" +case 436: +#line 2074 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 436: -#line 2072 "./parse.y" +case 438: +#line 2080 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 437: -#line 2077 "./parse.y" +case 439: +#line 2085 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 438: -#line 2082 "./parse.y" +case 440: +#line 2090 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 439: -#line 2087 "./parse.y" +case 441: +#line 2095 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 440: -#line 2089 "./parse.y" +case 442: +#line 2097 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 441: -#line 2091 "./parse.y" +case 443: +#line 2099 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 443: -#line 2097 "./parse.y" +case 445: +#line 2105 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 444: -#line 2102 "./parse.y" +case 446: +#line 2110 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 445: -#line 2107 "./parse.y" +case 447: +#line 2115 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 446: -#line 2109 "./parse.y" +case 448: +#line 2117 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 448: -#line 2115 "./parse.y" +case 450: +#line 2123 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 449: -#line 2120 "./parse.y" +case 451: +#line 2128 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 450: -#line 2125 "./parse.y" +case 452: +#line 2133 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 451: -#line 2130 "./parse.y" +case 453: +#line 2138 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 452: -#line 2132 "./parse.y" +case 454: +#line 2140 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 453: -#line 2134 "./parse.y" +case 455: +#line 2142 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 455: -#line 2140 "./parse.y" +case 457: +#line 2148 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 456: -#line 2145 "./parse.y" +case 458: +#line 2153 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 457: -#line 2150 "./parse.y" +case 459: +#line 2158 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 458: -#line 2155 "./parse.y" +case 460: +#line 2163 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 459: -#line 2160 "./parse.y" +case 461: +#line 2168 "./parse.y" { yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 460: -#line 2162 "./parse.y" +case 462: +#line 2170 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 461: -#line 2164 "./parse.y" +case 463: +#line 2172 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 462: -#line 2166 "./parse.y" +case 464: +#line 2174 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 463: -#line 2168 "./parse.y" +case 465: +#line 2176 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 464: -#line 2170 "./parse.y" +case 466: +#line 2178 "./parse.y" {yyerror ("Invalid reference type"); RECOVER;; break;} -case 466: -#line 2176 "./parse.y" +case 468: +#line 2184 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 467: -#line 2181 "./parse.y" +case 469: +#line 2189 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 468: -#line 2186 "./parse.y" +case 470: +#line 2194 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 469: -#line 2188 "./parse.y" +case 471: +#line 2196 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 471: -#line 2194 "./parse.y" +case 473: +#line 2202 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 472: -#line 2199 "./parse.y" +case 474: +#line 2207 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 474: -#line 2205 "./parse.y" +case 476: +#line 2213 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 475: -#line 2210 "./parse.y" +case 477: +#line 2218 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 477: -#line 2216 "./parse.y" +case 479: +#line 2224 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 478: -#line 2221 "./parse.y" +case 480: +#line 2229 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 480: -#line 2227 "./parse.y" +case 482: +#line 2235 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 481: -#line 2232 "./parse.y" +case 483: +#line 2240 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 483: -#line 2238 "./parse.y" +case 485: +#line 2246 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 484: -#line 2243 "./parse.y" +case 486: +#line 2251 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 486: -#line 2249 "./parse.y" +case 488: +#line 2257 "./parse.y" { yyval.node = build (CONDITIONAL_EXPR, NULL_TREE, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; ; break;} -case 487: -#line 2254 "./parse.y" +case 489: +#line 2262 "./parse.y" { YYERROR_NOW; yyerror ("Missing term"); DRECOVER (1); ; break;} -case 488: -#line 2260 "./parse.y" +case 490: +#line 2268 "./parse.y" {yyerror ("Missing term"); DRECOVER (2);; break;} -case 489: -#line 2262 "./parse.y" +case 491: +#line 2270 "./parse.y" {yyerror ("Missing term"); DRECOVER (3);; break;} -case 492: -#line 2272 "./parse.y" +case 494: +#line 2280 "./parse.y" { yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 493: -#line 2274 "./parse.y" +case 495: +#line 2282 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Missing term"); @@ -4704,7 +4693,7 @@ case 493: break;} } /* the action file gets copied in in place of this dollarsign */ -#line 498 "/usr/lib/bison.simple" +#line 498 "/usr/cygnus/gnupro-98r2/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -4900,7 +4889,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 2300 "./parse.y" +#line 2308 "./parse.y" @@ -5677,7 +5666,7 @@ lookup_field_wrapper (class, name) java_parser_context_save_global (); decl = lookup_field (&type, name); java_parser_context_restore_global (); - return decl; + return decl == error_mark_node ? NULL : decl; } /* Find duplicate field within the same class declarations and report @@ -5864,7 +5853,6 @@ static void maybe_generate_clinit () { tree mdecl, c; - int has_non_primitive_fields = 0; if (!ctxp->static_initialized || java_error_count) return; @@ -6116,6 +6104,29 @@ static void finish_method_declaration (method_body) tree method_body; { + int flags = get_access_flags_from_decl (current_function_decl); + + /* 8.4.5 Method Body */ + if ((flags & ACC_ABSTRACT || flags & ACC_NATIVE) && method_body) + { + tree wfl = DECL_NAME (current_function_decl); + parse_error_context (wfl, + "%s method `%s' can't have a body defined", + (METHOD_NATIVE (current_function_decl) ? + "Native" : "Abstract"), + IDENTIFIER_POINTER (EXPR_WFL_NODE (wfl))); + method_body = NULL_TREE; + } + else if (!(flags & ACC_ABSTRACT) && !(flags & ACC_NATIVE) && !method_body) + { + tree wfl = DECL_NAME (current_function_decl); + parse_error_context (wfl, + "Non native and non abstract method `%s' must " + "have a body defined", + IDENTIFIER_POINTER (EXPR_WFL_NODE (wfl))); + method_body = NULL_TREE; + } + BLOCK_EXPR_BODY (DECL_FUNCTION_BODY (current_function_decl)) = method_body; maybe_absorb_scoping_blocks (); /* Exit function's body */ @@ -7749,9 +7760,9 @@ static int find_in_imports_on_demand (class_type) tree class_type; { - tree node, import, node_to_use; + tree node, import, node_to_use = NULL_TREE; int seen_once = -1; - tree cl; + tree cl = NULL_TREE; for (import = ctxp->import_demand_list; import; import = TREE_CHAIN (import)) { @@ -10179,9 +10190,15 @@ qualify_ambiguous_name (id) || TREE_CODE (qual_wfl) == STRING_CST || TREE_CODE (qual_wfl) == CONVERT_EXPR) { - qual = TREE_CHAIN (qual); - qual_wfl = QUAL_WFL (qual); - again = 1; + if (TREE_CODE (qual_wfl) == CONVERT_EXPR + && TREE_CODE (TREE_TYPE (qual_wfl)) == EXPR_WITH_FILE_LOCATION) + name = EXPR_WFL_NODE (TREE_TYPE (qual_wfl)); + else + { + qual = TREE_CHAIN (qual); + qual_wfl = QUAL_WFL (qual); + again = 1; + } } } while (again); @@ -10476,7 +10493,10 @@ java_complete_lhs (node) POP_LABELED_BLOCK (); if (LABELED_BLOCK_BODY (node) == empty_stmt_node) - LABELED_BLOCK_BODY (node) = NULL_TREE; + { + LABELED_BLOCK_BODY (node) = NULL_TREE; + CAN_COMPLETE_NORMALLY (node) = 1; + } else if (CAN_COMPLETE_NORMALLY (LABELED_BLOCK_BODY (node))) CAN_COMPLETE_NORMALLY (node) = 1; return node; @@ -11418,6 +11438,7 @@ patch_assignment (node, wfl_op1, wfl_op2) } /* Build the invocation of _Jv_CheckArrayStore */ + new_rhs = save_expr (new_rhs); check = build (CALL_EXPR, void_type_node, build_address_of (soft_checkarraystore_node), tree_cons (NULL_TREE, base, @@ -11661,7 +11682,8 @@ valid_ref_assignconv_cast_p (source, dest, cast) return source == dest || interface_of_p (dest, source); } else /* Array */ - return 0; + return (cast ? + (DECL_NAME (TYPE_NAME (source)) == java_lang_cloneable) : 0); } if (TYPE_ARRAY_P (source)) { @@ -11822,7 +11844,7 @@ patch_binop (node, wfl_op1, wfl_op2) tree op2 = TREE_OPERAND (node, 1); tree op1_type = TREE_TYPE (op1); tree op2_type = TREE_TYPE (op2); - tree prom_type; + tree prom_type = NULL_TREE; int code = TREE_CODE (node); /* If 1, tell the routine that we have to return error_mark_node @@ -12448,7 +12470,7 @@ patch_unaryop (node, wfl_op) { tree op = TREE_OPERAND (node, 0); tree op_type = TREE_TYPE (op); - tree prom_type, value, decl; + tree prom_type = NULL_TREE, value, decl; int code = TREE_CODE (node); int error_found = 0; @@ -14028,7 +14050,7 @@ patch_conditional_expr (node, wfl_cond, wfl_op1) /* Otherwise, binary numeric promotion is applied and the resulting type is the promoted type of operand 1 and 2 */ else - resulting_type = binary_numeric_promotion (t2, t2, + resulting_type = binary_numeric_promotion (t1, t2, &TREE_OPERAND (node, 1), &TREE_OPERAND (node, 2)); } @@ -14085,8 +14107,11 @@ fold_constant_for_init (node, context) tree op0, op1, val; enum tree_code code = TREE_CODE (node); - if (code == INTEGER_CST || code == REAL_CST || code == STRING_CST) + if (code == STRING_CST) return node; + + if (code == INTEGER_CST || code == REAL_CST) + return convert (TREE_TYPE (context), node); if (TREE_TYPE (node) != NULL_TREE && code != VAR_DECL) return NULL_TREE; @@ -14181,13 +14206,11 @@ fold_constant_for_init (node, context) } else { -#if 0 /* Wait until the USE_COMPONENT_REF re-write. FIXME. */ qualify_ambiguous_name (node); if (resolve_field_access (node, &decl, NULL) && decl != NULL_TREE) return fold_constant_for_init (decl, decl); -#endif return NULL_TREE; } } diff --git a/gnu/egcs/gcc/java/parse.y b/gnu/egcs/gcc/java/parse.y index 64f7e182c14..5a5c6744bd1 100644 --- a/gnu/egcs/gcc/java/parse.y +++ b/gnu/egcs/gcc/java/parse.y @@ -396,7 +396,7 @@ static tree current_static_block = NULL_TREE; variable_initializers constructor_body array_initializer -%type <node> class_body block_end +%type <node> class_body block_end constructor_block_end %type <node> statement statement_without_trailing_substatement labeled_statement if_then_statement label_decl if_then_else_statement while_statement for_statement @@ -917,7 +917,10 @@ formal_parameter: $$ = build_tree_list ($2, $1); } | modifiers type variable_declarator_id /* Added, JDK1.1 final parms */ - { $$ = parse_jdk1_1_error ("final parameters"); } + { + parse_jdk1_1_error ("final parameters"); + $$ = build_tree_list ($3, $2); + } | type error {yyerror ("Missing identifier"); RECOVER;} | modifiers type error @@ -1001,19 +1004,23 @@ constructor_body: /* Unlike regular method, we always need a complete (empty) body so we can safely perform all the required code addition (super invocation and field initialization) */ - block_begin block_end + block_begin constructor_block_end { BLOCK_EXPR_BODY ($2) = empty_stmt_node; $$ = $2; } -| block_begin explicit_constructor_invocation block_end +| block_begin explicit_constructor_invocation constructor_block_end { $$ = $3; } -| block_begin block_statements block_end +| block_begin block_statements constructor_block_end { $$ = $3; } -| block_begin explicit_constructor_invocation block_statements block_end +| block_begin explicit_constructor_invocation block_statements constructor_block_end { $$ = $4; } ; +constructor_block_end: + block_end +| block_end SC_TK + /* Error recovery for that rule moved down expression_statement: rule. */ explicit_constructor_invocation: this_or_super OP_TK CP_TK SC_TK @@ -1231,6 +1238,7 @@ statement_nsi: | if_then_else_statement_nsi | while_statement_nsi | for_statement_nsi + { $$ = exit_block (); } ; statement_without_trailing_substatement: @@ -3073,7 +3081,7 @@ lookup_field_wrapper (class, name) java_parser_context_save_global (); decl = lookup_field (&type, name); java_parser_context_restore_global (); - return decl; + return decl == error_mark_node ? NULL : decl; } /* Find duplicate field within the same class declarations and report @@ -3260,7 +3268,6 @@ static void maybe_generate_clinit () { tree mdecl, c; - int has_non_primitive_fields = 0; if (!ctxp->static_initialized || java_error_count) return; @@ -3512,6 +3519,29 @@ static void finish_method_declaration (method_body) tree method_body; { + int flags = get_access_flags_from_decl (current_function_decl); + + /* 8.4.5 Method Body */ + if ((flags & ACC_ABSTRACT || flags & ACC_NATIVE) && method_body) + { + tree wfl = DECL_NAME (current_function_decl); + parse_error_context (wfl, + "%s method `%s' can't have a body defined", + (METHOD_NATIVE (current_function_decl) ? + "Native" : "Abstract"), + IDENTIFIER_POINTER (EXPR_WFL_NODE (wfl))); + method_body = NULL_TREE; + } + else if (!(flags & ACC_ABSTRACT) && !(flags & ACC_NATIVE) && !method_body) + { + tree wfl = DECL_NAME (current_function_decl); + parse_error_context (wfl, + "Non native and non abstract method `%s' must " + "have a body defined", + IDENTIFIER_POINTER (EXPR_WFL_NODE (wfl))); + method_body = NULL_TREE; + } + BLOCK_EXPR_BODY (DECL_FUNCTION_BODY (current_function_decl)) = method_body; maybe_absorb_scoping_blocks (); /* Exit function's body */ @@ -5145,9 +5175,9 @@ static int find_in_imports_on_demand (class_type) tree class_type; { - tree node, import, node_to_use; + tree node, import, node_to_use = NULL_TREE; int seen_once = -1; - tree cl; + tree cl = NULL_TREE; for (import = ctxp->import_demand_list; import; import = TREE_CHAIN (import)) { @@ -7575,9 +7605,15 @@ qualify_ambiguous_name (id) || TREE_CODE (qual_wfl) == STRING_CST || TREE_CODE (qual_wfl) == CONVERT_EXPR) { - qual = TREE_CHAIN (qual); - qual_wfl = QUAL_WFL (qual); - again = 1; + if (TREE_CODE (qual_wfl) == CONVERT_EXPR + && TREE_CODE (TREE_TYPE (qual_wfl)) == EXPR_WITH_FILE_LOCATION) + name = EXPR_WFL_NODE (TREE_TYPE (qual_wfl)); + else + { + qual = TREE_CHAIN (qual); + qual_wfl = QUAL_WFL (qual); + again = 1; + } } } while (again); @@ -7872,7 +7908,10 @@ java_complete_lhs (node) POP_LABELED_BLOCK (); if (LABELED_BLOCK_BODY (node) == empty_stmt_node) - LABELED_BLOCK_BODY (node) = NULL_TREE; + { + LABELED_BLOCK_BODY (node) = NULL_TREE; + CAN_COMPLETE_NORMALLY (node) = 1; + } else if (CAN_COMPLETE_NORMALLY (LABELED_BLOCK_BODY (node))) CAN_COMPLETE_NORMALLY (node) = 1; return node; @@ -8814,6 +8853,7 @@ patch_assignment (node, wfl_op1, wfl_op2) } /* Build the invocation of _Jv_CheckArrayStore */ + new_rhs = save_expr (new_rhs); check = build (CALL_EXPR, void_type_node, build_address_of (soft_checkarraystore_node), tree_cons (NULL_TREE, base, @@ -9057,7 +9097,8 @@ valid_ref_assignconv_cast_p (source, dest, cast) return source == dest || interface_of_p (dest, source); } else /* Array */ - return 0; + return (cast ? + (DECL_NAME (TYPE_NAME (source)) == java_lang_cloneable) : 0); } if (TYPE_ARRAY_P (source)) { @@ -9218,7 +9259,7 @@ patch_binop (node, wfl_op1, wfl_op2) tree op2 = TREE_OPERAND (node, 1); tree op1_type = TREE_TYPE (op1); tree op2_type = TREE_TYPE (op2); - tree prom_type; + tree prom_type = NULL_TREE; int code = TREE_CODE (node); /* If 1, tell the routine that we have to return error_mark_node @@ -9844,7 +9885,7 @@ patch_unaryop (node, wfl_op) { tree op = TREE_OPERAND (node, 0); tree op_type = TREE_TYPE (op); - tree prom_type, value, decl; + tree prom_type = NULL_TREE, value, decl; int code = TREE_CODE (node); int error_found = 0; @@ -11424,7 +11465,7 @@ patch_conditional_expr (node, wfl_cond, wfl_op1) /* Otherwise, binary numeric promotion is applied and the resulting type is the promoted type of operand 1 and 2 */ else - resulting_type = binary_numeric_promotion (t2, t2, + resulting_type = binary_numeric_promotion (t1, t2, &TREE_OPERAND (node, 1), &TREE_OPERAND (node, 2)); } @@ -11481,8 +11522,11 @@ fold_constant_for_init (node, context) tree op0, op1, val; enum tree_code code = TREE_CODE (node); - if (code == INTEGER_CST || code == REAL_CST || code == STRING_CST) + if (code == STRING_CST) return node; + + if (code == INTEGER_CST || code == REAL_CST) + return convert (TREE_TYPE (context), node); if (TREE_TYPE (node) != NULL_TREE && code != VAR_DECL) return NULL_TREE; @@ -11577,13 +11621,11 @@ fold_constant_for_init (node, context) } else { -#if 0 /* Wait until the USE_COMPONENT_REF re-write. FIXME. */ qualify_ambiguous_name (node); if (resolve_field_access (node, &decl, NULL) && decl != NULL_TREE) return fold_constant_for_init (decl, decl); -#endif return NULL_TREE; } } diff --git a/gnu/egcs/gcc/java/xref.c b/gnu/egcs/gcc/java/xref.c index 8835e8dfcac..8fd51804819 100644 --- a/gnu/egcs/gcc/java/xref.c +++ b/gnu/egcs/gcc/java/xref.c @@ -35,7 +35,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ static xref_flag_table xref_table [] = { - {NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL}, }; /* Decode an xref flag value. Return 0 if the flag wasn't found. */ |