Logo Search packages:      
Sourcecode: ia32-libs version File versions

parse.c

/*  A Bison parser, made from parse.y
 by  GNU Bison version 1.25
  */

#define YYBISON 1  /* Identify Bison output.  */

#define     IDENTIFIER  258
#define     TYPENAME    259
#define     SELFNAME    260
#define     PFUNCNAME   261
#define     SCSPEC      262
#define     TYPESPEC    263
#define     CV_QUALIFIER      264
#define     CONSTANT    265
#define     STRING      266
#define     ELLIPSIS    267
#define     SIZEOF      268
#define     ENUM  269
#define     IF    270
#define     ELSE  271
#define     WHILE 272
#define     DO    273
#define     FOR   274
#define     SWITCH      275
#define     CASE  276
#define     DEFAULT     277
#define     BREAK 278
#define     CONTINUE    279
#define     RETURN      280
#define     GOTO  281
#define     ASM_KEYWORD 282
#define     TYPEOF      283
#define     ALIGNOF     284
#define     SIGOF 285
#define     ATTRIBUTE   286
#define     EXTENSION   287
#define     LABEL 288
#define     REALPART    289
#define     IMAGPART    290
#define     AGGR  291
#define     VISSPEC     292
#define     DELETE      293
#define     NEW   294
#define     THIS  295
#define     OPERATOR    296
#define     CXX_TRUE    297
#define     CXX_FALSE   298
#define     NAMESPACE   299
#define     TYPENAME_KEYWORD  300
#define     USING 301
#define     LEFT_RIGHT  302
#define     TEMPLATE    303
#define     TYPEID      304
#define     DYNAMIC_CAST      305
#define     STATIC_CAST 306
#define     REINTERPRET_CAST  307
#define     CONST_CAST  308
#define     SCOPE 309
#define     EMPTY 310
#define     PTYPENAME   311
#define     NSNAME      312
#define     THROW 313
#define     ASSIGN      314
#define     OROR  315
#define     ANDAND      316
#define     MIN_MAX     317
#define     EQCOMPARE   318
#define     ARITHCOMPARE      319
#define     LSHIFT      320
#define     RSHIFT      321
#define     POINTSAT_STAR     322
#define     DOT_STAR    323
#define     UNARY 324
#define     PLUSPLUS    325
#define     MINUSMINUS  326
#define     HYPERUNARY  327
#define     PAREN_STAR_PAREN  328
#define     POINTSAT    329
#define     TRY   330
#define     CATCH 331
#define     PRE_PARSED_FUNCTION_DECL      332
#define     EXTERN_LANG_STRING      333
#define     ALL   334
#define     PRE_PARSED_CLASS_DECL   335
#define     DEFARG      336
#define     DEFARG_MARKER     337
#define     TYPENAME_DEFN     338
#define     IDENTIFIER_DEFN   339
#define     PTYPENAME_DEFN    340
#define     END_OF_LINE 341
#define     END_OF_SAVED_INPUT      342

#line 29 "parse.y"

/* Cause the `yydebug' variable to be defined.  */
#define YYDEBUG 1

#include "config.h"

#include "system.h"

#include "tree.h"
#include "input.h"
#include "flags.h"
#include "lex.h"
#include "cp-tree.h"
#include "output.h"
#include "except.h"
#include "toplev.h"

/* Since parsers are distinct for each language, put the language string
   definition here.  (fnf) */
char *language_string = "GNU C++";

extern tree void_list_node;
extern struct obstack permanent_obstack;

extern int end_of_file;

/* Like YYERROR but do call yyerror.  */
#define YYERROR1 { yyerror ("syntax error"); YYERROR; }

#define OP0(NODE) (TREE_OPERAND (NODE, 0))
#define OP1(NODE) (TREE_OPERAND (NODE, 1))

/* Contains the statement keyword (if/while/do) to include in an
   error message if the user supplies an empty conditional expression.  */
static char *cond_stmt_keyword;

static tree empty_parms PROTO((void));

/* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
int have_extern_spec;
int used_extern_spec;

/* Cons up an empty parameter list.  */
#ifdef __GNUC__
__inline
#endif
static tree
empty_parms ()
{
  tree parms;

  if (strict_prototype
      || current_class_type != NULL)
    parms = void_list_node;
  else
    parms = NULL_TREE;
  return parms;
}


#line 92 "parse.y"
typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
#line 282 "parse.y"

/* List of types and structure classes of the current declaration.  */
static tree current_declspecs;

/* List of prefix attributes in effect.
   Prefix attributes are parsed by the reserved_declspecs and declmods
   rules.  They create a list that contains *both* declspecs and attrs.  */
/* ??? It is not clear yet that all cases where an attribute can now appear in
   a declspec list have been updated.  */
static tree prefix_attributes;

/* When defining an aggregate, this is the most recent one being defined.  */
static tree current_aggr;

/* Tell yyparse how to print a token's value, if yydebug is set.  */

#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
extern void yyprint                 PROTO((FILE *, int, YYSTYPE));
extern tree combine_strings         PROTO((tree));

static int
parse_decl(declarator, specs_attrs, attributes, initialized, decl)
  tree declarator;
  tree specs_attrs;
  tree attributes;
  int initialized;
  tree* decl;
{
  int  sm;

  split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
  if (current_declspecs
      && TREE_CODE (current_declspecs) != TREE_LIST)
    current_declspecs = get_decl_list (current_declspecs);
  if (have_extern_spec && !used_extern_spec)
    {
      current_declspecs = decl_tree_cons (NULL_TREE, 
                                get_identifier ("extern"), 
                                current_declspecs);
      used_extern_spec = 1;
    }
  sm = suspend_momentary ();
  *decl = start_decl (declarator, current_declspecs, initialized,
                  attributes, prefix_attributes);
  return sm;
}
#include <stdio.h>

#ifndef __cplusplus
#ifndef __STDC__
#define const
#endif
#endif



#define     YYFINAL           1579
#define     YYFLAG            -32768
#define     YYNTBASE    112

#define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 392)

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,   110,     2,     2,     2,    82,    70,     2,    93,
   108,    80,    78,    59,    79,    92,    81,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,    62,    60,    74,
    64,    75,    65,     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,
    94,     2,   111,    69,     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,    58,    68,   109,    88,     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,    61,    63,    66,    67,    71,    72,    73,    76,
    77,    83,    84,    85,    86,    87,    89,    90,    91,    95,
    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   106,   107
};

#if YYDEBUG != 0
static const short yyprhs[] = {     0,
     0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
    17,    19,    20,    23,    26,    28,    30,    36,    41,    47,
    52,    53,    60,    61,    67,    69,    72,    74,    77,    78,
    85,    88,    92,    96,   100,   104,   109,   110,   116,   119,
   123,   125,   127,   130,   133,   135,   138,   139,   145,   149,
   151,   155,   157,   158,   161,   164,   168,   170,   174,   176,
   180,   182,   186,   189,   192,   195,   199,   203,   206,   209,
   212,   215,   218,   220,   222,   224,   225,   227,   230,   231,
   233,   238,   242,   246,   247,   256,   262,   263,   273,   280,
   281,   290,   296,   297,   307,   314,   317,   320,   322,   325,
   327,   334,   339,   346,   351,   354,   356,   359,   362,   364,
   367,   369,   372,   375,   380,   383,   387,   388,   389,   391,
   395,   398,   402,   404,   409,   412,   417,   420,   425,   428,
   430,   432,   434,   436,   438,   440,   442,   444,   446,   448,
   450,   451,   458,   459,   466,   467,   473,   474,   480,   481,
   489,   490,   498,   499,   506,   507,   514,   515,   516,   521,
   526,   528,   533,   535,   537,   538,   540,   542,   546,   548,
   550,   552,   554,   556,   558,   560,   562,   564,   566,   568,
   572,   574,   578,   579,   581,   583,   584,   592,   594,   596,
   600,   605,   609,   610,   614,   616,   620,   624,   628,   632,
   634,   636,   638,   641,   644,   647,   650,   653,   656,   659,
   664,   667,   672,   675,   679,   683,   688,   694,   701,   708,
   716,   719,   724,   730,   733,   736,   738,   739,   744,   749,
   753,   755,   759,   762,   766,   771,   773,   776,   782,   784,
   788,   792,   796,   800,   804,   808,   812,   816,   820,   824,
   828,   832,   836,   840,   844,   848,   852,   856,   860,   866,
   870,   874,   876,   879,   883,   885,   887,   889,   891,   893,
   894,   900,   906,   912,   918,   924,   926,   928,   930,   932,
   935,   938,   942,   947,   952,   954,   956,   958,   962,   964,
   966,   968,   970,   974,   978,   982,   983,   988,   993,   996,
  1001,  1004,  1009,  1012,  1015,  1017,  1022,  1024,  1032,  1040,
  1048,  1056,  1061,  1066,  1069,  1072,  1075,  1077,  1082,  1085,
  1088,  1094,  1098,  1101,  1104,  1110,  1114,  1120,  1124,  1129,
  1136,  1139,  1141,  1144,  1146,  1149,  1151,  1153,  1155,  1158,
  1159,  1162,  1165,  1169,  1173,  1177,  1180,  1183,  1186,  1188,
  1190,  1192,  1195,  1198,  1201,  1204,  1206,  1208,  1210,  1212,
  1215,  1218,  1222,  1226,  1230,  1235,  1237,  1240,  1243,  1246,
  1248,  1250,  1252,  1255,  1258,  1261,  1263,  1265,  1268,  1271,
  1275,  1277,  1280,  1282,  1284,  1286,  1291,  1296,  1301,  1306,
  1308,  1310,  1312,  1314,  1318,  1320,  1324,  1326,  1330,  1331,
  1336,  1337,  1344,  1348,  1349,  1354,  1356,  1360,  1364,  1365,
  1370,  1374,  1375,  1377,  1379,  1382,  1389,  1391,  1395,  1396,
  1398,  1403,  1410,  1415,  1417,  1419,  1421,  1423,  1425,  1429,
  1430,  1433,  1435,  1438,  1442,  1447,  1449,  1451,  1455,  1460,
  1464,  1470,  1472,  1477,  1481,  1485,  1486,  1490,  1494,  1498,
  1499,  1502,  1505,  1506,  1514,  1519,  1520,  1527,  1531,  1534,
  1537,  1540,  1541,  1542,  1552,  1554,  1555,  1557,  1558,  1560,
  1562,  1565,  1568,  1571,  1574,  1577,  1580,  1583,  1586,  1589,
  1593,  1598,  1602,  1605,  1609,  1610,  1612,  1616,  1619,  1622,
  1624,  1626,  1627,  1630,  1634,  1636,  1641,  1643,  1647,  1649,
  1651,  1656,  1661,  1664,  1667,  1671,  1675,  1677,  1678,  1680,
  1683,  1688,  1692,  1694,  1697,  1700,  1703,  1706,  1709,  1712,
  1715,  1717,  1720,  1723,  1727,  1730,  1733,  1738,  1743,  1746,
  1748,  1754,  1759,  1761,  1762,  1764,  1768,  1769,  1771,  1775,
  1777,  1779,  1781,  1783,  1788,  1793,  1798,  1803,  1808,  1812,
  1817,  1822,  1827,  1832,  1836,  1838,  1842,  1844,  1848,  1851,
  1853,  1861,  1862,  1865,  1867,  1870,  1871,  1874,  1879,  1884,
  1887,  1892,  1896,  1900,  1903,  1906,  1910,  1912,  1914,  1917,
  1919,  1921,  1924,  1927,  1932,  1937,  1941,  1945,  1948,  1950,
  1954,  1958,  1961,  1964,  1968,  1970,  1974,  1978,  1981,  1984,
  1988,  1990,  1995,  1999,  2004,  2008,  2010,  2013,  2016,  2019,
  2022,  2025,  2027,  2030,  2035,  2040,  2043,  2045,  2047,  2049,
  2051,  2054,  2059,  2062,  2065,  2068,  2071,  2073,  2076,  2079,
  2082,  2085,  2089,  2091,  2094,  2098,  2103,  2106,  2109,  2112,
  2115,  2118,  2121,  2126,  2129,  2131,  2134,  2137,  2141,  2143,
  2147,  2150,  2154,  2157,  2160,  2164,  2166,  2170,  2175,  2179,
  2182,  2185,  2187,  2191,  2194,  2197,  2199,  2202,  2206,  2208,
  2212,  2214,  2221,  2226,  2231,  2235,  2241,  2245,  2249,  2253,
  2256,  2258,  2260,  2263,  2266,  2269,  2270,  2272,  2274,  2277,
  2281,  2283,  2286,  2287,  2291,  2292,  2293,  2299,  2301,  2302,
  2305,  2307,  2309,  2311,  2314,  2315,  2320,  2322,  2323,  2324,
  2330,  2331,  2332,  2340,  2341,  2342,  2343,  2344,  2357,  2358,
  2359,  2367,  2368,  2374,  2375,  2383,  2384,  2389,  2392,  2395,
  2398,  2402,  2409,  2418,  2429,  2442,  2447,  2451,  2454,  2457,
  2459,  2461,  2463,  2465,  2467,  2468,  2469,  2476,  2477,  2478,
  2484,  2486,  2489,  2490,  2491,  2497,  2499,  2501,  2505,  2509,
  2512,  2515,  2518,  2521,  2524,  2526,  2529,  2530,  2532,  2533,
  2535,  2537,  2538,  2540,  2542,  2546,  2551,  2553,  2557,  2558,
  2560,  2562,  2564,  2567,  2570,  2573,  2575,  2578,  2581,  2582,
  2586,  2588,  2590,  2592,  2595,  2598,  2601,  2606,  2609,  2612,
  2615,  2618,  2621,  2624,  2626,  2629,  2631,  2634,  2636,  2638,
  2639,  2640,  2642,  2643,  2648,  2651,  2653,  2655,  2659,  2660,
  2664,  2668,  2672,  2674,  2677,  2680,  2683,  2686,  2689,  2692,
  2695,  2698,  2701,  2704,  2707,  2710,  2713,  2716,  2719,  2722,
  2725,  2728,  2731,  2734,  2737,  2740,  2743,  2747,  2750,  2753,
  2756,  2759,  2763,  2766,  2769,  2774,  2779,  2783
};

static const short yyrhs[] = {    -1,
   113,     0,     0,   114,   120,     0,   113,   120,     0,   113,
     0,     0,     0,     0,    32,     0,    27,     0,     0,   121,
   122,     0,   146,   145,     0,   142,     0,   141,     0,   119,
    93,   214,   108,    60,     0,   133,    58,   115,   109,     0,
   133,   116,   146,   117,   145,     0,   133,   116,   142,   117,
     0,     0,    44,   161,    58,   123,   115,   109,     0,     0,
    44,    58,   124,   115,   109,     0,   125,     0,   127,    60,
     0,   129,     0,   118,   122,     0,     0,    44,   161,    64,
   126,   132,    60,     0,    46,   306,     0,    46,   320,   306,
     0,    46,   320,   205,     0,    46,   131,   161,     0,    46,
   320,   161,     0,    46,   320,   131,   161,     0,     0,    46,
    44,   130,   132,    60,     0,    57,    54,     0,   131,    57,
    54,     0,   205,     0,   306,     0,   320,   306,     0,   320,
   205,     0,    98,     0,   133,    98,     0,     0,    48,    74,
   135,   136,    75,     0,    48,    74,    75,     0,   140,     0,
   136,    59,   140,     0,   161,     0,     0,   263,   137,     0,
    45,   137,     0,   134,   263,   137,     0,   138,     0,   138,
    64,   220,     0,   383,     0,   383,    64,   200,     0,   139,
     0,   139,    64,   180,     0,   134,   122,     0,   134,     1,
     0,   231,    60,     0,   224,   230,    60,     0,   221,   229,
    60,     0,   224,    60,     0,   164,    60,     0,   221,    60,
     0,     1,    60,     0,     1,   109,     0,    60,     0,   215,
     0,   157,     0,     0,   156,     0,   156,    60,     0,     0,
   107,     0,   152,   144,   143,   330,     0,   152,   144,   354,
     0,   152,   144,     1,     0,     0,   311,     5,    93,   148,
   374,   108,   293,   386,     0,   311,     5,    47,   293,   386,
     0,     0,   320,   311,     5,    93,   149,   374,   108,   293,
   386,     0,   320,   311,     5,    47,   293,   386,     0,     0,
   311,   176,    93,   150,   374,   108,   293,   386,     0,   311,
   176,    47,   293,   386,     0,     0,   320,   311,   176,    93,
   151,   374,   108,   293,   386,     0,   320,   311,   176,    47,
   293,   386,     0,   221,   218,     0,   224,   303,     0,   303,
     0,   224,   147,     0,   147,     0,     5,    93,   374,   108,
   293,   386,     0,     5,    47,   293,   386,     0,   176,    93,
   374,   108,   293,   386,     0,   176,    47,   293,   386,     0,
   224,   153,     0,   153,     0,   221,   218,     0,   224,   303,
     0,   303,     0,   224,   147,     0,   147,     0,    25,     3,
     0,   155,   248,     0,   155,    93,   192,   108,     0,   155,
    47,     0,    62,   158,   159,     0,     0,     0,   160,     0,
   159,    59,   160,     0,   159,     1,     0,    93,   192,   108,
     0,    47,     0,   162,    93,   192,   108,     0,   162,    47,
     0,   299,    93,   192,   108,     0,   299,    47,     0,   313,
    93,   192,   108,     0,   313,    47,     0,     3,     0,     4,
     0,     5,     0,    56,     0,    57,     0,     3,     0,    56,
     0,    57,     0,   104,     0,   103,     0,   105,     0,     0,
    48,   173,   227,    60,   165,   174,     0,     0,    48,   173,
   221,   218,   166,   174,     0,     0,    48,   173,   303,   167,
   174,     0,     0,    48,   173,   147,   168,   174,     0,     0,
     7,    48,   173,   227,    60,   169,   174,     0,     0,     7,
    48,   173,   221,   218,   170,   174,     0,     0,     7,    48,
   173,   303,   171,   174,     0,     0,     7,    48,   173,   147,
   172,   174,     0,     0,     0,    56,    74,   178,   177,     0,
     4,    74,   178,   177,     0,   176,     0,     5,    74,   178,
   177,     0,    75,     0,    77,     0,     0,   179,     0,   180,
     0,   179,    59,   180,     0,   220,     0,    56,     0,   200,
     0,    79,     0,    78,     0,    86,     0,    87,     0,   110,
     0,   191,     0,   200,     0,    47,     0,    93,   182,   108,
     0,    47,     0,    93,   186,   108,     0,     0,   186,     0,
     1,     0,     0,   364,   218,   232,   241,    64,   187,   249,
     0,   182,     0,   109,     0,   327,   325,   109,     0,   327,
   325,     1,   109,     0,   327,     1,   109,     0,     0,    58,
   190,   188,     0,   339,     0,   200,    59,   200,     0,   200,
    59,     1,     0,   191,    59,   200,     0,   191,    59,     1,
     0,   200,     0,   191,     0,   209,     0,   118,   199,     0,
    80,   199,     0,    70,   199,     0,    88,   199,     0,   181,
   199,     0,    67,   161,     0,    13,   193,     0,    13,    93,
   220,   108,     0,    29,   193,     0,    29,    93,   220,   108,
     0,   211,   292,     0,   211,   292,   197,     0,   211,   196,
   292,     0,   211,   196,   292,   197,     0,   211,    93,   195,
   220,   194,     0,   211,    93,   195,   220,   194,   197,     0,
   211,   196,    93,   195,   220,   194,     0,   211,   196,    93,
   195,   220,   194,   197,     0,   212,   199,     0,   212,    94,
   111,   199,     0,   212,    94,   182,   111,   199,     0,    34,
   199,     0,    35,   199,     0,   108,     0,     0,    93,   195,
   192,   108,     0,    58,   195,   192,   109,     0,    93,   192,
   108,     0,    47,     0,    93,   227,   108,     0,    64,   249,
     0,    93,   220,   108,     0,   198,    93,   220,   108,     0,
   193,     0,   198,   193,     0,   198,    58,   250,   261,   109,
     0,   199,     0,   200,    83,   200,     0,   200,    84,   200,
     0,   200,    78,   200,     0,   200,    79,   200,     0,   200,
    80,   200,     0,   200,    81,   200,     0,   200,    82,   200,
     0,   200,    76,   200,     0,   200,    77,   200,     0,   200,
    73,   200,     0,   200,    74,   200,     0,   200,    75,   200,
     0,   200,    72,   200,     0,   200,    71,   200,     0,   200,
    70,   200,     0,   200,    68,   200,     0,   200,    69,   200,
     0,   200,    67,   200,     0,   200,    66,   200,     0,   200,
    65,   369,    62,   200,     0,   200,    64,   200,     0,   200,
    63,   200,     0,    61,     0,    61,   200,     0,    88,   384,
   161,     0,   203,     0,   391,     0,     3,     0,    56,     0,
    57,     0,     0,     6,    74,   202,   178,   177,     0,   391,
    74,   202,   178,   177,     0,    48,   161,    74,   178,   177,
     0,    48,     6,    74,   178,   177,     0,    48,   391,    74,
   178,   177,     0,   201,     0,     4,     0,     5,     0,   201,
     0,    80,   206,     0,    70,   206,     0,    93,   206,   108,
     0,     3,    74,   178,   177,     0,    57,    74,   179,   177,
     0,   305,     0,   201,     0,   207,     0,    93,   206,   108,
     0,   201,     0,    10,     0,   213,     0,   214,     0,    93,
   182,   108,     0,    93,   206,   108,     0,    93,     1,   108,
     0,     0,    93,   210,   331,   108,     0,   201,    93,   192,
   108,     0,   201,    47,     0,   209,    93,   192,   108,     0,
   209,    47,     0,   209,    94,   182,   111,     0,   209,    86,
     0,   209,    87,     0,    40,     0,     9,    93,   192,   108,
     0,   309,     0,    50,    74,   220,    75,    93,   182,   108,
     0,    51,    74,   220,    75,    93,   182,   108,     0,    52,
    74,   220,    75,    93,   182,   108,     0,    53,    74,   220,
    75,    93,   182,   108,     0,    49,    93,   182,   108,     0,
    49,    93,   220,   108,     0,   320,     3,     0,   320,   203,
     0,   320,   391,     0,   308,     0,   308,    93,   192,   108,
     0,   308,    47,     0,   216,   204,     0,   216,   204,    93,
   192,   108,     0,   216,   204,    47,     0,   216,   205,     0,
   216,   308,     0,   216,   205,    93,   192,   108,     0,   216,
   205,    47,     0,   216,   308,    93,   192,   108,     0,   216,
   308,    47,     0,   216,    88,     8,    47,     0,   216,     8,
    54,    88,     8,    47,     0,   216,     1,     0,    39,     0,
   320,    39,     0,    38,     0,   320,   212,     0,    42,     0,
    43,     0,    11,     0,   214,    11,     0,     0,   209,    92,
     0,   209,    91,     0,   227,   229,    60,     0,   221,   229,
    60,     0,   224,   230,    60,     0,   221,    60,     0,   224,
    60,     0,   118,   217,     0,   298,     0,   303,     0,    47,
     0,   219,    47,     0,   225,   323,     0,   294,   323,     0,
   227,   323,     0,   225,     0,   294,     0,   225,     0,   222,
     0,   224,   227,     0,   227,   223,     0,   227,   226,   223,
     0,   224,   227,   223,     0,   224,   227,   226,     0,   224,
   227,   226,   223,     0,     7,     0,   223,   228,     0,   223,
     7,     0,   223,   242,     0,   242,     0,   294,     0,     7,
     0,   224,     9,     0,   224,     7,     0,   224,   242,     0,
   242,     0,   227,     0,   294,   227,     0,   227,   226,     0,
   294,   227,   226,     0,   228,     0,   226,   228,     0,   256,
     0,     8,     0,   300,     0,    28,    93,   182,   108,     0,
    28,    93,   220,   108,     0,    30,    93,   182,   108,     0,
    30,    93,   220,   108,     0,     8,     0,     9,     0,   256,
     0,   237,     0,   229,    59,   233,     0,   238,     0,   230,
    59,   233,     0,   239,     0,   231,    59,   233,     0,     0,
   119,    93,   214,   108,     0,     0,   218,   232,   241,    64,
   234,   249,     0,   218,   232,   241,     0,     0,   241,    64,
   236,   249,     0,   241,     0,   218,   232,   235,     0,   303,
   232,   235,     0,     0,   303,   232,   240,   235,     0,   147,
   232,   241,     0,     0,   242,     0,   243,     0,   242,   243,
     0,    31,    93,    93,   244,   108,   108,     0,   245,     0,
   244,    59,   245,     0,     0,   246,     0,   246,    93,     3,
   108,     0,   246,    93,     3,    59,   192,   108,     0,   246,
    93,   192,   108,     0,   161,     0,     7,     0,     8,     0,
     9,     0,   161,     0,   247,    59,   161,     0,     0,    64,
   249,     0,   200,     0,    58,   109,     0,    58,   250,   109,
     0,    58,   250,    59,   109,     0,     1,     0,   249,     0,
   250,    59,   249,     0,    94,   200,   111,   249,     0,   161,
    62,   249,     0,   250,    59,   161,    62,   249,     0,    97,
     0,   251,   144,   143,   330,     0,   251,   144,   354,     0,
   251,   144,     1,     0,     0,   253,   252,   145,     0,   102,
   200,   107,     0,   102,     1,   107,     0,     0,   255,   254,
     0,   255,     1,     0,     0,    14,   161,    58,   257,   290,
   262,   109,     0,    14,   161,    58,   109,     0,     0,    14,
    58,   258,   290,   262,   109,     0,    14,    58,   109,     0,
    14,   161,     0,    14,   318,     0,    45,   313,     0,     0,
     0,   270,   276,   278,   109,   241,   259,   255,   260,   253,
     0,   270,     0,     0,    59,     0,     0,    59,     0,    36,
     0,   263,     7,     0,   263,     8,     0,   263,     9,     0,
   263,    36,     0,   263,   242,     0,   263,   161,     0,   263,
   163,     0,   264,    58,     0,   264,    62,     0,   263,   311,
   161,     0,   263,   320,   311,   161,     0,   263,   320,   161,
     0,   263,   175,     0,   263,   311,   175,     0,     0,   264,
     0,   265,   267,   271,     0,   266,   271,     0,   263,    58,
     0,   269,     0,   268,     0,     0,    62,   384,     0,    62,
   384,   272,     0,   273,     0,   272,    59,   384,   273,     0,
   274,     0,   275,   384,   274,     0,   313,     0,   299,     0,
    30,    93,   182,   108,     0,    30,    93,   220,   108,     0,
    37,   384,     0,     7,   384,     0,   275,    37,   384,     0,
   275,     7,   384,     0,    58,     0,     0,   277,     0,   277,
   279,     0,   278,    37,    62,   279,     0,   278,    37,    62,
     0,   280,     0,   279,   280,     0,   281,    60,     0,   281,
   109,     0,   154,    62,     0,   154,    95,     0,   154,    25,
     0,   154,    58,     0,    60,     0,   118,   280,     0,   134,
   280,     0,   134,   221,    60,     0,   221,   282,     0,   224,
   283,     0,   303,   232,   241,   248,     0,   147,   232,   241,
   248,     0,    62,   200,     0,     1,     0,   224,   153,   232,
   241,   248,     0,   153,   232,   241,   248,     0,   127,     0,
     0,   284,     0,   282,    59,   285,     0,     0,   287,     0,
   283,    59,   289,     0,   286,     0,   287,     0,   288,     0,
   289,     0,   298,   232,   241,   248,     0,     4,    62,   200,
   241,     0,   303,   232,   241,   248,     0,   147,   232,   241,
   248,     0,     3,    62,   200,   241,     0,    62,   200,   241,
     0,   298,   232,   241,   248,     0,     4,    62,   200,   241,
     0,   303,   232,   241,   248,     0,     3,    62,   200,   241,
     0,    62,   200,   241,     0,   291,     0,   290,    59,   291,
     0,   161,     0,   161,    64,   200,     0,   364,   321,     0,
   364,     0,    93,   195,   220,   194,    94,   182,   111,     0,
     0,   293,     9,     0,     9,     0,   294,     9,     0,     0,
   295,   182,     0,   295,    93,   192,   108,     0,   295,    93,
   374,   108,     0,   295,    47,     0,   295,    93,     1,   108,
     0,    80,   294,   298,     0,    70,   294,   298,     0,    80,
   298,     0,    70,   298,     0,   319,   293,   298,     0,   302,
     0,   310,     0,   320,   310,     0,   299,     0,   301,     0,
   320,   301,     0,   311,   310,     0,   302,   297,   293,   386,
     0,   302,    94,   296,   111,     0,   302,    94,   111,     0,
    93,   298,   108,     0,   311,   310,     0,   310,     0,    80,
   294,   303,     0,    70,   294,   303,     0,    80,   303,     0,
    70,   303,     0,   319,   293,   303,     0,   208,     0,    80,
   294,   303,     0,    70,   294,   303,     0,    80,   304,     0,
    70,   304,     0,   319,   293,   303,     0,   305,     0,   208,
   297,   293,   386,     0,    93,   304,   108,     0,   208,    94,
   296,   111,     0,   208,    94,   111,     0,   307,     0,   311,
   207,     0,   311,   205,     0,   311,   204,     0,   311,   201,
     0,   311,   204,     0,   307,     0,   320,   307,     0,   227,
    93,   192,   108,     0,   227,    93,   206,   108,     0,   227,
   219,     0,     4,     0,     5,     0,   175,     0,   312,     0,
   311,   312,     0,   311,    48,   317,    54,     0,     4,    54,
     0,     5,    54,     0,    57,    54,     0,   175,    54,     0,
   314,     0,   320,   314,     0,   315,   161,     0,   315,   175,
     0,   315,   317,     0,   315,    48,   317,     0,   316,     0,
   315,   316,     0,   315,   317,    54,     0,   315,    48,   317,
    54,     0,     4,    54,     0,     5,    54,     0,   175,    54,
     0,    56,    54,     0,     3,    54,     0,    57,    54,     0,
   161,    74,   178,   177,     0,   320,   310,     0,   301,     0,
   320,   301,     0,   311,    80,     0,   320,   311,    80,     0,
    54,     0,    80,   293,   321,     0,    80,   293,     0,    70,
   293,   321,     0,    70,   293,     0,   319,   293,     0,   319,
   293,   321,     0,   322,     0,    94,   182,   111,     0,   322,
    94,   296,   111,     0,    80,   294,   323,     0,    80,   323,
     0,    80,   294,     0,    80,     0,    70,   294,   323,     0,
    70,   323,     0,    70,   294,     0,    70,     0,   319,   293,
     0,   319,   293,   323,     0,   324,     0,    93,   323,   108,
     0,    90,     0,   324,    93,   374,   108,   293,   386,     0,
   324,    47,   293,   386,     0,   324,    94,   296,   111,     0,
   324,    94,   111,     0,    93,   375,   108,   293,   386,     0,
   198,   293,   386,     0,   219,   293,   386,     0,    94,   296,
   111,     0,    94,   111,     0,   338,     0,   326,     0,   325,
   338,     0,   325,   326,     0,     1,    60,     0,     0,   328,
     0,   329,     0,   328,   329,     0,    33,   247,    60,     0,
   331,     0,     1,   331,     0,     0,    58,   332,   188,     0,
     0,     0,    15,   334,   184,   335,   336,     0,   331,     0,
     0,   337,   339,     0,   331,     0,   339,     0,   217,     0,
   182,    60,     0,     0,   333,    16,   340,   336,     0,   333,
     0,     0,     0,    17,   341,   184,   342,   189,     0,     0,
     0,    18,   343,   336,    17,   344,   183,    60,     0,     0,
     0,     0,     0,    19,   345,    93,   367,   346,   185,    60,
   347,   369,   108,   348,   189,     0,     0,     0,    20,   349,
    93,   186,   108,   350,   336,     0,     0,    21,   200,    62,
   351,   338,     0,     0,    21,   200,    12,   200,    62,   352,
   338,     0,     0,    22,    62,   353,   338,     0,    23,    60,
     0,    24,    60,     0,    25,    60,     0,    25,   182,    60,
     0,   119,   368,    93,   214,   108,    60,     0,   119,   368,
    93,   214,    62,   370,   108,    60,     0,   119,   368,    93,
   214,    62,   370,    62,   370,   108,    60,     0,   119,   368,
    93,   214,    62,   370,    62,   370,    62,   373,   108,    60,
     0,    26,    80,   182,    60,     0,    26,   161,    60,     0,
   366,   338,     0,   366,   109,     0,    60,     0,   357,     0,
   129,     0,   128,     0,   125,     0,     0,     0,    95,   355,
   143,   331,   356,   360,     0,     0,     0,    95,   358,   331,
   359,   360,     0,   361,     0,   360,   361,     0,     0,     0,
    96,   362,   365,   363,   331,     0,   225,     0,   294,     0,
    93,    12,   108,     0,    93,   383,   108,     0,     3,    62,
     0,    56,    62,     0,     4,    62,     0,     5,    62,     0,
   369,    60,     0,   217,     0,    58,   188,     0,     0,     9,
     0,     0,   182,     0,     1,     0,     0,   371,     0,   372,
     0,   371,    59,   372,     0,    11,    93,   182,   108,     0,
    11,     0,   373,    59,    11,     0,     0,   375,     0,   220,
     0,   379,     0,   380,    12,     0,   379,    12,     0,   220,
    12,     0,    12,     0,   379,    62,     0,   220,    62,     0,
     0,    64,   377,   378,     0,   101,     0,   249,     0,   381,
     0,   383,   376,     0,   380,   382,     0,   380,   385,     0,
   380,   385,    64,   249,     0,   379,    59,     0,   220,    59,
     0,   222,   218,     0,   225,   218,     0,   227,   218,     0,
   222,   323,     0,   222,     0,   224,   303,     0,   383,     0,
   383,   376,     0,   381,     0,   220,     0,     0,     0,   303,
     0,     0,    61,    93,   388,   108,     0,    61,    47,     0,
   220,     0,   387,     0,   388,    59,   387,     0,     0,    80,
   293,   389,     0,    70,   293,   389,     0,   319,   293,   389,
     0,    41,     0,   390,    80,     0,   390,    81,     0,   390,
    82,     0,   390,    78,     0,   390,    79,     0,   390,    70,
     0,   390,    68,     0,   390,    69,     0,   390,    88,     0,
   390,    59,     0,   390,    73,     0,   390,    74,     0,   390,
    75,     0,   390,    72,     0,   390,    63,     0,   390,    64,
     0,   390,    76,     0,   390,    77,     0,   390,    86,     0,
   390,    87,     0,   390,    67,     0,   390,    66,     0,   390,
   110,     0,   390,    65,    62,     0,   390,    71,     0,   390,
    91,     0,   390,    83,     0,   390,    47,     0,   390,    94,
   111,     0,   390,    39,     0,   390,    38,     0,   390,    39,
    94,   111,     0,   390,    38,    94,   111,     0,   390,   364,
   389,     0,   390,     1,     0
};

#endif

