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,     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,
static char *java_accstring_lookup PROTO ((int));static void  classitf_redefinition_error PROTO ((char *,tree, tree, tree));static void  variable_redefinition_error PROTO ((tree, tree, tree, int));static void  check_modifiers PROTO ((char *, int, int));static tree  create_class PROTO ((int, tree, tree, tree));static tree  create_interface PROTO ((int, tree, tree));static tree  find_field PROTO ((tree, tree));static tree lookup_field_wrapper PROTO ((tree, tree));static int   duplicate_declaration_error_p PROTO ((tree, tree, tree));static void  register_fields PROTO ((int, tree, tree));static tree parser_qualified_classname PROTO ((tree));static int  parser_check_super PROTO ((tree, tree, tree));static int  parser_check_super_interface PROTO ((tree, tree, tree));static void check_modifiers_consistency PROTO ((int));static tree lookup_cl PROTO ((tree));static tree lookup_java_method2 PROTO ((tree, tree, int));static tree method_header PROTO ((int, tree, tree, tree));static void fix_method_argument_names PROTO ((tree ,tree));static tree method_declarator PROTO ((tree, tree));static void parse_warning_context PVPROTO ((tree cl, const char *msg, ...))  ATTRIBUTE_PRINTF_2;static void issue_warning_error_from_context PROTO ((tree, const char *msg, va_list));static tree parse_jdk1_1_error PROTO ((char *));static void complete_class_report_errors PROTO ((jdep *));static int process_imports PROTO ((void));static void read_import_dir PROTO ((tree));static int find_in_imports_on_demand PROTO ((tree));static int find_in_imports PROTO ((tree));static int check_pkg_class_access PROTO ((tree, tree));static tree resolve_package PROTO ((tree, tree *));static tree lookup_package_type PROTO ((char *, int));static tree resolve_class PROTO ((tree, tree, tree));static void declare_local_variables PROTO ((int, tree, tree));static void source_start_java_method PROTO ((tree));static void source_end_java_method PROTO ((void));static void expand_start_java_method PROTO ((tree));static tree find_name_in_single_imports PROTO ((tree));static void check_abstract_method_header PROTO ((tree));static tree lookup_java_interface_method2 PROTO ((tree, tree));static tree resolve_expression_name PROTO ((tree, tree *));static tree maybe_create_class_interface_decl PROTO ((tree, tree, tree));static int check_class_interface_creation PROTO ((int, int, tree, 						  tree, tree, tree));static tree patch_method_invocation PROTO ((tree, tree, tree, 					    int *, tree *));static int breakdown_qualified PROTO ((tree *, tree *, tree));static tree resolve_and_layout PROTO ((tree, tree));static tree resolve_no_layout PROTO ((tree, tree));static int invocation_mode PROTO ((tree, int));static tree find_applicable_accessible_methods_list PROTO ((int, tree, 							    tree, tree));static void search_applicable_methods_list PROTO ((int, tree, tree, tree, 						   tree *, tree *));static tree find_most_specific_methods_list PROTO ((tree));static int argument_types_convertible PROTO ((tree, tree));static tree patch_invoke PROTO ((tree, tree, tree));static tree lookup_method_invoke PROTO ((int, tree, tree, tree, tree));static tree register_incomplete_type PROTO ((int, tree, tree, tree));static tree obtain_incomplete_type PROTO ((tree));static tree java_complete_lhs PROTO ((tree));static tree java_complete_tree PROTO ((tree));static void java_complete_expand_method PROTO ((tree));static int  unresolved_type_p PROTO ((tree, tree *));static void create_jdep_list PROTO ((struct parser_ctxt *));static tree build_expr_block PROTO ((tree, tree));static tree enter_block PROTO ((void));static tree enter_a_block PROTO ((tree));static tree exit_block PROTO ((void));static tree lookup_name_in_blocks PROTO ((tree));static void maybe_absorb_scoping_blocks PROTO ((void));static tree build_method_invocation PROTO ((tree, tree));static tree build_new_invocation PROTO ((tree, tree));static tree build_assignment PROTO ((int, int, tree, tree));static tree build_binop PROTO ((enum tree_code, int, tree, tree));static int check_final_assignment PROTO ((tree ,tree));static tree patch_assignment PROTO ((tree, tree, tree ));static tree patch_binop PROTO ((tree, tree, tree));static tree build_unaryop PROTO ((int, int, tree));static tree build_incdec PROTO ((int, int, tree, int));static tree patch_unaryop PROTO ((tree, tree));static tree build_cast PROTO ((int, tree, tree));static tree build_null_of_type PROTO ((tree));static tree patch_cast PROTO ((tree, tree));static int valid_ref_assignconv_cast_p PROTO ((tree, tree, int));static int valid_builtin_assignconv_identity_widening_p PROTO ((tree, tree));static int valid_cast_to_p PROTO ((tree, tree));static int valid_method_invocation_conversion_p PROTO ((tree, tree));static tree try_builtin_assignconv PROTO ((tree, tree, tree));static tree try_reference_assignconv PROTO ((tree, tree));static tree build_unresolved_array_type PROTO ((tree));static tree build_array_from_name PROTO ((tree, tree, tree, tree *));static tree build_array_ref PROTO ((int, tree, tree));static tree patch_array_ref PROTO ((tree));static tree make_qualified_name PROTO ((tree, tree, int));static tree merge_qualified_name PROTO ((tree, tree));static tree make_qualified_primary PROTO ((tree, tree, int));static int resolve_qualified_expression_name PROTO ((tree, tree *, 						     tree *, tree *));static void qualify_ambiguous_name PROTO ((tree));static void maybe_generate_clinit PROTO ((void));static tree resolve_field_access PROTO ((tree, tree *, tree *));static tree build_newarray_node PROTO ((tree, tree, int));static tree patch_newarray PROTO ((tree));static tree resolve_type_during_patch PROTO ((tree));static tree build_this PROTO ((int));static tree build_return PROTO ((int, tree));static tree patch_return PROTO ((tree));static tree maybe_access_field PROTO ((tree, tree, tree));static int complete_function_arguments PROTO ((tree));static int check_for_static_method_reference PROTO ((tree, tree, tree, tree, tree));static int not_accessible_p PROTO ((tree, tree, int));static void check_deprecation PROTO ((tree, tree));static int class_in_current_package PROTO ((tree));static tree build_if_else_statement PROTO ((int, tree, tree, tree));static tree patch_if_else_statement PROTO ((tree));static tree add_stmt_to_compound PROTO ((tree, tree, tree));static tree add_stmt_to_block PROTO ((tree, tree, tree));static tree patch_exit_expr PROTO ((tree));static tree build_labeled_block PROTO ((int, tree));static tree finish_labeled_statement PROTO ((tree, tree));static tree build_bc_statement PROTO ((int, int, tree));static tree patch_bc_statement PROTO ((tree));static tree patch_loop_statement PROTO ((tree));static tree build_new_loop PROTO ((tree));static tree build_loop_body PROTO ((int, tree, int));static tree finish_loop_body PROTO ((int, tree, tree, int));static tree build_debugable_stmt PROTO ((int, tree));static tree finish_for_loop PROTO ((int, tree, tree, tree));static tree patch_switch_statement PROTO ((tree));static tree string_constant_concatenation PROTO ((tree, tree));static tree build_string_concatenation PROTO ((tree, tree));static tree patch_string_cst PROTO ((tree));static tree patch_string PROTO ((tree));static tree build_try_statement PROTO ((int, tree, tree));static tree build_try_finally_statement PROTO ((int, tree, tree));static tree patch_try_statement PROTO ((tree));static tree patch_synchronized_statement PROTO ((tree, tree));static tree patch_throw_statement PROTO ((tree, tree));static void check_thrown_exceptions PROTO ((int, tree));static int check_thrown_exceptions_do PROTO ((tree));static void purge_unchecked_exceptions PROTO ((tree));static void check_throws_clauses PROTO ((tree, tree, tree));static void finish_method_declaration PROTO ((tree));static tree build_super_invocation PROTO (());static int verify_constructor_circularity PROTO ((tree, tree));static char *constructor_circularity_msg PROTO ((tree, tree));static tree build_this_super_qualified_invocation PROTO ((int, tree, tree,							  int, int));static char *get_printable_method_name PROTO ((tree));static tree patch_conditional_expr PROTO ((tree, tree, tree));static void maybe_generate_finit PROTO (());static void fix_constructors PROTO ((tree));static int verify_constructor_super PROTO (());static tree create_artificial_method PROTO ((tree, int, tree, tree, tree));static void start_artificial_method_body PROTO ((tree));static void end_artificial_method_body PROTO ((tree));static int check_method_redefinition PROTO ((tree, tree));static int reset_method_name PROTO ((tree));static void java_check_regular_methods PROTO ((tree));static void java_check_abstract_methods PROTO ((tree));static tree maybe_build_primttype_type_ref PROTO ((tree, tree));static void unreachable_stmt_error PROTO ((tree));static tree find_expr_with_wfl PROTO ((tree));static void missing_return_error PROTO ((tree));static tree build_new_array_init PROTO ((int, tree));static tree patch_new_array_init PROTO ((tree, tree));static tree maybe_build_array_element_wfl PROTO ((tree));static int array_constructor_check_entry PROTO ((tree, tree));static char *purify_type_name PROTO ((char *));static tree fold_constant_for_init PROTO ((tree, tree));static tree strip_out_static_field_access_decl PROTO ((tree));static jdeplist *reverse_jdep_list PROTO ((struct parser_ctxt *));static void static_ref_err PROTO ((tree, tree, tree));/* Number of error found so far. */int java_error_count; /* Number of warning found so far. */int java_warning_count;/* Tell when not to fold, when doing xrefs */int do_not_fold;/* The current parser context */struct parser_ctxt *ctxp;/* List of things that were analyzed for which code will be generated */static struct parser_ctxt *ctxp_for_generation = NULL;/* binop_lookup maps token to tree_code. It is used where binary   operations are involved and required by the parser. RDIV_EXPR   covers both integral/floating point division. The code is changed   once the type of both operator is worked out.  */static enum tree_code binop_lookup[19] =   {     PLUS_EXPR, MINUS_EXPR, MULT_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,    LSHIFT_EXPR, RSHIFT_EXPR, URSHIFT_EXPR,     BIT_AND_EXPR, BIT_XOR_EXPR, BIT_IOR_EXPR,    TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR,    EQ_EXPR, NE_EXPR, GT_EXPR, GE_EXPR, LT_EXPR, LE_EXPR,   };#define BINOP_LOOKUP(VALUE) 						\  binop_lookup [((VALUE) - PLUS_TK)%					\		(sizeof (binop_lookup) / sizeof (binop_lookup[0]))]/* Fake WFL used to report error message. It is initialized once if   needed and reused with it's location information is overriden.  */tree wfl_operator = NULL_TREE;/* The "$L" identifier we use to create labels.  */static tree label_id = NULL_TREE;/* The "StringBuffer" identifier used for the String `+' operator. */static tree wfl_string_buffer = NULL_TREE; /* The "append" identifier used for String `+' operator.  */static tree wfl_append = NULL_TREE;/* The "toString" identifier used for String `+' operator. */static tree wfl_to_string = NULL_TREE;/* The "java.lang" import qualified name.  */static tree java_lang_id = NULL_TREE;/* The "java.lang.Cloneable" qualified name.  */static tree java_lang_cloneable = NULL_TREE;/* Context and flag for static blocks */static tree current_static_block = NULL_TREE;#line 303 "./parse.y"typedef union {  tree node;  int sub_token;  struct {    int token;    int location;  } operator;  int value;} YYSTYPE;#line 313 "./parse.y"#include "lex.c"#ifndef YYDEBUG#define YYDEBUG 1#endif#include <stdio.h>#ifndef __cplusplus#ifndef __STDC__#define const#endif#endif#define	YYFINAL		775#define	YYFLAG		-32768#define	YYNTBASE	110#define YYTRANSLATE(x) ((unsigned)(x) <= 364 ? yytranslate[x] : 265)static const char yytranslate[] = {     0,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,    57,    58,    59,    60,    61,    62,    63,    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,   106,   107,   108,   109};#if YYDEBUG != 0static const short yyprhs[] = {     0,     0,     2,     4,     6,     8,    10,    12,    14,    16,    18,    20,    22,    24,    26,    28,    30,    32,    34,    38,    42,    46,    50,    54,    56,    58,    60,    64,    66,    67,    69,    71,    73,    76,    79,    82,    86,    88,    91,    93,    96,   100,   103,   107,   109,   111,   115,   118,   122,   128,   133,   139,   141,   143,   145,   147,   149,   152,   153,   161,   162,   169,   173,   176,   180,   185,   186,   189,   193,   196,   197,   200,   203,   205,   209,   213,   216,   220,   222,   225,   227,   229,   231,   233,   235,   238,   240,   242,   244,   248,   253,   255,   259,   263,   265,   269,   273,   278,   280,   284,   287,   291,   295,   297,   299,   300,   304,   307,   311,   315,   320,   325,   328,   332,   335,   339,   342,   346,   351,   355,   359,   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};static const short yyrhs[] = {   123,     0,   104,     0,   105,     0,   108,     0,   103,     0,   102,     0,   109,     0,   113,     0,   114,     0,    82,     0,    85,     0,    50,     0,   115,     0,   118,     0,   119,     0,   115,     0,   115,     0,   113,    97,    98,     0,   119,    97,    98,     0,   118,    97,    98,     0,   113,    97,     1,     0,   118,    97,     1,     0,   120,     0,   121,     0,   122,     0,   119,   101,   122,     0,    86,     0,     0,   126,     0,   124,     0,   125,     0,   126,   124,     0,   126,   125,     0,   124,   125,     0,   126,   124,   125,     0,   127,     0,   124,   127,     0,   130,     0,   125,   130,     0,    75,   119,    99,     0,    75,     1,     0,    75,   119,     1,     0,   128,     0,   129,     0,    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,     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,    67,   122,     1,     0,     0,    63,   116,     0,    63,   116,     1,     0,    63,     1,     0,     0,    52,   137,     0,    52,     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,    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,   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,     0,    59,     1,     0,   131,    59,     1,     0,   131,     1,     0,   122,    93,    94,     0,   122,    93,   151,    94,     0,   150,    97,    98,     0,   122,    93,     1,     0,   150,    97,     1,     0,   152,     0,   151,   100,   152,     0,   151,   100,     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,   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};#endif#if YYDEBUG != 0static const short yyrline[] = { 0,   457,   463,   465,   466,   467,   468,   469,   473,   475,   478,   480,   481,   484,   486,   489,   493,   497,   501,   507,   509,   511,   513,   518,   520,   523,   527,   532,   537,   539,   540,   541,   542,   543,   544,   545,   548,   553,   559,   561,   564,   567,   569,   573,   575,   578,   605,   607,   611,   624,   626,   630,   637,   642,   644,   654,   659,   674,   678,   681,   684,   687,   689,   691,   696,   700,   702,   704,   706,   710,   712,   714,   721,   727,   732,   736,   745,   755,   757,   760,   762,   763,   764,   768,   770,   772,   773,   775,   780,   783,   793,   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};#endif#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)static const char * const yytname[] = {   "$","error","$undefined.","PLUS_TK","MINUS_TK","MULT_TK","DIV_TK","REM_TK","LS_TK","SRS_TK","ZRS_TK","AND_TK","XOR_TK","OR_TK","BOOL_AND_TK","BOOL_OR_TK","EQ_TK","NEQ_TK","GT_TK","GTE_TK","LT_TK","LTE_TK","PLUS_ASSIGN_TK","MINUS_ASSIGN_TK","MULT_ASSIGN_TK","DIV_ASSIGN_TK","REM_ASSIGN_TK","LS_ASSIGN_TK","SRS_ASSIGN_TK","ZRS_ASSIGN_TK","AND_ASSIGN_TK","XOR_ASSIGN_TK","OR_ASSIGN_TK","PUBLIC_TK","PRIVATE_TK","PROTECTED_TK","STATIC_TK","FINAL_TK","SYNCHRONIZED_TK","VOLATILE_TK","TRANSIENT_TK","NATIVE_TK","PAD_TK","ABSTRACT_TK","MODIFIER_TK","DECR_TK","INCR_TK","DEFAULT_TK","IF_TK","THROW_TK","BOOLEAN_TK","DO_TK","IMPLEMENTS_TK","THROWS_TK","BREAK_TK","IMPORT_TK","ELSE_TK","INSTANCEOF_TK","RETURN_TK","VOID_TK","CATCH_TK","INTERFACE_TK","CASE_TK","EXTENDS_TK","FINALLY_TK","SUPER_TK","WHILE_TK","CLASS_TK","SWITCH_TK","CONST_TK","TRY_TK","FOR_TK","NEW_TK","CONTINUE_TK","GOTO_TK","PACKAGE_TK","THIS_TK","BYTE_TK","SHORT_TK","INT_TK","LONG_TK","CHAR_TK","INTEGRAL_TK","FLOAT_TK","DOUBLE_TK","FP_TK","ID_TK","REL_QM_TK","REL_CL_TK","NOT_TK","NEG_TK","ASSIGN_ANY_TK","ASSIGN_TK","OP_TK","CP_TK","OCB_TK","CCB_TK","OSB_TK","CSB_TK","SC_TK","C_TK","DOT_TK","STRING_LIT_TK","CHAR_LIT_TK","INT_LIT_TK","FP_LIT_TK","TRUE_TK","FALSE_TK","BOOL_LIT_TK","NULL_TK","goal","literal","type","primitive_type","reference_type","class_or_interface_type","class_type","interface_type","array_type","name","simple_name","qualified_name","identifier","compilation_unit","import_declarations","type_declarations","package_declaration","import_declaration","single_type_import_declaration","type_import_on_demand_declaration","type_declaration","modifiers","class_declaration","@1","@2","super","interfaces","interface_type_list","class_body","class_body_declarations","class_body_declaration","class_member_declaration","field_declaration","variable_declarators","variable_declarator","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","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","block","block_begin","block_end","block_statements","block_statement","local_variable_declaration_statement","local_variable_declaration","statement","statement_nsi","statement_without_trailing_substatement","empty_statement","label_decl","labeled_statement","labeled_statement_nsi","expression_statement","statement_expression","if_then_statement","if_then_else_statement","if_then_else_statement_nsi","switch_statement","@9","switch_expression","switch_block","switch_block_statement_groups","switch_block_statement_group","switch_labels","switch_label","while_expression","while_statement","while_statement_nsi","do_statement_begin","do_statement","for_statement","for_statement_nsi","for_header","for_begin","for_init","for_update","statement_expression_list","break_statement","continue_statement","return_statement","throw_statement","synchronized_statement","synchronized","try_statement","catches","catch_clause","catch_clause_parameter","finally","primary","primary_no_new_array","class_instance_creation_expression","something_dot_new","argument_list","array_creation_expression","dim_exprs","dim_expr","dims","field_access","method_invocation","array_access","postfix_expression","post_increment_expression","post_decrement_expression","unary_expression","pre_increment_expression","pre_decrement_expression","unary_expression_not_plus_minus","cast_expression","multiplicative_expression","additive_expression","shift_expression","relational_expression","equality_expression","and_expression","exclusive_or_expression","inclusive_or_expression","conditional_and_expression","conditional_or_expression","conditional_expression","assignment_expression","assignment","left_hand_side","assignment_operator","expression","constant_expression", NULL};#endifstatic const short yyr1[] = {     0,   110,   111,   111,   111,   111,   111,   111,   112,   112,   113,   113,   113,   114,   114,   115,   116,   117,   118,   118,   118,   118,   118,   119,   119,   120,   121,   122,   123,   123,   123,   123,   123,   123,   123,   123,   124,   124,   125,   125,   126,   126,   126,   127,   127,   128,   128,   128,   129,   129,   129,   130,   130,   130,   130,   131,   131,   133,   132,   134,   132,   132,   132,   132,   132,   135,   135,   135,   135,   136,   136,   136,   137,   137,   137,   138,   138,   139,   139,   140,   140,   140,   140,   141,   141,   141,   141,   141,   142,   142,   143,   143,   143,   144,   144,   144,   144,   145,   145,   145,   145,   145,   146,   146,   148,   147,   147,   149,   149,   149,   149,   149,   149,   149,   149,   149,   150,   150,   150,   150,   150,   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,   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};static const short yyr2[] = {     0,     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,     3,     3,     3,     3,     3,     1,     1,     1,     3,     1,     0,     1,     1,     1,     2,     2,     2,     3,     1,     2,     1,     2,     3,     2,     3,     1,     1,     3,     2,     3,     5,     4,     5,     1,     1,     1,     1,     1,     2,     0,     7,     0,     6,     3,     2,     3,     4,     0,     2,     3,     2,     0,     2,     2,     1,     3,     3,     2,     3,     1,     2,     1,     1,     1,     1,     1,     2,     1,     1,     1,     3,     4,     1,     3,     3,     1,     3,     3,     4,     1,     3,     2,     3,     3,     1,     1,     0,     3,     2,     3,     3,     4,     4,     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,     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,     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};static const short yydefact[] = {     0,    54,    55,     0,     0,     0,     0,    53,     1,     0,     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,   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,     0,     0,   107,    21,    18,    22,    20,    19,   114,   128,   112,     0,   128,    74,    73,    55,   189,    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,     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};static const short yydefgoto[] = {   773,   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};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 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};#define	YYLAST		5593static 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,   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,   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,   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,     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,     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,   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,   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,   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,     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,     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,   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,   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,   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,     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,   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,   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,   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,   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,     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,   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,   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,   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,   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,     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,   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,   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,   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,   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,     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,     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,     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,   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,    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,    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,    -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,    -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,    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,    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,    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,    -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,    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,    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,    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,    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,    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,    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,    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,    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,    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,    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,    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,    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,    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,    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,    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,    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,    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,    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,    -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,    -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,    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"/* Skeleton output parser for bison,   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2, or (at your option)   any later version.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  *//* As a special exception, when this file is copied by Bison into a   Bison output file, you may use that output file without restriction.   This special exception was added by the Free Software Foundation   in version 1.24 of Bison.  */#ifndef alloca#ifdef __GNUC__#define alloca __builtin_alloca#else /* not GNU C.  */#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)#include <alloca.h>#else /* not sparc */#if defined (MSDOS) && !defined (__TURBOC__)#include <malloc.h>#else /* not MSDOS, or __TURBOC__ */#if defined(_AIX)#include <malloc.h> #pragma alloca#else /* not MSDOS, __TURBOC__, or _AIX */#ifdef __hpux#ifdef __cplusplusextern "C" {void *alloca (unsigned int);};#else /* not __cplusplus */void *alloca ();#endif /* not __cplusplus */#endif /* __hpux */#endif /* not _AIX */#endif /* not MSDOS, or __TURBOC__ */#endif /* not sparc.  */#endif /* not GNU C.  */#endif /* alloca not defined.  *//* This is the parser code that is written into each bison parser  when the %semantic_parser declaration is not specified in the grammar.  It was written by Richard Stallman by simplifying the hairy parser  used when %semantic_parser is specified.  *//* Note: there must be only one dollar sign in this file.   It is replaced by the list of actions, each action   as one case of the switch.  */#define yyerrok		(yyerrstatus = 0)#define yyclearin	(yychar = YYEMPTY)#define YYEMPTY		-2#define YYEOF		0#define YYACCEPT	return(0)#define YYABORT 	return(1)#define YYERROR		goto yyerrlab1/* Like YYERROR except do call yyerror.   This remains here temporarily to ease the   transition to the new meaning of YYERROR, for GCC.   Once GCC version 2 has supplanted version 1, this can go.  */#define YYFAIL		goto yyerrlab#define YYRECOVERING()  (!!yyerrstatus)#define YYBACKUP(token, value) \do								\  if (yychar == YYEMPTY && yylen == 1)				\    { yychar = (token), yylval = (value);			\      yychar1 = YYTRANSLATE (yychar);				\      YYPOPSTACK;						\      goto yybackup;						\    }								\  else								\    { yyerror ("syntax error: cannot back up"); YYERROR; }	\while (0)#define YYTERROR	1#define YYERRCODE	256#ifndef YYPURE#define YYLEX		yylex()#endif#ifdef YYPURE#ifdef YYLSP_NEEDED#ifdef YYLEX_PARAM#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)#else#define YYLEX		yylex(&yylval, &yylloc)#endif#else /* not YYLSP_NEEDED */#ifdef YYLEX_PARAM#define YYLEX		yylex(&yylval, YYLEX_PARAM)#else#define YYLEX		yylex(&yylval)#endif#endif /* not YYLSP_NEEDED */#endif/* If nonreentrant, generate the variables here */#ifndef YYPUREint	yychar;			/*  the lookahead symbol		*/YYSTYPE	yylval;			/*  the semantic value of the		*/				/*  lookahead symbol			*/#ifdef YYLSP_NEEDEDYYLTYPE yylloc;			/*  location data for the lookahead	*/				/*  symbol				*/#endifint yynerrs;			/*  number of parse errors so far       */#endif  /* not YYPURE */#if YYDEBUG != 0int yydebug;			/*  nonzero means print parse trace	*//* Since this is uninitialized, it does not stop multiple parsers   from coexisting.  */#endif/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/#ifndef	YYINITDEPTH#define YYINITDEPTH 200#endif/*  YYMAXDEPTH is the maximum size the stacks can grow to    (effective only if the built-in stack extension method is used).  */#if YYMAXDEPTH == 0#undef YYMAXDEPTH#endif#ifndef YYMAXDEPTH#define YYMAXDEPTH 10000#endif/* Prevent warning if -Wstrict-prototypes.  */#ifdef __GNUC__int yyparse (void);#endif#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)#else				/* not GNU C or C++ */#ifndef __cplusplus/* This is the most reliable way to avoid incompatibilities   in available built-in functions on various systems.  */static void__yy_memcpy (to, from, count)     char *to;     char *from;     int count;{  register char *f = from;  register char *t = to;  register int i = count;  while (i-- > 0)    *t++ = *f++;}#else /* __cplusplus *//* This is the most reliable way to avoid incompatibilities   in available built-in functions on various systems.  */static void__yy_memcpy (char *to, char *from, int count){  register char *f = from;  register char *t = to;  register int i = count;  while (i-- > 0)    *t++ = *f++;}#endif#endif#line 196 "/usr/lib/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 *.   It should actually point to an object.   Grammar actions can access the variable by casting it   to the proper pointer type.  */#ifdef YYPARSE_PARAM#ifdef __cplusplus#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM#define YYPARSE_PARAM_DECL#else /* not __cplusplus */#define YYPARSE_PARAM_ARG YYPARSE_PARAM#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;#endif /* not __cplusplus */#else /* not YYPARSE_PARAM */#define YYPARSE_PARAM_ARG#define YYPARSE_PARAM_DECL#endif /* not YYPARSE_PARAM */intyyparse(YYPARSE_PARAM_ARG)     YYPARSE_PARAM_DECL{  register int yystate;  register int yyn;  register short *yyssp;  register YYSTYPE *yyvsp;  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */  short	yyssa[YYINITDEPTH];	/*  the state stack			*/  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */#ifdef YYLSP_NEEDED  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/  YYLTYPE *yyls = yylsa;  YYLTYPE *yylsp;#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)#else#define YYPOPSTACK   (yyvsp--, yyssp--)#endif  int yystacksize = YYINITDEPTH;#ifdef YYPURE  int yychar;  YYSTYPE yylval;  int yynerrs;#ifdef YYLSP_NEEDED  YYLTYPE yylloc;#endif#endif  YYSTYPE yyval;		/*  the variable used to return		*/				/*  semantic values from the action	*/				/*  routines				*/  int yylen;#if YYDEBUG != 0  if (yydebug)    fprintf(stderr, "Starting parse\n");#endif  yystate = 0;  yyerrstatus = 0;  yynerrs = 0;  yychar = YYEMPTY;		/* Cause a token to be read.  */  /* Initialize stack pointers.     Waste one element of value and location stack     so that they stay on the same level as the state stack.     The wasted elements are never initialized.  */  yyssp = yyss - 1;  yyvsp = yyvs;#ifdef YYLSP_NEEDED  yylsp = yyls;#endif/* Push a new state, which is found in  yystate  .  *//* In all cases, when you get here, the value and location stacks   have just been pushed. so pushing a state here evens the stacks.  */yynewstate:  *++yyssp = yystate;  if (yyssp >= yyss + yystacksize - 1)    {      /* Give user a chance to reallocate the stack */      /* Use copies of these so that the &'s don't force the real ones into memory. */      YYSTYPE *yyvs1 = yyvs;      short *yyss1 = yyss;#ifdef YYLSP_NEEDED      YYLTYPE *yyls1 = yyls;#endif      /* Get the current used size of the three stacks, in elements.  */      int size = yyssp - yyss + 1;#ifdef yyoverflow      /* Each stack pointer address is followed by the size of	 the data in use in that stack, in bytes.  */#ifdef YYLSP_NEEDED      /* This used to be a conditional around just the two extra args,	 but that might be undefined if yyoverflow is a macro.  */      yyoverflow("parser stack overflow",		 &yyss1, size * sizeof (*yyssp),		 &yyvs1, size * sizeof (*yyvsp),		 &yyls1, size * sizeof (*yylsp),		 &yystacksize);#else      yyoverflow("parser stack overflow",		 &yyss1, size * sizeof (*yyssp),		 &yyvs1, size * sizeof (*yyvsp),		 &yystacksize);#endif      yyss = yyss1; yyvs = yyvs1;#ifdef YYLSP_NEEDED      yyls = yyls1;#endif#else /* no yyoverflow */      /* Extend the stack our own way.  */      if (yystacksize >= YYMAXDEPTH)	{	  yyerror("parser stack overflow");	  return 2;	}      yystacksize *= 2;      if (yystacksize > YYMAXDEPTH)	yystacksize = YYMAXDEPTH;      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));#ifdef YYLSP_NEEDED      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));#endif#endif /* no yyoverflow */      yyssp = yyss + size - 1;      yyvsp = yyvs + size - 1;#ifdef YYLSP_NEEDED      yylsp = yyls + size - 1;#endif#if YYDEBUG != 0      if (yydebug)	fprintf(stderr, "Stack size increased to %d\n", yystacksize);#endif      if (yyssp >= yyss + yystacksize - 1)	YYABORT;    }#if YYDEBUG != 0  if (yydebug)    fprintf(stderr, "Entering state %d\n", yystate);#endif  goto yybackup; yybackup:/* Do appropriate processing given the current state.  *//* Read a lookahead token if we need one and don't already have one.  *//* yyresume: */  /* First try to decide what to do without reference to lookahead token.  */  yyn = yypact[yystate];  if (yyn == YYFLAG)    goto yydefault;  /* Not known => get a lookahead token if don't already have one.  */  /* yychar is either YYEMPTY or YYEOF     or a valid token in external form.  */  if (yychar == YYEMPTY)    {#if YYDEBUG != 0      if (yydebug)	fprintf(stderr, "Reading a token: ");#endif      yychar = YYLEX;    }  /* Convert token to internal form (in yychar1) for indexing tables with */  if (yychar <= 0)		/* This means end of input. */    {      yychar1 = 0;      yychar = YYEOF;		/* Don't call YYLEX any more */#if YYDEBUG != 0      if (yydebug)	fprintf(stderr, "Now at end of input.\n");#endif    }  else    {      yychar1 = YYTRANSLATE(yychar);#if YYDEBUG != 0      if (yydebug)	{	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);	  /* Give the individual parser a way to print the precise meaning	     of a token, for further debugging info.  */#ifdef YYPRINT	  YYPRINT (stderr, yychar, yylval);#endif	  fprintf (stderr, ")\n");	}#endif    }  yyn += yychar1;  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)    goto yydefault;  yyn = yytable[yyn];  /* yyn is what to do for this token type in this state.     Negative => reduce, -yyn is rule number.     Positive => shift, yyn is new state.       New state is final state => don't bother to shift,       just return success.     0, or most negative number => error.  */  if (yyn < 0)    {      if (yyn == YYFLAG)	goto yyerrlab;      yyn = -yyn;      goto yyreduce;    }  else if (yyn == 0)    goto yyerrlab;  if (yyn == YYFINAL)    YYACCEPT;  /* Shift the lookahead token.  */#if YYDEBUG != 0  if (yydebug)    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);#endif  /* Discard the token being shifted unless it is eof.  */  if (yychar != YYEOF)    yychar = YYEMPTY;  *++yyvsp = yylval;#ifdef YYLSP_NEEDED  *++yylsp = yylloc;#endif  /* count tokens shifted since error; after three, turn off error status.  */  if (yyerrstatus) yyerrstatus--;  yystate = yyn;  goto yynewstate;/* Do the default action for the current state.  */yydefault:  yyn = yydefact[yystate];  if (yyn == 0)    goto yyerrlab;/* Do a reduction.  yyn is the number of a rule to reduce with.  */yyreduce:  yylen = yyr2[yyn];  if (yylen > 0)    yyval = yyvsp[1-yylen]; /* implement default value of the action */#if YYDEBUG != 0  if (yydebug)    {      int i;      fprintf (stderr, "Reducing via rule %d (line %d), ",	       yyn, yyrline[yyn]);      /* Print the symbols being reduced, and their result.  */      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)	fprintf (stderr, "%s ", yytname[yyrhs[i]]);      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);    }#endif  switch (yyn) {case 1:#line 459 "./parse.y"{;    break;}case 18:#line 503 "./parse.y"{ 		  yyval.node = build_java_array_type (yyvsp[-2].node, -1);		  CLASS_LOADED_P (yyval.node) = 1;		;    break;}case 19:#line 508 "./parse.y"{ yyval.node = build_unresolved_array_type (yyvsp[-2].node); ;    break;}case 20:#line 510 "./parse.y"{ yyval.node = build_unresolved_array_type (yyvsp[-2].node); ;    break;}case 21:#line 512 "./parse.y"{RULE ("']' expected"); RECOVER;;    break;}case 22:#line 514 "./parse.y"{RULE ("']' expected"); RECOVER;;    break;}case 26:#line 529 "./parse.y"{ yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ;    break;}case 28:#line 538 "./parse.y"{yyval.node = NULL;;    break;}case 36:#line 550 "./parse.y"{		  yyval.node = NULL;		;    break;}case 37:#line 554 "./parse.y"{		  yyval.node = NULL;		;    break;}case 40:#line 566 "./parse.y"{ ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); ;    break;}case 41:#line 568 "./parse.y"{yyerror ("Missing name"); RECOVER;;    break;}case 42:#line 570 "./parse.y"{yyerror ("';' expected"); RECOVER;;    break;}case 45:#line 580 "./parse.y"{		  tree name = EXPR_WFL_NODE (yyvsp[-1].node), node, last_name;		  int   i = IDENTIFIER_LENGTH (name)-1;		  char *last = &IDENTIFIER_POINTER (name)[i];		  while (last != IDENTIFIER_POINTER (name))		    {		      if (last [0] == '.')			break;		      last--;		    }		  last_name = get_identifier (++last);		  if (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P (last_name))		    {		      tree err = find_name_in_single_imports (last_name);		      if (err && err != name)			parse_error_context			  (yyvsp[-1].node, "Ambiguous class: `%s' and `%s'",			   IDENTIFIER_POINTER (name), 			   IDENTIFIER_POINTER (err));		      else			REGISTER_IMPORT (yyvsp[-1].node, last_name)		    }		  else		    REGISTER_IMPORT (yyvsp[-1].node, last_name);		;    break;}case 46:#line 606 "./parse.y"{yyerror ("Missing name"); RECOVER;;    break;}case 47:#line 608 "./parse.y"{yyerror ("';' expected"); RECOVER;;    break;}case 48:#line 613 "./parse.y"{		  tree name = EXPR_WFL_NODE (yyvsp[-3].node);		  /* Don't import java.lang.* twice. */		  if (name != java_lang_id)		    {		      tree node = build_tree_list (yyvsp[-3].node, NULL_TREE);		      read_import_dir (yyvsp[-3].node);		      TREE_CHAIN (node) = ctxp->import_demand_list;		      ctxp->import_demand_list = node;		    }		;    break;}case 49:#line 625 "./parse.y"{yyerror ("'*' expected"); RECOVER;;    break;}case 50:#line 627 "./parse.y"{yyerror ("';' expected"); RECOVER;;    break;}case 51:#line 632 "./parse.y"{		  maybe_generate_finit ();		  maybe_generate_clinit ();		  yyval.node = yyvsp[0].node;		;    break;}case 52:#line 638 "./parse.y"{		  maybe_generate_clinit ();		  yyval.node = yyvsp[0].node;		;    break;}case 53:#line 643 "./parse.y"{ yyval.node = NULL; ;    break;}case 54:#line 645 "./parse.y"{		  YYERROR_NOW;		  yyerror ("Class or interface declaration expected");		;    break;}case 55:#line 656 "./parse.y"{		  yyval.value = (1 << yyvsp[0].value);		;    break;}case 56:#line 660 "./parse.y"{		  int acc = (1 << yyvsp[0].value);		  if (yyval.value & acc)		    parse_error_context 		      (ctxp->modifier_ctx [yyvsp[0].value], "Modifier `%s' declared twice",		       java_accstring_lookup (acc));		  else		    {		      yyval.value |= acc;		    }		;    break;}case 57:#line 676 "./parse.y"{ create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 58:#line 678 "./parse.y"{ 		  yyval.node = yyvsp[0].node;		;    break;}case 59:#line 682 "./parse.y"{ create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 60:#line 684 "./parse.y"{ 			  yyval.node = yyvsp[0].node;		;    break;}case 61:#line 688 "./parse.y"{yyerror ("Missing class name"); RECOVER;;    break;}case 62:#line 690 "./parse.y"{yyerror ("Missing class name"); RECOVER;;    break;}case 63:#line 692 "./parse.y"{		  if (!ctxp->class_err) yyerror ("'{' expected"); 		  DRECOVER(class1);		;    break;}case 64:#line 697 "./parse.y"{if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;;    break;}case 65:#line 701 "./parse.y"{ yyval.node = NULL; ;    break;}case 66:#line 703 "./parse.y"{ yyval.node = yyvsp[0].node; ;    break;}case 67:#line 705 "./parse.y"{yyerror ("'{' expected"); ctxp->class_err=1;;    break;}case 68:#line 707 "./parse.y"{yyerror ("Missing super class name"); ctxp->class_err=1;;    break;}case 69:#line 711 "./parse.y"{ yyval.node = NULL_TREE; ;    break;}case 70:#line 713 "./parse.y"{ yyval.node = yyvsp[0].node; ;    break;}case 71:#line 715 "./parse.y"{		  ctxp->class_err=1;		  yyerror ("Missing interface name"); 		;    break;}case 72:#line 723 "./parse.y"{ 		  ctxp->interface_number = 1;		  yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE);		;    break;}case 73:#line 728 "./parse.y"{ 		  ctxp->interface_number++;		  yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE));		;    break;}case 74:#line 733 "./parse.y"{yyerror ("Missing interface name"); RECOVER;;    break;}case 75:#line 738 "./parse.y"{ 		  /* Store the location of the `}' when doing xrefs */		  if (flag_emit_xref)		    DECL_END_SOURCE_LINE (ctxp->current_parsed_class) = 		      EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1);		  yyval.node = ctxp->current_parsed_class;		;    break;}case 76:#line 746 "./parse.y"{ 		  /* Store the location of the `}' when doing xrefs */		  if (flag_emit_xref)		    DECL_END_SOURCE_LINE (ctxp->current_parsed_class) = 		      EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1);		  yyval.node = ctxp->current_parsed_class;		;    break;}case 82:#line 765 "./parse.y"{ yyval.node = parse_jdk1_1_error ("instance initializer"); ;    break;}case 84:#line 771 "./parse.y"{ yyval.node = yyvsp[-1].node; ;    break;}case 86:#line 774 "./parse.y"{ yyval.node = parse_jdk1_1_error ("inner classe declaration"); ;    break;}case 87:#line 776 "./parse.y"{ yyval.node = parse_jdk1_1_error ("inner interface declaration"); ;    break;}case 88:#line 782 "./parse.y"{ register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ;    break;}case 89:#line 784 "./parse.y"{		  check_modifiers 		    ("Illegal modifier `%s' for field declaration",		     yyvsp[-3].value, FIELD_MODIFIERS);		  check_modifiers_consistency (yyvsp[-3].value);		  register_fields (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node);		;    break;}case 91:#line 797 "./parse.y"{ yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ;    break;}case 92:#line 799 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 93:#line 804 "./parse.y"{ yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ;    break;}case 94:#line 806 "./parse.y"{ 		  if (java_error_count)		    yyvsp[0].node = NULL_TREE;		  yyval.node = build_tree_list 		    (yyvsp[-2].node, build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node));		;    break;}case 95:#line 813 "./parse.y"{		  yyerror ("Missing variable initializer");		  yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE);		  RECOVER;		;    break;}case 96:#line 819 "./parse.y"{		  yyerror ("';' expected");		  yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE);		  RECOVER;		;    break;}case 98:#line 829 "./parse.y"{ yyval.node = build_unresolved_array_type (yyvsp[-2].node); ;    break;}case 99:#line 831 "./parse.y"{yyerror ("Invalid declaration"); DRECOVER(vdi);;    break;}case 100:#line 833 "./parse.y"{yyerror ("']' expected"); DRECOVER(vdi);;    break;}case 101:#line 835 "./parse.y"{yyerror ("Unbalanced ']'"); DRECOVER(vdi);;    break;}case 104:#line 846 "./parse.y"{		  current_function_decl = yyvsp[0].node;		  source_start_java_method (current_function_decl);		;    break;}case 105:#line 851 "./parse.y"{ finish_method_declaration (yyvsp[0].node); ;    break;}case 106:#line 853 "./parse.y"{YYNOT_TWICE yyerror ("'{' expected"); RECOVER;;    break;}case 107:#line 858 "./parse.y"{ yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 108:#line 860 "./parse.y"{ yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 109:#line 862 "./parse.y"{ yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 110:#line 864 "./parse.y"{ yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 111:#line 866 "./parse.y"{RECOVER;;    break;}case 112:#line 868 "./parse.y"{RECOVER;;    break;}case 113:#line 870 "./parse.y"{yyerror ("Identifier expected"); RECOVER;;    break;}case 114:#line 872 "./parse.y"{yyerror ("Identifier expected"); RECOVER;;    break;}case 115:#line 874 "./parse.y"{		  yyerror ("Invalid method declaration, return type required");		  RECOVER;		;    break;}case 116:#line 882 "./parse.y"{ yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ;    break;}case 117:#line 884 "./parse.y"{ yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ;    break;}case 118:#line 886 "./parse.y"{		  EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location;		  TREE_PURPOSE (yyvsp[-2].node) = 		    build_unresolved_array_type (TREE_PURPOSE (yyvsp[-2].node));		  parse_warning_context 		    (wfl_operator, 		     "Discouraged form of returned type specification");		;    break;}case 119:#line 895 "./parse.y"{yyerror ("')' expected"); DRECOVER(method_declarator);;    break;}case 120:#line 897 "./parse.y"{yyerror ("']' expected"); RECOVER;;    break;}case 121:#line 902 "./parse.y"{		  ctxp->formal_parameter_number = 1;		;    break;}case 122:#line 906 "./parse.y"{		  ctxp->formal_parameter_number += 1;		  yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node);		;    break;}case 123:#line 911 "./parse.y"{yyerror ("Missing formal parameter term"); RECOVER;;    break;}case 124:#line 916 "./parse.y"{		  yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node);		;    break;}case 125:#line 920 "./parse.y"{ yyval.node = parse_jdk1_1_error ("final parameters"); ;    break;}case 126:#line 922 "./parse.y"{yyerror ("Missing identifier"); RECOVER;;    break;}case 127:#line 924 "./parse.y"{		  SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[-2].value));		  yyerror ("Missing identifier"); RECOVER;		;    break;}case 128:#line 931 "./parse.y"{ yyval.node = NULL_TREE; ;    break;}case 129:#line 933 "./parse.y"{ yyval.node = yyvsp[0].node; ;    break;}case 130:#line 935 "./parse.y"{yyerror ("Missing class type term"); RECOVER;;    break;}case 131:#line 940 "./parse.y"{ yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ;    break;}case 132:#line 942 "./parse.y"{ yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ;    break;}case 133:#line 944 "./parse.y"{yyerror ("Missing class type term"); RECOVER;;    break;}case 136:#line 951 "./parse.y"{ yyval.node = NULL_TREE; ;    break;}case 137:#line 957 "./parse.y"{		  TREE_CHAIN (yyvsp[0].node) = ctxp->static_initialized;		  ctxp->static_initialized = yyvsp[0].node;		;    break;}case 138:#line 962 "./parse.y"{		  TREE_CHAIN (yyvsp[-1].node) = ctxp->static_initialized;		  ctxp->static_initialized = yyvsp[-1].node;		;    break;}case 139:#line 970 "./parse.y"{		  SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[0].value));		;    break;}case 140:#line 978 "./parse.y"{		  current_function_decl = yyvsp[0].node;		  source_start_java_method (current_function_decl);		;    break;}case 141:#line 983 "./parse.y"{ finish_method_declaration (yyvsp[0].node); ;    break;}case 142:#line 988 "./parse.y"{ yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 143:#line 990 "./parse.y"{ yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 144:#line 995 "./parse.y"{ yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ;    break;}case 145:#line 997 "./parse.y"{ yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ;    break;}case 146:#line 1005 "./parse.y"{ 		  BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node;		  yyval.node = yyvsp[0].node;		;    break;}case 147:#line 1010 "./parse.y"{ yyval.node = yyvsp[0].node; ;    break;}case 148:#line 1012 "./parse.y"{ yyval.node = yyvsp[0].node; ;    break;}case 149:#line 1014 "./parse.y"{ yyval.node = yyvsp[0].node; ;    break;}case 150:#line 1020 "./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"{ 		  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"{yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ;    break;}case 153:#line 1036 "./parse.y"{yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ;    break;}case 154:#line 1041 "./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"{		  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"{ create_interface (0, yyvsp[0].node, NULL_TREE); ;    break;}case 157:#line 1060 "./parse.y"{		  yyval.node = yyvsp[0].node;		;    break;}case 158:#line 1064 "./parse.y"{ create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ;    break;}case 159:#line 1066 "./parse.y"{		  yyval.node = yyvsp[0].node;		;    break;}case 160:#line 1070 "./parse.y"{ create_interface (0, yyvsp[-1].node, yyvsp[0].node);	;    break;}case 161:#line 1072 "./parse.y"{		  yyval.node = yyvsp[0].node;		;    break;}case 162:#line 1076 "./parse.y"{ create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 163:#line 1078 "./parse.y"{		  yyval.node = yyvsp[0].node;		;    break;}case 164:#line 1082 "./parse.y"{yyerror ("'{' expected"); RECOVER;;    break;}case 165:#line 1084 "./parse.y"{yyerror ("'{' expected"); RECOVER;;    break;}case 166:#line 1089 "./parse.y"{ 		  ctxp->interface_number = 1;		  yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE);		;    break;}case 167:#line 1094 "./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"{yyerror ("Invalid interface type"); RECOVER;;    break;}case 169:#line 1101 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 170:#line 1106 "./parse.y"{ yyval.node = NULL_TREE; ;    break;}case 171:#line 1108 "./parse.y"{ yyval.node = NULL_TREE; ;    break;}case 176:#line 1120 "./parse.y"{ yyval.node = parse_jdk1_1_error ("inner class declaration"); ;    break;}case 177:#line 1122 "./parse.y"{ yyval.node = parse_jdk1_1_error ("inner interface declaration"); ;    break;}case 179:#line 1131 "./parse.y"{ 		  check_abstract_method_header (yyvsp[-1].node);		  current_function_decl = NULL_TREE; /* FIXME ? */		;    break;}case 180:#line 1136 "./parse.y"{yyerror ("';' expected"); RECOVER;;    break;}case 181:#line 1142 "./parse.y"{ yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ;    break;}case 182:#line 1144 "./parse.y"{ yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ;    break;}case 183:#line 1146 "./parse.y"{ yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ;    break;}case 184:#line 1151 "./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"{		  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"{yyerror ("Missing term"); RECOVER;;    break;}case 187:#line 1166 "./parse.y"{ 		  /* Store the location of the `}' when doing xrefs */		  if (current_function_decl && flag_emit_xref)		    DECL_END_SOURCE_LINE (current_function_decl) = 		      EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1);		  yyval.node = empty_stmt_node; 		;    break;}case 188:#line 1174 "./parse.y"{ yyval.node = yyvsp[0].node; ;    break;}case 189:#line 1179 "./parse.y"{ enter_block (); ;    break;}case 190:#line 1184 "./parse.y"{ 		  maybe_absorb_scoping_blocks ();		  /* Store the location of the `}' when doing xrefs */		  if (current_function_decl && flag_emit_xref)		    DECL_END_SOURCE_LINE (current_function_decl) = 		      EXPR_WFL_ADD_COL (yyvsp[0].operator.location, 1);		  		  yyval.node = exit_block ();		;    break;}case 194:#line 1202 "./parse.y"{ java_method_add_stmt (current_function_decl, yyvsp[0].node); ;    break;}case 195:#line 1204 "./parse.y"{ parse_jdk1_1_error ("inner class declaration"); ;    break;}case 197:#line 1213 "./parse.y"{ declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 198:#line 1215 "./parse.y"{ declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 204:#line 1225 "./parse.y"{ yyval.node = exit_block (); ;    break;}case 221:#line 1252 "./parse.y"{ yyval.node = empty_stmt_node; ;    break;}case 222:#line 1257 "./parse.y"{		  yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), 					    EXPR_WFL_NODE (yyvsp[-1].node));		  pushlevel (2);		  push_labeled_block (yyval.node);		  PUSH_LABELED_BLOCK (yyval.node);		;    break;}case 223:#line 1268 "./parse.y"{ yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ;    break;}case 224:#line 1270 "./parse.y"{yyerror ("':' expected"); RECOVER;;    break;}case 225:#line 1275 "./parse.y"{ yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ;    break;}case 226:#line 1282 "./parse.y"{		  /* We have a statement. Generate a WFL around it so		     we can debug it */		  yyval.node = build_expr_wfl (yyvsp[-1].node, input_filename, lineno, 0);		  /* We know we have a statement, so set the debug                     info to be eventually generate here. */		  yyval.node = JAVA_MAYBE_GENERATE_DEBUG_INFO (yyval.node);		;    break;}case 227:#line 1291 "./parse.y"{		  if (ctxp->prevent_ese != lineno)		    yyerror ("Invalid expression statement");		  DRECOVER (expr_stmt);		;    break;}case 228:#line 1297 "./parse.y"{		  if (ctxp->prevent_ese != lineno)		    yyerror ("Invalid expression statement");		  DRECOVER (expr_stmt);		;    break;}case 229:#line 1303 "./parse.y"{		  if (ctxp->prevent_ese != lineno)		    yyerror ("Invalid expression statement");		  DRECOVER (expr_stmt);		;    break;}case 230:#line 1309 "./parse.y"{yyerror ("')' expected"); RECOVER;;    break;}case 231:#line 1311 "./parse.y"{		  yyerror ("Constructor invocation must be first "			   "thing in a constructor"); 		  RECOVER;		;    break;}case 232:#line 1317 "./parse.y"{yyerror ("')' expected"); RECOVER;;    break;}case 233:#line 1319 "./parse.y"{		  yyerror ("Constructor invocation must be first "			   "thing in a constructor"); 		  RECOVER;		;    break;}case 234:#line 1325 "./parse.y"{yyerror ("'(' expected"); RECOVER;;    break;}case 235:#line 1327 "./parse.y"{yyerror ("')' expected"); RECOVER;;    break;}case 236:#line 1329 "./parse.y"{yyerror ("')' expected"); RECOVER;;    break;}case 237:#line 1331 "./parse.y"{yyerror ("';' expected"); RECOVER;;    break;}case 238:#line 1333 "./parse.y"{yyerror ("';' expected"); RECOVER;;    break;}case 246:#line 1348 "./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"{yyerror ("'(' expected"); RECOVER;;    break;}case 248:#line 1355 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 249:#line 1357 "./parse.y"{yyerror ("')' expected"); RECOVER;;    break;}case 250:#line 1362 "./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"{ 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"{		  enter_block ();		;    break;}case 253:#line 1376 "./parse.y"{ 		  /* Make into "proper list" of COMPOUND_EXPRs.		     I.e. make the last statment also have its own		     COMPOUND_EXPR. */		  maybe_absorb_scoping_blocks ();		  TREE_OPERAND (yyvsp[-2].node, 1) = exit_block ();		  yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-2].node), yyvsp[-2].node);		;    break;}case 254:#line 1388 "./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"{yyerror ("'(' expected"); RECOVER;;    break;}case 256:#line 1395 "./parse.y"{yyerror ("Missing term or ')'"); DRECOVER(switch_statement);;    break;}case 257:#line 1397 "./parse.y"{yyerror ("'{' expected"); RECOVER;;    break;}case 258:#line 1405 "./parse.y"{ yyval.node = NULL_TREE; ;    break;}case 259:#line 1407 "./parse.y"{ yyval.node = NULL_TREE; ;    break;}case 260:#line 1409 "./parse.y"{ yyval.node = NULL_TREE; ;    break;}case 261:#line 1411 "./parse.y"{ yyval.node = NULL_TREE; ;    break;}case 267:#line 1430 "./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"{ 		  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"{yyerror ("Missing or invalid constant expression"); RECOVER;;    break;}case 270:#line 1444 "./parse.y"{yyerror ("':' expected"); RECOVER;;    break;}case 271:#line 1446 "./parse.y"{yyerror ("':' expected"); RECOVER;;    break;}case 272:#line 1451 "./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"{ yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ;    break;}case 274:#line 1461 "./parse.y"{YYERROR_NOW; yyerror ("'(' expected"); RECOVER;;    break;}case 275:#line 1463 "./parse.y"{yyerror ("Missing term and ')' expected"); RECOVER;;    break;}case 276:#line 1465 "./parse.y"{yyerror ("')' expected"); RECOVER;;    break;}case 277:#line 1470 "./parse.y"{ yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ;    break;}case 278:#line 1475 "./parse.y"{ 		  tree body = build_loop_body (0, NULL_TREE, 1);		  yyval.node = build_new_loop (body);		;    break;}case 279:#line 1484 "./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"{ 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"{ 		  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 */		  LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY (yyval.node), 0) = 		    empty_stmt_node;		;    break;}case 282:#line 1498 "./parse.y"{yyerror ("Invalid control expression"); RECOVER;;    break;}case 283:#line 1500 "./parse.y"{yyerror ("Invalid update expression"); RECOVER;;    break;}case 284:#line 1502 "./parse.y"{yyerror ("Invalid update expression"); RECOVER;;    break;}case 285:#line 1507 "./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"{ 		  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 */		  LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY (yyval.node), 0) = 		    empty_stmt_node;		;    break;}case 287:#line 1519 "./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"{yyerror ("'(' expected"); DRECOVER(for_1);;    break;}case 289:#line 1527 "./parse.y"{yyerror ("Invalid init statement"); RECOVER;;    break;}case 290:#line 1532 "./parse.y"{ 		  /* We now declare the loop body. The loop is                     declared as a for loop. */		  tree body = build_loop_body (0, NULL_TREE, 0);		  yyval.node =  build_new_loop (body);		  IS_FOR_LOOP_P (yyval.node) = 1;		  /* The loop is added to the current block the for                     statement is defined within */		  java_method_add_stmt (current_function_decl, yyval.node);		;    break;}case 291:#line 1544 "./parse.y"{ yyval.node = empty_stmt_node; ;    break;}case 292:#line 1546 "./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"{ 		  /* Local variable are recorded within the previously		     defined block scope */		  yyval.node = NULL_TREE;		;    break;}case 294:#line 1558 "./parse.y"{yyerror ("';' expected"); DRECOVER(for_init_1);;    break;}case 295:#line 1562 "./parse.y"{yyval.node = empty_stmt_node;;    break;}case 296:#line 1564 "./parse.y"{ yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ;    break;}case 297:#line 1569 "./parse.y"{ yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ;    break;}case 298:#line 1571 "./parse.y"{ yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ;    break;}case 299:#line 1573 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 300:#line 1578 "./parse.y"{ yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ;    break;}case 301:#line 1580 "./parse.y"{ yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ;    break;}case 302:#line 1582 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 303:#line 1584 "./parse.y"{yyerror ("';' expected"); RECOVER;;    break;}case 304:#line 1589 "./parse.y"{ yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ;    break;}case 305:#line 1591 "./parse.y"{ yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ;    break;}case 306:#line 1593 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 307:#line 1595 "./parse.y"{yyerror ("';' expected"); RECOVER;;    break;}case 308:#line 1600 "./parse.y"{ yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ;    break;}case 309:#line 1602 "./parse.y"{ yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ;    break;}case 310:#line 1604 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 311:#line 1606 "./parse.y"{yyerror ("';' expected"); RECOVER;;    break;}case 312:#line 1611 "./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"{yyerror ("Missing term"); RECOVER;;    break;}case 314:#line 1618 "./parse.y"{yyerror ("';' expected"); RECOVER;;    break;}case 315:#line 1623 "./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"{yyerror ("'{' expected"); RECOVER;;    break;}case 317:#line 1631 "./parse.y"{yyerror ("'(' expected"); RECOVER;;    break;}case 318:#line 1633 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 319:#line 1635 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 320:#line 1640 "./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"{ yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ;    break;}case 322:#line 1650 "./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"{ 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"{yyerror ("'{' expected"); DRECOVER (try_statement);;    break;}case 326:#line 1663 "./parse.y"{ 		  TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node;		  yyval.node = yyvsp[0].node;		;    break;}case 327:#line 1671 "./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"{ 		  /* We add a block to define a scope for		     formal_parameter (CCBP). The formal parameter is		     declared initialized by the appropriate function		     call */		  tree ccpb = enter_block ();		  tree init = build_assignment (ASSIGN_TK, yyvsp[-2].operator.location, 						TREE_PURPOSE (yyvsp[-1].node), 						soft_exceptioninfo_call_node);		  declare_local_variables (0, TREE_VALUE (yyvsp[-1].node),					   build_tree_list (TREE_PURPOSE (yyvsp[-1].node),							    init));		  yyval.node = build1 (CATCH_EXPR, NULL_TREE, ccpb);		  EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location;		;    break;}case 329:#line 1695 "./parse.y"{yyerror ("'(' expected"); RECOVER;;    break;}case 330:#line 1697 "./parse.y"{yyerror ("Missing term or ')' expected"); DRECOVER (2);;    break;}case 331:#line 1699 "./parse.y"{yyerror ("')' expected"); DRECOVER (1);;    break;}case 332:#line 1704 "./parse.y"{ yyval.node = yyvsp[0].node; ;    break;}case 333:#line 1706 "./parse.y"{yyerror ("'{' expected"); RECOVER; ;    break;}case 337:#line 1718 "./parse.y"{ yyval.node = build_this (yyvsp[0].operator.location); ;    break;}case 338:#line 1720 "./parse.y"{yyval.node = yyvsp[-1].node;;    break;}case 343:#line 1729 "./parse.y"{ yyval.node = parse_jdk1_1_error ("named class literals"); ;    break;}case 344:#line 1731 "./parse.y"{ yyval.node = build_class_ref (yyvsp[-2].node); ;    break;}case 345:#line 1733 "./parse.y"{ yyval.node = build_class_ref (void_type_node); ;    break;}case 346:#line 1738 "./parse.y"{ yyval.node = parse_jdk1_1_error ("class literals"); ;    break;}case 347:#line 1740 "./parse.y"{yyerror ("')' expected"); RECOVER;;    break;}case 348:#line 1742 "./parse.y"{yyerror ("'class' or 'this' expected" ); RECOVER;;    break;}case 349:#line 1744 "./parse.y"{yyerror ("'class' expected" ); RECOVER;;    break;}case 350:#line 1746 "./parse.y"{yyerror ("'class' expected" ); RECOVER;;    break;}case 351:#line 1751 "./parse.y"{ yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ;    break;}case 352:#line 1753 "./parse.y"{ yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ;    break;}case 353:#line 1758 "./parse.y"{ yyval.node = parse_jdk1_1_error ("inner class instance creation"); ;    break;}case 354:#line 1760 "./parse.y"{ yyval.node = parse_jdk1_1_error ("inner class instance creation"); ;    break;}case 359:#line 1769 "./parse.y"{yyerror ("'(' expected"); DRECOVER(new_1);;    break;}case 360:#line 1771 "./parse.y"{yyerror ("'(' expected"); RECOVER;;    break;}case 361:#line 1773 "./parse.y"{yyerror ("')' or term expected"); RECOVER;;    break;}case 362:#line 1775 "./parse.y"{yyerror ("')' expected"); RECOVER;;    break;}case 363:#line 1777 "./parse.y"{YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;;    break;}case 364:#line 1779 "./parse.y"{yyerror ("'(' expected"); RECOVER;;    break;}case 367:#line 1789 "./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"{		  ctxp->formal_parameter_number += 1;		  yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node);		;    break;}case 369:#line 1799 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 370:#line 1804 "./parse.y"{ yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ;    break;}case 371:#line 1806 "./parse.y"{ yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ;    break;}case 372:#line 1808 "./parse.y"{ yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, CURRENT_OSB (ctxp));;    break;}case 373:#line 1810 "./parse.y"{ yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, CURRENT_OSB (ctxp));;    break;}case 374:#line 1814 "./parse.y"{ yyval.node = parse_jdk1_1_error ("anonymous array"); ;    break;}case 375:#line 1816 "./parse.y"{ yyval.node = parse_jdk1_1_error ("anonymous array"); ;    break;}case 376:#line 1818 "./parse.y"{yyerror ("'[' expected"); DRECOVER ("]");;    break;}case 377:#line 1820 "./parse.y"{yyerror ("']' expected"); RECOVER;;    break;}case 378:#line 1825 "./parse.y"{ yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ;    break;}case 379:#line 1827 "./parse.y"{ yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ;    break;}case 380:#line 1832 "./parse.y"{ 		  EXPR_WFL_LINECOL (yyvsp[-1].node) = yyvsp[-2].operator.location;		  yyval.node = yyvsp[-1].node;		;    break;}case 381:#line 1837 "./parse.y"{yyerror ("']' expected"); RECOVER;;    break;}case 382:#line 1839 "./parse.y"{		  yyerror ("Missing term");		  yyerror ("']' expected");		  RECOVER;		;    break;}case 383:#line 1848 "./parse.y"{ 		  int allocate = 0;		  /* If not initialized, allocate memory for the osb                     numbers stack */		  if (!ctxp->osb_limit)		    {		      allocate = ctxp->osb_limit = 32;		      ctxp->osb_depth = -1;		    }		  /* If capacity overflown, reallocate a bigger chuck */		  else if (ctxp->osb_depth+1 == ctxp->osb_limit)		    allocate = ctxp->osb_limit << 1;		  		  if (allocate)		    {		      allocate *= sizeof (int);		      if (ctxp->osb_number)			ctxp->osb_number = (int *)xrealloc (ctxp->osb_number,							    allocate);		      else			ctxp->osb_number = (int *)xmalloc (allocate);		    }		  ctxp->osb_depth++;		  CURRENT_OSB (ctxp) = 1;		;    break;}case 384:#line 1874 "./parse.y"{ CURRENT_OSB (ctxp)++; ;    break;}case 385:#line 1876 "./parse.y"{ yyerror ("']' expected"); RECOVER;;    break;}case 386:#line 1881 "./parse.y"{ yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ;    break;}case 387:#line 1885 "./parse.y"{		  tree super_wfl = 		    build_wfl_node (super_identifier_node);		  EXPR_WFL_LINECOL (super_wfl) = yyvsp[-2].operator.location;		  yyval.node = make_qualified_name (super_wfl, yyvsp[0].node, yyvsp[-1].operator.location);		;    break;}case 388:#line 1892 "./parse.y"{yyerror ("Field expected"); DRECOVER (super_field_acces);;    break;}case 389:#line 1897 "./parse.y"{ yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ;    break;}case 390:#line 1899 "./parse.y"{ yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ;    break;}case 391:#line 1901 "./parse.y"{ 		  if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR)		    yyval.node = build_this_super_qualified_invocation 		      (1, yyvsp[-2].node, NULL_TREE, 0, yyvsp[-3].operator.location);		  else		    {		      tree invok = build_method_invocation (yyvsp[-2].node, NULL_TREE);		      yyval.node = make_qualified_primary (yyvsp[-4].node, invok, yyvsp[-3].operator.location);		    }		;    break;}case 392:#line 1912 "./parse.y"{ 		  if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR)		    yyval.node = build_this_super_qualified_invocation 		      (1, yyvsp[-3].node, yyvsp[-1].node, 0, yyvsp[-4].operator.location);		  else		    {		      tree invok = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node);		      yyval.node = make_qualified_primary (yyvsp[-5].node, invok, yyvsp[-4].operator.location);		    }		;    break;}case 393:#line 1923 "./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"{		  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"{ yyerror ("'(' expected"); DRECOVER (method_invocation); ;    break;}case 396:#line 1939 "./parse.y"{ yyerror ("'(' expected"); DRECOVER (method_invocation); ;    break;}case 397:#line 1944 "./parse.y"{ yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ;    break;}case 398:#line 1946 "./parse.y"{ yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ;    break;}case 399:#line 1948 "./parse.y"{		  yyerror ("Missing term and ']' expected");		  DRECOVER(array_access);		;    break;}case 400:#line 1953 "./parse.y"{		  yyerror ("']' expected");		  DRECOVER(array_access);		;    break;}case 401:#line 1958 "./parse.y"{		  yyerror ("Missing term and ']' expected");		  DRECOVER(array_access);		;    break;}case 402:#line 1963 "./parse.y"{		  yyerror ("']' expected");		  DRECOVER(array_access);		;    break;}case 407:#line 1978 "./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"{ 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"{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;    break;}case 416:#line 2002 "./parse.y"{yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ;    break;}case 417:#line 2004 "./parse.y"{yyerror ("Missing term"); RECOVER;    break;}case 418:#line 2009 "./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"{yyerror ("Missing term"); RECOVER;    break;}case 421:#line 2017 "./parse.y"{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ;    break;}case 422:#line 2019 "./parse.y"{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ;    break;}case 424:#line 2022 "./parse.y"{yyerror ("Missing term"); RECOVER;    break;}case 425:#line 2024 "./parse.y"{yyerror ("Missing term"); RECOVER;    break;}case 426:#line 2029 "./parse.y"{ 		  tree type = yyvsp[-3].node;		  while (CURRENT_OSB (ctxp)--)		    type = build_java_array_type (type, -1);		  ctxp->osb_depth--;		  yyval.node = build_cast (yyvsp[-4].operator.location, type, yyvsp[0].node); 		;    break;}case 427:#line 2037 "./parse.y"{ yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ;    break;}case 428:#line 2039 "./parse.y"{ yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ;    break;}case 429:#line 2041 "./parse.y"{ 		  char *ptr;		  while (CURRENT_OSB (ctxp)--)		    obstack_1grow (&temporary_obstack, '[');		  ctxp->osb_depth--;		  obstack_grow0 (&temporary_obstack, 				 IDENTIFIER_POINTER (EXPR_WFL_NODE (yyvsp[-3].node)),				 IDENTIFIER_LENGTH (EXPR_WFL_NODE (yyvsp[-3].node)));		  ptr = obstack_finish (&temporary_obstack);		  EXPR_WFL_NODE (yyvsp[-3].node) = get_identifier (ptr);		  yyval.node = build_cast (yyvsp[-4].operator.location, yyvsp[-3].node, yyvsp[0].node);		;    break;}case 430:#line 2054 "./parse.y"{yyerror ("']' expected, invalid type expression");;    break;}case 431:#line 2056 "./parse.y"{	          if (ctxp->prevent_ese != lineno)		    yyerror ("Invalid type expression"); RECOVER;		  RECOVER;		;    break;}case 432:#line 2062 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 433:#line 2064 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 434:#line 2066 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 436:#line 2072 "./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"{		  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"{		  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"{yyerror ("Missing term"); RECOVER;;    break;}case 440:#line 2089 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 441:#line 2091 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 443:#line 2097 "./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"{		  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"{yyerror ("Missing term"); RECOVER;;    break;}case 446:#line 2109 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 448:#line 2115 "./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"{		  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"{		  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"{yyerror ("Missing term"); RECOVER;;    break;}case 452:#line 2132 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 453:#line 2134 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 455:#line 2140 "./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"{		  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"{		  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"{		  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"{ yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ;    break;}case 460:#line 2162 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 461:#line 2164 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 462:#line 2166 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 463:#line 2168 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 464:#line 2170 "./parse.y"{yyerror ("Invalid reference type"); RECOVER;;    break;}case 466:#line 2176 "./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"{		  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"{yyerror ("Missing term"); RECOVER;;    break;}case 469:#line 2188 "./parse.y"{yyerror ("Missing term"); RECOVER;;    break;}case 471:#line 2194 "./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"{yyerror ("Missing term"); RECOVER;;    break;}case 474:#line 2205 "./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"{yyerror ("Missing term"); RECOVER;;    break;}case 477:#line 2216 "./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"{yyerror ("Missing term"); RECOVER;;    break;}case 480:#line 2227 "./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"{yyerror ("Missing term"); RECOVER;;    break;}case 483:#line 2238 "./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"{yyerror ("Missing term"); RECOVER;;    break;}case 486:#line 2249 "./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"{		  YYERROR_NOW;		  yyerror ("Missing term");		  DRECOVER (1);		;    break;}case 488:#line 2260 "./parse.y"{yyerror ("Missing term"); DRECOVER (2);;    break;}case 489:#line 2262 "./parse.y"{yyerror ("Missing term"); DRECOVER (3);;    break;}case 492:#line 2272 "./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"{		  if (ctxp->prevent_ese != lineno)		    yyerror ("Missing term");		  DRECOVER (assign);		;    break;}}   /* the action file gets copied in in place of this dollarsign */#line 498 "/usr/lib/bison.simple"  yyvsp -= yylen;  yyssp -= yylen;#ifdef YYLSP_NEEDED  yylsp -= yylen;#endif#if YYDEBUG != 0  if (yydebug)    {      short *ssp1 = yyss - 1;      fprintf (stderr, "state stack now");      while (ssp1 != yyssp)	fprintf (stderr, " %d", *++ssp1);      fprintf (stderr, "\n");    }#endif  *++yyvsp = yyval;#ifdef YYLSP_NEEDED  yylsp++;  if (yylen == 0)    {      yylsp->first_line = yylloc.first_line;      yylsp->first_column = yylloc.first_column;      yylsp->last_line = (yylsp-1)->last_line;      yylsp->last_column = (yylsp-1)->last_column;      yylsp->text = 0;    }  else    {      yylsp->last_line = (yylsp+yylen-1)->last_line;      yylsp->last_column = (yylsp+yylen-1)->last_column;    }#endif  /* Now "shift" the result of the reduction.     Determine what state that goes to,     based on the state we popped back to     and the rule number reduced by.  */  yyn = yyr1[yyn];  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)    yystate = yytable[yystate];  else    yystate = yydefgoto[yyn - YYNTBASE];  goto yynewstate;yyerrlab:   /* here on detecting error */  if (! yyerrstatus)    /* If not already recovering from an error, report this error.  */    {      ++yynerrs;#ifdef YYERROR_VERBOSE      yyn = yypact[yystate];      if (yyn > YYFLAG && yyn < YYLAST)	{	  int size = 0;	  char *msg;	  int x, count;	  count = 0;	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */	  for (x = (yyn < 0 ? -yyn : 0);	       x < (sizeof(yytname) / sizeof(char *)); x++)	    if (yycheck[x + yyn] == x)	      size += strlen(yytname[x]) + 15, count++;	  msg = (char *) malloc(size + 15);	  if (msg != 0)	    {	      strcpy(msg, "parse error");	      if (count < 5)		{		  count = 0;		  for (x = (yyn < 0 ? -yyn : 0);		       x < (sizeof(yytname) / sizeof(char *)); x++)		    if (yycheck[x + yyn] == x)		      {			strcat(msg, count == 0 ? ", expecting `" : " or `");			strcat(msg, yytname[x]);			strcat(msg, "'");			count++;		      }		}	      yyerror(msg);	      free(msg);	    }	  else	    yyerror ("parse error; also virtual memory exceeded");	}      else#endif /* YYERROR_VERBOSE */	yyerror("parse error");    }  goto yyerrlab1;yyerrlab1:   /* here on error raised explicitly by an action */  if (yyerrstatus == 3)    {      /* if just tried and failed to reuse lookahead token after an error, discard it.  */      /* return failure if at end of input */      if (yychar == YYEOF)	YYABORT;#if YYDEBUG != 0      if (yydebug)	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);#endif      yychar = YYEMPTY;    }  /* Else will try to reuse lookahead token     after shifting the error token.  */  yyerrstatus = 3;		/* Each real token shifted decrements this */  goto yyerrhandle;yyerrdefault:  /* current state does not do anything special for the error token. */#if 0  /* This is wrong; only states that explicitly want error tokens     should shift them.  */  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/  if (yyn) goto yydefault;#endifyyerrpop:   /* pop the current state because it cannot handle the error token */  if (yyssp == yyss) YYABORT;  yyvsp--;  yystate = *--yyssp;#ifdef YYLSP_NEEDED  yylsp--;#endif#if YYDEBUG != 0  if (yydebug)    {      short *ssp1 = yyss - 1;      fprintf (stderr, "Error: state stack now");      while (ssp1 != yyssp)	fprintf (stderr, " %d", *++ssp1);      fprintf (stderr, "\n");    }#endifyyerrhandle:  yyn = yypact[yystate];  if (yyn == YYFLAG)    goto yyerrdefault;  yyn += YYTERROR;  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)    goto yyerrdefault;  yyn = yytable[yyn];  if (yyn < 0)    {      if (yyn == YYFLAG)	goto yyerrpop;      yyn = -yyn;      goto yyreduce;    }  else if (yyn == 0)    goto yyerrpop;  if (yyn == YYFINAL)    YYACCEPT;#if YYDEBUG != 0  if (yydebug)    fprintf(stderr, "Shifting error token, ");#endif  *++yyvsp = yylval;#ifdef YYLSP_NEEDED  *++yylsp = yylloc;#endif  yystate = yyn;  goto yynewstate;}#line 2300 "./parse.y"/* Flag for the error report routine to issue the error the first time   it's called (overriding the default behavior which is to drop the   first invocation and honor the second one, taking advantage of a   richer context.  */static int force_error = 0;/* Create a new parser context and make it the current one. */voidjava_push_parser_context (){  struct parser_ctxt *new =     (struct parser_ctxt *)xmalloc(sizeof (struct parser_ctxt));  bzero ((PTR) new, sizeof (struct parser_ctxt));  new->next = ctxp;  ctxp = new;  if (ctxp->next)    {      ctxp->incomplete_class = ctxp->next->incomplete_class;      ctxp->gclass_list = ctxp->next->gclass_list;    }}  /* If the first file of a file list was a class file, no context   exists for a source file to be parsed. This boolean remembers that   java_parser_context_save_global might have created a dummy one, so   that java_parser_context_restore_global can pop it.  */static int extra_ctxp_pushed_p = 0;voidjava_parser_context_save_global (){  if (!ctxp)    {      java_push_parser_context ();      extra_ctxp_pushed_p = 1;    }  ctxp->finput = finput;  ctxp->lineno = lineno;  ctxp->current_class = current_class;  ctxp->filename = input_filename;  ctxp->current_function_decl = current_function_decl;}voidjava_parser_context_restore_global (){  finput = ctxp->finput;  lineno = ctxp->lineno;  current_class = ctxp->current_class;  input_filename = ctxp->filename;  current_function_decl = ctxp->current_function_decl;  if (!ctxp->next && extra_ctxp_pushed_p)    {      java_pop_parser_context (0);      extra_ctxp_pushed_p = 0;    }}void java_pop_parser_context (generate)     int generate;{  tree current;  struct parser_ctxt *toFree, *next;  if (!ctxp)    return;  toFree = ctxp;  next = ctxp->next;  if (next)    {      next->incomplete_class = ctxp->incomplete_class;      next->gclass_list = ctxp->gclass_list;      lineno = ctxp->lineno;      finput = ctxp->finput;      current_class = ctxp->current_class;    }  /* Set the single import class file flag to 0 for the current list     of imported things */  for (current = ctxp->import_list; current; current = TREE_CHAIN (current))    IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P (TREE_PURPOSE (current)) = 0;  /* And restore those of the previous context */  if ((ctxp = next))		/* Assignment is really meant here */    for (current = ctxp->import_list; current; current = TREE_CHAIN (current))      IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P (TREE_PURPOSE (current)) = 1;  if (generate)    {      toFree->next = ctxp_for_generation;      ctxp_for_generation = toFree;    }  else    free (toFree);}/* Reporting JDK1.1 features not implemented */static treeparse_jdk1_1_error (msg)    char *msg;{  sorry (": `%s' JDK1.1(TM) feature", msg);  java_error_count++;  return empty_stmt_node;}static int do_warning = 0;voidyyerror (msg)     char *msg;{  static java_lc elc;  static int  prev_lineno;  static char *prev_msg;  int save_lineno;  char *remainder, *code_from_source;  extern struct obstack temporary_obstack;    if (!force_error && prev_lineno == lineno)    return;  /* Save current error location but report latter, when the context is     richer.  */  if (ctxp->java_error_flag == 0)    {      ctxp->java_error_flag = 1;      elc = ctxp->elc;      /* Do something to use the previous line if we're reaching the	 end of the file... */#ifdef VERBOSE_SKELETON      printf ("* Error detected (%s)\n", (msg ? msg : "(null)"));#endif      return;    }  /* Ignore duplicate message on the same line. BTW, this is dubious. FIXME */  if (!force_error && msg == prev_msg && prev_lineno == elc.line)    return;  ctxp->java_error_flag = 0;  if (do_warning)    java_warning_count++;  else    java_error_count++;    if (elc.col == 0 && msg[1] == ';')    {      elc.col  = ctxp->p_line->char_col-1;      elc.line = ctxp->p_line->lineno;    }  save_lineno = lineno;  prev_lineno = lineno = elc.line;  prev_msg = msg;  code_from_source = java_get_line_col (ctxp->filename, elc.line, elc.col);  obstack_grow0 (&temporary_obstack, 		 code_from_source, strlen (code_from_source));  remainder = obstack_finish (&temporary_obstack);  if (do_warning)    warning ("%s.\n%s", msg, remainder);  else    error ("%s.\n%s", msg, remainder);  /* This allow us to cheaply avoid an extra 'Invalid expression     statement' error report when errors have been already reported on     the same line. This occurs when we report an error but don't have     a synchronization point other than ';', which     expression_statement is the only one to take care of.  */  ctxp->prevent_ese = lineno = save_lineno;}static voidissue_warning_error_from_context (cl, msg, ap)     tree cl;     const char *msg;     va_list ap;{  char *saved, *saved_input_filename;  char buffer [4096];  vsprintf (buffer, msg, ap);  force_error = 1;  ctxp->elc.line = EXPR_WFL_LINENO (cl);  ctxp->elc.col  = (EXPR_WFL_COLNO (cl) == 0xfff ? -1 : 		    (EXPR_WFL_COLNO (cl) == 0xffe ? -2 : EXPR_WFL_COLNO (cl)));  /* We have a CL, that's a good reason for using it if it contains data */  saved = ctxp->filename;  if (TREE_CODE (cl) == EXPR_WITH_FILE_LOCATION && EXPR_WFL_FILENAME_NODE (cl))    ctxp->filename = EXPR_WFL_FILENAME (cl);  saved_input_filename = input_filename;  input_filename = ctxp->filename;  java_error (NULL);  java_error (buffer);  ctxp->filename = saved;  input_filename = saved_input_filename;  force_error = 0;}/* Issue an error message at a current source line CL */voidparse_error_context VPROTO ((tree cl, const char *msg, ...)){#ifndef ANSI_PROTOTYPES  tree cl;  const char *msg;#endif  va_list ap;  VA_START (ap, msg);#ifndef ANSI_PROTOTYPES  cl = va_arg (ap, tree);  msg = va_arg (ap, const char *);#endif  issue_warning_error_from_context (cl, msg, ap);  va_end (ap);}/* Issue a warning at a current source line CL */static voidparse_warning_context VPROTO ((tree cl, const char *msg, ...)){#ifndef ANSI_PROTOTYPES  tree cl;  const char *msg;#endif  va_list ap;  VA_START (ap, msg);#ifndef ANSI_PROTOTYPES  cl = va_arg (ap, tree);  msg = va_arg (ap, const char *);#endif  force_error = do_warning = 1;  issue_warning_error_from_context (cl, msg, ap);  do_warning = force_error = 0;  va_end (ap);}static treefind_expr_with_wfl (node)     tree node;{  while (node)    {      char code;      tree to_return;      switch (TREE_CODE (node))	{	case BLOCK:	  node = BLOCK_EXPR_BODY (node);	  continue;	case COMPOUND_EXPR:	  to_return = find_expr_with_wfl (TREE_OPERAND (node, 0));	  if (to_return)	    return to_return;	  node = TREE_OPERAND (node, 1);	  continue;	case LOOP_EXPR:	  node = TREE_OPERAND (node, 0);	  continue;	  	case LABELED_BLOCK_EXPR:	  node = TREE_OPERAND (node, 1);	  continue;	default:	  code = TREE_CODE_CLASS (TREE_CODE (node));	  if (((code == '1') || (code == '2') || (code == 'e'))	      && EXPR_WFL_LINECOL (node))	    return node;	  return NULL_TREE;	}    }  return NULL_TREE;}/* Issue a missing return statement error. Uses METHOD to figure the   last line of the method the error occurs in.  */static voidmissing_return_error (method)     tree method;{  EXPR_WFL_SET_LINECOL (wfl_operator, DECL_SOURCE_LINE_LAST (method), -2);  parse_error_context (wfl_operator, "Missing return statement");}/* Issue an unreachable statement error. From NODE, find the next   statement to report appropriately.  */static voidunreachable_stmt_error (node)     tree node;{  /* Browse node to find the next expression node that has a WFL. Use     the location to report the error */  if (TREE_CODE (node) == COMPOUND_EXPR)    node = find_expr_with_wfl (TREE_OPERAND (node, 1));  else    node = find_expr_with_wfl (node);  if (node)    {      EXPR_WFL_SET_LINECOL (wfl_operator, EXPR_WFL_LINENO (node), -2);      parse_error_context (wfl_operator, "Unreachable statement");    }  else    fatal ("Can't get valid statement - unreachable_stmt_error");}intjava_report_errors (){  if (java_error_count)    fprintf (stderr, "%d error%s", 	     java_error_count, (java_error_count == 1 ? "" : "s"));  if (java_warning_count)    fprintf (stderr, "%s%d warning%s", (java_error_count ? ", " : ""),	     java_warning_count, (java_warning_count == 1 ? "" : "s"));  if (java_error_count || java_warning_count)    putc ('\n', stderr);  return java_error_count;}static char *java_accstring_lookup (flags)     int flags;{  static char buffer [80];#define COPY_RETURN(S) {strcpy (buffer, S); return buffer;}  /* Access modifier looked-up first for easier report on forbidden     access. */  if (flags & ACC_PUBLIC) COPY_RETURN ("public");  if (flags & ACC_PRIVATE) COPY_RETURN ("private");  if (flags & ACC_PROTECTED) COPY_RETURN ("protected");  if (flags & ACC_STATIC) COPY_RETURN ("static");  if (flags & ACC_FINAL) COPY_RETURN ("final");  if (flags & ACC_SYNCHRONIZED) COPY_RETURN ("synchronized");  if (flags & ACC_VOLATILE) COPY_RETURN ("volatile");  if (flags & ACC_TRANSIENT) COPY_RETURN ("transient");  if (flags & ACC_NATIVE) COPY_RETURN ("native");  if (flags & ACC_INTERFACE) COPY_RETURN ("interface");  if (flags & ACC_ABSTRACT) COPY_RETURN ("abstract");  buffer [0] = '\0';  return buffer;#undef COPY_RETURN}