#if YYDEBUG != 0
static const short yyrline[] = { 0,
   331,   333,   341,   344,   345,   349,   351,   354,   359,   363,
   369,   373,   376,   380,   383,   385,   387,   390,   392,   395,
   398,   400,   402,   404,   406,   407,   409,   410,   414,   417,
   426,   429,   431,   435,   438,   440,   444,   447,   459,   466,
   474,   476,   477,   479,   483,   486,   492,   495,   497,   502,
   505,   509,   512,   515,   518,   522,   527,   537,   539,   541,
   543,   545,   558,   567,   577,   579,   581,   585,   587,   588,
   595,   596,   597,   600,   603,   607,   609,   610,   613,   615,
   618,   621,   623,   627,   630,   632,   636,   638,   640,   644,
   646,   648,   652,   654,   656,   662,   666,   669,   672,   675,
   680,   683,   685,   687,   693,   703,   705,   708,   711,   713,
   716,   720,   729,   732,   734,   738,   751,   771,   774,   776,
   777,   780,   787,   793,   795,   797,   799,   801,   804,   809,
   811,   812,   813,   814,   817,   819,   820,   823,   825,   826,
   829,   834,   834,   838,   838,   841,   841,   844,   844,   848,
   848,   853,   853,   856,   856,   859,   861,   864,   871,   878,
   884,   887,   896,   898,   906,   909,   912,   915,   919,   922,
   924,   927,   930,   932,   934,   936,   940,   943,   946,   951,
   955,   960,   964,   967,   968,   972,   991,   998,  1001,  1003,
  1004,  1005,  1008,  1012,  1013,  1017,  1021,  1024,  1026,  1030,
  1033,  1036,  1040,  1043,  1045,  1047,  1049,  1052,  1056,  1058,
  1060,  1062,  1068,  1071,  1074,  1077,  1089,  1094,  1098,  1102,
  1107,  1109,  1113,  1117,  1119,  1128,  1132,  1135,  1138,  1143,
  1146,  1148,  1156,  1169,  1174,  1180,  1182,  1184,  1197,  1200,
  1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,  1218,  1220,
  1222,  1224,  1226,  1228,  1230,  1232,  1234,  1236,  1238,  1240,
  1244,  1246,  1248,  1265,  1268,  1269,  1270,  1271,  1272,  1275,
  1278,  1281,  1285,  1288,  1290,  1295,  1297,  1298,  1301,  1303,
  1305,  1307,  1311,  1314,  1318,  1322,  1323,  1324,  1328,  1336,
  1337,  1338,  1346,  1348,  1351,  1353,  1363,  1368,  1370,  1372,
  1374,  1376,  1378,  1380,  1383,  1385,  1429,  1430,  1434,  1438,
  1442,  1446,  1448,  1452,  1454,  1456,  1464,  1466,  1468,  1470,
  1474,  1476,  1478,  1480,  1485,  1487,  1489,  1491,  1494,  1496,
  1498,  1542,  1545,  1549,  1552,  1556,  1559,  1564,  1566,  1570,
  1583,  1586,  1593,  1600,  1605,  1607,  1612,  1614,  1621,  1623,
  1627,  1631,  1637,  1641,  1644,  1647,  1650,  1660,  1662,  1665,
  1669,  1672,  1675,  1678,  1681,  1687,  1693,  1695,  1700,  1702,
  1711,  1714,  1716,  1719,  1725,  1727,  1737,  1741,  1744,  1747,
  1752,  1755,  1763,  1765,  1767,  1769,  1772,  1775,  1790,  1809,
  1812,  1814,  1817,  1819,  1822,  1824,  1827,  1829,  1832,  1835,
  1839,  1845,  1846,  1858,  1865,  1868,  1874,  1878,  1883,  1889,
  1890,  1898,  1901,  1905,  1908,  1912,  1917,  1920,  1924,  1927,
  1929,  1931,  1933,  1940,  1942,  1943,  1944,  1948,  1951,  1955,
  1958,  1964,  1966,  1969,  1972,  1975,  1981,  1984,  1987,  1989,
  1991,  1995,  2001,  2009,  2011,  2015,  2017,  2022,  2025,  2028,
  2030,  2032,  2036,  2040,  2045,  2049,  2052,  2057,  2061,  2064,
  2067,  2071,  2083,  2085,  2088,  2108,  2110,  2113,  2115,  2120,
  2122,  2124,  2126,  2128,  2130,  2134,  2139,  2142,  2144,  2148,
  2154,  2159,  2164,  2166,  2170,  2175,  2178,  2185,  2213,  2219,
  2221,  2224,  2227,  2229,  2233,  2235,  2239,  2272,  2308,  2311,
  2312,  2333,  2356,  2358,  2362,  2373,  2387,  2392,  2399,  2402,
  2410,  2421,  2430,  2434,  2449,  2452,  2457,  2459,  2461,  2463,
  2465,  2467,  2470,  2472,  2476,  2482,  2484,  2487,  2490,  2492,
  2503,  2508,  2511,  2516,  2519,  2520,  2531,  2534,  2535,  2546,
  2548,  2551,  2553,  2556,  2563,  2571,  2578,  2584,  2590,  2598,
  2602,  2607,  2611,  2614,  2623,  2625,  2629,  2632,  2637,  2641,
  2647,  2658,  2661,  2665,  2669,  2677,  2682,  2688,  2691,  2693,
  2695,  2701,  2704,  2706,  2708,  2710,  2714,  2717,  2735,  2745,
  2747,  2748,  2752,  2757,  2760,  2762,  2764,  2766,  2770,  2776,
  2779,  2781,  2783,  2785,  2789,  2792,  2795,  2797,  2799,  2801,
  2805,  2808,  2811,  2813,  2815,  2817,  2829,  2840,  2844,  2849,
  2853,  2858,  2860,  2864,  2867,  2869,  2873,  2875,  2876,  2879,
  2881,  2883,  2889,  2904,  2910,  2916,  2930,  2932,  2936,  2950,
  2952,  2954,  2958,  2964,  2977,  2979,  2983,  2996,  3002,  3004,
  3005,  3006,  3014,  3019,  3028,  3029,  3033,  3036,  3042,  3048,
  3051,  3053,  3055,  3057,  3061,  3065,  3069,  3072,  3077,  3080,
  3082,  3084,  3086,  3088,  3090,  3092,  3094,  3098,  3102,  3106,
  3110,  3111,  3113,  3115,  3117,  3119,  3121,  3123,  3125,  3127,
  3135,  3137,  3138,  3139,  3142,  3148,  3150,  3155,  3157,  3160,
  3174,  3177,  3180,  3184,  3187,  3194,  3196,  3199,  3201,  3203,
  3206,  3209,  3212,  3215,  3217,  3220,  3224,  3226,  3232,  3234,
  3235,  3237,  3242,  3244,  3246,  3248,  3250,  3253,  3254,  3256,
  3259,  3260,  3263,  3263,  3266,  3266,  3269,  3269,  3271,  3273,
  3275,  3277,  3283,  3289,  3292,  3295,  3301,  3303,  3305,  3309,
  3311,  3312,  3313,  3315,  3318,  3325,  3330,  3338,  3342,  3344,
  3347,  3349,  3352,  3356,  3358,  3361,  3363,  3366,  3383,  3389,
  3397,  3399,  3401,  3405,  3408,  3409,  3417,  3421,  3425,  3428,
  3429,  3435,  3438,  3441,  3443,  3447,  3452,  3455,  3465,  3470,
  3471,  3478,  3481,  3484,  3486,  3489,  3491,  3501,  3515,  3519,
  3522,  3524,  3528,  3532,  3535,  3538,  3540,  3544,  3546,  3553,
  3560,  3563,  3566,  3570,  3574,  3580,  3584,  3589,  3591,  3594,
  3599,  3605,  3616,  3619,  3621,  3625,  3630,  3632,  3639,  3642,
  3644,  3646,  3652,  3657,  3660,  3662,  3664,  3666,  3668,  3670,
  3672,  3674,  3676,  3678,  3680,  3682,  3684,  3686,  3688,  3690,
  3692,  3694,  3696,  3698,  3700,  3702,  3704,  3706,  3708,  3710,
  3712,  3714,  3716,  3718,  3720,  3722,  3725,  3727
};
#endif


#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)

static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
"TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
"STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
"CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF",
"SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","AGGR","VISSPEC",
"DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE","TYPENAME_KEYWORD",
"USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST","REINTERPRET_CAST",
"CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','","';'","THROW",
"':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX","EQCOMPARE",
"ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","POINTSAT_STAR",
"DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY","PAREN_STAR_PAREN",
"POINTSAT","'.'","'('","'['","TRY","CATCH","PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING",
"ALL","PRE_PARSED_CLASS_DECL","DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN",
"PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'",
"program","extdefs","@1","extdefs_opt",".hush_warning",".warning_ok","extension",
"asm_keyword","lang_extdef","@2","extdef","@3","@4","namespace_alias","@5","using_decl",
"namespace_using_decl","using_directive","@6","namespace_qualifier","any_id",
"extern_lang_string","template_header","@7","template_parm_list","maybe_identifier",
"template_type_parm","template_template_parm","template_parm","template_def",
"datadef","ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef",
"constructor_declarator","@8","@9","@10","@11","fn.def1","component_constructor_declarator",
"fn.def2","return_id","return_init","base_init",".set_base_init","member_init_list",
"member_init","identifier","notype_identifier","identifier_defn","explicit_instantiation",
"@12","@13","@14","@15","@16","@17","@18","@19","begin_explicit_instantiation",
"end_explicit_instantiation","template_type","self_template_type","template_close_bracket",
"template_arg_list_opt","template_arg_list","template_arg","unop","expr","paren_expr_or_null",
"paren_cond_or_null","xcond","condition","@20","compstmtend","already_scoped_stmt",
"@21","nontrivial_exprlist","nonnull_exprlist","unary_expr",".finish_new_placement",
".begin_new_placement","new_placement","new_initializer","regcast_or_absdcl",
"cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id",
"unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
"primary","@22","new","delete","boolean.literal","string","nodecls","object",
"decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
"reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
"typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
"initdcl","@23","initdcl0_innards","@24","initdcl0","notype_initdcl0","nomods_initdcl0",
"@25","maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
"identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
"pending_inlines","defarg_again","pending_defargs","structsp","@26","@27","@28",
"@29","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
"named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
"do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
"base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
"self_reference","opt.component_decl_list","component_decl_list","component_decl",
"component_decl_1","components","notype_components","component_declarator0",
"component_declarator","after_type_component_declarator0","notype_component_declarator0",
"after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
"new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
"maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
"nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
"complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
"functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
"typename_sub","typename_sub0","typename_sub1","typename_sub2","explicit_template_type",
"complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator",
"absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
"label_decls","label_decl","compstmt_or_error","compstmt","@30","simple_if",
"@31","@32","implicitly_scoped_stmt","@33","stmt","simple_stmt","@34","@35",
"@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","function_try_block",
"@48","@49","try_block","@50","@51","handler_seq","handler","@52","@53","type_specifier_seq",
"handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
"asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
"complex_parmlist","defarg","@54","defarg1","parms","parms_comma","named_parm",
"full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
"ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
};
#endif

static const short yyr1[] = {     0,
   112,   112,   114,   113,   113,   115,   115,   116,   117,   118,
   119,   121,   120,   122,   122,   122,   122,   122,   122,   122,
   123,   122,   124,   122,   122,   122,   122,   122,   126,   125,
   127,   127,   127,   128,   128,   128,   130,   129,   131,   131,
   132,   132,   132,   132,   133,   133,   135,   134,   134,   136,
   136,   137,   137,   138,   138,   139,   140,   140,   140,   140,
   140,   140,   141,   141,   142,   142,   142,   142,   142,   142,
   142,   142,   142,   143,   143,   144,   144,   144,   145,   145,
   146,   146,   146,   148,   147,   147,   149,   147,   147,   150,
   147,   147,   151,   147,   147,   152,   152,   152,   152,   152,
   153,   153,   153,   153,   154,   154,   154,   154,   154,   154,
   154,   155,   156,   156,   156,   157,   158,   159,   159,   159,
   159,   160,   160,   160,   160,   160,   160,   160,   160,   161,
   161,   161,   161,   161,   162,   162,   162,   163,   163,   163,
   165,   164,   166,   164,   167,   164,   168,   164,   169,   164,
   170,   164,   171,   164,   172,   164,   173,   174,   175,   175,
   175,   176,   177,   177,   178,   178,   179,   179,   180,   180,
   180,   181,   181,   181,   181,   181,   182,   182,   183,   183,
   184,   184,   185,   185,   185,   187,   186,   186,   188,   188,
   188,   188,   190,   189,   189,   191,   191,   191,   191,   192,
   192,   193,   193,   193,   193,   193,   193,   193,   193,   193,
   193,   193,   193,   193,   193,   193,   193,   193,   193,   193,
   193,   193,   193,   193,   193,   194,   195,   196,   196,   197,
   197,   197,   197,   198,   198,   199,   199,   199,   200,   200,
   200,   200,   200,   200,   200,   200,   200,   200,   200,   200,
   200,   200,   200,   200,   200,   200,   200,   200,   200,   200,
   200,   200,   200,   201,   201,   201,   201,   201,   201,   202,
   203,   203,   204,   204,   204,   205,   205,   205,   206,   206,
   206,   206,   207,   207,   208,   208,   208,   208,   209,   209,
   209,   209,   209,   209,   209,   210,   209,   209,   209,   209,
   209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
   209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
   209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
   209,   211,   211,   212,   212,   213,   213,   214,   214,   215,
   216,   216,   217,   217,   217,   217,   217,   217,   218,   218,
   219,   219,   220,   220,   220,   220,   220,   221,   221,   222,
   222,   222,   222,   222,   222,   223,   223,   223,   223,   223,
   224,   224,   224,   224,   224,   224,   225,   225,   225,   225,
   226,   226,   227,   227,   227,   227,   227,   227,   227,   228,
   228,   228,   229,   229,   230,   230,   231,   231,   232,   232,
   234,   233,   233,   236,   235,   235,   237,   238,   240,   239,
   239,   241,   241,   242,   242,   243,   244,   244,   245,   245,
   245,   245,   245,   246,   246,   246,   246,   247,   247,   248,
   248,   249,   249,   249,   249,   249,   250,   250,   250,   250,
   250,   251,   252,   252,   252,   253,   253,   254,   254,   255,
   255,   255,   257,   256,   256,   258,   256,   256,   256,   256,
   256,   259,   260,   256,   256,   261,   261,   262,   262,   263,
   263,   263,   263,   263,   263,   264,   265,   265,   265,   266,
   266,   266,   266,   266,   267,   268,   268,   268,   269,   270,
   270,   271,   271,   271,   272,   272,   273,   273,   274,   274,
   274,   274,   275,   275,   275,   275,   276,   277,   278,   278,
   278,   278,   279,   279,   280,   280,   280,   280,   280,   280,
   280,   280,   280,   280,   281,   281,   281,   281,   281,   281,
   281,   281,   281,   282,   282,   282,   283,   283,   283,   284,
   284,   285,   285,   286,   286,   287,   287,   287,   287,   288,
   288,   289,   289,   289,   290,   290,   291,   291,   292,   292,
   292,   293,   293,   294,   294,   295,   296,   297,   297,   297,
   297,   298,   298,   298,   298,   298,   298,   299,   299,   300,
   300,   300,   301,   302,   302,   302,   302,   302,   302,   303,
   303,   303,   303,   303,   303,   304,   304,   304,   304,   304,
   304,   305,   305,   305,   305,   305,   305,   306,   306,   307,
   307,   308,   308,   309,   309,   309,   310,   310,   310,   311,
   311,   311,   312,   312,   312,   312,   313,   313,   314,   314,
   314,   314,   315,   315,   315,   315,   316,   316,   316,   316,
   316,   316,   317,   318,   318,   318,   319,   319,   320,   321,
   321,   321,   321,   321,   321,   321,   322,   322,   323,   323,
   323,   323,   323,   323,   323,   323,   323,   323,   323,   324,
   324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
   325,   325,   325,   325,   326,   327,   327,   328,   328,   329,
   330,   330,   332,   331,   334,   335,   333,   336,   337,   336,
   338,   338,   339,   339,   340,   339,   339,   341,   342,   339,
   343,   344,   339,   345,   346,   347,   348,   339,   349,   350,
   339,   351,   339,   352,   339,   353,   339,   339,   339,   339,
   339,   339,   339,   339,   339,   339,   339,   339,   339,   339,
   339,   339,   339,   339,   355,   356,   354,   358,   359,   357,
   360,   360,   362,   363,   361,   364,   364,   365,   365,   366,
   366,   366,   366,   367,   367,   367,   368,   368,   369,   369,
   369,   370,   370,   371,   371,   372,   373,   373,   374,   374,
   374,   375,   375,   375,   375,   375,   375,   375,   377,   376,
   378,   378,   379,   379,   379,   379,   379,   380,   380,   381,
   381,   381,   381,   381,   381,   382,   382,   383,   383,   384,
   385,   385,   386,   386,   386,   387,   388,   388,   389,   389,
   389,   389,   390,   391,   391,   391,   391,   391,   391,   391,
   391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
   391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
   391,   391,   391,   391,   391,   391,   391,   391
};

static const short yyr2[] = {     0,
     0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
     1,     0,     2,     2,     1,     1,     5,     4,     5,     4,
     0,     6,     0,     5,     1,     2,     1,     2,     0,     6,
     2,     3,     3,     3,     3,     4,     0,     5,     2,     3,
     1,     1,     2,     2,     1,     2,     0,     5,     3,     1,
     3,     1,     0,     2,     2,     3,     1,     3,     1,     3,
     1,     3,     2,     2,     2,     3,     3,     2,     2,     2,
     2,     2,     1,     1,     1,     0,     1,     2,     0,     1,
     4,     3,     3,     0,     8,     5,     0,     9,     6,     0,
     8,     5,     0,     9,     6,     2,     2,     1,     2,     1,
     6,     4,     6,     4,     2,     1,     2,     2,     1,     2,
     1,     2,     2,     4,     2,     3,     0,     0,     1,     3,
     2,     3,     1,     4,     2,     4,     2,     4,     2,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     0,     6,     0,     6,     0,     5,     0,     5,     0,     7,
     0,     7,     0,     6,     0,     6,     0,     0,     4,     4,
     1,     4,     1,     1,     0,     1,     1,     3,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
     1,     3,     0,     1,     1,     0,     7,     1,     1,     3,
     4,     3,     0,     3,     1,     3,     3,     3,     3,     1,
     1,     1,     2,     2,     2,     2,     2,     2,     2,     4,
     2,     4,     2,     3,     3,     4,     5,     6,     6,     7,
     2,     4,     5,     2,     2,     1,     0,     4,     4,     3,
     1,     3,     2,     3,     4,     1,     2,     5,     1,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     5,     3,
     3,     1,     2,     3,     1,     1,     1,     1,     1,     0,
     5,     5,     5,     5,     5,     1,     1,     1,     1,     2,
     2,     3,     4,     4,     1,     1,     1,     3,     1,     1,
     1,     1,     3,     3,     3,     0,     4,     4,     2,     4,
     2,     4,     2,     2,     1,     4,     1,     7,     7,     7,
     7,     4,     4,     2,     2,     2,     1,     4,     2,     2,
     5,     3,     2,     2,     5,     3,     5,     3,     4,     6,
     2,     1,     2,     1,     2,     1,     1,     1,     2,     0,
     2,     2,     3,     3,     3,     2,     2,     2,     1,     1,
     1,     2,     2,     2,     2,     1,     1,     1,     1,     2,
     2,     3,     3,     3,     4,     1,     2,     2,     2,     1,
     1,     1,     2,     2,     2,     1,     1,     2,     2,     3,
     1,     2,     1,     1,     1,     4,     4,     4,     4,     1,
     1,     1,     1,     3,     1,     3,     1,     3,     0,     4,
     0,     6,     3,     0,     4,     1,     3,     3,     0,     4,
     3,     0,     1,     1,     2,     6,     1,     3,     0,     1,
     4,     6,     4,     1,     1,     1,     1,     1,     3,     0,
     2,     1,     2,     3,     4,     1,     1,     3,     4,     3,
     5,     1,     4,     3,     3,     0,     3,     3,     3,     0,
     2,     2,     0,     7,     4,     0,     6,     3,     2,     2,
     2,     0,     0,     9,     1,     0,     1,     0,     1,     1,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
     4,     3,     2,     3,     0,     1,     3,     2,     2,     1,
     1,     0,     2,     3,     1,     4,     1,     3,     1,     1,
     4,     4,     2,     2,     3,     3,     1,     0,     1,     2,
     4,     3,     1,     2,     2,     2,     2,     2,     2,     2,
     1,     2,     2,     3,     2,     2,     4,     4,     2,     1,
     5,     4,     1,     0,     1,     3,     0,     1,     3,     1,
     1,     1,     1,     4,     4,     4,     4,     4,     3,     4,
     4,     4,     4,     3,     1,     3,     1,     3,     2,     1,
     7,     0,     2,     1,     2,     0,     2,     4,     4,     2,
     4,     3,     3,     2,     2,     3,     1,     1,     2,     1,
     1,     2,     2,     4,     4,     3,     3,     2,     1,     3,
     3,     2,     2,     3,     1,     3,     3,     2,     2,     3,
     1,     4,     3,     4,     3,     1,     2,     2,     2,     2,
     2,     1,     2,     4,     4,     2,     1,     1,     1,     1,
     2,     4,     2,     2,     2,     2,     1,     2,     2,     2,
     2,     3,     1,     2,     3,     4,     2,     2,     2,     2,
     2,     2,     4,     2,     1,     2,     2,     3,     1,     3,
     2,     3,     2,     2,     3,     1,     3,     4,     3,     2,
     2,     1,     3,     2,     2,     1,     2,     3,     1,     3,
     1,     6,     4,     4,     3,     5,     3,     3,     3,     2,
     1,     1,     2,     2,     2,     0,     1,     1,     2,     3,
     1,     2,     0,     3,     0,     0,     5,     1,     0,     2,
     1,     1,     1,     2,     0,     4,     1,     0,     0,     5,
     0,     0,     7,     0,     0,     0,     0,    12,     0,     0,
     7,     0,     5,     0,     7,     0,     4,     2,     2,     2,
     3,     6,     8,    10,    12,     4,     3,     2,     2,     1,
     1,     1,     1,     1,     0,     0,     6,     0,     0,     5,
     1,     2,     0,     0,     5,     1,     1,     3,     3,     2,
     2,     2,     2,     2,     1,     2,     0,     1,     0,     1,
     1,     0,     1,     1,     3,     4,     1,     3,     0,     1,
     1,     1,     2,     2,     2,     1,     2,     2,     0,     3,
     1,     1,     1,     2,     2,     2,     4,     2,     2,     2,
     2,     2,     2,     1,     2,     1,     2,     1,     1,     0,
     0,     1,     0,     4,     2,     1,     1,     3,     0,     3,
     3,     3,     1,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     3,     2,     2,     2,
     2,     3,     2,     2,     4,     4,     3,     2
};

static const short yydefact[] = {     3,
    12,    12,     5,     0,     4,     0,   267,   617,   618,     0,
   372,   384,   564,     0,    11,     0,     0,     0,    10,   470,
   823,     0,     0,     0,   157,   649,   268,   269,    73,     0,
     0,   810,     0,    45,     0,     0,    13,    25,     0,    27,
     8,     0,    16,    15,    79,   100,    76,     0,   619,   161,
   286,   265,   287,   595,     0,   359,     0,   358,   377,     0,
   397,   376,   414,   383,     0,   486,   485,   492,   491,   490,
   465,   371,   580,   385,   581,    98,   285,   606,   578,     0,
   620,   562,     0,     0,   266,    71,    72,   165,   623,   165,
   624,   165,   270,   157,   130,   131,   132,   133,   134,   456,
   459,     0,   645,     0,   460,     0,     0,     0,     0,   131,
   132,   133,   134,    23,     0,     0,     0,     0,     0,     0,
     0,   461,   627,     0,   633,     0,     0,     0,    37,     0,
     0,    31,     0,     0,    47,     0,   165,   625,     0,     0,
   593,     0,     0,     0,   592,     0,     0,     0,     0,   286,
     0,   566,     0,   285,   562,    28,     0,    26,     3,    46,
     0,    64,    63,    80,    14,     0,   412,     0,     0,   430,
    77,    69,   626,   566,     0,   562,    70,     0,     0,     0,
    96,     0,   393,   349,   577,   350,   589,     0,   562,   374,
   373,    68,    99,   360,     0,   395,   375,    97,   366,   390,
   391,   361,   379,   381,   370,   392,     0,    65,   415,   471,
   472,   473,   474,   489,   139,   138,   140,   476,   477,   483,
   475,     0,     0,   478,   479,   492,   810,   488,   507,   508,
   565,   378,     0,   409,   618,     0,   647,   161,   610,   611,
   607,   583,   621,     0,   582,   579,     0,   858,   854,   853,
   851,   833,   838,   839,     0,   845,   844,   830,   831,   829,
   848,   837,   834,   835,   836,   840,   841,   827,   828,   824,
   825,   826,   850,   842,   843,   832,   849,     0,   846,   756,
   377,   757,   819,   270,   267,   564,   290,   338,     0,     0,
     0,     0,   334,   332,   305,   336,   337,     0,     0,     0,
     0,     0,   268,   269,   262,     0,     0,   173,   172,     0,
   174,   175,     0,     0,   176,     0,     0,   166,   167,     0,
   236,     0,   239,   171,   289,   202,     0,     0,   291,   292,
     0,   169,   356,   377,   357,   612,   317,   307,     0,     0,
     0,     0,   165,     0,   458,     0,   453,     0,   646,   644,
     0,   177,   178,     0,     0,     0,   419,     3,    21,    29,
   641,   637,   638,   640,   642,   639,   130,   131,   132,     0,
   133,   134,   629,   630,   634,   631,   628,     0,   277,   278,
   276,   609,   608,    33,    32,    49,     0,   372,   147,     0,
     0,   377,   145,     0,     0,   591,     0,   590,   264,   281,
     0,   599,   280,     0,   598,     0,   288,   603,     0,     0,
    12,     0,   157,     9,     9,     0,   411,   413,   112,    83,
   117,   745,     0,    75,    74,    82,   115,     0,     0,   113,
    78,   605,     0,     0,   570,     0,   813,     0,   575,     0,
   574,     0,     0,     0,     0,   562,   412,     0,    67,   566,
   562,   588,     0,   363,   364,     0,    66,   412,   368,   367,
   369,   362,   382,   399,   398,   480,   484,   482,     0,   487,
   493,     0,     0,   380,   412,   562,    84,     0,     0,     0,
     0,   562,    90,   563,   594,   618,   648,   161,     0,     0,
   847,   852,   379,   562,   562,     0,   562,   857,   165,     0,
     0,     0,   209,     0,     0,   211,   224,   225,     0,     0,
     0,     0,     0,   263,   208,   205,   204,   206,     0,     0,
     0,     0,     0,   289,     0,     0,     0,   203,   163,   164,
   283,     0,   207,     0,     0,   237,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   299,     0,
   301,   303,   304,   342,   341,     0,     0,   227,   227,     0,
   213,   560,     0,   221,   339,   331,     0,     0,   810,   320,
   323,   324,     0,     0,   351,   666,   662,   671,     0,   566,
   562,   562,   562,   353,   669,     0,   616,   355,     0,     0,
   354,   319,     0,   314,   333,   315,   335,   613,     0,   316,
   160,   162,     0,   155,     0,   377,   153,   557,   468,   555,
   455,     0,     0,   386,     0,     0,   387,   388,   389,   425,
   426,   427,   424,     0,   417,   420,     0,     3,     0,   632,
   165,   635,     0,    41,    42,     0,    53,     0,     0,     0,
    57,    61,    50,   809,   804,     0,   356,   377,    53,   357,
   808,    59,   158,   143,   141,   158,   159,   284,   597,   596,
   288,   600,     0,    18,    20,    79,     0,   118,   340,     0,
   693,    81,   691,   436,     0,   432,   431,   201,     0,   200,
   567,   604,     0,   786,     0,   781,   377,     0,   780,   782,
   811,   793,     0,     0,   602,   573,   572,     0,     0,   587,
     0,   407,   406,   394,   586,     0,   813,   576,   365,   396,
   408,   412,   481,   617,   618,   810,     0,   810,   619,   494,
   495,   497,   810,   500,   499,     0,   530,   618,     0,   521,
     0,     0,   533,     0,   111,   106,     0,   161,   534,   537,
     0,   513,     0,   109,     0,   412,   410,   813,   779,   165,
   165,   622,   165,   813,   779,   562,    87,   562,    93,   856,
   855,   819,   819,   819,     0,     0,     0,     0,   616,     0,
     0,     0,     0,   377,     0,     0,     0,   295,     0,   293,
   294,     0,   234,   168,   267,   617,   618,   268,   269,     0,
     0,   437,   466,     0,   261,   260,   771,   770,     0,   258,
   257,   255,   256,   254,   253,   252,   249,   250,   251,   247,
   248,   242,   243,   244,   245,   246,   240,   241,     0,     0,
     0,     0,     0,   227,   215,   231,     0,     0,   214,   562,
   562,     0,   562,   559,   656,     0,     0,     0,     0,     0,
   322,     0,   326,     0,   328,     0,   665,   664,   661,   660,
   809,     0,     0,   680,     0,     0,   813,   352,   813,   667,
   562,   779,   566,   666,   662,     0,     0,   562,     0,     0,
     0,     0,     0,   271,   158,   151,   149,   158,     0,   469,
     0,   468,   199,   198,   197,   196,   419,     0,     0,    24,
     0,     0,   636,     0,    38,    44,    43,    55,    52,    53,
     0,    48,     0,     0,   666,   662,     0,   800,   562,   803,
   805,     0,   801,   802,    54,   476,     0,   148,   158,   158,
   146,    17,    19,   400,   135,   123,   136,   137,     0,   116,
   119,     0,     0,     0,     0,   692,   686,   433,     0,   114,
   571,   568,   785,   799,   788,     0,   569,   784,   798,   787,
   783,   812,   795,   806,   796,   789,   794,   815,     0,   404,
   585,   584,   403,   504,     0,   503,   810,   810,   810,     0,
   562,   779,   529,   522,   534,   523,   412,   412,   519,   520,
   517,   518,   562,   779,   267,   617,     0,   399,   107,   525,
   535,   540,   541,   399,   399,     0,     0,   399,   105,   526,
   538,   399,   514,   515,   516,   412,     0,   462,    86,     0,
     0,     0,     0,    92,     0,   813,   779,   813,   779,   821,
   820,   822,   272,   306,   210,   212,   312,   313,     0,     0,
     0,     0,   294,   297,     0,     0,     0,     0,   235,     0,
   298,   300,   302,     0,     0,     0,     0,   216,   233,     0,
     0,   653,   651,     0,   654,   566,   222,     0,     0,   165,
   329,     0,     0,     0,   663,   659,   670,   562,   679,   677,
   678,   668,   813,     0,   675,     0,   614,   615,     0,   318,
   156,   158,   158,   154,   558,   556,   457,     0,   418,   416,
   267,     0,    22,    30,   643,    56,    51,    58,    62,   665,
   661,   666,   662,     0,   578,     0,   562,   667,    60,   144,
   142,     0,   121,     0,   125,     0,   127,     0,   129,     0,
   746,     0,   189,   694,     0,   687,   688,     0,   434,   666,
   662,     0,   289,     0,   612,   807,     0,     0,   816,   817,
     0,     0,   401,     0,     0,     0,   506,   505,   498,   813,
     0,   524,   430,   430,   813,     0,     0,     0,   412,   412,
     0,   412,   412,     0,   412,     0,   430,     0,   450,   562,
   274,   273,   275,   562,    89,     0,    95,     0,     0,     0,
     0,     0,     0,   440,     0,   438,   238,   259,   229,   228,
   226,   217,     0,   230,   232,   652,   650,   657,   655,     0,
   223,     0,     0,   321,   325,   327,   813,   673,   562,   674,
   152,   150,   454,     0,   421,   423,   665,   661,   583,   667,
   122,   120,     0,     0,     0,     0,   428,     0,     0,   267,
   617,   618,   695,   708,   711,   714,   719,     0,     0,     0,
     0,     0,     0,     0,     0,   268,   740,   748,     0,   767,
   744,   743,   742,     0,   703,     0,     0,   377,     0,   682,
   701,   707,   681,   702,   741,     0,   689,   435,     0,   615,
   797,   791,   792,   790,     0,   814,   405,     0,   501,   502,
   496,   102,   562,   528,   532,   104,   562,   412,   412,   549,
   430,   267,   617,     0,   536,   542,   543,   399,   399,   430,
   430,     0,   430,   539,   527,     0,   813,   813,   562,   562,
     0,     0,     0,     0,   439,     0,     0,   218,   219,   658,
   330,   273,   676,   813,     0,   124,   126,   128,   753,   747,
   751,     0,   690,   685,   192,   760,   762,   763,     0,     0,
   699,     0,     0,     0,   726,   728,   729,   730,     0,     0,
     0,     0,     0,     0,     0,   761,     0,   348,   768,     0,
   704,   346,   399,     0,   347,     0,   399,     0,     0,     0,
   190,   684,   683,   705,   739,   738,   294,   818,   402,   813,
   813,   548,   545,   547,     0,     0,   412,   412,   412,   544,
   546,   531,   452,     0,   451,   446,    85,    91,   813,   813,
   308,   309,   310,   311,   441,     0,   220,   672,   422,     0,
   752,   429,   181,     0,   696,   709,   698,     0,     0,     0,
     0,     0,   722,     0,   731,     0,   737,    39,   134,    34,
   134,     0,    35,   749,     0,   344,   345,     0,     0,     0,
   343,   191,   699,   101,   103,   412,   412,   554,   430,   430,
     0,     0,   464,    88,    94,   561,     0,   754,   188,     0,
   377,     0,   699,     0,   712,   700,   686,   765,   715,     0,
     0,     0,     0,   727,   736,    40,    36,     0,     0,   706,
   553,   551,   550,   552,   449,   448,   442,    76,    79,     0,
     0,     0,   182,   399,   697,   193,   710,   195,     0,   766,
     0,   764,   720,   724,   723,   750,   772,     0,     0,   447,
   758,   759,   755,   412,   686,   179,     0,     0,   185,     0,
   184,   699,     0,     0,     0,   773,   774,   732,   445,     0,
   444,     0,   194,     0,   713,   716,   721,   725,     0,   772,
     0,     0,   443,   186,   180,     0,     0,     0,   733,   775,
     0,     0,   776,     0,     0,   187,   717,   777,     0,   734,
     0,     0,     0,   718,   778,   735,     0,     0,     0
};

static const short yydefgoto[] = {  1577,
   411,     2,   412,   161,   675,   316,   166,     3,     4,    37,
   638,   358,  1261,   639,   743,  1262,  1263,   378,  1364,   643,
    41,   744,   387,   650,   908,   651,   652,   653,    43,    44,
   423,   169,   165,    45,   745,   759,  1027,   765,  1029,    47,
   746,   747,   170,   171,   424,   678,   940,   941,   618,   942,
   219,    48,   930,   929,   666,   663,  1093,  1092,   888,   885,
   136,   928,    49,    50,   531,   317,   318,   319,   320,  1264,
  1528,  1425,  1530,  1470,  1561,  1134,  1507,  1525,   352,   877,
   321,  1202,   832,   570,   839,   322,   323,   353,   325,   343,
    52,   240,   644,   400,    53,    54,   326,   526,   327,   328,
   329,   330,   425,   331,  1265,   464,   592,   332,  1266,    56,
   202,   656,   333,   203,   504,   204,   182,   195,    60,   447,
   465,  1288,   712,  1152,   183,   196,    61,   475,   713,    62,
    63,   634,   635,   636,  1238,   430,   802,   803,  1498,  1499,
  1463,  1405,  1316,    64,   622,   346,  1179,  1406,  1048,   891,
    65,    66,    67,    68,   226,    69,    70,    71,   228,   730,
   731,   732,   733,   230,   472,   473,   751,   752,   753,  1000,
  1010,  1001,  1305,  1002,  1003,  1306,  1307,   619,   620,   571,
   867,   335,   433,   434,   176,   184,    73,    74,    75,   185,
   186,   153,    77,   132,   336,   337,   338,    79,   339,    81,
   735,   123,   124,   125,   480,   105,    82,   340,   844,   845,
   862,   595,  1269,  1270,  1135,  1136,  1137,   682,  1271,   947,
  1272,  1349,  1473,  1428,  1429,  1273,  1274,  1453,  1350,  1474,
  1351,  1509,  1352,  1511,  1556,  1571,  1353,  1532,  1483,  1533,
  1434,   426,   679,  1236,  1275,  1367,  1488,  1340,  1341,  1420,
  1502,  1472,  1468,  1276,  1479,  1370,   809,  1535,  1536,  1537,
  1569,   698,   699,   967,  1148,  1284,   700,   701,   702,   963,
   703,   146,   965,   705,  1150,  1151,   498,    84,    85
};

static const short yypact[] = {   141,
   174,-32768,-32768, 10190,-32768,    58,   105,   283,   289,   114,
   181,-32768,-32768,   837,-32768,   169,   184,   197,-32768,-32768,
-32768,   738,  1585,   400,   337,-32768,   351,   310,-32768,  2004,
  2004,-32768,  3383,-32768, 10190,   206,-32768,-32768,   399,-32768,
   344, 10268,-32768,-32768,   291,   969,   466,   434,   460,-32768,
-32768,-32768,-32768,   149,  1941,-32768,  3753,-32768,  1846,   622,
-32768,   496,-32768,-32768,  1747,   308,-32768,   485,-32768,-32768,
   492,  4641,-32768,-32768,-32768,   952,-32768,-32768,-32768,  1032,
-32768,-32768,   168,  7629,   489,-32768,-32768,  9084,-32768,  9084,
-32768,  9084,-32768,-32768,-32768,   283,   289,   351,   524,   473,
   531,   460,-32768,  1192,-32768,   168,  9170,  9170,   520,-32768,
-32768,-32768,-32768,-32768,    79,   579,   379,   406,   413,   585,
   591,-32768,-32768,  1060,-32768,   919,   283,   289,-32768,   351,
   524,-32768,   871,   617,   578, 10509,  9084,-32768,  9084,  2101,
-32768,  1901,   657,  2101,-32768,  1090,  2145,  2145,  3383,   556,
   564,   581,   584,   601,-32768,-32768,   705,-32768,   623,-32768,
  1788,    58,-32768,-32768,-32768,   672,   496,   785,   125,   295,
   739,-32768,-32768,   690,   171,-32768,-32768,  2573,  2573,  3481,
   952,   663,-32768,-32768,   352,-32768,-32768,  2297,-32768,-32768,
-32768,-32768,-32768,  1846,   722,-32768,   496,   952,-32768,-32768,
-32768,  1880,  1846,-32768,   496,-32768,  3662,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   460,
   496,  1649,  1481,-32768,-32768,   485,-32768,-32768,-32768,-32768,
-32768,  1379,   168,-32768,   652,  1375,-32768,   251,-32768,-32768,
-32768,-32768,-32768,  2796,-32768,-32768,   645,-32768,   718,   744,
-32768,-32768,-32768,-32768,   788,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,   736,-32768,-32768,
  1379,  4641,   990,-32768,-32768,   761,-32768,-32768,  9778,  9864,
  9950,  9950,-32768,-32768,-32768,-32768,-32768,   765,   790,   811,
   813,   815,   659,   524,  9256,  1090,  9950,-32768,-32768,  9950,
-32768,-32768,  9950,  7107,-32768,  9950,   292,   839,-32768,  9950,
-32768,  9342,-32768,  3876,   328,   843,  4001,  9428,-32768,   890,
  3924,-32768,  2740,  3456,  2396,-32768,   338,-32768,  1238,  2719,
   292,   292,  9084, 10509,-32768,  1090,   796,  1090,-32768,-32768,
   803,   856, 10695,   830,   832,   846,  1398,   623,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   579,   379,   406,  1090,
   413,   585,   892,   591,-32768,   910,-32768,   571,   283,   289,
-32768,-32768,-32768,-32768,-32768,-32768,  4469,-32768,-32768,  3662,
  4873,  1513,-32768,   292,   464,-32768,   951,-32768,-32768,-32768,
  2101,-32768,-32768,  2101,-32768,   880,-32768,-32768,  2796,    78,
   883,   888,-32768,-32768,-32768,   705,-32768,   496,-32768,-32768,
-32768,-32768,   165,-32768,-32768,-32768,-32768,  7198,  9256,-32768,
-32768,-32768,  9256,   895,-32768,  6555,   121,  2907,-32768,  2907,
-32768,  2918,  2918,  3481,   916,-32768,   496,  3662,-32768,   898,
-32768,-32768,  3026,  1880,  1846,  3662,-32768,   496,-32768,-32768,
   496,  1880,-32768,   991,-32768,-32768,   460,-32768,  1649,-32768,
   551,  4035,    88,  1379,   496,-32768,-32768,   960,   966,   994,
   984,-32768,-32768,-32768,-32768,   724,-32768,   422,   956,   964,
-32768,-32768,  1379,-32768,-32768,  1109,-32768,-32768,  9084,  9256,
   761,  7107,-32768,   428,  7107,-32768,-32768,-32768,  9170,  5665,
  5665,  5665,  5665, 10740,-32768,-32768,-32768,-32768,   961, 10036,
 10036,  7107,   968,    34,   975,  1013,   977,-32768,-32768,-32768,
-32768,  9084,-32768,  6737,  7107,-32768,  9256,  9256,  7289,  9256,
  9256,  9256,  9256,  9256,  9256,  9256,  9256,  9256,  9256,  9256,
  9256,  9256,  9256,  9256,  9256,  9256,  9256,  9256,-32768,  9256,
-32768,-32768,-32768,-32768,-32768,  9256,  9256,-32768,-32768,  4328,
   333,   409,  7989,-32768,-32768,-32768,  1020,  1375,  1088,   437,
   455,   498,  2567,   657,-32768,  2128,  2128,-32768,  5231,   989,
  1006,  1055,-32768,-32768,   517,  8539,  1241,-32768,  1179,   168,
-32768,-32768,  9256,-32768,-32768,-32768,-32768,-32768,   202,   489,
-32768,-32768,   292,-32768,  3662,  2018,-32768,  1045,  1059,-32768,
-32768,  1090,   892,-32768,  7721,  7812,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,    91,-32768,  1028,  1014,   623,   571,  1068,
  9084,-32768,  1065,-32768,-32768,   617,  1711,   337,  1094,   253,
  1062,  1071,-32768,-32768,   674, 10564,   674,  5049,  1747,  4582,
-32768,  1079,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1031,-32768,  1091,-32768,-32768,   291,    90,   148,  1093,  1013,
-32768,-32768,-32768,-32768,  5950, 10740,-32768,   856,  1050, 10695,
-32768,-32768,  1053,-32768,  1054,   225,  5635,  1056,-32768,   260,
 10327,  1089,  1103,   543,-32768,-32768,-32768,  2907,  2907,-32768,
  3026,-32768,  1114,-32768,-32768,  1080,   121,-32768,  1880,-32768,
-32768,   496,-32768,   379,   406,-32768,  1097,-32768,   591,  1141,
-32768,-32768,   232,-32768,-32768,  1593,-32768,   726,   539,-32768,
  9256,  3650,-32768,  3650,   298,   298,   201,   553,  1769, 10382,
  4220,-32768,    94,   298,  1131,   496,-32768,   121,  4988,  9084,
  9084,-32768,  9084,   121,  4988,-32768,-32768,-32768,-32768,-32768,
-32768,   963,   963,   963,   292,  1095,  1118,  9520,  1055,  1126,
  1137,  1139,  1127,  4298,  1130,  1156,  1182,-32768,  1143,-32768,
-32768,  1159,-32768,-32768,  1209,   366,   532,   423,   193,  9256,
  1213,-32768,  1142,  1169, 10740, 10740,-32768,-32768,  1218,  2626,
  3261,  3557,  4485,  2315,  4356,  4384,  2045,  2045,  2045,  1546,
  1546,  1138,  1138,   737,   737,   737,-32768,-32768,  1175,  1183,
  1181,  9256,  9170,-32768,   333,-32768,  7198,  9256,-32768,-32768,
-32768,  9256,-32768,-32768,  1199,  9950,  1185,  1210,  1225,  1254,
-32768,  9256,-32768,  9256,-32768,  9256,  2456,-32768,  2456,-32768,
   103,  1201,  1205,-32768,  1203,  5665,   121,-32768,   121,  2998,
-32768,  4988,  1204,  8723,  8723,  5753,  1212,  9342,  1216,  2729,
  2719,  1343,  1217,-32768,-32768,-32768,-32768,-32768,  9256,  1090,
  1208,  1059,-32768, 10740,-32768, 10740,  1398,  1220,  9606,-32768,
  1221,  1261,-32768,   292,-32768,-32768,-32768,-32768,-32768,  1168,
  4469,-32768,  5665,  9084,  1176,  1176,  3180,-32768,-32768,-32768,
-32768,  2297,-32768,-32768,-32768,   751,  9256,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,   579,-32768,   413,   585,  9256,  1272,
-32768,   555,   583,   610,  1013,-32768,    81,-32768,   118,-32768,
-32768,-32768,-32768,-32768,-32768,  8631,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,  1103,  1268,-32768,-32768,-32768,  5665,-32768,
-32768,-32768,  1273,-32768,  9170,-32768,-32768,-32768,-32768,  1469,
-32768,  4988, 10740,-32768,  1512,-32768,   496,   496,-32768,-32768,
-32768,-32768,-32768,  4988,   675,   852,  9256,   991,-32768,  1282,
-32768,-32768,-32768,   188,   324,  1032,   657,   416,   298,  1285,
-32768,   424,-32768,-32768,-32768,   496,  5473,-32768,-32768,  1243,
   292,   292,   292,-32768,  1245,   121,  4988,   121,  4988,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1264,  1265,
  1269,  1270,  1031,-32768,  6025,  7198,  6831,  1255,-32768,  9256,
-32768,-32768,-32768,  1258,  1260,  1262,  5665,-32768,-32768,  1277,
    76,  1628,  1628,  1278,  1628,-32768,-32768,  9950,  1364,  9084,
-32768,  1284,  1287,  1289,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,   121,  1300,-32768,  1279,-32768,-32768,  2747,-32768,
-32768,-32768,-32768,-32768, 10740,-32768,-32768,  1301,-32768,-32768,
   122,  1303,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  2279,
  2279,  2468,  2468,  3180,-32768,  2297,-32768,  2584,  3876,-32768,
-32768,  1306,-32768,   148,-32768,  9256,-32768,  9256,-32768,  9256,
-32768,  1090,-32768,-32768,  6368,  1340,-32768,  6922,-32768,  8815,
  8815,  6461,   172,  1309,   227,-32768,  7198,  7013,-32768,-32768,
   189,  7198,-32768,  1311,  1313,   551,-32768,-32768,-32768,   121,
  1314,-32768,  1345,  1345,   121,  1321,  9256,  9256,  5828,   496,
  2251,   496,   496,  1356,   496,  3235,  1345,  8057,-32768,-32768,
-32768,  1380,-32768,-32768,-32768,  1327,-32768,  1337,  9256,  9256,
  9256,  9256,  7198,-32768,  1386,-32768,-32768, 10740,-32768,-32768,
-32768,   383,  1262,-32768,-32768,-32768,-32768,-32768,-32768,  1338,
-32768,  1403,   292,-32768,-32768,-32768,   121,-32768,-32768,-32768,
-32768,-32768,-32768,  9256,-32768,-32768,  2279,  2279,-32768,  2584,
-32768,-32768,  1348,  1352,  1353,  1355,-32768,   800,   243,  1402,
   879,   988,-32768,-32768,-32768,-32768,-32768,  9256,  1409,  1405,
  1415,  8907,   229,  1090,   526,   729,-32768,-32768,  8998,  1471,
-32768,-32768,-32768,  1418,-32768,  3314, 10450, 10619,  6235,-32768,
-32768,  1465,-32768,-32768,-32768,  8150,-32768,-32768,  1374,   824,
-32768,-32768,-32768,-32768,  5665,-32768,-32768,  7198,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,  5828,  5828,-32768,
  1345,   775,  1075,  9256,-32768,-32768,-32768,   991,   991,  1345,
  1345,   724,  1345,-32768,-32768,  6120,   121,   121,-32768,-32768,
  1383,  1385,  1389,  1392,-32768,  7198,  9256,-32768,   383,-32768,
-32768,-32768,-32768,   121,  1393,-32768,-32768,-32768,-32768,  1355,
-32768,  1090,-32768,-32768,-32768,-32768,-32768,-32768,   619,   619,
  1013,  1395,  1413,  4701,-32768,-32768,-32768,-32768,  1449,  9256,
  1450,  1455,  1459,  1706,  1742,-32768,  1013,-32768,-32768,  1421,
-32768,-32768,   991,   819,-32768,   901,   991,  9692,   992,   272,
-32768,-32768,-32768,-32768,-32768,-32768,   330,-32768,-32768,   121,
   121,-32768,-32768,-32768,  9256,  9256,  5828,   496,   496,-32768,
-32768,-32768,-32768,  7903,-32768,-32768,-32768,-32768,   121,   121,
-32768,-32768,-32768,-32768,-32768,  1417,-32768,-32768,-32768,  1431,
-32768,-32768,-32768,  9170,-32768,-32768,-32768,  1514,  8446,  6646,
  9170,  9256,-32768,  8258,-32768,  1472,-32768,-32768,  1479,-32768,
  1459,  1706,-32768,-32768,   705,-32768,-32768, 10122, 10122,  7380,
-32768,-32768,  1013,-32768,-32768,  5828,  5828,-32768,  1345,  1345,
  1429, 10650,  1443,-32768,-32768,-32768,  5563,-32768,-32768,  1442,
   799,  3662,  1013,  8352,-32768,-32768,    81,-32768,-32768,  1495,
  1452, 10718,  8258,-32768,-32768,-32768,-32768,  1355,    86,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,   466,   291,  1454,
  1456,  1013,-32768,   991,-32768,-32768,-32768,-32768,   624,-32768,
  7471,-32768,-32768,-32768,-32768,  1355,  1554,  1511,   154,-32768,
-32768,-32768,-32768,   496,    81,-32768,  9256,  1515,-32768,  1517,
-32768,  1013,  8258,  1488,   642,  1524,-32768,-32768,-32768,   165,
-32768,  1522,-32768,  1483,-32768,-32768,-32768,-32768,  9256,  1554,
  1534,  1554,-32768,-32768,-32768,  7562,  1487,   715,-32768,-32768,
  7198,  1493,-32768,  1591,  1544,-32768,-32768,-32768,   271,-32768,
  8352,  1595,  1548,-32768,-32768,-32768,  1610,  1611,-32768
};

static const short yypgoto[] = {-32768,
  1612,-32768,  -323,-32768,  1198,    60,    13,  1615,-32768,   420,
-32768,-32768,   448,-32768,   810,-32768,   828,-32768,   249,   979,
-32768,     5,-32768,-32768,  -603,-32768,-32768,   708,-32768,  1460,
  -676,   138,  -672,  1477,    56,-32768,-32768,-32768,-32768,-32768,
   893,-32768,-32768,-32768,-32768,-32768,-32768,   516,   214,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1550,  -520,  5303,    80,  -141,   -72,  1519,  -518,-32768,   185,
-32768,   301,-32768, -1326,-32768, -1366,   115,-32768,  1307,  1134,
  -240,   459,  -523,-32768,  -807,  4515,  -220,  1123,  3464,  1411,
  -313,   -58,   -27,    -9,   -57,   198,-32768,-32768,-32768,  -321,
-32768,  -155,-32768,-32768, -1186,   -54,  -326,  4302,    32,   958,
  -137,     9,    74,  -187,    -4,  -160,  -570,   426,-32768,   -35,
   109,-32768,  -339,-32768,-32768,-32768,-32768,-32768,   -91,  1725,
    55,-32768,   802,-32768,-32768, -1043,  -190,  1016,-32768,-32768,
-32768,-32768,-32768,   335,-32768,-32768,-32768,-32768,-32768,   821,
  -358,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1476,-32768,
   547,   727,-32768,-32768,-32768,-32768,   701,  -690,-32768,-32768,
-32768,-32768,-32768,-32768,   970,-32768,   545,  1102,   835,  1157,
  1988,    28,   -24,  -434,  1543,  3843,  -456,-32768,   108,-32768,
  4903,  -126,   242,   -97,  3744,  1399,-32768,  4268,  1908,   270,
   -18,  -101,-32768,  1605,   -62,-32768,  4092,  2707,   -61,-32768,
  2287,-32768,-32768,   462,-32768,-32768,   596,   195,  -346,-32768,
-32768,-32768,-32768, -1324,-32768, -1177, -1350,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,   219,-32768,-32768,-32768,-32768,-32768,   245, -1271,-32768,
-32768,   -45,-32768,-32768,-32768,-32768, -1347,   190,-32768,   187,
-32768,  -621,  -563,   778,-32768,-32768,-32768,-32768,  -377,-32768,
  -375,  -193,-32768,   370,   468,-32768,   208,-32768,  -230
};


#define     YYLAST            10824


static const short yytable[] = {    59,
   181,   410,   945,   933,   122,   481,   455,   597,    42,   661,
   167,   662,    57,   794,   734,   716,    36,   341,   607,   342,
   402,   405,   241,   151,   377,   863,   606,  1058,   659,   175,
    59,    72,   863,   471,   637,    55,   385,    59,   283,    42,
   234,   460,   463,    57,   474,   833,    42,    36,   503,   506,
    57,   984,   194,   986,    36,   925,   454,   140,   144,    46,
  1013,   376,    72,    35,   394,   462,    55,   232,  1421,    72,
   507,   508,  1368,    55,   382,   417,   683,    58,  1476,   281,
   559,   536,  1480,   334,   241,   334,   516,   334,   575,   517,
    46,  1383,   518,   493,    35,   528,   575,    46,  1386,   533,
   575,    35,   334,   334,  1481,   383,   384,   574,    58,   610,
  1510,   282,   193,  1132,   953,    58,   209,    86,   721,  1294,
  1295,   103,   585,  1508,   755,   420,   560,   175,  1490,   484,
   241,   392,   334,  1315,   334,   757,   359,  1020,   403,   406,
    -1,  -279,   360,  1025,   391,   931,   493,  1517,  1505,   897,
   935,   724,   725,  1014,  1539,   865,    59,   280,  1543,   238,
   175,   954,   458,    72,   955,   680,    87,   390,   778,    57,
   151,     8,     9,    -2,   401,   404,  1138,   779,    88,   792,
  1224,   704,  -340,  1205,  1531,   673,   421,    93,    72,  1133,
   245,   389,    55,  1518,   936,  -566,   756,   934,   898,   611,
   612,    26,  1015,   937,   938,   438,   440,  1547,  1562,    58,
   793,  -340,  -349,   349,    15,   421,    46,   435,  -286,   422,
  1508,   943,   681,   130,   131,   989,  1139,   101,    94,  1225,
   152,    95,   110,   111,    58,   115,   953,   687,   978,   293,
   939,  -566,   174,  1478,  1421,  -349,   138,  1285,   422,  -349,
  1084,   209,   667,   668,  -134,    26,  1484,  1394,   990,   209,
   677,   107,   991,   436,  -286,  -286,  1400,  1401,   979,  1402,
   613,   958,   580,  -606,   154,   209,   108,   232,   218,  -279,
   645,   572,  -349,   954,   112,   113,   955,   607,  -809,   109,
   910,   351,   355,   460,   463,   992,  1286,   482,   157,   516,
   517,   460,  1344,   581,   525,  1515,  1106,   640,  1360,   334,
  1057,   911,   863,   463,   901,   402,   405,   719,   959,  -606,
  -606,   960,   281,   661,    15,   964,   488,   912,  -399,  1572,
   232,  1344,   463,   946,  -606,   664,    89,   373,   334,   616,
   245,   427,    91,   483,   152,   152,   152,   481,  -350,   243,
    15,  1345,   391,   863,   282,  1548,    90,  -399,   428,   399,
  1161,  -399,    92,   138,  1091,   224,   529,  1094,   530,   225,
   597,    72,  1166,   243,   559,   615,  -288,   152,  1573,   836,
  1452,  -350,   658,   139,   602,  -350,   194,   429,   154,   154,
   154,   649,   863,   206,  1328,  1109,   837,   164,  -566,   614,
   280,   159,   243,   127,   128,  1186,  -399,  1188,  1120,  1121,
   135,   243,   127,   128,   660,  1493,  1494,    58,  -350,    89,
   560,   154,  -288,  -288,   137,   838,   775,  -131,   722,   836,
   603,   697,   362,   403,   406,   466,   468,  -282,  1086,    90,
  -110,   160,    15,   129,  -566,   450,   837,   245,  -108,   479,
    15,    38,    90,    26,   156,   130,   131,   243,   158,   363,
   657,   163,    26,   660,   130,   131,   364,    59,   768,   708,
   709,   884,   209,  -110,   585,   838,  1327,  -110,   840,    92,
   750,  -108,    38,   851,  -133,  -108,   137,  1013,   841,    38,
   168,   243,   525,   172,   334,   525,   137,   334,   523,    72,
   334,   853,   842,   749,   334,   784,   784,   784,   784,   657,
  -110,   403,   789,   173,   769,   209,   243,   334,  -108,   515,
   778,  1417,   532,   734,   572,   525,    18,   334,   206,   852,
   334,   742,   974,   661,   976,   662,   206,   206,   529,   980,
   530,   645,   127,   128,   855,    58,   227,   854,   907,   229,
   863,   748,   659,   116,   724,   725,   714,   726,   460,   607,
   886,   623,   284,   871,   720,   281,   206,   606,   904,   129,
   633,  1221,  1222,   285,   379,   380,    10,   138,   863,    26,
   727,   345,  1363,   623,   658,    91,   879,   728,   347,   968,
   856,   697,    26,  -132,   130,   131,   493,   282,  1131,   993,
   918,  1125,   923,   924,    26,    92,   119,   120,   243,   872,
   873,    21,   357,   857,   859,   206,   660,   691,   906,   285,
   379,   380,    10,   660,    26,  1067,    27,   304,   122,  1127,
   973,  1210,   361,  1033,   377,   969,   334,   536,   365,   152,
   152,   152,   924,   280,   366,   994,  1059,  1126,     8,   486,
   610,   194,   386,   516,   517,   232,  1129,    21,    32,   944,
   127,   128,   657,  -279,  1018,  1423,   243,   943,   206,   657,
  1526,   407,    27,   304,   174,  1128,     7,     8,     9,    10,
   207,   208,   723,   154,   154,   154,   523,  1021,  1022,   523,
  1023,   408,   348,   781,   999,  1374,   658,  1379,   476,   734,
   130,   131,  1130,  1550,    32,    91,   523,   245,  -601,   987,
   988,  1424,   130,   131,    21,   288,  1527,  -170,  1016,   523,
   585,   448,   449,   808,   487,    92,   206,    26,   660,    27,
    28,    -7,   137,  -170,   779,  -170,  1167,    59,   243,    59,
    95,   110,   111,   915,   477,   194,    59,   801,    88,  1551,
   750,   831,   750,   916,   658,   334,   334,   847,   334,   750,
   658,    32,  1105,   588,   416,   243,   917,   590,   879,    72,
   766,    72,   981,   749,   657,   985,  1564,    91,    72,    91,
   456,   457,   749,  1156,  1157,  1158,   660,   419,   206,   206,
  1366,   849,   660,   112,   113,   114,   206,    92,   431,    92,
   432,   742,   137,   742,   998,  1008,   200,   201,   206,   -52,
   742,   489,    14,    39,   -52,    58,   767,    58,   982,   557,
   558,   748,  1565,   748,    58,   -52,  1520,   206,   334,   748,
   748,    40,   657,  1061,    20,  -288,  1395,   490,   657,    95,
    96,    97,  1540,    23,    39,   585,   492,  1211,    88,   491,
  -288,    39,   243,   500,  -288,  1194,  1196,   509,  1342,  1343,
   909,   784,    40,   510,   241,   403,   789,   658,   243,    40,
  -288,   697,   926,   285,   379,   380,    10,   448,  1446,  1181,
  1182,  1183,  -288,  -288,   511,  -288,   512,  -288,   513,   561,
    26,   778,    98,    99,   100,  1163,  1164,   532,   801,   660,
   575,   857,   859,   660,   621,    89,   658,   151,   784,   334,
   624,    21,   658,  1168,   625,   649,  -288,  -288,   236,   516,
   517,   116,   117,   118,  1177,    90,    27,   304,   562,   563,
   999,  -288,    89,   564,   565,   566,   567,   627,   660,   628,
  1347,   779,  1110,  1111,   660,   657,  1144,  1196,   241,   657,
   206,   697,    90,   629,   127,   128,  1281,  1283,    32,   456,
  1447,  1287,  1170,   642,   784,   641,   127,   128,  1172,  1173,
   334,   484,  1170,  1175,   119,   120,  1173,   658,    15,  1030,
  1031,  1032,  -399,   660,   657,   402,   405,   671,   245,   658,
   657,    -6,   206,   127,   128,    15,   674,  1213,   348,  -399,
  1206,  1207,  1325,  1209,  1427,   692,   130,   131,   715,   660,
  -399,  -399,    59,   402,   405,  -399,    26,    15,   130,   131,
  1444,   660,   658,   710,   658,   750,  1064,  -399,  -399,   657,
   487,   206,   494,   760,     7,     8,   235,    10,   528,   761,
   998,    91,   495,    26,    72,   130,   131,   762,   749,  1348,
   448,  1451,   784,   206,   660,   657,   660,   763,   241,   494,
   523,    92,   367,   368,   369,   334,   770,   657,   788,   495,
   681,  1332,    21,   848,   771,   790,   742,  1300,  1301,   236,
  1310,  1311,   791,  1313,   793,   238,   972,    27,    28,   661,
    58,  1501,    95,   110,   111,   850,   748,  1389,   866,   864,
   657,   868,   657,   403,   406,   944,  1427,   370,   889,   658,
   633,   237,   127,   128,   152,   371,   372,   890,   206,    32,
   899,   903,   900,   909,   905,   913,  1427,  1019,    89,    20,
  1268,   403,  1279,  1024,   914,  1415,  1396,   697,  -282,  1227,
  1228,   660,   927,  1267,   779,   112,   113,  1260,    90,   243,
   932,   243,  -808,   152,   421,  1523,   348,   950,   154,  1154,
   951,   952,    72,   957,   130,   131,   966,  1227,  1228,   660,
    95,   110,   111,    59,   210,   211,   212,   970,     7,     8,
     9,    10,     8,     9,    13,  1427,   750,   657,   237,   975,
   971,   243,  1017,   683,  1259,     8,     9,   154,    18,   977,
  1047,  1039,  1034,   213,  1040,    72,  1392,  1393,    58,   749,
   324,  1373,   324,  1373,   324,   657,    21,   554,   555,   556,
   557,   558,   585,   112,   113,  1035,   348,   516,   517,    26,
  1041,    27,    28,  1036,   130,   131,  1080,   742,  1081,   348,
   285,     8,     9,    10,  1037,   915,  1038,   130,   131,  -562,
  1043,    58,  -562,   488,  1268,   916,  1042,   748,   237,   324,
  1195,   324,   194,    32,  1268,   588,  1044,  1267,   917,   590,
  -130,  1268,  1398,  1399,  1046,   243,  1049,  1267,    21,  1050,
   784,  1260,  1051,   493,  1267,   236,    72,   868,  1260,  1489,
  1052,  1053,  1066,    27,   304,  1068,    72,  1069,  1070,  -562,
  1071,  -562,  -562,    72,  -562,  1458,  1459,  1460,  1077,   152,
   152,   152,  1078,  1079,  1085,  -562,  1097,  -562,  1259,  1087,
  1104,   402,   405,  1088,  1090,    32,   523,  1100,  1259,  1103,
  1124,  1147,    58,  -562,  -562,  1259,  1153,   152,   152,   152,
  1171,   458,    58,  1176,   655,  1237,     8,     9,  -562,    58,
  1180,  1195,  1184,   154,   154,   154,  1189,  1190,   243,   127,
  1312,  1191,  1192,  1197,  1491,  1492,  1199,  1200,  1144,  1201,
  1566,  1212,  1132,  1321,  1322,  1323,  1324,    95,   110,   111,
   478,   154,   154,   154,  1204,   243,   200,   201,  1208,  1220,
   348,  1214,    14,   655,  1215,  1185,  1216,  1187,   130,   131,
    95,   110,   111,   348,   630,   631,   632,  1219,   428,  1223,
  1226,   130,   131,  1231,    20,    21,  1280,  1504,  1289,  1471,
  1290,  1293,   487,    23,  1268,  1268,  1471,   514,  1297,  1268,
   112,   113,  1542,  -643,  1319,   487,  1359,  1267,  1267,   403,
  1279,  1260,  1267,   243,  1320,   334,  1260,  1326,  1330,  1331,
  1339,   282,  1218,   112,   113,  1336,    72,    72,   282,  1337,
  1338,    72,   658,  1346,  1356,   324,  1361,  1362,  1524,  1268,
  1355,   116,   724,   725,  1357,   708,   709,  1371,  1268,  1369,
  1384,  1387,  1267,    95,    96,    97,  1260,  1430,  1259,  1259,
  1411,  1267,  1412,  1259,   660,  1260,  1413,   280,   727,  1414,
  1419,    72,    58,    58,   280,  1431,  1471,    58,  1435,  1437,
    72,  1416,  1438,  1445,   995,   996,     9,    10,   360,   199,
   200,   201,    26,  1467,   119,   120,    14,  1466,  1268,  1292,
  1475,  1485,  1486,  1259,  1296,  1495,    98,    99,   282,  1497,
   657,  1267,  1259,    18,  1436,  1260,   655,    58,    20,  1503,
   686,   690,    21,   655,  1512,  1422,    58,    23,   690,  1513,
    72,  1521,   689,  1522,  1534,    26,  1268,    27,    28,   695,
  1538,  1162,   665,   997,  1545,   152,  1546,  1440,  1443,  1267,
  1549,   178,  1552,  1260,   280,  1554,  1333,   116,   117,   118,
  1555,   179,  1259,  1559,  1563,   116,   724,   725,    72,    32,
  1567,  1568,   206,  1570,   180,  1575,    58,  1576,  1469,  1578,
  1579,     1,   676,  1442,   808,  1469,     5,   902,  1107,   154,
   414,   324,   690,   552,   553,   554,   555,   556,   557,   558,
  1259,   127,   128,   776,   523,  1519,   484,   415,    26,  1232,
   119,   120,  1009,   344,    58,   152,   152,   152,   119,   120,
  1426,    95,    96,    97,   324,  1487,   686,   395,   655,   805,
   806,  1329,   810,   811,   812,   813,   814,   815,   816,   817,
   818,   819,   820,   821,   822,   823,   824,   825,   826,   827,
   828,    26,   690,   130,   131,  1574,  1407,  1408,   690,   154,
   154,   154,  1376,   829,   499,  1469,   348,   840,  1099,   830,
   949,   470,  1291,  1418,    98,    99,  1159,   841,    95,   110,
   111,  1544,  1098,   367,   368,   369,   655,  1178,   690,  1011,
  1314,   842,   655,   892,  1096,   690,   835,   451,   375,   582,
  1382,  1277,  1516,  1557,  1553,   688,   883,  1541,  1560,  1558,
   808,  1146,   688,     0,    95,   110,   111,   894,   896,    95,
    96,    97,  1388,   210,   211,   212,     0,     0,     0,  1454,
  1455,   112,  1439,   324,    26,     0,   371,   372,     0,     0,
     0,   995,   996,     9,    10,     0,     0,    18,  1464,  1465,
     0,   197,   213,   205,     0,     0,     0,     0,     6,   221,
     7,     8,     9,    10,    11,    12,    13,   112,  1441,     0,
    26,    14,    98,    99,   214,   206,   688,   686,     0,    21,
     0,     0,     0,     0,     0,    16,     0,    17,    18,     0,
     0,     0,    26,    20,    27,    28,     0,     0,    21,   655,
   997,     0,    23,   655,     0,   413,     0,     0,   178,     0,
     0,    26,     0,    27,    28,     0,     0,    29,   179,   215,
   216,   217,   199,   200,   201,     0,    32,    30,     0,    14,
     0,   180,     0,   983,     0,     0,   688,    31,   655,     0,
     0,     0,   688,     0,   655,    32,    18,     0,     0,     0,
    33,    20,   324,   324,     0,   324,   459,   200,   201,     0,
    23,   418,     0,    14,     0,     0,     0,     0,     0,     0,
   690,     0,   688,     7,   127,   128,    10,     0,     0,   688,
    18,    80,     0,   655,     0,    20,     0,     0,   205,     0,
     0,   104,  1045,     0,    23,     0,   461,   205,     0,     0,
     0,   133,     0,     0,     0,     0,     0,   142,   142,   655,
   142,    21,    80,     7,     8,     9,    10,     0,   236,    80,
     0,   655,     0,     0,   690,   690,    27,    28,     0,   686,
   690,     0,   188,     0,    80,  1054,  1055,     0,     0,     0,
     0,  1060,   222,     0,   690,     0,   690,     0,   690,   104,
   237,    21,     0,     0,   655,  1072,   655,  1073,    32,  1074,
   247,   104,     0,     0,    26,     0,    27,    28,     0,     0,
   177,     0,     0,     0,     0,     0,     7,   127,   128,    10,
   178,  1095,    13,   104,     0,     0,     0,     0,     0,     0,
   179,   690,     0,     0,   199,   200,   201,     0,    32,     0,
     0,    14,  1102,   180,     0,     0,   324,     0,     0,     0,
     0,   133,     0,    80,    21,     0,     0,   142,    18,  1119,
   397,   142,     0,    20,   142,   142,   142,    26,     0,    27,
    28,   690,    23,     0,     0,     0,     0,     0,    80,   244,
     0,   655,  1122,    30,     0,     0,     0,   887,   690,     0,
     0,     0,     0,    31,   688,   188,   188,   188,     0,     0,
     0,    32,     0,     0,     0,     0,    33,     0,     0,   655,
     0,     0,     0,     7,   127,   128,    10,     0,     0,   231,
     0,     0,     0,     0,   188,   197,   205,     0,     0,  1169,
   550,   551,   552,   553,   554,   555,   556,   557,   558,     0,
   469,   127,   128,     0,     0,     0,    13,     0,   688,   688,
   104,    21,   409,     0,   688,     0,     0,     7,   127,   128,
    10,   142,     0,    13,    26,     0,    27,    28,   688,     0,
   688,     0,   688,   437,     0,     0,     0,     0,   686,   686,
    30,   418,  1198,     0,   585,     0,   453,     0,   461,   205,
    31,    26,   418,   130,   131,    21,   461,     0,    32,   104,
   496,     0,   324,    33,     0,     0,     0,   586,    26,   418,
    27,    28,     0,     0,     0,   688,     0,   587,     0,     0,
     0,     0,     0,     0,   147,     0,     0,   588,     0,     0,
   589,   590,     0,     0,   148,     0,     0,     0,     0,     0,
     0,     0,    32,     0,   104,     0,     0,   149,   583,     0,
   496,   496,   599,     0,     0,   688,     0,     0,   690,     0,
   690,    80,   690,  1302,  1303,     9,    10,     0,     0,  1233,
   686,  1234,   688,  1235,     0,     0,     0,     0,     0,   686,
   686,     0,     0,     0,   686,     0,     0,     0,     0,     0,
     0,     7,     8,     9,    10,   133,     0,   231,     0,  1298,
  1299,    21,     0,     0,   104,     0,     0,   188,   104,     7,
     8,     9,    10,     0,    26,     0,    27,    28,   142,     0,
     0,   142,  1304,     0,     0,   686,   142,     0,     0,    21,
   178,     0,     0,     0,     0,   585,     0,     0,     0,     0,
   179,     0,    26,     0,    27,    28,     0,    21,    32,     0,
   205,     0,     0,   180,   236,   188,   690,   188,   915,   188,
   188,   188,    27,    28,     0,   188,     0,  1335,   916,     0,
   188,     0,     0,   188,     0,     0,    32,     0,   588,     0,
  1354,   917,   590,     0,     0,     0,   237,     0,     0,    80,
   197,     0,   205,   221,    32,   545,   546,   547,   548,   549,
   550,   551,   552,   553,   554,   555,   556,   557,   558,     8,
     9,     0,     0,    12,   231,     0,     0,     0,     0,    14,
   686,     0,     0,     0,     0,     0,     0,   104,   104,   104,
   104,   205,     0,    16,   655,    17,  1397,     0,     0,     0,
     0,    20,   688,   711,   688,     0,   688,     0,   717,     0,
    23,     0,   585,   461,     0,     0,   418,     0,   686,    26,
     0,   130,   131,     0,     0,     0,     0,     0,     0,   127,
   128,     0,     0,   758,   231,   586,     0,     0,     0,   764,
     7,     8,     9,    10,   197,   587,    13,   104,     0,   496,
   418,   772,   773,     0,   774,   588,     0,     0,   589,   590,
     0,   583,     0,   496,   496,     0,   599,     0,     0,     0,
   690,     0,   585,   880,     0,     0,     0,   882,    21,    26,
     0,   130,   131,     0,   585,     0,     0,  1456,  1457,     0,
     0,    26,   188,    27,    28,   586,  1462,     0,     0,     0,
   688,     0,     0,     0,     0,   587,     0,  1112,     0,     0,
     0,     0,     0,     0,     0,   588,   133,  1113,   589,   590,
     0,     0,     0,   133,  1482,    32,     0,   588,     0,     0,
  1114,   590,   188,   922,   188,   188,   222,   599,     0,   285,
   127,   128,    10,     0,     0,     7,     8,     9,    10,   869,
   870,    13,     0,     0,   869,     0,     7,     8,     9,    10,
     0,     0,   484,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   188,     0,     0,    21,   922,     0,
     0,     0,     0,    21,   236,   188,   188,     0,   188,   594,
   598,   601,    27,   304,    21,     0,    26,     0,    27,    28,
   585,     0,     0,     0,   221,     0,     0,    26,     0,    27,
    28,     0,   178,     0,     0,     0,   133,     0,     0,    80,
     0,    80,   179,   915,    32,     0,  1006,    80,    80,     0,
    32,     0,     0,   916,     0,   180,   104,     0,     0,     0,
     0,    32,   104,   588,     0,     0,   917,   590,     0,   496,
   496,   496,     0,   686,   688,     0,     0,     0,     0,     0,
     0,   496,   541,   542,   543,   544,   545,   546,   547,   548,
   549,   550,   551,   552,   553,   554,   555,   556,   557,   558,
    83,   418,   418,     0,     0,     0,     0,     0,     0,     0,
   106,   604,     8,     9,    10,     0,     0,     0,     0,   126,
   134,   285,     8,     9,    10,     0,   143,   143,     0,   143,
   418,    83,     0,   127,   128,     0,     0,     0,    83,   285,
     8,     9,    10,  1026,     0,  1028,   293,   605,     0,    21,
     0,   143,     0,    83,   496,     0,   496,     0,     0,    21,
     0,   223,    26,   104,   130,   131,   236,   496,   233,   104,
     0,   880,   880,   880,    27,   304,   585,    21,  1089,     0,
   233,     0,     0,    26,   236,   130,   131,     0,     7,   127,
   128,    10,    27,   304,   484,     0,     0,     0,   237,   586,
     0,     0,     0,     0,     0,     0,    32,     0,   104,   587,
   104,     0,   188,   188,  1116,     0,   487,  1062,  1063,   588,
  1065,     0,   589,   590,    32,     0,    21,     0,     0,     0,
     0,     0,    83,     0,     0,     0,   143,     0,     0,    26,
   143,    27,    28,   143,   143,   143,     0,     0,  1083,     0,
     0,     0,     0,  1116,     0,    30,     0,    83,     0,     0,
     0,     0,   858,   860,     0,    31,   104,     0,     0,     0,
     0,     0,     0,    32,   143,   143,   143,     0,    33,   104,
     0,     0,  1006,   418,   418,     0,   418,   418,     0,   418,
     0,   104,     0,     0,     0,     0,  1118,     0,     0,     7,
     8,     9,    10,   143,  1174,   231,     0,     0,     0,     0,
     7,     8,     9,    10,    80,     0,    13,     0,     0,     0,
     0,     0,     0,     0,   104,     0,   104,     0,     0,     0,
     0,   920,     0,   594,   598,     0,   601,    21,     0,     0,
   143,     0,     0,     0,     0,     0,     0,     0,    21,     0,
    26,     0,    27,    28,   104,     0,     0,     0,  1160,   496,
   496,    26,   496,    27,    28,     0,   178,     0,     0,     0,
  1165,     0,     0,   598,     0,     0,   179,   442,   233,   143,
     0,   197,   205,     0,    32,     0,     0,   443,     0,   180,
     0,   127,   128,     0,     0,    32,   484,     0,     0,     0,
   444,     0,     0,     0,     0,     0,     0,   188,   188,   188,
   188,  1116,   418,   418,     0,   188,     0,     0,     7,     8,
     9,    10,     0,   233,   484,     0,     0,   584,     0,   143,
   143,   600,     0,     0,   585,     0,   609,  1116,  1116,  1116,
    83,    26,     0,   130,   131,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,  1217,    21,   586,     0,     0,
   598,     0,     0,     0,     0,     0,     0,   587,   188,    26,
     0,    27,    28,   142,   646,    80,     0,   588,     0,     0,
   589,   590,     0,   233,     0,   178,   143,   233,     0,     0,
     0,     0,     0,     0,  1230,   179,     0,   143,     0,     0,
   143,     0,     0,    32,     0,   143,     0,     0,   180,     0,
     0,   418,   418,   418,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   188,   188,     0,   188,     0,     0,
     0,     0,     0,  1075,   143,  1076,   143,     0,   143,   143,
   143,     0,     0,     0,   143,     0,  1082,     0,     0,   143,
   858,   860,   143,     0,     0,     0,     0,  1317,     0,     0,
     0,  1318,     0,   188,   922,   188,     0,   736,    83,     0,
   418,   418,     7,     8,     9,    10,   388,    12,    13,     0,
     0,   694,   104,    14,     0,     0,     0,     0,     0,     0,
     0,   858,   860,     0,     0,     0,  1334,    16,     0,    17,
    18,     0,     0,     0,     0,    20,   233,   233,   233,   233,
    21,     0,     0,     0,    23,     0,   585,     0,     0,     0,
     0,     0,     0,    26,     0,    27,    28,  1302,   127,   128,
    10,     0,     0,     0,     0,     0,     0,     0,   418,  1112,
     0,     0,     0,     0,     0,     0,     0,     0,     0,  1113,
     0,     0,     0,     0,     0,     0,     0,    32,     0,   588,
     0,     0,  1114,   590,     0,    21,   233,     0,   143,     0,
  1390,     0,     0,     0,  1391,  1116,     0,     0,    26,     0,
    27,    28,   143,   143,     0,   600,  1304,     0,     0,     0,
     0,     0,   881,     0,    30,     0,  1409,  1410,     0,     0,
     0,     0,     0,     0,    31,   609,     7,     8,     9,    10,
     0,   143,    32,     0,     0,     0,     0,    33,   542,   543,
   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
   554,   555,   556,   557,   558,   646,     0,     0,     0,     0,
     0,     0,     0,   126,    21,  1116,  1116,  1116,     0,     0,
     0,   143,   600,   143,   143,   223,   600,    26,     0,    27,
    28,     0,     0,  1372,   104,     0,     0,     0,     0,   188,
     0,     0,     0,   178,   736,     7,   127,   128,    10,     0,
     0,     0,     0,   179,     0,     0,  1075,  1076,   858,   860,
     0,    32,     0,   143,  1082,     0,   180,   600,     0,     0,
     0,     0,     0,     0,   143,   143,     0,   143,     0,     0,
     0,     0,     0,    21,     0,     0,   858,   860,     0,     0,
     0,     0,     0,     0,     0,     0,    26,     0,    27,    28,
     0,     0,     0,     0,     0,   134,     0,     0,    83,     0,
    83,     0,   147,     0,     0,  1007,    83,    83,     0,   127,
   128,     0,   148,   200,   201,   233,     0,    51,     0,    14,
    32,   233,     0,     0,     0,   149,     0,     0,   143,   143,
   143,     0,     0,     7,     8,     9,    10,     0,     0,     0,
   143,    20,     0,    51,    51,     0,   150,     0,    51,     0,
    23,     0,   585,     0,     0,    51,     0,     0,     0,    26,
     0,   130,   131,  1075,  1076,     0,  1082,     0,    51,     0,
    51,    21,     0,     0,     0,   586,     0,     0,     0,     0,
     0,     0,     0,     0,    26,   587,    27,    28,     0,     0,
     0,     0,     0,   239,     0,   588,     0,     0,   596,   590,
   442,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   443,     0,     0,   143,     0,   143,     0,     0,    32,     0,
     0,     0,   233,   444,     0,     0,   143,     0,   233,     0,
   881,   881,   881,     0,     0,     0,     0,   609,     0,     0,
     0,     0,     0,     0,     0,     0,   381,   381,     0,    51,
     0,     0,     0,    51,     0,   239,     0,    51,     0,     0,
   150,   150,   150,     0,     0,     0,     0,   233,     0,   233,
     0,   143,   143,   600,    51,   543,   544,   545,   546,   547,
   548,   549,   550,   551,   552,   553,   554,   555,   556,   557,
   558,    51,    51,   150,     0,     0,     0,     0,     0,     0,
   737,   239,     7,     8,   738,    10,   388,    12,    13,     0,
     0,     0,   881,    14,     7,     8,     9,    10,     0,     0,
    51,     0,     0,     0,     0,   233,     0,    16,     0,    17,
    18,    19,     0,     0,     0,    20,   736,     0,   233,     0,
    21,  1007,     0,     0,    23,   739,     0,   648,     0,     0,
   233,     0,    21,    26,     0,    27,    28,    51,     0,   740,
     0,   741,     0,     0,     0,    26,     0,    27,    28,    30,
     0,     0,     0,    83,     0,     0,     0,     0,     0,    31,
     0,   178,     0,   233,     0,   233,     0,    32,     0,     0,
     0,   179,    33,     0,     0,     0,     0,    78,     0,    32,
     0,     0,     0,     0,   180,     7,     8,     9,    10,   190,
    12,   191,     0,   233,     0,     0,    14,     0,   143,   143,
     0,   143,     0,    78,    78,     0,    78,   524,    78,     0,
    16,     0,    17,    18,     0,    78,     0,     0,    20,     0,
     0,     0,     0,    21,   381,     0,     0,    23,    78,     0,
    78,     0,   239,     0,     0,     0,    26,    51,    27,    28,
     0,     0,   192,     0,     0,     0,   143,   143,   143,   143,
   600,     0,    30,     0,   143,     0,     0,     0,     0,     0,
   736,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    32,   381,     0,     0,     0,    33,   881,   881,   881,     0,
     0,     0,     0,    51,     0,     0,     0,     0,     0,     0,
     0,     0,   736,     0,    51,     0,     0,    51,     0,     0,
     0,     0,    51,     0,     0,     0,     0,   143,     0,    78,
     0,     0,   143,    78,    83,     0,     0,    78,     0,     0,
    78,    78,    78,     0,     0,     0,     0,     0,     0,     0,
     0,    51,     0,    51,    78,   150,   150,   150,     0,     0,
     0,    51,     0,     0,     0,     0,    51,     0,     0,    51,
     0,    78,    78,    78,   576,     0,   285,   379,   380,    10,
     0,   577,     0,   143,   143,    51,   143,     0,   537,   538,
   539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
    78,   550,   551,   552,   553,   554,   555,   556,   557,   558,
     0,  1365,     0,     0,    21,   524,     0,     0,   524,     0,
     0,   578,   143,   600,   143,     0,     0,    26,     0,    27,
   304,     0,     0,   524,   524,   524,     0,    78,     0,     0,
     0,   233,     0,     0,     0,     0,     0,     0,   524,     0,
     0,     0,     0,     0,     8,     9,     0,     0,    12,    13,
     0,   579,     0,     0,    14,     0,     0,     0,     0,     0,
   439,   441,   445,     0,     0,     0,     0,     0,    16,     0,
    17,     0,     0,     0,     0,   737,    20,     7,     8,   738,
    10,   388,    12,    13,     0,    23,   239,     0,    14,     0,
     0,     0,     0,     0,    26,     0,   130,   131,   568,   524,
     0,     0,    16,     0,    17,    18,    19,     0,     0,     0,
    20,  -509,     0,     0,     0,    21,     0,     0,    51,    23,
   739,     0,   648,   608,   881,     0,     0,    78,    26,     0,
    27,    28,     0,   569,   740,     0,   741,     0,     0,     0,
     0,     0,   381,     0,    30,     0,     0,     0,     0,   381,
     0,     0,     0,     0,    31,     0,     0,     0,    51,    51,
    51,    51,    32,     0,   155,     0,     0,    33,     0,     0,
     0,     0,     0,    78,     0,     0,     0,     0,     0,     0,
     0,     0,     0,  -509,    78,     0,   189,    78,     0,     0,
     0,     0,    78,     0,   881,   881,   881,     0,     0,     0,
    51,     0,     0,     0,    51,     0,     0,     0,     0,     0,
     0,    51,    51,   233,    51,     0,     0,     0,   143,     0,
     0,    78,     0,    78,     0,    78,    78,    78,     0,     0,
     0,    78,     0,     0,     0,     0,    78,     0,     0,    78,
     0,     0,     0,     0,     0,    51,     0,    51,     0,     0,
     0,     0,    51,    51,    51,    78,     0,     0,     0,     0,
   737,     0,     7,     8,   738,    10,   388,    12,    13,     0,
     0,     0,     0,    14,     0,     0,     0,     0,   155,   155,
   155,   524,     0,     0,     0,     0,     0,    16,     0,    17,
    18,    19,     0,     0,     0,    20,  -510,     0,     0,     0,
    21,     0,     0,     0,    23,   739,     0,   648,     0,   189,
   189,   446,     0,    26,     0,    27,    28,     0,     0,   740,
   706,   741,   707,     0,   439,   441,   445,     0,     0,    30,
     0,     0,     0,     0,     0,   718,     0,     0,   189,    31,
     0,   127,   128,     0,     0,   200,   201,    32,     0,     0,
     0,    14,    33,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   187,     0,     0,     0,     0,   608,  -510,     0,
     0,     8,     9,    20,     0,    12,    13,   524,   524,   524,
     0,    14,    23,   239,   585,     0,     0,   242,     0,     0,
   246,    26,     0,   130,   131,    16,     0,    17,    78,     0,
     0,     0,     0,    20,     0,     0,     0,   586,     0,     0,
     0,   242,    23,   350,   497,     0,     0,   587,    51,    51,
   150,    26,     0,   130,   131,   239,     0,   588,     0,     0,
   589,   590,     0,     0,     0,     0,     0,     0,    78,    78,
    78,    78,     0,     0,     0,     0,     0,     0,   354,   356,
     0,     0,     0,     0,     0,     0,     0,     0,     0,  1143,
   834,     0,     0,     0,   593,   593,   593,   546,   547,   548,
   549,   550,   551,   552,   553,   554,   555,   556,   557,   558,
    78,     0,     0,     0,    78,   187,   187,   187,    51,     0,
     0,    78,    78,     0,    78,   452,   547,   548,   549,   550,
   551,   552,   553,   554,   555,   556,   557,   558,     0,   239,
     0,     0,     8,     9,   187,   388,    12,    13,     0,     0,
    51,   189,    14,     0,     0,    78,     0,    78,     0,     0,
     0,     0,    78,    78,    78,     0,    16,     0,    17,    18,
   246,     0,     0,     0,    20,     0,     0,     0,     0,     0,
     0,     0,     0,   647,   242,     0,   648,     0,     0,     0,
     0,     0,    26,     0,   130,   131,     0,     0,     0,   189,
     0,   189,     0,   446,   446,   446,     0,     0,     0,   189,
     0,     0,     0,     0,   189,     0,     0,   189,     0,     0,
   706,   707,   239,   718,   544,   545,   546,   547,   548,   549,
   550,   551,   552,   553,   554,   555,   556,   557,   558,     0,
     0,     0,     0,    51,    51,   150,   150,   150,     0,   239,
     0,    51,     0,     0,  -371,     8,     9,  -371,  -371,    12,
   231,  1004,     0,     0,     0,    14,     0,     0,     0,     0,
     0,     0,     0,  1143,  1143,  1143,   242,   246,     0,    16,
     0,    17,  -371,     0,     0,   527,     0,    20,     0,     0,
     0,     0,  -371,     0,   608,     0,    23,     0,   585,     0,
     0,     0,     0,     0,    51,    26,     0,   130,   131,    51,
     0,    51,     0,     0,     8,     9,     0,     0,    12,   231,
     0,   586,     0,     0,    14,     0,     0,   187,    78,    78,
    78,   587,     0,   843,     0,     0,     0,     0,    16,  -371,
    17,   588,     0,     0,   589,   590,    20,   593,   593,     0,
   593,     0,     0,     0,     0,    23,     0,   593,   654,     0,
    51,    51,     0,    51,    26,     0,   130,   131,     0,  1145,
     0,     0,     0,     0,     0,   187,   189,   187,     0,   187,
   187,   187,  1432,     0,     0,   187,     0,     0,     0,     0,
   187,     0,     0,   187,     0,     0,     0,     0,    78,    51,
    51,    51,     0,     0,     0,     0,     0,   696,     0,     0,
     0,     0,     0,     0,     0,     0,   919,     0,   919,   919,
     0,   593,     0,     0,     0,     0,     0,   439,   441,   445,
    78,     0,  1433,   537,   538,   539,   540,   541,   542,   543,
   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
   554,   555,   556,   557,   558,     0,     0,     0,   919,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   445,   189,
   189,     0,   189,   777,     0,     0,   780,     0,     0,     0,
   782,   783,   785,   786,   787,     0,     0,     0,     0,     0,
     0,     0,     0,   527,     0,     0,     0,  1004,     0,     0,
     0,     0,     0,     0,     0,     0,   804,     0,     0,     0,
   189,  1143,     0,     0,     0,     0,     0,   591,   591,   591,
     0,     0,     0,    78,    78,    78,    78,    78,     0,     0,
     0,    78,     0,   497,   497,   497,   242,   246,     0,     0,
     0,     0,     0,     0,     0,   593,     8,     9,     0,   190,
    12,   191,   187,  1145,  1145,  1145,    14,     0,     0,     0,
   861,     0,     0,     0,     0,     0,     0,   861,     0,     0,
    16,     0,    17,    18,     0,     0,    76,     0,    20,     0,
     0,  1143,  1143,  1143,    78,     0,     0,    23,     0,    78,
     0,    78,   187,     0,   187,   187,    26,     0,   130,   131,
     0,     0,   141,   145,     0,    51,     0,    76,     0,     0,
     0,     0,     0,     0,    76,     0,     0,     0,   593,     0,
   593,     0,   706,   707,   439,   441,   445,     0,     0,   198,
   718,   593,     0,     0,   187,   593,   593,   593,     0,     0,
    78,    78,     0,    78,     0,   187,   187,     0,   187,     0,
     0,     0,   439,   441,   445,     0,     0,     0,     0,     0,
     0,     8,     9,     0,   388,    12,    13,     0,     0,   694,
     0,    14,   654,   246,     0,     0,   919,   919,  1117,    78,
    78,    78,     0,  1308,     0,    16,   187,    17,    18,     0,
     0,     0,     0,    20,     0,     0,     0,     0,     0,     0,
     0,     0,    23,     0,     0,     0,     0,     0,   393,     0,
     0,    26,   396,   130,   131,     0,   398,  1117,     0,     0,
     0,     7,     8,     9,    10,   199,   200,   201,     0,     0,
   696,     0,    14,    76,     0,     0,   696,     0,     0,   706,
   707,     0,   718,     0,     0,     0,   189,     0,     0,    18,
   141,   145,     0,     0,    20,     0,     0,     0,     0,    21,
     0,     0,     0,    23,     0,   585,     0,     0,     0,     0,
   591,   591,    26,   591,    27,    28,     0,     0,     0,     0,
   878,     0,     0,     0,     0,     0,     0,     0,   915,     0,
     0,  1145,     0,     0,     0,     0,     0,     0,   916,     0,
     0,     0,     0,     0,  1056,     0,    32,     0,   588,     0,
     0,   917,   590,     0,     0,     0,   485,   242,   246,   242,
     0,     0,     0,   843,   843,     0,   843,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   804,     0,   591,
     0,   591,   591,   696,   591,     0,     0,   861,     0,     0,
     0,     0,   187,   187,  1115,     0,     0,     0,     0,   242,
     0,  1145,  1145,  1145,     0,     0,     0,     0,     0,     0,
     0,   919,   919,  1117,  1117,  1117,     0,     0,     0,   919,
     0,   591,   654,     0,  1108,    78,     0,     0,   861,     0,
   445,     0,     0,  1115,     0,     0,     0,     0,     0,     0,
     0,  1117,  1117,  1117,     8,     9,     0,   388,    12,    13,
     0,     0,   694,     0,    14,     0,   617,     0,     0,     0,
     0,     0,   187,     0,     0,     0,     0,   861,    16,     0,
    17,    18,   189,     0,     0,     0,    20,     0,     0,     0,
  1149,     0,     0,   452,     0,    23,  1155,   585,     0,     0,
     0,     0,     0,   696,    26,     0,   130,   131,     0,     0,
   439,   441,   445,     0,     0,   696,     0,     0,   591,     0,
   586,     0,     0,   669,     0,     0,   670,     0,     0,     0,
   587,   672,     0,     0,     0,     0,   102,     0,   919,   919,
   588,   919,     0,   589,   590,   121,   102,     0,   696,     0,
   696,     0,   102,   102,     0,   102,     0,     0,     0,     0,
   396,     0,   398,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   485,   242,   189,  1203,   189,
     0,     0,     0,     0,     0,     0,     0,   220,     0,     0,
     0,   591,     0,   591,   754,     0,     0,   187,   187,   187,
   187,  1115,     0,  1229,   591,   187,     0,     0,   878,   878,
   878,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,  1115,  1115,  1115,
     0,     0,     0,     0,     0,   861,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   374,     0,   121,   591,
   591,   591,     0,     0,     0,   102,   102,     0,   187,     0,
     0,     0,   102,   861,   102,   102,   102,     0,     0,   102,
   102,   102,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   446,
   878,     0,     0,   737,     0,     7,     8,   738,    10,   388,
    12,    13,     0,     0,     0,     0,    14,     0,     0,     0,
     0,     0,     0,     0,   187,   187,     0,   187,     0,     0,
    16,     0,    17,    18,    19,     0,     0,     0,    20,  -512,
     0,     0,     0,    21,     0,     0,     0,    23,   739,     0,
   648,     0,     0,     0,   467,   102,    26,     0,    27,    28,
     0,     0,   740,   187,   741,   187,     0,     0,     0,   446,
   446,   446,    30,     0,     0,     0,   102,     0,     0,     0,
     0,     0,    31,     0,     0,     0,     0,     0,   921,     0,
    32,     0,     0,   189,     0,    33,     8,     9,     0,   388,
    12,    13,     0,     0,  1500,     0,    14,     0,     0,     0,
     0,  -512,     0,     0,     0,   102,  1149,     0,     0,     0,
    16,     0,    17,    18,     0,     0,     0,     0,    20,     0,
     0,     0,     0,   962,     0,     0,     0,    23,     0,     0,
   669,   670,     0,   672,     0,     0,    26,     0,   130,   131,
     0,     0,     0,     0,   591,   591,   591,   591,   591,     0,
     0,     0,   591,   102,     0,   102,   102,     7,     8,     9,
    10,   199,   200,   201,   754,  1115,   754,     0,    14,     0,
     0,  1005,  1012,   754,   878,   878,   878,     0,     0,     0,
     0,     0,     0,     0,     0,    18,     0,     0,     8,     9,
    20,     0,    12,    13,     0,    21,     0,     0,    14,    23,
   102,   585,     0,     0,     0,     0,     0,     0,    26,     0,
    27,    28,    16,     0,    17,     0,     0,     0,     0,   102,
    20,     0,     0,   102,   915,     0,   102,     0,     0,    23,
     0,   102,     0,     0,   916,  1115,  1115,  1115,    26,     0,
   130,   131,    32,     0,   588,     0,     0,   956,   590,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   187,
     0,   591,   591,     0,   591,     0,     0,     0,     0,     0,
     0,   527,     0,   519,     0,   285,     8,     9,    10,   388,
    12,   286,   287,   288,   694,   289,    14,     0,   654,     0,
     0,   102,     0,   729,     0,     0,     0,     0,     0,     0,
    16,   290,    17,    18,    19,     0,   291,   292,    20,     0,
   293,   294,   295,    21,   296,   297,     0,    23,   102,   585,
     0,   298,   299,   300,   301,   302,    26,     0,    27,   304,
  -296,     0,     0,   305,     0,     0,     0,   141,   145,   306,
     0,     0,   874,     0,     0,     0,     0,     0,     0,     0,
   308,   309,   875,     0,     0,     0,     0,     0,   311,   312,
   313,     0,   588,     0,     0,   876,   590,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    18,     0,
     0,     0,   315,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   102,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   102,   102,  1005,   102,   102,
   537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
   547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
   557,   558,     0,     0,     0,     0,     0,     0,     0,   754,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   102,     0,     0,     0,     0,     0,     0,   102,   121,
   684,     0,   795,   796,   797,    10,     0,    12,   501,   287,
   288,   220,   289,    14,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    16,   290,    17,
   729,    19,     0,   291,   292,    20,     0,   293,   294,   295,
    21,   296,   297,     0,    23,     0,     0,     0,   298,   299,
   300,   301,   302,    26,     0,   798,   799,   685,     0,     0,
   305,     0,   396,   398,     0,     0,   306,     0,     0,   307,
   485,     0,     0,     0,     0,     0,     0,   308,   309,   310,
     0,     0,     0,     0,     0,   311,   312,   313,   729,     0,
     0,   102,   314,   800,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   948,   315,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,  1309,   102,   102,   102,     0,  1309,     0,
   754,     0,     0,     0,     0,     0,   102,   537,   538,   539,
   540,   541,   542,   543,   544,   545,   546,   547,   548,   549,
   550,   551,   552,   553,   554,   555,   556,   557,   558,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1403,     0,  -463,  -463,  -463,  -463,  -463,  -463,  -463,   669,
   670,  -463,   672,  -463,     0,  1193,     0,     0,     0,     0,
     0,     0,     0,     0,  -463,     0,  -463,     0,     0,     0,
  -463,     0,     0,     0,     0,  -463,     0,     0,     0,   102,
  -463,   102,     0,     0,  -463,     0,  -463,     0,     0,  1377,
     0,     0,   102,  -463,     0,  -463,  -463,  -463,  -463,  -463,
     0,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,
  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,
  -463,  -463,  -463,  -463,     0,  -463,  -463,  -463,     0,  -463,
  -463,  -463,  -463,  -463,  -463,     0,  -463,     0,     0,     0,
     0,  1404,     0,     0,     0,     0,  -463,  -463,  -463,     0,
  -463,     0,     0,     0,     0,  1380,     0,  1240,  1241,  1242,
    10,   388,    12,   286,   287,   288,     0,   289,    14,  1243,
     0,  1244,  1245,  1246,  1247,  1248,  1249,  1250,  1251,  1252,
  1253,    15,    16,   290,    17,    18,    19,     0,   291,   292,
    20,     0,   293,   294,   295,    21,   296,   297,  1254,    23,
  1255,     0,   729,   298,   299,   300,   301,   302,    26,     0,
  1256,   304,   681,     0,  1257,   305,     0,     0,     0,     0,
     0,   306,     0,     0,   307,     0,     0,     0,     0,   102,
     0,     0,   308,   309,   310,     0,     0,     0,     0,     0,
   311,   312,   313,     0,     0,     0,     0,   314,     0,  1258,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,  1381,   315,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   102,   102,     0,   102,  1239,     0,
  1240,  1241,  1242,    10,   388,    12,   286,   287,   288,     0,
   289,    14,  1243,     0,  1244,  1245,  1246,  1247,  1248,  1249,
  1250,  1251,  1252,  1253,    15,    16,   290,    17,    18,    19,
     0,   291,   292,    20,     0,   293,   294,   295,    21,   296,
   297,  1254,    23,  1255,     0,     0,   298,   299,   300,   301,
   302,    26,     0,  1256,   304,   681,   729,  1257,   305,     0,
     0,     0,     0,     0,   306,     0,     0,   307,     0,     0,
     0,     0,     0,     0,     0,   308,   309,   310,     0,     0,
     0,     0,     0,   311,   312,   313,     0,     0,   729,     0,
   314,   519,  1258,     7,     8,     9,    10,   388,    12,   286,
   287,   288,   694,   289,    14,     0,   102,   315,   102,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   290,
    17,    18,    19,     0,   291,   292,    20,     0,   293,   294,
   295,    21,   296,   297,     0,    23,     0,   585,     0,   298,
   299,   300,   301,   302,    26,     0,    27,    28,  -296,     0,
     0,   305,     0,     0,     0,     0,     0,   306,     0,     0,
  1140,     0,     0,     0,     0,     0,     0,     0,   308,   309,
  1141,     0,     0,     0,     0,     0,   311,   312,   313,     0,
   588,     0,     0,  1142,   590,   693,     0,   285,     8,     9,
    10,   388,    12,   286,   287,   288,   694,   289,    14,     0,
   315,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    16,   290,    17,    18,    19,     0,   291,   292,
    20,     0,   293,   294,   295,    21,   296,   297,     0,    23,
     0,     0,     0,   298,   299,   300,   301,   302,    26,     0,
    27,   304,     0,     0,     0,   305,     0,     0,     0,     0,
     0,   306,     0,     0,   307,     0,     0,     0,     0,     0,
     0,     0,   308,   309,   310,     0,     0,     0,     0,     0,
   311,   312,   313,     0,     0,     0,   807,   314,   285,     8,
     9,    10,   388,    12,   286,   287,   288,     0,   289,    14,
     0,     0,  -779,     0,   315,     0,     0,     0,     0,     0,
     0,     0,     0,    16,   290,    17,    18,    19,     0,   291,
   292,    20,     0,   293,   294,   295,    21,   296,   297,     0,
    23,     0,     0,     0,   298,   299,   300,   301,   302,    26,
     0,    27,   304,  1477,     0,  -769,   305,     0,     0,     0,
     0,     0,   306,     0,     0,   307,     0,     0,     0,     0,
     0,     0,     0,   308,   309,   310,     0,     0,     0,     0,
     0,   311,   312,   313,     0,     0,     0,   684,   314,   795,
   796,   797,    10,     0,    12,   501,   287,   288,     0,   289,
    14,     0,     0,     0,     0,   315,     0,     0,     0,     0,
     0,     0,     0,     0,    16,   290,    17,     0,    19,     0,
   291,   292,    20,     0,   293,   294,   295,    21,   296,   297,
     0,    23,     0,     0,     0,   298,   299,   300,   301,   302,
    26,     0,   798,   799,   685,     0,     0,   305,     0,     0,
     0,     0,     0,   306,     0,     0,   307,     0,     0,     0,
     0,     0,     0,     0,   308,   309,   310,     0,     0,     0,
     0,     0,   311,   312,   313,     0,     0,     0,     0,   314,
   800,   684,     0,   795,   796,   797,    10,     0,    12,   501,
   287,   288,     0,   289,    14,     0,   315,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   290,
    17,     0,    19,     0,   291,   292,    20,     0,   293,   294,
   295,    21,   296,   297,     0,    23,     0,     0,     0,   298,
   299,   300,   301,   302,    26,     0,   798,   799,   685,     0,
     0,   305,     0,     0,     0,     0,     0,   306,     0,     0,
   307,     0,     0,     0,     0,     0,     0,     0,   308,   309,
   310,     0,     0,     0,     0,     0,   311,   312,   313,     0,
     0,     0,   684,   314,   795,   796,   797,    10,     0,    12,
   501,   287,   288,     0,   289,    14,     0,     0,     0,  -467,
   315,     0,     0,     0,     0,     0,     0,     0,     0,    16,
   290,    17,     0,    19,     0,   291,   292,    20,     0,   293,
   294,   295,    21,   296,   297,     0,    23,     0,     0,     0,
   298,   299,   300,   301,   302,    26,     0,   798,   799,   685,
     0,     0,   305,     0,     0,     0,     0,     0,   306,     0,
     0,   307,     0,     0,     0,     0,     0,     0,     0,   308,
   309,   310,     0,     0,     0,     0,     0,   311,   312,   313,
     0,     0,     0,   684,   314,   285,     8,     9,    10,     0,
    12,   501,   287,   288,     0,   289,    14,     0,     0,     0,
  1278,   315,     0,     0,     0,     0,     0,     0,     0,     0,
    16,   290,    17,     0,    19,     0,   291,   292,    20,     0,
   293,   294,   295,    21,   296,   297,     0,    23,     0,     0,
     0,   298,   299,   300,   301,   302,    26,     0,    27,   304,
   685,     0,     0,   305,     0,     0,     0,     0,     0,   306,
     0,     0,   307,     0,     0,     0,     0,     0,     0,     0,
   308,   309,   310,     0,     0,     0,     0,     0,   311,   312,
   313,     0,     0,     0,     0,   314,     0,   519,     0,   285,
     8,     9,    10,  1282,    12,   286,   287,   288,     0,   289,
    14,     0,   315,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    16,   290,    17,     0,    19,     0,
   291,   292,    20,     0,   293,   294,   295,    21,   296,   297,
     0,    23,     0,     0,     0,   298,   299,   300,   301,   302,
    26,     0,    27,   304,  -296,     0,     0,   305,     0,     0,
     0,     0,     0,   306,     0,     0,   520,     0,     0,     0,
     0,     0,     0,     0,   308,   309,   521,     0,     0,     0,
     0,     0,   311,   312,   313,     0,     0,     0,   684,   522,
   285,     8,     9,    10,     0,    12,   501,   287,   288,     0,
   289,    14,     0,     0,     0,     0,   315,     0,     0,     0,
     0,     0,     0,     0,     0,    16,   290,    17,     0,    19,
     0,   291,   292,    20,     0,   293,   294,   295,    21,   296,
   297,     0,    23,     0,     0,     0,   298,   299,   300,   301,
   302,    26,     0,    27,   304,   685,     0,     0,   305,     0,
     0,     0,     0,     0,   306,     0,     0,   307,     0,     0,
     0,     0,     0,     0,     0,   308,   309,   310,     0,     0,
     0,     0,     0,   311,   312,   313,     0,     0,     0,   807,
   314,   285,     8,     9,    10,     0,    12,   501,   287,   288,
     0,   289,    14,     0,     0,     0,     0,   315,     0,     0,
     0,     0,     0,     0,     0,     0,    16,   290,    17,     0,
    19,     0,   291,   292,    20,     0,   293,   294,   295,    21,
   296,   297,     0,    23,     0,     0,     0,   298,   299,   300,
   301,   302,    26,     0,    27,   304,     0,     0,     0,   305,
  -769,     0,     0,     0,     0,   306,     0,     0,   307,     0,
     0,     0,     0,     0,     0,     0,   308,   309,   310,     0,
     0,     0,     0,     0,   311,   312,   313,     0,     0,     0,
   519,   314,     7,     8,     9,    10,     0,    12,   286,   287,
   288,     0,   289,    14,     0,     0,     0,     0,   315,     0,
     0,     0,     0,     0,     0,     0,     0,    16,   290,    17,
     0,    19,     0,   291,   292,    20,     0,   293,   294,   295,
    21,   296,   297,     0,    23,     0,     0,     0,   298,   299,
   300,   301,   302,    26,     0,    27,    28,  -296,     0,     0,
   305,     0,     0,     0,     0,     0,   306,     0,     0,  1448,
     0,     0,     0,     0,     0,     0,     0,   308,   309,  1449,
     0,     0,     0,     0,     0,   311,   312,   313,     0,     0,
     0,  1529,  1450,   285,     8,     9,    10,     0,    12,   286,
   287,   288,     0,   289,    14,     0,     0,     0,     0,   315,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   290,
    17,     0,    19,     0,   291,   292,    20,     0,   293,   294,
   295,    21,   296,   297,     0,    23,     0,     0,     0,   298,
   299,   300,   301,   302,    26,     0,    27,   304,     0,     0,
  -183,   305,     0,     0,     0,     0,     0,   306,     0,     0,
   307,     0,     0,     0,     0,     0,     0,     0,   308,   309,
   310,     0,     0,     0,     0,     0,   311,   312,   313,     0,
     0,     0,   807,   314,   285,     8,     9,    10,     0,    12,
   501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
   315,     0,     0,     0,     0,     0,     0,     0,     0,    16,
   290,    17,     0,    19,     0,   291,   292,    20,     0,   293,
   294,   295,    21,   296,   297,     0,    23,     0,     0,     0,
   298,   299,   300,   301,   302,    26,     0,    27,   304,     0,
     0,     0,   305,     0,     0,     0,     0,     0,   306,   248,
     0,   307,     8,     9,     0,     0,    12,    13,     0,   308,
   309,   310,    14,     0,     0,     0,     0,   311,   312,   313,
     0,     0,     0,     0,   314,     0,    16,     0,    17,     0,
     0,     0,     0,     0,    20,     0,   249,   250,     0,  -769,
     0,   315,     0,    23,     0,   251,     0,     0,     0,     0,
     0,     0,    26,     0,   130,   131,     0,   252,     0,     0,
     0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
   262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
   272,   273,     0,     0,   274,   275,   276,     0,     0,   277,
     0,   893,   278,   285,     8,     9,    10,     0,    12,   501,
   287,   288,     0,   289,    14,     0,     0,     0,   279,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   290,
    17,     0,    19,     0,   291,   292,    20,     0,   293,   294,
   295,    21,   296,   297,     0,    23,     0,     0,     0,   298,
   299,   300,   301,   302,    26,     0,    27,   304,     0,     0,
     0,   305,     0,     0,     0,     0,     0,   306,     0,     0,
   307,     0,     0,     0,     0,     0,     0,     0,   308,   309,
   310,     0,     0,     0,     0,     0,   311,   312,   313,     0,
     0,     0,   895,   314,   285,     8,     9,    10,     0,    12,
   501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
   315,     0,     0,     0,     0,     0,     0,     0,     0,    16,
   290,    17,     0,    19,     0,   291,   292,    20,     0,   293,
   294,   295,    21,   296,   297,     0,    23,     0,     0,     0,
   298,   299,   300,   301,   302,    26,     0,    27,   304,     0,
     0,     0,   305,     0,     0,     0,     0,     0,   306,     0,
     0,   307,     0,     0,     0,     0,     0,     0,     0,   308,
   309,   310,     0,     0,     0,     0,     0,   311,   312,   313,
     0,     0,     0,  1461,   314,   285,     8,     9,    10,     0,
    12,   501,   287,   288,     0,   289,    14,     0,     0,     0,
     0,   315,     0,     0,     0,     0,     0,     0,     0,     0,
    16,   290,    17,     0,    19,     0,   291,   292,    20,     0,
   293,   294,   295,    21,   296,   297,     0,    23,     0,     0,
     0,   298,   299,   300,   301,   302,    26,     0,    27,   304,
     0,     0,     0,   305,     0,     0,     0,     0,     0,   306,
     0,     0,   307,     0,     0,     0,     0,     0,     0,     0,
   308,   309,   310,     0,     0,     0,     0,     0,   311,   312,
   313,   285,     8,     9,    10,   314,    12,   501,   287,   288,
     0,   289,    14,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   315,     0,     0,     0,    16,   290,    17,     0,
    19,     0,   291,   292,    20,     0,   293,   294,   295,    21,
   296,   297,     0,    23,     0,     0,     0,   298,   299,   300,
   301,   302,    26,     0,    27,   304,     0,     0,     0,   305,
     0,     0,     0,     0,     0,   306,     0,   737,   307,     7,
     8,   738,    10,   388,    12,    13,   308,   309,   310,     0,
    14,     0,     0,     0,   311,   312,   313,     0,     0,     0,
     0,   314,     0,     0,    16,     0,    17,    18,    19,     0,
     0,     0,    20,  -511,     0,     0,     0,    21,   315,   846,
     0,    23,   739,     0,   648,     0,     0,     0,     0,     0,
    26,     0,    27,    28,     0,     0,   740,     0,   741,     0,
     0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
     0,     0,     0,     0,    32,     0,     0,     0,     0,    33,
     0,     0,  1240,  1241,  1242,    10,   388,    12,   286,   287,
   288,     0,   289,    14,  1243,  -511,  1244,  1245,  1246,  1247,
  1248,  1249,  1250,  1251,  1252,  1253,    15,    16,   290,    17,
    18,    19,     0,   291,   292,    20,     0,   293,   294,   295,
    21,   296,   297,  1254,    23,  1255,     0,     0,   298,   299,
   300,   301,   302,    26,     0,  1256,   304,   681,     0,  1257,
   305,     0,     0,     0,     0,     0,   306,     0,     0,   307,
     0,     0,     0,     0,     0,     0,     0,   308,   309,   310,
     0,     0,     0,     0,     0,   311,   312,   313,     0,     0,
     0,     0,   314,     0,  1258,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,  1385,   315,
  1240,  1241,  1242,    10,   388,    12,   286,   287,   288,     0,
   289,    14,  1243,     0,  1244,  1245,  1246,  1247,  1248,  1249,
  1250,  1251,  1252,  1253,    15,    16,   290,    17,    18,    19,
     0,   291,   292,    20,     0,   293,   294,   295,    21,   296,
   297,  1254,    23,  1255,     0,     0,   298,   299,   300,   301,
   302,    26,     0,  1256,   304,   681,     0,  1257,   305,     0,
     0,     0,     0,     0,   306,     0,     0,   307,     0,     0,
     0,     0,     0,     0,     0,   308,   309,   310,     0,     0,
     0,     0,     0,   311,   312,   313,     0,     0,     0,     0,
   314,     0,  1258,     0,  1240,  1241,  1242,    10,   388,    12,
   286,   287,   288,     0,   289,    14,  1243,   315,  1244,  1245,
  1246,  1247,  1248,  1249,  1250,  1251,  1252,  1253,    15,    16,
   290,    17,    18,    19,     0,   291,   292,    20,     0,   293,
   294,   295,    21,   296,   297,  1254,    23,  1255,     0,     0,
   298,   299,   300,   301,   302,    26,     0,  1256,   304,  1506,
     0,  1257,   305,     0,     0,     0,     0,     0,   306,     0,
     0,   307,     0,     0,     0,     0,     0,     0,     0,   308,
   309,   310,     0,     0,     0,     0,     0,   311,   312,   313,
     0,     0,     0,     0,   314,     0,  1258,     0,  1240,  1241,
  1242,    10,   388,    12,   286,   287,   288,     0,   289,    14,
  1243,   315,  1244,  1245,  1246,  1247,  1248,  1249,  1250,  1251,
  1252,  1253,    15,    16,   290,    17,    18,    19,     0,   291,
   292,    20,     0,   293,   294,   295,    21,   296,   297,  1254,
    23,  1255,     0,     0,   298,   299,   300,   301,   302,    26,
     0,  1256,   304,     0,     0,  1257,   305,     0,     0,     0,
     0,     0,   306,     0,     0,   307,     0,     0,     0,     0,
     0,     0,     0,   308,   309,   310,     0,     0,     0,     0,
     0,   311,   312,   313,     0,     0,     0,     0,   314,     0,
  1258,   285,     8,     9,    10,   388,    12,   286,   287,   288,
   694,   289,    14,     0,     0,   315,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    16,   290,    17,    18,
    19,     0,   291,   292,    20,     0,   293,   294,   295,    21,
   296,   297,     0,    23,     0,   585,     0,   298,   299,   300,
   301,   302,    26,     0,    27,   304,     0,     0,     0,   305,
     0,     0,     0,     0,     0,   306,     0,     0,   874,     0,
     0,     0,     0,     0,     0,     0,   308,   309,   875,     0,
     0,     0,     0,     0,   311,   312,   313,     0,   588,     0,
     0,   876,   590,     7,     8,     9,    10,   388,    12,   286,
   287,   288,   694,   289,    14,     0,     0,     0,   315,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   290,
    17,    18,    19,     0,   291,   292,    20,     0,   293,   294,
   295,    21,   296,   297,     0,    23,     0,   585,     0,   298,
   299,   300,   301,   302,    26,     0,    27,    28,     0,     0,
     0,   305,     0,     0,     0,     0,     0,   306,     0,     0,
  1140,     0,     0,     0,     0,     0,     0,     0,   308,   309,
  1141,     0,     0,     0,     0,     0,   311,   312,   313,     0,
   588,     0,     0,  1142,   590,   285,     8,     9,    10,     0,
    12,   286,   287,   288,     0,   289,    14,     0,     0,     0,
   315,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    16,   290,    17,     0,    19,     0,   291,   292,    20,     0,
   293,   294,   295,    21,   296,   297,     0,    23,     0,   585,
     0,   298,   299,   300,   301,   302,    26,     0,    27,   304,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   306,
     0,     0,   874,     0,     0,     0,     0,     0,     0,     0,
   308,   309,   875,     0,     0,     0,     0,     0,   311,   312,
   313,     0,   588,     0,     0,   876,   590,     7,     8,     9,
    10,     0,    12,   286,   287,   288,     0,   289,    14,     0,
     0,     0,   315,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    16,   290,    17,     0,    19,     0,   291,   292,
    20,     0,   293,   294,   295,    21,   296,   297,     0,    23,
     0,   585,     0,   298,   299,   300,   301,   302,    26,     0,
    27,    28,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   306,     0,     0,  1140,     0,     0,     0,     0,     0,
     0,     0,   308,   309,  1141,     0,     0,     0,     0,     0,
   311,   312,   313,     0,   588,     0,     0,  1142,   590,   285,
     8,     9,    10,     0,    12,   501,   287,   288,     0,   289,
    14,     0,     0,     0,   315,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    16,   290,    17,     0,    19,     0,
   291,   292,    20,     0,   293,   294,   295,    21,   296,   297,
     0,    23,     0,     0,     0,   298,   299,   300,   301,   302,
    26,     0,    27,   304,     0,     0,  1358,   305,     0,     0,
     0,     0,     0,   306,     0,     0,   307,     0,     0,     0,
     0,     0,     0,     0,   308,   309,   310,     0,     0,     0,
     0,     0,   311,   312,   313,     0,     0,     0,     0,   314,
   285,     8,     9,    10,   388,    12,   286,   287,   288,     0,
   289,    14,     0,     0,     0,     0,   315,     0,     0,     0,
     0,     0,     0,     0,     0,    16,   290,    17,    18,    19,
     0,   291,   292,    20,     0,   293,   294,   295,    21,   296,
   297,     0,    23,     0,     0,     0,   298,   299,   300,   301,
   302,    26,     0,    27,   304,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   306,     0,     0,   307,     0,     0,
     0,     0,     0,     0,     0,   308,   309,   310,     0,     0,
     0,     0,     0,   311,   312,   313,   285,     8,     9,    10,
   314,    12,   286,   287,   288,     0,   289,    14,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   315,     0,     0,
     0,    16,   290,    17,     0,    19,     0,   291,   292,    20,
     0,   293,   294,   295,    21,   296,   297,     0,    23,     0,
     0,     0,   298,   299,   300,   301,   302,    26,     0,   303,
   304,     0,     0,     0,   305,     0,     0,     0,     0,     0,
   306,     0,     0,   307,     0,     0,     0,     0,     0,     0,
     0,   308,   309,   310,     0,     0,     0,     0,     0,   311,
   312,   313,   285,     8,     9,    10,   314,    12,   286,   287,
   288,     0,   289,    14,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   315,     0,     0,     0,    16,   290,    17,
     0,    19,     0,   291,   292,    20,     0,   293,   294,   295,
    21,   296,   297,     0,    23,     0,     0,     0,   298,   299,
   300,   301,   302,    26,     0,    27,   304,     0,     0,     0,
   305,     0,     0,     0,     0,     0,   306,     0,     0,   307,
     0,     0,     0,     0,     0,     0,     0,   308,   309,   310,
     0,     0,     0,     0,     0,   311,   312,   313,   285,     8,
     9,    10,   314,    12,   501,   287,   288,     0,   289,    14,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   315,
     0,     0,     0,    16,   290,    17,     0,    19,     0,   291,
   292,    20,     0,   293,   294,   295,    21,   296,   297,     0,
    23,     0,     0,     0,   298,   299,   300,   301,   302,    26,
     0,    27,   304,     0,     0,     0,   305,     0,     0,     0,
     0,     0,   306,     0,     0,   307,     0,     0,     0,     0,
     0,     0,     0,   308,   309,   310,     0,     0,     0,     0,
     0,   311,   312,   313,   285,     8,     9,    10,   314,    12,
   501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   315,     0,     0,     0,    16,
   290,    17,     0,    19,     0,   291,   292,    20,     0,   293,
   294,   295,    21,   296,   297,     0,    23,     0,     0,     0,
   298,   299,   300,   301,   302,    26,     0,    27,   304,   534,
     0,     0,     0,     0,     0,     0,     0,     0,   306,     0,
     0,   307,     0,     0,     0,     0,     0,     0,     0,   308,
   309,   310,     0,     0,     0,     0,     0,   311,   312,   313,
   285,     8,     9,    10,   535,    12,   501,   287,   288,     0,
   289,    14,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   315,     0,     0,     0,    16,   290,    17,     0,    19,
     0,   291,   292,    20,     0,   293,   294,   295,    21,   296,
   297,     0,    23,     0,     0,     0,   298,   299,   300,   301,
   302,    26,     0,    27,   304,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   306,     0,     0,   307,     0,     0,
     0,     0,     0,     0,     0,   308,   309,   310,     0,     0,
     0,     0,     0,   311,   312,   313,     0,     0,     0,     0,
   314,   573,   285,     8,     9,    10,     0,    12,   501,   287,
   288,     0,   289,    14,     0,     0,     0,   315,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    16,   290,    17,
     0,    19,     0,   291,   292,    20,     0,   293,   294,   295,
    21,   296,   297,     0,    23,     0,     0,     0,   298,   299,
   300,   301,   302,    26,     0,    27,   304,     0,     0,     0,
   305,     0,     0,     0,     0,     0,   306,     0,     0,   520,
     0,     0,     0,     0,     0,     0,     0,   308,   309,   521,
     0,     0,     0,     0,     0,   311,   312,   313,  1101,     8,
     9,    10,   522,    12,   501,   287,   288,     0,   289,    14,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   315,
     0,     0,     0,    16,   290,    17,     0,    19,     0,   291,
   292,    20,     0,   293,   294,   295,    21,   296,   297,     0,
    23,     0,     0,     0,   298,   299,   300,   301,   302,    26,
     0,    27,   304,     0,     0,     0,   305,     0,     0,     0,
     0,     0,   306,     0,     0,   307,     0,     0,     0,     0,
     0,     0,     0,   308,   309,   310,     0,     0,     0,     0,
     0,   311,   312,   313,     7,     8,     9,    10,   314,    12,
   501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   315,     0,     0,     0,    16,
   290,    17,     0,    19,     0,   291,   292,    20,     0,   293,
   294,   295,    21,   296,   297,     0,    23,     0,     0,     0,
   298,   299,   300,   301,   302,    26,     0,    27,    28,     0,
     0,     0,   305,     0,     0,     0,     0,     0,   306,     0,
     0,  1448,     0,     0,     0,     0,     0,     0,     0,   308,
   309,  1449,     0,     0,     0,     0,     0,   311,   312,   313,
   285,     8,     9,    10,  1450,    12,   501,   287,   288,     0,
   289,    14,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   315,     0,     0,     0,    16,   290,    17,     0,    19,
     0,   291,   292,    20,     0,   293,   294,   295,    21,   296,
   297,     0,    23,     0,     0,     0,   298,   299,   300,   301,
   302,    26,     0,    27,   304,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   306,     0,     0,   307,     0,     0,
     0,     0,     0,     0,     0,   308,   309,   310,     0,     0,
     0,     0,     0,   311,   312,   313,   285,     8,     9,    10,
   502,    12,   501,   287,   288,     0,   289,    14,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   315,     0,     0,
     0,    16,   290,    17,     0,    19,     0,   291,   292,    20,
     0,   293,   294,   295,    21,   296,   297,     0,    23,     0,
     0,     0,   298,   299,   300,   301,   302,    26,     0,    27,
   304,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   306,     0,     0,   307,     0,     0,     0,     0,     0,     0,
     0,   308,   309,   310,     0,     0,     0,     0,     0,   311,
   312,   313,   285,     8,     9,    10,   505,    12,   501,   287,
   288,     0,   289,    14,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   315,     0,     0,     0,    16,   290,    17,
     0,    19,     0,   291,   292,    20,     0,   293,   294,   295,
    21,   296,   297,     0,    23,     0,     0,     0,   298,   299,
   300,   301,   302,    26,     0,    27,   304,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   306,     0,     0,   307,
     0,     0,     0,     0,     0,     0,     0,   308,   309,   310,
     0,     0,     0,     0,     0,   311,   312,   313,   285,     8,
     9,    10,   314,    12,   501,   287,   288,     0,   289,    14,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   315,
     0,     0,     0,    16,   290,    17,     0,    19,     0,   291,
   292,    20,     0,   293,   294,   295,    21,   296,   297,     0,
    23,     0,     0,     0,   298,   299,   300,   301,   302,    26,
     0,    27,   304,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   306,     0,     0,   520,     0,     0,     0,     0,
     0,     0,     0,   308,   309,   521,     0,     0,     0,     0,
     0,   311,   312,   313,     7,     8,     9,    10,   522,    12,
   286,   287,   288,     0,   289,    14,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   315,     0,     0,     0,    16,
   290,    17,     0,    19,     0,   291,   292,    20,     0,   293,
   294,   295,    21,   296,   297,     0,    23,     0,     0,     0,
   298,   299,   300,   301,   302,    26,     0,    27,    28,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   306,     0,
     6,  1448,     7,     8,     9,    10,    11,    12,    13,   308,
   309,  1449,     0,    14,     0,     0,     0,   311,   312,   313,
     0,     0,     0,     0,  1450,     0,    15,    16,     0,    17,
    18,    19,     0,     0,     0,    20,     0,     0,     0,     0,
    21,   315,     0,    22,    23,    24,     0,    25,     0,     0,
     0,     0,     0,    26,     0,    27,    28,     0,     0,    29,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
     0,     0,     0,     0,     0,     0,     0,     0,   162,    31,
     7,     8,     9,    10,    11,    12,    13,    32,     0,     0,
     0,    14,    33,     0,     0,     0,     0,    34,     0,     0,
     0,     0,     0,     0,    15,    16,     0,    17,    18,    19,
     0,     0,     0,    20,     0,     0,     0,     0,    21,     0,
     0,    22,    23,    24,     0,    25,     0,     0,     0,     0,
     0,    26,     0,    27,    28,     0,     0,    29,     0,     7,
     8,     9,    10,   388,    12,    13,     0,    30,   961,     0,
    14,     0,     0,     0,     0,     0,     0,    31,     0,     0,
     0,     0,     0,     0,    16,    32,    17,    18,     0,     0,
    33,     0,    20,     0,     0,    34,     0,    21,     0,     0,
     0,    23,     0,     0,     0,     0,     0,     0,     0,     0,
    26,     0,    27,    28,   995,     8,   738,    10,   190,    12,
   191,     0,     0,     0,     0,    14,    30,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    31,     0,     0,    16,
     0,    17,    18,     0,    32,     0,     0,    20,     0,    33,
     0,     0,    21,     0,     0,     0,    23,     0,     0,     0,
     0,     0,     0,     0,     0,    26,     0,    27,    28,     0,
     0,     0,     0,   997,     0,     0,     0,     0,     0,     0,
     0,    30,     7,     8,     9,    10,   190,    12,   191,     0,
     0,    31,     0,    14,     0,     0,     0,     0,     0,    32,
     0,     0,     0,     0,    33,     0,     0,    16,     0,    17,
    18,     0,     0,     0,     0,    20,     0,     0,     0,     0,
    21,     0,     0,     0,    23,     0,     0,     0,     0,     0,
     0,     0,     0,    26,     0,    27,    28,     0,     0,  1375,
     0,     7,     8,     9,    10,   388,    12,    13,     0,    30,
     0,     0,    14,     0,     0,     0,     0,     0,     0,    31,
     0,     0,     0,     0,     0,     0,    16,    32,    17,    18,
     0,     0,    33,     0,    20,     0,     0,     0,     0,    21,
     0,     0,     0,    23,     0,     0,     0,     0,     0,     0,
     0,     0,    26,     0,    27,    28,     7,     8,     9,    10,
   190,    12,   191,     0,     0,     0,     0,    14,    30,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    31,     0,
     0,    16,     0,    17,    18,     0,    32,     0,     0,    20,
     0,    33,     0,     0,    21,     0,     0,     0,    23,     0,
     0,     0,     0,     0,     0,     0,     0,    26,     0,    27,
    28,     7,     8,     9,    10,   199,   200,   201,     0,     0,
     0,     0,    14,    30,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    31,     0,     0,     0,     0,     0,    18,
     0,    32,     0,     0,    20,     0,    33,     0,     0,    21,
     0,     0,     0,    23,     0,   585,     0,     0,     0,     0,
     0,     0,    26,     0,    27,    28,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   178,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   179,     0,
     0,     0,     0,     0,     0,     0,    32,     0,     0,     0,
     0,  1378,   537,   538,   539,   540,   541,   542,   543,   544,
   545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
   555,   556,   557,   558,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   626,     0,     0,  1496,   537,   538,   539,
   540,   541,   542,   543,   544,   545,   546,   547,   548,   549,
   550,   551,   552,   553,   554,   555,   556,   557,   558,  1514,
   537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
   547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
   557,   558,   537,   538,   539,   540,   541,   542,   543,   544,
   545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
   555,   556,   557,   558
};

static const short yycheck[] = {     4,
    55,   157,   679,   676,    23,   236,   194,   334,     4,   387,
    46,   387,     4,   532,   471,   450,     4,    90,   340,    92,
   147,   148,    80,    33,   126,   589,   340,   835,   387,    54,
    35,     4,   596,   227,   358,     4,   134,    42,    84,    35,
    76,   202,   203,    35,   232,   569,    42,    35,   289,   290,
    42,   742,    57,   744,    42,   659,   194,    30,    31,     4,
   751,   124,    35,     4,   137,   203,    35,    72,  1340,    42,
   291,   292,  1259,    42,   133,   167,   423,     4,  1429,    84,
    47,   322,  1430,    88,   142,    90,   307,    92,    11,   310,
    35,  1269,   313,   281,    35,   316,    11,    42,  1276,   320,
    11,    42,   107,   108,  1431,   133,   134,   328,    35,   340,
  1477,    84,    57,    33,    12,    42,    62,    60,   458,  1163,
  1164,    14,    47,  1474,    37,     1,    93,   152,  1453,     9,
   188,   136,   137,  1177,   139,   475,    58,   759,   148,   149,
     0,   108,    64,   765,   136,   666,   334,    62,  1473,    59,
     3,     4,     5,    60,     1,   590,   161,    84,  1525,    80,
   185,    59,   198,   136,    62,     1,   109,   136,    93,   161,
   180,     4,     5,     0,   147,   148,    59,   504,    74,   526,
    59,    61,    58,   108,  1511,   108,    62,    74,   161,   109,
    83,   136,   161,   108,    47,    47,   109,   108,   108,   341,
   342,    54,   109,    56,    57,   178,   179,  1532,  1556,   136,
   108,    58,    25,   106,    27,    62,   161,    47,    47,    95,
  1571,   678,    58,    56,    57,    25,   109,    14,    48,   108,
    33,     3,     4,     5,   161,    22,    12,   428,     7,    38,
    93,    93,    94,  1430,  1516,    58,    54,    59,    95,    62,
   872,   197,   394,   395,    62,    54,  1434,  1301,    58,   205,
   416,    93,    62,    93,    93,    94,  1310,  1311,    37,  1313,
   343,    12,   331,    47,    33,   221,    93,   282,    65,   108,
   378,   327,    95,    59,    56,    57,    62,   609,    64,    93,
   649,   107,   108,   454,   455,    95,   108,    47,    93,   520,
   521,   462,    60,   331,   314,  1483,   910,   370,    80,   314,
   834,    59,   876,   474,   638,   442,   443,   455,    59,    93,
    94,    62,   327,   701,    27,   701,   247,    75,    31,    59,
   335,    60,   493,   680,   108,   390,    54,   124,   343,   344,
   233,    47,    54,    93,   147,   148,   149,   578,    25,    80,
    27,   109,   344,   917,   327,  1533,    74,    60,    64,   146,
   982,    64,    74,    54,   885,    58,    75,   888,    77,    62,
   697,   344,   994,   104,    47,   344,    47,   180,   108,    47,
   109,    58,   387,    74,    47,    62,   391,    93,   147,   148,
   149,   387,   956,    59,  1202,   914,    64,   107,    47,   344,
   327,    58,   133,     4,     5,  1027,   109,  1029,   929,   930,
    74,   142,     4,     5,   387,  1459,  1460,   344,    95,    54,
    93,   180,    93,    94,    74,    93,   499,    62,   464,    47,
    93,   436,    54,   443,   444,   222,   223,   108,   873,    74,
    25,    98,    27,    44,    93,    94,    64,   340,    25,   236,
    27,     4,    74,    54,    35,    56,    57,   188,    60,    54,
   387,    42,    54,   436,    56,    57,    54,   472,    47,   442,
   443,   613,   418,    58,    47,    93,    94,    62,    70,    74,
   472,    58,    35,    47,    62,    62,    74,  1178,    80,    42,
    25,   222,   502,    60,   499,   505,    74,   502,   314,   472,
   505,    47,    94,   472,   509,   510,   511,   512,   513,   436,
    95,   521,   522,    54,    93,   461,   247,   522,    95,   306,
    93,  1329,    59,   980,   570,   535,    31,   532,   194,    93,
   535,   472,   726,   911,   728,   911,   202,   203,    75,   733,
    77,   639,     4,     5,    47,   472,    62,    93,   646,    58,
  1114,   472,   911,     3,     4,     5,   448,     7,   719,   881,
   615,   348,    74,    47,   456,   570,   232,   881,   641,    44,
   357,  1092,  1093,     3,     4,     5,     6,    54,  1142,    54,
    30,   109,    57,   370,   589,    54,   596,    37,    58,    47,
    93,   596,    54,    62,    56,    57,   784,   570,   945,    47,
   655,    47,   657,   658,    54,    74,    56,    57,   339,    93,
    94,    41,    93,   586,   587,   281,   589,   433,   646,     3,
     4,     5,     6,   596,    54,   846,    56,    57,   647,    47,
   722,  1066,    54,   775,   736,    93,   641,   878,    54,   442,
   443,   444,   697,   570,    54,    93,   837,    93,     4,     5,
   881,   656,    75,   874,   875,   660,    47,    41,    88,   678,
     4,     5,   589,   108,   756,    47,   397,  1124,   334,   596,
    47,   108,    56,    57,    94,    93,     3,     4,     5,     6,
    59,    60,   469,   442,   443,   444,   502,   760,   761,   505,
   763,   108,    48,   509,   749,  1266,   701,  1268,    47,  1156,
    56,    57,    93,    62,    88,    54,   522,   600,   108,   745,
   746,    93,    56,    57,    41,    11,    93,    59,   754,   535,
    47,    59,    60,   539,    80,    74,   392,    54,   701,    56,
    57,   109,    74,    75,  1061,    77,    62,   742,   469,   744,
     3,     4,     5,    70,    93,   750,   751,   534,    74,   108,
   742,   567,   744,    80,   759,   760,   761,   573,   763,   751,
   765,    88,   904,    90,    93,   496,    93,    94,   778,   742,
    47,   744,    47,   742,   701,   744,    62,    54,   751,    54,
    59,    60,   751,   977,   978,   979,   759,     3,   454,   455,
    62,   578,   765,    56,    57,    58,   462,    74,    60,    74,
   111,   742,    74,   744,   749,   750,     8,     9,   474,    59,
   751,    94,    14,     4,    64,   742,    93,   744,    93,    83,
    84,   742,   108,   744,   751,    75,  1499,   493,   833,   750,
   751,     4,   759,   838,    36,    12,    62,    94,   765,     3,
     4,     5,  1519,    45,    35,    47,   111,  1068,    74,    62,
    27,    42,   583,    93,    31,  1046,  1047,    93,    59,    60,
   647,   866,    35,    74,   922,   875,   876,   872,   599,    42,
    47,   876,   659,     3,     4,     5,     6,    59,    60,  1021,
  1022,  1023,    59,    60,    74,    62,    74,    64,    74,    47,
    54,    93,    56,    57,    58,   987,   988,    59,   685,   872,
    11,   874,   875,   876,   109,    54,   911,   917,   913,   914,
   108,    41,   917,    62,    59,   911,    93,    94,    48,  1140,
  1141,     3,     4,     5,  1016,    74,    56,    57,    86,    87,
   985,   108,    54,    91,    92,    93,    94,   108,   911,   108,
    62,  1268,   915,   916,   917,   872,   956,  1138,  1006,   876,
   616,   956,    74,   108,     4,     5,  1147,  1148,    88,    59,
    60,  1152,   998,    54,   969,    74,     4,     5,  1004,  1005,
   975,     9,  1008,  1009,    56,    57,  1012,   982,    27,   772,
   773,   774,    31,   956,   911,  1112,  1113,   108,   881,   994,
   917,   109,   658,     4,     5,    27,   109,  1070,    48,    31,
  1062,  1063,  1193,  1065,  1351,   111,    56,    57,   111,   982,
    59,    60,  1017,  1140,  1141,    64,    54,    27,    56,    57,
  1367,   994,  1027,   108,  1029,  1017,   842,    59,    60,   956,
    80,   697,    70,    74,     3,     4,     5,     6,  1259,    74,
   985,    54,    80,    54,  1017,    56,    57,    54,  1017,    62,
    59,    60,  1057,   719,  1027,   982,  1029,    74,  1116,    70,
   876,    74,     3,     4,     5,  1070,   111,   994,   108,    80,
    58,  1213,    41,    54,   111,   108,  1017,  1169,  1170,    48,
  1172,  1173,   108,  1175,   108,  1006,   717,    56,    57,  1467,
  1017,  1467,     3,     4,     5,     8,  1017,  1288,    93,   111,
  1027,    47,  1029,  1113,  1114,  1124,  1453,    48,    64,  1114,
   897,    80,     4,     5,   917,    56,    57,    59,   784,    88,
    93,    54,   109,   910,    60,    64,  1473,   758,    54,    36,
  1135,  1141,  1142,   764,    64,  1326,    62,  1142,   108,  1112,
  1113,  1114,    64,  1135,  1471,    56,    57,  1135,    74,   880,
    60,   882,    64,   956,    62,  1502,    48,   108,   917,   975,
   108,   108,  1135,   108,    56,    57,    64,  1140,  1141,  1142,
     3,     4,     5,  1178,     7,     8,     9,    64,     3,     4,
     5,     6,     4,     5,     9,  1532,  1178,  1114,    80,    93,
   111,   922,    62,  1540,  1135,     4,     5,   956,    31,    59,
    59,    75,   108,    36,    75,  1178,  1298,  1299,  1135,  1178,
    88,  1266,    90,  1268,    92,  1142,    41,    80,    81,    82,
    83,    84,    47,    56,    57,   108,    48,  1448,  1449,    54,
    75,    56,    57,   108,    56,    57,   867,  1178,   869,    48,
     3,     4,     5,     6,   108,    70,   108,    56,    57,     9,
   108,  1178,    12,  1174,  1259,    80,    75,  1178,    80,   137,
  1047,   139,  1267,    88,  1269,    90,   108,  1259,    93,    94,
    62,  1276,  1308,  1309,    62,  1006,   108,  1269,    41,    62,
  1285,  1269,   108,  1471,  1276,    48,  1259,    47,  1276,  1445,
   108,   111,    94,    56,    57,   111,  1269,    88,    74,    59,
    47,    61,    62,  1276,    64,  1397,  1398,  1399,   108,  1112,
  1113,  1114,   108,   111,   111,    75,   109,    77,  1259,   108,
    60,  1448,  1449,   108,   108,    88,  1142,   108,  1269,   109,
    59,    64,  1259,    93,    94,  1276,    64,  1140,  1141,  1142,
    59,  1377,  1269,    59,   387,  1132,     4,     5,   108,  1276,
   108,  1138,   108,  1112,  1113,  1114,    93,    93,  1089,     4,
     5,    93,    93,   109,  1456,  1457,   109,   108,  1378,   108,
  1561,     8,    33,  1189,  1190,  1191,  1192,     3,     4,     5,
     6,  1140,  1141,  1142,   108,  1116,     8,     9,   111,   111,
    48,   108,    14,   436,   108,  1026,   108,  1028,    56,    57,
     3,     4,     5,    48,     7,     8,     9,   108,    64,   109,
   108,    56,    57,   108,    36,    41,   108,  1472,   108,  1424,
   108,   108,    80,    45,  1429,  1430,  1431,   305,   108,  1434,
    56,    57,  1524,    54,   108,    80,  1252,  1429,  1430,  1449,
  1450,  1429,  1434,  1174,   108,  1450,  1434,    62,   111,    47,
    96,  1424,  1083,    56,    57,   108,  1429,  1430,  1431,   108,
   108,  1434,  1467,    62,    60,   343,  1253,  1254,  1504,  1474,
    62,     3,     4,     5,    60,  1448,  1449,    60,  1483,     9,
    16,   108,  1474,     3,     4,     5,  1474,    93,  1429,  1430,
   108,  1483,   108,  1434,  1467,  1483,   108,  1424,    30,   108,
   108,  1474,  1429,  1430,  1431,    93,  1511,  1434,    60,    60,
  1483,  1327,    54,    93,     3,     4,     5,     6,    64,     7,
     8,     9,    54,    93,    56,    57,    14,   111,  1533,  1160,
    17,    60,    54,  1474,  1165,   107,    56,    57,  1511,    97,
  1467,  1533,  1483,    31,  1360,  1533,   589,  1474,    36,   108,
   428,   429,    41,   596,    60,  1342,  1483,    45,   436,   108,
  1533,   108,   429,   108,    11,    54,  1571,    56,    57,   436,
    60,    60,    60,    62,    60,  1378,    60,  1364,  1365,  1571,
    93,    70,    59,  1571,  1511,    64,  1217,     3,     4,     5,
   108,    80,  1533,    60,   108,     3,     4,     5,  1571,    88,
   108,    11,  1268,    60,    93,    11,  1533,    60,  1424,     0,
     0,     0,   415,  1365,  1430,  1431,     2,   639,   911,  1378,
   161,   499,   500,    78,    79,    80,    81,    82,    83,    84,
  1571,     4,     5,   500,  1450,  1498,     9,   161,    54,  1124,
    56,    57,   750,    94,  1571,  1448,  1449,  1450,    56,    57,
  1350,     3,     4,     5,   532,  1442,   534,   139,   701,   537,
   538,  1203,   540,   541,   542,   543,   544,   545,   546,   547,
   548,   549,   550,   551,   552,   553,   554,   555,   556,   557,
   558,    54,   560,    56,    57,  1571,  1317,  1318,   566,  1448,
  1449,  1450,  1267,   560,   284,  1511,    48,    70,   897,   566,
   685,   226,  1156,  1334,    56,    57,   980,    80,     3,     4,
     5,  1527,   892,     3,     4,     5,   759,  1017,   596,   750,
  1176,    94,   765,   622,   890,   603,   570,   185,   124,   331,
  1269,  1136,  1488,  1549,  1540,   429,   603,  1519,  1552,  1550,
  1556,   964,   436,    -1,     3,     4,     5,   625,   626,     3,
     4,     5,  1285,     7,     8,     9,    -1,    -1,    -1,  1390,
  1391,    56,    57,   641,    54,    -1,    56,    57,    -1,    -1,
    -1,     3,     4,     5,     6,    -1,    -1,    31,  1409,  1410,
    -1,    57,    36,    59,    -1,    -1,    -1,    -1,     1,    65,
     3,     4,     5,     6,     7,     8,     9,    56,    57,    -1,
    54,    14,    56,    57,    58,  1471,   500,   685,    -1,    41,
    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    31,    -1,
    -1,    -1,    54,    36,    56,    57,    -1,    -1,    41,   872,
    62,    -1,    45,   876,    -1,    48,    -1,    -1,    70,    -1,
    -1,    54,    -1,    56,    57,    -1,    -1,    60,    80,   103,
   104,   105,     7,     8,     9,    -1,    88,    70,    -1,    14,
    -1,    93,    -1,   741,    -1,    -1,   560,    80,   911,    -1,
    -1,    -1,   566,    -1,   917,    88,    31,    -1,    -1,    -1,
    93,    36,   760,   761,    -1,   763,     7,     8,     9,    -1,
    45,   167,    -1,    14,    -1,    -1,    -1,    -1,    -1,    -1,
   778,    -1,   596,     3,     4,     5,     6,    -1,    -1,   603,
    31,     4,    -1,   956,    -1,    36,    -1,    -1,   194,    -1,
    -1,    14,   800,    -1,    45,    -1,   202,   203,    -1,    -1,
    -1,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,   982,
    33,    41,    35,     3,     4,     5,     6,    -1,    48,    42,
    -1,   994,    -1,    -1,   832,   833,    56,    57,    -1,   837,
   838,    -1,    55,    -1,    57,   832,   833,    -1,    -1,    -1,
    -1,   838,    65,    -1,   852,    -1,   854,    -1,   856,    72,
    80,    41,    -1,    -1,  1027,   852,  1029,   854,    88,   856,
    83,    84,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,
    60,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    70,   889,     9,   106,    -1,    -1,    -1,    -1,    -1,    -1,
    80,   899,    -1,    -1,     7,     8,     9,    -1,    88,    -1,
    -1,    14,   899,    93,    -1,    -1,   914,    -1,    -1,    -1,
    -1,   134,    -1,   136,    41,    -1,    -1,   140,    31,   927,
   143,   144,    -1,    36,   147,   148,   149,    54,    -1,    56,
    57,   939,    45,    -1,    -1,    -1,    -1,    -1,   161,    82,
    -1,  1114,   939,    70,    -1,    -1,    -1,    60,   956,    -1,
    -1,    -1,    -1,    80,   778,   178,   179,   180,    -1,    -1,
    -1,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,  1142,
    -1,    -1,    -1,     3,     4,     5,     6,    -1,    -1,     9,
    -1,    -1,    -1,    -1,   207,   391,   392,    -1,    -1,   997,
    76,    77,    78,    79,    80,    81,    82,    83,    84,    -1,
   223,     4,     5,    -1,    -1,    -1,     9,    -1,   832,   833,
   233,    41,   155,    -1,   838,    -1,    -1,     3,     4,     5,
     6,   244,    -1,     9,    54,    -1,    56,    57,   852,    -1,
   854,    -1,   856,   176,    -1,    -1,    -1,    -1,  1046,  1047,
    70,   447,  1050,    -1,    47,    -1,   189,    -1,   454,   455,
    80,    54,   458,    56,    57,    41,   462,    -1,    88,   282,
   283,    -1,  1070,    93,    -1,    -1,    -1,    70,    54,   475,
    56,    57,    -1,    -1,    -1,   899,    -1,    80,    -1,    -1,
    -1,    -1,    -1,    -1,    70,    -1,    -1,    90,    -1,    -1,
    93,    94,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    88,    -1,   327,    -1,    -1,    93,   331,    -1,
   333,   334,   335,    -1,    -1,   939,    -1,    -1,  1126,    -1,
  1128,   344,  1130,     3,     4,     5,     6,    -1,    -1,  1126,
  1138,  1128,   956,  1130,    -1,    -1,    -1,    -1,    -1,  1147,
  1148,    -1,    -1,    -1,  1152,    -1,    -1,    -1,    -1,    -1,
    -1,     3,     4,     5,     6,   378,    -1,     9,    -1,  1167,
  1168,    41,    -1,    -1,   387,    -1,    -1,   390,   391,     3,
     4,     5,     6,    -1,    54,    -1,    56,    57,   401,    -1,
    -1,   404,    62,    -1,    -1,  1193,   409,    -1,    -1,    41,
    70,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
    80,    -1,    54,    -1,    56,    57,    -1,    41,    88,    -1,
   616,    -1,    -1,    93,    48,   438,  1224,   440,    70,   442,
   443,   444,    56,    57,    -1,   448,    -1,  1224,    80,    -1,
   453,    -1,    -1,   456,    -1,    -1,    88,    -1,    90,    -1,
  1248,    93,    94,    -1,    -1,    -1,    80,    -1,    -1,   472,
   656,    -1,   658,   659,    88,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    80,    81,    82,    83,    84,     4,
     5,    -1,    -1,     8,     9,    -1,    -1,    -1,    -1,    14,
  1288,    -1,    -1,    -1,    -1,    -1,    -1,   510,   511,   512,
   513,   697,    -1,    28,  1467,    30,  1304,    -1,    -1,    -1,
    -1,    36,  1126,   446,  1128,    -1,  1130,    -1,   451,    -1,
    45,    -1,    47,   719,    -1,    -1,   722,    -1,  1326,    54,
    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,     4,
     5,    -1,    -1,   476,     9,    70,    -1,    -1,    -1,   482,
     3,     4,     5,     6,   750,    80,     9,   570,    -1,   572,
   756,   494,   495,    -1,   497,    90,    -1,    -1,    93,    94,
    -1,   584,    -1,   586,   587,    -1,   589,    -1,    -1,    -1,
  1378,    -1,    47,   596,    -1,    -1,    -1,   600,    41,    54,
    -1,    56,    57,    -1,    47,    -1,    -1,  1395,  1396,    -1,
    -1,    54,   615,    56,    57,    70,  1404,    -1,    -1,    -1,
  1224,    -1,    -1,    -1,    -1,    80,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    90,   639,    80,    93,    94,
    -1,    -1,    -1,   646,  1432,    88,    -1,    90,    -1,    -1,
    93,    94,   655,   656,   657,   658,   659,   660,    -1,     3,
     4,     5,     6,    -1,    -1,     3,     4,     5,     6,   592,
   593,     9,    -1,    -1,   597,    -1,     3,     4,     5,     6,
    -1,    -1,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   697,    -1,    -1,    41,   701,    -1,
    -1,    -1,    -1,    41,    48,   708,   709,    -1,   711,   333,
   334,   335,    56,    57,    41,    -1,    54,    -1,    56,    57,
    47,    -1,    -1,    -1,   910,    -1,    -1,    54,    -1,    56,
    57,    -1,    70,    -1,    -1,    -1,   739,    -1,    -1,   742,
    -1,   744,    80,    70,    88,    -1,   749,   750,   751,    -1,
    88,    -1,    -1,    80,    -1,    93,   759,    -1,    -1,    -1,
    -1,    88,   765,    90,    -1,    -1,    93,    94,    -1,   772,
   773,   774,    -1,  1561,  1378,    -1,    -1,    -1,    -1,    -1,
    -1,   784,    67,    68,    69,    70,    71,    72,    73,    74,
    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
     4,   987,   988,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    14,     3,     4,     5,     6,    -1,    -1,    -1,    -1,    23,
    24,     3,     4,     5,     6,    -1,    30,    31,    -1,    33,
  1016,    35,    -1,     4,     5,    -1,    -1,    -1,    42,     3,
     4,     5,     6,   766,    -1,   768,    38,    39,    -1,    41,
    -1,    55,    -1,    57,   857,    -1,   859,    -1,    -1,    41,
    -1,    65,    54,   866,    56,    57,    48,   870,    72,   872,
    -1,   874,   875,   876,    56,    57,    47,    41,   881,    -1,
    84,    -1,    -1,    54,    48,    56,    57,    -1,     3,     4,
     5,     6,    56,    57,     9,    -1,    -1,    -1,    80,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,   911,    80,
   913,    -1,   915,   916,   917,    -1,    80,   840,   841,    90,
   843,    -1,    93,    94,    88,    -1,    41,    -1,    -1,    -1,
    -1,    -1,   136,    -1,    -1,    -1,   140,    -1,    -1,    54,
   144,    56,    57,   147,   148,   149,    -1,    -1,   871,    -1,
    -1,    -1,    -1,   956,    -1,    70,    -1,   161,    -1,    -1,
    -1,    -1,   586,   587,    -1,    80,   969,    -1,    -1,    -1,
    -1,    -1,    -1,    88,   178,   179,   180,    -1,    93,   982,
    -1,    -1,   985,  1169,  1170,    -1,  1172,  1173,    -1,  1175,
    -1,   994,    -1,    -1,    -1,    -1,   919,    -1,    -1,     3,
     4,     5,     6,   207,  1007,     9,    -1,    -1,    -1,    -1,
     3,     4,     5,     6,  1017,    -1,     9,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1027,    -1,  1029,    -1,    -1,    -1,
    -1,   655,    -1,   657,   658,    -1,   660,    41,    -1,    -1,
   244,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,
    54,    -1,    56,    57,  1057,    -1,    -1,    -1,   981,  1062,
  1063,    54,  1065,    56,    57,    -1,    70,    -1,    -1,    -1,
   993,    -1,    -1,   697,    -1,    -1,    80,    70,   282,   283,
    -1,  1267,  1268,    -1,    88,    -1,    -1,    80,    -1,    93,
    -1,     4,     5,    -1,    -1,    88,     9,    -1,    -1,    -1,
    93,    -1,    -1,    -1,    -1,    -1,    -1,  1110,  1111,  1112,
  1113,  1114,  1298,  1299,    -1,  1118,    -1,    -1,     3,     4,
     5,     6,    -1,   327,     9,    -1,    -1,   331,    -1,   333,
   334,   335,    -1,    -1,    47,    -1,   340,  1140,  1141,  1142,
   344,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,  1078,    41,    70,    -1,    -1,
   784,    -1,    -1,    -1,    -1,    -1,    -1,    80,  1171,    54,
    -1,    56,    57,  1176,   378,  1178,    -1,    90,    -1,    -1,
    93,    94,    -1,   387,    -1,    70,   390,   391,    -1,    -1,
    -1,    -1,    -1,    -1,  1117,    80,    -1,   401,    -1,    -1,
   404,    -1,    -1,    88,    -1,   409,    -1,    -1,    93,    -1,
    -1,  1397,  1398,  1399,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1227,  1228,    -1,  1230,    -1,    -1,
    -1,    -1,    -1,   857,   438,   859,   440,    -1,   442,   443,
   444,    -1,    -1,    -1,   448,    -1,   870,    -1,    -1,   453,
   874,   875,   456,    -1,    -1,    -1,    -1,  1180,    -1,    -1,
    -1,  1184,    -1,  1266,  1267,  1268,    -1,   471,   472,    -1,
  1456,  1457,     3,     4,     5,     6,     7,     8,     9,    -1,
    -1,    12,  1285,    14,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   915,   916,    -1,    -1,    -1,  1219,    28,    -1,    30,
    31,    -1,    -1,    -1,    -1,    36,   510,   511,   512,   513,
    41,    -1,    -1,    -1,    45,    -1,    47,    -1,    -1,    -1,
    -1,    -1,    -1,    54,    -1,    56,    57,     3,     4,     5,
     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1524,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,    90,
    -1,    -1,    93,    94,    -1,    41,   570,    -1,   572,    -1,
  1293,    -1,    -1,    -1,  1297,  1378,    -1,    -1,    54,    -1,
    56,    57,   586,   587,    -1,   589,    62,    -1,    -1,    -1,
    -1,    -1,   596,    -1,    70,    -1,  1319,  1320,    -1,    -1,
    -1,    -1,    -1,    -1,    80,   609,     3,     4,     5,     6,
    -1,   615,    88,    -1,    -1,    -1,    -1,    93,    68,    69,
    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
    80,    81,    82,    83,    84,   639,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   647,    41,  1448,  1449,  1450,    -1,    -1,
    -1,   655,   656,   657,   658,   659,   660,    54,    -1,    56,
    57,    -1,    -1,    60,  1467,    -1,    -1,    -1,    -1,  1472,
    -1,    -1,    -1,    70,   678,     3,     4,     5,     6,    -1,
    -1,    -1,    -1,    80,    -1,    -1,  1110,  1111,  1112,  1113,
    -1,    88,    -1,   697,  1118,    -1,    93,   701,    -1,    -1,
    -1,    -1,    -1,    -1,   708,   709,    -1,   711,    -1,    -1,
    -1,    -1,    -1,    41,    -1,    -1,  1140,  1141,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
    -1,    -1,    -1,    -1,    -1,   739,    -1,    -1,   742,    -1,
   744,    -1,    70,    -1,    -1,   749,   750,   751,    -1,     4,
     5,    -1,    80,     8,     9,   759,    -1,     4,    -1,    14,
    88,   765,    -1,    -1,    -1,    93,    -1,    -1,   772,   773,
   774,    -1,    -1,     3,     4,     5,     6,    -1,    -1,    -1,
   784,    36,    -1,    30,    31,    -1,    33,    -1,    35,    -1,
    45,    -1,    47,    -1,    -1,    42,    -1,    -1,    -1,    54,
    -1,    56,    57,  1227,  1228,    -1,  1230,    -1,    55,    -1,
    57,    41,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    54,    80,    56,    57,    -1,    -1,
    -1,    -1,    -1,    80,    -1,    90,    -1,    -1,    93,    94,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    80,    -1,    -1,   857,    -1,   859,    -1,    -1,    88,    -1,
    -1,    -1,   866,    93,    -1,    -1,   870,    -1,   872,    -1,
   874,   875,   876,    -1,    -1,    -1,    -1,   881,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   133,   134,    -1,   136,
    -1,    -1,    -1,   140,    -1,   142,    -1,   144,    -1,    -1,
   147,   148,   149,    -1,    -1,    -1,    -1,   911,    -1,   913,
    -1,   915,   916,   917,   161,    69,    70,    71,    72,    73,
    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
    84,   178,   179,   180,    -1,    -1,    -1,    -1,    -1,    -1,
     1,   188,     3,     4,     5,     6,     7,     8,     9,    -1,
    -1,    -1,   956,    14,     3,     4,     5,     6,    -1,    -1,
   207,    -1,    -1,    -1,    -1,   969,    -1,    28,    -1,    30,
    31,    32,    -1,    -1,    -1,    36,   980,    -1,   982,    -1,
    41,   985,    -1,    -1,    45,    46,    -1,    48,    -1,    -1,
   994,    -1,    41,    54,    -1,    56,    57,   244,    -1,    60,
    -1,    62,    -1,    -1,    -1,    54,    -1,    56,    57,    70,
    -1,    -1,    -1,  1017,    -1,    -1,    -1,    -1,    -1,    80,
    -1,    70,    -1,  1027,    -1,  1029,    -1,    88,    -1,    -1,
    -1,    80,    93,    -1,    -1,    -1,    -1,     4,    -1,    88,
    -1,    -1,    -1,    -1,    93,     3,     4,     5,     6,     7,
     8,     9,    -1,  1057,    -1,    -1,    14,    -1,  1062,  1063,
    -1,  1065,    -1,    30,    31,    -1,    33,   314,    35,    -1,
    28,    -1,    30,    31,    -1,    42,    -1,    -1,    36,    -1,
    -1,    -1,    -1,    41,   331,    -1,    -1,    45,    55,    -1,
    57,    -1,   339,    -1,    -1,    -1,    54,   344,    56,    57,
    -1,    -1,    60,    -1,    -1,    -1,  1110,  1111,  1112,  1113,
  1114,    -1,    70,    -1,  1118,    -1,    -1,    -1,    -1,    -1,
  1124,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    88,   378,    -1,    -1,    -1,    93,  1140,  1141,  1142,    -1,
    -1,    -1,    -1,   390,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,  1156,    -1,   401,    -1,    -1,   404,    -1,    -1,
    -1,    -1,   409,    -1,    -1,    -1,    -1,  1171,    -1,   136,
    -1,    -1,  1176,   140,  1178,    -1,    -1,   144,    -1,    -1,
   147,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   438,    -1,   440,   161,   442,   443,   444,    -1,    -1,
    -1,   448,    -1,    -1,    -1,    -1,   453,    -1,    -1,   456,
    -1,   178,   179,   180,     1,    -1,     3,     4,     5,     6,
    -1,     8,    -1,  1227,  1228,   472,  1230,    -1,    63,    64,
    65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
   207,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    -1,  1255,    -1,    -1,    41,   502,    -1,    -1,   505,    -1,
    -1,    48,  1266,  1267,  1268,    -1,    -1,    54,    -1,    56,
    57,    -1,    -1,   520,   521,   522,    -1,   244,    -1,    -1,
    -1,  1285,    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,
    -1,    -1,    -1,    -1,     4,     5,    -1,    -1,     8,     9,
    -1,    88,    -1,    -1,    14,    -1,    -1,    -1,    -1,    -1,
   178,   179,   180,    -1,    -1,    -1,    -1,    -1,    28,    -1,
    30,    -1,    -1,    -1,    -1,     1,    36,     3,     4,     5,
     6,     7,     8,     9,    -1,    45,   583,    -1,    14,    -1,
    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    58,   596,
    -1,    -1,    28,    -1,    30,    31,    32,    -1,    -1,    -1,
    36,    37,    -1,    -1,    -1,    41,    -1,    -1,   615,    45,
    46,    -1,    48,   340,  1378,    -1,    -1,   344,    54,    -1,
    56,    57,    -1,    93,    60,    -1,    62,    -1,    -1,    -1,
    -1,    -1,   639,    -1,    70,    -1,    -1,    -1,    -1,   646,
    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,   655,   656,
   657,   658,    88,    -1,    33,    -1,    -1,    93,    -1,    -1,
    -1,    -1,    -1,   390,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   109,   401,    -1,    55,   404,    -1,    -1,
    -1,    -1,   409,    -1,  1448,  1449,  1450,    -1,    -1,    -1,
   697,    -1,    -1,    -1,   701,    -1,    -1,    -1,    -1,    -1,
    -1,   708,   709,  1467,   711,    -1,    -1,    -1,  1472,    -1,
    -1,   438,    -1,   440,    -1,   442,   443,   444,    -1,    -1,
    -1,   448,    -1,    -1,    -1,    -1,   453,    -1,    -1,   456,
    -1,    -1,    -1,    -1,    -1,   742,    -1,   744,    -1,    -1,
    -1,    -1,   749,   750,   751,   472,    -1,    -1,    -1,    -1,
     1,    -1,     3,     4,     5,     6,     7,     8,     9,    -1,
    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,   147,   148,
   149,   778,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,
    31,    32,    -1,    -1,    -1,    36,    37,    -1,    -1,    -1,
    41,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,   178,
   179,   180,    -1,    54,    -1,    56,    57,    -1,    -1,    60,
   438,    62,   440,    -1,   442,   443,   444,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,   453,    -1,    -1,   207,    80,
    -1,     4,     5,    -1,    -1,     8,     9,    88,    -1,    -1,
    -1,    14,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    55,    -1,    -1,    -1,    -1,   584,   109,    -1,
    -1,     4,     5,    36,    -1,     8,     9,   874,   875,   876,
    -1,    14,    45,   880,    47,    -1,    -1,    80,    -1,    -1,
    83,    54,    -1,    56,    57,    28,    -1,    30,   615,    -1,
    -1,    -1,    -1,    36,    -1,    -1,    -1,    70,    -1,    -1,
    -1,   104,    45,   106,   283,    -1,    -1,    80,   915,   916,
   917,    54,    -1,    56,    57,   922,    -1,    90,    -1,    -1,
    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,   655,   656,
   657,   658,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   956,
    93,    -1,    -1,    -1,   333,   334,   335,    72,    73,    74,
    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
   697,    -1,    -1,    -1,   701,   178,   179,   180,   985,    -1,
    -1,   708,   709,    -1,   711,   188,    73,    74,    75,    76,
    77,    78,    79,    80,    81,    82,    83,    84,    -1,  1006,
    -1,    -1,     4,     5,   207,     7,     8,     9,    -1,    -1,
  1017,   390,    14,    -1,    -1,   742,    -1,   744,    -1,    -1,
    -1,    -1,   749,   750,   751,    -1,    28,    -1,    30,    31,
   233,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    45,   247,    -1,    48,    -1,    -1,    -1,
    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,   438,
    -1,   440,    -1,   442,   443,   444,    -1,    -1,    -1,   448,
    -1,    -1,    -1,    -1,   453,    -1,    -1,   456,    -1,    -1,
   708,   709,  1089,   711,    70,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    80,    81,    82,    83,    84,    -1,
    -1,    -1,    -1,  1110,  1111,  1112,  1113,  1114,    -1,  1116,
    -1,  1118,    -1,    -1,     3,     4,     5,     6,     7,     8,
     9,   749,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1140,  1141,  1142,   339,   340,    -1,    28,
    -1,    30,    31,    -1,    -1,   314,    -1,    36,    -1,    -1,
    -1,    -1,    41,    -1,   881,    -1,    45,    -1,    47,    -1,
    -1,    -1,    -1,    -1,  1171,    54,    -1,    56,    57,  1176,
    -1,  1178,    -1,    -1,     4,     5,    -1,    -1,     8,     9,
    -1,    70,    -1,    -1,    14,    -1,    -1,   390,   915,   916,
   917,    80,    -1,   572,    -1,    -1,    -1,    -1,    28,    88,
    30,    90,    -1,    -1,    93,    94,    36,   586,   587,    -1,
   589,    -1,    -1,    -1,    -1,    45,    -1,   596,   387,    -1,
  1227,  1228,    -1,  1230,    54,    -1,    56,    57,    -1,   956,
    -1,    -1,    -1,    -1,    -1,   438,   615,   440,    -1,   442,
   443,   444,    12,    -1,    -1,   448,    -1,    -1,    -1,    -1,
   453,    -1,    -1,   456,    -1,    -1,    -1,    -1,   985,  1266,
  1267,  1268,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   655,    -1,   657,   658,
    -1,   660,    -1,    -1,    -1,    -1,    -1,   915,   916,   917,
  1017,    -1,    62,    63,    64,    65,    66,    67,    68,    69,
    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
    80,    81,    82,    83,    84,    -1,    -1,    -1,   697,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   956,   708,
   709,    -1,   711,   502,    -1,    -1,   505,    -1,    -1,    -1,
   509,   510,   511,   512,   513,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   522,    -1,    -1,    -1,   985,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   535,    -1,    -1,    -1,
   749,  1378,    -1,    -1,    -1,    -1,    -1,   333,   334,   335,
    -1,    -1,    -1,  1110,  1111,  1112,  1113,  1114,    -1,    -1,
    -1,  1118,    -1,   772,   773,   774,   599,   600,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   784,     4,     5,    -1,     7,
     8,     9,   615,  1140,  1141,  1142,    14,    -1,    -1,    -1,
   589,    -1,    -1,    -1,    -1,    -1,    -1,   596,    -1,    -1,
    28,    -1,    30,    31,    -1,    -1,     4,    -1,    36,    -1,
    -1,  1448,  1449,  1450,  1171,    -1,    -1,    45,    -1,  1176,
    -1,  1178,   655,    -1,   657,   658,    54,    -1,    56,    57,
    -1,    -1,    30,    31,    -1,  1472,    -1,    35,    -1,    -1,
    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,   857,    -1,
   859,    -1,  1110,  1111,  1112,  1113,  1114,    -1,    -1,    57,
  1118,   870,    -1,    -1,   697,   874,   875,   876,    -1,    -1,
  1227,  1228,    -1,  1230,    -1,   708,   709,    -1,   711,    -1,
    -1,    -1,  1140,  1141,  1142,    -1,    -1,    -1,    -1,    -1,
    -1,     4,     5,    -1,     7,     8,     9,    -1,    -1,    12,
    -1,    14,   701,   736,    -1,    -1,   915,   916,   917,  1266,
  1267,  1268,    -1,  1171,    -1,    28,   749,    30,    31,    -1,
    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,   136,    -1,
    -1,    54,   140,    56,    57,    -1,   144,   956,    -1,    -1,
    -1,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
   759,    -1,    14,   161,    -1,    -1,   765,    -1,    -1,  1227,
  1228,    -1,  1230,    -1,    -1,    -1,   985,    -1,    -1,    31,
   178,   179,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,
    -1,    -1,    -1,    45,    -1,    47,    -1,    -1,    -1,    -1,
   586,   587,    54,   589,    56,    57,    -1,    -1,    -1,    -1,
   596,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    -1,  1378,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,
    -1,    -1,    -1,    -1,   833,    -1,    88,    -1,    90,    -1,
    -1,    93,    94,    -1,    -1,    -1,   244,   880,   881,   882,
    -1,    -1,    -1,  1062,  1063,    -1,  1065,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   866,    -1,   655,
    -1,   657,   658,   872,   660,    -1,    -1,   876,    -1,    -1,
    -1,    -1,   915,   916,   917,    -1,    -1,    -1,    -1,   922,
    -1,  1448,  1449,  1450,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1110,  1111,  1112,  1113,  1114,    -1,    -1,    -1,  1118,
    -1,   697,   911,    -1,   913,  1472,    -1,    -1,   917,    -1,
  1378,    -1,    -1,   956,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1140,  1141,  1142,     4,     5,    -1,     7,     8,     9,
    -1,    -1,    12,    -1,    14,    -1,   344,    -1,    -1,    -1,
    -1,    -1,   985,    -1,    -1,    -1,    -1,   956,    28,    -1,
    30,    31,  1171,    -1,    -1,    -1,    36,    -1,    -1,    -1,
   969,    -1,    -1,  1006,    -1,    45,   975,    47,    -1,    -1,
    -1,    -1,    -1,   982,    54,    -1,    56,    57,    -1,    -1,
  1448,  1449,  1450,    -1,    -1,   994,    -1,    -1,   784,    -1,
    70,    -1,    -1,   401,    -1,    -1,   404,    -1,    -1,    -1,
    80,   409,    -1,    -1,    -1,    -1,    14,    -1,  1227,  1228,
    90,  1230,    -1,    93,    94,    23,    24,    -1,  1027,    -1,
  1029,    -1,    30,    31,    -1,    33,    -1,    -1,    -1,    -1,
   438,    -1,   440,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   453,  1089,  1266,  1057,  1268,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
    -1,   857,    -1,   859,   472,    -1,    -1,  1110,  1111,  1112,
  1113,  1114,    -1,  1116,   870,  1118,    -1,    -1,   874,   875,
   876,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1140,  1141,  1142,
    -1,    -1,    -1,    -1,    -1,  1114,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   124,    -1,   126,   915,
   916,   917,    -1,    -1,    -1,   133,   134,    -1,  1171,    -1,
    -1,    -1,   140,  1142,   142,   143,   144,    -1,    -1,   147,
   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1378,
   956,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
     8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1227,  1228,    -1,  1230,    -1,    -1,
    28,    -1,    30,    31,    32,    -1,    -1,    -1,    36,    37,
    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    46,    -1,
    48,    -1,    -1,    -1,   222,   223,    54,    -1,    56,    57,
    -1,    -1,    60,  1266,    62,  1268,    -1,    -1,    -1,  1448,
  1449,  1450,    70,    -1,    -1,    -1,   244,    -1,    -1,    -1,
    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,   656,    -1,
    88,    -1,    -1,  1472,    -1,    93,     4,     5,    -1,     7,
     8,     9,    -1,    -1,    12,    -1,    14,    -1,    -1,    -1,
    -1,   109,    -1,    -1,    -1,   283,  1285,    -1,    -1,    -1,
    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
    -1,    -1,    -1,   701,    -1,    -1,    -1,    45,    -1,    -1,
   708,   709,    -1,   711,    -1,    -1,    54,    -1,    56,    57,
    -1,    -1,    -1,    -1,  1110,  1111,  1112,  1113,  1114,    -1,
    -1,    -1,  1118,   331,    -1,   333,   334,     3,     4,     5,
     6,     7,     8,     9,   742,  1378,   744,    -1,    14,    -1,
    -1,   749,   750,   751,  1140,  1141,  1142,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,     4,     5,
    36,    -1,     8,     9,    -1,    41,    -1,    -1,    14,    45,
   378,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
    56,    57,    28,    -1,    30,    -1,    -1,    -1,    -1,   397,
    36,    -1,    -1,   401,    70,    -1,   404,    -1,    -1,    45,
    -1,   409,    -1,    -1,    80,  1448,  1449,  1450,    54,    -1,
    56,    57,    88,    -1,    90,    -1,    -1,    93,    94,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1472,
    -1,  1227,  1228,    -1,  1230,    -1,    -1,    -1,    -1,    -1,
    -1,  1450,    -1,     1,    -1,     3,     4,     5,     6,     7,
     8,     9,    10,    11,    12,    13,    14,    -1,  1467,    -1,
    -1,   469,    -1,   471,    -1,    -1,    -1,    -1,    -1,    -1,
    28,    29,    30,    31,    32,    -1,    34,    35,    36,    -1,
    38,    39,    40,    41,    42,    43,    -1,    45,   496,    47,
    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
    58,    -1,    -1,    61,    -1,    -1,    -1,   915,   916,    67,
    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
    88,    -1,    90,    -1,    -1,    93,    94,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,
    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   572,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   583,   584,   985,   586,   587,
    63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1017,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   639,    -1,    -1,    -1,    -1,    -1,    -1,   646,   647,
     1,    -1,     3,     4,     5,     6,    -1,     8,     9,    10,
    11,   659,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
   678,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
    51,    52,    53,    54,    -1,    56,    57,    58,    -1,    -1,
    61,    -1,  1110,  1111,    -1,    -1,    67,    -1,    -1,    70,
  1118,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
    -1,    -1,    -1,    -1,    -1,    86,    87,    88,   736,    -1,
    -1,   739,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,   110,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1171,   772,   773,   774,    -1,  1176,    -1,
  1178,    -1,    -1,    -1,    -1,    -1,   784,    63,    64,    65,
    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    80,    81,    82,    83,    84,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1,    -1,     3,     4,     5,     6,     7,     8,     9,  1227,
  1228,    12,  1230,    14,    -1,   111,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    25,    -1,    27,    -1,    -1,    -1,
    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,   857,
    41,   859,    -1,    -1,    45,    -1,    47,    -1,    -1,  1267,
    -1,    -1,   870,    54,    -1,    56,    57,    58,    59,    60,
    -1,    62,    63,    64,    65,    66,    67,    68,    69,    70,
    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
    81,    82,    83,    84,    -1,    86,    87,    88,    -1,    90,
    91,    92,    93,    94,    95,    -1,    97,    -1,    -1,    -1,
    -1,   102,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
   111,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
     6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
    36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
    46,    -1,   980,    49,    50,    51,    52,    53,    54,    -1,
    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,  1007,
    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
    86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    95,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   109,   110,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1062,  1063,    -1,  1065,     1,    -1,
     3,     4,     5,     6,     7,     8,     9,    10,    11,    -1,
    13,    14,    15,    -1,    17,    18,    19,    20,    21,    22,
    23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    44,    45,    46,    -1,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,    58,  1124,    60,    61,    -1,
    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,    -1,    -1,  1156,    -1,
    93,     1,    95,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    12,    13,    14,    -1,  1174,   110,  1176,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
    40,    41,    42,    43,    -1,    45,    -1,    47,    -1,    49,
    50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
    90,    -1,    -1,    93,    94,     1,    -1,     3,     4,     5,
     6,     7,     8,     9,    10,    11,    12,    13,    14,    -1,
   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,    35,
    36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,     4,
     5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
    -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,
    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
    -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,
    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
     4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
    94,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
    10,    11,    -1,    13,    14,    -1,   110,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
    50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,   109,
   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
   109,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
    88,    -1,    -1,    -1,    -1,    93,    -1,     1,    -1,     3,
     4,     5,     6,   101,     8,     9,    10,    11,    -1,    13,
    14,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
    -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,
     3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
    13,    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,
    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,
    93,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,
    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
    62,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
     1,    93,     3,     4,     5,     6,    -1,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
    51,    52,    53,    54,    -1,    56,    57,    58,    -1,    -1,
    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
    -1,     1,    93,     3,     4,     5,     6,    -1,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
    50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
    60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,     1,
    -1,    70,     4,     5,    -1,    -1,     8,     9,    -1,    78,
    79,    80,    14,    -1,    -1,    -1,    -1,    86,    87,    88,
    -1,    -1,    -1,    -1,    93,    -1,    28,    -1,    30,    -1,
    -1,    -1,    -1,    -1,    36,    -1,    38,    39,    -1,   108,
    -1,   110,    -1,    45,    -1,    47,    -1,    -1,    -1,    -1,
    -1,    -1,    54,    -1,    56,    57,    -1,    59,    -1,    -1,
    -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    82,    83,    -1,    -1,    86,    87,    88,    -1,    -1,    91,
    -1,     1,    94,     3,     4,     5,     6,    -1,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,   110,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
    50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
    88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
    -1,    -1,    -1,    -1,    -1,    67,    -1,     1,    70,     3,
     4,     5,     6,     7,     8,     9,    78,    79,    80,    -1,
    14,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
    -1,    93,    -1,    -1,    28,    -1,    30,    31,    32,    -1,
    -1,    -1,    36,    37,    -1,    -1,    -1,    41,   110,   111,
    -1,    45,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
    54,    -1,    56,    57,    -1,    -1,    60,    -1,    62,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,    93,
    -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    11,    -1,    13,    14,    15,   109,    17,    18,    19,    20,
    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    31,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
    41,    42,    43,    44,    45,    46,    -1,    -1,    49,    50,
    51,    52,    53,    54,    -1,    56,    57,    58,    -1,    60,
    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
    -1,    -1,    93,    -1,    95,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,   110,
     3,     4,     5,     6,     7,     8,     9,    10,    11,    -1,
    13,    14,    15,    -1,    17,    18,    19,    20,    21,    22,
    23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    44,    45,    46,    -1,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,    58,    -1,    60,    61,    -1,
    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,
    93,    -1,    95,    -1,     3,     4,     5,     6,     7,     8,
     9,    10,    11,    -1,    13,    14,    15,   110,    17,    18,
    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    44,    45,    46,    -1,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
    -1,    60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
    -1,    -1,    -1,    -1,    93,    -1,    95,    -1,     3,     4,
     5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
    15,   110,    17,    18,    19,    20,    21,    22,    23,    24,
    25,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
    35,    36,    -1,    38,    39,    40,    41,    42,    43,    44,
    45,    46,    -1,    -1,    49,    50,    51,    52,    53,    54,
    -1,    56,    57,    -1,    -1,    60,    61,    -1,    -1,    -1,
    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,
    95,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    12,    13,    14,    -1,    -1,   110,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
    42,    43,    -1,    45,    -1,    47,    -1,    49,    50,    51,
    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    90,    -1,
    -1,    93,    94,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    12,    13,    14,    -1,    -1,    -1,   110,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
    40,    41,    42,    43,    -1,    45,    -1,    47,    -1,    49,
    50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
    90,    -1,    -1,    93,    94,     3,     4,     5,     6,    -1,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    47,
    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
    88,    -1,    90,    -1,    -1,    93,    94,     3,     4,     5,
     6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
    36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
    -1,    47,    -1,    49,    50,    51,    52,    53,    54,    -1,
    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
    86,    87,    88,    -1,    90,    -1,    -1,    93,    94,     3,
     4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
    54,    -1,    56,    57,    -1,    -1,    60,    61,    -1,    -1,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
     3,     4,     5,     6,     7,     8,     9,    10,    11,    -1,
    13,    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,     6,
    93,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
    -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
    87,    88,     3,     4,     5,     6,    93,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,
    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,
     5,     6,    93,     8,     9,    10,    11,    -1,    13,    14,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
    -1,    86,    87,    88,     3,     4,     5,     6,    93,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
     3,     4,     5,     6,    93,     8,     9,    10,    11,    -1,
    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,
    93,    94,     3,     4,     5,     6,    -1,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,   110,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,
     5,     6,    93,     8,     9,    10,    11,    -1,    13,    14,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
    -1,    86,    87,    88,     3,     4,     5,     6,    93,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
     3,     4,     5,     6,    93,     8,     9,    10,    11,    -1,
    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,     6,
    93,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
    -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
    87,    88,     3,     4,     5,     6,    93,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,
    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,
     5,     6,    93,     8,     9,    10,    11,    -1,    13,    14,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
    -1,    86,    87,    88,     3,     4,     5,     6,    93,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     1,    70,     3,     4,     5,     6,     7,     8,     9,    78,
    79,    80,    -1,    14,    -1,    -1,    -1,    86,    87,    88,
    -1,    -1,    -1,    -1,    93,    -1,    27,    28,    -1,    30,
    31,    32,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
    41,   110,    -1,    44,    45,    46,    -1,    48,    -1,    -1,
    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    80,
     3,     4,     5,     6,     7,     8,     9,    88,    -1,    -1,
    -1,    14,    93,    -1,    -1,    -1,    -1,    98,    -1,    -1,
    -1,    -1,    -1,    -1,    27,    28,    -1,    30,    31,    32,
    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,
    -1,    44,    45,    46,    -1,    48,    -1,    -1,    -1,    -1,
    -1,    54,    -1,    56,    57,    -1,    -1,    60,    -1,     3,
     4,     5,     6,     7,     8,     9,    -1,    70,    12,    -1,
    14,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    88,    30,    31,    -1,    -1,
    93,    -1,    36,    -1,    -1,    98,    -1,    41,    -1,    -1,
    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    54,    -1,    56,    57,     3,     4,     5,     6,     7,     8,
     9,    -1,    -1,    -1,    -1,    14,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    28,
    -1,    30,    31,    -1,    88,    -1,    -1,    36,    -1,    93,
    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,
    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    70,     3,     4,     5,     6,     7,     8,     9,    -1,
    -1,    80,    -1,    14,    -1,    -1,    -1,    -1,    -1,    88,
    -1,    -1,    -1,    -1,    93,    -1,    -1,    28,    -1,    30,
    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,
    -1,     3,     4,     5,     6,     7,     8,     9,    -1,    70,
    -1,    -1,    14,    -1,    -1,    -1,    -1,    -1,    -1,    80,
    -1,    -1,    -1,    -1,    -1,    -1,    28,    88,    30,    31,
    -1,    -1,    93,    -1,    36,    -1,    -1,    -1,    -1,    41,
    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    54,    -1,    56,    57,     3,     4,     5,     6,
     7,     8,     9,    -1,    -1,    -1,    -1,    14,    70,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,
    -1,    28,    -1,    30,    31,    -1,    88,    -1,    -1,    36,
    -1,    93,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,
    57,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
    -1,    -1,    14,    70,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    31,
    -1,    88,    -1,    -1,    36,    -1,    93,    -1,    -1,    41,
    -1,    -1,    -1,    45,    -1,    47,    -1,    -1,    -1,    -1,
    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,
    -1,    93,    63,    64,    65,    66,    67,    68,    69,    70,
    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
    81,    82,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    59,    -1,    -1,   107,    63,    64,    65,
    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    80,    81,    82,    83,    84,    62,
    63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
    83,    84,    63,    64,    65,    66,    67,    68,    69,    70,
    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
    81,    82,    83,    84
};
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
#line 3 "/usr/cygnus/gnupro-98r1/share/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 __cplusplus
extern "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 YYPURE

int   yychar;                 /*  the lookahead symbol            */
YYSTYPE     yylval;                 /*  the semantic value of the       */
                        /*  lookahead symbol                */

#ifdef YYLSP_NEEDED
YYLTYPE yylloc;               /*  location data for the lookahead */
                        /*  symbol                    */
#endif

int yynerrs;                  /*  number of parse errors so far       */
#endif  /* not YYPURE */

#if YYDEBUG != 0
int 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/cygnus/gnupro-98r1/share/bison.simple"

/* The user can define YYPARSE_PARAM as the name of an argument to be passed
   into yyparse.  The argument should have type void *.
   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 */

int
yyparse(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 2:
#line 334 "parse.y"
{ finish_translation_unit (); ;
    break;}
case 3:
#line 342 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 4:
#line 344 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 5:
#line 346 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 8:
#line 355 "parse.y"
{ have_extern_spec = 1;
              used_extern_spec = 0;
              yyval.ttype = NULL_TREE; ;
    break;}
case 9:
#line 360 "parse.y"
{ have_extern_spec = 0; ;
    break;}
case 10:
#line 365 "parse.y"
{ yyval.itype = pedantic;
              pedantic = 0; ;
    break;}
case 12:
#line 374 "parse.y"
{ if (pending_lang_change) do_pending_lang_change(); ;
    break;}
case 13:
#line 376 "parse.y"
{ if (! toplevel_bindings_p () && ! pseudo_global_level_p())
              pop_everything (); ;
    break;}
case 14:
#line 382 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 15:
#line 384 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 16:
#line 386 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 17:
#line 388 "parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
              assemble_asm (yyvsp[-2].ttype); ;
    break;}
case 18:
#line 391 "parse.y"
{ pop_lang_context (); ;
    break;}
case 19:
#line 393 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
              pop_lang_context (); ;
    break;}
case 20:
#line 396 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
              pop_lang_context (); ;
    break;}
case 21:
#line 399 "parse.y"
{ push_namespace (yyvsp[-1].ttype); ;
    break;}
case 22:
#line 401 "parse.y"
{ pop_namespace (); ;
    break;}
case 23:
#line 403 "parse.y"
{ push_namespace (NULL_TREE); ;
    break;}
case 24:
#line 405 "parse.y"
{ pop_namespace (); ;
    break;}
case 26:
#line 408 "parse.y"
{ do_toplevel_using_decl (yyvsp[-1].ttype); ;
    break;}
case 28:
#line 411 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 29:
#line 416 "parse.y"
{ begin_only_namespace_names (); ;
    break;}
case 30:
#line 418 "parse.y"
{
              end_only_namespace_names ();
              if (lastiddecl)
                yyvsp[-1].ttype = lastiddecl;
              do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
            ;
    break;}
case 31:
#line 428 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 32:
#line 430 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 33:
#line 432 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 34:
#line 437 "parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 35:
#line 439 "parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
    break;}
case 36:
#line 441 "parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 37:
#line 446 "parse.y"
{ begin_only_namespace_names (); ;
    break;}
case 38:
#line 448 "parse.y"
{
              end_only_namespace_names ();
              /* If no declaration was found, the using-directive is
                 invalid. Since that was not reported, we need the
                 identifier for the error message. */
              if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
                yyvsp[-1].ttype = lastiddecl;
              do_using_directive (yyvsp[-1].ttype);
            ;
    break;}
case 39:
#line 461 "parse.y"
{
              if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
                yyval.ttype = lastiddecl;
              got_scope = yyval.ttype;
            ;
    break;}
case 40:
#line 467 "parse.y"
{
              yyval.ttype = yyvsp[-1].ttype;
              if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
                yyval.ttype = lastiddecl;
              got_scope = yyval.ttype;
            ;
    break;}
case 43:
#line 478 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 44:
#line 480 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 45:
#line 485 "parse.y"
{ push_lang_context (yyvsp[0].ttype); ;
    break;}
case 46:
#line 487 "parse.y"
{ if (current_lang_name != yyvsp[0].ttype)
                cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
              pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
    break;}
case 47:
#line 494 "parse.y"
{ begin_template_parm_list (); ;
    break;}
case 48:
#line 496 "parse.y"
{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
    break;}
case 49:
#line 498 "parse.y"
{ begin_specialization(); 
              yyval.ttype = NULL_TREE; ;
    break;}
case 50:
#line 504 "parse.y"
{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 51:
#line 506 "parse.y"
{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 52:
#line 511 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 53:
#line 513 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 54:
#line 517 "parse.y"
{ yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 55:
#line 519 "parse.y"
{ yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
    break;}
case 56:
#line 524 "parse.y"
{ yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 57:
#line 536 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 58:
#line 538 "parse.y"
{ yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
    break;}
case 59:
#line 540 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 60:
#line 542 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
    break;}
case 61:
#line 544 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 62:
#line 546 "parse.y"
{
              if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
                  && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
                  && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
                {
                  error ("invalid default template argument");
                  yyvsp[0].ttype = error_mark_node;
                }
              yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
            ;
    break;}
case 63:
#line 561 "parse.y"
{ 
                  if (yyvsp[-1].ttype) 
                    end_template_decl (); 
              else
                end_specialization ();
            ;
    break;}
case 64:
#line 569 "parse.y"
{ 
                  if (yyvsp[-1].ttype) 
                    end_template_decl ();
              else
                end_specialization (); 
                ;
    break;}
case 66:
#line 580 "parse.y"
{;
    break;}
case 67:
#line 582 "parse.y"
{
              note_list_got_semicolon (yyvsp[-2].ftype.t);
            ;
    break;}
case 68:
#line 586 "parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 70:
#line 589 "parse.y"
{
              tree t, attrs;
              split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
              shadow_tag (t);
              note_list_got_semicolon (yyvsp[-1].ftype.t);
            ;
    break;}
case 74:
#line 602 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 75:
#line 604 "parse.y"
{ yyval.itype = 1; ;
    break;}
case 81:
#line 620 "parse.y"
{ finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
    break;}
case 82:
#line 622 "parse.y"
{ ;
    break;}
case 83:
#line 624 "parse.y"
{ ;
    break;}
case 84:
#line 629 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 85:
#line 631 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 86:
#line 633 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
              yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
            ;
    break;}
case 87:
#line 637 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 88:
#line 639 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 89:
#line 641 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
              yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
            ;
    break;}
case 90:
#line 645 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 91:
#line 647 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 92:
#line 649 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
              yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
            ;
    break;}
case 93:
#line 653 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 94:
#line 655 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 95:
#line 657 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
              yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
            ;
    break;}
case 96:
#line 664 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
                YYERROR1; ;
    break;}
case 97:
#line 667 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
                YYERROR1; ;
    break;}
case 98:
#line 670 "parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
                YYERROR1; ;
    break;}
case 99:
#line 673 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
                YYERROR1; ;
    break;}
case 100:
#line 676 "parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
                YYERROR1; ;
    break;}
case 101:
#line 682 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 102:
#line 684 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 103:
#line 686 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 104:
#line 688 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 105:
#line 695 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
              yyval.ttype = start_method (specs, yyvsp[0].ttype);
             rest_of_mdef:
              if (! yyval.ttype)
                YYERROR1;
              if (yychar == YYEMPTY)
                yychar = YYLEX;
              reinit_parse_for_method (yychar, yyval.ttype); ;
    break;}
case 106:
#line 704 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 107:
#line 706 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
              yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 108:
#line 709 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
              yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 109:
#line 712 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
    break;}
case 110:
#line 714 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
              yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 111:
#line 717 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
    break;}
case 112:
#line 722 "parse.y"
{
              if (! current_function_parms_stored)
                store_parm_decls ();
              yyval.ttype = yyvsp[0].ttype;
            ;
    break;}
case 113:
#line 731 "parse.y"
{ store_return_init (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 114:
#line 733 "parse.y"
{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 115:
#line 735 "parse.y"
{ store_return_init (yyval.ttype, NULL_TREE); ;
    break;}
case 116:
#line 740 "parse.y"
{
              if (yyvsp[0].itype == 0)
                error ("no base initializers given following ':'");
              setup_vtbl_ptr ();
              /* Always keep the BLOCK node associated with the outermost
                 pair of curley braces of a function.  These are needed
                 for correct operation of dwarfout.c.  */
              keep_next_level ();
            ;
    break;}
case 117:
#line 753 "parse.y"
{
              if (! current_function_parms_stored)
                store_parm_decls ();

              if (DECL_CONSTRUCTOR_P (current_function_decl))
                {
                  /* Make a contour for the initializer list.  */
                  pushlevel (0);
                  clear_last_expr ();
                  expand_start_bindings (0);
                }
              else if (current_class_type == NULL_TREE)
                error ("base initializers not allowed for non-member functions");
              else if (! DECL_CONSTRUCTOR_P (current_function_decl))
                error ("only constructors take base initializers");
            ;
    break;}
case 118:
#line 773 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 119:
#line 775 "parse.y"
{ yyval.itype = 1; ;
    break;}
case 122:
#line 782 "parse.y"
{
              if (current_class_name)
                pedwarn ("anachronistic old style base class initializer");
              expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
            ;
    break;}
case 123:
#line 788 "parse.y"
{
              if (current_class_name)
                pedwarn ("anachronistic old style base class initializer");
              expand_member_init (current_class_ref, NULL_TREE, void_type_node);
            ;
    break;}
case 124:
#line 794 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 125:
#line 796 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
    break;}
case 126:
#line 798 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 127:
#line 800 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
    break;}
case 128:
#line 802 "parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
                              yyvsp[-1].ttype); ;
    break;}
case 129:
#line 805 "parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
                              void_type_node); ;
    break;}
case 141:
#line 831 "parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
              yyungetc (';', 1); ;
    break;}
case 143:
#line 835 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
              do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 145:
#line 839 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 147:
#line 842 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 149:
#line 845 "parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
              yyungetc (';', 1); ;
    break;}
case 151:
#line 850 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
              do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 153:
#line 854 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 155:
#line 857 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 157:
#line 862 "parse.y"
{ begin_explicit_instantiation(); ;
    break;}
case 158:
#line 865 "parse.y"
{ end_explicit_instantiation(); ;
    break;}
case 159:
#line 873 "parse.y"
{
              yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
              if (yyval.ttype != error_mark_node)
                yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
            ;
    break;}
case 160:
#line 879 "parse.y"
{
              yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
              if (yyval.ttype != error_mark_node)
                yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
            ;
    break;}
case 162:
#line 889 "parse.y"
{
              yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
              if (yyval.ttype != error_mark_node)
                yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
            ;
    break;}
case 164:
#line 899 "parse.y"
{
              /* Handle `Class<Class<Type>>' without space in the `>>' */
              pedwarn ("`>>' should be `> >' in template class name");
              yyungetc ('>', 1);
            ;
    break;}
case 165:
#line 908 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 167:
#line 914 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 168:
#line 916 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 169:
#line 921 "parse.y"
{ yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
    break;}
case 170:
#line 923 "parse.y"
{ yyval.ttype = lastiddecl; ;
    break;}
case 172:
#line 929 "parse.y"
{ yyval.code = NEGATE_EXPR; ;
    break;}
case 173:
#line 931 "parse.y"
{ yyval.code = CONVERT_EXPR; ;
    break;}
case 174:
#line 933 "parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
    break;}
case 175:
#line 935 "parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
    break;}
case 176:
#line 937 "parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
    break;}
case 177:
#line 942 "parse.y"
{ yyval.ttype = build_x_compound_expr (yyval.ttype); ;
    break;}
case 179:
#line 948 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
                   cond_stmt_keyword);
              yyval.ttype = integer_zero_node; ;
    break;}
case 180:
#line 952 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 181:
#line 957 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
                   cond_stmt_keyword);
              yyval.ttype = integer_zero_node; ;
    break;}
case 182:
#line 961 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 183:
#line 966 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 185:
#line 969 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 186:
#line 974 "parse.y"
{ {
              tree d;
              for (d = getdecls (); d; d = TREE_CHAIN (d))
                if (TREE_CODE (d) == TYPE_DECL) {
                  tree s = TREE_TYPE (d);
                  if (TREE_CODE (s) == RECORD_TYPE)
                  cp_error ("definition of class `%T' in condition", s);
                  else if (TREE_CODE (s) == ENUMERAL_TYPE)
                  cp_error ("definition of enum `%T' in condition", s);
                }
              }
              current_declspecs = yyvsp[-4].ftype.t;
              yyvsp[0].itype = suspend_momentary ();
              yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
                                yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
            ;
    break;}
case 187:
#line 991 "parse.y"
{ 
              cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
              resume_momentary (yyvsp[-2].itype);
              yyval.ttype = convert_from_reference (yyvsp[-1].ttype); 
              if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
                cp_error ("definition of array `%#D' in condition", yyval.ttype); 
            ;
    break;}
case 193:
#line 1010 "parse.y"
{ yyval.ttype = begin_compound_stmt (1); ;
    break;}
case 194:
#line 1012 "parse.y"
{ finish_compound_stmt (1, yyvsp[-1].ttype); ;
    break;}
case 196:
#line 1019 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
                              build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 197:
#line 1022 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
                              build_expr_list (NULL_TREE, error_mark_node)); ;
    break;}
case 198:
#line 1025 "parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 199:
#line 1027 "parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
    break;}
case 200:
#line 1032 "parse.y"
{ yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
    break;}
case 202:
#line 1038 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 203:
#line 1041 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
              pedantic = yyvsp[-1].itype; ;
    break;}
case 204:
#line 1044 "parse.y"
{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
    break;}
case 205:
#line 1046 "parse.y"
{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 206:
#line 1048 "parse.y"
{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 207:
#line 1050 "parse.y"
{ yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 208:
#line 1053 "parse.y"
{ if (pedantic)
                pedwarn ("ANSI C++ forbids `&&'");
              yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
    break;}
case 209:
#line 1057 "parse.y"
{ yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
    break;}
case 210:
#line 1059 "parse.y"
{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
    break;}
case 211:
#line 1061 "parse.y"
{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
    break;}
case 212:
#line 1063 "parse.y"
{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
              check_for_new_type ("alignof", yyvsp[-1].ftype); ;
    break;}
case 213:
#line 1069 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
              check_for_new_type ("new", yyvsp[0].ftype); ;
    break;}
case 214:
#line 1072 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
              check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 215:
#line 1075 "parse.y"
{ yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
              check_for_new_type ("new", yyvsp[0].ftype); ;
    break;}
case 216:
#line 1078 "parse.y"
{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
              check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 217:
#line 1091 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
                          NULL_TREE, yyvsp[-4].itype); 
              check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 218:
#line 1096 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
              check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 219:
#line 1100 "parse.y"
{ yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype); 
              check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 220:
#line 1104 "parse.y"
{ yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype); 
              check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 221:
#line 1108 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
    break;}
case 222:
#line 1110 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
              if (yychar == YYEMPTY)
                yychar = YYLEX; ;
    break;}
case 223:
#line 1114 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
              if (yychar == YYEMPTY)
                yychar = YYLEX; ;
    break;}
case 224:
#line 1118 "parse.y"
{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 225:
#line 1120 "parse.y"
{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 226:
#line 1130 "parse.y"
{ finish_new_placement (NULL_TREE, yyvsp[-2].itype); ;
    break;}
case 227:
#line 1133 "parse.y"
{ yyval.itype = begin_new_placement (); ;
    break;}
case 228:
#line 1137 "parse.y"
{ yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
    break;}
case 229:
#line 1139 "parse.y"
{ cp_pedwarn ("old style placement syntax, use () instead");
              yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
    break;}
case 230:
#line 1145 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 231:
#line 1147 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 232:
#line 1149 "parse.y"
{
              cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
              yyval.ttype = error_mark_node;
            ;
    break;}
case 233:
#line 1157 "parse.y"
{
              if (pedantic)
                pedwarn ("ANSI C++ forbids initialization of new expression with `='");
              if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
                  && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
                yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
              else
                yyval.ttype = yyvsp[0].ttype;
            ;
    break;}
case 234:
#line 1171 "parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
              yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
              check_for_new_type ("cast", yyvsp[-1].ftype); ;
    break;}
case 235:
#line 1175 "parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); 
              yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
              check_for_new_type ("cast", yyvsp[-1].ftype); ;
    break;}
case 237:
#line 1183 "parse.y"
{ yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 238:
#line 1185 "parse.y"
{ 
              tree init = build_nt (CONSTRUCTOR, NULL_TREE,
                              nreverse (yyvsp[-2].ttype)); 
              if (pedantic)
                pedwarn ("ANSI C++ forbids constructor-expressions");
              /* Indicate that this was a GNU C constructor expression.  */
              TREE_HAS_CONSTRUCTOR (init) = 1;

              yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
            ;
    break;}
case 240:
#line 1201 "parse.y"
{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 241:
#line 1203 "parse.y"
{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 242:
#line 1205 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 243:
#line 1207 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 244:
#line 1209 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 245:
#line 1211 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 246:
#line 1213 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 247:
#line 1215 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 248:
#line 1217 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 249:
#line 1219 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 250:
#line 1221 "parse.y"
{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 251:
#line 1223 "parse.y"
{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 252:
#line 1225 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 253:
#line 1227 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 254:
#line 1229 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 255:
#line 1231 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 256:
#line 1233 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 257:
#line 1235 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 258:
#line 1237 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 259:
#line 1239 "parse.y"
{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 260:
#line 1241 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
              if (yyval.ttype != error_mark_node)
                    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
    break;}
case 261:
#line 1245 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 262:
#line 1247 "parse.y"
{ yyval.ttype = build_throw (NULL_TREE); ;
    break;}
case 263:
#line 1249 "parse.y"
{ yyval.ttype = build_throw (yyvsp[0].ttype); ;
    break;}
case 264:
#line 1267 "parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 270:
#line 1276 "parse.y"
{ yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE); ;
    break;}
case 271:
#line 1280 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 272:
#line 1282 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 273:
#line 1287 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 274:
#line 1289 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 275:
#line 1292 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 280:
#line 1304 "parse.y"
{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
    break;}
case 281:
#line 1306 "parse.y"
{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 282:
#line 1308 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 283:
#line 1313 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 284:
#line 1315 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 288:
#line 1325 "parse.y"
{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
    break;}
case 289:
#line 1330 "parse.y"
{
              if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
                yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
              else 
                yyval.ttype = finish_id_expr (yyvsp[0].ttype);
            ;
    break;}
case 292:
#line 1339 "parse.y"
{
              if (processing_template_decl)
                push_obstacks (&permanent_obstack, &permanent_obstack);
              yyval.ttype = combine_strings (yyval.ttype);
              if (processing_template_decl)
                pop_obstacks ();
            ;
    break;}
case 293:
#line 1347 "parse.y"
{ yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
    break;}
case 294:
#line 1349 "parse.y"
{ yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
              yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
    break;}
case 295:
#line 1352 "parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 296:
#line 1354 "parse.y"
{ if (current_function_decl == 0)
                {
                  error ("braced-group within expression allowed only inside a function");
                  YYERROR;
                }
              if (pedantic)
                pedwarn ("ANSI C++ forbids braced-groups within expressions");  
              yyval.ttype = begin_stmt_expr (); 
            ;
    break;}
case 297:
#line 1364 "parse.y"
{ yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 298:
#line 1369 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
    break;}
case 299:
#line 1371 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
    break;}
case 300:
#line 1373 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
    break;}
case 301:
#line 1375 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
    break;}
case 302:
#line 1377 "parse.y"
{ yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 303:
#line 1379 "parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
    break;}
case 304:
#line 1381 "parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
    break;}
case 305:
#line 1384 "parse.y"
{ yyval.ttype = finish_this_expr (); ;
    break;}
case 306:
#line 1386 "parse.y"
{
              tree type = NULL_TREE;
              tree id = yyval.ttype;

              /* This is a C cast in C++'s `functional' notation.  */
              if (yyvsp[-1].ttype == error_mark_node)
                {
                  yyval.ttype = error_mark_node;
                  break;
                }
#if 0
              if (yyvsp[-1].ttype == NULL_TREE)
                {
                  error ("cannot cast null list to type `%s'",
                         IDENTIFIER_POINTER (TYPE_NAME (id)));
                  yyval.ttype = error_mark_node;
                  break;
                }
#endif
#if 0
              /* type is not set! (mrs) */
              if (type == error_mark_node)
                yyval.ttype = error_mark_node;
              else
#endif
                {
                  if (id == ridpointers[(int) RID_CONST])
                    type = build_type_variant (integer_type_node, 1, 0);
                  else if (id == ridpointers[(int) RID_VOLATILE])
                    type = build_type_variant (integer_type_node, 0, 1);
#if 0
                  /* should not be able to get here (mrs) */
                  else if (id == ridpointers[(int) RID_FRIEND])
                    {
                      error ("cannot cast expression to `friend' type");
                      yyval.ttype = error_mark_node;
                      break;
                    }
#endif
                  else my_friendly_abort (79);
                  yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
                }
            ;
    break;}
case 308:
#line 1431 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
              check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
              yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
    break;}
case 309:
#line 1435 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
              check_for_new_type ("static_cast", yyvsp[-4].ftype);
              yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
    break;}
case 310:
#line 1439 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
              check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
              yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
    break;}
case 311:
#line 1443 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
              check_for_new_type ("const_cast", yyvsp[-4].ftype);
              yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
    break;}
case 312:
#line 1447 "parse.y"
{ yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
    break;}
case 313:
#line 1449 "parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);
              check_for_new_type ("typeid", yyvsp[-1].ftype);
              yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
    break;}
case 314:
#line 1453 "parse.y"
{ yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
    break;}
case 315:
#line 1455 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 316:
#line 1457 "parse.y"
{
              got_scope = NULL_TREE;
              if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
                yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
              else
                yyval.ttype = yyvsp[0].ttype;
            ;
    break;}
case 317:
#line 1465 "parse.y"
{ yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
    break;}
case 318:
#line 1467 "parse.y"
{ yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 319:
#line 1469 "parse.y"
{ yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 320:
#line 1471 "parse.y"
{ 
              yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
            ;
    break;}
case 321:
#line 1475 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 322:
#line 1477 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 323:
#line 1479 "parse.y"
{ yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
    break;}
case 324:
#line 1481 "parse.y"
{ if (processing_template_decl)
                yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
              else
                yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
    break;}
case 325:
#line 1486 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 326:
#line 1488 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 327:
#line 1490 "parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 328:
#line 1492 "parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 329:
#line 1495 "parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 330:
#line 1497 "parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 331:
#line 1499 "parse.y"
{
              yyval.ttype = error_mark_node;
            ;
    break;}
case 332:
#line 1544 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 333:
#line 1546 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 334:
#line 1551 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 335:
#line 1553 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 336:
#line 1558 "parse.y"
{ yyval.ttype = boolean_true_node; ;
    break;}
case 337:
#line 1560 "parse.y"
{ yyval.ttype = boolean_false_node; ;
    break;}
case 339:
#line 1567 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 340:
#line 1572 "parse.y"
{
              if (! current_function_parms_stored)
                store_parm_decls ();
              setup_vtbl_ptr ();
              /* Always keep the BLOCK node associated with the outermost
                 pair of curley braces of a function.  These are needed
                 for correct operation of dwarfout.c.  */
              keep_next_level ();
            ;
    break;}
case 341:
#line 1585 "parse.y"
{ got_object = TREE_TYPE (yyval.ttype); ;
    break;}
case 342:
#line 1587 "parse.y"
{
              yyval.ttype = build_x_arrow (yyval.ttype); 
              got_object = TREE_TYPE (yyval.ttype);
            ;
    break;}
case 343:
#line 1595 "parse.y"
{
              resume_momentary (yyvsp[-1].itype);
              if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
                note_got_semicolon (yyvsp[-2].ftype.t);
            ;
    break;}
case 344:
#line 1601 "parse.y"
{
              resume_momentary (yyvsp[-1].itype);
              note_list_got_semicolon (yyvsp[-2].ftype.t);
            ;
    break;}
case 345:
#line 1606 "parse.y"
{ resume_momentary (yyvsp[-1].itype); ;
    break;}
case 346:
#line 1608 "parse.y"
{
              shadow_tag (yyvsp[-1].ftype.t);
              note_list_got_semicolon (yyvsp[-1].ftype.t);
            ;
    break;}
case 347:
#line 1613 "parse.y"
{ warning ("empty declaration"); ;
    break;}
case 348:
#line 1615 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 351:
#line 1629 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
                                   NULL_TREE, NULL_TREE); ;
    break;}
case 352:
#line 1632 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
                                   NULL_TREE); ;
    break;}
case 353:
#line 1639 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 354:
#line 1642 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 355:
#line 1645 "parse.y"
{ yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 356:
#line 1648 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
              yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
    break;}
case 357:
#line 1651 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
              yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 360:
#line 1667 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
              yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 361:
#line 1670 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 362:
#line 1673 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
              yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 363:
#line 1676 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 364:
#line 1679 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 365:
#line 1682 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
                               chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
              yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 366:
#line 1689 "parse.y"
{ if (extra_warnings)
                warning ("`%s' is not at beginning of declaration",
                       IDENTIFIER_POINTER (yyval.ttype));
              yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
    break;}
case 367:
#line 1694 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
    break;}
case 368:
#line 1696 "parse.y"
{ if (extra_warnings)
                warning ("`%s' is not at beginning of declaration",
                       IDENTIFIER_POINTER (yyvsp[0].ttype));
              yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 369:
#line 1701 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 370:
#line 1703 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 371:
#line 1713 "parse.y"
{ yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 372:
#line 1715 "parse.y"
{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
    break;}
case 373:
#line 1717 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
              TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 374:
#line 1720 "parse.y"
{ if (extra_warnings && TREE_STATIC (yyval.ttype))
                warning ("`%s' is not at beginning of declaration",
                       IDENTIFIER_POINTER (yyvsp[0].ttype));
              yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
              TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
    break;}
case 375:
#line 1726 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 376:
#line 1728 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 377:
#line 1739 "parse.y"
{ yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); 
              yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 378:
#line 1742 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
              yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 379:
#line 1745 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 380:
#line 1748 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
              yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 381:
#line 1754 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 382:
#line 1756 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 384:
#line 1766 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 385:
#line 1768 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 386:
#line 1770 "parse.y"
{ yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
              yyval.ftype.new_type_flag = 0; ;
    break;}
case 387:
#line 1773 "parse.y"
{ yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
              yyval.ftype.new_type_flag = 0; ;
    break;}
case 388:
#line 1776 "parse.y"
{ tree type = TREE_TYPE (yyvsp[-1].ttype);

                  yyval.ftype.new_type_flag = 0;
              if (IS_AGGR_TYPE (type))
                {
                  sorry ("sigof type specifier");
                  yyval.ftype.t = type;
                }
              else
                {
                  error ("`sigof' applied to non-aggregate expression");
                  yyval.ftype.t = error_mark_node;
                }
            ;
    break;}
case 389:
#line 1791 "parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);

                  yyval.ftype.new_type_flag = 0;
              if (IS_AGGR_TYPE (type))
                {
                  sorry ("sigof type specifier");
                  yyval.ftype.t = type;
                }
              else
                {
                  error("`sigof' applied to non-aggregate type");
                  yyval.ftype.t = error_mark_node;
                }
            ;
    break;}
case 390:
#line 1811 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 391:
#line 1813 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 399:
#line 1834 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 400:
#line 1836 "parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 401:
#line 1841 "parse.y"
{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
                                yyvsp[-1].ttype, prefix_attributes); ;
    break;}
case 402:
#line 1845 "parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
    break;}
case 403:
#line 1847 "parse.y"
{ yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
                                yyvsp[0].ttype, prefix_attributes);
              cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 404:
#line 1860 "parse.y"
{ yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, 
                                 yyvsp[-1].ttype, 1, &yyval.ttype); ;
    break;}
case 405:
#line 1865 "parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
                          LOOKUP_ONLYCONVERTING);
              yyval.itype = yyvsp[-2].itype; ;
    break;}
case 406:
#line 1869 "parse.y"
{ tree d;
              yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
              cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 407:
#line 1876 "parse.y"
{ yyval.itype = yyvsp[0].itype; ;
    break;}
case 408:
#line 1880 "parse.y"
{ yyval.itype = yyvsp[0].itype; ;
    break;}
case 409:
#line 1885 "parse.y"
{ /* Set things up as initdcl0_innards expects.  */
            yyvsp[0].ttype = yyvsp[-1].ttype; 
              yyvsp[-1].ttype = NULL_TREE; ;
    break;}
case 410:
#line 1889 "parse.y"
{;
    break;}
case 411:
#line 1891 "parse.y"
{ tree d;
              parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
              cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 412:
#line 1900 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 413:
#line 1902 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 414:
#line 1907 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 415:
#line 1909 "parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 416:
#line 1914 "parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
    break;}
case 417:
#line 1919 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 418:
#line 1921 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 419:
#line 1926 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 420:
#line 1928 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 421:
#line 1930 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
    break;}
case 422:
#line 1932 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
    break;}
case 423:
#line 1934 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 428:
#line 1950 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 429:
#line 1952 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 430:
#line 1957 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 431:
#line 1959 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 433:
#line 1967 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
              TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 434:
#line 1970 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
              TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 435:
#line 1973 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
              TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 436:
#line 1976 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 437:
#line 1983 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 438:
#line 1985 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 439:
#line 1988 "parse.y"
{ yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 440:
#line 1990 "parse.y"
{ yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 441:
#line 1992 "parse.y"
{ yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 442:
#line 1997 "parse.y"
{ start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
                          NULL_TREE, 1);
              reinit_parse_for_function (); ;
    break;}
case 443:
#line 2003 "parse.y"
{
              int nested = (hack_decl_function_context
                        (current_function_decl) != NULL_TREE);
              finish_function (lineno, (int)yyvsp[-1].itype, nested);
              process_next_inline (yyvsp[-3].ttype);
            ;
    break;}
case 444:
#line 2010 "parse.y"
{ process_next_inline (yyvsp[-2].ttype); ;
    break;}
case 445:
#line 2012 "parse.y"
{ process_next_inline (yyvsp[-2].ttype); ;
    break;}
case 448:
#line 2024 "parse.y"
{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 449:
#line 2026 "parse.y"
{ replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
    break;}
case 451:
#line 2031 "parse.y"
{ do_pending_defargs (); ;
    break;}
case 452:
#line 2033 "parse.y"
{ do_pending_defargs (); ;
    break;}
case 453:
#line 2038 "parse.y"
{ yyvsp[0].itype = suspend_momentary ();
              yyval.ttype = start_enum (yyvsp[-1].ttype); ;
    break;}
case 454:
#line 2041 "parse.y"
{ yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
              yyval.ftype.new_type_flag = 1;
              resume_momentary ((int) yyvsp[-4].itype);
              check_for_missing_semicolon (yyvsp[-3].ttype); ;
    break;}
case 455:
#line 2046 "parse.y"
{ yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
              yyval.ftype.new_type_flag = 1;
              check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 456:
#line 2050 "parse.y"
{ yyvsp[0].itype = suspend_momentary ();
              yyval.ttype = start_enum (make_anon_name ()); ;
    break;}
case 457:
#line 2053 "parse.y"
{ yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
              resume_momentary ((int) yyvsp[-5].itype);
              check_for_missing_semicolon (yyvsp[-3].ttype);
              yyval.ftype.new_type_flag = 1; ;
    break;}
case 458:
#line 2058 "parse.y"
{ yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
              yyval.ftype.new_type_flag = 1;
              check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 459:
#line 2062 "parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
              yyval.ftype.new_type_flag = 0; ;
    break;}
case 460:
#line 2065 "parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
              yyval.ftype.new_type_flag = 0; ;
    break;}
case 461:
#line 2068 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype;
              yyval.ftype.new_type_flag = 0; ;
    break;}
case 462:
#line 2073 "parse.y"
{ 
              int semi;

              if (yychar == YYEMPTY)
                yychar = YYLEX;
              semi = yychar == ';';

              yyval.ttype = finish_class_definition (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi); 
            ;
    break;}
case 463:
#line 2083 "parse.y"
{ finish_default_args (); ;
    break;}
case 464:
#line 2085 "parse.y"
{ yyval.ftype.t = yyvsp[-3].ttype;
              yyval.ftype.new_type_flag = 1; 
              begin_inline_definitions (); ;
    break;}
case 465:
#line 2089 "parse.y"
{
              yyval.ftype.new_type_flag = 0;
              if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
                {
                  cp_error ("%T is not a class type", yyvsp[0].ttype);
                  yyval.ftype.t = error_mark_node;
                } 
              else
                {
                  yyval.ftype.t = yyvsp[0].ttype;
                  /* struct B: public A; is not accepted by the WP grammar.  */
                  if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
                    && ! TYPE_BEING_DEFINED (yyval.ftype.t))
                  cp_error ("base clause without member specification for `%#T'",
                          yyval.ftype.t);
                }
            ;
    break;}
case 469:
#line 2116 "parse.y"
{ if (pedantic && !in_system_header)
                pedwarn ("comma at end of enumerator list"); ;
    break;}
case 471:
#line 2123 "parse.y"
{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 472:
#line 2125 "parse.y"
{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 473:
#line 2127 "parse.y"
{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 474:
#line 2129 "parse.y"
{ error ("no body nor ';' separates two class, struct or union declarations"); ;
    break;}
case 475:
#line 2131 "parse.y"
{ yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 476:
#line 2136 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 477:
#line 2141 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 478:
#line 2143 "parse.y"
{ yyungetc ('{', 1); ;
    break;}
case 479:
#line 2145 "parse.y"
{ yyungetc (':', 1); ;
    break;}
case 480:
#line 2150 "parse.y"
{
              current_aggr = yyvsp[-2].ttype;
              yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
            ;
    break;}
case 481:
#line 2155 "parse.y"
{
              current_aggr = yyvsp[-3].ttype;
              yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
            ;
    break;}
case 482:
#line 2160 "parse.y"
{
              current_aggr = yyvsp[-2].ttype;
              yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
            ;
    break;}
case 483:
#line 2165 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 484:
#line 2167 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 485:
#line 2172 "parse.y"
{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
    break;}
case 486:
#line 2177 "parse.y"
{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
    break;}
case 487:
#line 2180 "parse.y"
{ 
              yyval.ttype = yyvsp[-1].ttype;
              if (yyvsp[0].ttype)
                    xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
            ;
    break;}
case 488:
#line 2186 "parse.y"
{ 
              yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
              if (TREE_INT_CST_LOW (current_aggr) == union_type 
                  && TREE_CODE (yyval.ttype) != UNION_TYPE)
                cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
              else if (TREE_CODE (yyval.ttype) == UNION_TYPE
                     && TREE_INT_CST_LOW (current_aggr) != union_type)
                cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
              if (yyvsp[0].ttype)
                {
                  if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
                    {
                      if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
                        && TYPE_SIZE (yyval.ttype) == NULL_TREE)
                      {
                        SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
                        if (processing_template_decl)
                        push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
                      }
                    else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
                      cp_error ("specialization after instantiation of `%T'", yyval.ttype);
                  }
                  xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype); 
                }
            ;
    break;}
case 489:
#line 2215 "parse.y"
{ yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
              yyungetc ('{', 1); ;
    break;}
case 492:
#line 2226 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 493:
#line 2228 "parse.y"
{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
    break;}
case 494:
#line 2230 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 496:
#line 2236 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 497:
#line 2241 "parse.y"
{
              tree type;
              if (yyvsp[0].ttype == NULL_TREE)
                {
                  error ("invalid base class");
                  type = error_mark_node;
                }
              else
                type = TREE_TYPE (yyvsp[0].ttype);
              if (! is_aggr_type (type, 1))
                yyval.ttype = NULL_TREE;
              else if (current_aggr == signature_type_node
                     && (! type) && (! IS_SIGNATURE (type)))
                {
                  error ("class name not allowed as base signature");
                  yyval.ttype = NULL_TREE;
                }
              else if (current_aggr == signature_type_node)
                {
                  sorry ("signature inheritance, base type `%s' ignored",
                       IDENTIFIER_POINTER (yyval.ttype));
                  yyval.ttype = build_tree_list (access_public_node, type);
                }
              else if (type && IS_SIGNATURE (type))
                {
                  error ("signature name not allowed as base class");
                  yyval.ttype = NULL_TREE;
                }
              else
                yyval.ttype = build_tree_list (access_default_node, type);
            ;
    break;}
case 498:
#line 2273 "parse.y"
{
              tree type;
              if (yyvsp[0].ttype == NULL_TREE)
                {
                  error ("invalid base class");
                  type = error_mark_node;
                }
              else
                type = TREE_TYPE (yyvsp[0].ttype);
              if (current_aggr == signature_type_node)
                error ("access and source specifiers not allowed in signature");
              if (! is_aggr_type (type, 1))
                yyval.ttype = NULL_TREE;
              else if (current_aggr == signature_type_node
                     && (! type) && (! IS_SIGNATURE (type)))
                {
                  error ("class name not allowed as base signature");
                  yyval.ttype = NULL_TREE;
                }
              else if (current_aggr == signature_type_node)
                {
                  sorry ("signature inheritance, base type `%s' ignored",
                       IDENTIFIER_POINTER (yyval.ttype));
                  yyval.ttype = build_tree_list (access_public_node, type);
                }
              else if (type && IS_SIGNATURE (type))
                {
                  error ("signature name not allowed as base class");
                  yyval.ttype = NULL_TREE;
                }
              else
                yyval.ttype = build_tree_list (yyval.ttype, type);
            ;
    break;}
case 499:
#line 2310 "parse.y"
{ yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
    break;}
case 501:
#line 2313 "parse.y"
{
              if (current_aggr == signature_type_node)
                {
                  if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
                  {
                    sorry ("`sigof' as base signature specifier");
                    yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
                  }
                  else
                  {
                    error ("`sigof' applied to non-aggregate expression");
                    yyval.ttype = error_mark_node;
                  }
                }
              else
                {
                  error ("`sigof' in struct or class declaration");
                  yyval.ttype = error_mark_node;
                }
            ;
    break;}
case 502:
#line 2334 "parse.y"
{
              if (current_aggr == signature_type_node)
                {
                  if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
                  {
                    sorry ("`sigof' as base signature specifier");
                    yyval.ttype = groktypename (yyvsp[-1].ftype.t);
                  }
                  else
                  {
                    error ("`sigof' applied to non-aggregate expression");
                    yyval.ttype = error_mark_node;
                  }
                }
              else
                {
                  error ("`sigof' in struct or class declaration");
                  yyval.ttype = error_mark_node;
                }
            ;
    break;}
case 504:
#line 2359 "parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
                cp_error ("`%D' access", yyvsp[-1].ttype);
              yyval.ttype = access_default_virtual_node; ;
    break;}
case 505:
#line 2363 "parse.y"
{
              if (yyvsp[-2].ttype != access_default_virtual_node)
                error ("multiple access specifiers");
              else if (yyvsp[-1].ttype == access_public_node)
                yyval.ttype = access_public_virtual_node;
              else if (yyvsp[-1].ttype == access_protected_node)
                yyval.ttype = access_protected_virtual_node;
              else /* $2 == access_private_node */
                yyval.ttype = access_private_virtual_node;
            ;
    break;}
case 506:
#line 2374 "parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
                cp_error ("`%D' access", yyvsp[-1].ttype);
              else if (yyval.ttype == access_public_node)
                yyval.ttype = access_public_virtual_node;
              else if (yyval.ttype == access_protected_node)
                yyval.ttype = access_protected_virtual_node;
              else if (yyval.ttype == access_private_node)
                yyval.ttype = access_private_virtual_node;
              else
                error ("multiple `virtual' specifiers");
            ;
    break;}
case 507:
#line 2389 "parse.y"
{ yyvsp[-1].ttype = begin_class_definition (yyvsp[-1].ttype); ;
    break;}
case 508:
#line 2394 "parse.y"
{
                yyval.ttype = build_self_reference ();
            ;
    break;}
case 509:
#line 2401 "parse.y"
{ if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
    break;}
case 510:
#line 2403 "parse.y"
{
              if (current_aggr == signature_type_node)
                yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
              else
                yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
              if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
            ;
    break;}
case 511:
#line 2411 "parse.y"
{
              tree visspec = yyvsp[-2].ttype;

              if (current_aggr == signature_type_node)
                {
                  error ("access specifier not allowed in signature");
                  visspec = access_public_node;
                }
              yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
            ;
    break;}
case 512:
#line 2422 "parse.y"
{
              if (current_aggr == signature_type_node)
                error ("access specifier not allowed in signature");
            ;
    break;}
case 513:
#line 2432 "parse.y"
{ if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; 
            ;
    break;}
case 514:
#line 2435 "parse.y"
{ /* In pushdecl, we created a reverse list of names
                 in this binding level.  Make sure that the chain
                 of what we're trying to add isn't the item itself
                 (which can happen with what pushdecl's doing).  */
              if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
                {
                  if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
                  yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
                  else
                  yyval.ttype = yyvsp[0].ttype;
                }
            ;
    break;}
case 515:
#line 2451 "parse.y"
{ ;
    break;}
case 516:
#line 2453 "parse.y"
{ error ("missing ';' before right brace");
              yyungetc ('}', 0); ;
    break;}
case 517:
#line 2458 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 518:
#line 2460 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 519:
#line 2462 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 520:
#line 2464 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 521:
#line 2466 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 522:
#line 2468 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
              pedantic = yyvsp[-1].itype; ;
    break;}
case 523:
#line 2471 "parse.y"
{ yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 524:
#line 2473 "parse.y"
{ yyval.ttype = finish_member_class_template (yyvsp[-2].ttype, yyvsp[-1].ftype.t); ;
    break;}
case 525:
#line 2481 "parse.y"
{ yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 526:
#line 2483 "parse.y"
{ yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 527:
#line 2485 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
                          build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 528:
#line 2488 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
                          build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 529:
#line 2491 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 530:
#line 2493 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 531:
#line 2504 "parse.y"
{ tree specs, attrs;
              split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
              yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
                          build_tree_list (yyvsp[-1].ttype, attrs)); ;
    break;}
case 532:
#line 2509 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
                          build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 533:
#line 2512 "parse.y"
{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
    break;}
case 534:
#line 2518 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 536:
#line 2521 "parse.y"
{
              /* In this context, void_type_node encodes
                 friends.  They have been recorded elsewhere.  */
              if (yyval.ttype == void_type_node)
                yyval.ttype = yyvsp[0].ttype;
              else
                yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
            ;
    break;}
case 537:
#line 2533 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 539:
#line 2536 "parse.y"
{
              /* In this context, void_type_node encodes
                 friends.  They have been recorded elsewhere.  */
              if (yyval.ttype == void_type_node)
                yyval.ttype = yyvsp[0].ttype;
              else
                yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
            ;
    break;}
case 544:
#line 2558 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
                             &prefix_attributes);
              yyvsp[-4].ttype = current_declspecs;
              yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
                          build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 545:
#line 2564 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
                             &prefix_attributes);
              yyvsp[-4].ttype = current_declspecs;
              yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
              cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 546:
#line 2573 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
                             &prefix_attributes);
              yyvsp[-4].ttype = current_declspecs;
              yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
                          build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 547:
#line 2579 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
                             &prefix_attributes);
              yyvsp[-4].ttype = current_declspecs;
              yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
                          build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 548:
#line 2585 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
                             &prefix_attributes);
              yyvsp[-4].ttype = current_declspecs;
              yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
              cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 549:
#line 2591 "parse.y"
{ split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
                             &prefix_attributes);
              yyvsp[-3].ttype = current_declspecs;
              yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
              cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 550:
#line 2600 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
                          build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 551:
#line 2603 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
              cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 552:
#line 2609 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
                          build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 553:
#line 2612 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
              cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 554:
#line 2615 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
              cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 556:
#line 2626 "parse.y"
{ TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 557:
#line 2631 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
    break;}
case 558:
#line 2633 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 559:
#line 2639 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 560:
#line 2642 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
              yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 561:
#line 2649 "parse.y"
{
              if (pedantic)
                pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
              yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
              yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
              yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
            ;
    break;}
case 562:
#line 2660 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 563:
#line 2662 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 564:
#line 2667 "parse.y"
{ yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); 
              yyval.ftype.new_type_flag = 0; ;
    break;}
case 565:
#line 2670 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 566:
#line 2679 "parse.y"
{ yyval.itype = suspend_momentary (); ;
    break;}
case 567:
#line 2684 "parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 568:
#line 2690 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 569:
#line 2692 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 570:
#line 2694 "parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
    break;}
case 571:
#line 2696 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
    break;}
case 572:
#line 2703 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 573:
#line 2705 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 574:
#line 2707 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 575:
#line 2709 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 576:
#line 2711 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
            ;
    break;}
case 578:
#line 2719 "parse.y"
{
              if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
                {
                  yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
                  if (current_class_type
                    && TYPE_BEING_DEFINED (current_class_type)
                    && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
                  {
                    /* Remember that this name has been used in the class
                       definition, as per [class.scope0] */
                    pushdecl_class_level (yyval.ttype);
                  }
                }
              else
                yyval.ttype = yyvsp[0].ttype;
            ;
    break;}
case 579:
#line 2736 "parse.y"
{
              if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
                yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
              else
                yyval.ttype = yyvsp[0].ttype;
              got_scope = NULL_TREE;
            ;
    break;}
case 582:
#line 2749 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 583:
#line 2754 "parse.y"
{ yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
    break;}
case 584:
#line 2759 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 585:
#line 2761 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 586:
#line 2763 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 587:
#line 2765 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 588:
#line 2767 "parse.y"
{ push_nested_class (yyvsp[-1].ttype, 3);
              yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
              TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
    break;}
case 590:
#line 2778 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 591:
#line 2780 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 592:
#line 2782 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 593:
#line 2784 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 594:
#line 2786 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
            ;
    break;}
case 596:
#line 2794 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 597:
#line 2796 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 598:
#line 2798 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 599:
#line 2800 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 600:
#line 2802 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
            ;
    break;}
case 602:
#line 2810 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 603:
#line 2812 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 604:
#line 2814 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 605:
#line 2816 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 606:
#line 2818 "parse.y"
{ if (TREE_CODE (OP0 (yyvsp[0].ttype)) == NAMESPACE_DECL)
                {
                  push_decl_namespace (OP0 (yyvsp[0].ttype));
                  TREE_COMPLEXITY (yyvsp[0].ttype) = -1;
                }
              else if (OP0 (yyvsp[0].ttype) != current_class_type)
                {
                  push_nested_class (OP0 (yyvsp[0].ttype), 3);
                  TREE_COMPLEXITY (yyvsp[0].ttype) = current_class_depth;
                }
            ;
    break;}
case 607:
#line 2830 "parse.y"
{ got_scope = NULL_TREE;
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
              if (yyvsp[-1].ttype != current_class_type)
                {
                  push_nested_class (yyvsp[-1].ttype, 3);
                  TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
                }
            ;
    break;}
case 608:
#line 2842 "parse.y"
{ got_scope = NULL_TREE;
              yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 609:
#line 2845 "parse.y"
{ got_scope = NULL_TREE;
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 610:
#line 2851 "parse.y"
{ got_scope = NULL_TREE;
              yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 611:
#line 2854 "parse.y"
{ got_scope = NULL_TREE;
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 613:
#line 2861 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 614:
#line 2866 "parse.y"
{ yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 615:
#line 2868 "parse.y"
{ yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 616:
#line 2870 "parse.y"
{ yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 621:
#line 2882 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 622:
#line 2884 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 623:
#line 2891 "parse.y"
{
              if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
                {
                  yyval.ttype = lastiddecl;
                  /* Remember that this name has been used in the class
                   definition, as per [class.scope0] */
                  if (current_class_type
                    && TYPE_BEING_DEFINED (current_class_type)
                    && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
                  pushdecl_class_level (yyval.ttype);
                }
              got_scope = yyval.ttype = TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype));
            ;
    break;}
case 624:
#line 2905 "parse.y"
{
              if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
                yyval.ttype = lastiddecl;
              got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
            ;
    break;}
case 625:
#line 2911 "parse.y"
{
              if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
                yyval.ttype = lastiddecl;
              got_scope = yyval.ttype;
            ;
    break;}
case 626:
#line 2917 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
    break;}
case 628:
#line 2933 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 629:
#line 2938 "parse.y"
{
              if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
                yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
              else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
                cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
              else
                {
                  yyval.ttype = yyvsp[0].ttype;
                  if (TREE_CODE (yyval.ttype) == TYPE_DECL)
                  yyval.ttype = TREE_TYPE (yyval.ttype);
                }
            ;
    break;}
case 630:
#line 2951 "parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
    break;}
case 631:
#line 2953 "parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 632:
#line 2955 "parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 633:
#line 2960 "parse.y"
{
              if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
                cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
            ;
    break;}
case 634:
#line 2965 "parse.y"
{
              if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
                yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
              else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
                cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
              else
                {
                  yyval.ttype = yyvsp[0].ttype;
                  if (TREE_CODE (yyval.ttype) == TYPE_DECL)
                  yyval.ttype = TREE_TYPE (yyval.ttype);
                }
            ;
    break;}
case 635:
#line 2978 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 636:
#line 2980 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 637:
#line 2985 "parse.y"
{
              if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
                yyvsp[-1].ttype = lastiddecl;

              /* Retrieve the type for the identifier, which might involve
                 some computation. */
              got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));

              if (yyval.ttype == error_mark_node)
                cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
            ;
    break;}
case 638:
#line 2997 "parse.y"
{
              if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
                yyval.ttype = lastiddecl;
              got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
            ;
    break;}
case 639:
#line 3003 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
    break;}
case 642:
#line 3007 "parse.y"
{
              if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
                yyval.ttype = lastiddecl;
              got_scope = yyval.ttype;
            ;
    break;}
case 643:
#line 3016 "parse.y"
{ yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 644:
#line 3021 "parse.y"
{
              if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
                yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
              else
                yyval.ttype = yyvsp[0].ttype;
              got_scope = NULL_TREE;
            ;
    break;}
case 646:
#line 3030 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 647:
#line 3035 "parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 648:
#line 3037 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
    break;}
case 649:
#line 3044 "parse.y"
{ got_scope = void_type_node; ;
    break;}
case 650:
#line 3050 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 651:
#line 3052 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 652:
#line 3054 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 653:
#line 3056 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 654:
#line 3058 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
            ;
    break;}
case 655:
#line 3062 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
            ;
    break;}
case 657:
#line 3071 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 658:
#line 3073 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 659:
#line 3079 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 660:
#line 3081 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 661:
#line 3083 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 662:
#line 3085 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 663:
#line 3087 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 664:
#line 3089 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 665:
#line 3091 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 666:
#line 3093 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 667:
#line 3095 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
            ;
    break;}
case 668:
#line 3099 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
            ;
    break;}
case 670:
#line 3108 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 672:
#line 3112 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 673:
#line 3114 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 674:
#line 3116 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 675:
#line 3118 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 676:
#line 3120 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 677:
#line 3122 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 678:
#line 3124 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 679:
#line 3126 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 680:
#line 3128 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
    break;}
case 687:
#line 3151 "parse.y"
{ if (pedantic)
                pedwarn ("ANSI C++ forbids label declarations"); ;
    break;}
case 690:
#line 3162 "parse.y"
{ tree link;
              for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                {
                  tree label = shadow_label (TREE_VALUE (link));
                  C_DECLARED_LABEL_FLAG (label) = 1;
                  declare_nonlocal_label (label);
                }
            ;
    break;}
case 691:
#line 3176 "parse.y"
{;
    break;}
case 693:
#line 3182 "parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
    break;}
case 694:
#line 3184 "parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
    break;}
case 695:
#line 3189 "parse.y"
{
              yyval.ttype = begin_if_stmt ();
              cond_stmt_keyword = "if";
            ;
    break;}
case 696:
#line 3194 "parse.y"
{ finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 697:
#line 3196 "parse.y"
{ yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
    break;}
case 699:
#line 3201 "parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
    break;}
case 700:
#line 3203 "parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
    break;}
case 701:
#line 3208 "parse.y"
{;
    break;}
case 703:
#line 3214 "parse.y"
{ finish_stmt (); ;
    break;}
case 704:
#line 3216 "parse.y"
{ finish_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 705:
#line 3218 "parse.y"
{ begin_else_clause (); ;
    break;}
case 706:
#line 3220 "parse.y"
{ 
              finish_else_clause (yyvsp[-3].ttype); 
              finish_if_stmt ();
            ;
    break;}
case 707:
#line 3225 "parse.y"
{ finish_if_stmt (); ;
    break;}
case 708:
#line 3227 "parse.y"
{
              yyval.ttype = begin_while_stmt ();
              cond_stmt_keyword = "while";
            ;
    break;}
case 709:
#line 3232 "parse.y"
{ finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 710:
#line 3234 "parse.y"
{ finish_while_stmt (yyvsp[-3].ttype); ;
    break;}
case 711:
#line 3236 "parse.y"
{ yyval.ttype = begin_do_stmt (); ;
    break;}
case 712:
#line 3238 "parse.y"
{
              finish_do_body (yyvsp[-2].ttype);
              cond_stmt_keyword = "do";
            ;
    break;}
case 713:
#line 3243 "parse.y"
{ finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
    break;}
case 714:
#line 3245 "parse.y"
{ yyval.ttype = begin_for_stmt (); ;
    break;}
case 715:
#line 3247 "parse.y"
{ finish_for_init_stmt (yyvsp[-2].ttype); ;
    break;}
case 716:
#line 3249 "parse.y"
{ finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
    break;}
case 717:
#line 3251 "parse.y"
{ finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
    break;}
case 718:
#line 3253 "parse.y"
{ finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
    break;}
case 719:
#line 3255 "parse.y"
{ begin_switch_stmt (); ;
    break;}
case 720:
#line 3257 "parse.y"
{ yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
    break;}
case 721:
#line 3259 "parse.y"
{ finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 722:
#line 3261 "parse.y"
{ finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 724:
#line 3264 "parse.y"
{ finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 726:
#line 3267 "parse.y"
{ finish_case_label (NULL_TREE, NULL_TREE); ;
    break;}
case 728:
#line 3270 "parse.y"
{ finish_break_stmt (); ;
    break;}
case 729:
#line 3272 "parse.y"
{ finish_continue_stmt (); ;
    break;}
case 730:
#line 3274 "parse.y"
{ finish_return_stmt (NULL_TREE); ;
    break;}
case 731:
#line 3276 "parse.y"
{ finish_return_stmt (yyvsp[-1].ttype); ;
    break;}
case 732:
#line 3278 "parse.y"
{ 
              finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
                           NULL_TREE); 
            ;
    break;}
case 733:
#line 3284 "parse.y"
{ 
              finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
                           NULL_TREE); 
            ;
    break;}
case 734:
#line 3290 "parse.y"
{ finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 735:
#line 3294 "parse.y"
{ finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
    break;}
case 736:
#line 3296 "parse.y"
{ 
              if (pedantic)
                pedwarn ("ANSI C++ forbids computed gotos");
              finish_goto_stmt (yyvsp[-1].ttype);
            ;
    break;}
case 737:
#line 3302 "parse.y"
{ finish_goto_stmt (yyvsp[-1].ttype); ;
    break;}
case 738:
#line 3304 "parse.y"
{ finish_stmt (); ;
    break;}
case 739:
#line 3306 "parse.y"
{ error ("label must be followed by statement");
              yyungetc ('}', 0);
              finish_stmt (); ;
    break;}
case 740:
#line 3310 "parse.y"
{ finish_stmt (); ;
    break;}
case 743:
#line 3314 "parse.y"
{ do_local_using_decl (yyvsp[0].ttype); ;
    break;}
case 745:
#line 3320 "parse.y"
{
              if (! current_function_parms_stored)
                store_parm_decls ();
              expand_start_early_try_stmts ();
            ;
    break;}
case 746:
#line 3326 "parse.y"
{ 
                  expand_start_all_catch (); 
                ;
    break;}
case 747:
#line 3330 "parse.y"
{
              int nested = (hack_decl_function_context
                        (current_function_decl) != NULL_TREE);
              expand_end_all_catch ();
              finish_function (lineno, (int)yyvsp[-3].itype, nested);
            ;
    break;}
case 748:
#line 3340 "parse.y"
{ yyval.ttype = begin_try_block (); ;
    break;}
case 749:
#line 3342 "parse.y"
{ finish_try_block (yyvsp[-1].ttype); ;
    break;}
case 750:
#line 3344 "parse.y"
{ finish_handler_sequence (yyvsp[-3].ttype); ;
    break;}
case 753:
#line 3354 "parse.y"
{ yyval.ttype = begin_handler(); ;
    break;}
case 754:
#line 3356 "parse.y"
{ finish_handler_parms (yyvsp[-1].ttype); ;
    break;}
case 755:
#line 3358 "parse.y"
{ finish_handler (yyvsp[-3].ttype); ;
    break;}
case 758:
#line 3368 "parse.y"
{ expand_start_catch_block (NULL_TREE, NULL_TREE); ;
    break;}
case 759:
#line 3384 "parse.y"
{ check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
              expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
                                  TREE_VALUE (yyvsp[-1].ftype.t)); ;
    break;}
case 760:
#line 3391 "parse.y"
{ tree label;
            do_label:
              label = define_label (input_filename, lineno, yyvsp[-1].ttype);
              if (label && ! minimal_parse_mode)
                expand_label (label);
            ;
    break;}
case 761:
#line 3398 "parse.y"
{ goto do_label; ;
    break;}
case 762:
#line 3400 "parse.y"
{ goto do_label; ;
    break;}
case 763:
#line 3402 "parse.y"
{ goto do_label; ;
    break;}
case 764:
#line 3407 "parse.y"
{ if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 766:
#line 3410 "parse.y"
{ if (pedantic)
                pedwarn ("ANSI C++ forbids compound statements inside for initializations");
            ;
    break;}
case 767:
#line 3419 "parse.y"
{ emit_line_note (input_filename, lineno);
              yyval.ttype = NULL_TREE; ;
    break;}
case 768:
#line 3422 "parse.y"
{ emit_line_note (input_filename, lineno); ;
    break;}
case 769:
#line 3427 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 771:
#line 3430 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 772:
#line 3437 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 775:
#line 3444 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 776:
#line 3449 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 777:
#line 3454 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
    break;}
case 778:
#line 3456 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 779:
#line 3467 "parse.y"
{
              yyval.ttype = empty_parms();
            ;
    break;}
case 781:
#line 3472 "parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
              check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
    break;}
case 782:
#line 3480 "parse.y"
{ yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
    break;}
case 783:
#line 3482 "parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
    break;}
case 784:
#line 3485 "parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
    break;}
case 785:
#line 3487 "parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
                                           yyvsp[-1].ftype.t), 1); ;
    break;}
case 786:
#line 3490 "parse.y"
{ yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
    break;}
case 787:
#line 3492 "parse.y"
{
              /* This helps us recover from really nasty
                 parse errors, for example, a missing right
                 parenthesis.  */
              yyerror ("possibly missing ')'");
              yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
              yyungetc (':', 0);
              yychar = ')';
            ;
    break;}
case 788:
#line 3502 "parse.y"
{
              /* This helps us recover from really nasty
                 parse errors, for example, a missing right
                 parenthesis.  */
              yyerror ("possibly missing ')'");
              yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
                                           yyvsp[-1].ftype.t), 0); 
              yyungetc (':', 0);
              yychar = ')';
            ;
    break;}
case 789:
#line 3517 "parse.y"
{ maybe_snarf_defarg (); ;
    break;}
case 790:
#line 3519 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 793:
#line 3530 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
              yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 794:
#line 3533 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
              yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
    break;}
case 795:
#line 3536 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
              yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
    break;}
case 796:
#line 3539 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 797:
#line 3541 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
    break;}
case 799:
#line 3547 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
              yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
    break;}
case 800:
#line 3557 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
              yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
    break;}
case 801:
#line 3561 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 802:
#line 3564 "parse.y"
{ yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 803:
#line 3567 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
              yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 804:
#line 3571 "parse.y"
{ tree specs = strip_attrs (yyvsp[0].ftype.t);
              yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
              yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 805:
#line 3575 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
              yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
              yyval.ftype.new_type_flag = 0; ;
    break;}
case 806:
#line 3582 "parse.y"
{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
              yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
    break;}
case 807:
#line 3585 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
              yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
    break;}
case 810:
#line 3596 "parse.y"
{ see_typename (); ;
    break;}
case 811:
#line 3601 "parse.y"
{
              error ("type specifier omitted for parameter");
              yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
            ;
    break;}
case 812:
#line 3606 "parse.y"
{
              error ("type specifier omitted for parameter");
              if (TREE_CODE (yyval.ttype) == SCOPE_REF
                  && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
                    || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
                cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
              yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
            ;
    break;}
case 813:
#line 3618 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 814:
#line 3620 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 815:
#line 3622 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
    break;}
case 816:
#line 3627 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
    break;}
case 818:
#line 3633 "parse.y"
{
              TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
              yyval.ttype = yyvsp[0].ttype;
            ;
    break;}
case 819:
#line 3641 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 820:
#line 3643 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 821:
#line 3645 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 822:
#line 3647 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
              yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
            ;
    break;}
case 823:
#line 3654 "parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 824:
#line 3659 "parse.y"
{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
    break;}
case 825:
#line 3661 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
    break;}
case 826:
#line 3663 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
    break;}
case 827:
#line 3665 "parse.y"
{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
    break;}
case 828:
#line 3667 "parse.y"
{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
    break;}
case 829:
#line 3669 "parse.y"
{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
    break;}
case 830:
#line 3671 "parse.y"
{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
    break;}
case 831:
#line 3673 "parse.y"
{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
    break;}
case 832:
#line 3675 "parse.y"
{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
    break;}
case 833:
#line 3677 "parse.y"
{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
    break;}
case 834:
#line 3679 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 835:
#line 3681 "parse.y"
{ yyval.ttype = ansi_opname[LT_EXPR]; ;
    break;}
case 836:
#line 3683 "parse.y"
{ yyval.ttype = ansi_opname[GT_EXPR]; ;
    break;}
case 837:
#line 3685 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 838:
#line 3687 "parse.y"
{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
    break;}
case 839:
#line 3689 "parse.y"
{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
    break;}
case 840:
#line 3691 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 841:
#line 3693 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 842:
#line 3695 "parse.y"
{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
    break;}
case 843:
#line 3697 "parse.y"
{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
    break;}
case 844:
#line 3699 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
    break;}
case 845:
#line 3701 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
    break;}
case 846:
#line 3703 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
    break;}
case 847:
#line 3705 "parse.y"
{ yyval.ttype = ansi_opname[COND_EXPR]; ;
    break;}
case 848:
#line 3707 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 849:
#line 3709 "parse.y"
{ yyval.ttype = ansi_opname[COMPONENT_REF]; ;
    break;}
case 850:
#line 3711 "parse.y"
{ yyval.ttype = ansi_opname[MEMBER_REF]; ;
    break;}
case 851:
#line 3713 "parse.y"
{ yyval.ttype = ansi_opname[CALL_EXPR]; ;
    break;}
case 852:
#line 3715 "parse.y"
{ yyval.ttype = ansi_opname[ARRAY_REF]; ;
    break;}
case 853:
#line 3717 "parse.y"
{ yyval.ttype = ansi_opname[NEW_EXPR]; ;
    break;}
case 854:
#line 3719 "parse.y"
{ yyval.ttype = ansi_opname[DELETE_EXPR]; ;
    break;}
case 855:
#line 3721 "parse.y"
{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
    break;}
case 856:
#line 3723 "parse.y"
{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
    break;}
case 857:
#line 3726 "parse.y"
{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 858:
#line 3728 "parse.y"
{ yyval.ttype = ansi_opname[ERROR_MARK]; ;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 498 "/usr/cygnus/gnupro-98r1/share/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;
#endif

yyerrpop:   /* 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");
    }
#endif

yyerrhandle:

  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 3731 "parse.y"


#ifdef SPEW_DEBUG
const char *
debug_yytranslate (value)
    int value;
{
  return yytname[YYTRANSLATE (value)];
}

#endif

Generated by  Doxygen 1.6.0   Back to index