Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r1b29996 r9059213  
    201201     ATTR_TYPEGENname = 333,
    202202     INTEGERconstant = 334,
    203      CHARACTERconstant = 335,
    204      STRINGliteral = 336,
    205      REALDECIMALconstant = 337,
    206      REALFRACTIONconstant = 338,
    207      FLOATINGconstant = 339,
    208      ZERO = 340,
    209      ONE = 341,
    210      ARROW = 342,
    211      ICR = 343,
    212      DECR = 344,
    213      LS = 345,
    214      RS = 346,
    215      LE = 347,
    216      GE = 348,
    217      EQ = 349,
    218      NE = 350,
    219      ANDAND = 351,
    220      OROR = 352,
    221      ELLIPSIS = 353,
    222      MULTassign = 354,
    223      DIVassign = 355,
    224      MODassign = 356,
    225      PLUSassign = 357,
    226      MINUSassign = 358,
    227      LSassign = 359,
    228      RSassign = 360,
    229      ANDassign = 361,
    230      ERassign = 362,
    231      ORassign = 363,
    232      ATassign = 364,
    233      THEN = 365
     203     FLOATINGconstant = 335,
     204     CHARACTERconstant = 336,
     205     STRINGliteral = 337,
     206     ZERO = 338,
     207     ONE = 339,
     208     ARROW = 340,
     209     ICR = 341,
     210     DECR = 342,
     211     LS = 343,
     212     RS = 344,
     213     LE = 345,
     214     GE = 346,
     215     EQ = 347,
     216     NE = 348,
     217     ANDAND = 349,
     218     OROR = 350,
     219     ELLIPSIS = 351,
     220     MULTassign = 352,
     221     DIVassign = 353,
     222     MODassign = 354,
     223     PLUSassign = 355,
     224     MINUSassign = 356,
     225     LSassign = 357,
     226     RSassign = 358,
     227     ANDassign = 359,
     228     ERassign = 360,
     229     ORassign = 361,
     230     ATassign = 362,
     231     THEN = 363
    234232   };
    235233#endif
     
    312310#define ATTR_TYPEGENname 333
    313311#define INTEGERconstant 334
    314 #define CHARACTERconstant 335
    315 #define STRINGliteral 336
    316 #define REALDECIMALconstant 337
    317 #define REALFRACTIONconstant 338
    318 #define FLOATINGconstant 339
    319 #define ZERO 340
    320 #define ONE 341
    321 #define ARROW 342
    322 #define ICR 343
    323 #define DECR 344
    324 #define LS 345
    325 #define RS 346
    326 #define LE 347
    327 #define GE 348
    328 #define EQ 349
    329 #define NE 350
    330 #define ANDAND 351
    331 #define OROR 352
    332 #define ELLIPSIS 353
    333 #define MULTassign 354
    334 #define DIVassign 355
    335 #define MODassign 356
    336 #define PLUSassign 357
    337 #define MINUSassign 358
    338 #define LSassign 359
    339 #define RSassign 360
    340 #define ANDassign 361
    341 #define ERassign 362
    342 #define ORassign 363
    343 #define ATassign 364
    344 #define THEN 365
     312#define FLOATINGconstant 335
     313#define CHARACTERconstant 336
     314#define STRINGliteral 337
     315#define ZERO 338
     316#define ONE 339
     317#define ARROW 340
     318#define ICR 341
     319#define DECR 342
     320#define LS 343
     321#define RS 344
     322#define LE 345
     323#define GE 346
     324#define EQ 347
     325#define NE 348
     326#define ANDAND 349
     327#define OROR 350
     328#define ELLIPSIS 351
     329#define MULTassign 352
     330#define DIVassign 353
     331#define MODassign 354
     332#define PLUSassign 355
     333#define MINUSassign 356
     334#define LSassign 357
     335#define RSassign 358
     336#define ANDassign 359
     337#define ERassign 360
     338#define ORassign 361
     339#define ATassign 362
     340#define THEN 363
    345341
    346342
     
    352348
    353349/* Line 293 of yacc.c  */
    354 #line 120 "parser.yy"
     350#line 116 "parser.yy"
    355351
    356352        Token tok;
     
    372368
    373369/* Line 293 of yacc.c  */
    374 #line 375 "Parser/parser.cc"
     370#line 371 "Parser/parser.cc"
    375371} YYSTYPE;
    376372# define YYSTYPE_IS_TRIVIAL 1
     
    384380
    385381/* Line 343 of yacc.c  */
    386 #line 387 "Parser/parser.cc"
     382#line 383 "Parser/parser.cc"
    387383
    388384#ifdef short
     
    601597
    602598/* YYFINAL -- State number of the termination state.  */
    603 #define YYFINAL  249
     599#define YYFINAL  250
    604600/* YYLAST -- Last index in YYTABLE.  */
    605 #define YYLAST   10266
     601#define YYLAST   10888
    606602
    607603/* YYNTOKENS -- Number of terminals.  */
    608 #define YYNTOKENS  135
     604#define YYNTOKENS  133
    609605/* YYNNTS -- Number of nonterminals.  */
    610 #define YYNNTS  243
     606#define YYNNTS  242
    611607/* YYNRULES -- Number of rules.  */
    612 #define YYNRULES  755
     608#define YYNRULES  754
    613609/* YYNRULES -- Number of states.  */
    614 #define YYNSTATES  1538
     610#define YYNSTATES  1558
    615611
    616612/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    617613#define YYUNDEFTOK  2
    618 #define YYMAXUTOK   365
     614#define YYMAXUTOK   363
    619615
    620616#define YYTRANSLATE(YYX)                                                \
     
    627623       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    628624       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    629        2,     2,     2,   123,     2,     2,     2,   126,   120,     2,
    630      111,   112,   119,   121,   118,   122,   115,   125,     2,     2,
    631        2,     2,     2,     2,     2,     2,     2,     2,   132,   134,
    632      127,   133,   128,   131,     2,     2,     2,     2,     2,     2,
     625       2,     2,     2,   121,     2,     2,     2,   124,   118,     2,
     626     109,   110,   117,   119,   116,   120,   113,   123,     2,     2,
     627       2,     2,     2,     2,     2,     2,     2,     2,   130,   132,
     628     125,   131,   126,   129,     2,     2,     2,     2,     2,     2,
    633629       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    634630       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    635        2,   113,     2,   114,   129,     2,     2,     2,     2,     2,
     631       2,   111,     2,   112,   127,     2,     2,     2,     2,     2,
    636632       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    637633       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    638        2,     2,     2,   116,   130,   117,   124,     2,     2,     2,
     634       2,     2,     2,   114,   128,   115,   122,     2,     2,     2,
    639635       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    640636       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    660656      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    661657      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    662      105,   106,   107,   108,   109,   110
     658     105,   106,   107,   108
    663659};
    664660
     
    669665{
    670666       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    671       17,    19,    21,    23,    25,    27,    29,    31,    33,    35,
    672       37,    40,    42,    44,    46,    50,    54,    56,    63,    68,
    673       72,    80,    83,    87,    95,    98,   101,   109,   114,   116,
    674      120,   121,   123,   125,   129,   131,   134,   141,   145,   153,
    675      157,   165,   168,   171,   174,   175,   178,   180,   182,   184,
    676      187,   190,   193,   196,   199,   202,   207,   210,   215,   222,
    677      224,   229,   234,   236,   238,   240,   242,   244,   246,   248,
    678      253,   255,   259,   263,   267,   269,   273,   277,   279,   283,
    679      287,   289,   293,   297,   301,   305,   307,   311,   315,   317,
    680      321,   323,   327,   329,   333,   335,   339,   341,   345,   347,
    681      353,   358,   360,   362,   366,   367,   369,   371,   373,   375,
    682      377,   379,   381,   383,   385,   387,   389,   391,   393,   400,
    683      408,   410,   414,   416,   420,   421,   423,   425,   427,   429,
    684      431,   433,   435,   437,   439,   446,   451,   454,   462,   464,
    685      468,   470,   473,   475,   478,   480,   483,   486,   492,   500,
    686      506,   516,   522,   532,   534,   538,   540,   542,   546,   550,
    687      553,   555,   558,   561,   562,   564,   567,   571,   572,   574,
    688      577,   581,   585,   590,   591,   593,   595,   598,   604,   612,
    689      619,   626,   631,   635,   640,   643,   647,   650,   654,   658,
    690      662,   666,   672,   676,   680,   685,   687,   693,   700,   706,
    691      713,   723,   734,   744,   755,   758,   760,   763,   766,   769,
    692      771,   778,   787,   798,   811,   826,   827,   829,   830,   832,
    693      834,   838,   843,   851,   852,   854,   858,   860,   864,   866,
    694      868,   870,   874,   876,   878,   880,   884,   885,   887,   891,
    695      896,   898,   902,   904,   906,   910,   914,   918,   922,   926,
    696      929,   933,   940,   944,   948,   953,   955,   958,   961,   965,
    697      971,   979,   987,   993,  1003,  1006,  1009,  1015,  1019,  1025,
    698     1030,  1034,  1039,  1044,  1052,  1056,  1060,  1064,  1068,  1073,
    699     1080,  1082,  1084,  1086,  1088,  1090,  1092,  1094,  1096,  1097,
    700     1099,  1101,  1104,  1106,  1108,  1110,  1112,  1114,  1116,  1118,
    701     1119,  1125,  1127,  1130,  1134,  1136,  1139,  1141,  1143,  1145,
    702     1147,  1149,  1151,  1153,  1155,  1157,  1159,  1161,  1163,  1165,
    703     1167,  1169,  1171,  1173,  1175,  1177,  1179,  1181,  1183,  1186,
    704     1189,  1193,  1197,  1199,  1203,  1205,  1208,  1211,  1214,  1219,
    705     1224,  1229,  1234,  1236,  1239,  1242,  1246,  1248,  1251,  1254,
    706     1256,  1259,  1262,  1266,  1268,  1271,  1274,  1276,  1278,  1283,
    707     1286,  1287,  1294,  1302,  1305,  1308,  1311,  1312,  1315,  1318,
    708     1322,  1325,  1329,  1331,  1334,  1338,  1341,  1344,  1349,  1350,
    709     1352,  1355,  1358,  1360,  1361,  1363,  1366,  1369,  1375,  1378,
    710     1379,  1387,  1390,  1395,  1396,  1399,  1400,  1402,  1404,  1406,
    711     1412,  1418,  1424,  1426,  1432,  1438,  1448,  1450,  1456,  1457,
    712     1459,  1461,  1467,  1469,  1471,  1477,  1483,  1485,  1489,  1493,
    713     1498,  1500,  1502,  1504,  1506,  1509,  1511,  1515,  1519,  1521,
    714     1524,  1526,  1530,  1532,  1534,  1536,  1538,  1540,  1542,  1544,
    715     1546,  1548,  1550,  1552,  1555,  1557,  1559,  1561,  1564,  1565,
    716     1568,  1571,  1573,  1578,  1579,  1581,  1584,  1588,  1593,  1596,
    717     1599,  1601,  1604,  1607,  1613,  1619,  1627,  1634,  1636,  1639,
    718     1642,  1646,  1648,  1651,  1654,  1659,  1662,  1667,  1668,  1673,
    719     1676,  1678,  1680,  1682,  1683,  1686,  1692,  1698,  1712,  1714,
    720     1716,  1720,  1724,  1727,  1731,  1735,  1738,  1743,  1745,  1752,
    721     1762,  1763,  1775,  1777,  1781,  1785,  1789,  1791,  1793,  1799,
    722     1802,  1808,  1809,  1811,  1813,  1817,  1818,  1820,  1822,  1824,
    723     1826,  1827,  1834,  1837,  1839,  1842,  1847,  1850,  1854,  1858,
    724     1862,  1867,  1873,  1879,  1885,  1892,  1894,  1896,  1898,  1902,
    725     1903,  1909,  1910,  1912,  1914,  1917,  1924,  1926,  1930,  1931,
    726     1933,  1938,  1940,  1942,  1944,  1946,  1949,  1951,  1954,  1957,
    727     1959,  1963,  1966,  1970,  1974,  1977,  1982,  1987,  1991,  2000,
    728     2004,  2007,  2009,  2012,  2019,  2028,  2032,  2035,  2039,  2043,
    729     2048,  2053,  2057,  2059,  2061,  2063,  2068,  2075,  2079,  2082,
    730     2086,  2090,  2095,  2100,  2104,  2107,  2109,  2112,  2115,  2117,
    731     2121,  2124,  2128,  2132,  2135,  2140,  2145,  2149,  2156,  2165,
    732     2169,  2172,  2174,  2177,  2180,  2183,  2187,  2191,  2194,  2199,
    733     2204,  2208,  2215,  2224,  2228,  2231,  2233,  2236,  2239,  2241,
    734     2243,  2246,  2250,  2254,  2257,  2262,  2269,  2278,  2280,  2283,
    735     2286,  2288,  2291,  2294,  2298,  2302,  2304,  2309,  2314,  2318,
    736     2324,  2333,  2337,  2340,  2344,  2346,  2352,  2358,  2365,  2372,
    737     2374,  2377,  2380,  2382,  2385,  2388,  2392,  2396,  2398,  2403,
    738     2408,  2412,  2418,  2427,  2431,  2433,  2436,  2438,  2441,  2448,
    739     2454,  2461,  2469,  2477,  2479,  2482,  2485,  2487,  2490,  2493,
    740     2497,  2501,  2503,  2508,  2513,  2517,  2526,  2530,  2532,  2534,
    741     2537,  2539,  2541,  2544,  2548,  2551,  2555,  2558,  2562,  2566,
    742     2569,  2574,  2578,  2581,  2585,  2588,  2593,  2597,  2600,  2607,
    743     2614,  2621,  2629,  2631,  2634,  2636,  2638,  2640,  2643,  2647,
    744     2650,  2654,  2657,  2661,  2665,  2670,  2673,  2677,  2682,  2685,
    745     2691,  2698,  2705,  2706,  2708,  2709
     667      17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
     668      38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
     669      82,    90,    93,    96,   104,   109,   111,   115,   116,   118,
     670     120,   124,   126,   130,   138,   142,   150,   152,   154,   156,
     671     158,   160,   163,   166,   169,   172,   175,   178,   183,   186,
     672     191,   198,   200,   205,   210,   212,   214,   216,   218,   220,
     673     222,   224,   229,   234,   236,   240,   244,   248,   250,   254,
     674     258,   260,   264,   268,   270,   274,   278,   282,   286,   288,
     675     292,   296,   298,   302,   304,   308,   310,   314,   316,   320,
     676     322,   326,   328,   334,   339,   345,   347,   349,   353,   356,
     677     357,   359,   361,   363,   365,   367,   369,   371,   373,   375,
     678     377,   379,   381,   383,   386,   392,   399,   407,   409,   413,
     679     415,   419,   420,   422,   424,   426,   428,   430,   432,   434,
     680     436,   438,   445,   450,   453,   461,   463,   467,   469,   472,
     681     474,   477,   479,   482,   485,   491,   499,   505,   515,   521,
     682     531,   533,   537,   539,   541,   545,   549,   552,   554,   557,
     683     560,   561,   563,   566,   570,   571,   573,   576,   580,   584,
     684     589,   590,   592,   594,   597,   603,   611,   618,   625,   630,
     685     634,   639,   642,   646,   649,   653,   657,   661,   665,   671,
     686     675,   679,   684,   686,   692,   699,   705,   712,   722,   733,
     687     743,   754,   757,   759,   762,   765,   768,   770,   777,   786,
     688     797,   810,   825,   826,   828,   829,   831,   833,   837,   842,
     689     850,   851,   853,   857,   859,   863,   865,   867,   869,   873,
     690     875,   877,   879,   883,   884,   886,   890,   895,   897,   901,
     691     903,   905,   909,   913,   917,   921,   925,   928,   932,   939,
     692     943,   947,   952,   954,   957,   960,   964,   970,   979,   987,
     693     995,  1001,  1011,  1014,  1017,  1023,  1027,  1033,  1038,  1042,
     694    1047,  1052,  1060,  1064,  1068,  1072,  1076,  1081,  1088,  1090,
     695    1092,  1094,  1096,  1098,  1100,  1102,  1104,  1105,  1107,  1109,
     696    1112,  1114,  1116,  1118,  1120,  1122,  1124,  1126,  1127,  1133,
     697    1135,  1138,  1142,  1144,  1147,  1149,  1151,  1153,  1155,  1157,
     698    1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,  1177,
     699    1179,  1181,  1183,  1185,  1187,  1189,  1191,  1194,  1197,  1201,
     700    1205,  1207,  1211,  1213,  1216,  1219,  1222,  1227,  1232,  1237,
     701    1242,  1244,  1247,  1250,  1254,  1256,  1259,  1262,  1264,  1267,
     702    1270,  1274,  1276,  1279,  1282,  1284,  1286,  1291,  1294,  1295,
     703    1302,  1310,  1313,  1316,  1319,  1320,  1323,  1326,  1330,  1333,
     704    1337,  1339,  1342,  1346,  1349,  1352,  1357,  1358,  1360,  1363,
     705    1366,  1368,  1369,  1371,  1374,  1377,  1383,  1386,  1387,  1395,
     706    1398,  1403,  1404,  1407,  1408,  1410,  1412,  1414,  1420,  1426,
     707    1432,  1434,  1440,  1446,  1456,  1458,  1464,  1465,  1467,  1469,
     708    1475,  1477,  1479,  1485,  1491,  1493,  1497,  1501,  1506,  1508,
     709    1510,  1512,  1514,  1517,  1519,  1523,  1527,  1529,  1532,  1534,
     710    1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,
     711    1558,  1560,  1563,  1565,  1567,  1569,  1572,  1573,  1576,  1579,
     712    1581,  1586,  1587,  1589,  1592,  1596,  1601,  1604,  1607,  1609,
     713    1612,  1615,  1621,  1627,  1635,  1642,  1644,  1647,  1650,  1654,
     714    1656,  1659,  1662,  1667,  1670,  1675,  1676,  1681,  1684,  1686,
     715    1688,  1690,  1691,  1694,  1700,  1706,  1720,  1722,  1724,  1728,
     716    1732,  1735,  1739,  1743,  1746,  1751,  1753,  1760,  1770,  1771,
     717    1783,  1785,  1789,  1793,  1797,  1799,  1801,  1807,  1810,  1816,
     718    1817,  1819,  1821,  1825,  1826,  1828,  1830,  1832,  1834,  1835,
     719    1842,  1845,  1847,  1850,  1855,  1858,  1862,  1866,  1870,  1875,
     720    1881,  1887,  1893,  1900,  1902,  1904,  1906,  1910,  1911,  1917,
     721    1918,  1920,  1922,  1925,  1932,  1934,  1938,  1939,  1941,  1946,
     722    1948,  1950,  1952,  1954,  1957,  1959,  1962,  1965,  1967,  1971,
     723    1974,  1978,  1982,  1985,  1990,  1995,  1999,  2008,  2012,  2015,
     724    2017,  2020,  2027,  2036,  2040,  2043,  2047,  2051,  2056,  2061,
     725    2065,  2067,  2069,  2071,  2076,  2083,  2087,  2090,  2094,  2098,
     726    2103,  2108,  2112,  2115,  2117,  2120,  2123,  2125,  2129,  2132,
     727    2136,  2140,  2143,  2148,  2153,  2157,  2164,  2173,  2177,  2180,
     728    2182,  2185,  2188,  2191,  2195,  2199,  2202,  2207,  2212,  2216,
     729    2223,  2232,  2236,  2239,  2241,  2244,  2247,  2249,  2251,  2254,
     730    2258,  2262,  2265,  2270,  2277,  2286,  2288,  2291,  2294,  2296,
     731    2299,  2302,  2306,  2310,  2312,  2317,  2322,  2326,  2332,  2341,
     732    2345,  2348,  2352,  2354,  2360,  2366,  2373,  2380,  2382,  2385,
     733    2388,  2390,  2393,  2396,  2400,  2404,  2406,  2411,  2416,  2420,
     734    2426,  2435,  2439,  2441,  2444,  2446,  2449,  2456,  2462,  2469,
     735    2477,  2485,  2487,  2490,  2493,  2495,  2498,  2501,  2505,  2509,
     736    2511,  2516,  2521,  2525,  2534,  2538,  2540,  2542,  2545,  2547,
     737    2549,  2552,  2556,  2559,  2563,  2566,  2570,  2574,  2577,  2582,
     738    2586,  2589,  2593,  2596,  2601,  2605,  2608,  2615,  2622,  2629,
     739    2637,  2639,  2642,  2644,  2646,  2648,  2651,  2655,  2658,  2662,
     740    2665,  2669,  2673,  2678,  2681,  2685,  2690,  2693,  2699,  2705,
     741    2712,  2719,  2720,  2722,  2723
    746742};
    747743
     
    749745static const yytype_int16 yyrhs[] =
    750746{
    751      306,     0,    -1,    -1,    -1,    79,    -1,    82,    -1,    83,
    752       -1,    84,    -1,    80,    -1,    72,    -1,    76,    -1,   142,
    753       -1,    72,    -1,    76,    -1,    72,    -1,   142,    -1,    85,
    754       -1,    86,    -1,   144,    -1,    81,    -1,   144,    81,    -1,
    755       72,    -1,   142,    -1,   172,    -1,   111,   174,   112,    -1,
    756      111,   178,   112,    -1,   145,    -1,   146,   113,   136,   169,
    757      137,   114,    -1,   146,   111,   147,   112,    -1,   146,   115,
    758      141,    -1,   146,   115,   113,   136,   149,   137,   114,    -1,
    759      146,    83,    -1,   146,    87,   141,    -1,   146,    87,   113,
    760      136,   149,   137,   114,    -1,   146,    88,    -1,   146,    89,
    761       -1,   111,   279,   112,   116,   283,   376,   117,    -1,   146,
    762      116,   147,   117,    -1,   148,    -1,   147,   118,   148,    -1,
    763       -1,   169,    -1,   150,    -1,   149,   118,   150,    -1,   151,
    764       -1,    82,   150,    -1,    82,   113,   136,   149,   137,   114,
    765       -1,   151,   115,   150,    -1,   151,   115,   113,   136,   149,
    766      137,   114,    -1,   151,    87,   150,    -1,   151,    87,   113,
    767      136,   149,   137,   114,    -1,    79,   152,    -1,    84,   152,
    768       -1,   141,   152,    -1,    -1,   152,    83,    -1,   146,    -1,
    769      138,    -1,   143,    -1,    40,   156,    -1,   154,   156,    -1,
    770      155,   156,    -1,    88,   153,    -1,    89,   153,    -1,    37,
    771      153,    -1,    37,   111,   279,   112,    -1,    66,   153,    -1,
    772       66,   111,   279,   112,    -1,    38,   111,   279,   118,   141,
    773      112,    -1,    76,    -1,    76,   111,   148,   112,    -1,    76,
    774      111,   280,   112,    -1,   119,    -1,   120,    -1,   121,    -1,
    775      122,    -1,   123,    -1,   124,    -1,   153,    -1,   111,   279,
    776      112,   156,    -1,   156,    -1,   157,   119,   156,    -1,   157,
    777      125,   156,    -1,   157,   126,   156,    -1,   157,    -1,   158,
    778      121,   157,    -1,   158,   122,   157,    -1,   158,    -1,   159,
    779       90,   158,    -1,   159,    91,   158,    -1,   159,    -1,   160,
    780      127,   159,    -1,   160,   128,   159,    -1,   160,    92,   159,
    781       -1,   160,    93,   159,    -1,   160,    -1,   161,    94,   160,
    782       -1,   161,    95,   160,    -1,   161,    -1,   162,   120,   161,
    783       -1,   162,    -1,   163,   129,   162,    -1,   163,    -1,   164,
    784      130,   163,    -1,   164,    -1,   165,    96,   164,    -1,   165,
    785       -1,   166,    97,   165,    -1,   166,    -1,   166,   131,   174,
    786      132,   167,    -1,   166,   131,   132,   167,    -1,   167,    -1,
    787      167,    -1,   153,   171,   169,    -1,    -1,   169,    -1,   133,
    788       -1,   109,    -1,    99,    -1,   100,    -1,   101,    -1,   102,
    789       -1,   103,    -1,   104,    -1,   105,    -1,   106,    -1,   107,
    790       -1,   108,    -1,   113,   136,   118,   173,   137,   114,    -1,
    791      113,   136,   169,   118,   173,   137,   114,    -1,   170,    -1,
    792      173,   118,   170,    -1,   169,    -1,   174,   118,   169,    -1,
    793       -1,   174,    -1,   177,    -1,   178,    -1,   182,    -1,   183,
    794       -1,   195,    -1,   197,    -1,   198,    -1,   203,    -1,   129,
    795      146,   116,   147,   117,   134,    -1,    72,   132,   316,   176,
    796       -1,   116,   117,    -1,   116,   136,   136,   214,   179,   137,
    797      117,    -1,   180,    -1,   179,   136,   180,    -1,   217,    -1,
    798       40,   217,    -1,   312,    -1,   176,   137,    -1,   176,    -1,
    799      181,   176,    -1,   175,   134,    -1,    41,   111,   174,   112,
    800      176,    -1,    41,   111,   174,   112,   176,    42,   176,    -1,
    801       43,   111,   174,   112,   188,    -1,    43,   111,   174,   112,
    802      116,   136,   210,   189,   117,    -1,    53,   111,   174,   112,
    803      188,    -1,    53,   111,   174,   112,   116,   136,   210,   191,
    804      117,    -1,   168,    -1,   168,    98,   168,    -1,   314,    -1,
    805      184,    -1,   185,   118,   184,    -1,    44,   185,   132,    -1,
    806       45,   132,    -1,   186,    -1,   187,   186,    -1,   187,   176,
    807       -1,    -1,   190,    -1,   187,   181,    -1,   190,   187,   181,
    808       -1,    -1,   192,    -1,   187,   194,    -1,   187,   181,   193,
    809       -1,   192,   187,   194,    -1,   192,   187,   181,   193,    -1,
    810       -1,   194,    -1,    56,    -1,    56,   134,    -1,    47,   111,
    811      174,   112,   176,    -1,    46,   176,    47,   111,   174,   112,
    812      134,    -1,    48,   111,   136,   196,   112,   176,    -1,   175,
    813      137,   134,   175,   134,   175,    -1,   217,   175,   134,   175,
    814       -1,    51,    72,   134,    -1,    51,   119,   174,   134,    -1,
    815       50,   134,    -1,    50,    72,   134,    -1,    49,   134,    -1,
    816       49,    72,   134,    -1,    52,   175,   134,    -1,    61,   170,
    817      134,    -1,    62,   170,   134,    -1,    62,   170,    63,   169,
    818      134,    -1,    57,   178,   199,    -1,    57,   178,   201,    -1,
    819       57,   178,   199,   201,    -1,   200,    -1,    58,   111,    98,
    820      112,   178,    -1,   200,    58,   111,    98,   112,   178,    -1,
    821       59,   111,    98,   112,   178,    -1,   200,    59,   111,    98,
    822      112,   178,    -1,    58,   111,   136,   136,   202,   137,   112,
    823      178,   137,    -1,   200,    58,   111,   136,   136,   202,   137,
    824      112,   178,   137,    -1,    59,   111,   136,   136,   202,   137,
    825      112,   178,   137,    -1,   200,    59,   111,   136,   136,   202,
    826      137,   112,   178,   137,    -1,    60,   178,    -1,   230,    -1,
    827      230,   313,    -1,   230,   361,    -1,   370,   141,    -1,   370,
    828       -1,    64,   204,   111,   143,   112,   134,    -1,    64,   204,
    829      111,   143,   132,   205,   112,   134,    -1,    64,   204,   111,
    830      143,   132,   205,   132,   205,   112,   134,    -1,    64,   204,
    831      111,   143,   132,   205,   132,   205,   132,   208,   112,   134,
    832       -1,    64,   204,    51,   111,   143,   132,   132,   205,   132,
    833      208,   132,   209,   112,   134,    -1,    -1,    11,    -1,    -1,
    834      206,    -1,   207,    -1,   206,   118,   207,    -1,   143,   111,
    835      168,   112,    -1,   113,   168,   114,   143,   111,   168,   112,
    836       -1,    -1,   143,    -1,   208,   118,   143,    -1,   141,    -1,
    837      209,   118,   141,    -1,   137,    -1,   211,    -1,   217,    -1,
    838      211,   136,   217,    -1,   137,    -1,   213,    -1,   227,    -1,
    839      213,   136,   227,    -1,    -1,   215,    -1,    29,   216,   134,
    840       -1,   215,    29,   216,   134,    -1,   278,    -1,   216,   118,
    841      278,    -1,   218,    -1,   227,    -1,   219,   137,   134,    -1,
    842      224,   137,   134,    -1,   221,   137,   134,    -1,   297,   137,
    843      134,    -1,   300,   137,   134,    -1,   220,   281,    -1,   236,
    844      220,   281,    -1,   219,   137,   118,   136,   276,   281,    -1,
    845      371,   276,   315,    -1,   374,   276,   315,    -1,   232,   374,
    846      276,   315,    -1,   222,    -1,   232,   222,    -1,   236,   222,
    847       -1,   236,   232,   222,    -1,   221,   137,   118,   136,   276,
    848       -1,   374,   276,   111,   136,   264,   137,   112,    -1,   223,
    849      276,   111,   136,   264,   137,   112,    -1,   113,   136,   266,
    850      137,   114,    -1,   113,   136,   266,   137,   118,   136,   267,
    851      137,   114,    -1,     3,   220,    -1,     3,   222,    -1,   224,
    852      137,   118,   136,   141,    -1,     3,   230,   313,    -1,   225,
    853      137,   118,   136,   313,    -1,   232,     3,   230,   313,    -1,
    854      230,     3,   313,    -1,   230,     3,   232,   313,    -1,     3,
    855      141,   133,   169,    -1,   226,   137,   118,   136,   141,   133,
    856      169,    -1,   228,   137,   134,    -1,   225,   137,   134,    -1,
    857      226,   137,   134,    -1,   244,   137,   134,    -1,   229,   313,
    858      315,   281,    -1,   228,   118,   316,   313,   315,   281,    -1,
    859      240,    -1,   244,    -1,   246,    -1,   287,    -1,   241,    -1,
    860      245,    -1,   247,    -1,   288,    -1,    -1,   232,    -1,   233,
    861       -1,   232,   233,    -1,   234,    -1,   318,    -1,    10,    -1,
    862       12,    -1,    11,    -1,    14,    -1,    67,    -1,    -1,    13,
    863      111,   235,   290,   112,    -1,   237,    -1,   232,   237,    -1,
    864      236,   232,   237,    -1,   238,    -1,   237,   238,    -1,     5,
    865       -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
    866       -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
    867       -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
    868       -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
    869       -1,   241,    -1,   236,   241,    -1,   240,   238,    -1,   240,
    870      238,   232,    -1,   240,   238,   241,    -1,   242,    -1,   231,
    871      243,   231,    -1,   239,    -1,   232,   239,    -1,   242,   233,
    872       -1,   242,   239,    -1,    28,   111,   280,   112,    -1,    28,
    873      111,   174,   112,    -1,    78,   111,   280,   112,    -1,    78,
    874      111,   174,   112,    -1,   245,    -1,   236,   245,    -1,   244,
    875      238,    -1,   244,   238,   232,    -1,   248,    -1,   232,   248,
    876       -1,   245,   233,    -1,   247,    -1,   236,   247,    -1,   246,
    877      238,    -1,   246,   238,   232,    -1,    74,    -1,   232,    74,
    878       -1,   247,   233,    -1,   249,    -1,   260,    -1,   251,   116,
    879      252,   117,    -1,   251,   278,    -1,    -1,   251,   278,   250,
    880      116,   252,   117,    -1,   251,   111,   296,   112,   116,   252,
    881      117,    -1,   251,   289,    -1,    31,   316,    -1,    32,   316,
    882       -1,    -1,   252,   253,    -1,   254,   134,    -1,    40,   254,
    883      134,    -1,   255,   134,    -1,    40,   255,   134,    -1,   370,
    884       -1,   370,   278,    -1,   254,   118,   278,    -1,   254,   118,
    885       -1,   230,   256,    -1,   255,   118,   316,   256,    -1,    -1,
    886      258,    -1,   322,   257,    -1,   335,   257,    -1,   361,    -1,
    887       -1,   258,    -1,   132,   168,    -1,    30,   316,    -1,   259,
    888      116,   262,   376,   117,    -1,   259,   278,    -1,    -1,   259,
    889      278,   261,   116,   262,   376,   117,    -1,   278,   263,    -1,
    890      262,   118,   278,   263,    -1,    -1,   133,   168,    -1,    -1,
    891      265,    -1,   267,    -1,   266,    -1,   266,   137,   118,   136,
    892      267,    -1,   267,   137,   118,   136,    98,    -1,   266,   137,
    893      118,   136,    98,    -1,   271,    -1,   267,   137,   118,   136,
    894      271,    -1,   266,   137,   118,   136,   271,    -1,   266,   137,
    895      118,   136,   267,   137,   118,   136,   271,    -1,   272,    -1,
    896      267,   137,   118,   136,   272,    -1,    -1,   269,    -1,   270,
    897       -1,   270,   137,   118,   136,    98,    -1,   274,    -1,   273,
    898       -1,   270,   137,   118,   136,   274,    -1,   270,   137,   118,
    899      136,   273,    -1,   273,    -1,   366,   276,   377,    -1,   374,
    900      276,   377,    -1,   232,   374,   276,   377,    -1,   222,    -1,
    901      274,    -1,   366,    -1,   374,    -1,   232,   374,    -1,   375,
    902       -1,   229,   340,   377,    -1,   229,   344,   377,    -1,   229,
    903       -1,   229,   355,    -1,   141,    -1,   275,   118,   141,    -1,
    904      139,    -1,    74,    -1,    75,    -1,   140,    -1,    74,    -1,
    905       75,    -1,   141,    -1,    74,    -1,    75,    -1,   370,    -1,
    906      230,    -1,   230,   361,    -1,   370,    -1,   375,    -1,   230,
    907       -1,   230,   349,    -1,    -1,   133,   282,    -1,   109,   282,
    908       -1,   169,    -1,   116,   283,   376,   117,    -1,    -1,   282,
    909       -1,   284,   282,    -1,   283,   118,   282,    -1,   283,   118,
    910      284,   282,    -1,   285,   132,    -1,   278,   132,    -1,   286,
    911       -1,   285,   286,    -1,   115,   278,    -1,   113,   136,   169,
    912      137,   114,    -1,   113,   136,   314,   137,   114,    -1,   113,
    913      136,   168,    98,   168,   137,   114,    -1,   115,   113,   136,
    914      149,   137,   114,    -1,   288,    -1,   236,   288,    -1,   287,
    915      238,    -1,   287,   238,   232,    -1,   289,    -1,   232,   289,
    916       -1,   288,   233,    -1,    75,   111,   296,   112,    -1,   291,
    917      377,    -1,   290,   118,   291,   377,    -1,    -1,   293,   278,
    918      292,   294,    -1,   230,   340,    -1,    33,    -1,    35,    -1,
    919       34,    -1,    -1,   294,   295,    -1,   130,   278,   111,   296,
    920      112,    -1,   130,   116,   136,   302,   117,    -1,   130,   111,
    921      136,   290,   137,   112,   116,   136,   302,   117,   111,   296,
    922      112,    -1,   280,    -1,   169,    -1,   296,   118,   280,    -1,
    923      296,   118,   169,    -1,    33,   298,    -1,   237,    33,   298,
    924       -1,   297,   118,   298,    -1,   299,   294,    -1,   299,   294,
    925      133,   280,    -1,   278,    -1,   277,   111,   136,   290,   137,
    926      112,    -1,    36,   278,   111,   136,   290,   137,   112,   116,
    927      117,    -1,    -1,    36,   278,   111,   136,   290,   137,   112,
    928      116,   301,   302,   117,    -1,   303,    -1,   302,   136,   303,
    929       -1,   304,   137,   134,    -1,   305,   137,   134,    -1,   220,
    930       -1,   222,    -1,   304,   137,   118,   136,   276,    -1,   230,
    931      313,    -1,   305,   137,   118,   136,   313,    -1,    -1,   307,
    932       -1,   309,    -1,   307,   136,   309,    -1,    -1,   307,    -1,
    933      217,    -1,   311,    -1,   203,    -1,    -1,     5,    81,   310,
    934      116,   308,   117,    -1,    40,   309,    -1,   312,    -1,   327,
    935      178,    -1,   331,   136,   212,   178,    -1,   221,   178,    -1,
    936      229,   327,   178,    -1,   232,   327,   178,    -1,   236,   327,
    937      178,    -1,   236,   232,   327,   178,    -1,   229,   331,   136,
    938      212,   178,    -1,   232,   331,   136,   212,   178,    -1,   236,
    939      331,   136,   212,   178,    -1,   236,   232,   331,   136,   212,
    940      178,    -1,   322,    -1,   335,    -1,   327,    -1,   168,   124,
    941      168,    -1,    -1,    64,   111,   144,   112,   316,    -1,    -1,
    942      317,    -1,   318,    -1,   317,   318,    -1,    39,   111,   111,
    943      319,   112,   112,    -1,   320,    -1,   319,   118,   320,    -1,
    944       -1,   321,    -1,   321,   111,   175,   112,    -1,   276,    -1,
    945      238,    -1,   239,    -1,   233,    -1,   323,   316,    -1,   324,
    946       -1,   325,   316,    -1,   326,   316,    -1,   139,    -1,   111,
    947      323,   112,    -1,   154,   322,    -1,   154,   232,   322,    -1,
    948      111,   324,   112,    -1,   323,   353,    -1,   111,   324,   112,
    949      353,    -1,   111,   325,   112,   354,    -1,   111,   325,   112,
    950       -1,   111,   324,   112,   111,   136,   268,   137,   112,    -1,
    951      111,   326,   112,    -1,   328,   316,    -1,   329,    -1,   330,
    952      316,    -1,   323,   111,   136,   268,   137,   112,    -1,   111,
    953      329,   112,   111,   136,   268,   137,   112,    -1,   111,   328,
    954      112,    -1,   154,   327,    -1,   154,   232,   327,    -1,   111,
    955      329,   112,    -1,   111,   329,   112,   353,    -1,   111,   330,
    956      112,   354,    -1,   111,   330,   112,    -1,   332,    -1,   333,
    957       -1,   334,    -1,   323,   111,   275,   112,    -1,   111,   333,
    958      112,   111,   275,   112,    -1,   111,   332,   112,    -1,   154,
    959      331,    -1,   154,   232,   331,    -1,   111,   333,   112,    -1,
    960      111,   333,   112,   353,    -1,   111,   334,   112,   354,    -1,
    961      111,   334,   112,    -1,   336,   316,    -1,   337,    -1,   338,
    962      316,    -1,   339,   316,    -1,   345,    -1,   111,   336,   112,
    963       -1,   154,   335,    -1,   154,   232,   335,    -1,   111,   337,
    964      112,    -1,   336,   353,    -1,   111,   337,   112,   353,    -1,
    965      111,   338,   112,   354,    -1,   111,   338,   112,    -1,   336,
    966      111,   136,   268,   137,   112,    -1,   111,   337,   112,   111,
    967      136,   268,   137,   112,    -1,   111,   339,   112,    -1,   323,
    968      316,    -1,   341,    -1,   342,   316,    -1,   343,   316,    -1,
    969      154,   340,    -1,   154,   232,   340,    -1,   111,   341,   112,
    970       -1,   323,   359,    -1,   111,   341,   112,   353,    -1,   111,
    971      342,   112,   354,    -1,   111,   342,   112,    -1,   323,   111,
    972      136,   268,   137,   112,    -1,   111,   341,   112,   111,   136,
    973      268,   137,   112,    -1,   111,   343,   112,    -1,   345,   316,
    974       -1,   346,    -1,   347,   316,    -1,   348,   316,    -1,    74,
    975       -1,    75,    -1,   154,   344,    -1,   154,   232,   344,    -1,
    976      111,   346,   112,    -1,   345,   359,    -1,   111,   346,   112,
    977      359,    -1,   345,   111,   136,   268,   137,   112,    -1,   111,
    978      346,   112,   111,   136,   268,   137,   112,    -1,   350,    -1,
    979      351,   316,    -1,   352,   316,    -1,   154,    -1,   154,   232,
    980       -1,   154,   349,    -1,   154,   232,   349,    -1,   111,   350,
    981      112,    -1,   353,    -1,   111,   350,   112,   353,    -1,   111,
    982      351,   112,   354,    -1,   111,   351,   112,    -1,   111,   136,
    983      268,   137,   112,    -1,   111,   350,   112,   111,   136,   268,
    984      137,   112,    -1,   111,   352,   112,    -1,   113,   114,    -1,
    985      113,   114,   354,    -1,   354,    -1,   113,   136,   169,   137,
    986      114,    -1,   113,   136,   119,   137,   114,    -1,   354,   113,
    987      136,   169,   137,   114,    -1,   354,   113,   136,   119,   137,
    988      114,    -1,   356,    -1,   357,   316,    -1,   358,   316,    -1,
    989      154,    -1,   154,   232,    -1,   154,   355,    -1,   154,   232,
    990      355,    -1,   111,   356,   112,    -1,   359,    -1,   111,   356,
    991      112,   359,    -1,   111,   357,   112,   354,    -1,   111,   357,
    992      112,    -1,   111,   136,   268,   137,   112,    -1,   111,   356,
    993      112,   111,   136,   268,   137,   112,    -1,   111,   358,   112,
    994       -1,   360,    -1,   360,   354,    -1,   354,    -1,   113,   114,
    995       -1,   113,   136,   232,   119,   137,   114,    -1,   113,   136,
    996      232,   137,   114,    -1,   113,   136,   232,   169,   137,   114,
    997       -1,   113,   136,     7,   231,   169,   137,   114,    -1,   113,
    998      136,   232,     7,   169,   137,   114,    -1,   362,    -1,   363,
    999      316,    -1,   364,   316,    -1,   154,    -1,   154,   232,    -1,
    1000      154,   361,    -1,   154,   232,   361,    -1,   111,   362,   112,
    1001       -1,   353,    -1,   111,   362,   112,   353,    -1,   111,   363,
    1002      112,   354,    -1,   111,   363,   112,    -1,   111,   362,   112,
    1003      111,   136,   268,   137,   112,    -1,   111,   364,   112,    -1,
    1004      366,    -1,   374,    -1,   232,   374,    -1,   367,    -1,   368,
    1005       -1,   154,   230,    -1,   232,   154,   230,    -1,   154,   375,
    1006       -1,   232,   154,   375,    -1,   154,   365,    -1,   232,   154,
    1007      365,    -1,   113,   114,   230,    -1,   369,   230,    -1,   113,
    1008      114,   354,   230,    -1,   369,   354,   230,    -1,   354,   230,
    1009       -1,   113,   114,   367,    -1,   369,   367,    -1,   113,   114,
    1010      354,   367,    -1,   369,   354,   367,    -1,   354,   367,    -1,
    1011      113,   136,   232,   119,   137,   114,    -1,   113,   136,   232,
    1012      169,   137,   114,    -1,   113,   136,   236,   169,   137,   114,
    1013       -1,   113,   136,   236,   232,   169,   137,   114,    -1,   374,
    1014       -1,   232,   374,    -1,   371,    -1,   372,    -1,   373,    -1,
    1015      154,   230,    -1,   232,   154,   230,    -1,   154,   375,    -1,
    1016      232,   154,   375,    -1,   154,   370,    -1,   232,   154,   370,
    1017       -1,   113,   114,   230,    -1,   113,   114,   354,   230,    -1,
    1018      354,   230,    -1,   113,   114,   372,    -1,   113,   114,   354,
    1019      372,    -1,   354,   372,    -1,   113,   136,   267,   137,   114,
    1020       -1,   374,   111,   136,   264,   137,   112,    -1,   223,   111,
    1021      136,   264,   137,   112,    -1,    -1,   118,    -1,    -1,   133,
    1022      169,    -1
     747     303,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
     748      -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
     749      -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,   142,
     750      -1,    82,    -1,   142,    82,    -1,    72,    -1,   140,    -1,
     751     109,   171,   110,    -1,   109,   175,   110,    -1,   143,    -1,
     752     144,   111,   134,   166,   135,   112,    -1,   144,   109,   145,
     753     110,    -1,   144,   113,   139,    -1,   144,   113,   111,   134,
     754     147,   135,   112,    -1,   144,   113,    79,    -1,   144,    85,
     755     139,    -1,   144,    85,   111,   134,   147,   135,   112,    -1,
     756     144,    86,    -1,   144,    87,    -1,   109,   276,   110,   114,
     757     280,   373,   115,    -1,   144,   114,   145,   115,    -1,   146,
     758      -1,   145,   116,   146,    -1,    -1,   166,    -1,   148,    -1,
     759     147,   116,   148,    -1,   149,    -1,   149,   113,   148,    -1,
     760     149,   113,   111,   134,   147,   135,   112,    -1,   149,    85,
     761     148,    -1,   149,    85,   111,   134,   147,   135,   112,    -1,
     762     139,    -1,    79,    -1,   144,    -1,   136,    -1,   141,    -1,
     763      40,   153,    -1,   151,   153,    -1,   152,   153,    -1,    86,
     764     150,    -1,    87,   150,    -1,    37,   150,    -1,    37,   109,
     765     276,   110,    -1,    66,   150,    -1,    66,   109,   276,   110,
     766      -1,    38,   109,   276,   116,   139,   110,    -1,    76,    -1,
     767      76,   109,   146,   110,    -1,    76,   109,   277,   110,    -1,
     768     117,    -1,   118,    -1,   119,    -1,   120,    -1,   121,    -1,
     769     122,    -1,   150,    -1,   109,   276,   110,   153,    -1,   109,
     770     276,   110,   169,    -1,   153,    -1,   154,   117,   153,    -1,
     771     154,   123,   153,    -1,   154,   124,   153,    -1,   154,    -1,
     772     155,   119,   154,    -1,   155,   120,   154,    -1,   155,    -1,
     773     156,    88,   155,    -1,   156,    89,   155,    -1,   156,    -1,
     774     157,   125,   156,    -1,   157,   126,   156,    -1,   157,    90,
     775     156,    -1,   157,    91,   156,    -1,   157,    -1,   158,    92,
     776     157,    -1,   158,    93,   157,    -1,   158,    -1,   159,   118,
     777     158,    -1,   159,    -1,   160,   127,   159,    -1,   160,    -1,
     778     161,   128,   160,    -1,   161,    -1,   162,    94,   161,    -1,
     779     162,    -1,   163,    95,   162,    -1,   163,    -1,   163,   129,
     780     171,   130,   164,    -1,   163,   129,   130,   164,    -1,   163,
     781     129,   171,   130,   169,    -1,   164,    -1,   164,    -1,   150,
     782     168,   166,    -1,   169,   374,    -1,    -1,   166,    -1,   131,
     783      -1,   107,    -1,    97,    -1,    98,    -1,    99,    -1,   100,
     784      -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,
     785      -1,   106,    -1,   111,   112,    -1,   111,   134,   166,   135,
     786     112,    -1,   111,   134,   116,   170,   135,   112,    -1,   111,
     787     134,   166,   116,   170,   135,   112,    -1,   167,    -1,   170,
     788     116,   167,    -1,   166,    -1,   171,   116,   166,    -1,    -1,
     789     171,    -1,   174,    -1,   175,    -1,   179,    -1,   180,    -1,
     790     192,    -1,   194,    -1,   195,    -1,   200,    -1,   127,   144,
     791     114,   145,   115,   132,    -1,    72,   130,   313,   173,    -1,
     792     114,   115,    -1,   114,   134,   134,   211,   176,   135,   115,
     793      -1,   177,    -1,   176,   134,   177,    -1,   214,    -1,    40,
     794     214,    -1,   309,    -1,   173,   135,    -1,   173,    -1,   178,
     795     173,    -1,   172,   132,    -1,    41,   109,   171,   110,   173,
     796      -1,    41,   109,   171,   110,   173,    42,   173,    -1,    43,
     797     109,   171,   110,   185,    -1,    43,   109,   171,   110,   114,
     798     134,   207,   186,   115,    -1,    53,   109,   171,   110,   185,
     799      -1,    53,   109,   171,   110,   114,   134,   207,   188,   115,
     800      -1,   165,    -1,   165,    96,   165,    -1,   311,    -1,   181,
     801      -1,   182,   116,   181,    -1,    44,   182,   130,    -1,    45,
     802     130,    -1,   183,    -1,   184,   183,    -1,   184,   173,    -1,
     803      -1,   187,    -1,   184,   178,    -1,   187,   184,   178,    -1,
     804      -1,   189,    -1,   184,   191,    -1,   184,   178,   190,    -1,
     805     189,   184,   191,    -1,   189,   184,   178,   190,    -1,    -1,
     806     191,    -1,    56,    -1,    56,   132,    -1,    47,   109,   171,
     807     110,   173,    -1,    46,   173,    47,   109,   171,   110,   132,
     808      -1,    48,   109,   134,   193,   110,   173,    -1,   172,   135,
     809     132,   172,   132,   172,    -1,   214,   172,   132,   172,    -1,
     810      51,    72,   132,    -1,    51,   117,   171,   132,    -1,    50,
     811     132,    -1,    50,    72,   132,    -1,    49,   132,    -1,    49,
     812      72,   132,    -1,    52,   172,   132,    -1,    61,   167,   132,
     813      -1,    62,   167,   132,    -1,    62,   167,    63,   166,   132,
     814      -1,    57,   175,   196,    -1,    57,   175,   198,    -1,    57,
     815     175,   196,   198,    -1,   197,    -1,    58,   109,    96,   110,
     816     175,    -1,   197,    58,   109,    96,   110,   175,    -1,    59,
     817     109,    96,   110,   175,    -1,   197,    59,   109,    96,   110,
     818     175,    -1,    58,   109,   134,   134,   199,   135,   110,   175,
     819     135,    -1,   197,    58,   109,   134,   134,   199,   135,   110,
     820     175,   135,    -1,    59,   109,   134,   134,   199,   135,   110,
     821     175,   135,    -1,   197,    59,   109,   134,   134,   199,   135,
     822     110,   175,   135,    -1,    60,   175,    -1,   227,    -1,   227,
     823     310,    -1,   227,   358,    -1,   367,   139,    -1,   367,    -1,
     824      64,   201,   109,   141,   110,   132,    -1,    64,   201,   109,
     825     141,   130,   202,   110,   132,    -1,    64,   201,   109,   141,
     826     130,   202,   130,   202,   110,   132,    -1,    64,   201,   109,
     827     141,   130,   202,   130,   202,   130,   205,   110,   132,    -1,
     828      64,   201,    51,   109,   141,   130,   130,   202,   130,   205,
     829     130,   206,   110,   132,    -1,    -1,    11,    -1,    -1,   203,
     830      -1,   204,    -1,   203,   116,   204,    -1,   141,   109,   165,
     831     110,    -1,   111,   165,   112,   141,   109,   165,   110,    -1,
     832      -1,   141,    -1,   205,   116,   141,    -1,   139,    -1,   206,
     833     116,   139,    -1,   135,    -1,   208,    -1,   214,    -1,   208,
     834     134,   214,    -1,   135,    -1,   210,    -1,   224,    -1,   210,
     835     134,   224,    -1,    -1,   212,    -1,    29,   213,   132,    -1,
     836     212,    29,   213,   132,    -1,   275,    -1,   213,   116,   275,
     837      -1,   215,    -1,   224,    -1,   216,   135,   132,    -1,   221,
     838     135,   132,    -1,   218,   135,   132,    -1,   294,   135,   132,
     839      -1,   297,   135,   132,    -1,   217,   278,    -1,   233,   217,
     840     278,    -1,   216,   135,   116,   134,   273,   278,    -1,   368,
     841     273,   312,    -1,   371,   273,   312,    -1,   229,   371,   273,
     842     312,    -1,   219,    -1,   229,   219,    -1,   233,   219,    -1,
     843     233,   229,   219,    -1,   218,   135,   116,   134,   273,    -1,
     844     111,   112,   273,   109,   134,   261,   135,   110,    -1,   371,
     845     273,   109,   134,   261,   135,   110,    -1,   220,   273,   109,
     846     134,   261,   135,   110,    -1,   111,   134,   263,   135,   112,
     847      -1,   111,   134,   263,   135,   116,   134,   264,   135,   112,
     848      -1,     3,   217,    -1,     3,   219,    -1,   221,   135,   116,
     849     134,   139,    -1,     3,   227,   310,    -1,   222,   135,   116,
     850     134,   310,    -1,   229,     3,   227,   310,    -1,   227,     3,
     851     310,    -1,   227,     3,   229,   310,    -1,     3,   139,   131,
     852     166,    -1,   223,   135,   116,   134,   139,   131,   166,    -1,
     853     225,   135,   132,    -1,   222,   135,   132,    -1,   223,   135,
     854     132,    -1,   241,   135,   132,    -1,   226,   310,   312,   278,
     855      -1,   225,   116,   313,   310,   312,   278,    -1,   237,    -1,
     856     241,    -1,   243,    -1,   284,    -1,   238,    -1,   242,    -1,
     857     244,    -1,   285,    -1,    -1,   229,    -1,   230,    -1,   229,
     858     230,    -1,   231,    -1,   315,    -1,    10,    -1,    12,    -1,
     859      11,    -1,    14,    -1,    67,    -1,    -1,    13,   109,   232,
     860     287,   110,    -1,   234,    -1,   229,   234,    -1,   233,   229,
     861     234,    -1,   235,    -1,   234,   235,    -1,     5,    -1,     7,
     862      -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,    69,
     863      -1,    71,    -1,    16,    -1,    21,    -1,    20,    -1,    18,
     864      -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,    15,
     865      -1,    25,    -1,    26,    -1,    27,    -1,    24,    -1,   238,
     866      -1,   233,   238,    -1,   237,   235,    -1,   237,   235,   229,
     867      -1,   237,   235,   238,    -1,   239,    -1,   228,   240,   228,
     868      -1,   236,    -1,   229,   236,    -1,   239,   230,    -1,   239,
     869     236,    -1,    28,   109,   277,   110,    -1,    28,   109,   171,
     870     110,    -1,    78,   109,   277,   110,    -1,    78,   109,   171,
     871     110,    -1,   242,    -1,   233,   242,    -1,   241,   235,    -1,
     872     241,   235,   229,    -1,   245,    -1,   229,   245,    -1,   242,
     873     230,    -1,   244,    -1,   233,   244,    -1,   243,   235,    -1,
     874     243,   235,   229,    -1,    74,    -1,   229,    74,    -1,   244,
     875     230,    -1,   246,    -1,   257,    -1,   248,   114,   249,   115,
     876      -1,   248,   275,    -1,    -1,   248,   275,   247,   114,   249,
     877     115,    -1,   248,   109,   293,   110,   114,   249,   115,    -1,
     878     248,   286,    -1,    31,   313,    -1,    32,   313,    -1,    -1,
     879     249,   250,    -1,   251,   132,    -1,    40,   251,   132,    -1,
     880     252,   132,    -1,    40,   252,   132,    -1,   367,    -1,   367,
     881     275,    -1,   251,   116,   275,    -1,   251,   116,    -1,   227,
     882     253,    -1,   252,   116,   313,   253,    -1,    -1,   255,    -1,
     883     319,   254,    -1,   332,   254,    -1,   358,    -1,    -1,   255,
     884      -1,   130,   165,    -1,    30,   313,    -1,   256,   114,   259,
     885     373,   115,    -1,   256,   275,    -1,    -1,   256,   275,   258,
     886     114,   259,   373,   115,    -1,   275,   260,    -1,   259,   116,
     887     275,   260,    -1,    -1,   131,   165,    -1,    -1,   262,    -1,
     888     264,    -1,   263,    -1,   263,   135,   116,   134,   264,    -1,
     889     264,   135,   116,   134,    96,    -1,   263,   135,   116,   134,
     890      96,    -1,   268,    -1,   264,   135,   116,   134,   268,    -1,
     891     263,   135,   116,   134,   268,    -1,   263,   135,   116,   134,
     892     264,   135,   116,   134,   268,    -1,   269,    -1,   264,   135,
     893     116,   134,   269,    -1,    -1,   266,    -1,   267,    -1,   267,
     894     135,   116,   134,    96,    -1,   271,    -1,   270,    -1,   267,
     895     135,   116,   134,   271,    -1,   267,   135,   116,   134,   270,
     896      -1,   270,    -1,   363,   273,   374,    -1,   371,   273,   374,
     897      -1,   229,   371,   273,   374,    -1,   219,    -1,   271,    -1,
     898     363,    -1,   371,    -1,   229,   371,    -1,   372,    -1,   226,
     899     337,   374,    -1,   226,   341,   374,    -1,   226,    -1,   226,
     900     352,    -1,   139,    -1,   272,   116,   139,    -1,   137,    -1,
     901      74,    -1,    75,    -1,   138,    -1,    74,    -1,    75,    -1,
     902     139,    -1,    74,    -1,    75,    -1,   367,    -1,   227,    -1,
     903     227,   358,    -1,   367,    -1,   372,    -1,   227,    -1,   227,
     904     346,    -1,    -1,   131,   279,    -1,   107,   279,    -1,   166,
     905      -1,   114,   280,   373,   115,    -1,    -1,   279,    -1,   281,
     906     279,    -1,   280,   116,   279,    -1,   280,   116,   281,   279,
     907      -1,   282,   130,    -1,   275,   130,    -1,   283,    -1,   282,
     908     283,    -1,   113,   275,    -1,   111,   134,   166,   135,   112,
     909      -1,   111,   134,   311,   135,   112,    -1,   111,   134,   165,
     910      96,   165,   135,   112,    -1,   113,   111,   134,   147,   135,
     911     112,    -1,   285,    -1,   233,   285,    -1,   284,   235,    -1,
     912     284,   235,   229,    -1,   286,    -1,   229,   286,    -1,   285,
     913     230,    -1,    75,   109,   293,   110,    -1,   288,   374,    -1,
     914     287,   116,   288,   374,    -1,    -1,   290,   275,   289,   291,
     915      -1,   227,   337,    -1,    33,    -1,    35,    -1,    34,    -1,
     916      -1,   291,   292,    -1,   128,   275,   109,   293,   110,    -1,
     917     128,   114,   134,   299,   115,    -1,   128,   109,   134,   287,
     918     135,   110,   114,   134,   299,   115,   109,   293,   110,    -1,
     919     277,    -1,   166,    -1,   293,   116,   277,    -1,   293,   116,
     920     166,    -1,    33,   295,    -1,   234,    33,   295,    -1,   294,
     921     116,   295,    -1,   296,   291,    -1,   296,   291,   131,   277,
     922      -1,   275,    -1,   274,   109,   134,   287,   135,   110,    -1,
     923      36,   275,   109,   134,   287,   135,   110,   114,   115,    -1,
     924      -1,    36,   275,   109,   134,   287,   135,   110,   114,   298,
     925     299,   115,    -1,   300,    -1,   299,   134,   300,    -1,   301,
     926     135,   132,    -1,   302,   135,   132,    -1,   217,    -1,   219,
     927      -1,   301,   135,   116,   134,   273,    -1,   227,   310,    -1,
     928     302,   135,   116,   134,   310,    -1,    -1,   304,    -1,   306,
     929      -1,   304,   134,   306,    -1,    -1,   304,    -1,   214,    -1,
     930     308,    -1,   200,    -1,    -1,     5,    82,   307,   114,   305,
     931     115,    -1,    40,   306,    -1,   309,    -1,   324,   175,    -1,
     932     328,   134,   209,   175,    -1,   218,   175,    -1,   226,   324,
     933     175,    -1,   229,   324,   175,    -1,   233,   324,   175,    -1,
     934     233,   229,   324,   175,    -1,   226,   328,   134,   209,   175,
     935      -1,   229,   328,   134,   209,   175,    -1,   233,   328,   134,
     936     209,   175,    -1,   233,   229,   328,   134,   209,   175,    -1,
     937     319,    -1,   332,    -1,   324,    -1,   165,   122,   165,    -1,
     938      -1,    64,   109,   142,   110,   313,    -1,    -1,   314,    -1,
     939     315,    -1,   314,   315,    -1,    39,   109,   109,   316,   110,
     940     110,    -1,   317,    -1,   316,   116,   317,    -1,    -1,   318,
     941      -1,   318,   109,   172,   110,    -1,   273,    -1,   235,    -1,
     942     236,    -1,   230,    -1,   320,   313,    -1,   321,    -1,   322,
     943     313,    -1,   323,   313,    -1,   137,    -1,   109,   320,   110,
     944      -1,   151,   319,    -1,   151,   229,   319,    -1,   109,   321,
     945     110,    -1,   320,   350,    -1,   109,   321,   110,   350,    -1,
     946     109,   322,   110,   351,    -1,   109,   322,   110,    -1,   109,
     947     321,   110,   109,   134,   265,   135,   110,    -1,   109,   323,
     948     110,    -1,   325,   313,    -1,   326,    -1,   327,   313,    -1,
     949     320,   109,   134,   265,   135,   110,    -1,   109,   326,   110,
     950     109,   134,   265,   135,   110,    -1,   109,   325,   110,    -1,
     951     151,   324,    -1,   151,   229,   324,    -1,   109,   326,   110,
     952      -1,   109,   326,   110,   350,    -1,   109,   327,   110,   351,
     953      -1,   109,   327,   110,    -1,   329,    -1,   330,    -1,   331,
     954      -1,   320,   109,   272,   110,    -1,   109,   330,   110,   109,
     955     272,   110,    -1,   109,   329,   110,    -1,   151,   328,    -1,
     956     151,   229,   328,    -1,   109,   330,   110,    -1,   109,   330,
     957     110,   350,    -1,   109,   331,   110,   351,    -1,   109,   331,
     958     110,    -1,   333,   313,    -1,   334,    -1,   335,   313,    -1,
     959     336,   313,    -1,   342,    -1,   109,   333,   110,    -1,   151,
     960     332,    -1,   151,   229,   332,    -1,   109,   334,   110,    -1,
     961     333,   350,    -1,   109,   334,   110,   350,    -1,   109,   335,
     962     110,   351,    -1,   109,   335,   110,    -1,   333,   109,   134,
     963     265,   135,   110,    -1,   109,   334,   110,   109,   134,   265,
     964     135,   110,    -1,   109,   336,   110,    -1,   320,   313,    -1,
     965     338,    -1,   339,   313,    -1,   340,   313,    -1,   151,   337,
     966      -1,   151,   229,   337,    -1,   109,   338,   110,    -1,   320,
     967     356,    -1,   109,   338,   110,   350,    -1,   109,   339,   110,
     968     351,    -1,   109,   339,   110,    -1,   320,   109,   134,   265,
     969     135,   110,    -1,   109,   338,   110,   109,   134,   265,   135,
     970     110,    -1,   109,   340,   110,    -1,   342,   313,    -1,   343,
     971      -1,   344,   313,    -1,   345,   313,    -1,    74,    -1,    75,
     972      -1,   151,   341,    -1,   151,   229,   341,    -1,   109,   343,
     973     110,    -1,   342,   356,    -1,   109,   343,   110,   356,    -1,
     974     342,   109,   134,   265,   135,   110,    -1,   109,   343,   110,
     975     109,   134,   265,   135,   110,    -1,   347,    -1,   348,   313,
     976      -1,   349,   313,    -1,   151,    -1,   151,   229,    -1,   151,
     977     346,    -1,   151,   229,   346,    -1,   109,   347,   110,    -1,
     978     350,    -1,   109,   347,   110,   350,    -1,   109,   348,   110,
     979     351,    -1,   109,   348,   110,    -1,   109,   134,   265,   135,
     980     110,    -1,   109,   347,   110,   109,   134,   265,   135,   110,
     981      -1,   109,   349,   110,    -1,   111,   112,    -1,   111,   112,
     982     351,    -1,   351,    -1,   111,   134,   166,   135,   112,    -1,
     983     111,   134,   117,   135,   112,    -1,   351,   111,   134,   166,
     984     135,   112,    -1,   351,   111,   134,   117,   135,   112,    -1,
     985     353,    -1,   354,   313,    -1,   355,   313,    -1,   151,    -1,
     986     151,   229,    -1,   151,   352,    -1,   151,   229,   352,    -1,
     987     109,   353,   110,    -1,   356,    -1,   109,   353,   110,   356,
     988      -1,   109,   354,   110,   351,    -1,   109,   354,   110,    -1,
     989     109,   134,   265,   135,   110,    -1,   109,   353,   110,   109,
     990     134,   265,   135,   110,    -1,   109,   355,   110,    -1,   357,
     991      -1,   357,   351,    -1,   351,    -1,   111,   112,    -1,   111,
     992     134,   229,   117,   135,   112,    -1,   111,   134,   229,   135,
     993     112,    -1,   111,   134,   229,   166,   135,   112,    -1,   111,
     994     134,     7,   228,   166,   135,   112,    -1,   111,   134,   229,
     995       7,   166,   135,   112,    -1,   359,    -1,   360,   313,    -1,
     996     361,   313,    -1,   151,    -1,   151,   229,    -1,   151,   358,
     997      -1,   151,   229,   358,    -1,   109,   359,   110,    -1,   350,
     998      -1,   109,   359,   110,   350,    -1,   109,   360,   110,   351,
     999      -1,   109,   360,   110,    -1,   109,   359,   110,   109,   134,
     1000     265,   135,   110,    -1,   109,   361,   110,    -1,   363,    -1,
     1001     371,    -1,   229,   371,    -1,   364,    -1,   365,    -1,   151,
     1002     227,    -1,   229,   151,   227,    -1,   151,   372,    -1,   229,
     1003     151,   372,    -1,   151,   362,    -1,   229,   151,   362,    -1,
     1004     111,   112,   227,    -1,   366,   227,    -1,   111,   112,   351,
     1005     227,    -1,   366,   351,   227,    -1,   351,   227,    -1,   111,
     1006     112,   364,    -1,   366,   364,    -1,   111,   112,   351,   364,
     1007      -1,   366,   351,   364,    -1,   351,   364,    -1,   111,   134,
     1008     229,   117,   135,   112,    -1,   111,   134,   229,   166,   135,
     1009     112,    -1,   111,   134,   233,   166,   135,   112,    -1,   111,
     1010     134,   233,   229,   166,   135,   112,    -1,   371,    -1,   229,
     1011     371,    -1,   368,    -1,   369,    -1,   370,    -1,   151,   227,
     1012      -1,   229,   151,   227,    -1,   151,   372,    -1,   229,   151,
     1013     372,    -1,   151,   367,    -1,   229,   151,   367,    -1,   111,
     1014     112,   227,    -1,   111,   112,   351,   227,    -1,   351,   227,
     1015      -1,   111,   112,   369,    -1,   111,   112,   351,   369,    -1,
     1016     351,   369,    -1,   111,   134,   264,   135,   112,    -1,   111,
     1017     112,   109,   261,   110,    -1,   371,   109,   134,   261,   135,
     1018     110,    -1,   220,   109,   134,   261,   135,   110,    -1,    -1,
     1019     116,    -1,    -1,   131,   166,    -1
    10231020};
    10241021
     
    10261023static const yytype_uint16 yyrline[] =
    10271024{
    1028        0,   306,   306,   310,   317,   318,   319,   320,   321,   325,
    1029      326,   327,   331,   332,   336,   337,   341,   342,   346,   350,
    1030      351,   362,   364,   366,   367,   369,   374,   375,   381,   383,
    1031      385,   386,   387,   389,   390,   392,   394,   396,   405,   406,
    1032      412,   413,   417,   418,   422,   424,   426,   428,   430,   432,
    1033      434,   439,   441,   443,   447,   449,   453,   456,   458,   460,
    1034      465,   478,   480,   482,   484,   486,   488,   490,   492,   494,
    1035      496,   498,   505,   506,   512,   513,   514,   515,   519,   520,
    1036      527,   528,   530,   532,   537,   538,   540,   545,   546,   548,
    1037      553,   554,   556,   558,   560,   565,   566,   568,   573,   574,
    1038      579,   580,   585,   586,   591,   592,   597,   598,   603,   604,
    1039      607,   614,   619,   620,   628,   629,   633,   634,   635,   636,
    1040      637,   638,   639,   640,   641,   642,   643,   644,   654,   656,
    1041      661,   662,   667,   668,   674,   675,   681,   682,   683,   684,
    1042      685,   686,   687,   688,   689,   699,   706,   708,   718,   719,
    1043      724,   726,   732,   734,   738,   739,   744,   749,   752,   754,
    1044      756,   766,   768,   779,   780,   782,   786,   788,   792,   793,
    1045      798,   799,   803,   808,   809,   813,   815,   821,   822,   826,
    1046      828,   830,   832,   838,   839,   843,   845,   850,   852,   854,
    1047      859,   861,   866,   868,   872,   875,   879,   882,   886,   888,
    1048      890,   892,   897,   899,   901,   906,   908,   910,   912,   914,
    1049      919,   921,   923,   925,   930,   942,   943,   948,   950,   955,
    1050      959,   961,   963,   965,   967,   973,   974,   980,   981,   985,
    1051      986,   991,   993,   999,  1000,  1002,  1007,  1012,  1022,  1024,
    1052     1028,  1029,  1034,  1036,  1040,  1041,  1045,  1047,  1051,  1052,
    1053     1056,  1057,  1061,  1062,  1077,  1078,  1079,  1080,  1081,  1085,
    1054     1090,  1097,  1107,  1112,  1117,  1125,  1130,  1135,  1140,  1145,
    1055     1175,  1180,  1187,  1189,  1196,  1201,  1206,  1217,  1222,  1227,
    1056     1232,  1237,  1246,  1251,  1259,  1260,  1261,  1262,  1268,  1273,
    1057     1281,  1282,  1283,  1284,  1288,  1289,  1290,  1291,  1296,  1297,
    1058     1306,  1307,  1312,  1313,  1318,  1320,  1322,  1324,  1326,  1329,
    1059     1328,  1340,  1341,  1343,  1353,  1354,  1359,  1361,  1363,  1365,
    1060     1367,  1370,  1372,  1375,  1380,  1382,  1384,  1386,  1388,  1390,
    1061     1392,  1394,  1396,  1398,  1400,  1402,  1404,  1410,  1411,  1413,
    1062     1415,  1417,  1422,  1423,  1429,  1430,  1432,  1434,  1439,  1441,
    1063     1443,  1445,  1450,  1451,  1453,  1455,  1460,  1461,  1463,  1468,
    1064     1469,  1471,  1473,  1478,  1480,  1482,  1487,  1488,  1492,  1494,
    1065     1500,  1499,  1503,  1505,  1510,  1512,  1518,  1519,  1524,  1525,
    1066     1527,  1528,  1537,  1538,  1540,  1542,  1547,  1549,  1555,  1556,
    1067     1558,  1561,  1564,  1569,  1570,  1575,  1580,  1584,  1586,  1592,
    1068     1591,  1598,  1600,  1606,  1607,  1615,  1616,  1620,  1621,  1622,
    1069     1624,  1626,  1633,  1634,  1636,  1638,  1643,  1644,  1650,  1651,
    1070     1655,  1656,  1661,  1662,  1663,  1665,  1673,  1674,  1676,  1679,
    1071     1681,  1685,  1686,  1687,  1689,  1691,  1695,  1700,  1708,  1709,
    1072     1718,  1720,  1725,  1726,  1727,  1731,  1732,  1733,  1737,  1738,
    1073     1739,  1743,  1744,  1745,  1750,  1751,  1752,  1753,  1759,  1760,
    1074     1762,  1767,  1768,  1773,  1774,  1775,  1776,  1777,  1792,  1793,
    1075     1798,  1799,  1805,  1807,  1810,  1812,  1814,  1837,  1838,  1840,
    1076     1842,  1847,  1848,  1850,  1855,  1860,  1861,  1867,  1866,  1870,
    1077     1874,  1876,  1878,  1884,  1885,  1890,  1895,  1897,  1902,  1904,
    1078     1905,  1907,  1912,  1914,  1916,  1921,  1923,  1928,  1933,  1941,
    1079     1947,  1946,  1960,  1961,  1966,  1967,  1971,  1976,  1981,  1989,
    1080     1994,  2005,  2006,  2011,  2012,  2018,  2019,  2023,  2024,  2025,
    1081     2028,  2027,  2038,  2047,  2053,  2059,  2068,  2074,  2080,  2086,
    1082     2092,  2100,  2106,  2114,  2120,  2129,  2130,  2131,  2135,  2139,
    1083     2141,  2146,  2147,  2151,  2152,  2157,  2163,  2164,  2167,  2169,
    1084     2170,  2174,  2175,  2176,  2177,  2211,  2213,  2214,  2216,  2221,
    1085     2226,  2231,  2233,  2235,  2240,  2242,  2244,  2246,  2251,  2253,
    1086     2262,  2264,  2265,  2270,  2272,  2274,  2279,  2281,  2283,  2288,
    1087     2290,  2292,  2301,  2302,  2303,  2307,  2309,  2311,  2316,  2318,
    1088     2320,  2325,  2327,  2329,  2344,  2346,  2347,  2349,  2354,  2355,
    1089     2360,  2362,  2364,  2369,  2371,  2373,  2375,  2380,  2382,  2384,
    1090     2394,  2396,  2397,  2399,  2404,  2406,  2408,  2413,  2415,  2417,
    1091     2419,  2424,  2426,  2428,  2459,  2461,  2462,  2464,  2469,  2474,
    1092     2482,  2484,  2486,  2491,  2493,  2498,  2500,  2514,  2515,  2517,
    1093     2522,  2524,  2526,  2528,  2530,  2535,  2536,  2538,  2540,  2545,
    1094     2547,  2549,  2555,  2557,  2559,  2563,  2565,  2567,  2569,  2583,
    1095     2584,  2586,  2591,  2593,  2595,  2597,  2599,  2604,  2605,  2607,
    1096     2609,  2614,  2616,  2618,  2624,  2625,  2627,  2636,  2639,  2641,
    1097     2644,  2646,  2648,  2661,  2662,  2664,  2669,  2671,  2673,  2675,
    1098     2677,  2682,  2683,  2685,  2687,  2692,  2694,  2702,  2703,  2704,
    1099     2709,  2710,  2714,  2716,  2718,  2720,  2722,  2724,  2731,  2733,
    1100     2735,  2737,  2739,  2742,  2744,  2746,  2748,  2750,  2755,  2757,
    1101     2759,  2764,  2790,  2791,  2793,  2797,  2798,  2802,  2804,  2806,
    1102     2808,  2810,  2812,  2819,  2821,  2823,  2825,  2827,  2829,  2834,
    1103     2841,  2843,  2861,  2863,  2868,  2869
     1025       0,   302,   302,   306,   313,   314,   315,   319,   320,   321,
     1026     325,   326,   330,   331,   335,   336,   340,   344,   345,   356,
     1027     358,   360,   362,   367,   368,   374,   378,   380,   381,   382,
     1028     384,   385,   387,   389,   391,   400,   401,   407,   408,   412,
     1029     413,   417,   421,   423,   425,   427,   432,   434,   438,   441,
     1030     443,   445,   450,   463,   465,   467,   469,   471,   473,   475,
     1031     477,   479,   481,   483,   490,   491,   497,   498,   499,   500,
     1032     504,   505,   507,   512,   513,   515,   517,   522,   523,   525,
     1033     530,   531,   533,   538,   539,   541,   543,   545,   550,   551,
     1034     553,   558,   559,   564,   565,   570,   571,   576,   577,   582,
     1035     583,   588,   589,   592,   594,   599,   604,   605,   607,   613,
     1036     614,   618,   619,   620,   621,   622,   623,   624,   625,   626,
     1037     627,   628,   629,   635,   637,   639,   641,   646,   647,   652,
     1038     653,   659,   660,   666,   667,   668,   669,   670,   671,   672,
     1039     673,   674,   684,   691,   693,   703,   704,   709,   711,   717,
     1040     719,   723,   724,   729,   734,   737,   739,   741,   751,   753,
     1041     764,   765,   767,   771,   773,   777,   778,   783,   784,   788,
     1042     793,   794,   798,   800,   806,   807,   811,   813,   815,   817,
     1043     823,   824,   828,   830,   835,   837,   839,   844,   846,   851,
     1044     853,   857,   860,   864,   867,   871,   873,   875,   877,   882,
     1045     884,   886,   891,   893,   895,   897,   899,   904,   906,   908,
     1046     910,   915,   927,   928,   933,   935,   940,   944,   946,   948,
     1047     950,   952,   958,   959,   965,   966,   970,   971,   976,   978,
     1048     984,   985,   987,   992,   997,  1007,  1009,  1013,  1014,  1019,
     1049    1021,  1025,  1026,  1030,  1032,  1036,  1037,  1041,  1042,  1046,
     1050    1047,  1062,  1063,  1064,  1065,  1066,  1070,  1075,  1082,  1092,
     1051    1097,  1102,  1110,  1115,  1120,  1125,  1130,  1138,  1160,  1165,
     1052    1172,  1174,  1181,  1186,  1191,  1202,  1207,  1212,  1217,  1222,
     1053    1231,  1236,  1244,  1245,  1246,  1247,  1253,  1258,  1266,  1267,
     1054    1268,  1269,  1273,  1274,  1275,  1276,  1281,  1282,  1291,  1292,
     1055    1297,  1298,  1303,  1305,  1307,  1309,  1311,  1314,  1313,  1325,
     1056    1326,  1328,  1338,  1339,  1344,  1346,  1348,  1350,  1352,  1355,
     1057    1357,  1360,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
     1058    1381,  1383,  1385,  1387,  1389,  1395,  1396,  1398,  1400,  1402,
     1059    1407,  1408,  1414,  1415,  1417,  1419,  1424,  1426,  1428,  1430,
     1060    1435,  1436,  1438,  1440,  1445,  1446,  1448,  1453,  1454,  1456,
     1061    1458,  1463,  1465,  1467,  1472,  1473,  1477,  1479,  1485,  1484,
     1062    1488,  1490,  1495,  1497,  1503,  1504,  1509,  1510,  1512,  1513,
     1063    1522,  1523,  1525,  1527,  1532,  1534,  1540,  1541,  1543,  1546,
     1064    1549,  1554,  1555,  1560,  1565,  1569,  1571,  1577,  1576,  1583,
     1065    1585,  1591,  1592,  1600,  1601,  1605,  1606,  1607,  1609,  1611,
     1066    1618,  1619,  1621,  1623,  1628,  1629,  1635,  1636,  1640,  1641,
     1067    1646,  1647,  1648,  1650,  1658,  1659,  1661,  1664,  1666,  1670,
     1068    1671,  1672,  1674,  1676,  1680,  1685,  1693,  1694,  1703,  1705,
     1069    1710,  1711,  1712,  1716,  1717,  1718,  1722,  1723,  1724,  1728,
     1070    1729,  1730,  1735,  1736,  1737,  1738,  1744,  1745,  1747,  1752,
     1071    1753,  1758,  1759,  1760,  1761,  1762,  1777,  1778,  1783,  1784,
     1072    1790,  1792,  1795,  1797,  1799,  1822,  1823,  1825,  1827,  1832,
     1073    1833,  1835,  1840,  1845,  1846,  1852,  1851,  1855,  1859,  1861,
     1074    1863,  1869,  1870,  1875,  1880,  1882,  1887,  1889,  1890,  1892,
     1075    1897,  1899,  1901,  1906,  1908,  1913,  1918,  1926,  1932,  1931,
     1076    1945,  1946,  1951,  1952,  1956,  1961,  1966,  1974,  1979,  1990,
     1077    1991,  1996,  1997,  2003,  2004,  2008,  2009,  2010,  2013,  2012,
     1078    2023,  2032,  2038,  2044,  2053,  2059,  2065,  2071,  2077,  2085,
     1079    2091,  2099,  2105,  2114,  2115,  2116,  2120,  2124,  2126,  2131,
     1080    2132,  2136,  2137,  2142,  2148,  2149,  2152,  2154,  2155,  2159,
     1081    2160,  2161,  2162,  2196,  2198,  2199,  2201,  2206,  2211,  2216,
     1082    2218,  2220,  2225,  2227,  2229,  2231,  2236,  2238,  2247,  2249,
     1083    2250,  2255,  2257,  2259,  2264,  2266,  2268,  2273,  2275,  2277,
     1084    2286,  2287,  2288,  2292,  2294,  2296,  2301,  2303,  2305,  2310,
     1085    2312,  2314,  2329,  2331,  2332,  2334,  2339,  2340,  2345,  2347,
     1086    2349,  2354,  2356,  2358,  2360,  2365,  2367,  2369,  2379,  2381,
     1087    2382,  2384,  2389,  2391,  2393,  2398,  2400,  2402,  2404,  2409,
     1088    2411,  2413,  2444,  2446,  2447,  2449,  2454,  2459,  2467,  2469,
     1089    2471,  2476,  2478,  2483,  2485,  2499,  2500,  2502,  2507,  2509,
     1090    2511,  2513,  2515,  2520,  2521,  2523,  2525,  2530,  2532,  2534,
     1091    2540,  2542,  2544,  2548,  2550,  2552,  2554,  2568,  2569,  2571,
     1092    2576,  2578,  2580,  2582,  2584,  2589,  2590,  2592,  2594,  2599,
     1093    2601,  2603,  2609,  2610,  2612,  2621,  2624,  2626,  2629,  2631,
     1094    2633,  2646,  2647,  2649,  2654,  2656,  2658,  2660,  2662,  2667,
     1095    2668,  2670,  2672,  2677,  2679,  2687,  2688,  2689,  2694,  2695,
     1096    2699,  2701,  2703,  2705,  2707,  2709,  2716,  2718,  2720,  2722,
     1097    2724,  2727,  2729,  2731,  2733,  2735,  2740,  2742,  2744,  2749,
     1098    2775,  2776,  2778,  2782,  2783,  2787,  2789,  2791,  2793,  2795,
     1099    2797,  2804,  2806,  2808,  2810,  2812,  2814,  2819,  2824,  2826,
     1100    2828,  2846,  2848,  2853,  2854
    11041101};
    11051102#endif
     
    11221119  "THREADLOCAL", "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname",
    11231120  "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
    1124   "INTEGERconstant", "CHARACTERconstant", "STRINGliteral",
    1125   "REALDECIMALconstant", "REALFRACTIONconstant", "FLOATINGconstant",
    1126   "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE", "GE", "EQ",
    1127   "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign", "DIVassign",
    1128   "MODassign", "PLUSassign", "MINUSassign", "LSassign", "RSassign",
    1129   "ANDassign", "ERassign", "ORassign", "ATassign", "THEN", "'('", "')'",
    1130   "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'", "'+'", "'-'",
    1131   "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'", "':'",
    1132   "'='", "';'", "$accept", "push", "pop", "constant", "identifier",
    1133   "no_01_identifier", "no_attr_identifier", "zero_one", "string_literal",
    1134   "string_literal_list", "primary_expression", "postfix_expression",
    1135   "argument_expression_list", "argument_expression", "field_list", "field",
    1136   "field_name", "fraction_constants", "unary_expression",
     1121  "INTEGERconstant", "FLOATINGconstant", "CHARACTERconstant",
     1122  "STRINGliteral", "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE",
     1123  "GE", "EQ", "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign",
     1124  "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign",
     1125  "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN",
     1126  "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'",
     1127  "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'",
     1128  "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant",
     1129  "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
     1130  "string_literal", "string_literal_list", "primary_expression",
     1131  "postfix_expression", "argument_expression_list", "argument_expression",
     1132  "field_list", "field", "field_name", "unary_expression",
    11371133  "ptrref_operator", "unary_operator", "cast_expression",
    11381134  "multiplicative_expression", "additive_expression", "shift_expression",
     
    12341230     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12351231     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1236      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
    1237      365,    40,    41,    91,    93,    46,   123,   125,    44,    42,
    1238       38,    43,    45,    33,   126,    47,    37,    60,    62,    94,
    1239      124,    63,    58,    61,    59
     1232     355,   356,   357,   358,   359,   360,   361,   362,   363,    40,
     1233      41,    91,    93,    46,   123,   125,    44,    42,    38,    43,
     1234      45,    33,   126,    47,    37,    60,    62,    94,   124,    63,
     1235      58,    61,    59
    12401236};
    12411237# endif
     
    12441240static const yytype_uint16 yyr1[] =
    12451241{
    1246        0,   135,   136,   137,   138,   138,   138,   138,   138,   139,
    1247      139,   139,   140,   140,   141,   141,   142,   142,   143,   144,
    1248      144,   145,   145,   145,   145,   145,   146,   146,   146,   146,
    1249      146,   146,   146,   146,   146,   146,   146,   146,   147,   147,
    1250      148,   148,   149,   149,   150,   150,   150,   150,   150,   150,
    1251      150,   151,   151,   151,   152,   152,   153,   153,   153,   153,
    1252      153,   153,   153,   153,   153,   153,   153,   153,   153,   153,
    1253      153,   153,   154,   154,   155,   155,   155,   155,   156,   156,
    1254      157,   157,   157,   157,   158,   158,   158,   159,   159,   159,
    1255      160,   160,   160,   160,   160,   161,   161,   161,   162,   162,
    1256      163,   163,   164,   164,   165,   165,   166,   166,   167,   167,
    1257      167,   168,   169,   169,   170,   170,   171,   171,   171,   171,
    1258      171,   171,   171,   171,   171,   171,   171,   171,   172,   172,
    1259      173,   173,   174,   174,   175,   175,   176,   176,   176,   176,
    1260      176,   176,   176,   176,   176,   177,   178,   178,   179,   179,
    1261      180,   180,   180,   180,   181,   181,   182,   183,   183,   183,
    1262      183,   183,   183,   184,   184,   184,   185,   185,   186,   186,
    1263      187,   187,   188,   189,   189,   190,   190,   191,   191,   192,
    1264      192,   192,   192,   193,   193,   194,   194,   195,   195,   195,
    1265      196,   196,   197,   197,   197,   197,   197,   197,   197,   197,
    1266      197,   197,   198,   198,   198,   199,   199,   199,   199,   199,
    1267      200,   200,   200,   200,   201,   202,   202,   202,   202,   202,
    1268      203,   203,   203,   203,   203,   204,   204,   205,   205,   206,
    1269      206,   207,   207,   208,   208,   208,   209,   209,   210,   210,
    1270      211,   211,   212,   212,   213,   213,   214,   214,   215,   215,
    1271      216,   216,   217,   217,   218,   218,   218,   218,   218,   219,
    1272      219,   219,   220,   220,   220,   221,   221,   221,   221,   221,
    1273      222,   222,   223,   223,   224,   224,   224,   225,   225,   225,
    1274      225,   225,   226,   226,   227,   227,   227,   227,   228,   228,
    1275      229,   229,   229,   229,   230,   230,   230,   230,   231,   231,
    1276      232,   232,   233,   233,   234,   234,   234,   234,   234,   235,
    1277      234,   236,   236,   236,   237,   237,   238,   238,   238,   238,
    1278      238,   238,   238,   238,   239,   239,   239,   239,   239,   239,
    1279      239,   239,   239,   239,   239,   239,   239,   240,   240,   240,
    1280      240,   240,   241,   241,   242,   242,   242,   242,   243,   243,
    1281      243,   243,   244,   244,   244,   244,   245,   245,   245,   246,
    1282      246,   246,   246,   247,   247,   247,   248,   248,   249,   249,
    1283      250,   249,   249,   249,   251,   251,   252,   252,   253,   253,
    1284      253,   253,   254,   254,   254,   254,   255,   255,   256,   256,
    1285      256,   256,   256,   257,   257,   258,   259,   260,   260,   261,
    1286      260,   262,   262,   263,   263,   264,   264,   265,   265,   265,
    1287      265,   265,   266,   266,   266,   266,   267,   267,   268,   268,
    1288      269,   269,   270,   270,   270,   270,   271,   271,   271,   271,
    1289      271,   272,   272,   272,   272,   272,   273,   273,   274,   274,
    1290      275,   275,   276,   276,   276,   277,   277,   277,   278,   278,
    1291      278,   279,   279,   279,   280,   280,   280,   280,   281,   281,
    1292      281,   282,   282,   283,   283,   283,   283,   283,   284,   284,
    1293      285,   285,   286,   286,   286,   286,   286,   287,   287,   287,
    1294      287,   288,   288,   288,   289,   290,   290,   292,   291,   291,
    1295      293,   293,   293,   294,   294,   295,   295,   295,   296,   296,
    1296      296,   296,   297,   297,   297,   298,   298,   299,   299,   300,
    1297      301,   300,   302,   302,   303,   303,   304,   304,   304,   305,
    1298      305,   306,   306,   307,   307,   308,   308,   309,   309,   309,
    1299      310,   309,   309,   311,   311,   311,   312,   312,   312,   312,
    1300      312,   312,   312,   312,   312,   313,   313,   313,   314,   315,
    1301      315,   316,   316,   317,   317,   318,   319,   319,   320,   320,
    1302      320,   321,   321,   321,   321,   322,   322,   322,   322,   323,
    1303      323,   324,   324,   324,   325,   325,   325,   325,   326,   326,
    1304      327,   327,   327,   328,   328,   328,   329,   329,   329,   330,
    1305      330,   330,   331,   331,   331,   332,   332,   332,   333,   333,
    1306      333,   334,   334,   334,   335,   335,   335,   335,   336,   336,
    1307      337,   337,   337,   338,   338,   338,   338,   339,   339,   339,
    1308      340,   340,   340,   340,   341,   341,   341,   342,   342,   342,
    1309      342,   343,   343,   343,   344,   344,   344,   344,   345,   345,
    1310      346,   346,   346,   347,   347,   348,   348,   349,   349,   349,
    1311      350,   350,   350,   350,   350,   351,   351,   351,   351,   352,
    1312      352,   352,   353,   353,   353,   354,   354,   354,   354,   355,
    1313      355,   355,   356,   356,   356,   356,   356,   357,   357,   357,
    1314      357,   358,   358,   358,   359,   359,   359,   360,   360,   360,
    1315      360,   360,   360,   361,   361,   361,   362,   362,   362,   362,
    1316      362,   363,   363,   363,   363,   364,   364,   365,   365,   365,
    1317      366,   366,   367,   367,   367,   367,   367,   367,   368,   368,
    1318      368,   368,   368,   368,   368,   368,   368,   368,   369,   369,
    1319      369,   369,   370,   370,   370,   371,   371,   372,   372,   372,
    1320      372,   372,   372,   373,   373,   373,   373,   373,   373,   374,
    1321      375,   375,   376,   376,   377,   377
     1242       0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
     1243     138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
     1244     143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
     1245     144,   144,   144,   144,   144,   145,   145,   146,   146,   147,
     1246     147,   148,   148,   148,   148,   148,   149,   149,   150,   150,
     1247     150,   150,   150,   150,   150,   150,   150,   150,   150,   150,
     1248     150,   150,   150,   150,   151,   151,   152,   152,   152,   152,
     1249     153,   153,   153,   154,   154,   154,   154,   155,   155,   155,
     1250     156,   156,   156,   157,   157,   157,   157,   157,   158,   158,
     1251     158,   159,   159,   160,   160,   161,   161,   162,   162,   163,
     1252     163,   164,   164,   164,   164,   165,   166,   166,   166,   167,
     1253     167,   168,   168,   168,   168,   168,   168,   168,   168,   168,
     1254     168,   168,   168,   169,   169,   169,   169,   170,   170,   171,
     1255     171,   172,   172,   173,   173,   173,   173,   173,   173,   173,
     1256     173,   173,   174,   175,   175,   176,   176,   177,   177,   177,
     1257     177,   178,   178,   179,   180,   180,   180,   180,   180,   180,
     1258     181,   181,   181,   182,   182,   183,   183,   184,   184,   185,
     1259     186,   186,   187,   187,   188,   188,   189,   189,   189,   189,
     1260     190,   190,   191,   191,   192,   192,   192,   193,   193,   194,
     1261     194,   194,   194,   194,   194,   194,   194,   194,   194,   195,
     1262     195,   195,   196,   196,   196,   196,   196,   197,   197,   197,
     1263     197,   198,   199,   199,   199,   199,   199,   200,   200,   200,
     1264     200,   200,   201,   201,   202,   202,   203,   203,   204,   204,
     1265     205,   205,   205,   206,   206,   207,   207,   208,   208,   209,
     1266     209,   210,   210,   211,   211,   212,   212,   213,   213,   214,
     1267     214,   215,   215,   215,   215,   215,   216,   216,   216,   217,
     1268     217,   217,   218,   218,   218,   218,   218,   219,   219,   219,
     1269     220,   220,   221,   221,   221,   222,   222,   222,   222,   222,
     1270     223,   223,   224,   224,   224,   224,   225,   225,   226,   226,
     1271     226,   226,   227,   227,   227,   227,   228,   228,   229,   229,
     1272     230,   230,   231,   231,   231,   231,   231,   232,   231,   233,
     1273     233,   233,   234,   234,   235,   235,   235,   235,   235,   235,
     1274     235,   235,   236,   236,   236,   236,   236,   236,   236,   236,
     1275     236,   236,   236,   236,   236,   237,   237,   237,   237,   237,
     1276     238,   238,   239,   239,   239,   239,   240,   240,   240,   240,
     1277     241,   241,   241,   241,   242,   242,   242,   243,   243,   243,
     1278     243,   244,   244,   244,   245,   245,   246,   246,   247,   246,
     1279     246,   246,   248,   248,   249,   249,   250,   250,   250,   250,
     1280     251,   251,   251,   251,   252,   252,   253,   253,   253,   253,
     1281     253,   254,   254,   255,   256,   257,   257,   258,   257,   259,
     1282     259,   260,   260,   261,   261,   262,   262,   262,   262,   262,
     1283     263,   263,   263,   263,   264,   264,   265,   265,   266,   266,
     1284     267,   267,   267,   267,   268,   268,   268,   268,   268,   269,
     1285     269,   269,   269,   269,   270,   270,   271,   271,   272,   272,
     1286     273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
     1287     276,   276,   277,   277,   277,   277,   278,   278,   278,   279,
     1288     279,   280,   280,   280,   280,   280,   281,   281,   282,   282,
     1289     283,   283,   283,   283,   283,   284,   284,   284,   284,   285,
     1290     285,   285,   286,   287,   287,   289,   288,   288,   290,   290,
     1291     290,   291,   291,   292,   292,   292,   293,   293,   293,   293,
     1292     294,   294,   294,   295,   295,   296,   296,   297,   298,   297,
     1293     299,   299,   300,   300,   301,   301,   301,   302,   302,   303,
     1294     303,   304,   304,   305,   305,   306,   306,   306,   307,   306,
     1295     306,   308,   308,   308,   309,   309,   309,   309,   309,   309,
     1296     309,   309,   309,   310,   310,   310,   311,   312,   312,   313,
     1297     313,   314,   314,   315,   316,   316,   317,   317,   317,   318,
     1298     318,   318,   318,   319,   319,   319,   319,   320,   320,   321,
     1299     321,   321,   322,   322,   322,   322,   323,   323,   324,   324,
     1300     324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
     1301     328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
     1302     331,   331,   332,   332,   332,   332,   333,   333,   334,   334,
     1303     334,   335,   335,   335,   335,   336,   336,   336,   337,   337,
     1304     337,   337,   338,   338,   338,   339,   339,   339,   339,   340,
     1305     340,   340,   341,   341,   341,   341,   342,   342,   343,   343,
     1306     343,   344,   344,   345,   345,   346,   346,   346,   347,   347,
     1307     347,   347,   347,   348,   348,   348,   348,   349,   349,   349,
     1308     350,   350,   350,   351,   351,   351,   351,   352,   352,   352,
     1309     353,   353,   353,   353,   353,   354,   354,   354,   354,   355,
     1310     355,   355,   356,   356,   356,   357,   357,   357,   357,   357,
     1311     357,   358,   358,   358,   359,   359,   359,   359,   359,   360,
     1312     360,   360,   360,   361,   361,   362,   362,   362,   363,   363,
     1313     364,   364,   364,   364,   364,   364,   365,   365,   365,   365,
     1314     365,   365,   365,   365,   365,   365,   366,   366,   366,   366,
     1315     367,   367,   367,   368,   368,   369,   369,   369,   369,   369,
     1316     369,   370,   370,   370,   370,   370,   370,   371,   372,   372,
     1317     372,   373,   373,   374,   374
    13221318};
    13231319
     
    13261322{
    13271323       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
     1324       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     1325       1,     3,     3,     1,     6,     4,     3,     7,     3,     3,
     1326       7,     2,     2,     7,     4,     1,     3,     0,     1,     1,
     1327       3,     1,     3,     7,     3,     7,     1,     1,     1,     1,
     1328       1,     2,     2,     2,     2,     2,     2,     4,     2,     4,
     1329       6,     1,     4,     4,     1,     1,     1,     1,     1,     1,
     1330       1,     4,     4,     1,     3,     3,     3,     1,     3,     3,
     1331       1,     3,     3,     1,     3,     3,     3,     3,     1,     3,
     1332       3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
     1333       3,     1,     5,     4,     5,     1,     1,     3,     2,     0,
    13281334       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1329        2,     1,     1,     1,     3,     3,     1,     6,     4,     3,
    1330        7,     2,     3,     7,     2,     2,     7,     4,     1,     3,
    1331        0,     1,     1,     3,     1,     2,     6,     3,     7,     3,
    1332        7,     2,     2,     2,     0,     2,     1,     1,     1,     2,
    1333        2,     2,     2,     2,     2,     4,     2,     4,     6,     1,
    1334        4,     4,     1,     1,     1,     1,     1,     1,     1,     4,
    1335        1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
    1336        1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
    1337        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
    1338        4,     1,     1,     3,     0,     1,     1,     1,     1,     1,
    1339        1,     1,     1,     1,     1,     1,     1,     1,     6,     7,
    1340        1,     3,     1,     3,     0,     1,     1,     1,     1,     1,
    1341        1,     1,     1,     1,     6,     4,     2,     7,     1,     3,
    1342        1,     2,     1,     2,     1,     2,     2,     5,     7,     5,
    1343        9,     5,     9,     1,     3,     1,     1,     3,     3,     2,
    1344        1,     2,     2,     0,     1,     2,     3,     0,     1,     2,
    1345        3,     3,     4,     0,     1,     1,     2,     5,     7,     6,
    1346        6,     4,     3,     4,     2,     3,     2,     3,     3,     3,
    1347        3,     5,     3,     3,     4,     1,     5,     6,     5,     6,
    1348        9,    10,     9,    10,     2,     1,     2,     2,     2,     1,
    1349        6,     8,    10,    12,    14,     0,     1,     0,     1,     1,
    1350        3,     4,     7,     0,     1,     3,     1,     3,     1,     1,
    1351        1,     3,     1,     1,     1,     3,     0,     1,     3,     4,
    1352        1,     3,     1,     1,     3,     3,     3,     3,     3,     2,
    1353        3,     6,     3,     3,     4,     1,     2,     2,     3,     5,
    1354        7,     7,     5,     9,     2,     2,     5,     3,     5,     4,
    1355        3,     4,     4,     7,     3,     3,     3,     3,     4,     6,
    1356        1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
    1357        1,     2,     1,     1,     1,     1,     1,     1,     1,     0,
    1358        5,     1,     2,     3,     1,     2,     1,     1,     1,     1,
     1335       1,     1,     1,     2,     5,     6,     7,     1,     3,     1,
     1336       3,     0,     1,     1,     1,     1,     1,     1,     1,     1,
     1337       1,     6,     4,     2,     7,     1,     3,     1,     2,     1,
     1338       2,     1,     2,     2,     5,     7,     5,     9,     5,     9,
     1339       1,     3,     1,     1,     3,     3,     2,     1,     2,     2,
     1340       0,     1,     2,     3,     0,     1,     2,     3,     3,     4,
     1341       0,     1,     1,     2,     5,     7,     6,     6,     4,     3,
     1342       4,     2,     3,     2,     3,     3,     3,     3,     5,     3,
     1343       3,     4,     1,     5,     6,     5,     6,     9,    10,     9,
     1344      10,     2,     1,     2,     2,     2,     1,     6,     8,    10,
     1345      12,    14,     0,     1,     0,     1,     1,     3,     4,     7,
     1346       0,     1,     3,     1,     3,     1,     1,     1,     3,     1,
     1347       1,     1,     3,     0,     1,     3,     4,     1,     3,     1,
     1348       1,     3,     3,     3,     3,     3,     2,     3,     6,     3,
     1349       3,     4,     1,     2,     2,     3,     5,     8,     7,     7,
     1350       5,     9,     2,     2,     5,     3,     5,     4,     3,     4,
     1351       4,     7,     3,     3,     3,     3,     4,     6,     1,     1,
     1352       1,     1,     1,     1,     1,     1,     0,     1,     1,     2,
     1353       1,     1,     1,     1,     1,     1,     1,     0,     5,     1,
     1354       2,     3,     1,     2,     1,     1,     1,     1,     1,     1,
    13591355       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1360        1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
    1361        3,     3,     1,     3,     1,     2,     2,     2,     4,     4,
    1362        4,     4,     1,     2,     2,     3,     1,     2,     2,     1,
    1363        2,     2,     3,     1,     2,     2,     1,     1,     4,     2,
    1364        0,     6,     7,     2,     2,     2,     0,     2,     2,     3,
    1365        2,     3,     1,     2,     3,     2,     2,     4,     0,     1,
    1366        2,     2,     1,     0,     1,     2,     2,     5,     2,     0,
    1367        7,     2,     4,     0,     2,     0,     1,     1,     1,     5,
    1368        5,     5,     1,     5,     5,     9,     1,     5,     0,     1,
    1369        1,     5,     1,     1,     5,     5,     1,     3,     3,     4,
    1370        1,     1,     1,     1,     2,     1,     3,     3,     1,     2,
    1371        1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
    1372        1,     1,     1,     2,     1,     1,     1,     2,     0,     2,
    1373        2,     1,     4,     0,     1,     2,     3,     4,     2,     2,
    1374        1,     2,     2,     5,     5,     7,     6,     1,     2,     2,
    1375        3,     1,     2,     2,     4,     2,     4,     0,     4,     2,
    1376        1,     1,     1,     0,     2,     5,     5,    13,     1,     1,
    1377        3,     3,     2,     3,     3,     2,     4,     1,     6,     9,
    1378        0,    11,     1,     3,     3,     3,     1,     1,     5,     2,
    1379        5,     0,     1,     1,     3,     0,     1,     1,     1,     1,
    1380        0,     6,     2,     1,     2,     4,     2,     3,     3,     3,
    1381        4,     5,     5,     5,     6,     1,     1,     1,     3,     0,
    1382        5,     0,     1,     1,     2,     6,     1,     3,     0,     1,
    1383        4,     1,     1,     1,     1,     2,     1,     2,     2,     1,
    1384        3,     2,     3,     3,     2,     4,     4,     3,     8,     3,
    1385        2,     1,     2,     6,     8,     3,     2,     3,     3,     4,
    1386        4,     3,     1,     1,     1,     4,     6,     3,     2,     3,
    1387        3,     4,     4,     3,     2,     1,     2,     2,     1,     3,
    1388        2,     3,     3,     2,     4,     4,     3,     6,     8,     3,
    1389        2,     1,     2,     2,     2,     3,     3,     2,     4,     4,
    1390        3,     6,     8,     3,     2,     1,     2,     2,     1,     1,
    1391        2,     3,     3,     2,     4,     6,     8,     1,     2,     2,
     1356       1,     1,     1,     1,     1,     1,     2,     2,     3,     3,
     1357       1,     3,     1,     2,     2,     2,     4,     4,     4,     4,
     1358       1,     2,     2,     3,     1,     2,     2,     1,     2,     2,
     1359       3,     1,     2,     2,     1,     1,     4,     2,     0,     6,
     1360       7,     2,     2,     2,     0,     2,     2,     3,     2,     3,
     1361       1,     2,     3,     2,     2,     4,     0,     1,     2,     2,
     1362       1,     0,     1,     2,     2,     5,     2,     0,     7,     2,
     1363       4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
     1364       1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
     1365       1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
     1366       1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
     1367       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1368       1,     2,     1,     1,     1,     2,     0,     2,     2,     1,
     1369       4,     0,     1,     2,     3,     4,     2,     2,     1,     2,
     1370       2,     5,     5,     7,     6,     1,     2,     2,     3,     1,
     1371       2,     2,     4,     2,     4,     0,     4,     2,     1,     1,
     1372       1,     0,     2,     5,     5,    13,     1,     1,     3,     3,
     1373       2,     3,     3,     2,     4,     1,     6,     9,     0,    11,
     1374       1,     3,     3,     3,     1,     1,     5,     2,     5,     0,
     1375       1,     1,     3,     0,     1,     1,     1,     1,     0,     6,
     1376       2,     1,     2,     4,     2,     3,     3,     3,     4,     5,
     1377       5,     5,     6,     1,     1,     1,     3,     0,     5,     0,
     1378       1,     1,     2,     6,     1,     3,     0,     1,     4,     1,
     1379       1,     1,     1,     2,     1,     2,     2,     1,     3,     2,
     1380       3,     3,     2,     4,     4,     3,     8,     3,     2,     1,
     1381       2,     6,     8,     3,     2,     3,     3,     4,     4,     3,
     1382       1,     1,     1,     4,     6,     3,     2,     3,     3,     4,
     1383       4,     3,     2,     1,     2,     2,     1,     3,     2,     3,
     1384       3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1385       2,     2,     2,     3,     3,     2,     4,     4,     3,     6,
     1386       8,     3,     2,     1,     2,     2,     1,     1,     2,     3,
     1387       3,     2,     4,     6,     8,     1,     2,     2,     1,     2,
     1388       2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
     1389       2,     3,     1,     5,     5,     6,     6,     1,     2,     2,
    13921390       1,     2,     2,     3,     3,     1,     4,     4,     3,     5,
    1393        8,     3,     2,     3,     1,     5,     5,     6,     6,     1,
    1394        2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
    1395        3,     5,     8,     3,     1,     2,     1,     2,     6,     5,
    1396        6,     7,     7,     1,     2,     2,     1,     2,     2,     3,
    1397        3,     1,     4,     4,     3,     8,     3,     1,     1,     2,
    1398        1,     1,     2,     3,     2,     3,     2,     3,     3,     2,
    1399        4,     3,     2,     3,     2,     4,     3,     2,     6,     6,
    1400        6,     7,     1,     2,     1,     1,     1,     2,     3,     2,
    1401        3,     2,     3,     3,     4,     2,     3,     4,     2,     5,
    1402        6,     6,     0,     1,     0,     2
     1391       8,     3,     1,     2,     1,     2,     6,     5,     6,     7,
     1392       7,     1,     2,     2,     1,     2,     2,     3,     3,     1,
     1393       4,     4,     3,     8,     3,     1,     1,     2,     1,     1,
     1394       2,     3,     2,     3,     2,     3,     3,     2,     4,     3,
     1395       2,     3,     2,     4,     3,     2,     6,     6,     6,     7,
     1396       1,     2,     1,     1,     1,     2,     3,     2,     3,     2,
     1397       3,     3,     4,     2,     3,     4,     2,     5,     5,     6,
     1398       6,     0,     1,     0,     2
    14031399};
    14041400
     
    14081404static const yytype_uint16 yydefact[] =
    14091405{
    1410      298,   298,   318,   316,   319,   317,   320,   321,   304,   306,
    1411      305,     0,   307,   332,   324,   329,   327,   328,   326,   325,
    1412      330,   331,   336,   333,   334,   335,   551,   551,   551,     0,
    1413        0,     0,   298,   225,   308,   322,   323,     9,   363,     0,
    1414       10,    16,    17,     0,     2,    72,    73,   569,    11,   298,
    1415      529,   527,   252,     3,   458,     3,   265,     0,     3,     3,
    1416        3,   253,     3,     0,     0,     0,   299,   300,   302,   298,
    1417      311,   314,   344,   290,   337,   342,   291,   352,   292,   359,
    1418      356,   366,     0,     0,   367,   293,   477,   481,     3,     3,
    1419        0,     2,   523,   528,   533,   303,     0,     0,   551,   581,
    1420      551,     2,   592,   593,   594,   298,     0,   735,   736,     0,
    1421       14,     0,    15,   298,   274,   275,     0,   299,   294,   295,
    1422      296,   297,   530,   309,   396,   552,   553,   374,   375,    14,
    1423      449,   450,    13,   445,   448,     0,   507,   502,   493,   449,
    1424      450,     0,     0,   532,   226,     0,   298,     0,     0,     0,
    1425        0,     0,     0,     0,     0,   298,   298,     0,   737,   299,
    1426      586,   598,   741,   734,   732,   739,     0,     0,     0,   259,
    1427        2,     0,   536,   443,   444,   442,     0,     0,     0,     0,
    1428      551,     0,   638,   639,     0,     0,   549,   545,   551,   566,
    1429      551,   551,   547,     2,   546,   551,   605,   551,   551,   608,
    1430        0,     0,     0,   298,   298,   316,   364,     2,   298,   266,
    1431      301,   312,   345,   357,   482,     0,     2,     0,   458,   267,
    1432      299,   338,   353,   360,   478,     0,     2,     0,   315,   339,
    1433      346,   347,     0,   354,   358,   361,   365,   450,   298,   376,
    1434      369,   373,     0,   398,   479,   483,     0,     0,     0,     1,
    1435      298,     2,   534,   580,   582,   298,     2,   745,   299,   748,
    1436      549,   549,     0,   299,     0,     0,   277,   551,   547,     2,
    1437      298,     0,     0,   298,   554,     2,   505,     2,   558,     0,
    1438        0,     0,     0,     0,     0,    21,    69,     4,     8,    19,
    1439        5,     6,     7,     0,     0,   298,     2,    74,    75,    76,
    1440       77,    57,    22,    58,    18,    26,    56,    78,   298,     0,
    1441       80,    84,    87,    90,    95,    98,   100,   102,   104,   106,
    1442      108,   112,   499,    23,   456,   498,     0,   454,   455,     0,
    1443      570,   585,   588,   591,   597,   600,   603,     2,   743,   298,
    1444      746,     2,    72,   298,     3,   430,     0,   438,   299,   298,
    1445      311,   337,   291,   352,   359,     3,     3,   412,   416,   426,
    1446      431,   477,   298,   432,   710,   711,   298,   433,   435,     2,
    1447      587,   599,   733,     2,     2,   254,     2,   463,     0,   461,
    1448      460,   459,   146,     2,     2,   256,     2,     2,   255,     2,
    1449      285,     2,   286,     0,   284,     0,     0,     0,     0,     0,
    1450        0,     0,     0,     0,   571,   610,     0,   458,     2,   565,
    1451      574,   664,   567,   568,   537,   298,     2,   604,   613,   606,
    1452      607,     0,   280,   298,   298,   343,   299,     0,   299,   298,
    1453      738,   742,   740,   538,   298,   549,   260,   268,   313,     0,
    1454        2,   539,   298,   503,   340,   341,   287,   355,   362,     0,
    1455      298,     0,   752,   403,     0,   480,   504,   257,   258,   524,
    1456      298,   440,     0,   298,   242,     0,     2,   244,     0,   299,
    1457        0,   262,     2,   263,   282,     0,     0,     2,   298,   549,
    1458      298,   490,   492,   491,     0,     0,   754,     0,   298,     0,
    1459      298,   494,   298,   564,   562,   563,   561,     0,   556,   559,
    1460        0,     0,   298,    64,   298,    78,    59,   298,    66,   298,
    1461      298,    62,    63,     2,   132,     0,     0,   452,     0,   451,
    1462      732,   298,    20,    31,     0,    34,    35,    40,     2,     0,
    1463       40,   118,   119,   120,   121,   122,   123,   124,   125,   126,
    1464      127,   117,   116,     0,    60,    61,     0,     0,     0,     0,
     1406     296,   296,   316,   314,   317,   315,   318,   319,   302,   304,
     1407     303,     0,   305,   330,   322,   327,   325,   326,   324,   323,
     1408     328,   329,   334,   331,   332,   333,   549,   549,   549,     0,
     1409       0,     0,   296,   222,   306,   320,   321,     7,   361,     0,
     1410       8,    14,    15,     0,     2,    64,    65,   567,     9,   296,
     1411     527,   525,   249,     3,   456,     3,   262,     0,     3,     3,
     1412       3,   250,     3,     0,     0,     0,   297,   298,   300,   296,
     1413     309,   312,   342,   288,   335,   340,   289,   350,   290,   357,
     1414     354,   364,     0,     0,   365,   291,   475,   479,     3,     3,
     1415       0,     2,   521,   526,   531,   301,     0,     0,   549,   579,
     1416     549,     2,   590,   591,   592,   296,     0,   733,   734,     0,
     1417      12,     0,    13,   296,   272,   273,     0,   297,   292,   293,
     1418     294,   295,   528,   307,   394,   550,   551,   372,   373,    12,
     1419     447,   448,    11,   443,   446,     0,   505,   500,   491,   447,
     1420     448,     0,     0,   530,   223,     0,   296,     0,     0,     0,
     1421       0,     0,     0,     0,     0,   296,   296,     2,     0,   735,
     1422     297,   584,   596,   739,   732,   730,   737,     0,     0,     0,
     1423     256,     2,     0,   534,   441,   442,   440,     0,     0,     0,
     1424       0,   549,     0,   636,   637,     0,     0,   547,   543,   549,
     1425     564,   549,   549,   545,     2,   544,   549,   603,   549,   549,
     1426     606,     0,     0,     0,   296,   296,   314,   362,     2,   296,
     1427     263,   299,   310,   343,   355,   480,     0,     2,     0,   456,
     1428     264,   297,   336,   351,   358,   476,     0,     2,     0,   313,
     1429     337,   344,   345,     0,   352,   356,   359,   363,   448,   296,
     1430     374,   367,   371,     0,   396,   477,   481,     0,     0,     0,
     1431       1,   296,     2,   532,   578,   580,   296,     2,   743,   297,
     1432     746,   547,   547,     0,   297,     0,     0,   275,   549,   545,
     1433       2,   296,     0,     0,   296,   552,     2,   503,     2,   556,
     1434       0,     0,     0,     0,     0,     0,    19,    61,     4,     5,
     1435       6,    17,     0,     0,   296,     2,    66,    67,    68,    69,
     1436      49,    20,    50,    16,    23,    48,    70,   296,     0,    73,
     1437      77,    80,    83,    88,    91,    93,    95,    97,    99,   101,
     1438     106,   497,   753,   454,   496,     0,   452,   453,     0,   568,
     1439     583,   586,   589,   595,   598,   601,   361,     0,     2,   741,
     1440       0,   296,   744,     2,    64,   296,     3,   428,     0,   436,
     1441     297,   296,   309,   335,   289,   350,   357,     3,     3,   410,
     1442     414,   424,   429,   475,   296,   430,   708,   709,   296,   431,
     1443     433,   296,     2,   585,   597,   731,     2,     2,   251,     2,
     1444     461,     0,   459,   458,   457,   143,     2,     2,   253,     2,
     1445       2,   252,     2,   283,     2,   284,     0,   282,     0,     0,
     1446       0,     0,     0,     0,     0,     0,     0,   569,   608,     0,
     1447     456,     2,   563,   572,   662,   565,   566,   535,   296,     2,
     1448     602,   611,   604,   605,     0,   278,   296,   296,   341,   297,
     1449       0,   297,     0,   296,   736,   740,   738,   536,   296,   547,
     1450     257,   265,   311,     0,     2,   537,   296,   501,   338,   339,
     1451     285,   353,   360,     0,   296,     0,   751,   401,     0,   478,
     1452     502,   254,   255,   522,   296,   438,     0,   296,   239,     0,
     1453       2,   241,     0,   297,     0,   259,     2,   260,   280,     0,
     1454       0,     2,   296,   547,   296,   488,   490,   489,     0,     0,
     1455     753,     0,   296,     0,   296,   492,   296,   562,   560,   561,
     1456     559,     0,   554,   557,     0,     0,   296,    56,   296,    70,
     1457      51,   296,    58,   296,   296,    54,    55,     2,   129,     0,
     1458       0,   450,     0,   449,   730,   123,   296,    18,     0,    31,
     1459      32,    37,     2,     0,    37,   113,   114,   115,   116,   117,
     1460     118,   119,   120,   121,   122,   112,   111,     0,    52,    53,
    14651461       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1466        0,     0,     0,     0,     0,     2,   650,   457,   647,   551,
    1467      551,   655,   484,   298,     2,   589,   590,     0,   601,   602,
    1468        0,   744,   747,   298,   298,     0,   712,   299,   716,   707,
    1469      708,   714,     0,     2,     2,   672,   551,   754,   621,   551,
    1470      551,   754,   551,   635,   551,   551,   686,   439,   669,   551,
    1471      551,   677,   684,   298,   434,   299,     0,     0,   298,   722,
    1472      299,   727,   754,   719,   298,   724,   754,   298,   298,     0,
    1473        0,    21,     2,     0,    22,     0,   464,   752,     0,     0,
    1474      470,   246,     0,   298,     0,     0,     0,   549,   573,   577,
    1475      579,   609,   612,   616,   619,   572,   611,     0,   288,   662,
    1476        0,   298,   281,     0,     0,     0,     0,   279,     2,     0,
    1477      264,   540,   298,     0,     0,   298,     2,   368,   388,   377,
    1478        0,     0,   382,   376,   753,     0,     0,   401,     0,   299,
    1479        3,   419,     3,   423,   422,   595,     0,   535,   298,    72,
    1480        3,   298,   438,   299,     3,   432,   433,     2,     0,     0,
    1481        0,   489,   310,   298,     0,   485,   487,     3,     2,     2,
    1482        0,   506,     3,     0,   558,   134,     0,     0,   227,     0,
    1483        0,     0,     0,    41,     0,     0,   298,    24,     0,    25,
    1484        0,   696,   701,   453,   693,   551,   551,     0,   114,     3,
    1485        2,    32,     0,    38,     0,     2,    29,     0,   113,    81,
    1486       82,    83,    85,    86,    88,    89,    93,    94,    91,    92,
    1487       96,    97,    99,   101,   103,   105,   107,     0,     0,   298,
    1488        0,     0,     0,   651,   652,   648,   649,   501,   500,   298,
    1489        0,   718,   298,   723,   299,   298,   666,   709,   665,     2,
    1490      298,     0,     0,     0,     0,     0,     0,     0,     0,   687,
    1491        0,   673,   624,   640,   674,     2,   620,   627,   436,   622,
    1492      623,   437,     2,   634,   643,   636,   637,   670,   671,   685,
    1493      713,   717,   715,   754,   272,     2,   749,     2,   427,   721,
    1494      726,   428,     3,   406,     3,     3,     3,   458,     0,     0,
    1495        2,   472,   469,   753,     0,   465,     2,   468,   471,     0,
    1496      298,   247,   269,     3,   276,   278,     0,   458,     2,   575,
    1497      576,     2,   614,   615,     0,   663,   541,     3,   349,   348,
    1498      351,   350,   298,   542,     0,   543,   376,     0,     0,   298,
    1499        0,     0,   696,   386,   389,   393,   551,   393,   392,   385,
    1500      378,   551,   380,   383,   298,   403,   397,   111,   404,   752,
    1501        0,     0,   441,   245,     0,     0,     3,     2,   672,   434,
    1502        0,   531,     0,   754,   755,   493,     0,   298,   298,   298,
    1503        0,   555,   557,   135,     0,     0,   220,     0,     0,     0,
    1504      228,   229,    65,     0,    67,    70,    71,     0,   133,     0,
    1505        0,     0,   697,   698,   694,   695,   463,    79,   115,   130,
    1506        3,   114,     0,    28,    40,     3,     0,    37,   110,     0,
    1507        3,   654,   658,   661,   653,     3,   596,   720,   725,     2,
    1508       72,   298,     3,     3,   299,     0,     3,   626,   630,   633,
    1509      642,   676,   680,   683,   298,     3,   625,   641,   675,   298,
    1510      298,   429,   298,   298,     0,     0,     0,     0,   261,   111,
    1511        0,     3,     3,     0,   466,     0,   462,     0,     0,   250,
    1512      298,     0,     0,   134,     0,     0,     0,     0,     0,   134,
    1513        0,     0,   114,   114,    21,     0,     0,     3,   136,   137,
    1514        2,   148,   138,   139,   140,   141,   142,   143,   150,   152,
    1515        0,     0,     0,   289,   298,   298,   551,     0,   544,   298,
    1516      379,   381,     0,   395,   697,   390,   394,   391,   384,   388,
    1517      371,   402,     0,   583,     2,   668,   667,     0,   673,     2,
    1518      486,   488,   508,     3,   516,   517,     0,     2,   512,     3,
    1519        3,     0,     0,   560,   227,     0,     0,     0,   227,     0,
    1520        0,   700,   704,   706,   699,   752,   114,     0,     3,    54,
    1521        0,    54,    54,     3,    42,    44,    39,     0,     3,   109,
    1522        0,     2,   656,   657,     0,   298,     0,     0,     0,     3,
    1523      642,     0,     2,   628,   629,     2,   644,     2,   678,   679,
    1524        0,     0,    72,     0,     3,     3,     3,     3,   414,   413,
    1525      417,   751,     2,     2,   750,     0,     0,     0,     0,     3,
    1526      467,     3,     0,   248,   151,     3,   299,   298,     0,     0,
    1527        0,     0,     2,     0,   196,     0,   194,     0,     0,     0,
    1528        0,     0,     0,     0,   551,     0,   156,   153,   298,     0,
    1529        0,   271,   283,     3,     3,   550,   617,   372,   387,   400,
    1530      298,   270,   298,     0,   519,   496,   298,     0,     0,   495,
    1531      510,     0,     0,     0,   221,     0,   230,    68,     2,   702,
    1532      703,     0,   131,   128,     0,    51,     2,    45,    52,    53,
    1533        0,     0,     0,     0,    27,     0,   659,   298,   584,   728,
    1534      729,   730,     0,   681,   298,   298,   298,     3,     3,     0,
    1535      689,     0,     0,     0,     0,   298,   298,     3,   548,   473,
    1536      474,     0,   251,   299,     0,     0,     0,     0,   298,   197,
    1537      195,   192,     0,   198,     0,     0,     0,     0,   202,   205,
    1538      203,   199,     0,   200,   134,    40,   149,   147,   249,     0,
    1539        0,   421,   425,   424,     0,   513,     2,   514,     2,   515,
    1540      509,   298,   233,     0,   231,     0,   233,   298,    36,   129,
    1541       55,     0,    43,    33,     2,    49,     2,    47,    30,     3,
    1542      731,     3,     3,     3,     0,     0,   688,   690,   631,   645,
    1543      273,     2,   411,     3,   410,     0,   476,   134,     0,     0,
    1544      134,     3,     0,   134,   193,     0,     2,     2,   214,   204,
    1545        0,     0,     0,   145,     0,   578,   618,     2,     0,     0,
    1546        2,   234,     0,     0,   222,     0,     3,     3,     0,     0,
    1547        0,     0,     0,     0,   691,   692,   298,     0,   475,   157,
    1548        0,     0,     2,   170,   134,   159,     0,   187,     0,   134,
    1549        0,     2,   161,     0,     2,     0,     2,     2,     2,   201,
    1550       37,   298,   518,   520,   511,     0,     0,     0,     0,     0,
    1551        0,     3,     3,   660,   632,   646,   682,   415,   134,   163,
    1552      166,     0,   165,   169,     3,   172,   171,     0,   134,   189,
    1553      134,     3,     0,   298,     0,   298,     0,     2,     0,     2,
    1554      144,     2,   235,   236,     0,   232,   223,   705,    46,     0,
    1555        0,   158,     0,     0,   168,   238,   173,     2,   240,   188,
    1556        0,   191,   177,   206,     3,   215,   219,   208,     3,     0,
    1557      298,     0,   298,     0,     0,     0,    50,    48,   164,   167,
    1558      134,     0,   174,   298,   134,   134,     0,   178,     0,     0,
    1559      696,   216,   217,   218,     0,   207,     3,   209,     3,   298,
    1560      224,   237,   154,   175,   160,   134,   241,   190,   185,   183,
    1561      179,   162,   134,     0,   697,     0,     0,     0,     0,   155,
    1562      176,   186,   180,   184,   183,   181,     3,     3,     0,     0,
    1563      497,   182,   210,   212,     3,     3,   211,   213
     1462       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1463     108,     2,   648,   455,   645,   549,   549,   653,   482,   296,
     1464       2,   587,   588,     0,   599,   600,     0,     2,   742,   745,
     1465     123,   296,     0,     2,   710,   297,   714,   705,   706,   712,
     1466       0,     2,     2,   670,   549,   753,   619,   549,   549,   753,
     1467     549,   633,   549,   549,   684,   437,   667,   549,   549,   675,
     1468     682,   296,   432,   297,     0,     0,   296,   720,   297,   725,
     1469     753,   717,   296,   722,   753,   296,   296,   296,     0,   123,
     1470       0,    19,     2,     0,    20,     0,   462,   751,     0,     0,
     1471     468,   243,     0,   296,     0,     0,     0,   547,   571,   575,
     1472     577,   607,   610,   614,   617,   570,   609,     0,   286,   660,
     1473       0,   296,   279,     0,     0,     0,     0,   277,     2,     0,
     1474     261,   538,   296,     0,     0,   296,     2,   366,   386,   375,
     1475       0,     0,   380,   374,   752,     0,     0,   399,     0,   297,
     1476       3,   417,     3,   421,   420,   593,     0,   533,   296,    64,
     1477       3,   296,   436,   297,     3,   430,   431,     2,     0,     0,
     1478       0,   487,   308,   296,   483,   485,     3,     2,     2,     0,
     1479     504,     3,     0,   556,   131,     0,     0,   224,     0,     0,
     1480       0,     0,    38,     0,     0,   123,   296,    21,     0,    22,
     1481       0,   694,   699,   451,   691,   549,   549,     0,   109,     3,
     1482       2,    29,     0,    35,     0,    28,     2,    26,     0,   107,
     1483      74,    75,    76,    78,    79,    81,    82,    86,    87,    84,
     1484      85,    89,    90,    92,    94,    96,    98,   100,     0,     0,
     1485     754,   296,     0,     0,     0,   649,   650,   646,   647,   499,
     1486     498,   296,     0,   296,   716,   296,   721,   297,   296,   664,
     1487     296,   296,   707,   663,     2,   296,     0,     0,     0,     0,
     1488       0,     0,     0,     0,   685,     0,   671,   622,   638,   672,
     1489       2,   618,   625,   434,   620,   621,   435,     2,   632,   641,
     1490     634,   635,   668,   669,   683,   711,   715,   713,   753,   270,
     1491       2,   747,     2,   425,   719,   724,   426,     0,   404,     3,
     1492       3,     3,     3,   456,     3,     0,     2,   470,   467,   752,
     1493       0,   463,     2,   466,   469,     0,   296,   244,   266,     3,
     1494     274,   276,     0,   456,     2,   573,   574,     2,   612,   613,
     1495       0,   661,   539,     3,   347,   346,   349,   348,   296,   540,
     1496       0,   541,   374,     0,     0,   296,   296,     0,     0,   694,
     1497     384,   387,   391,   549,   391,   390,   383,   376,   549,   378,
     1498     381,   296,   401,   395,   105,   402,   751,     0,     0,   439,
     1499     242,     0,     0,     3,     2,   670,   432,     0,   529,     0,
     1500     753,   491,     0,   296,   296,   296,     0,   553,   555,   132,
     1501       0,     0,   217,     0,     0,     0,   225,   226,    57,     0,
     1502      59,    62,    63,     0,     2,   130,     0,     0,     0,   695,
     1503     696,   692,   693,   461,    71,    72,   110,   127,     3,   109,
     1504       0,     0,    25,    37,     3,     0,    34,   103,     0,     3,
     1505     652,   656,   659,   651,     3,   594,     3,   718,   723,     2,
     1506      64,   296,     3,     3,   297,     0,     3,   624,   628,   631,
     1507     640,   674,   678,   681,   296,     3,   623,   639,   673,   296,
     1508     296,   427,   296,   296,   748,     0,     0,     0,     0,   258,
     1509       0,   105,     0,     3,     3,     0,   464,     0,   460,     0,
     1510       0,   247,   296,     0,     0,   131,     0,     0,     0,     0,
     1511       0,   131,     0,     0,   109,   109,    19,     2,     0,     0,
     1512       3,   133,   134,     2,   145,   135,   136,   137,   138,   139,
     1513     140,   147,   149,     0,     0,     0,   287,   296,   296,   549,
     1514       0,   542,   296,   377,   379,     0,   393,   695,   388,   392,
     1515     389,   382,   386,   369,   400,     0,   581,     2,   666,   665,
     1516       0,   671,     2,   484,   486,   506,     3,   514,   515,     0,
     1517       2,   510,     3,     3,     0,     0,   558,   224,     0,     0,
     1518       0,   224,     0,     0,   123,   698,   702,   704,   697,   751,
     1519     109,     0,     3,   663,    47,    46,     3,    39,    41,    36,
     1520       0,     3,   102,   104,     0,     2,   654,   655,     0,     0,
     1521     296,     0,     0,     0,     3,   640,     0,     2,   626,   627,
     1522       2,   642,     2,   676,   677,     0,     0,    64,     0,     3,
     1523       3,     3,     3,   412,   411,   415,     2,     2,   750,   749,
     1524     124,     0,     0,     0,     0,     3,   465,     3,     0,   245,
     1525     148,     3,   297,   296,     0,     0,     0,     0,     2,     0,
     1526     193,     0,   191,     0,     0,     0,     0,     0,     0,     0,
     1527     549,   123,     0,   153,   150,   296,     0,     0,   269,   281,
     1528       3,     3,   548,   615,   370,   385,   398,   296,   268,   296,
     1529       0,   517,   494,   296,     0,     0,   493,   508,     0,     0,
     1530       0,   218,     0,   227,    60,     2,   700,   701,     0,   128,
     1531     125,     0,     0,     0,     0,     0,    24,     0,   657,   296,
     1532     582,   267,   726,   727,   728,     0,   679,   296,   296,   296,
     1533       3,     3,     0,   687,     0,     0,     0,     0,   296,   296,
     1534       3,   546,   124,   472,     0,     0,   248,   297,     0,     0,
     1535       0,     0,   296,   194,   192,   189,     0,   195,     0,     0,
     1536       0,     0,   199,   202,   200,   196,     0,   197,   131,    37,
     1537     146,   144,   246,     0,     0,   419,   423,   422,     0,   511,
     1538       2,   512,     2,   513,   507,   296,   230,     0,   228,     0,
     1539     230,   296,    33,   126,    40,    30,     2,    44,     2,    42,
     1540      27,     3,   729,     3,     3,     3,     0,     0,   686,   688,
     1541     629,   643,   271,     2,   409,     3,   408,     0,   474,   471,
     1542     131,     0,     0,   131,     3,     0,   131,   190,     0,     2,
     1543       2,   211,   201,     0,     0,     0,   142,     0,   576,   616,
     1544       2,     0,     0,     2,   231,     0,     0,   219,     0,     3,
     1545       0,     0,     0,     0,     0,     0,   689,   690,   296,     0,
     1546     473,   154,     0,     0,     2,   167,   131,   156,     0,   184,
     1547       0,   131,     0,     2,   158,     0,     2,     0,     2,     2,
     1548       2,   198,    34,   296,   516,   518,   509,     0,     0,     0,
     1549       0,     0,     3,     3,   658,   630,   644,   680,   413,   131,
     1550     160,   163,     0,   162,   166,     3,   169,   168,     0,   131,
     1551     186,   131,     3,     0,   296,     0,   296,     0,     2,     0,
     1552       2,   141,     2,   232,   233,     0,   229,   220,   703,     0,
     1553       0,   155,     0,     0,   165,   235,   170,     2,   237,   185,
     1554       0,   188,   174,   203,     3,   212,   216,   205,     3,     0,
     1555     296,     0,   296,     0,     0,     0,    45,    43,   161,   164,
     1556     131,     0,   171,   296,   131,   131,     0,   175,     0,     0,
     1557     694,   213,   214,   215,     0,   204,     3,   206,     3,   296,
     1558     221,   234,   151,   172,   157,   131,   238,   187,   182,   180,
     1559     176,   159,   131,     0,   695,     0,     0,     0,     0,   152,
     1560     173,   183,   177,   181,   180,   178,     3,     3,     0,     0,
     1561     495,   179,   207,   209,     3,     3,   208,   210
    15641562};
    15651563
     
    15671565static const yytype_int16 yydefgoto[] =
    15681566{
    1569       -1,   800,   464,   301,    47,   133,   134,   302,   303,   304,
    1570      305,   306,   752,   753,  1113,  1114,  1115,  1225,   307,   378,
     1567      -1,   815,   468,   300,    47,   133,   134,   301,   302,   303,
     1568     304,   305,   762,   763,  1136,  1137,  1138,   306,   381,   308,
    15711569     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
    1572      319,   320,   321,  1010,   514,   959,   543,   323,   960,   933,
    1573     1036,  1502,  1038,  1039,  1040,  1041,  1503,  1042,  1043,  1420,
    1574     1421,  1383,  1384,  1385,  1481,  1482,  1486,  1487,  1522,  1523,
    1575     1044,  1342,  1045,  1046,  1278,  1279,  1280,  1464,  1047,   145,
    1576      939,   940,   941,  1362,  1444,  1456,  1457,   465,   466,   860,
    1577      861,  1018,    51,    52,    53,    54,    55,   345,   157,    58,
    1578       59,    60,    61,    62,   347,    64,    65,   263,    67,    68,
    1579      273,   349,   350,    71,    72,    73,   118,    75,   203,   352,
    1580      119,    78,   120,    80,    81,   451,    82,   450,   679,   680,
    1581      681,   893,  1065,   894,    83,    84,   454,   452,   687,   842,
    1582      843,   355,   356,   690,   691,   692,   357,   358,   359,   360,
    1583      462,   176,   135,   136,   518,   325,   169,   636,   637,   638,
    1584      639,   640,    85,   121,    87,   485,   486,   925,   487,   276,
    1585      491,   326,    88,   137,   138,    89,  1301,  1087,  1088,  1089,
    1586     1090,    90,    91,   708,    92,   272,    93,    94,   186,  1012,
    1587      670,   409,   125,    95,   497,   498,   499,   187,   267,   189,
    1588      190,   191,   268,    98,    99,   100,   101,   102,   103,   104,
    1589      194,   195,   196,   197,   198,   812,   598,   599,   600,   601,
    1590      199,   603,   604,   605,   567,   568,   569,   570,   742,   105,
    1591      607,   608,   609,   610,   611,   612,   953,   744,   745,   746,
    1592      588,   363,   364,   365,   366,   327,   163,   107,   108,   109,
    1593      368,   685,   715
     1570     319,   320,  1032,   518,   977,   547,   322,   978,   949,  1059,
     1571    1522,  1061,  1062,  1063,  1064,  1523,  1065,  1066,  1441,  1442,
     1572    1405,  1406,  1407,  1501,  1502,  1506,  1507,  1542,  1543,  1067,
     1573    1365,  1068,  1069,  1302,  1303,  1304,  1484,  1070,   145,   955,
     1574     956,   957,  1385,  1465,  1476,  1477,   469,   470,   876,   877,
     1575    1040,    51,    52,    53,    54,    55,   347,   158,    58,    59,
     1576      60,    61,    62,   349,    64,    65,   264,    67,    68,   274,
     1577     351,   352,    71,    72,    73,   118,    75,   204,   354,   119,
     1578      78,   120,    80,    81,   455,    82,   454,   689,   690,   691,
     1579     910,  1088,   911,    83,    84,   458,   456,   697,   857,   858,
     1580     859,   860,   700,   701,   702,   359,   360,   361,   362,   466,
     1581     340,   135,   136,   522,   324,   170,   646,   647,   648,   649,
     1582     650,    85,   121,    87,   489,   490,   941,   491,   277,   495,
     1583     325,    88,   137,   138,    89,  1325,  1110,  1111,  1112,  1113,
     1584      90,    91,   718,    92,   273,    93,    94,   187,  1034,   680,
     1585     412,   125,    95,   501,   502,   503,   188,   268,   190,   191,
     1586     192,   269,    98,    99,   100,   101,   102,   103,   104,   195,
     1587     196,   197,   198,   199,   827,   606,   607,   608,   609,   200,
     1588     611,   612,   613,   573,   574,   575,   576,   752,   105,   615,
     1589     616,   617,   618,   619,   620,   970,   754,   755,   756,   596,
     1590     365,   366,   367,   368,   326,   164,   107,   108,   109,   370,
     1591     695,   570
    15941592};
    15951593
    15961594/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15971595   STATE-NUM.  */
    1598 #define YYPACT_NINF -1333
     1596#define YYPACT_NINF -1338
    15991597static const yytype_int16 yypact[] =
    16001598{
    1601     6694,  7975, -1333,   -14, -1333, -1333, -1333, -1333, -1333, -1333,
    1602    -1333,    26, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1603    -1333, -1333, -1333, -1333, -1333, -1333,   109,   109,   109,   759,
    1604      860,    66,  6930,   241, -1333, -1333, -1333, -1333, -1333,   199,
    1605    -1333, -1333, -1333,  1264,   207, -1333, -1333, -1333, -1333,  8320,
    1606    -1333, -1333, -1333, -1333,     3,   216, -1333,  1096, -1333, -1333,
    1607    -1333, -1333,   265,  1996,   389,    54,  5394, -1333, -1333,  8320,
    1608      780, -1333, -1333,   554,   416,  3688,   749,   995,   554,  1130,
    1609    -1333, -1333,   768,   826, -1333,   554,  1144, -1333,   313, -1333,
    1610      443,   462, -1333, -1333, -1333, -1333,   358,   216,   109, -1333,
    1611      109, -1333, -1333, -1333, -1333,  8461,  1096, -1333, -1333,  1096,
    1612    -1333,   414, -1333,  8545, -1333, -1333,  2376,  8575, -1333,  1138,
    1613     1138,  1138, -1333, -1333, -1333,   109, -1333, -1333, -1333,   370,
    1614      444,   488, -1333, -1333, -1333,   518, -1333, -1333, -1333, -1333,
    1615    -1333,   525,   576, -1333, -1333,    50,  8059,  1902,   238,   538,
    1616      578,   604,   613,   618,   635,  8659,  6327,   649, -1333,  8431,
    1617    -1333, -1333, -1333, -1333,   661, -1333,   -10,  9338,  9338, -1333,
    1618      662,   181, -1333, -1333, -1333, -1333,   680,   348,   393,   400,
    1619      109,   685, -1333, -1333,  1996,  2098,   801, -1333,    51, -1333,
    1620      109,   109,   216, -1333, -1333,   180, -1333,   109,   109, -1333,
    1621     2242,   712,   751,  1138,  6116, -1333, -1333, -1333,  8320, -1333,
    1622    -1333,   554, -1333, -1333, -1333,   216, -1333,  1096,     3, -1333,
    1623     7196, -1333,  1138,  1138,  1138,   216, -1333,   759, -1333,  4572,
    1624    -1333, -1333,   739,  1138, -1333,  1138, -1333,   199,  8059, -1333,
    1625      775, -1333,   860,   777,  1138, -1333,   759,   771,   804, -1333,
    1626     6930,   594, -1333, -1333, -1333,  4461, -1333, -1333,  5315, -1333,
    1627      801,   101,  9515,  8575,  2376,  2242, -1333,   187, -1333, -1333,
    1628     8545,  1096,   786, 10191, -1333, -1333,   434, -1333,  9931,   803,
    1629      866,  9574,   842,  9515,  9633, -1333,   845, -1333, -1333, -1333,
    1630    -1333, -1333, -1333,  9692,  9692,  7829,   207, -1333, -1333, -1333,
    1631    -1333, -1333, -1333, -1333,   885, -1333,  1691,  2462,  8059,  9515,
    1632    -1333,   558,   367,   614,   669,   742,   852,   846,   858,   883,
    1633      -13, -1333, -1333, -1333,   737, -1333,   269, -1333, -1333,  1902,
    1634    -1333, -1333,   465,   880, -1333,   586,   880, -1333, -1333,  8461,
    1635    -1333,   890,   897,  8174, -1333, -1333,  1514,  1088,  7619,  6116,
    1636      554, -1333,   554,  1138,  1138, -1333, -1333, -1333, -1333, -1333,
    1637    -1333,  1138,  8461,  1096, -1333, -1333,  8659,  1872, -1333, -1333,
    1638    -1333, -1333, -1333, -1333, -1333, -1333, -1333,  9279,  9515, -1333,
    1639    -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1640    -1333, -1333, -1333,  2376, -1333,   105,   903,   926,   928,   796,
    1641      931,   941,   943,  2098, -1333, -1333,   952,     3,   954, -1333,
    1642    -1333,   961, -1333, -1333, -1333,  4461, -1333, -1333, -1333, -1333,
    1643    -1333,  2242, -1333,  8059,  8059, -1333,  1138,  2376,  6237,  7691,
    1644    -1333, -1333, -1333, -1333,  4461,   101, -1333, -1333,   554,   216,
    1645    -1333, -1333,  4461, -1333,  5995, -1333, -1333,  1138,  1138,   394,
    1646     7535,   966,   959,   955,   974,  1138, -1333, -1333, -1333, -1333,
    1647     5606, -1333,   424,  5852, -1333,   216,   977, -1333,  2376, 10015,
    1648     9751, -1333, -1333, -1333, -1333,   884,  2242, -1333,  7691,   801,
    1649     6812, -1333, -1333, -1333,  1296,   456,   986,   860, 10191,  1468,
    1650     8545, -1333, 10191, -1333, -1333, -1333, -1333,   473, -1333,   988,
    1651      866,   242,  7829, -1333,  8689, -1333, -1333,  7829, -1333,  7944,
    1652     7829, -1333, -1333,   207, -1333,   485,  1009,   881,  1014, -1333,
    1653    -1333,  6085, -1333, -1333,   360, -1333, -1333,  9515, -1333,   362,
    1654     9515, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1655    -1333, -1333, -1333,  9515, -1333, -1333,  9515,  9515,  9515,  9515,
    1656     9515,  9515,  9515,  9515,  9515,  9515,  9515,  9515,  9515,  9515,
    1657     9515,  9515,  9515,  9515,  3091,   737,  1207, -1333, -1333,   109,
    1658      109, -1333, -1333,  8059, -1333, -1333,   961,   594, -1333,   961,
    1659     9810, -1333, -1333,  8659,  6085,   993, -1333,  8575, -1333, -1333,
    1660      661, -1333,  1039,   587,  1045,  2359,   209,   986, -1333,   109,
    1661      109,   986,   212, -1333,   109,   109,   961, -1333, -1333,   109,
    1662      109, -1333,   880,  8773,  1096, 10160,   415,   496,  8773, -1333,
    1663     5315, -1333,   986, -1333,  8461, -1333,   126,  7313,  7313,  1096,
    1664     9397,  1029, -1333,  1354,  1033,  1043, -1333,  1060,  9338,   407,
    1665    -1333,  1151,  1096,  7313,   594,  2376,   594,   801,   631,   880,
    1666    -1333, -1333,   692,   880, -1333, -1333, -1333,   866, -1333,   880,
    1667      216,  5606, -1333,   494,  1073,   520,  1074, -1333,   890,   216,
    1668    -1333, -1333,  4461,   216,  1071,  8689,   207, -1333,   972, -1333,
    1669      401,   438,   860, -1333,   860,  1075,  9515, -1333,   860, 10160,
    1670    -1333, -1333,  1079, -1333, -1333, -1333,   594, -1333, 10088,   897,
    1671    -1333,  7313,   960,  7619, -1333, -1333,   661,  1076,  1081,  1296,
    1672     2130, -1333, -1333, 10191,  9515, -1333, -1333,  1085, -1333, -1333,
    1673     1093, -1333,  1085,  1098,  9931,  9515,  1097,  1094,    38,  1119,
    1674     1115,  1124,  1125, -1333,  1126,  1127,  6085, -1333,  9515, -1333,
    1675      881,  1631, -1333, -1333, -1333,   109,   109,  9456,  9515,  1132,
    1676    -1333, -1333,   577, -1333,  9515, -1333, -1333,   843, -1333, -1333,
    1677    -1333, -1333,   558,   558,   367,   367,   614,   614,   614,   614,
    1678      669,   669,   742,   852,   846,   858,   883,  9515,   296,  5606,
    1679     1131,  1133,  1136,  1207, -1333, -1333, -1333, -1333, -1333,  5606,
    1680      616, -1333,  8461, -1333,  6448,  8289, -1333, -1333, -1333,   587,
    1681     5606,   990,  1140,  1141,  1142,  1145,  1146,  1147,  1149, -1333,
    1682     2845,  2359, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1683    -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,   961,
    1684    -1333, -1333, -1333,   986, -1333, -1333, -1333, -1333, -1333, -1333,
    1685    -1333, -1333, -1333, -1333,  1150,  1152, -1333,     3,  1132,  9397,
    1686    -1333, -1333, -1333,  9279,  1154, -1333, -1333, -1333, -1333,   860,
    1687     5689,  1243, -1333, -1333, -1333, -1333,  1143,     3, -1333, -1333,
    1688      961, -1333, -1333,   961,    14,   961, -1333, -1333, -1333, -1333,
    1689    -1333, -1333,  6327, -1333,   216, -1333, -1333,   452,   487,  6327,
    1690     1790,  9515,  2983, -1333, -1333,  1153,    20,  1153, -1333,   860,
    1691    -1333,   109, -1333, -1333,  8090,   955, -1333, -1333, -1333,   959,
    1692     1161,  1157, -1333, -1333,  1163,  1164, -1333,   960,  1700, -1333,
    1693      539, -1333,  2130,   986, -1333, -1333,  1167, 10191,  8545,  8059,
    1694     1169, -1333, -1333,  1165,  1170,  1171, -1333,  9515,  1173,   310,
    1695     1177, -1333,  1180,   594,  1180, -1333, -1333,  1180, -1333,  1195,
    1696     1197,  1201,  1631, -1333, -1333, -1333,  9279, -1333, -1333, -1333,
    1697     1196,  9515,   730, -1333,  9515, -1333,   730, -1333, -1333,  9515,
    1698    -1333,   748,   880, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1699      897,  8174, -1333, -1333,  6569,  1203, -1333,   758,   880, -1333,
    1700      763,   830,   880, -1333,  1138,  4995, -1333, -1333, -1333,  5606,
    1701     5606, -1333,  7691,  7691,  1205,  1210,  1223,  1209, -1333,   551,
    1702      162,  1132, -1333,   730, -1333,  9338, -1333,  9515,   513, -1333,
    1703     5964,  1214,  1227,  9220,  1234,  1235,    42,   160,   163,  9515,
    1704     1237,   216,  9515,  9515,  1226,   304,  1229, -1333, -1333, -1333,
    1705     1244, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1706      860,  1248,  9515, -1333,  5606,  5606,   109,  1254, -1333,  8205,
    1707    -1333, -1333,   773, -1333,  2983, -1333, -1333, -1333, -1333,   972,
    1708    -1333, -1333,  1250, -1333, -1333, -1333, -1333,  1257,  1700, -1333,
    1709    -1333,  1241, -1333,  1085, -1333, -1333,  2376,  1256, -1333, -1333,
    1710    -1333,   617,  1258, -1333,    38,  1266,  9515,  1245,    38,    38,
    1711     1274,   878,   880, -1333, -1333,  1060,  9515,  1276,  1196, -1333,
    1712      841, -1333, -1333,  1270, -1333,   215, -1333,  1279,  1270, -1333,
    1713     1282, -1333, -1333,   961,  1283,  6206,  1284,  1285,  1286, -1333,
    1714    -1333,  1290, -1333, -1333,   961, -1333, -1333, -1333, -1333,   961,
    1715     9515,  9515,   897,  1291, -1333, -1333, -1333, -1333, -1333, -1333,
    1716    -1333, -1333, -1333, -1333, -1333,  9515,  9515,  1295,  1297,  1270,
    1717    -1333, -1333,   860, -1333, -1333, -1333,  7124,  8545,  9515,  9515,
    1718     1350,  9515, -1333,  1278, -1333,  1280, -1333,  1288,  9515,  1293,
    1719     9515,  1056,  1298,    72,   109,  2402, -1333, -1333,  5689,  1287,
    1720      521, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1721     9036, -1333,  7691,  1305, -1333, -1333,  8545,   522,   524, -1333,
    1722     1308,  1302,   866,  1318, -1333,   325, -1333, -1333, -1333, -1333,
    1723      961,  1324, -1333, -1333,  1328,  1363, -1333, -1333,  1363,  1363,
    1724      730,  1333,  1026,  1220, -1333,  1339, -1333,  5606, -1333, -1333,
    1725    -1333, -1333,  1340, -1333,  5606,  5606,  5606, -1333, -1333,  1341,
    1726    -1333,  1342,  1345,  1347,   600,  7385,  7502, -1333, -1333, -1333,
    1727    -1333,  1352, -1333,  7763,   633,   634,  1353,   658,  5821, -1333,
    1728    -1333, -1333,   528, -1333,   659,  1362,  1364,   216,  1401,   965,
    1729    -1333, -1333,  9515, -1333,  9220,  9515, -1333, -1333, -1333,  1365,
    1730     1367, -1333, -1333, -1333,  1358, -1333, -1333, -1333, -1333, -1333,
    1731    -1333,  8545,   866,  1373, -1333,  1368,   866,  5606, -1333, -1333,
    1732    -1333,   730, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1733    -1333, -1333, -1333, -1333,  1384,  1391, -1333, -1333, -1333, -1333,
    1734    -1333, -1333, -1333,  1404, -1333,  1408, -1333,  9220,   198,  9515,
    1735     9220, -1333,  1406,  9515, -1333,   323,  1378,  1427, -1333, -1333,
    1736     1416,  1417,  1395, -1333,   910, -1333, -1333, -1333,  1096,  2376,
    1737     1413, -1333,   326,  9515, -1333,   663, -1333,  1270,   730,   730,
    1738     1420,  1424,  1425,  1434, -1333, -1333,  7691,  1429, -1333,  1489,
    1739     9515,  1426, -1333, -1333,  9130, -1333,   689, -1333,  1414,  9220,
    1740     1418, -1333, -1333,  1445, -1333,  1449, -1333,  1467,  1469, -1333,
    1741     1435,  8545, -1333, -1333, -1333,   866,   594,  1456,  1436,  1460,
    1742     1466,  1270,  1270, -1333, -1333, -1333, -1333, -1333,  9220,   194,
    1743    -1333,   376, -1333, -1333,  7048, -1333, -1333,  1447,  9515, -1333,
    1744     9515,  7048,   216,  8689,   216,  8689,  1470, -1333,  1471, -1333,
    1745    -1333,  1477, -1333, -1333,   720, -1333, -1333, -1333, -1333,  1473,
    1746     1481, -1333,  9515,  9515, -1333, -1333,   991,    94, -1333, -1333,
    1747     1462, -1333,   991, -1333, -1333,  2158,   594, -1333, -1333,   216,
    1748     8689,   216,  8689,  1487,  1463,   594, -1333, -1333, -1333, -1333,
    1749     9130,  1484,   991,  5522,  9515,  9040,  1485,   991,  1493,  2158,
    1750     3005, -1333, -1333, -1333,  1494, -1333, -1333, -1333, -1333,  8059,
    1751    -1333, -1333, -1333,  8905, -1333,  9130, -1333, -1333,  1474,  8815,
    1752    -1333, -1333,  9040,   216,  3005,   216,  1498,  1500,   729, -1333,
    1753     8905, -1333, -1333, -1333,  8815, -1333, -1333, -1333,   216,   216,
    1754    -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333
     1599    4794,  8872, -1338,   118, -1338, -1338, -1338, -1338, -1338, -1338,
     1600   -1338,   -32, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
     1601   -1338, -1338, -1338, -1338, -1338, -1338,    75,    75,    75,   889,
     1602     761,    17,  6057,   231, -1338, -1338, -1338, -1338, -1338,   166,
     1603   -1338, -1338, -1338,   566,   192, -1338, -1338, -1338, -1338,  4939,
     1604   -1338, -1338, -1338, -1338,   195,   234, -1338,  1148, -1338, -1338,
     1605   -1338, -1338,   170,  2042,   352,    44,  7574, -1338, -1338,  9333,
     1606    1157, -1338, -1338,  1542,   364,  3919,   608,   982,  1542,  1041,
     1607   -1338, -1338,   474,   402, -1338,  1542,  1242, -1338,   273, -1338,
     1608     455,   478, -1338, -1338, -1338, -1338,   354,   234,    75, -1338,
     1609      75, -1338, -1338, -1338, -1338,  9218,  1148, -1338, -1338,  1148,
     1610   -1338,   387, -1338,  9518, -1338, -1338,  2342,  9556, -1338,   992,
     1611     992,   992, -1338, -1338, -1338,    75, -1338, -1338, -1338,   374,
     1612     386,   471, -1338, -1338, -1338,   480, -1338, -1338, -1338, -1338,
     1613   -1338,   525,   539, -1338, -1338,    53,  8841,  1022,    54,   558,
     1614     563,   587,   592,   605,   615,  8759,  7097,   644,   585, -1338,
     1615    9371, -1338, -1338, -1338, -1338,   619, -1338,   349,  4637,  4637,
     1616   -1338,   657,   446, -1338, -1338, -1338, -1338,   651,   453,   454,
     1617     476,    75,   659, -1338, -1338,  2042,  2592,   742, -1338,    57,
     1618   -1338,    75,    75,   234, -1338, -1338,   101, -1338,    75,    75,
     1619   -1338,  3079,   687,   706,   992,  6771, -1338, -1338,   707,  4939,
     1620   -1338, -1338,  1542, -1338, -1338, -1338,   234, -1338,  1148,   195,
     1621   -1338,  7912, -1338,   992,   992,   992,   234, -1338,   889, -1338,
     1622    4555, -1338, -1338,   691,   992, -1338,   992, -1338,   166,  8841,
     1623   -1338,   713, -1338,   761,   725,   992, -1338,   889,   756,   768,
     1624   -1338,  6057,   675, -1338, -1338, -1338,  9300, -1338, -1338,  2361,
     1625   -1338,   742,   105, 10239,  9556,  2342,  3079, -1338,   194, -1338,
     1626   -1338,  9518,  1148,   743,  7605, -1338, -1338,   126, -1338, 10586,
     1627     755,   847, 10372,   832, 10391, 10448, -1338,   839, -1338, -1338,
     1628   -1338, -1338, 10467, 10467,  8615,   824, -1338, -1338, -1338, -1338,
     1629   -1338, -1338, -1338,   901, -1338,   679,  3121,  8954, 10391, -1338,
     1630     507,   418,   680,   295,   694,   894,   852,   888,   930,    66,
     1631   -1338, -1338,   938,   665, -1338,   380, -1338, -1338,  1022, -1338,
     1632   -1338,    12,   949, -1338,   338,   949,   961,   166, -1338, -1338,
     1633     968,  9218, -1338,   983,   984,  9067, -1338, -1338,   776,  1555,
     1634    8330,  6771,  1542, -1338,  1542,   992,   992, -1338, -1338, -1338,
     1635   -1338, -1338, -1338,   992,  9218,  1148, -1338, -1338,  9594,  1098,
     1636   -1338,  8061, -1338, -1338, -1338, -1338, -1338, -1338, -1338,   995,
     1637    5881, 10391, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
     1638   -1338, -1338, -1338, -1338, -1338, -1338,  2342, -1338,   489,   993,
     1639     994,  1000,   732,  1004,  1007,  1008,  2592, -1338, -1338,   969,
     1640     195,  1030, -1338, -1338,  1024, -1338, -1338, -1338,  9300, -1338,
     1641   -1338, -1338, -1338, -1338,  3079, -1338,  8841,  8841, -1338,   992,
     1642    2342,  6890,  1148,  8403, -1338, -1338, -1338, -1338,  9300,   105,
     1643   -1338, -1338,  1542,   234, -1338, -1338,  9300, -1338,  6655, -1338,
     1644   -1338,   992,   992,   465,  8248,  1029,  1028,  1015,  1033,   992,
     1645   -1338, -1338, -1338, -1338,  9742, -1338,   591,  6518, -1338,   234,
     1646    1044, -1338,  2342, 10668, 10296, -1338, -1338, -1338, -1338,   929,
     1647    3079, -1338,  8476,   742,  5771, -1338, -1338, -1338,  1039,   645,
     1648     938,   761,  7605,   809,  9518, -1338,  7605, -1338, -1338, -1338,
     1649   -1338,   688, -1338,  1046,   847,   251,  8615, -1338,  9627, -1338,
     1650   -1338,  8615, -1338,  8728,  8615, -1338, -1338,  1048, -1338,   751,
     1651    1043,   711,  1057, -1338, -1338,  9447,  6740, -1338,   107, -1338,
     1652   -1338, 10239, -1338,   318, 10239, -1338, -1338, -1338, -1338, -1338,
     1653   -1338, -1338, -1338, -1338, -1338, -1338, -1338, 10239, -1338, -1338,
     1654   10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,
     1655   10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,  4422, 10239,
     1656   -1338,   665,  1831, -1338, -1338,    75,    75, -1338, -1338,  8841,
     1657   -1338, -1338,  1024,   675, -1338,  1024, 10315, -1338, -1338, -1338,
     1658    5500,  6740,  1056,  1064, -1338,  9556, -1338, -1338,   619, -1338,
     1659    1065,  1323,  1067,  2196,   209,   938, -1338,    75,    75,   938,
     1660     243, -1338,    75,    75,  1024, -1338, -1338,    75,    75, -1338,
     1661     949,  9665,  1148, 10813,   217,   306,  9665, -1338,  2361, -1338,
     1662     938, -1338,  9218, -1338,   212,  8027,  8027,  8027,  1148, -1338,
     1663    6120,  1053,   995,   535,  1061,  1066, -1338,  1071,  4637,   421,
     1664   -1338,  1166,  1148,  8027,   675,  2342,   675,   742,   394,   949,
     1665   -1338, -1338,   788,   949, -1338, -1338, -1338,   847, -1338,   949,
     1666     234,  9742, -1338,   764,  1087,   806,  1088, -1338,  1089,   234,
     1667   -1338, -1338,  9300,   234,  1090,  9627,  1096, -1338,  1729, -1338,
     1668     527,   550,   761, -1338,   761,  1102, 10391, -1338,   761, 10813,
     1669   -1338, -1338,  1092, -1338, -1338, -1338,   675, -1338, 10741,   984,
     1670   -1338,  8027,   857,  8330, -1338, -1338,   619,  1103,  1112,  1039,
     1671    3523, -1338, -1338,  7605, -1338, -1338,  1097, -1338, -1338,  1121,
     1672   -1338,  1097,  1124, 10586, 10239,  1105,  1104,    94,  1128,  1123,
     1673    1132,  1133, -1338,  1136,  1138,  9485,  6859, -1338, 10239, -1338,
     1674     711,  1914, -1338, -1338, -1338,    75,    75,  6186, 10239,  1134,
     1675   -1338, -1338,   822, -1338, 10239, -1338, -1338, -1338,   715, -1338,
     1676   -1338, -1338, -1338,   507,   507,   418,   418,   680,   680,   680,
     1677     680,   295,   295,   694,   894,   852,   888,   930, 10391,   250,
     1678   -1338,  9742,  1151,  1153,  1158,  1831, -1338, -1338, -1338, -1338,
     1679   -1338,  9742,   827,  8027, -1338,  9218, -1338,  7216,  9180, -1338,
     1680    8061,  7097, -1338, -1338,  1323,  9742,   936,  1159,  1162,  1164,
     1681    1167,  1170,  1175,  1178, -1338,  3437,  2196, -1338, -1338, -1338,
     1682   -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
     1683   -1338, -1338, -1338, -1338,  1024, -1338, -1338, -1338,   938, -1338,
     1684   -1338, -1338, -1338, -1338, -1338, -1338, -1338,  1179, -1338,  1180,
     1685    1181, -1338, -1338,   195,  1134,  6120, -1338, -1338, -1338,  5881,
     1686    1143, -1338, -1338, -1338, -1338,   761,  6348,  1247, -1338, -1338,
     1687   -1338, -1338,  1165,   195, -1338, -1338,  1024, -1338, -1338,  1024,
     1688     230,  1024, -1338, -1338, -1338, -1338, -1338, -1338,  9409, -1338,
     1689     234, -1338, -1338,   554,   555,  9594,  7335,  2114, 10391,  2586,
     1690   -1338, -1338,  1163,    40,  1163, -1338,   761, -1338,    75, -1338,
     1691   -1338,  8985,  1015, -1338, -1338, -1338,  1028,  1185,  1186, -1338,
     1692   -1338,  1189,  1191, -1338,   857,  1994, -1338,   444, -1338,  3523,
     1693     938, -1338,  1195,  7605,  9703,  8841,  1196, -1338, -1338,  1192,
     1694    1200,  1182, -1338, 10391,  1205,   298,  1203, -1338,  1206,   675,
     1695    1206, -1338, -1338,  1206,  1209, -1338,  1214,  1216,  1217,  1914,
     1696   -1338, -1338, -1338,  5881, -1338, -1338, -1338, -1338,  1215, 10239,
     1697    1220,   831, -1338, 10239, -1338,   831, -1338, -1338, 10239, -1338,
     1698     972,   949, -1338, -1338, -1338, -1338, -1338, -1338, -1338,   995,
     1699     984,  9067, -1338, -1338,  7454,  1229, -1338,   975,   949, -1338,
     1700     979,   991,   949, -1338,   992,  3705, -1338, -1338, -1338,  9742,
     1701    9742, -1338,  8403,  8403, -1338,  1226,  1232,  1235,  1240, -1338,
     1702    1244,   564,    43,  1134, -1338,   831, -1338,  4637, -1338, 10239,
     1703     582, -1338,  6621,  1243,  1245, 10182,  1248,  1251,    46,    70,
     1704     103, 10239,  1252,   234, 10239, 10239,  1238,  1257,   333,  1239,
     1705   -1338, -1338, -1338,  1258, -1338, -1338, -1338, -1338, -1338, -1338,
     1706   -1338, -1338, -1338,   761,  1268, 10239, -1338,  9742,  9742,    75,
     1707    1269, -1338,  9098, -1338, -1338,   767, -1338,  2586, -1338, -1338,
     1708   -1338, -1338,  1729, -1338, -1338,  1270, -1338, -1338, -1338, -1338,
     1709    1273,  1994, -1338, -1338,  1256, -1338,  1097, -1338, -1338,  2342,
     1710    1271, -1338, -1338, -1338,   836,  1276, -1338,    94,  1279, 10391,
     1711    1265,    94,    94,  1293,  9447,  1023,   949, -1338, -1338,  1071,
     1712   10239,  1292,  1215,   513, -1338, -1338,  1296, -1338,    -5, -1338,
     1713    1297,  1296, -1338, -1338,  1304, -1338, -1338,  1024,  1306,  1309,
     1714    6978,  1310,  1312,  1313, -1338, -1338,  1316, -1338, -1338,  1024,
     1715   -1338, -1338, -1338, -1338,  1024, 10239, 10239,   984,  1315, -1338,
     1716   -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
     1717   -1338, 10391, 10391,  1317,  1318,  1296, -1338, -1338,   761, -1338,
     1718   -1338, -1338,  7839,  9703, 10239, 10239,  1381, 10239, -1338,  1299,
     1719   -1338,  1303, -1338,  1305, 10239,  1311, 10239,  1014,  1314,    39,
     1720      75,  5221,  1493, -1338, -1338,  6348,  1321,   584, -1338, -1338,
     1721   -1338, -1338, -1338, -1338, -1338, -1338, -1338, 10002, -1338,  8476,
     1722    1328, -1338, -1338,  9703,   589,   606, -1338,  1327,  1325,   847,
     1723    1334, -1338,   331, -1338, -1338, -1338, -1338,  1024,  1332, -1338,
     1724   -1338,  1336,   831,  1339,   320,   457, -1338,  1341, -1338,  9742,
     1725   -1338, -1338, -1338, -1338, -1338,  1345, -1338,  9742,  9742,  9742,
     1726   -1338, -1338,  1351, -1338,  1355,  1358,  1360,   623,  8100,  8215,
     1727   -1338, -1338,   463, -1338,  1361,  1370, -1338,  8549,   841,   866,
     1728    1374,   868,  6487, -1338, -1338, -1338,   616, -1338,   881,  1375,
     1729    1379,   234,  1429,   861, -1338, -1338, 10239, -1338, 10182, 10239,
     1730   -1338, -1338, -1338,  1383,  1384, -1338, -1338, -1338,  1382, -1338,
     1731   -1338, -1338, -1338, -1338, -1338,  9703,   847,  1386, -1338,  1366,
     1732     847,  9742, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
     1733   -1338, -1338, -1338, -1338, -1338, -1338,  1389,  1390, -1338, -1338,
     1734   -1338, -1338, -1338, -1338, -1338,  1395, -1338,  1394, -1338, -1338,
     1735   10182,   334, 10239, 10182, -1338,  1398, 10239, -1338,   339,  1415,
     1736    1417, -1338, -1338,  1405,  1406,  1393, -1338,   840, -1338, -1338,
     1737   -1338,  1148,  2342,  1403, -1338,   329, 10391, -1338,   897, -1338,
     1738     831,   831,  1411,  1412,  1416,  1421, -1338, -1338,  8403,  1423,
     1739   -1338,  1485, 10391,  1407, -1338, -1338, 10094, -1338,   898, -1338,
     1740    1410, 10182,  1422, -1338, -1338,  1434, -1338,  1443, -1338,  1459,
     1741    1461, -1338,  1428,  9703, -1338, -1338, -1338,   847,   675,  1452,
     1742    1431,  1455,  1296,  1296, -1338, -1338, -1338, -1338, -1338, 10182,
     1743      81, -1338,   447, -1338, -1338,  7690, -1338, -1338,  1435, 10239,
     1744   -1338, 10239,  7690,   234,  9627,   234,  9627,  1465, -1338,  1466,
     1745   -1338, -1338,  1456, -1338, -1338,   909, -1338, -1338, -1338,  1470,
     1746    1471, -1338, 10391, 10391, -1338, -1338,   880,   254, -1338, -1338,
     1747    1453, -1338,   880, -1338, -1338,  2645,   675, -1338, -1338,   234,
     1748    9627,   234,  9627,  1480,  1458,   675, -1338, -1338, -1338, -1338,
     1749   10094,  1476,   880,  7766, 10239, 10006,  1478,   880,  1486,  2645,
     1750    2922, -1338, -1338, -1338,  1487, -1338, -1338, -1338, -1338,  8841,
     1751   -1338, -1338, -1338,  9873, -1338, 10094, -1338, -1338,  1467,  9785,
     1752   -1338, -1338, 10006,   234,  2922,   234,  1495,  1498,   927, -1338,
     1753    9873, -1338, -1338, -1338,  9785, -1338, -1338, -1338,   234,   234,
     1754   -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338
    17551755};
    17561756
     
    17581758static const yytype_int16 yypgoto[] =
    17591759{
    1760    -1333,  3826,  2645, -1333,   849, -1333,   762,   867,  -112,   956,
    1761    -1333,   580,  -517,  -490,  -904,  -999, -1333,   -62,  4003,     0,
    1762    -1333,   676,   547,   572,   581,   571,  1057,  1058,  1059,  1055,
    1763     1061, -1333,   963,  -485,  4467,  -910, -1333, -1333,   665,   184,
    1764     -691,   319, -1333,   356, -1333,   440, -1283, -1333, -1333,   176,
    1765    -1333, -1072, -1062,   285, -1333, -1333, -1333, -1333,   107, -1332,
    1766    -1333, -1333, -1333, -1333, -1333, -1333,   359, -1109,    16, -1333,
    1767     -288, -1333,   535,   330, -1333,   208, -1333,  -237, -1333, -1333,
    1768    -1333,   596,  -693, -1333, -1333,     9,  -933,   372,  2238, -1333,
    1769    -1333, -1333,   -57, -1333,   110,    36,  -194,  1419,  3198, -1333,
    1770    -1333,    12,    61,  1486,  1572, -1333,  1265, -1333, -1333,    21,
    1771     1950, -1333,  2034,  1735, -1333, -1333, -1333,  -611, -1333,   975,
    1772      976,   584,   761,   136, -1333, -1333, -1333,   967,   755,  -456,
    1773    -1333,  -528,  -433,   832, -1333, -1333,  -922,  -915,  -420,  1560,
    1774     1084,    19, -1333,   388,   467,  -359,  -203,  -145,   706,   811,
    1775    -1333,  1028, -1333,  2348,   798,  -442,   958, -1333, -1333,   740,
    1776    -1333,  -233, -1333,   118, -1333, -1333, -1333, -1243,   466, -1333,
    1777    -1333, -1333,  1188, -1333,    -1, -1333, -1333,  -832,  -108, -1152,
    1778     -131,  3669, -1333,  4255, -1333,   951, -1333,  -125,   120,  -178,
    1779     -173,  -170,     7,   -41,   -40,   -39,   619,    -5,    25,    46,
    1780       -4,  -167,  -166,  -158,  -157,  -296,  -519,  -516,  -510,  -538,
    1781     -311,  -552, -1333, -1333,  -514,  1111,  1112,  1114,  1610,  4174,
    1782     -565,  -560,  -546,  -522,  -389, -1333,  -475,  -720,  -716,  -715,
    1783     -584,  -222,  -287, -1333, -1333,    47,   102,   -51, -1333,  3453,
    1784      108,  -602,  -196
     1760   -1338,  4260,  2887, -1338,  1463, -1338,  1198,   661,  -268,   942,
     1761   -1338,   552,  -528,  -471,  -934,  -784, -1338,  4910,     0, -1338,
     1762    -100,   434,   472,   506,   438,  1049,  1050,  1051,  1062,  1055,
     1763   -1338,  1094,  -577,  5180,  -896, -1338,  -712,   636,   -68,  -593,
     1764    -654, -1338,  1469, -1338,   408, -1065, -1338, -1338,   159, -1338,
     1765   -1118,  -880,   265, -1338, -1338, -1338, -1338,    92, -1253, -1338,
     1766   -1338, -1338, -1338, -1338, -1338,   341, -1303,    36, -1338,  -904,
     1767   -1338,   518,   311, -1338,   196, -1338,  -309, -1338, -1338, -1338,
     1768     571,  -749, -1338, -1338,    16,  -930,   172,  1119, -1338, -1338,
     1769   -1338,  -149, -1338,    71,   966,  -196,  1532,  4034, -1338, -1338,
     1770      83,   174,   287,  2700, -1338,  1836, -1338, -1338,    55,  2097,
     1771   -1338,  2401,  2181, -1338, -1338, -1338,  -656, -1338,   962,   964,
     1772     560,   736,  -249, -1338, -1338, -1338,   955,   734,  -456, -1338,
     1773    -116,   -94,   869, -1338, -1338,  -963,  -979,    -2,   913,  1074,
     1774      29, -1338,   719,   357,  -283,  -191,  -146,   681,   789, -1338,
     1775    1010, -1338,  2818,  1589,  -439,   940, -1338, -1338,   720, -1338,
     1776    -237, -1338,   109, -1338, -1338, -1338, -1275,   435, -1338, -1338,
     1777   -1338,  1183, -1338,    32, -1338, -1338,  -845,  -111, -1337,  -112,
     1778    3150, -1338,  3946, -1338,   941, -1338,  -138,  1137,  -181,  -176,
     1779    -174,     7,   -40,   -33,   -28,  1352,    38,    50,    77,  -134,
     1780    -173,  -171,  -166,  -165,  -261,  -504,  -490,  -476,  -565,  -319,
     1781    -523, -1338, -1338,  -525,  1107,  1111,  1115,  -135,  4740,  -582,
     1782    -583,  -534,  -519,  -480, -1338,  -505,  -725,  -715,  -709,  -592,
     1783    -312,  -258, -1338, -1338,   326,    26,   -81, -1338,  3689,   -15,
     1784    -601,  -356
    17851785};
    17861786
     
    17881788   positive, shift that token.  If negative, reduce the rule which
    17891789   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1790 #define YYTABLE_NINF -527
     1790#define YYTABLE_NINF -525
    17911791static const yytype_int16 yytable[] =
    17921792{
    1793       49,   113,   149,   150,   151,   449,   396,    97,   266,   425,
    1794      114,   397,    69,   757,   398,   436,    50,   399,   400,   732,
    1795      949,    76,   380,   381,   950,   951,   401,   402,  1049,   831,
    1796      814,   143,    49,   806,   934,   854,   602,   116,   152,    97,
    1797      693,   805,   743,   147,    69,   704,   717,   807,    50,    49,
    1798      722,   597,   784,    76,   259,   407,   160,   813,  1360,    31,
    1799      404,    70,  1118,   185,   664,   666,   208,   122,   153,    49,
    1800      192,   808,   904,   215,   802,   621,   225,   803,   218,   625,
    1801     1148,  1149,   201,   804,   563,   158,   396,  1165,  1150,   154,
    1802       31,   397,   422,    70,   398,   522,   162,   399,   400,   844,
    1803      844,   279,   106,   106,   340,   113,   401,   402,   374,  1159,
    1804       63,  1227,   167,   113,  1173,   844,   265,   270,   564,   289,
    1805       96,   589,  1182,  1183,   375,   260,  1056,   211,   261,   471,
    1806      473,   721,   202,   408,   106,  1282,   168,   123,  -239,  -239,
    1807      404,   257,    63,   149,   150,   151,   308,   147,    31,   158,
    1808      734,   937,    96,  1510,   160,   113,   343,   165,  1441,   208,
    1809      162,   280,   251,   148,   408,   406,   370,  1048,   501,    96,
    1810      949,   106,   846,   844,   950,   951,  1174,   142,   660,   152,
    1811     1525,   405,   324,   188,   185,   185,    96,   863,   711,    96,
    1812      802,   338,   160,   803,   845,   845,  1222,   669,   467,   804,
    1813      265,   908,  1509,   898,   658,   673,  1283,   817,    49,   153,
    1814      845,  -239,   472,   824,   788,   160,   251,   330,   408,    31,
    1815      208,   165,  1520,   149,   150,   151,    31,   439,  1422,  1524,
    1816      154,  1312,  1175,  1315,  1317,  1177,   435,   472,   308,   806,
    1817      427,   693,  1380,  1381,   430,   916,   998,   985,    31,   459,
    1818       49,    31,   144,   807,   328,   431,   705,    97,   270,   714,
    1819     1155,   405,    69,   270,   265,   265,    50,    96,   845,   974,
    1820      113,    76,   160,   997,   324,  1059,    76,   808,   655,    96,
    1821      802,   438,  1178,   803,   602,   647,  1156,  1150,   582,   804,
    1822      479,   416,  1452,   408,  1176,   308,   793,   496,   477,   384,
    1823      408,  1422,  1232,   704,   395,   188,   430,  1072,   308,   484,
    1824      146,    70,  1426,   662,  1382,   385,   432,   431,  1156,   667,
    1825      815,   155,   594,   822,   566,   594,  1468,  1164,    96,   147,
    1826     1233,   517,   170,  1148,  1149,  1165,   370,   840,  1179,   113,
    1827       96,  1150,   519,   343,   158,   443,   328,   595,   613,   251,
    1828      330,   655,   106,   814,   727,   162,  1049,   806,   467,   693,
    1829       63,  1496,   618,  1498,   456,   468,   618,  1380,  1381,   693,
    1830       96,   807,    56,   115,   728,   581,   285,   467,   432,   586,
    1831      693,   572,   622,   180,   475,   467,   626,   573,   726,    41,
    1832       42,   589,   200,   265,  1480,   808,   589,   831,   619,   656,
    1833     1485,   818,   623,   185,    56,   821,  1063,  1367,  1426,   211,
    1834      370,   172,   817,  1426,   738,   510,   165,   376,   141,  -294,
    1835     1505,   265,  1097,   308,   308,  1512,   838,   265,   969,   618,
    1836      841,   246,   110,  1426,   110,   884,    76,  1305,   209,  1391,
    1837     1426,   219,  1098,   249,  1405,    41,    42,    41,    42,    96,
    1838      113,   591,  1095,   252,  1417,    76,   704,  1306,  1406,   324,
    1839      324,  1150,  -522,    76,  1411,  1412,   387,   596,   265,   251,
    1840      240,   243,   656,   750,  1116,   755,   265,  1104,   618,   515,
    1841       49,   -12,   388,   370,   710,  1083,   678,    97,   549,   550,
    1842      113,  1165,    69,   855,  1453,  1048,    50,   682,  1165,   116,
    1843      602,    76,   308,  1221,   113,   978,   674,   308,  1454,   308,
    1844      308,   389,   573,   998,   705,   996,   867,   741,   391,   899,
    1845      856,   343,   633,   188,   484,   468,   324,   390,   484,   834,
    1846      211,   328,   328,   835,   392,   900,   695,   865,   517,   857,
    1847      517,    70,   696,   517,   468,   324,   517,   262,   414,   519,
    1848     1165,   519,   468,   895,   519,  -446,   901,   519,     2,   205,
    1849        4,     5,     6,     7,   489,   566,   566,   490,   712,  1147,
    1850      899,   433,   902,   308,   713,  1343,   574,  1341,   408,   693,
    1851      693,   441,   106,   618,   343,   723,  1060,   613,   702,  1104,
    1852       63,   724,   437,   595,   898,   595,   795,   737,   328,  -447,
    1853       96,  1136,  1138,   738,   596,   901,   878,   663,   665,   324,
    1854      836,  1213,   738,   618,   837,   467,   938,   328,   618,   791,
    1855      613,  1061,    56,    35,   618,    36,   996,   618,   618,   275,
    1856      453,  1162,   880,   833,   693,   693,   277,  1001,   738,  1162,
    1857     1296,   913,  1298,   618,  1008,   265,   738,  1163,   847,   830,
    1858      331,   516,  1390,   836,   586,  1288,  1297,  1079,  1299,    37,
    1859      839,   862,  1344,    40,  1053,  -112,   110,   705,   161,  -112,
    1860     1257,  1258,    41,    42,   897,   113,   438,   546,   892,    41,
    1861       42,   328,   193,   547,   548,   216,   515,   278,   226,   963,
    1862      332,   515,   704,    76,   515,   964,  1091,   577,   799,   408,
    1863      594,   618,   918,   613,   551,   552,    45,    46,  1014,   710,
    1864      710,   678,   396,   801,  1330,   596,   333,   397,  1331,    76,
    1865      398,   832,   682,   399,   400,   334,   591,  1080,   976,  1209,
    1866      335,  1458,   401,   402,   696,   573,   343,  1460,  1458,  1461,
    1867      741,   741,   868,   496,   408,  1337,  1338,   336,   778,   484,
    1868      211,   738,   738,     2,   205,     4,     5,     6,     7,   589,
    1869      369,   553,   554,   111,   211,   635,   161,   404,  1354,   949,
    1870     1340,  1345,   373,   950,   951,  1408,   738,   738,   371,   382,
    1871     1292,  1405,   468,   566,     2,   205,     4,     5,     6,     7,
    1872     1506,   386,   618,  1507,   981,   671,   555,   556,   896,   595,
    1873     1140,  1427,   110,   871,   161,   408,  1211,   738,   468,  1109,
    1874     1215,   595,  1110,   227,  1111,    41,    42,   693,    35,   394,
    1875       36,   697,  1333,   423,   693,   693,   693,   161,   977,   801,
    1876      596,   129,  1474,   130,   131,   132,   557,   558,  1475,   440,
    1877      110,  1530,   139,   237,    41,    42,   702,   573,   565,    35,
    1878      408,    36,    56,    41,    42,   211,    45,    46,   516,  1121,
    1879      308,   408,   424,   516,   214,   406,   516,    48,   112,  1132,
    1880     1160,   408,    69,   446,  1135,   716,   594,   720,  1407,   238,
    1881      241,    76,   343,    -3,   239,   330,   408,   693,   405,   343,
    1882      892,  -370,   892,  -399,   795,  1419,   112,   112,   110,    48,
    1883      139,   140,   480,   705,   113,   457,   175,   416,   651,   408,
    1884       48,    41,    42,   110,   500,   214,    48,   918,   918,   801,
    1885     1109,    70,   710,  1110,    48,  1111,    41,    42,   113,   308,
    1886       48,   596,   110,    48,   139,   140,    48,  1084,   458,   655,
    1887      678,  1137,   242,   594,   895,    41,    42,   289,   371,   112,
    1888      112,   682,   741,   504,  1226,   175,   509,   214,   175,   506,
    1889      967,   964,   106,   484,  1086,   324,   522,  1478,  1419,   729,
    1890       63,   730,   559,    48,   731,   560,    48,   735,  1204,   562,
    1891      705,   343,   938,    48,   544,   545,   938,   938,   561,  1218,
    1892     1492,   408,   740,   337,   408,   477,   330,   408,  -295,   702,
    1893       45,    46,   618,   618,   583,     8,     9,    10,    11,    12,
    1894     1062,    -3,   896,   461,    48,   648,   876,   830,   214,   544,
    1895      308,   851,   371,  1350,  1351,   883,    48,  1400,   964,   885,
    1896      106,  1066,  1167,  1066,    31,  1380,  1381,   328,   649,  1104,
    1897      650,    76,   596,   652,    37,   438,   182,   183,    40,  1228,
    1898     1229,    48,    48,   653,   544,   654,   214,    41,    42,   113,
    1899      656,   214,    34,   657,   892,   897,   175,    48,   659,   892,
    1900      903,   917,   905,   594,   256,    48,   453,   684,   918,    45,
    1901       46,    70,   683,   890,    48,   408,   265,    48,   686,   832,
    1902      688,    45,    46,  -243,   112,   678,   762,   763,   110,   725,
    1903     1303,   815,   330,   594,   891,  1109,   682,   796,  1110,   112,
    1904     1111,    41,    42,   112,  1275,  1276,  1277,    48,   112,   714,
    1905      175,   739,   106,   764,   765,   343,   747,   175,   770,   771,
    1906      468,    48,    48,  -296,   766,   767,   768,   769,    48,  1314,
    1907        8,     9,    10,    11,    12,    48,   214,  -297,     8,     9,
    1908       10,    11,    12,   798,     8,     9,    10,    11,    12,   809,
    1909       37,   -14,   182,   183,    40,   -15,   270,   113,    37,    31,
    1910      173,   174,    40,    41,    42,   852,   218,    31,   853,  1037,
    1911      859,    41,    42,    31,   896,   879,   881,   886,   308,   896,
    1912     1361,  -420,   906,  -526,  1361,   175,    48,    34,   921,   593,
    1913       69,   594,   618,   713,   929,    34,   113,    45,    46,    76,
    1914      931,    34,   175,    48,    48,  1084,   175,     8,     9,    10,
    1915       11,    12,   759,   760,   761,   111,   214,   211,   936,   935,
    1916       48,   942,    56,   943,    48,   702,   944,   945,   946,   947,
    1917     1058,   635,  1086,   971,   634,   972,    31,  1019,   973,    70,
    1918      961,  1403,   987,   988,   989,   618,   618,   990,   991,   992,
    1919       48,   993,  -408,   270,  -407,    74,  1518,   214,   308,   106,
    1920       48,  1016,  1050,  1073,    34,  1074,  1052,  1075,  1076,  1082,
    1921     1167,  1092,  1093,   738,  1096,   891,   751,  1068,    48,    76,
    1922      106,   756,   110,  1442,    48,  1099,   956,    74,    63,  1109,
    1923     1085,   113,  1110,  1094,  1111,    41,    42,  1101,   106,  1102,
    1924     1084,   396,   702,  1103,  1106,  1130,   397,  1151,   565,   398,
    1925      408,  1154,   399,   400,   438,  1168,    45,    46,  1152,    70,
    1926      112,   401,   402,  1316,   221,    48,    37,  1086,  1169,   461,
    1927       40,  1153,  1170,    48,   635,  1171,  1172,    48,  1180,    41,
    1928       42,    48,  1264,  1265,   112,  1267,   112,  1491,  1184,   265,
    1929     1191,    -3,  1272,  1186,  1274,   404,  1196,  1199,    37,  1201,
    1930      106,   489,    40,  1205,  1210,    43,   618,  1402,   468,  1214,
    1931     1212,    41,    42,    45,    46,   214,  1217,  1181,  1230,   655,
    1932     1223,   112,    56,  1234,  1236,  1238,   112,  1266,  1239,  1240,
    1933     1241,   113,  1243,   106,  1287,  1250,   864,   709,   866,  1259,
    1934     1084,  1260,  1269,   214,  1270,    45,    46,  1294,   214,    66,
    1935      117,   351,  1271,   957,   113,  1300,   110,  1273,   139,   140,
    1936     1304,   113,  1281,   113,  1302,   113,  1167,  1086,  1019,    41,
    1937       42,  1308,  1309,  1167,   112,    76,  1310,  1313,   149,   150,
    1938      151,    66,    76,  1318,  1320,  1326,  1327,  1328,   912,  1329,
    1939       48,  1277,    48,   175,  1339,  1490,  1336,   850,   159,  1465,
    1940      113,  1465,   113,  1346,  1357,  1347,  1393,  1355,   175,  1356,
    1941     1466,    48,  1466,   113,  1363,    70,   405,   214,   220,  1490,
    1942     1490,   175,    70,   877,   445,  1167,    48,   160,  1374,   308,
    1943      112,   214,  1364,   106,    76,  1375,  1465,  1037,  1465,    48,
    1944      656,   112,    48,   112,  1490,    74,  -409,  1466,  1389,  1466,
    1945       74,   370,  1378,  1386,   258,  1395,   106,  1397,  1398,  1399,
    1946     1404,  1418,  1413,   106,   468,   324,  1414,  1415,   209,   219,
    1947      110,   468,   139,   140,    70,    48,  1416,  1331,  1428,   112,
    1948     1262,   112,  1430,    41,    42,   112,   228,  1432,  1423,   229,
    1949       56,  1434,   233,   112,   235,  1436,   329,  1438,  1445,  1440,
    1950     1446,   244,  1447,   175,   258,   348,    48,    48,  1085,   718,
    1951     1448,  1459,  1469,  1471,   719,   106,    37,  1476,   173,   174,
    1952       40,    48,   214,   468,  1473,  1477,  1484,  1500,  1499,    41,
    1953       42,  1504,  1511,  1353,   403,  1513,  1515,   328,  1521,   475,
    1954     1528,   970,  1529,   874,   221,  1185,   772,   775,   773,   421,
    1955      774,   975,   426,   428,   776,   369,  1108,   159,  1286,  1479,
    1956     1392,  1531,   986,  1348,  1216,   437,  1365,  1349,   212,  1462,
    1957       56,     8,     9,    10,    11,    12,  1190,   231,   444,   907,
    1958      887,   888,   447,  1198,   448,   909,  1379,   544,  1067,  1387,
    1959     1071,   790,  1105,   455,  1015,  1081,    48,   858,   707,    66,
    1960       31,   923,  1295,  1085,   469,   932,   780,   781,    48,   782,
    1961       74,     0,     0,     0,   476,     0,     0,     0,     0,   212,
    1962        0,     0,   428,     0,   351,     0,   506,   228,    34,    74,
    1963        0,     0,     0,  1425,     0,  1100,     0,    74,  1429,     0,
    1964        8,     9,    10,    11,    12,     0,     0,     0,     0,     0,
    1965      634,     0,     0,     0,  1112,   351,   112,     0,  1112,     0,
    1966        0,   212,     0,     0,     0,     0,     0,  1451,     0,    31,
    1967      968,     0,   740,   351,   408,    74,     0,     0,     0,     0,
    1968       45,    46,     0,     0,     0,     0,     0,    48,   258,    48,
    1969        0,     0,   587,     0,   494,     0,   112,    34,   615,     0,
    1970        0,     0,     0,  1085,   523,  1112,     0,     0,   524,   525,
    1971      526,   620,   214,     0,     0,   620,   351,     0,  1463,    48,
    1972     1467,     0,   212,     0,     0,     0,    56,     0,   410,     0,
    1973        0,   213,   527,    56,   528,   418,   529,   530,     0,     0,
    1974      112,   917,  1009,   594,     0,     0,     0,     0,     0,    45,
    1975       46,     0,  1519,   634,     0,  1495,     0,  1497,  1519,   112,
    1976      212,  1145,  1146,   112,   469,   212,   228,     0,   233,  1519,
    1977        0,     0,     0,  1519,     0,     0,     0,     0,   348,   351,
    1978      495,     0,   213,   469,   907,    56,     0,     0,     0,     0,
    1979        0,   469,    37,     0,   182,   183,    40,     0,     0,  1526,
    1980        0,  1527,  1112,     0,     0,    41,    42,   410,     0,   689,
    1981      112,     0,   428,     0,  1534,  1535,  1193,  1194,     0,     0,
    1982        0,     0,   351,   351,   213,     0,     0,   703,     0,    66,
    1983      907,   890,     0,   408,     0,     0,     0,   428,   351,    45,
    1984       46,   428,     8,     9,    10,    11,    12,   112,     0,     0,
    1985      212,     0,     0,     0,   228,     0,   351,     0,     0,     0,
    1986        0,    48,  1119,     0,   571,     0,    48,    74,     0,     0,
    1987      348,    31,   575,     0,    37,   578,   173,   174,    40,     0,
    1988       77,     0,     0,    48,     0,   213,     0,    41,    42,     0,
    1989        0,     0,     0,    74,   214,     0,   351,     0,     0,    34,
    1990        0,     0,     0,     0,    37,     0,     0,   112,    40,     0,
    1991     1009,     0,    77,   373,     0,   783,     0,    41,    42,     0,
    1992        0,     0,  1112,   213,  1112,  1112,     0,     0,   213,     0,
    1993      212,   351,   620,   794,     0,   410,     0,     0,     0,   418,
    1994        0,     0,     0,    43,   811,     0,   212,     0,     0,   222,
    1995      694,    45,    46,     0,     0,     0,     0,     0,     0,   112,
    1996        0,     0,   587,     0,    79,     0,     0,   587,     0,     0,
    1997        0,   212,     0,   620,   351,     0,   348,   348,     0,     0,
    1998        0,     0,     0,     0,   351,     0,     0,     0,     0,   907,
    1999      221,   214,   348,     0,     0,   351,    79,     0,    37,  1319,
    2000      182,   183,    40,  1112,     0,     0,  1321,  1322,  1323,     0,
    2001      689,    41,    42,   213,     0,   410,     0,     0,     0,     0,
    2002        0,   469,     0,     0,     0,     0,     0,   112,     0,   112,
    2003      112,     0,     0,   223,     0,     0,   353,   184,     8,     9,
    2004       10,    11,    12,     0,     0,    45,    46,   469,   907,   907,
    2005      348,     0,     0,     0,     0,    74,     0,     0,     0,   922,
    2006     1112,  1112,   428,     0,     0,     0,     0,    31,     0,  1366,
    2007        8,     9,    10,    11,    12,     0,     0,   351,     0,     0,
    2008        0,     0,     0,     0,   351,   703,     0,     0,     0,   212,
    2009      952,     0,     0,   213,     0,    34,     0,     0,  1443,    31,
    2010       37,     0,   182,   183,    40,   571,   571,     0,   112,     0,
    2011        0,     0,     0,    41,    42,     0,     0,   212,     0,     0,
    2012      354,     0,   212,     0,     0,     0,     0,    34,   689,     0,
    2013       77,     0,    37,     0,   213,    77,    40,   175,   689,   184,
    2014      494,   620,     0,     0,   984,    41,    42,    45,    46,   689,
    2015        0,   694,     0,     0,     0,    48,    48,     0,  1493,   995,
    2016       37,     0,   182,   183,    40,   112,   112,  1501,    57,    57,
    2017        0,   709,     0,    41,    42,     0,     0,     0,     0,    45,
    2018       46,     0,     8,     9,    10,    11,    12,     0,   869,     0,
    2019        0,   212,   872,     0,   351,   351,     0,   351,   351,  1489,
    2020       57,   408,     0,   112,     0,   212,     0,    45,    46,    66,
    2021        0,    31,     0,     0,    79,    74,     0,     0,     0,    79,
    2022        0,     0,     0,     0,     0,     0,   495,     0,     0,   222,
    2023        0,   794,     0,     0,    57,     0,     0,    57,   703,    34,
    2024        0,  1064,     0,     0,    37,     0,   182,   183,    40,   351,
    2025      351,     0,   213,     0,     0,     0,   907,    41,    42,     0,
    2026        0,     0,    48,   112,     0,     0,     0,  1078,     0,   694,
    2027        0,     0,   112,   907,     0,     0,   428,   117,    86,   694,
    2028      213,     0,     0,   264,     0,   213,    48,    48,     0,     0,
    2029      694,    45,    46,     0,     0,    77,   212,     0,     0,     8,
    2030        9,    10,    11,    12,     0,     0,     0,     0,     0,   353,
    2031       86,    48,     0,   223,    77,     0,     0,     0,     0,     0,
    2032      351,     0,    77,   571,   346,     0,     0,     0,    31,     0,
    2033      587,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2034      353,     0,     0,   426,     0,   907,   907,   224,   689,   689,
    2035        0,   348,   348,     0,   213,     0,    34,     0,   353,     0,
    2036       77,    37,   221,   182,   183,    40,     0,     0,   213,  1166,
    2037        0,     0,     0,     0,    41,    42,     0,     0,    37,    79,
    2038      182,   183,    40,    74,     0,     0,     0,     0,    57,     0,
    2039        0,    41,    42,   354,     0,   351,     0,   351,    79,     0,
    2040      593,   353,   594,   689,   689,     0,    79,     0,    45,    46,
    2041        0,     0,     0,     0,     0,   523,     0,   264,    57,   524,
    2042      525,   526,     0,     0,   354,    45,    46,     0,     0,     0,
    2043        0,     0,   351,     0,   361,     0,   410,     0,     0,   351,
    2044      351,   351,   354,   527,    79,   528,     0,   529,  1285,     0,
    2045      351,   351,     0,     0,     0,     0,     0,     0,     0,   213,
    2046        0,     0,     0,    74,   353,     0,     0,     0,     0,     0,
    2047        0,     0,     0,     0,   703,     0,     0,     0,     0,     0,
    2048        0,     0,     0,     0,     0,   354,   212,     0,     0,   694,
    2049      694,   531,   532,   533,   534,   535,   536,   537,   538,   539,
    2050      540,   541,   351,     0,     0,     0,     0,   353,   353,     0,
    2051        0,  1122,     0,     0,     0,     0,  1263,     0,     0,     0,
    2052        0,     0,     0,   353,     0,   542,     0,  1133,    86,     0,
    2053        0,     0,     0,    86,     0,     0,     0,    66,     0,     0,
    2054        0,   353,     0,     0,   694,   694,     0,     0,   354,   689,
    2055        0,   703,    77,     0,     0,   117,     0,     0,     0,     0,
     1793      49,   113,   453,   149,   399,   267,   768,    97,   428,   400,
     1794     150,   401,   402,   505,   403,   151,   753,   114,   821,   404,
     1795     405,   829,   383,   384,   260,   966,   106,   106,   440,   846,
     1796     610,  1072,    49,   597,   166,   967,    50,   921,   828,    97,
     1797     357,   968,   741,   147,  1175,   975,   870,   796,   407,    49,
     1798    1383,  1141,   408,   726,   413,    76,   161,   731,   106,  1173,
     1799    1174,   421,   358,   186,   143,  1443,   209,   822,    50,    49,
     1800     193,    63,   202,   216,   342,   410,   226,   123,   820,    31,
     1801    1254,   152,   823,    69,   399,   219,   177,    76,   605,   400,
     1802     425,   401,   402,   153,   403,   106,    31,   817,   166,   404,
     1803     405,  1185,  1306,    63,   280,   113,   629,   471,  1255,   670,
     1804     633,   818,  1191,   113,    31,    69,   266,   271,  1199,   925,
     1805     154,   580,   203,   411,   832,   819,   142,  1071,   407,   679,
     1806     839,   327,   408,   413,   724,   261,  1443,   683,   262,  1181,
     1807      31,   950,  1201,   674,   676,   149,   307,   147,  1462,   475,
     1808     477,   411,   150,  1488,   161,   113,   345,   151,  1208,  1209,
     1809     209,   567,   281,   252,   329,  1182,   252,   373,   411,   409,
     1810     715,  1307,    56,   115,    70,  1203,   291,  1472,  1200,   110,
     1811     861,   862,   966,   915,   510,   186,   186,  1516,   577,  1518,
     1812      41,    42,   967,   161,   436,   568,   581,   879,   968,   584,
     1813     122,   266,  1202,  1182,    56,   953,    70,   548,   549,    49,
     1814     419,   730,   411,  1238,   476,   817,   161,  1242,   760,   668,
     1815    1204,   209,  1060,   152,   327,   149,   519,   721,   443,   818,
     1816     743,   821,   150,    31,  1249,   153,   735,   151,   210,   307,
     1817     212,   220,   144,   819,  1018,   548,  1082,   439,    31,   833,
     1818    1175,    49,  1530,   836,   493,   933,   436,   494,    97,   271,
     1819     589,  1017,   154,   413,   271,   266,   266,   421,   665,   471,
     1820     993,   113,   666,   161,   853,   146,  1143,   106,   856,  1545,
     1821     822,   548,    31,   463,   610,   657,   181,    50,  1447,   471,
     1822     342,  1005,   166,  1190,   307,   823,   800,   471,  -236,  -236,
     1823    1175,   483,   168,   481,   155,   411,    76,   307,   500,   597,
     1824     817,    76,   527,   672,   597,  1173,  1174,   357,   830,   677,
     1825     602,   476,    63,   572,   818,  1095,   169,   472,   147,   849,
     1826     599,  1086,   806,   850,    69,   373,   832,   447,   819,   358,
     1827    1079,   113,   665,   569,   413,   345,   666,   996,   171,   603,
     1828     621,   821,   837,   829,   602,   201,   460,   229,   673,   675,
     1829     230,   736,  1191,   234,   626,   236,   748,  -292,   626,  -236,
     1830    1072,   113,   245,   900,   855,   163,  1118,   177,  1402,  1403,
     1831     988,   737,  1447,  1402,  1403,   557,   558,  1447,   714,   247,
     1832     110,  1196,   110,   441,   630,   442,   266,   765,   634,  1134,
     1833     822,    41,    42,    41,    42,   286,   186,  1447,  1120,   846,
     1834     357,   327,   327,   373,  1447,   823,    41,    42,   851,  1175,
     1835     559,   560,   852,    56,   266,    70,   307,   307,  1121,   766,
     1836     266,  1336,   358,   626,   715,  1438,   577,   577,   519,   163,
     1837    1529,  1329,   514,   519,   342,  1427,   519,   583,  1404,   411,
     1838     770,   771,   772,  1413,   113,   250,  1432,  1433,  1205,  1428,
     1839    1540,  1330,   703,   252,  1128,   377,  1071,  1544,  1334,   954,
     1840    1337,  1339,   266,    76,   110,   357,   139,   140,  -520,   327,
     1841     266,   378,   626,   -10,    49,    41,    42,   373,   720,   472,
     1842     578,    97,  1021,    76,   113,  -444,   579,   358,   327,   229,
     1843     789,    76,   871,   884,  1106,   411,   307,   610,   113,   472,
     1844     106,   307,  1139,   307,   307,  1191,   243,   472,   263,  1018,
     1845      50,   751,  1191,   885,   212,   113,   345,   888,  1248,   110,
     1846    1161,  1163,   872,   471,   643,   435,  1134,   553,   554,    76,
     1847      41,    42,  1240,  1366,   881,   883,   110,   998,   139,   238,
     1848     912,   873,   806,   712,   914,    63,   851,    41,    42,   930,
     1849    1102,  1060,   387,  1473,   327,  1016,   498,    69,  1338,   390,
     1850     392,   572,   572,  1191,  -471,   684,  -471,  1474,   388,   307,
     1851    -445,   579,  1128,   239,  1103,   391,   393,   915,   240,   276,
     1852     626,   345,   394,  -471,   715,   621,  1500,   435,   252,   329,
     1853     411,   603,  1505,   603,  1280,  1281,   847,   110,   395,   139,
     1854     140,   599,     2,   206,     4,     5,     6,     7,    41,    42,
     1855     523,   626,  1525,  -124,   550,  -124,   626,  1532,   621,  -124,
     1856     551,   552,   626,   163,   278,   626,   626,   626,    37,   229,
     1857     806,   234,    40,   916,  -124,  -124,   866,   212,   279,    41,
     1858      42,   848,   714,   626,  1376,   266,    56,   974,    70,   917,
     1859     577,    48,   112,  1089,   342,  1089,   918,   863,   330,   703,
     1860     916,   918,  1029,   331,   808,    43,  -106,    35,  1016,    36,
     1861    -106,   878,   919,    45,    46,   113,  1083,  1084,   909,   597,
     1862     112,   112,  1076,    48,   372,   357,  1478,   332,  1188,  1364,
     1863    1188,   705,   333,  1478,    48,  1320,  1401,   706,  1114,  1409,
     1864      48,   626,   935,   621,  1189,   334,  1312,   358,    48,   720,
     1865     720,  1321,  1322,  1036,    48,   335,   399,    48,   376,   229,
     1866      48,   400,   748,   401,   402,  1352,   403,    76,  1323,  1353,
     1867      -3,   404,   405,   112,   112,   113,   345,   110,  1367,   141,
     1868     751,   751,  1446,   472,  1526,   722,   371,  1450,    41,    42,
     1869     389,   723,   500,    76,   528,   529,   530,    48,   555,   556,
     1870      48,   407,   385,  1412,   571,   408,   411,    48,   413,   472,
     1871     692,  1377,    45,    46,   966,  1471,   561,   562,   531,   703,
     1872     532,   397,   533,   534,   967,   572,   426,   442,   732,   703,
     1873     968,   241,   244,   626,   733,   626,   409,  1001,    48,  1429,
     1874     626,   345,   714,   703,   603,   427,    48,   712,  1165,   432,
     1875     750,    48,   411,   450,   342,  1440,   603,  -368,    45,    46,
     1876     986,   983,   523,   110,   523,   139,   140,   523,   715,  -397,
     1877     523,   419,   661,   411,    41,    42,    48,    48,    37,   954,
     1878     174,   175,    40,   954,   954,  1146,  1480,   484,  1481,    41,
     1879      42,   747,    48,   738,   504,   739,   806,   748,   740,  1539,
     1880      48,   744,  1158,   212,   894,  1539,   307,   329,   411,    48,
     1881     748,   110,    48,   139,   140,   372,  1539,   212,   461,   112,
     1882    1539,  1186,    41,    42,   808,  1498,  1440,   887,   626,   411,
     1883     462,   548,   106,   110,   112,   113,   345,   909,   112,   909,
     1884    1134,  1527,    48,   112,    41,    42,   896,   715,   727,  1373,
     1885    1374,   113,   748,   728,  1402,  1403,    48,    48,  1172,   291,
     1886     327,    76,   982,    48,   935,   935,   525,   995,   983,   720,
     1887      48,   508,   510,   706,   113,   307,  1236,    63,   513,   665,
     1888     413,  1360,   579,   666,   912,  1422,   983,   748,   914,    69,
     1889    1107,   129,   457,   130,   131,   132,   934,   116,   602,   751,
     1890     106,  1327,    41,    42,    45,    46,  1361,   712,  1363,   564,
     1891    1512,   212,   748,   527,   748,  -293,   847,   773,   774,    48,
     1892    1246,  1368,     8,     9,    10,    11,    12,   748,  1231,   781,
     1893     782,   345,     8,     9,    10,    11,    12,  1430,  1448,    48,
     1894      48,   692,   563,  1427,   748,   159,   565,   703,   703,  1494,
     1895     498,    31,   626,   626,   566,  1495,    48,   775,   776,  1128,
     1896      48,    31,     8,     9,    10,    11,    12,  1550,   481,   329,
     1897     411,   644,   307,   579,  -294,   830,   329,   602,    56,    34,
     1898      70,     8,     9,    10,    11,    12,   714,    48,  1384,    34,
     1899     338,    31,  1384,   777,   778,   779,   780,    48,   106,   569,
     1900    -441,   258,  1299,  1300,  1301,   703,   703,   587,   667,   159,
     1901      31,  1145,   113,   411,  1157,    48,   411,   909,  1160,    34,
     1902     602,    48,   909,    48,    37,   590,    -3,    76,    40,   645,
     1903    1162,   935,   602,   658,   659,    41,    42,   639,    34,   266,
     1904     660,    37,   323,   472,   662,    40,  1108,   663,   664,    57,
     1905      57,   339,    41,    42,   626,  1193,  1288,  1289,   112,  1291,
     1906     342,    43,  1245,    48,   411,   257,  1296,    96,  1298,    45,
     1907      46,    48,   669,   693,   694,    48,   696,   698,   719,    48,
     1908     345,    57,   112,   749,   112,   734,    45,    46,  -240,  1463,
     1909     745,     2,   206,     4,     5,     6,     7,   757,   809,    96,
     1910      37,   430,   174,   175,    40,   434,   810,   813,   442,   824,
     1911     148,    41,    42,   -12,  1355,    57,    96,   869,    57,   112,
     1912     228,   -13,   271,   113,   112,   875,   868,   895,   897,   111,
     1913     189,   898,  -418,    96,   902,   323,    96,   376,   905,   219,
     1914     725,   113,   729,   723,    56,   307,    70,   923,  -524,   106,
     1915      37,   712,   174,   175,    40,  1316,    35,   938,    36,   626,
     1916     945,    41,    42,   113,   947,   951,   952,   434,   958,   959,
     1917     488,   106,   960,   961,   112,  -295,   962,   692,   963,  1107,
     1918     979,    48,     8,     9,    10,    11,    12,   703,  1038,   106,
     1919     521,   990,    48,   991,    48,   703,   703,   703,   992,  1007,
     1920      76,  1425,  1008,   159,  1009,   348,  1073,  1010,   626,   626,
     1921    1011,    31,  1538,    48,    96,  1012,    63,   271,  1013,  1024,
     1922    -406,  -405,   307,   908,  1408,  1096,  1075,    96,    69,    48,
     1923     712,  1098,  1097,  1099,   112,  1105,  1115,   588,   748,    34,
     1924    1116,   594,  1117,    48,  1119,   112,    48,   112,   106,  1122,
     1925     973,  1124,   398,   189,  1125,   113,  1126,  1127,   399,   703,
     1926     627,  1130,  1133,   400,   631,   401,   402,   339,   403,  1155,
     1927      57,  1107,  1176,   404,   405,  1178,    96,    76,  1177,    48,
     1928    1179,   106,  1194,   112,  1195,   112,  1180,  1197,    96,   112,
     1929    1198,  1206,   867,   472,   210,   220,   212,   112,  1210,  1211,
     1930      57,  1213,   407,    -3,  1511,  1193,   408,   704,  1218,  1223,
     1931      48,    48,   266,  1228,   493,  1226,  1232,    56,    96,    70,
     1932    1237,  1239,   323,   323,    48,    37,   665,  1241,   626,    40,
     1933     666,   162,   479,  1244,  1250,  1108,    41,    42,   692,  1256,
     1934    1424,   920,  1252,   922,  1258,   194,  1260,   457,   217,  1261,
     1935     688,   227,  1262,   113,  1263,  1264,  1266,  1273,  1290,  1282,
     1936    1283,  1293,   814,   116,   602,  1294,  1311,  1295,  1318,  1107,
     1937      45,    46,  1324,  1297,  1328,   113,  1305,  1332,  1333,   106,
     1938     465,  1335,   113,  1340,   113,  1326,   113,  1342,   488,   441,
     1939     323,   442,   488,  1348,    56,    96,    70,  1349,  1350,   149,
     1940    1351,   106,   521,  1358,   521,    48,   150,   521,   106,   323,
     1941     521,   151,  1359,  1362,  1369,  1510,   604,    48,  1370,  1301,
     1942     113,   339,   113,  1378,  1379,  1386,  1380,  1108,  1387,   162,
     1943      76,  1396,  1397,   113,   327,  -407,  1400,    76,  1411,  1510,
     1944    1510,  1415,   374,  1417,  1419,  1420,   472,   161,  1426,   307,
     1945     176,  1434,  1435,   472,   173,  1421,  1436,  1439,  1193,   106,
     1946     644,  1437,    66,   117,  1510,  1193,   112,  1444,   162,  1353,
     1947     893,   373,  1449,   189,  1453,   323,     2,   206,     4,     5,
     1948       6,     7,   348,  1455,  1451,  1457,   804,  1459,    76,    48,
     1949    1461,   162,  1466,  1467,    66,  1468,   253,  1479,    48,   176,
     1950      48,  1493,   176,   444,   472,  1489,  1491,   112,   528,   529,
     1951     530,   160,  1496,  1497,   704,  1504,  1193,   845,   645,  1519,
     1952    1520,  1524,   594,  1531,  1041,  1108,  1533,  1535,   854,  1541,
     1953      48,   221,   531,    57,   532,  1548,   533,  1309,  1549,   890,
     1954    1212,    35,   783,    36,   784,  1132,   785,    56,   176,    70,
     1955     112,    96,   787,  1310,    56,   604,    70,    37,   786,   183,
     1956     184,    40,  1499,  1414,   644,  1091,  1551,   259,    41,    42,
     1957    1243,  1388,   112,  1372,  1217,   348,   112,   903,  1482,   904,
     1958    1090,   688,  1225,   926,  1129,   215,  1094,   802,  1037,   874,
     1959     989,  1104,   417,   940,   601,   111,   602,   717,  1319,     0,
     1960     994,   242,    45,    46,   948,    56,     0,    70,   792,   328,
     1961     374,   176,   793,     0,  1006,   437,   794,   259,   350,   488,
     1962       0,     0,   645,     0,     0,   445,   112,     0,     0,     0,
     1963       0,     0,     0,     0,   704,     0,   215,     0,     0,     0,
     1964     348,   339,     0,     0,   704,     0,     0,     0,   406,     0,
     1965       0,     0,     0,     0,     0,     0,   761,     0,   704,     0,
     1966       0,   767,     0,   424,   112,   176,   429,   431,   816,     0,
     1967     604,   160,   176,     0,     0,     0,     0,     0,    48,   215,
     1968       0,     0,     0,    48,   348,   348,   348,     0,   374,     0,
     1969       0,     0,   448,   520,     0,     0,   451,     0,   452,     0,
     1970      48,   997,   348,     0,     0,     0,   804,   459,     0,     0,
     1971    1486,   465,  1486,    66,     0,     0,     0,     0,   473,     0,
     1972     924,     0,  1041,     0,     0,     0,     0,     0,   480,     0,
     1973       0,    37,     0,   183,   184,    40,   431,     0,     0,     0,
     1974     215,   176,    41,    42,     0,     0,  1486,     0,  1486,     0,
     1975       0,     0,     0,     0,     0,   913,     0,     0,   176,     0,
     1976     348,     0,   176,     0,     0,     0,    74,     0,   907,     0,
     1977     411,     8,     9,    10,    11,    12,    45,    46,   215,   112,
     1978       0,     0,   880,   215,   882,     0,   816,   604,     0,   908,
     1979       0,     0,     0,     0,   804,     0,     0,     0,    74,     0,
     1980      31,   339,    48,   259,     0,     0,     0,   595,     0,     0,
     1981       0,     0,   987,   623,     0,     0,     0,   688,  1170,  1171,
     1982       0,     0,     0,     0,     0,   176,   628,     0,    34,     0,
     1983     628,     0,     0,   259,   929,   222,     0,  1286,     0,   488,
     1984    1109,   323,   681,   112,     0,   112,   112,     0,     0,     0,
     1985       0,     0,   348,     0,     8,     9,    10,    11,    12,     0,
     1986     348,     0,   704,   704,     0,     0,     0,     0,   707,   215,
     1987     571,     0,   411,     0,     0,     0,  1220,  1221,    45,    46,
     1988     473,   816,     0,    31,     0,     0,     0,     0,     0,  1031,
     1989       0,     0,     0,   604,     0,   350,     0,   845,     0,     0,
     1990     473,     0,     0,     0,     0,   520,     0,     0,   473,     0,
     1991     520,    34,     0,   520,     0,     0,     0,     0,     0,     0,
     1992     704,   704,   353,     0,     0,    57,   699,     0,     0,   431,
     1993       0,     0,   924,     0,     8,     9,    10,    11,    12,     0,
     1994       0,     0,     0,     0,   713,     0,    66,     0,     0,     0,
     1995     215,     0,     0,   750,   431,   411,     0,     0,   431,     0,
     1996       0,    45,    46,    31,     0,     0,     0,     0,     0,     0,
     1997       0,     0,    48,    48,  1085,     0,   913,   924,   688,     0,
     1998       0,   112,   112,   176,     0,     0,     0,   259,   350,     0,
     1999       0,    34,   215,    57,     0,     0,   449,     0,     0,     0,
     2000       0,     0,     0,     0,     0,     0,   604,     0,     0,     0,
     2001       0,     0,  1142,     0,     0,   176,     0,    74,     0,   112,
     2002     804,     0,    74,     0,     0,     0,     0,    77,     0,     0,
     2003       0,   176,     0,   934,   795,   602,     0,     0,     0,     0,
     2004       0,    45,    46,     0,    37,   176,   183,   184,    40,     0,
     2005       0,     0,   628,   807,     0,    41,    42,     0,  1341,    77,
     2006       0,     0,     0,  1031,     0,   826,  1343,  1344,  1345,   892,
     2007    1317,   348,   348,     0,     0,     0,    48,   112,   899,     0,
     2008       0,   185,   901,   595,     0,     0,   112,  1123,   595,    45,
     2009      46,    57,     0,     0,   628,     0,   223,   350,   350,   350,
     2010      48,    48,   704,     0,     0,     0,     0,   339,     0,  1135,
     2011     704,   704,   704,  1135,   215,   350,    37,   222,   183,   184,
     2012      40,     0,     0,     0,     0,    48,   176,    41,    42,  1109,
     2013    1389,     0,     0,   699,     0,     0,     8,     9,    10,    11,
     2014      12,     0,   215,   924,   473,     0,     0,   215,     0,     0,
     2015       0,     0,     0,   907,   913,   411,     0,     0,     0,   913,
     2016       0,    45,    46,  1135,     0,    31,     0,     0,     0,     0,
     2017     473,     0,     0,   350,   704,     0,     0,   214,     0,     0,
     2018       0,     0,   939,   355,    74,   431,     0,     0,     0,     0,
     2019       0,     0,     0,    34,     0,     0,     0,     0,    37,   353,
     2020     183,   184,    40,     0,    74,   924,   924,   259,   713,    41,
     2021      42,     0,    74,   969,     0,     0,     0,     0,   215,     0,
     2022       0,  1109,     0,     0,     0,     0,     0,     0,   214,     0,
     2023     353,     0,   215,     0,     0,   601,     0,   602,     0,     0,
     2024       0,    57,    57,    45,    46,     0,     0,     0,   353,     0,
     2025      74,     0,     0,   699,     0,     0,     0,     0,     0,     0,
     2026       0,     0,     0,   699,    57,   350,     0,   628,     0,     0,
     2027    1004,   214,   628,   807,     0,     0,     0,   699,    77,     0,
     2028       0,     0,    57,    77,     0,     0,     0,  1015,     0,     0,
     2029       0,   176,   353,     0,     0,     0,     0,     0,     0,  1081,
     2030       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2031      17,    18,    19,    20,    21,    22,    23,    24,    25,  1109,
     2032       0,    26,    27,    28,     0,     0,   215,   348,   348,     0,
     2033      31,    79,   214,     0,     0,     0,    57,     0,    66,     0,
     2034       0,    57,     0,     0,    37,     0,   183,   184,    40,     0,
     2035    1485,     0,  1485,     0,     0,    41,    42,   353,    34,     0,
     2036     628,     0,     0,    79,     0,   207,    39,   259,   713,     0,
     2037     214,  1087,     0,     0,    57,   214,     0,     0,   223,     0,
     2038    1135,   265,  1135,  1135,     0,     0,  1485,     0,  1485,    45,
     2039      46,     0,     0,     0,     0,     0,     0,  1101,     0,     0,
     2040     224,   353,   353,   353,     0,   431,   117,     0,    45,    46,
     2041     924,     0,     0,     0,     0,   323,     0,     0,     0,   353,
     2042       0,     0,     0,     0,     0,     0,   924,     0,     0,     0,
     2043       0,     0,     0,     0,     0,     0,     0,   353,     0,     0,
     2044       0,     0,     0,     0,     0,    77,     0,   348,    74,     0,
     2045       0,     0,  1207,     0,     0,     0,     0,     0,     0,     0,
     2046     355,   214,     0,   595,     0,    77,     0,     0,     0,     0,
     2047       0,     0,    57,    77,    74,     0,   429,   353,     0,     0,
     2048       0,   699,   699,     0,   350,   350,     0,   356,     0,     0,
     2049       0,   355,     0,     0,    57,     0,   924,   924,     0,     0,
     2050       0,    57,     0,     0,  1192,     0,     0,     0,     0,   355,
     2051       0,    77,   353,     0,     0,     0,     0,     0,  1135,  1135,
     2052       0,     0,     0,   215,     0,     0,     8,     9,    10,    11,
     2053      12,     0,     8,     9,    10,    11,    12,     0,     0,   699,
     2054     699,     0,   214,     0,     0,     0,     0,     0,     0,     0,
     2055       0,     0,    57,   355,     0,    31,  1464,   353,     0,     0,
     2056       0,    31,     0,     0,     0,     0,     0,   353,     0,   353,
     2057       0,     0,     0,     0,   222,     0,   479,   353,     0,     0,
     2058       0,   353,    79,    34,   214,     0,   628,    79,    37,    34,
     2059     183,   184,    40,     0,    37,     0,   183,   184,    40,    41,
     2060      42,     0,     0,     0,   176,    41,    42,     0,     0,     0,
     2061       0,     0,   713,     0,  1513,     0,     0,     0,   355,     0,
     2062       0,     0,     0,  1521,     0,   907,     0,   411,     0,     0,
     2063       0,   185,     0,    45,    46,     0,     0,     0,     0,    45,
     2064      46,     0,    74,     0,     0,     0,     0,    37,     0,   183,
     2065     184,    40,     0,     0,     0,  1287,     0,     0,    41,    42,
     2066       0,     0,   355,   355,   355,     0,     0,     0,     0,     0,
     2067       0,     0,   353,   259,     0,     0,     0,    66,     0,     0,
     2068     355,     0,   224,     0,  1509,     0,   411,     0,     0,   699,
     2069       0,   713,    45,    46,     0,   117,   213,     0,   355,     0,
     2070    1371,     0,     0,     0,     0,   232,   214,     0,     0,    77,
     2071       0,   215,     0,     0,     0,     0,     0,     0,     0,     0,
     2072       0,   699,     0,     0,     0,     0,     0,     0,     0,   699,
     2073     699,   699,     0,     0,   214,    77,     0,     0,   355,   214,
     2074     350,   350,     0,     0,     0,     0,     0,   213,    86,    79,
     2075       0,     0,     0,     0,  1192,     0,     0,     0,     0,     0,
     2076       0,     0,     0,     0,   356,     0,     0,     0,     0,    79,
     2077       0,     0,     0,   355,   176,     0,     0,    79,     0,     0,
     2078      86,     0,     0,     0,     0,   353,   353,   117,   353,   353,
     2079     213,     0,     0,   699,     0,   356,     0,     0,     0,     0,
     2080       0,     0,     0,     0,     0,     0,   215,     0,    74,     0,
     2081     214,     0,     0,   356,     0,    79,     0,   225,   355,     0,
     2082       0,     0,     0,     0,   214,     0,     0,     0,   355,     0,
     2083     355,     0,     0,     0,     0,   223,     0,     0,   355,     0,
     2084       0,     0,   355,   353,   353,     0,     0,     0,     0,     0,
     2085       0,   213,  1483,     0,  1487,     0,     0,   356,     0,     0,
     2086     350,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     2087     167,     0,   172,     0,     0,   178,   179,   180,     0,   182,
     2088       0,     0,     0,     0,     0,   117,     0,     0,  1515,   213,
     2089    1517,    31,     0,   233,   213,     0,     0,     0,     0,     0,
     2090       0,     0,     0,    77,   363,   248,   249,  1192,     0,   499,
     2091       0,     0,     0,     0,  1192,     0,   353,     0,   214,    34,
     2092       0,     0,   356,     0,    37,     0,   183,   184,    40,     0,
     2093       0,     0,  1546,   355,  1547,    41,    42,     0,     0,     0,
     2094       0,     0,     0,     0,     0,     0,     0,  1554,  1555,     0,
     2095       0,     0,     0,     0,     0,     0,     0,     0,     0,   222,
     2096       0,  1509,     0,   411,     0,  1192,   356,   356,   356,    45,
     2097      46,     0,  1534,     0,     0,     0,     0,     0,     0,     0,
     2098     213,    74,     0,     0,   356,     0,     0,     0,     0,     0,
     2099       0,     0,     0,   353,     0,   353,     0,     0,     0,    86,
     2100       0,     0,   356,     0,    86,     0,     0,     0,     0,     0,
     2101       0,     0,     0,    79,     0,     0,     0,     0,     0,     8,
     2102       9,    10,    11,    12,     0,   353,     0,     0,     0,     0,
     2103       0,     0,     0,   353,   353,   353,     0,     0,     0,    79,
     2104       0,     0,   356,     0,   353,   353,   355,   355,    31,   355,
     2105     355,     0,     0,     0,     0,     0,     0,     0,    74,     0,
     2106       0,   213,     0,     0,     0,     0,     0,     0,     0,    77,
     2107       0,     0,     0,     0,     0,     0,    34,   356,   213,     0,
     2108       0,    37,     0,   183,   184,    40,     0,     0,     0,     0,
     2109       0,     0,    41,    42,     0,     0,     0,   353,     0,   225,
     2110       0,     0,     0,   213,   355,   355,   124,   127,   128,     0,
     2111       0,     0,     0,     0,     0,   214,     0,     0,   265,     0,
     2112       0,     0,   356,     0,     0,     0,    45,    46,     0,     0,
     2113       0,     0,   356,     0,   356,     0,     0,     0,     0,   224,
     2114       0,     0,   356,     0,     0,     0,   356,     0,   535,   536,
     2115     537,   538,   539,   540,   541,   542,   543,   544,   545,     0,
     2116       0,   592,     0,   600,   353,     0,    86,     0,     0,     0,
     2117       0,     0,     0,     0,   624,   625,     0,   355,   254,     0,
     2118     255,   363,   546,     0,     0,     0,    86,     0,     0,     0,
     2119       0,     0,     0,     0,    86,     0,     0,     0,     0,     0,
     2120       0,     0,     0,     0,     0,     0,     0,    79,     0,     0,
     2121       0,    74,   363,     0,     0,     0,     0,     0,    74,     0,
     2122     223,     0,     0,     0,     0,   213,     0,     0,     0,     0,
     2123     363,     0,    86,     0,     0,     0,     0,   356,     0,     0,
     2124       0,     0,    77,     0,     0,     0,     0,     0,     0,     0,
     2125       0,     0,     0,   213,   355,     0,   355,     0,   213,     0,
     2126       0,   396,     0,     0,     0,     0,     0,     0,     0,    74,
     2127       0,   415,   416,     0,   363,     0,   420,     0,   422,   423,
     2128       0,     0,     0,     0,     0,     0,   355,     0,     0,     0,
     2129       0,     0,     0,     0,   355,   355,   355,     0,     0,     0,
     2130       0,     0,     0,   214,     0,   355,   355,     0,     0,     0,
     2131       0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
     2132       0,     0,     0,     0,     0,     0,     0,     0,     0,   213,
     2133       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
     2134       0,     0,     0,   213,     0,     0,     0,     0,     0,     0,
     2135     356,   356,     0,   356,   356,     0,     0,     0,   355,     0,
     2136       0,     0,     0,   499,     0,     0,     0,     0,     0,     0,
     2137       0,     0,     0,    79,  1014,     0,     0,     8,     9,    10,
     2138      11,    12,     0,   363,   363,   363,     0,     0,     0,     0,
     2139       0,     0,     0,     0,     0,     0,     0,     0,   214,     0,
     2140       0,   363,     0,     0,   282,   283,    31,   284,   356,   356,
     2141       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
     2142       0,     0,     0,     0,     0,   355,     0,     0,     0,     0,
     2143      86,     0,     0,   285,    34,     0,     0,   213,     0,   286,
     2144       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
     2145      41,    42,     0,   292,   293,     0,    86,     0,     0,   363,
     2146       0,     0,     0,     8,     9,    10,    11,    12,     0,     0,
     2147       0,     0,    77,     0,     0,     0,   294,     0,   379,    77,
     2148       0,   356,     0,     0,   344,    46,   296,   297,   298,   299,
     2149       0,     0,    31,     0,   363,     0,     0,     0,     0,     0,
    20562150       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2057        0,   351,     0,     0,     0,     0,     0,     0,    77,     0,
    2058        0,   353,     0,     0,     0,     0,   689,     0,     0,     0,
    2059        0,   354,   354,   689,   689,   689,     0,   346,     0,     0,
    2060        0,     0,   410,     0,   348,   348,     0,   354,     0,     0,
    2061        0,     0,     0,     0,     0,     0,   353,  1166,     0,    74,
    2062        0,     0,     0,     0,     0,   354,    74,   224,   166,     0,
    2063      171,     0,     0,   177,   178,   179,    79,   181,     0,     0,
    2064        0,  1219,     0,     0,     0,     0,     0,     0,    57,   213,
    2065      117,   232,     0,     0,     0,     0,   689,     0,     0,   353,
    2066        0,     0,    79,   247,   248,   354,     0,     0,   212,   353,
    2067        0,     0,     0,     0,     0,   222,     0,     0,    74,     0,
    2068      353,     0,     0,     0,     0,     0,     0,     0,     0,   346,
    2069     1293,     0,     0,    86,     0,     0,     0,     0,     0,     0,
    2070      354,     0,     0,     0,     0,     0,     0,   361,     0,     0,
    2071        0,     0,    86,     0,     0,     0,     0,     0,     0,     0,
    2072       86,     0,     0,     0,     0,   348,     0,   694,     0,     0,
    2073        0,     0,     0,     0,   694,   694,   694,     0,   361,     0,
    2074       77,     0,     0,   354,     0,     0,     0,     0,     0,     0,
    2075      117,     0,   346,   354,     0,     0,   361,     0,    86,   223,
    2076        0,     0,   353,     0,   354,   212,     0,     0,     0,   353,
    2077        0,     0,     0,  1166,     0,     0,     0,     0,     0,     0,
    2078     1166,     0,   994,     0,     0,     8,     9,    10,    11,    12,
    2079        0,     0,     0,     0,     0,   346,   346,   694,     0,   361,
     2151       0,     0,     0,     0,     0,     0,     0,   927,     0,   928,
     2152      34,     0,     0,     0,   224,    37,   931,   932,     0,    40,
     2153      77,   937,     0,     0,     0,     0,    41,    42,     0,   363,
     2154       0,     0,     0,   942,     0,     0,    79,     0,   946,   363,
     2155       0,   363,     0,     0,     0,     0,   225,     0,   356,   363,
     2156     356,     0,   719,   363,     0,     0,     0,     0,     0,     0,
     2157      45,    46,     0,     0,     0,     0,   980,     0,     0,     0,
    20802158       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2081        0,   346,   281,   282,    31,   283,     0,     0,     0,     0,
    2082        0,     0,     0,     0,    79,     0,     0,     0,     0,     0,
    2083        0,   213,  1166,     0,     0,     0,     0,     0,     0,  1514,
    2084        0,   284,    34,     0,     0,     0,   354,   285,     0,     0,
    2085        0,   286,     0,   354,   287,   288,   289,   290,   291,   292,
    2086       41,    42,   361,   293,   294,     0,     0,     0,     0,   346,
    2087        0,     0,     0,     0,     0,     0,     0,     0,     0,   353,
    2088      353,     0,   353,   353,     0,     0,   295,     0,   376,     0,
    2089        0,     0,     0,     0,   342,    46,   297,   298,   299,   300,
    2090       77,     0,     0,     0,     0,   361,   361,     0,     0,     0,
    2091        0,     0,     0,     0,     0,     0,     0,   585,     0,   592,
    2092        0,   361,     0,     8,     9,    10,    11,    12,   213,     0,
    2093      616,   617,     0,     0,   353,   353,     0,     0,     0,   361,
    2094        0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
    2095       86,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2096        0,     0,     0,   354,   354,     0,   354,   354,     0,     0,
    2097        0,     0,     0,     0,    31,     0,    86,     0,     0,   361,
    2098       34,     0,     0,     0,    79,    37,     0,   182,   183,    40,
    2099        0,     0,     0,     0,     0,     0,     0,     0,    41,    42,
    2100        0,     0,    34,     0,     0,   353,     0,    37,     0,   182,
    2101      183,    40,     0,     0,   361,     0,     0,     0,   354,   354,
    2102       41,    42,     0,     0,   890,     0,   408,     0,    57,     0,
    2103        0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
    2104        0,     0,     0,     0,     0,     0,  1489,   222,   408,     0,
    2105      346,     0,     0,     0,    45,    46,     0,   361,   281,   282,
    2106        0,   283,     0,     0,     0,     0,     0,   361,    77,     0,
    2107        0,     0,     0,   224,     0,     0,     0,     0,   361,     0,
    2108      353,     0,   353,     0,     0,     0,     0,   284,     0,   354,
    2109        0,     0,     0,   285,     0,     0,    57,   286,     0,     0,
    2110      287,   288,   289,   290,   291,   292,    41,    42,     0,   293,
    2111      294,     0,     0,     0,     0,     0,     0,   353,     0,     0,
    2112        0,     0,     0,     0,   353,   353,   353,     0,     0,     0,
    2113        0,   223,   295,     0,   376,   353,   353,     0,    86,     0,
    2114       45,    46,   297,   298,   299,   300,     0,     0,    77,     0,
    2115        0,     0,    79,   777,     0,     0,     0,     0,     0,     0,
    2116      361,     0,     0,     0,   354,     0,   354,   361,     0,     0,
    2117      346,   346,     0,     0,     0,     0,     0,     0,     0,     0,
    2118        0,     0,     0,     0,     0,     0,     0,   353,    57,     0,
    2119        0,     0,     0,     0,   210,     0,     0,     0,     0,     0,
    2120        0,   354,     0,   230,     0,   234,     0,   236,   354,   354,
    2121      354,     0,     0,     0,   245,     0,     0,     0,     0,   354,
    2122      354,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2123        0,     0,    79,     0,     0,     0,     0,     0,     0,     0,
    2124        0,     0,     0,     0,     0,   210,     0,   234,   236,   245,
    2125        0,     0,     0,     0,     0,     0,   353,     0,     0,     0,
    2126        0,     0,     0,     0,     0,   910,     0,   911,     0,     0,
    2127        0,   354,     0,     0,   914,   915,     0,   361,   361,   920,
    2128      361,   361,     0,     0,     0,     0,     0,   210,     0,     0,
    2129        0,     0,   926,     0,     0,     0,     0,   930,    86,     0,
    2130        0,     0,     0,     0,    77,     0,     0,     0,     0,     0,
    2131        0,    77,     0,     0,     0,     0,     0,     0,     0,     0,
    2132        0,     0,     0,     0,   592,     0,     0,     0,     0,     0,
    2133        0,     0,   361,   361,    57,    57,     0,     0,     0,     0,
    2134      354,     0,     0,     0,     0,     0,     0,     0,   210,     0,
    2135      234,   236,   245,     0,     0,     0,    57,     0,     0,     0,
    2136        0,     0,     0,    77,     0,     0,     0,     0,     0,     0,
    2137        0,     0,     0,     0,    57,     0,     0,     0,     0,     0,
    2138        0,     0,     0,     0,     0,     0,   210,     0,    79,     0,
    2139        0,   210,     0,     0,     0,    79,     0,     0,     0,     0,
    2140        0,     0,     0,   361,     0,     0,   493,     0,     0,     0,
    2141        0,     0,     0,     0,     0,     0,     0,  1004,     0,  1005,
    2142     1006,  1007,     0,   346,   346,     0,     0,     0,     0,     0,
    2143        0,    57,   164,     0,     0,     0,    57,     0,  1051,     0,
    2144        0,     0,     0,     0,     0,   224,     0,    79,     0,   217,
    2145        0,     0,  1057,     0,     0,     0,     0,   210,     0,     0,
    2146        0,     0,     0,     0,     0,     0,    86,     0,     0,    57,
    2147        0,     0,     0,     0,     0,     0,   210,     0,   361,     0,
    2148      361,   234,   236,     0,     0,     0,     0,     0,     0,   245,
    2149        0,  1077,     0,     0,     0,     0,   164,     0,     0,     0,
    2150      271,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2151        0,     0,     0,     0,     0,   361,     0,     0,     0,     0,
    2152        0,     0,   361,   361,   361,     0,     0,     0,     0,   164,
    2153        0,   210,     0,   361,   361,  1107,     0,     0,     0,   367,
    2154     1117,     0,   372,     0,   346,  1120,    86,     0,     0,   210,
    2155     1124,     0,     0,     0,   210,  1126,   210,  1127,  1128,     0,
    2156        0,  1131,     0,     0,     0,     0,     0,     0,     0,    57,
    2157     1143,     0,   210,     0,     0,   210,   210,     0,     0,     0,
    2158        0,     0,     0,   210,     0,   361,  1157,  1158,     0,     0,
    2159        0,   164,    57,     0,     0,     0,     0,   210,     0,    57,
    2160        0,     0,     0,   217,   210,     0,     0,     0,     0,     0,
    2161        0,     0,  1187,     0,     0,  1189,     0,     0,     0,     0,
    2162        0,   164,     0,     0,     0,   124,   127,   128,     8,     9,
    2163       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2164       20,    21,    22,    23,    24,    25,   372,     0,     0,     0,
    2165        0,    57,     0,   164,   361,     0,     0,    31,  1203,     0,
    2166        0,     0,     0,     0,  1207,  1208,     0,     0,     0,     0,
    2167        0,     0,     0,     0,     0,     0,     0,     0,   520,     0,
    2168        0,     0,     0,  1224,     0,    34,     0,     0,  1231,     0,
    2169        0,   164,     0,  1235,     0,     0,     0,   253,     0,   254,
    2170        0,     0,    86,     0,  1242,     0,     0,     0,     0,    86,
    2171        0,     0,     0,     0,     0,   210,     0,  1249,     0,  1251,
    2172     1252,  1253,  1254,     0,     0,     0,   590,     0,     0,     0,
    2173        0,   614,     0,     0,  1261,     0,  1157,     0,     0,     0,
    2174      171,     0,     0,   210,     0,     0,     0,     0,   210,     0,
     2159     356,     0,     0,     0,     0,     0,     0,     0,   356,   356,
     2160     356,     0,     0,     0,     0,     0,     0,     0,     0,   356,
     2161     356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2162       0,     0,     0,    79,    86,     0,     0,     0,     0,     0,
     2163       0,     0,     0,     0,   213,     0,     0,     0,     0,     0,
     2164       0,     0,  1166,     0,     0,     8,     9,    10,    11,    12,
     2165       0,     0,     0,     0,   363,   797,   798,     0,     0,     0,
     2166       0,     0,   356,     0,     0,     0,     0,     0,   165,     0,
     2167       0,     0,   282,   283,    31,   284,  1025,  1026,  1027,  1028,
     2168       0,  1030,     0,     0,   831,   218,     0,   834,   835,     0,
     2169     838,     0,   840,   841,     0,     0,  1074,   842,   843,     0,
     2170       0,   285,    34,     0,     0,     0,     0,   286,     0,     0,
     2171    1080,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2172       0,   292,   293,     0,     0,     0,     0,     0,     0,   356,
     2173       0,     0,   165,     0,     0,     0,   272,     0,     0,     0,
     2174       0,     0,     0,     0,   294,     0,   379,     0,     0,     0,
     2175    1100,     0,  1167,    46,   296,   297,   298,   299,     0,     0,
     2176       0,     0,     0,     0,     0,   165,     0,   363,   363,     0,
     2177     363,   363,     0,     0,     0,   369,    79,     0,     0,   375,
     2178       0,     0,     0,    79,     0,     0,     0,     0,     0,     0,
     2179      86,     0,     0,     0,     0,  1131,     0,     0,     0,     0,
     2180       0,  1140,     0,     0,     0,     0,  1144,     0,     0,     0,
     2181       0,  1148,     0,  1149,     0,     0,     0,  1151,     0,  1152,
     2182    1153,     0,   213,  1156,     0,   363,   363,     0,   165,     0,
     2183       0,     0,  1168,     0,    79,   971,   972,     0,     0,     0,
     2184     218,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2185    1183,  1184,     0,     0,     0,     0,     0,     0,   165,     8,
     2186       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2187      19,    20,    21,    22,    23,    24,    25,  1214,     0,     0,
     2188    1216,     0,     0,   375,     0,     0,     0,     0,    31,     0,
     2189     165,     0,     0,     0,     0,     0,     0,     0,   363,     0,
     2190       0,     0,   126,   126,   126,     0,     0,     0,     0,     0,
     2191       0,     0,     0,   524,     0,     0,    34,   213,     0,     0,
     2192       0,     0,     0,  1230,     0,     0,   165,     0,     0,  1234,
     2193    1235,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2194       0,   225,     0,     0,     0,     0,     0,     0,     0,  1251,
     2195       0,     0,     0,  1253,     0,     0,     0,     0,  1257,     0,
     2196       0,     0,     0,    86,   598,     0,     0,     0,     0,   622,
     2197       0,  1265,     0,     0,   126,   363,   126,   363,     0,     0,
     2198       0,     0,     0,     0,  1272,     0,  1274,  1275,  1276,  1277,
     2199       0,     0,     0,     0,     0,     0,     0,     0,  1092,     0,
     2200       0,   275,  1284,     0,  1285,     0,     0,   363,   172,     0,
     2201       0,     0,     0,     0,     0,   363,   363,   363,     0,     0,
     2202       0,     0,     0,     0,     0,     0,   363,   363,     0,     0,
     2203     211,     0,     0,     0,     0,     0,     0,  1313,  1314,   231,
     2204      86,   235,     0,   237,     0,   165,   165,     0,     0,     0,
     2205     246,     0,   369,     0,     0,     0,     0,   126,     0,     0,
     2206       0,     0,     0,     0,     0,   126,     0,   126,   126,     0,
     2207       0,     0,   126,   524,   126,   126,     0,     0,     0,   363,
     2208       0,   211,     0,   235,   237,   246,     0,  1346,  1347,     0,
     2209       0,     0,     0,     0,     0,     0,     0,  1357,     0,     0,
     2210       0,   716,     0,     0,     0,     0,     0,     0,     0,     0,
     2211       0,     0,     0,   165,     0,     0,     0,     0,     0,     0,
     2212       0,     0,     0,     0,   211,   524,     0,   524,     0,     0,
     2213     524,     0,   165,   524,     0,     0,     0,     0,     0,     0,
     2214       0,     0,     0,     0,   126,   369,   363,     0,     0,     0,
     2215       0,     0,     0,     0,     0,     0,     0,     0,  1392,  1222,
     2216    1393,  1394,  1395,     0,     0,     0,     0,     0,     0,     0,
     2217       0,     0,  1399,     0,     0,     0,     0,     0,     0,     0,
     2218       0,  1410,     0,     0,     0,   211,     0,   235,   237,   246,
     2219       0,     0,     0,    86,     0,     0,     0,     0,   165,     0,
     2220      86,     0,     0,     0,     0,     0,  1431,     0,     0,     0,
     2221     369,     0,     0,     0,   812,     0,     0,     0,     0,     0,
     2222       0,     0,     0,   211,     0,     0,     0,     0,   211,     0,
     2223       0,     0,     0,     0,   156,     0,     0,     0,     0,     0,
     2224     598,     0,     0,   497,     0,   598,     0,     0,     0,  1469,
     2225    1470,    86,     0,     0,   369,   369,   369,     0,     0,     0,
     2226       0,     0,  1475,     0,     0,     0,     0,     0,     0,  1475,
     2227       0,     0,   369,     0,     0,     0,     0,     0,     0,     0,
     2228       0,   251,     0,     0,     0,     0,     0,     0,     0,     0,
     2229    1308,   256,   211,     0,     0,     0,     0,     0,     0,     0,
     2230       0,  1508,     0,     0,   524,  1514,     0,     0,     0,     0,
     2231       0,     0,     0,     0,   211,     0,     0,     0,     0,   235,
     2232     237,     0,     0,     0,     0,     0,     0,   246,     0,     0,
     2233     369,     0,   936,  1536,     0,  1537,     0,     0,     0,     0,
     2234       0,     0,     0,     0,     0,     0,     0,   156,     0,     0,
    21752235       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2176        0,    86,     0,     0,     0,     0,     0,     0,  1289,  1290,
    2177        0,     0,     0,     0,     0,     0,     0,     0,     0,   393,
    2178        0,     0,     0,     0,     0,     0,     0,     0,     0,   412,
    2179      413,     0,     0,     0,   417,     0,   419,   420,     0,     0,
    2180      156,     0,     0,     0,     0,     0,   164,   164,     0,     0,
    2181        0,     0,   367,     0,     0,     0,     0,   210,     0,     0,
    2182        0,     0,  1324,  1325,     0,     0,     0,     0,     0,     0,
    2183        0,   210,  1335,   520,     0,     0,     0,     0,     0,     0,
    2184        0,     0,     0,     0,     0,     0,     0,   250,     0,     0,
    2185        0,     0,   493,     0,     0,     0,     0,   255,     0,     0,
    2186        0,   706,     0,     0,     0,     0,     0,     0,     0,     0,
    2187        0,     0,     0,   164,     0,     0,     0,     0,     0,     0,
    2188        0,     0,     0,     0,     0,   520,     0,   520,     0,     0,
    2189      520,     0,   164,   520,  1370,     0,  1371,  1372,  1373,     0,
    2190        0,     0,     0,     0,   367,     0,     0,     0,  1377,     0,
    2191        0,   210,     0,     0,     0,     0,  1388,     0,     0,     0,
    2192        0,     0,   210,     0,     0,     0,   383,     0,     0,     0,
    2193        0,     0,     0,     0,     0,     0,     0,     0,     0,   210,
    2194        0,  1409,  1410,     0,     0,     0,     0,     0,     0,   415,
    2195        0,     0,     0,     0,     0,     0,   164,     0,     0,     0,
    2196        0,     0,     0,   429,     0,     0,     0,   367,     0,     0,
    2197      797,     0,   434,     0,     0,     0,     0,     0,     0,     0,
    2198        0,     0,   442,     0,     0,     0,  1449,  1450,     0,     0,
    2199        0,     0,     0,     0,     0,     0,   590,     0,     0,  1455,
    2200        0,   590,     0,     0,     0,     0,  1455,   460,     0,     0,
    2201      367,   367,   470,     0,     0,     0,     0,     0,     0,     0,
    2202        0,     0,     0,     0,     0,   478,   367,     0,     0,     0,
    2203        0,   488,     0,   492,     0,     0,     0,     0,     0,  1488,
    2204        0,     0,     0,  1494,     0,     0,     0,     0,     0,     0,
    2205      210,     0,   521,     0,     0,     0,     0,     0,   520,     0,
     2236       0,   386,     0,  1552,  1553,   716,     0,     0,     0,     0,
     2237     211,  1556,  1557,     0,     0,     0,     0,     0,     0,     0,
     2238       0,     0,     0,     0,   418,     0,     0,     0,   211,   282,
     2239     283,     0,   284,   211,     0,   211,     0,     0,   433,     0,
     2240       0,     0,     0,     0,     0,     0,     0,   438,     0,     0,
     2241       0,     0,   211,     0,     0,   211,   211,   446,   285,     0,
     2242       0,     0,   369,   211,   286,     0,   622,     0,   287,     0,
     2243     369,   288,   289,   290,   291,    41,    42,   211,   292,   293,
     2244       0,     0,   464,     0,   211,     0,     0,   474,     0,     0,
     2245       0,   126,   126,     0,     0,     0,     0,     0,     0,     0,
     2246     482,   294,     0,   379,     0,     0,   492,     0,   496,    45,
     2247      46,   296,   297,   298,   299,     0,     0,     0,     0,     0,
     2248     126,     0,   788,   126,   126,   526,   126,     0,   126,   126,
     2249       0,     0,     0,   126,   126,     8,     9,    10,    11,    12,
     2250      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2251      23,    24,    25,  -296,     0,     0,     0,     0,     0,     0,
     2252       0,     0,     0,     0,    31,   716,     0,     0,   586,     0,
     2253       0,     0,     0,   591,     0,     0,     0,     0,     0,     0,
     2254     524,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2255       0,     0,    34,     0,     0,     0,     0,     0,     0,   211,
     2256       0,     0,   636,  -296,   165,     0,   637,   638,     0,   640,
     2257       0,     0,     0,     0,     0,     0,   651,   652,     0,   653,
     2258     654,     0,   655,     0,   656,     0,     0,   211,     0,     0,
     2259       0,     0,   211,     0,     0,     0,     0,     0,     0,     0,
     2260       0,   586,     0,     0,   282,   283,     0,   284,     0,   671,
    22062261       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2207        0,  1516,     0,  1517,     0,     0,     0,     0,     0,     0,
    2208      210,     0,     0,     0,   367,     0,   919,     0,     0,     0,
    2209        0,     0,     0,   580,     0,     0,     0,   584,     0,     0,
    2210        0,  1532,  1533,     0,     0,     0,     0,     0,     0,  1536,
    2211     1537,     0,   210,     0,     0,     0,     0,     0,     0,   706,
    2212        0,     0,     0,   210,     0,   627,     0,     0,     0,   628,
    2213      629,     0,   630,     0,     0,     0,     0,     0,     0,   641,
    2214      642,     0,   643,   644,     0,   645,     0,   646,     0,     0,
     2262     598,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2263       0,   126,   126,   285,   682,     0,     0,     0,     0,   286,
     2264       0,   369,   369,   287,     0,     0,   288,   289,   290,   291,
     2265      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2266     708,     0,     0,   211,     0,     0,   711,     0,     0,     0,
     2267       0,   464,     0,     0,     0,     0,   294,   211,   379,     0,
     2268       0,   380,     0,     0,    45,    46,   296,   297,   298,   299,
     2269       0,     0,     0,     0,     0,     0,     0,   497,     0,     0,
     2270       0,   524,     0,     0,     0,     0,     0,   746,     0,     0,
    22152271       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2216        0,     0,     0,     0,   580,     0,     0,     0,   785,   786,
    2217        0,     0,   661,     0,     0,     0,     0,   614,     0,     0,
     2272       0,     0,   764,     0,  -519,     0,     0,     1,     2,     3,
     2273       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2274      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2275      24,    25,     0,     0,    26,    27,    28,    29,     0,   211,
     2276      30,   791,     0,    31,    32,     0,     0,     0,     0,   716,
     2277     801,   211,     0,     0,     0,     0,     0,   803,     0,     0,
     2278       0,     0,     0,   811,     0,     0,     0,     0,    33,   126,
     2279     211,    34,   825,    35,   126,    36,    37,     0,    38,    39,
     2280      40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
     2281       0,   218,     0,     0,     0,     0,     0,     0,     0,     0,
     2282       0,     0,     0,     0,     0,   341,   364,     0,     0,     0,
     2283       0,     0,   865,    43,     0,    44,     0,     0,     0,     0,
     2284       0,    45,    46,     0,     0,     0,     0,     0,   716,     0,
     2285       0,     0,     0,     0,     0,     0,     0,     0,     0,   414,
     2286       0,     0,     0,     0,     0,     0,   414,     0,   811,     0,
     2287       0,     0,     0,     0,     0,     0,   906,     0,     0,     8,
     2288       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2289      19,    20,    21,    22,    23,    24,    25,   369,   369,    26,
     2290      27,    28,     0,   211,     0,     0,   218,   251,    31,     0,
     2291       0,     0,     0,     0,     0,     0,     0,   943,   944,     0,
    22182292       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2219        0,     0,   210,     0,     0,   816,   672,     0,   819,   820,
    2220        0,   823,     0,   825,   826,     0,   210,     0,   827,   828,
    2221        0,   126,   126,   126,   503,     0,   505,   508,     0,     0,
    2222        0,     0,   698,     0,     0,     0,   511,   512,   701,     0,
    2223        0,     0,     0,   460,     0,     0,     0,     0,     0,     0,
    2224        0,   505,   505,     0,     0,     0,     0,     0,     0,     0,
    2225        0,     0,     0,     0,     0,     0,     0,     0,     0,   339,
    2226      362,     0,     0,     0,     0,   367,     0,     0,     0,   736,
    2227        0,     0,   706,     0,     0,     0,   505,     0,     0,     0,
    2228        0,     0,     0,   126,   754,   126,     0,   520,     0,     0,
    2229        0,     0,   411,     0,   210,     0,     0,     0,     0,   411,
     2293       0,     0,     0,   211,     0,     0,    34,     0,   414,     0,
     2294       0,    37,     0,    38,    39,    40,     0,     0,     0,     0,
     2295     981,     0,    41,    42,     0,   126,   985,     0,     0,     0,
     2296       0,     0,     0,     0,     0,     0,     0,     0,   211,     0,
     2297       0,     0,     0,     0,     0,     0,     0,     0,    43,   211,
     2298     157,     0,     0,     0,     0,     0,    45,    46,     0,     0,
     2299       0,     0,     0,   414,     0,     0,     0,     0,     0,     0,
     2300       0,   414,   582,     0,   414,   585,     0,     0,     0,     0,
     2301       0,     0,     0,     0,     0,   364,     0,   369,     0,   614,
     2302    1019,     0,     0,     0,     0,     0,     0,  1020,     0,     0,
     2303       0,     0,     0,     0,     0,     0,     0,     0,   632,     0,
     2304    1022,   341,  1023,     0,     0,     0,     0,     0,     0,     0,
     2305       0,   211,     0,     0,     0,     0,  1035,     0,     0,     0,
     2306       0,     0,  1039,     0,     0,   211,     0,     0,   414,     0,
     2307       0,     0,   414,   524,  1077,   524,     0,  1078,     0,     0,
     2308       0,     0,     0,     0,     0,     0,   126,     0,     0,     0,
    22302309       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2231      274,   505,   164,     0,     0,     0,     0,     0,     0,     0,
    2232        0,   779,     0,     0,     0,     0,     0,     0,     0,     0,
    2233      789,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2234        0,     0,     0,     0,   954,   955,     0,     0,     0,     0,
    2235      810,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2236        0,     0,     0,     0,   590,   126,     0,     0,     0,     0,
    2237        0,   411,     0,   126,     0,   126,   126,     0,     0,     0,
    2238      126,     0,   126,   126,     0,   367,   367,     0,   849,     0,
    2239        0,   210,     0,     0,   463,     2,   205,     4,     5,     6,
     2310       0,     0,     0,   364,     0,     0,     0,     0,     0,   524,
     2311       0,   524,     0,     0,     0,     0,     0,     0,     0,     0,
     2312       0,     0,   507,     0,   509,   512,     0,     0,     0,     0,
     2313       0,     0,   515,   516,     0,     0,     0,     0,   165,     0,
     2314       0,     0,     0,     0,     0,     0,     0,   509,   509,   414,
     2315       0,     0,   364,     0,   591,     0,   211,     0,     0,     0,
     2316       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2317      17,    18,    19,    20,    21,    22,    23,    24,    25,  -296,
     2318       0,    26,    27,    28,     0,   509,     0,     0,     0,  1150,
     2319      31,   414,     0,     0,     0,   341,   364,     0,     0,     0,
     2320       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2321       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2322       0,   509,     0,    37,     0,   336,   337,    40,     0,  -296,
     2323       0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
     2324       0,   414,   414,     0,     0,     0,     0,   526,     0,     0,
     2325       0,   211,     0,  1215,     0,     0,   321,     0,     0,     0,
     2326     805,   364,   338,     0,     0,     0,   346,     0,    45,    46,
     2327       0,   614,     0,   614,   614,     0,     0,     0,   382,   382,
     2328     614,     0,     0,     0,     0,     0,     0,  1227,     0,     0,
     2329     844,   364,  1229,     0,     0,     0,   364,     0,     0,     0,
     2330    1233,     0,     0,     0,     0,   364,   364,   364,     0,     0,
     2331       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2332       0,     0,     0,   364,     0,     0,     0,     0,   414,   886,
     2333       0,     0,   414,   889,     0,  1259,     0,     0,     0,   891,
     2334       0,     0,     0,     0,     0,     0,     0,  1267,     0,   321,
     2335    1268,     0,  1269,     0,     0,     0,     0,     0,   414,     0,
     2336       0,     0,     0,     0,     0,     0,  1278,  1279,     0,     0,
     2337       0,     0,     0,   478,     0,     0,     0,     0,     0,     0,
     2338       0,   364,   614,     0,     0,     0,     0,     0,  1292,     0,
     2339     509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
     2340     509,   509,   509,   509,   509,   509,   509,   509,     0,     0,
     2341       0,     0,     0,     0,     0,   341,   364,     0,     0,     0,
     2342     414,   414,     0,     0,     0,     0,     0,     0,     0,     0,
     2343       0,     0,     0,     0,     0,  1331,     0,     0,     0,     0,
     2344       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2345      18,    19,    20,    21,    22,    23,    24,    25,  -296,     0,
     2346      26,    27,    28,     0,     0,   414,     0,     0,     0,    31,
     2347       0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
     2348     805,   364,     0,     0,   614,     0,   614,     0,     0,     0,
     2349     382,     0,     0,     0,     0,     0,   614,    34,   211,     0,
     2350       0,     0,    37,     0,   336,   337,    40,     0,  -296,     0,
     2351    1381,     0,  1382,    41,    42,     0,     0,     0,     0,     0,
     2352       0,     0,     0,     0,     0,     0,  1390,     0,  1391,     0,
     2353       0,     0,     0,     0,     0,     0,   509,     0,     0,   635,
     2354       0,   338,     0,  1398,     0,     0,     0,    45,    46,     0,
     2355       0,     0,     0,     0,     0,     0,     0,     0,     0,  1416,
     2356    1418,     0,     0,     0,     0,     0,     0,     0,   805,     0,
     2357    1423,     0,     0,  1233,     0,   341,   364,   414,     0,   414,
     2358       0,     0,     0,   414,   710,     0,     0,     0,     0,     0,
     2359       0,     0,     0,     0,  1445,     0,     0,   509,     0,     0,
     2360       0,     0,     0,  1452,   614,   614,  1454,     0,  1456,  1458,
     2361    1460,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2362       0,     0,     0,   742,     0,     0,     0,     0,   509,     0,
     2363       0,     0,     0,     0,     0,     0,   759,     0,     0,   414,
     2364       0,   742,     0,     0,   742,     0,     0,     0,  1490,     0,
     2365    1492,     0,  1233,     0,     0,     0,     0,   769,     0,     0,
     2366     414,  1147,     0,     0,     0,     0,     0,  1503,     0,     0,
     2367       0,   364,     0,     0,     0,     0,     0,   414,  1159,   790,
     2368     614,   614,  1164,     0,     0,     0,     0,     0,     0,   799,
     2369       0,     0,   364,   364,     0,     0,   346,     0,     0,     0,
     2370       0,   759,     0,     0,     1,     2,     3,     4,     5,     6,
    22402371       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    22412372      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2242        0,    26,    27,    28,   882,     0,     0,     0,   411,     0,
    2243       31,     0,   889,     0,     0,     0,   411,   576,     0,   411,
    2244      579,     0,   520,     0,     0,     0,     0,   362,     0,     0,
    2245        0,   606,   126,     0,     0,     0,     0,     0,    34,     0,
    2246       35,     0,    36,   250,     0,    38,    39,     0,     0,     0,
    2247      624,     0,     0,     0,   927,   928,     0,     0,     0,   505,
    2248      505,   505,   505,   505,   505,   505,   505,   505,   505,   505,
    2249      505,   505,   505,   505,   505,   505,   505,     0,     0,   411,
    2250     1069,     0,     0,   411,     0,     0,   962,    -3,   706,     0,
    2251        0,   966,     8,     9,    10,    11,    12,    13,    14,    15,
    2252       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2253     -298,     0,     0,   362,     0,     0,     0,     0,     0,     0,
    2254        0,    31,     0,   322,     0,     0,     0,     0,     0,   217,
    2255        0,     0,     0,   344,     0,     0,     0,     0,     0,     0,
    2256        0,     0,     0,     0,   379,   379,     0,     0,     0,    34,
    2257        0,   999,     0,     0,     0,     0,     0,     0,  1000,   411,
    2258     -298,     0,   362,     0,     0,   706,     0,     0,     0,     0,
    2259        0,  1002,     0,  1003,     0,     0,     0,     0,     0,     0,
    2260        0,     0,     0,     0,     0,     0,  1013,     0,     0,     0,
    2261        0,     0,  1017,     0,     0,     0,     0,     0,     0,   505,
    2262        0,   411,     0,     0,  1054,   362,     0,  1055,     0,     0,
    2263        0,     0,     0,     0,     0,   322,     0,     0,   367,   367,
    2264        0,     0,   210,     0,     0,     0,   217,     0,     0,     0,
    2265        0,     0,     0,     0,     0,  1195,     0,     0,     0,   474,
    2266        0,     0,     0,     0,     0,     0,     0,     0,     0,   411,
    2267      411,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2268      505,     0,     0,     0,     0,     0,     0,   792,   362,     0,
    2269        0,     0,     0,     0,     0,     0,     0,   606,     0,   606,
    2270      606,     0,     0,     0,     0,     0,   606,     0,     0,     0,
    2271      505,     0,     0,     0,     0,     0,   829,   362,     0,     0,
    2272        0,     0,   362,     0,     0,     0,     0,     0,     0,     0,
    2273        0,   362,   362,     0,     0,  1125,     0,     0,     0,     0,
    2274        0,     0,     0,     0,     0,     0,     0,   362,     0,     0,
    2275        0,     0,   411,   870,   126,   126,   411,   873,     0,   367,
    2276        0,     0,     0,   875,     0,     0,     0,     0,     0,     0,
    2277        0,     0,     0,     0,   379,     0,     0,     0,     0,     0,
    2278        0,   126,   411,  1284,   126,   126,     0,   126,     0,   126,
    2279      126,     0,     0,     0,   126,   126,  1188,     0,     0,     0,
    2280        0,     0,     0,     0,     0,   362,   606,     0,     0,     0,
    2281        0,     0,     0,     0,     0,     0,   520,     0,   520,     0,
    2282        0,     0,     0,     0,   505,     0,     0,     0,     0,     0,
    2283     1200,     0,     0,     0,     0,  1202,     0,     0,     0,     0,
    2284      362,     0,     0,  1206,   411,   411,     0,     0,     0,     0,
    2285        0,     0,     0,   520,     0,   520,     0,     0,     0,     0,
    2286        0,     0,     0,     0,     0,     0,     0,   700,     0,     0,
    2287      505,     0,     0,     0,     0,     0,     0,  1237,     0,     0,
    2288        0,     0,   164,     0,     0,     0,     0,   411,  1244,     0,
    2289        0,  1245,     0,  1246,     0,     0,     0,     0,     0,     0,
    2290        0,     0,   505,   606,     0,   606,   733,     0,  1255,  1256,
    2291        0,     0,     0,     0,   505,   606,     0,     0,   749,     0,
    2292        0,     0,     0,     0,   733,     0,     0,   733,  1268,     0,
    2293      126,   126,  1141,     0,     0,     8,     9,    10,    11,    12,
    2294      758,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2295        0,     0,     0,   505,     0,     0,     0,     0,     0,     0,
    2296        0,     0,   281,   282,    31,   283,     0,     0,     0,     0,
    2297      787,     0,     0,     0,  1307,     0,     0,   344,     0,     0,
    2298        0,   749,  1311,     0,     0,     0,   362,     0,     0,     0,
    2299        0,   284,    34,   362,   411,     0,   411,   285,     0,     0,
    2300      411,   286,     0,     0,   287,   288,   289,   290,   291,   292,
    2301       41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2302        0,   606,   606,     0,     0,     0,     0,   848,     0,   505,
    2303        0,     0,     0,     0,     0,   379,   295,     0,   376,     0,
    2304        0,     0,     0,     0,  1142,    46,   297,   298,   299,   300,
    2305        0,     0,  1358,     0,  1359,     0,   411,     0,     0,     0,
     2373       0,    26,    27,    28,    29,     0,     0,    30,     0,     0,
     2374      31,    32,     0,     0,     0,     0,     0,     0,   509,     0,
     2375     864,     0,     0,     0,     0,   414,     0,   414,   382,     0,
     2376       0,     0,   414,     0,     0,    33,     0,     0,    34,     0,
     2377      35,   614,    36,    37,     0,    38,    39,    40,     0,     0,
     2378       0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
     2379       0,     0,     0,   509,   805,   414,  1247,     0,     0,     0,
    23062380       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2307     1368,     0,  1369,     0,     0,   411,  1123,     0,     0,     0,
    2308        0,   126,     0,     0,     0,   362,   126,  1376,   505,   505,
    2309        0,   411,  1134,     0,   606,   606,  1139,     0,     0,     0,
    2310        0,     0,  1394,  1396,     0,     0,   362,   362,     0,     0,
    2311        0,   924,     0,  1401,     0,     0,  1206,     0,     0,     0,
     2381      43,     0,    44,     0,     0,     0,  -523,     0,    45,    46,
     2382     364,     0,     0,     0,     0,     0,     0,     0,   509,     0,
    23122383       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2313        0,     0,     0,   749,     0,   948,     0,     0,  1424,     0,
    2314        0,     0,     0,     0,     0,   958,     0,  1431,     0,     0,
    2315     1433,   965,  1435,  1437,  1439,     0,     0,     0,     0,     0,
    2316        0,     0,     0,     0,     0,     0,   411,     0,   411,     0,
    2317        0,     0,     0,   411,     0,     0,     0,     0,     0,     0,
    2318        0,     0,   606,     0,     0,     0,     0,     0,     0,     0,
    2319        0,   982,   983,  1470,     0,  1472,     0,  1206,     0,     0,
    2320        0,     0,     0,     0,     0,   411,  1220,   344,     0,     0,
    2321        0,     0,     0,  1483,     0,     0,     0,     0,     0,     0,
    2322        0,     0,     0,     0,     0,     0,     0,     0,     0,   362,
     2384       0,   509,     0,     0,     0,     0,     0,     0,   282,   283,
     2385       0,   284,     0,     0,     0,     0,   759,     0,   965,     0,
     2386       0,     0,     0,     0,     0,     0,     0,     0,   976,     0,
     2387       0,     0,     0,     0,   984,     0,     0,   285,     0,     0,
     2388       0,   341,   509,   641,     0,   139,   140,   287,     0,     0,
     2389     288,   289,   290,   291,    41,    42,     0,   292,   293,   364,
    23232390       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2324        0,   126,     0,     0,     0,     0,  1011,     0,     0,     0,
    2325      379,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2391       0,     0,     0,     0,     0,     0,     0,  1002,  1003,     0,
     2392     294,   346,   642,     0,   643,   380,     0,     0,    45,    46,
     2393     296,   297,   298,   299,     0,   346,     0,     0,     0,     0,
     2394       0,     0,     0,     0,     0,     0,     0,     0,   364,   364,
     2395       0,     0,     0,     0,     0,     0,     0,     0,     0,   509,
     2396       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2397       0,     0,     0,     0,     0,  1033,     0,     0,     0,   382,
     2398       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2399       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
     2400      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2401      21,    22,    23,    24,    25,     0,   346,    26,    27,    28,
     2402      29,   509,   509,    30,     0,     0,    31,    32,     0,     0,
     2403       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2404       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2405       0,    33,     0,     0,    34,   321,    35,     0,    36,    37,
     2406       0,    38,    39,    40,     0,     0,     0,     0,   364,     0,
     2407      41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
     2408       0,     0,     0,   382,     0,     0,     0,   282,   283,   976,
     2409     284,     0,     0,   742,     0,     0,    43,     0,    44,     0,
     2410       0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
     2411       0,     0,     0,     0,  1154,     0,   285,     0,     0,     0,
     2412       0,     0,   286,     0,     0,  1169,   287,     0,     0,   288,
     2413     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2414       0,     0,     0,     0,     0,     0,     0,   382,     0,  1187,
     2415       0,     0,     0,   282,   283,   414,   284,     0,     0,   294,
     2416       0,   379,     0,     0,   976,   976,   758,    45,    46,   296,
     2417     297,   298,   299,     0,     0,     0,     0,     0,     0,   414,
     2418     414,     0,   285,     0,     0,  1219,     0,     0,   286,     0,
     2419       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
     2420      42,     0,   292,   293,   414,     0,     0,     0,     0,     0,
     2421       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2422       0,     0,     0,     0,     0,   294,   509,   379,     0,     0,
     2423     973,     0,     0,    45,    46,   296,   297,   298,   299,     0,
     2424     976,     0,   509,     0,     0,     0,     0,     0,     0,     0,
     2425       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2426     864,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2427       0,     0,     0,     0,     0,  1270,  1271,     0,     0,     0,
     2428       0,     1,     2,   206,     4,     5,     6,     7,     8,     9,
     2429      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2430      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2431      28,    29,   509,   509,    30,   282,   283,    31,  1042,  1043,
     2432       0,  1044,     0,     0,  1045,  1046,  1047,  1048,  1049,  1050,
     2433    1051,  1052,     0,     0,     0,  1053,     0,     0,     0,  1054,
     2434    1055,     0,    33,     0,   285,    34,     0,    35,     0,    36,
     2435    1056,     0,    38,    39,   287,     0,     0,   288,   289,   290,
     2436     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
     2437       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2438       0,     0,     0,     0,     0,     0,     0,   294,     0,  1057,
     2439       0,     0,   171,     0,     0,    45,    46,   296,   297,   298,
     2440     299,     0,     0,     0,     0,  1058,     0,     0,     0,     0,
     2441    -131,     0,     0,     0,     0,     0,  1375,     0,     0,   742,
     2442       1,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2443      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2444      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2445      29,     0,     0,    30,   282,   283,    31,   284,     8,     9,
     2446      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2447      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2448      28,     0,     0,   285,    34,     0,    35,    31,    36,   286,
     2449       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
     2450      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2451       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2452     110,     0,    38,    39,     0,     0,   294,     0,  1057,     0,
     2453       0,    41,    42,     0,    45,    46,   296,   297,   298,   299,
     2454       0,     0,     0,     0,     0,     0,     0,     0,     0,  -131,
     2455       0,     0,     0,     0,     1,     2,   206,     4,     5,     6,
     2456       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2457      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2458       0,    26,    27,    28,    29,     0,     0,    30,   282,   283,
     2459      31,   284,     0,     0,     0,     8,     9,    10,    11,    12,
    23262460      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2327       23,    24,    25,     0,     0,    26,    27,    28,     0,   344,
    2328        0,     0,     0,     0,    31,     0,   344,     0,     0,     0,
    2329        0,     0,     0,     0,     0,     0,   505,     0,     0,     0,
    2330        0,     0,     0,     0,     0,     0,   362,     0,     0,     0,
    2331        0,     0,    34,   505,     0,     0,     0,     0,     0,   206,
    2332       39,     0,     0,     0,     0,     0,   322,   204,     2,   205,
     2461      23,    24,    25,  -297,     0,     0,     0,   285,    34,     0,
     2462      35,     0,    36,   286,    31,    38,    39,   287,     0,   321,
     2463     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
     2464       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2465       0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
     2466     294,     0,    44,  -297,     0,     0,     0,     0,    45,    46,
     2467     296,   297,   298,   299,     2,   206,     4,     5,     6,     7,
     2468       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2469      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2470      26,    27,    28,     0,     0,     0,     0,   282,   283,    31,
     2471     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2472      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2473       0,    26,    27,    28,     0,     0,   285,    34,     0,    35,
     2474      31,    36,   286,     0,    38,    39,   287,     0,     0,   288,
     2475     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2476       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2477       0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
     2478       0,   343,     0,     0,     0,     0,   758,   344,    46,   296,
     2479     297,   298,   299,     2,   206,     4,     5,     6,     7,     8,
     2480       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2481      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2482      27,    28,     0,     0,     0,     0,   282,   283,    31,   284,
     2483       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2484      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2485      26,    27,    28,     0,     0,   285,    34,     0,    35,    31,
     2486      36,   286,     0,    38,    39,   287,     0,     0,   288,   289,
     2487     290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
     2488       0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
     2489       0,     0,     0,     0,   207,    39,     0,     0,   294,     0,
     2490     964,     0,     0,     0,     0,   758,   344,    46,   296,   297,
     2491     298,   299,     2,   206,     4,     5,     6,     7,     8,     9,
     2492      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2493      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2494      28,     0,     0,     0,     0,   282,   283,    31,   284,     0,
     2495       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2496       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2497       0,     0,     0,     0,   285,    34,     0,    35,     0,    36,
     2498     286,     0,    38,    39,   287,     0,     0,   288,   289,   290,
     2499     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
     2500       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2501       0,     0,     0,     0,     0,     0,     0,   294,     0,   964,
     2502       0,     0,     0,     0,   758,    45,    46,   296,   297,   298,
     2503     299,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2504      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2505      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2506       0,     0,     0,     0,   282,   283,    31,   284,     0,     0,
     2507       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2508       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2509       0,     0,     0,   285,    34,     0,    35,     0,    36,   286,
     2510       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
     2511      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2512       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2513       0,     0,     0,     0,     0,     0,   294,     0,   343,     0,
     2514       0,     0,     0,     0,   344,    46,   296,   297,   298,   299,
     2515       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2516      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2517      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2518       0,     0,     0,   282,   283,    31,   284,     0,     0,     0,
     2519       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2520       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2521       0,     0,   285,    34,     0,    35,     0,    36,   286,     0,
     2522     207,    39,   287,     0,     0,   288,   289,   290,   291,    41,
     2523      42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
     2524       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2525       0,     0,     0,     0,     0,   294,     0,   999,     0,     0,
     2526       0,     0,     0,  1000,    46,   296,   297,   298,   299,     2,
     2527     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2528      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2529      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2530       0,     0,   282,   283,    31,   284,     0,     0,     0,     0,
     2531       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2532       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2533       0,   285,    34,     0,    35,     0,    36,   286,     0,    38,
     2534      39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2535       0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
     2536       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2537       0,     0,     0,     0,   294,     0,   964,     0,     0,     0,
     2538       0,     0,   344,    46,   296,   297,   298,   299,     2,   206,
    23332539       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    23342540      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2335       24,    25,     0,   379,    26,    27,    28,     0,   958,   362,
    2336      362,   733,     0,    31,    45,    46,     0,     0,     0,   126,
     2541      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2542       0,   282,   283,    31,   284,     0,     0,     0,     0,     0,
    23372543       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2338        0,  1129,     0,     0,     0,   505,   505,     0,     0,     0,
    2339        0,    34,  1144,    35,     0,    36,    37,     0,   206,    39,
    2340       40,     0,     0,     0,     0,     0,     0,     0,     0,    41,
    2341       42,     0,   379,     0,  1161,     0,     0,     0,     0,     0,
    2342        0,     0,     0,     0,     0,     0,     0,     0,     0,   958,
    2343      958,     0,     0,     0,     0,    43,     0,   207,     0,     0,
    2344        0,     0,     0,    45,    46,     0,     0,     0,     0,  1192,
    2345        0,     0,     0,     0,     0,     1,     2,   205,     4,     5,
     2544       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2545     285,    34,     0,    35,     0,    36,   286,     0,   207,    39,
     2546     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2547     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2548       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2549       0,     0,     0,   294,     0,   379,     0,     0,     0,     0,
     2550       0,    45,    46,   296,   297,   298,   299,   205,     2,   206,
     2551       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2552      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2553      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2554       0,     0,     0,    31,     0,     8,     9,    10,    11,    12,
     2555      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2556      23,    24,    25,     0,     0,    26,    27,    28,   485,   486,
     2557     487,    34,     0,    35,    31,    36,    37,     0,   207,    39,
     2558      40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
     2559       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2560       0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
     2561      39,     0,     0,    43,     0,   208,     0,     0,     0,     0,
     2562       0,    45,    46,     1,     2,   206,     4,     5,     6,     7,
     2563       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2564      18,    19,    20,    21,    22,    23,    24,    25,  -296,     0,
     2565      26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
     2566       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2567       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2568       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2569       0,    36,     0,     0,    38,    39,     0,     0,  -296,     1,
     2570       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2571      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2572      22,    23,    24,    25,     0,     0,    26,    27,    28,    29,
     2573       0,    44,    30,     0,     0,    31,     0,    45,    46,     0,
     2574       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2575       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2576       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2577      38,    39,   205,     2,   206,     4,     5,     6,     7,     8,
     2578       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2579      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2580      27,    28,     0,     0,     0,     0,     0,    44,    31,     0,
     2581       0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
     2582       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2583       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2584      36,     0,     0,   207,    39,     0,     2,   206,     4,     5,
    23462585       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    23472586      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2348      362,     0,    26,    27,    28,    29,     0,     0,    30,     0,
    2349        0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
    2350        0,     0,     0,   958,     0,     0,     0,     0,     0,     0,
     2587       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2588     208,    31,     0,     0,     0,     0,    45,    46,     0,     0,
     2589       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23512590       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2352        0,    35,   848,    36,     0,     0,    38,    39,     0,     0,
    2353        0,     0,     0,     0,     0,     0,     0,  1247,  1248,     0,
    2354        2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    2355       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2356       22,    23,    24,    25,     0,    44,    26,    27,    28,   411,
    2357        0,    45,    46,     0,     0,    31,     0,     0,     0,     0,
    2358        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2359        0,     0,     0,   411,   411,     0,     0,     0,     0,     0,
    2360        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2361       38,    39,     0,     0,     0,     0,     0,     0,   411,     0,
    2362        0,     0,     1,     2,   205,     4,     5,     6,     7,     8,
    2363        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2364       19,    20,    21,    22,    23,    24,    25,     0,  -418,    26,
    2365       27,    28,    29,     0,     0,    30,   281,   282,    31,  1020,
    2366     1021,     0,  1022,     0,     0,  1023,  1024,  1025,  1026,  1027,
    2367     1028,  1029,  1030,     0,     0,     0,  1031,     0,     0,  1352,
    2368     1032,  1033,   733,    33,     0,   284,    34,     0,    35,     0,
    2369       36,  1034,     0,    38,    39,   286,     0,     0,   287,   288,
    2370      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2371        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2372        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2373      295,     0,   296,     0,     0,   170,     0,     0,    45,    46,
    2374      297,   298,   299,   300,     0,     0,     0,     0,  1035,     0,
    2375        0,     0,     0,  -134,     1,     2,   205,     4,     5,     6,
    2376        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2377       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2378        0,    26,    27,    28,    29,     0,     0,    30,   281,   282,
    2379       31,   283,     8,     9,    10,    11,    12,    13,    14,    15,
    2380       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2381        0,     0,    26,    27,    28,     0,     0,   284,    34,     0,
    2382       35,    31,    36,   285,     0,    38,    39,   286,     0,     0,
    2383      287,   288,   289,   290,   291,   292,    41,    42,     0,   293,
    2384      294,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2385        0,     0,     0,     0,   110,     0,    38,    39,     0,     0,
    2386        0,     0,   295,     0,   296,     0,     0,    41,    42,     0,
    2387       45,    46,   297,   298,   299,   300,     0,     0,     0,     0,
    2388        0,     0,     0,     0,     0,  -134,     0,     0,     0,     0,
    2389        0,     0,     0,     0,     0,     0,   322,     1,     2,   205,
    2390        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2391       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2392       24,    25,     0,     0,    26,    27,    28,    29,     0,     0,
    2393       30,   281,   282,    31,   283,     8,     9,    10,    11,    12,
    2394       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2395       23,    24,    25,  -299,     0,     0,     0,     0,     0,     0,
    2396      284,    34,     0,    35,    31,    36,   285,     0,    38,    39,
    2397      286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
    2398       42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
    2399        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
    2400        0,     0,     0,  -299,     0,   295,     0,   296,     0,     0,
    2401        0,     0,     0,    45,    46,   297,   298,   299,   300,     2,
    2402      205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2403       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2404       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2405        0,     0,   281,   282,    31,   283,     8,     9,    10,    11,
    2406       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2407       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2408        0,   284,    34,     0,    35,    31,    36,   285,     0,    38,
    2409       39,   286,     0,     0,   287,   288,   289,   290,   291,   292,
    2410       41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2411        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
    2412       38,    39,     0,     0,     0,     0,   295,     0,   341,     0,
    2413        0,     0,     0,   748,   342,    46,   297,   298,   299,   300,
    2414        2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    2415       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2416       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2417        0,     0,     0,   281,   282,    31,   283,     8,     9,    10,
    2418       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2419       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2420        0,     0,   284,    34,     0,    35,    31,    36,   285,     0,
    2421       38,    39,   286,     0,     0,   287,   288,   289,   290,   291,
    2422      292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
    2423        0,     0,     0,     0,    34,     0,     0,     0,     0,     0,
    2424        0,   206,    39,     0,     0,     0,     0,   295,     0,   341,
    2425        0,     0,     0,     0,   748,    45,    46,   297,   298,   299,
    2426      300,     2,   205,     4,     5,     6,     7,     8,     9,    10,
    2427       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2428       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2429        0,     0,     0,     0,   281,   282,    31,   283,     0,     0,
    2430        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2431        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2432        0,     0,     0,   284,    34,     0,    35,     0,    36,   285,
    2433        0,    38,    39,   286,     0,     0,   287,   288,   289,   290,
    2434      291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    2435        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2436        0,     0,     0,     0,     0,     0,     0,     0,   295,     0,
    2437      341,     0,     0,     0,     0,     0,   342,    46,   297,   298,
    2438      299,   300,     2,   205,     4,     5,     6,     7,     8,     9,
    2439       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2440       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2441       28,     0,     0,     0,     0,   281,   282,    31,   283,     0,
    2442        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2443        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2444        0,     0,     0,     0,   284,    34,     0,    35,     0,    36,
    2445      285,     0,   206,    39,   286,     0,     0,   287,   288,   289,
    2446      290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
    2447        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2448        0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
    2449        0,   979,     0,     0,     0,     0,     0,   980,    46,   297,
    2450      298,   299,   300,     2,   205,     4,     5,     6,     7,     8,
    2451        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2452       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2453       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2454        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2455        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2456        0,     0,     0,     0,     0,   284,    34,     0,    35,     0,
    2457       36,   285,     0,   206,    39,   286,     0,     0,   287,   288,
    2458      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2459        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2460        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2461      295,     0,   376,     0,     0,     0,     0,     0,    45,    46,
    2462      297,   298,   299,   300,  -521,     0,     0,     1,     2,     3,
    2463        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2464       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2465       24,    25,     0,     0,    26,    27,    28,    29,     0,     0,
    2466       30,     0,     0,    31,    32,     0,     0,     0,     0,     0,
    2467        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2468        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2469        0,    34,     0,    35,     0,    36,    37,     0,    38,    39,
    2470       40,     0,     0,     0,     0,     0,     0,     0,     0,    41,
    2471       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2472        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2473        0,     0,     0,     0,     0,    43,     0,    44,     0,     0,
    2474        0,     0,     0,    45,    46,     1,     2,     3,     4,     5,
    2475        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2476       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2477        0,     0,    26,    27,    28,    29,     0,     0,    30,     0,
    2478        0,    31,    32,     0,     0,     0,     0,     0,     0,     0,
    2479        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2480        0,     0,     0,     0,     0,     0,    33,     0,     0,    34,
    2481        0,    35,     0,    36,    37,     0,    38,    39,    40,     0,
    2482        0,     0,     0,     0,     0,     0,     0,    41,    42,     0,
    2483        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2484        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2485        0,     0,     0,    43,     0,    44,     0,     0,     0,  -525,
    2486        0,    45,    46,     1,     2,     3,     4,     5,     6,     7,
    2487        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2488       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2489       26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
    2490       32,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2491        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2492        0,     0,     0,     0,    33,     0,     0,    34,     0,    35,
    2493        0,    36,    37,     0,    38,    39,    40,     0,     0,     0,
     2591       0,    35,     0,    36,    37,     0,   207,    39,    40,     0,
    24942592       0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
    24952593       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24962594       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2497        0,    43,     0,    44,     0,     0,     0,     0,     0,    45,
    2498       46,     1,     2,   205,     4,     5,     6,     7,     8,     9,
     2595       0,    43,     0,   208,     0,     0,     0,     0,     0,    45,
     2596      46,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2597      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2598      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2599       0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
     2600       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2601      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2602       0,    26,    27,    28,    34,     0,    35,     0,    36,     0,
     2603      31,    38,    39,     0,     2,   206,     4,     5,     6,     7,
     2604       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2605      18,    19,    20,    21,    22,    23,    24,    25,    34,     0,
     2606      26,    27,    28,     0,     0,    38,    39,  -403,   678,    31,
     2607       0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
     2608       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2609       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2610     635,    36,   338,     0,    38,    39,     0,     0,    45,    46,
     2611       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2612       0,     0,     0,     0,     0,     0,  1354,     0,     0,     0,
     2613       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2614       0,   678,     0,     0,     0,     0,     0,    45,    46,     2,
     2615     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2616      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2617      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2618       0,     0,     0,     0,    31,     0,     0,     0,     8,     9,
    24992619      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2500       20,    21,    22,    23,    24,    25,  -298,     0,    26,    27,
    2501       28,    29,     0,     0,    30,     0,     0,    31,     0,     0,
     2620      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2621      28,     0,    34,     0,    35,     0,    36,    31,   685,    38,
     2622      39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2623       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2624       0,  1356,     0,     0,     0,    34,     0,     0,     0,     0,
     2625       0,     0,    38,    39,     0,     0,   678,     0,     0,     0,
     2626       0,     0,    45,    46,     2,   206,     4,     5,     6,     7,
     2627       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2628      18,    19,    20,    21,    22,    23,    24,    25,     0,   686,
     2629      26,    27,    28,   687,     0,    45,    46,     0,     0,    31,
     2630       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2631       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2632       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2633       0,    36,     0,     0,   207,    39,     0,     2,   206,     4,
     2634       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2635      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2636      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2637       0,   270,    31,     0,     0,     0,     0,    45,    46,     0,
     2638       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2639       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2640      34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
     2641       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2642      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2643      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2644       0,     0,     0,     0,   678,    31,     0,     0,     0,     0,
     2645      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2646       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2647       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2648      38,    39,     0,     2,   206,     4,     5,     6,     7,     8,
     2649       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2650      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2651      27,    28,     0,     0,     0,     0,     0,   593,    31,     0,
     2652       0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
     2653       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2654       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2655      36,     0,     0,   207,    39,     8,     9,    10,    11,    12,
     2656      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2657      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2658       0,     0,   282,   283,    31,   284,     0,     0,     0,     0,
     2659     208,     0,     0,     0,     0,     0,    45,    46,     0,     0,
     2660       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2661       0,   285,    34,     0,     0,     0,     0,   286,     0,    38,
     2662      39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2663       0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
     2664       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2665       0,     0,     0,     0,   294,     0,   517,     0,     0,   171,
     2666       0,     0,    45,    46,   296,   297,   298,   299,     8,     9,
     2667      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2668      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2669      28,     0,     0,     0,     0,   282,   283,    31,   284,     8,
     2670       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2671      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2672      27,    28,     0,     0,   285,    34,     0,     0,    31,     0,
     2673     286,     0,    38,    39,   287,     0,     0,   288,   289,   290,
     2674     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
     2675       0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
     2676       0,    37,     0,   336,   337,    40,     0,   294,   -37,   295,
     2677       0,     0,    41,    42,     0,    45,    46,   296,   297,   298,
     2678     299,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2679      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2680     338,    26,    27,    28,     0,     0,    45,    46,   282,   283,
     2681      31,   284,     8,     9,    10,    11,    12,    13,    14,    15,
     2682      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2683       0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
     2684       0,    31,     0,   286,     0,    38,    39,   287,     0,     0,
     2685     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
     2686       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2687       0,     0,     0,     0,   110,     0,    38,    39,     0,     0,
     2688     294,     0,   295,     0,     0,    41,    42,     0,    45,    46,
     2689     296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
     2690      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2691      24,    25,     0,    44,    26,    27,    28,     0,     0,    45,
     2692      46,   282,   283,    31,   284,     8,     9,    10,    11,    12,
     2693      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2694      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2695     285,    34,     0,     0,    31,   685,   286,     0,    38,    39,
     2696     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2697     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2698       0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
     2699      39,     0,     0,   294,     0,   157,     0,     0,     0,     0,
     2700       0,    45,    46,   296,   297,   298,   299,     8,     9,    10,
     2701      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2702      21,    22,    23,    24,    25,     0,   686,    26,    27,    28,
     2703    1093,     0,    45,    46,   282,   283,    31,   284,     8,     9,
     2704      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2705      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2706      28,     0,     0,   285,    34,     0,     0,    31,   685,   286,
     2707       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
     2708      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2709       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2710       0,     0,    38,    39,     0,     0,   294,     0,   593,     0,
     2711       0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
     2712       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2713      18,    19,    20,    21,    22,    23,    24,    25,     0,   686,
     2714      26,    27,    28,  1224,     0,    45,    46,   282,   283,    31,
     2715     284,     0,     0,     0,     0,     0,     0,     0,     8,     9,
     2716      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2717      20,    21,    22,    23,    24,    25,   285,    34,    26,    27,
     2718      28,     0,   286,     0,    38,    39,   287,    31,     0,   288,
     2719     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2720       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2721       0,     0,     0,     0,     0,    34,     0,     0,     0,   294,
     2722       0,   379,    38,    39,     0,     0,     0,    45,    46,   296,
     2723     297,   298,   299,   467,     2,   206,     4,     5,     6,     7,
     2724       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2725      18,    19,    20,    21,    22,    23,    24,    25,     0,   257,
     2726      26,    27,    28,     0,     0,    45,    46,     0,     0,    31,
     2727       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2728      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2729      25,     0,     0,    26,    27,    28,     0,    34,     0,    35,
     2730       0,    36,    31,     0,    38,    39,     0,     0,     0,     0,
     2731       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2732      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2733      34,    26,    27,    28,     0,    37,     0,    38,    39,    40,
     2734      31,     0,     0,     0,    -3,     0,    41,    42,     0,     8,
     2735       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2736      19,    20,    21,    22,    23,    24,    25,     0,    34,    26,
     2737      27,    28,    43,    37,    44,   207,    39,    40,    31,     0,
     2738      45,    46,     0,     0,    41,    42,     0,     8,     9,    10,
     2739      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2740      21,    22,    23,    24,    25,  -296,    34,    26,    27,    28,
     2741      43,    37,   270,   336,   337,    40,    31,     0,    45,    46,
     2742       0,     0,    41,    42,     0,     8,     9,    10,    11,    12,
     2743      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2744      23,    24,    25,  -296,    34,    26,    27,    28,   635,     0,
     2745     338,    38,    39,     0,    31,  -296,    45,    46,     8,     9,
     2746      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2747      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2748      28,     0,    34,     0,     0,     0,   635,    31,   338,    38,
     2749      39,     0,     0,  -296,    45,    46,     8,     9,    10,    11,
     2750      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2751      22,    23,    24,    25,     0,    34,    26,    27,    28,     0,
     2752       0,     0,    38,    39,     0,    31,   338,     0,     0,     0,
     2753       0,     0,    45,    46,     8,     9,    10,    11,    12,    13,
     2754      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2755      24,    25,     0,    34,    26,    27,    28,     0,     0,   157,
     2756     207,    39,     0,    31,     0,    45,    46,     8,     9,    10,
     2757      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2758      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2759       0,    34,     0,     0,     0,     0,    31,   270,    38,    39,
     2760       0,     0,     0,    45,    46,     8,     9,    10,    11,    12,
     2761      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2762      23,    24,    25,     0,    34,    26,    27,    28,     0,     0,
     2763       0,    38,    39,     0,    31,   338,     0,     0,     0,     0,
     2764       0,    45,    46,     8,     9,    10,    11,    12,    13,    14,
     2765      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2766      25,     0,    34,    26,    27,    28,     0,     0,   686,    38,
     2767      39,     0,    31,     0,    45,    46,     2,   206,     4,     5,
     2768       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2769      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2770      34,     0,    26,    27,    28,     0,   593,    38,    39,     0,
     2771       0,    31,    45,    46,     0,     0,     0,     0,     0,     0,
     2772       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2773       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2774       0,    35,     0,    36,    44,     0,    38,    39,     0,     0,
     2775      45,    46,   282,   283,     0,   284,  1043,     0,  1044,     0,
     2776       0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,
     2777       0,  1528,  1053,     0,     0,     0,  1054,  1055,     0,    33,
     2778       0,   285,  -416,     0,     0,     0,     0,  1056,     0,     0,
     2779       0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2780       0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
     2781       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2782       0,     0,     0,     0,   294,     0,   379,     0,     0,   171,
     2783       0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
     2784     282,   283,  1058,   284,  1043,     0,  1044,  -131,     0,  1045,
     2785    1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,     0,     0,
     2786    1053,     0,     0,     0,  1054,  1055,     0,    33,     0,   285,
     2787       0,     0,     0,     0,     0,  1056,     0,     0,     0,   287,
     2788       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2789     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2790       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2791       0,     0,   294,     0,   379,     0,     0,   171,     0,     0,
     2792      45,    46,   296,   297,   298,   299,     0,     0,     0,     0,
     2793    1058,     0,     0,     0,     0,  -131,     2,   206,     4,     5,
     2794       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2795      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2796       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2797       0,    31,     0,   282,   283,     0,   284,  1043,     0,  1044,
     2798    1402,  1403,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,
     2799       0,     0,  1528,  1053,     0,     0,     0,  1054,  1055,    34,
     2800      33,    35,   285,    36,     0,     0,    38,    39,  1056,     0,
     2801       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
     2802      42,     0,   292,   293,     0,     0,     0,     0,  1315,     0,
     2803       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2804       0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
     2805     171,     0,     0,    45,    46,   296,   297,   298,   299,     0,
     2806       0,   282,   283,  1058,   284,  1043,     0,  1044,  1402,  1403,
     2807    1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,     0,
     2808       0,  1053,     0,     0,     0,  1054,  1055,     0,    33,     0,
     2809     285,     0,     0,     0,     0,     0,  1056,     0,     0,     0,
     2810     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2811     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2812       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2813       0,     0,     0,   294,     0,   379,     0,     0,   171,     0,
     2814       0,    45,    46,   296,   297,   298,   299,     0,     0,   282,
     2815     283,  1058,   284,  1043,     0,  1044,     0,     0,  1045,  1046,
     2816    1047,  1048,  1049,  1050,  1051,  1052,     0,     0,     0,  1053,
     2817       0,     0,     0,  1054,  1055,     0,    33,     0,   285,     0,
     2818       0,     0,     0,     0,  1056,     0,     0,     0,   287,     0,
     2819       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
     2820       0,     0,     0,     0,     0,     0,   282,   283,     0,   284,
     2821       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2822       0,   294,     0,   379,     0,     0,   171,     0,     0,    45,
     2823      46,   296,   297,   298,   299,   285,     0,     0,     0,  1058,
     2824       0,   286,     0,     0,     0,   287,     0,     0,   288,   289,
     2825     290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
     2826       0,     0,     0,   282,   283,     0,   284,     0,     0,     0,
     2827       0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
     2828     379,     0,   282,   283,     0,   284,    45,    46,   296,   297,
     2829     298,   299,   285,     0,     0,     0,     0,     0,   286,     0,
     2830       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
     2831      42,   285,   292,   293,     0,     0,     0,   286,     0,     0,
     2832       0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2833       0,   292,   293,     0,     0,   294,     0,   379,     0,   282,
     2834     283,     0,   284,   709,    46,   296,   297,   298,   299,     0,
     2835       0,     0,     0,     0,   294,     0,   379,     0,   282,   283,
     2836       0,   284,   344,    46,   296,   297,   298,   299,   285,     0,
     2837       0,     0,     0,     0,   286,     0,     0,     0,   287,     0,
     2838       0,   288,   289,   290,   291,    41,    42,   285,   292,   293,
     2839       0,     0,     0,   286,     0,     0,     0,   287,     0,     0,
     2840     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
     2841       0,   506,     0,     0,     0,   282,   283,     0,   284,    45,
     2842      46,   296,   297,   298,   299,     0,     0,     0,     0,     0,
     2843     294,     0,     0,     0,   282,   283,     0,   284,    45,    46,
     2844     296,   297,   298,   299,   285,     0,     0,     0,     0,     0,
     2845     286,     0,     0,     0,   287,     0,     0,   288,   289,   290,
     2846     291,    41,    42,   285,   292,   293,     0,     0,     0,   286,
     2847       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
     2848      41,    42,     0,   292,   293,     0,     0,   511,     0,     0,
     2849       0,     0,     0,     0,     0,    45,    46,   296,   297,   298,
     2850     299,     0,     0,     0,     0,     0,   514,     0,     0,     0,
     2851       0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
     2852       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2853      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2854      22,    23,    24,    25,     0,     0,     0,     0,     0,     0,
     2855       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
     2856       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2857       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2858       0,     0,     0,    34,     0,    35,     0,    36,    37,     0,
     2859     174,   175,    40,     0,     0,     0,     0,     0,     0,    41,
     2860      42,   205,     2,   206,     4,     5,     6,     7,     8,     9,
     2861      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2862      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2863      28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    25022864       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25032865       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25042866       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2505        0,     0,    38,    39,     0,     0,  -298,   204,     2,   205,
    2506        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2507       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2508       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2509        0,    44,     0,    31,     0,     0,     0,    45,    46,     0,
     2867       0,     0,   207,    39,   467,     2,   206,     4,     5,     6,
     2868       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2869      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2870       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
     2871      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25102872       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2511        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2512        0,    34,     0,    35,     0,    36,     0,     0,   206,    39,
    2513        2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    2514       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2515       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2516        0,     0,     0,     0,     0,    31,     0,   207,     0,     0,
    2517        0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    2518        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2519        0,     0,     0,    34,     0,    35,     0,    36,    37,     0,
    2520      206,    39,    40,     0,     0,     0,     0,     0,     0,     0,
    2521        0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    2522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2523        0,     0,     0,     0,     0,     0,     0,    43,     0,   207,
    2524        0,     0,     0,     0,     0,    45,    46,     2,   205,     4,
     2873       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2874      35,     0,    36,     0,     0,    38,    39,     2,   206,     4,
    25252875       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25262876      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    25292879       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25302880       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2531       34,     0,    35,     0,    36,     0,     0,    38,    39,     2,
    2532      205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2533       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2534       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2535        0,     0,     0,     0,    31,  -405,   668,     0,     0,     0,
    2536        0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
    2537        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2538        0,     0,    34,     0,    35,     0,    36,     0,     0,    38,
    2539       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2540        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2541        0,     0,     0,  1332,     0,     0,     0,     0,     0,     0,
    2542        0,     0,     0,     0,     0,     0,     0,     0,   668,     0,
    2543        0,     0,     0,     0,    45,    46,     2,   205,     4,     5,
     2881      34,     0,    35,     0,    36,     0,     0,   207,    39
     2882};
     2883
     2884#define yypact_value_is_default(yystate) \
     2885  ((yystate) == (-1338))
     2886
     2887#define yytable_value_is_error(yytable_value) \
     2888  YYID (0)
     2889
     2890static const yytype_int16 yycheck[] =
     2891{
     2892       0,     1,   239,    43,   185,   116,   534,     0,   204,   185,
     2893      43,   185,   185,   281,   185,    43,   521,     1,   601,   185,
     2894     185,   603,   168,   169,   105,   750,     0,     1,   219,   621,
     2895     349,   876,    32,   345,    49,   750,     0,   693,   603,    32,
     2896     156,   750,   513,    43,  1023,   757,   647,   572,   186,    49,
     2897    1325,   985,   186,   492,   189,     0,    49,   496,    32,  1022,
     2898    1023,   196,   156,    63,    32,  1402,    66,   601,    32,    69,
     2899      63,     0,    28,    66,   155,   187,    69,   109,   601,    39,
     2900      85,    43,   601,     0,   265,    69,    57,    32,   349,   265,
     2901     201,   265,   265,    43,   265,    69,    39,   601,   113,   265,
     2902     265,  1035,    63,    32,    51,   105,   364,   256,   113,   418,
     2903     368,   601,  1042,   113,    39,    32,   116,   117,    72,   696,
     2904      43,   109,    78,   111,   604,   601,   109,   876,   266,   438,
     2905     610,   146,   266,   268,   490,   106,  1473,   446,   109,    96,
     2906      39,   734,    72,   426,   427,   185,   146,   147,  1423,   261,
     2907     262,   111,   185,  1456,   147,   155,   156,   185,  1054,  1055,
     2908     160,    95,   109,   109,   110,   122,   109,   160,   111,    64,
     2909     482,   132,     0,     1,     0,    72,    82,    96,   132,    72,
     2910     636,   637,   907,   688,   284,   185,   186,  1490,   323,  1492,
     2911      83,    84,   907,   186,   209,   129,   331,   653,   907,   334,
     2912      82,   201,   132,   122,    32,   111,    32,   307,   308,   209,
     2913     109,   494,   111,  1117,   109,   719,   209,  1121,   111,   410,
     2914     117,   221,   876,   185,   239,   265,   294,   488,   221,   719,
     2915     513,   814,   265,    39,  1130,   185,   504,   265,    66,   239,
     2916      66,    69,    11,   719,   826,   345,   902,   218,    39,   605,
     2917    1229,   251,  1505,   609,   128,   711,   271,   131,   251,   259,
     2918     341,   826,   185,   398,   264,   265,   266,   402,   406,   418,
     2919     795,   271,   406,   266,   630,   109,   988,   251,   634,  1532,
     2920     814,   381,    39,   251,   603,   396,   116,   251,  1406,   438,
     2921     371,   814,   307,  1042,   294,   814,   579,   446,    44,    45,
     2922    1279,   272,   107,   109,   112,   111,   251,   307,   279,   621,
     2923     814,   256,    82,   424,   626,  1278,  1279,   433,   109,   430,
     2924     111,   109,   251,   323,   814,   926,   131,   256,   328,   112,
     2925     345,   908,   590,   116,   251,   328,   816,   228,   814,   433,
     2926     110,   341,   480,   131,   479,   345,   480,   803,   114,   349,
     2927     350,   934,   109,   935,   111,     3,   247,    70,   426,   427,
     2928      73,   110,  1292,    76,   364,    78,   116,     3,   368,   115,
     2929    1215,   371,    85,   682,   632,    49,   953,   348,    44,    45,
     2930     130,   130,  1500,    44,    45,    90,    91,  1505,   482,   116,
     2931      72,  1045,    72,   221,   365,   221,   396,    79,   369,    79,
     2932     934,    83,    84,    83,    84,    72,   406,  1525,   110,  1001,
     2933     526,   426,   427,   406,  1532,   934,    83,    84,   112,  1398,
     2934     125,   126,   116,   251,   424,   251,   426,   427,   130,   111,
     2935     430,   111,   526,   433,   746,  1398,   571,   572,   506,   113,
     2936    1505,   110,   109,   511,   525,   116,   514,   109,   114,   111,
     2937     550,   551,   552,   114,   454,     0,  1390,  1391,  1051,   130,
     2938    1525,   130,   464,   109,   969,   116,  1215,  1532,  1252,   737,
     2939    1254,  1255,   472,   418,    72,   591,    74,    75,     0,   494,
     2940     480,   132,   482,   109,   484,    83,    84,   480,   488,   418,
     2941     110,   484,   848,   438,   494,   109,   116,   591,   513,   212,
     2942     568,   446,   648,   109,   943,   111,   506,   826,   508,   438,
     2943     484,   511,   983,   513,   514,  1445,   114,   446,   131,  1101,
     2944     484,   521,  1452,   658,   350,   525,   526,   662,  1129,    72,
     2945    1010,  1011,   111,   682,   113,   209,    79,   119,   120,   484,
     2946      83,    84,  1119,  1292,   655,   657,    72,   805,    74,    75,
     2947     688,   130,   810,   482,   688,   484,   112,    83,    84,   708,
     2948     116,  1215,   116,   116,   579,   826,   279,   484,   111,   116,
     2949     116,   571,   572,  1503,   111,   110,   113,   130,   132,   579,
     2950     109,   116,  1087,   109,   940,   132,   132,  1092,   114,   109,
     2951     590,   591,   116,   130,   906,   595,  1476,   271,   109,   110,
     2952     111,   601,  1482,   603,  1181,  1182,   621,    72,   132,    74,
     2953      75,   626,     4,     5,     6,     7,     8,     9,    83,    84,
     2954     294,   621,  1502,   110,   117,   112,   626,  1507,   628,   116,
     2955     123,   124,   632,   307,   109,   635,   636,   637,    72,   352,
     2956     898,   354,    76,   116,   131,   132,   111,   473,   109,    83,
     2957      84,   622,   746,   653,  1308,   655,   484,   757,   484,   132,
     2958     795,     0,     1,   912,   745,   914,   116,   638,   110,   671,
     2959     116,   116,   863,   110,   591,   109,   112,    69,   939,    71,
     2960     116,   652,   132,   117,   118,   685,   132,   132,   688,  1001,
     2961      29,    30,   883,    32,   109,   811,  1445,   110,   116,  1292,
     2962     116,   110,   110,  1452,    43,   116,  1360,   116,   945,  1363,
     2963      49,   711,   712,   713,   132,   110,   132,   811,    57,   719,
     2964     720,   132,   116,   869,    63,   110,   907,    66,   109,   442,
     2965      69,   907,   116,   907,   907,   112,   907,   682,   132,   116,
     2966     132,   907,   907,    82,    83,   745,   746,    72,   132,    30,
     2967     750,   751,  1406,   682,  1503,   110,   112,  1411,    83,    84,
     2968     109,   116,   733,   708,    85,    86,    87,   106,    88,    89,
     2969     109,   909,   115,  1366,   109,   909,   111,   116,   913,   708,
     2970     454,  1309,   117,   118,  1509,  1439,    92,    93,   109,   791,
     2971     111,   132,   113,   114,  1509,   795,   109,   623,   110,   801,
     2972    1509,    82,    83,   803,   116,   805,    64,   807,   147,  1386,
     2973     810,   811,   906,   815,   814,   109,   155,   746,  1014,   112,
     2974     109,   160,   111,   132,   905,  1402,   826,   114,   117,   118,
     2975     115,   116,   506,    72,   508,    74,    75,   511,  1150,   114,
     2976     514,   109,   110,   111,    83,    84,   185,   186,    72,  1117,
     2977      74,    75,    76,  1121,  1122,   990,  1449,   114,  1451,    83,
     2978      84,   110,   201,   506,   109,   508,  1124,   116,   511,  1523,
     2979     209,   514,  1007,   699,   110,  1529,   876,   110,   111,   218,
     2980     116,    72,   221,    74,    75,   109,  1540,   713,   132,   228,
     2981    1544,  1037,    83,    84,   811,  1472,  1473,   109,   898,   111,
     2982     132,  1001,   876,    72,   243,   905,   906,   907,   247,   909,
     2983      79,  1504,   251,   252,    83,    84,   110,  1229,   109,    58,
     2984      59,   921,   116,   114,    44,    45,   265,   266,  1022,    82,
     2985     945,   876,   110,   272,   934,   935,   112,   110,   116,   939,
     2986     279,   109,  1042,   116,   944,   945,   110,   876,   109,  1087,
     2987    1085,   110,   116,  1087,  1092,   115,   116,   116,  1092,   876,
     2988     944,    72,   243,    74,    75,    76,   109,     1,   111,   969,
     2989     944,  1239,    83,    84,   117,   118,   110,   906,   110,   127,
     2990    1485,   807,   116,    82,   116,     3,  1001,   553,   554,   328,
     2991    1125,   110,    10,    11,    12,    13,    14,   116,  1109,   561,
     2992     562,  1001,    10,    11,    12,    13,    14,   110,   110,   348,
     2993     349,   685,   118,   116,   116,    49,   128,  1019,  1020,   110,
     2994     733,    39,  1022,  1023,    94,   116,   365,   555,   556,  1534,
     2995     369,    39,    10,    11,    12,    13,    14,   110,   109,   110,
     2996     111,   380,  1042,   116,     3,   109,   110,   111,   876,    67,
     2997     876,    10,    11,    12,    13,    14,  1150,   396,  1326,    67,
     2998     111,    39,  1330,   557,   558,   559,   560,   406,  1042,   131,
     2999     109,   105,    58,    59,    60,  1077,  1078,   109,   109,   113,
     3000      39,   109,  1082,   111,   109,   424,   111,  1087,   109,    67,
     3001     111,   430,  1092,   432,    72,   112,   112,  1042,    76,   380,
     3002     109,  1101,   111,   110,   110,    83,    84,   112,    67,  1109,
     3003     110,    72,   146,  1042,   110,    76,   944,   110,   110,     0,
     3004       1,   155,    83,    84,  1124,  1042,  1194,  1195,   467,  1197,
     3005    1211,   109,   109,   472,   111,   111,  1204,     0,  1206,   117,
     3006     118,   480,   112,   114,   116,   484,   131,   114,   109,   488,
     3007    1150,    32,   491,   110,   493,   109,   117,   118,   114,  1427,
     3008     112,     4,     5,     6,     7,     8,     9,   110,   112,    32,
     3009      72,   205,    74,    75,    76,   209,   112,   112,  1004,   112,
     3010      43,    83,    84,   130,  1278,    66,    49,   116,    69,   528,
     3011      33,   130,  1192,  1193,   533,    29,   130,   110,   110,     1,
     3012      63,   112,   110,    66,   114,   239,    69,   109,   112,  1193,
     3013     491,  1211,   493,   116,  1042,  1215,  1042,   115,   115,  1193,
     3014      72,  1150,    74,    75,    76,  1227,    69,   115,    71,  1229,
     3015     109,    83,    84,  1233,   110,   130,   132,   271,   110,   116,
     3016     274,  1215,   110,   110,   583,     3,   110,   921,   110,  1233,
     3017     116,   590,    10,    11,    12,    13,    14,  1259,   115,  1233,
     3018     294,   110,   601,   110,   603,  1267,  1268,  1269,   110,   110,
     3019    1215,  1382,   110,   307,   110,   156,    29,   110,  1278,  1279,
     3020     110,    39,  1519,   622,   147,   110,  1215,  1287,   110,   110,
     3021     110,   110,  1292,   130,  1362,   110,   131,   160,  1215,   638,
     3022    1229,   112,   116,   112,   643,   110,   110,   341,   116,    67,
     3023     110,   345,   130,   652,   109,   654,   655,   656,  1292,   116,
     3024     114,   112,   185,   186,   110,  1325,   110,   110,  1509,  1331,
     3025     364,   116,   112,  1509,   368,  1509,  1509,   371,  1509,   110,
     3026     221,  1325,   116,  1509,  1509,   110,   209,  1292,   116,   688,
     3027     110,  1325,   109,   692,   109,   694,   112,   109,   221,   698,
     3028     109,   109,   643,  1292,  1192,  1193,  1192,   706,   130,   112,
     3029     251,   132,  1510,   115,  1485,  1292,  1510,   464,   110,   110,
     3030     719,   720,  1382,   110,   128,   115,   115,  1215,   251,  1215,
     3031     114,   112,   426,   427,   733,    72,  1534,   132,  1398,    76,
     3032    1534,    49,   265,   110,   112,  1233,    83,    84,  1082,   112,
     3033    1381,   692,   116,   694,   110,    63,   110,   698,    66,   110,
     3034     454,    69,   112,  1423,   112,   112,   110,   112,    47,   112,
     3035     112,   132,   109,   467,   111,   132,   115,   132,   110,  1423,
     3036     117,   118,   115,   132,   110,  1445,   132,   115,   112,  1423,
     3037     252,   112,  1452,   112,  1454,   130,  1456,   112,   492,  1287,
     3038     494,  1287,   496,   112,  1292,   328,  1292,   112,   110,  1509,
     3039     110,  1445,   506,   112,   508,   814,  1509,   511,  1452,   513,
     3040     514,  1509,   112,   109,   109,  1485,   349,   826,   109,    60,
     3041    1490,   525,  1492,   110,   110,   109,   114,  1325,   132,   147,
     3042    1445,   112,   112,  1503,  1519,   110,   112,  1452,   110,  1509,
     3043    1510,    96,   160,    96,   109,   109,  1445,  1510,   115,  1519,
     3044      57,   110,   110,  1452,    55,   132,   110,    42,  1445,  1503,
     3045     869,   110,     0,     1,  1534,  1452,   875,   130,   186,   116,
     3046     671,  1534,   132,   406,   110,   579,     4,     5,     6,     7,
     3047       8,     9,   433,   110,   132,    96,   590,    96,  1503,   898,
     3048     132,   209,   110,   132,    32,   110,    97,   132,   907,   106,
     3049     909,   115,   109,   221,  1503,   110,   110,   916,    85,    86,
     3050      87,    49,   112,   112,   671,   132,  1503,   621,   869,   109,
     3051     132,   115,   626,   115,   875,  1423,   110,   110,   632,   132,
     3052     939,    69,   109,   484,   111,   110,   113,   114,   110,   667,
     3053    1058,    69,   563,    71,   564,   979,   565,  1445,   155,  1445,
     3054     959,   484,   567,  1215,  1452,   488,  1452,    72,   566,    74,
     3055      75,    76,  1473,  1368,   973,   916,  1544,   105,    83,    84,
     3056    1122,  1330,   981,  1302,  1073,   526,   985,   685,  1452,   685,
     3057     914,   685,  1092,   698,   973,    66,   922,   583,   869,   649,
     3058     791,   941,   193,   723,   109,   467,   111,   484,  1233,    -1,
     3059     801,    82,   117,   118,   733,  1503,    -1,  1503,   571,   147,
     3060     328,   218,   571,    -1,   815,   216,   571,   155,   156,   723,
     3061      -1,    -1,   973,    -1,    -1,   226,  1035,    -1,    -1,    -1,
     3062      -1,    -1,    -1,    -1,   791,    -1,   117,    -1,    -1,    -1,
     3063     591,   745,    -1,    -1,   801,    -1,    -1,    -1,   186,    -1,
     3064      -1,    -1,    -1,    -1,    -1,    -1,   528,    -1,   815,    -1,
     3065      -1,   533,    -1,   201,  1073,   272,   204,   205,   601,    -1,
     3066     603,   209,   279,    -1,    -1,    -1,    -1,    -1,  1087,   160,
     3067      -1,    -1,    -1,  1092,   635,   636,   637,    -1,   406,    -1,
     3068      -1,    -1,   230,   294,    -1,    -1,   234,    -1,   236,    -1,
     3069    1109,   805,   653,    -1,    -1,    -1,   810,   245,    -1,    -1,
     3070    1454,   583,  1456,   251,    -1,    -1,    -1,    -1,   256,    -1,
     3071     696,    -1,  1073,    -1,    -1,    -1,    -1,    -1,   266,    -1,
     3072      -1,    72,    -1,    74,    75,    76,   274,    -1,    -1,    -1,
     3073     221,   348,    83,    84,    -1,    -1,  1490,    -1,  1492,    -1,
     3074      -1,    -1,    -1,    -1,    -1,   688,    -1,    -1,   365,    -1,
     3075     711,    -1,   369,    -1,    -1,    -1,     0,    -1,   109,    -1,
     3076     111,    10,    11,    12,    13,    14,   117,   118,   259,  1188,
     3077      -1,    -1,   654,   264,   656,    -1,   719,   720,    -1,   130,
     3078      -1,    -1,    -1,    -1,   898,    -1,    -1,    -1,    32,    -1,
     3079      39,   905,  1211,   341,    -1,    -1,    -1,   345,    -1,    -1,
     3080      -1,    -1,   788,   351,    -1,    -1,    -1,   921,  1019,  1020,
     3081      -1,    -1,    -1,    -1,    -1,   432,   364,    -1,    67,    -1,
     3082     368,    -1,    -1,   371,   706,    69,    -1,  1188,    -1,   943,
     3083     944,   945,   443,  1252,    -1,  1254,  1255,    -1,    -1,    -1,
     3084      -1,    -1,   803,    -1,    10,    11,    12,    13,    14,    -1,
     3085     811,    -1,  1019,  1020,    -1,    -1,    -1,    -1,   469,   350,
     3086     109,    -1,   111,    -1,    -1,    -1,  1077,  1078,   117,   118,
     3087     418,   814,    -1,    39,    -1,    -1,    -1,    -1,    -1,   865,
     3088      -1,    -1,    -1,   826,    -1,   433,    -1,  1001,    -1,    -1,
     3089     438,    -1,    -1,    -1,    -1,   506,    -1,    -1,   446,    -1,
     3090     511,    67,    -1,   514,    -1,    -1,    -1,    -1,    -1,    -1,
     3091    1077,  1078,   156,    -1,    -1,   876,   464,    -1,    -1,   467,
     3092      -1,    -1,   908,    -1,    10,    11,    12,    13,    14,    -1,
     3093      -1,    -1,    -1,    -1,   482,    -1,   484,    -1,    -1,    -1,
     3094     431,    -1,    -1,   109,   492,   111,    -1,    -1,   496,    -1,
     3095      -1,   117,   118,    39,    -1,    -1,    -1,    -1,    -1,    -1,
     3096      -1,    -1,  1381,  1382,   907,    -1,   909,   953,  1082,    -1,
     3097      -1,  1390,  1391,   590,    -1,    -1,    -1,   525,   526,    -1,
     3098      -1,    67,   473,   944,    -1,    -1,   230,    -1,    -1,    -1,
     3099      -1,    -1,    -1,    -1,    -1,    -1,   939,    -1,    -1,    -1,
     3100      -1,    -1,   988,    -1,    -1,   622,    -1,   251,    -1,  1428,
     3101    1124,    -1,   256,    -1,    -1,    -1,    -1,     0,    -1,    -1,
     3102      -1,   638,    -1,   109,   572,   111,    -1,    -1,    -1,    -1,
     3103      -1,   117,   118,    -1,    72,   652,    74,    75,    76,    -1,
     3104      -1,    -1,   590,   591,    -1,    83,    84,    -1,  1259,    32,
     3105      -1,    -1,    -1,  1039,    -1,   603,  1267,  1268,  1269,   670,
     3106    1227,  1022,  1023,    -1,    -1,    -1,  1485,  1486,   679,    -1,
     3107      -1,   109,   683,   621,    -1,    -1,  1495,   959,   626,   117,
     3108     118,  1042,    -1,    -1,   632,    -1,    69,   635,   636,   637,
     3109    1509,  1510,  1259,    -1,    -1,    -1,    -1,  1211,    -1,   981,
     3110    1267,  1268,  1269,   985,   595,   653,    72,   351,    74,    75,
     3111      76,    -1,    -1,    -1,    -1,  1534,   733,    83,    84,  1233,
     3112    1331,    -1,    -1,   671,    -1,    -1,    10,    11,    12,    13,
     3113      14,    -1,   623,  1119,   682,    -1,    -1,   628,    -1,    -1,
     3114      -1,    -1,    -1,   109,  1087,   111,    -1,    -1,    -1,  1092,
     3115      -1,   117,   118,  1035,    -1,    39,    -1,    -1,    -1,    -1,
     3116     708,    -1,    -1,   711,  1331,    -1,    -1,    66,    -1,    -1,
     3117      -1,    -1,   720,   156,   418,   723,    -1,    -1,    -1,    -1,
     3118      -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,   433,
     3119      74,    75,    76,    -1,   438,  1181,  1182,   745,   746,    83,
     3120      84,    -1,   446,   751,    -1,    -1,    -1,    -1,   699,    -1,
     3121      -1,  1325,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,
     3122     464,    -1,   713,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3123      -1,  1192,  1193,   117,   118,    -1,    -1,    -1,   482,    -1,
     3124     484,    -1,    -1,   791,    -1,    -1,    -1,    -1,    -1,    -1,
     3125      -1,    -1,    -1,   801,  1215,   803,    -1,   805,    -1,    -1,
     3126     808,   160,   810,   811,    -1,    -1,    -1,   815,   251,    -1,
     3127      -1,    -1,  1233,   256,    -1,    -1,    -1,   825,    -1,    -1,
     3128      -1,   898,   526,    -1,    -1,    -1,    -1,    -1,    -1,   900,
     3129      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3130      19,    20,    21,    22,    23,    24,    25,    26,    27,  1423,
     3131      -1,    30,    31,    32,    -1,    -1,   807,  1278,  1279,    -1,
     3132      39,     0,   221,    -1,    -1,    -1,  1287,    -1,   876,    -1,
     3133      -1,  1292,    -1,    -1,    72,    -1,    74,    75,    76,    -1,
     3134    1454,    -1,  1456,    -1,    -1,    83,    84,   591,    67,    -1,
     3135     898,    -1,    -1,    32,    -1,    74,    75,   905,   906,    -1,
     3136     259,   909,    -1,    -1,  1325,   264,    -1,    -1,   351,    -1,
     3137    1252,   109,  1254,  1255,    -1,    -1,  1490,    -1,  1492,   117,
     3138     118,    -1,    -1,    -1,    -1,    -1,    -1,   935,    -1,    -1,
     3139      69,   635,   636,   637,    -1,   943,   944,    -1,   117,   118,
     3140    1386,    -1,    -1,    -1,    -1,  1519,    -1,    -1,    -1,   653,
     3141      -1,    -1,    -1,    -1,    -1,    -1,  1402,    -1,    -1,    -1,
     3142      -1,    -1,    -1,    -1,    -1,    -1,    -1,   671,    -1,    -1,
     3143      -1,    -1,    -1,    -1,    -1,   418,    -1,  1398,   682,    -1,
     3144      -1,    -1,  1053,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3145     433,   350,    -1,  1001,    -1,   438,    -1,    -1,    -1,    -1,
     3146      -1,    -1,  1423,   446,   708,    -1,  1014,   711,    -1,    -1,
     3147      -1,  1019,  1020,    -1,  1022,  1023,    -1,   156,    -1,    -1,
     3148      -1,   464,    -1,    -1,  1445,    -1,  1472,  1473,    -1,    -1,
     3149      -1,  1452,    -1,    -1,  1042,    -1,    -1,    -1,    -1,   482,
     3150      -1,   484,   746,    -1,    -1,    -1,    -1,    -1,  1390,  1391,
     3151      -1,    -1,    -1,  1004,    -1,    -1,    10,    11,    12,    13,
     3152      14,    -1,    10,    11,    12,    13,    14,    -1,    -1,  1077,
     3153    1078,    -1,   431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3154      -1,    -1,  1503,   526,    -1,    39,  1428,   791,    -1,    -1,
     3155      -1,    39,    -1,    -1,    -1,    -1,    -1,   801,    -1,   803,
     3156      -1,    -1,    -1,    -1,   808,    -1,  1509,   811,    -1,    -1,
     3157      -1,   815,   251,    67,   473,    -1,  1124,   256,    72,    67,
     3158      74,    75,    76,    -1,    72,    -1,    74,    75,    76,    83,
     3159      84,    -1,    -1,    -1,  1211,    83,    84,    -1,    -1,    -1,
     3160      -1,    -1,  1150,    -1,  1486,    -1,    -1,    -1,   591,    -1,
     3161      -1,    -1,    -1,  1495,    -1,   109,    -1,   111,    -1,    -1,
     3162      -1,   109,    -1,   117,   118,    -1,    -1,    -1,    -1,   117,
     3163     118,    -1,   876,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3164      75,    76,    -1,    -1,    -1,  1193,    -1,    -1,    83,    84,
     3165      -1,    -1,   635,   636,   637,    -1,    -1,    -1,    -1,    -1,
     3166      -1,    -1,   906,  1211,    -1,    -1,    -1,  1215,    -1,    -1,
     3167     653,    -1,   351,    -1,   109,    -1,   111,    -1,    -1,  1227,
     3168      -1,  1229,   117,   118,    -1,  1233,    66,    -1,   671,    -1,
     3169    1301,    -1,    -1,    -1,    -1,    75,   595,    -1,    -1,   682,
     3170      -1,  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3171      -1,  1259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1267,
     3172    1268,  1269,    -1,    -1,   623,   708,    -1,    -1,   711,   628,
     3173    1278,  1279,    -1,    -1,    -1,    -1,    -1,   117,     0,   418,
     3174      -1,    -1,    -1,    -1,  1292,    -1,    -1,    -1,    -1,    -1,
     3175      -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,   438,
     3176      -1,    -1,    -1,   746,  1381,    -1,    -1,   446,    -1,    -1,
     3177      32,    -1,    -1,    -1,    -1,  1019,  1020,  1325,  1022,  1023,
     3178     160,    -1,    -1,  1331,    -1,   464,    -1,    -1,    -1,    -1,
     3179      -1,    -1,    -1,    -1,    -1,    -1,  1287,    -1,  1042,    -1,
     3180     699,    -1,    -1,   482,    -1,   484,    -1,    69,   791,    -1,
     3181      -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,   801,    -1,
     3182     803,    -1,    -1,    -1,    -1,   808,    -1,    -1,   811,    -1,
     3183      -1,    -1,   815,  1077,  1078,    -1,    -1,    -1,    -1,    -1,
     3184      -1,   221,  1453,    -1,  1455,    -1,    -1,   526,    -1,    -1,
     3185    1398,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3186      53,    -1,    55,    -1,    -1,    58,    59,    60,    -1,    62,
     3187      -1,    -1,    -1,    -1,    -1,  1423,    -1,    -1,  1489,   259,
     3188    1491,    39,    -1,    76,   264,    -1,    -1,    -1,    -1,    -1,
     3189      -1,    -1,    -1,   876,   156,    88,    89,  1445,    -1,   279,
     3190      -1,    -1,    -1,    -1,  1452,    -1,  1150,    -1,   807,    67,
     3191      -1,    -1,   591,    -1,    72,    -1,    74,    75,    76,    -1,
     3192      -1,    -1,  1533,   906,  1535,    83,    84,    -1,    -1,    -1,
     3193      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1548,  1549,    -1,
     3194      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1193,
     3195      -1,   109,    -1,   111,    -1,  1503,   635,   636,   637,   117,
     3196     118,    -1,  1510,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3197     350,  1215,    -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,
     3198      -1,    -1,    -1,  1227,    -1,  1229,    -1,    -1,    -1,   251,
     3199      -1,    -1,   671,    -1,   256,    -1,    -1,    -1,    -1,    -1,
     3200      -1,    -1,    -1,   682,    -1,    -1,    -1,    -1,    -1,    10,
     3201      11,    12,    13,    14,    -1,  1259,    -1,    -1,    -1,    -1,
     3202      -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,    -1,   708,
     3203      -1,    -1,   711,    -1,  1278,  1279,  1019,  1020,    39,  1022,
     3204    1023,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1292,    -1,
     3205      -1,   431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1042,
     3206      -1,    -1,    -1,    -1,    -1,    -1,    67,   746,   448,    -1,
     3207      -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
     3208      -1,    -1,    83,    84,    -1,    -1,    -1,  1331,    -1,   351,
     3209      -1,    -1,    -1,   473,  1077,  1078,    26,    27,    28,    -1,
     3210      -1,    -1,    -1,    -1,    -1,  1004,    -1,    -1,   109,    -1,
     3211      -1,    -1,   791,    -1,    -1,    -1,   117,   118,    -1,    -1,
     3212      -1,    -1,   801,    -1,   803,    -1,    -1,    -1,    -1,   808,
     3213      -1,    -1,   811,    -1,    -1,    -1,   815,    -1,    97,    98,
     3214      99,   100,   101,   102,   103,   104,   105,   106,   107,    -1,
     3215      -1,   344,    -1,   346,  1398,    -1,   418,    -1,    -1,    -1,
     3216      -1,    -1,    -1,    -1,   357,   358,    -1,  1150,    98,    -1,
     3217     100,   433,   131,    -1,    -1,    -1,   438,    -1,    -1,    -1,
     3218      -1,    -1,    -1,    -1,   446,    -1,    -1,    -1,    -1,    -1,
     3219      -1,    -1,    -1,    -1,    -1,    -1,    -1,   876,    -1,    -1,
     3220      -1,  1445,   464,    -1,    -1,    -1,    -1,    -1,  1452,    -1,
     3221    1193,    -1,    -1,    -1,    -1,   595,    -1,    -1,    -1,    -1,
     3222     482,    -1,   484,    -1,    -1,    -1,    -1,   906,    -1,    -1,
     3223      -1,    -1,  1215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3224      -1,    -1,    -1,   623,  1227,    -1,  1229,    -1,   628,    -1,
     3225      -1,   181,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1503,
     3226      -1,   191,   192,    -1,   526,    -1,   196,    -1,   198,   199,
     3227      -1,    -1,    -1,    -1,    -1,    -1,  1259,    -1,    -1,    -1,
     3228      -1,    -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,    -1,
     3229      -1,    -1,    -1,  1192,    -1,  1278,  1279,    -1,    -1,    -1,
     3230      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1292,
     3231      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   699,
     3232      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   591,
     3233      -1,    -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,
     3234    1019,  1020,    -1,  1022,  1023,    -1,    -1,    -1,  1331,    -1,
     3235      -1,    -1,    -1,   733,    -1,    -1,    -1,    -1,    -1,    -1,
     3236      -1,    -1,    -1,  1042,     7,    -1,    -1,    10,    11,    12,
     3237      13,    14,    -1,   635,   636,   637,    -1,    -1,    -1,    -1,
     3238      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1287,    -1,
     3239      -1,   653,    -1,    -1,    37,    38,    39,    40,  1077,  1078,
     3240      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   671,
     3241      -1,    -1,    -1,    -1,    -1,  1398,    -1,    -1,    -1,    -1,
     3242     682,    -1,    -1,    66,    67,    -1,    -1,   807,    -1,    72,
     3243      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3244      83,    84,    -1,    86,    87,    -1,   708,    -1,    -1,   711,
     3245      -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,
     3246      -1,    -1,  1445,    -1,    -1,    -1,   109,    -1,   111,  1452,
     3247      -1,  1150,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3248      -1,    -1,    39,    -1,   746,    -1,    -1,    -1,    -1,    -1,
     3249      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3250      -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,   702,
     3251      67,    -1,    -1,    -1,  1193,    72,   709,   710,    -1,    76,
     3252    1503,   714,    -1,    -1,    -1,    -1,    83,    84,    -1,   791,
     3253      -1,    -1,    -1,   726,    -1,    -1,  1215,    -1,   731,   801,
     3254      -1,   803,    -1,    -1,    -1,    -1,   808,    -1,  1227,   811,
     3255    1229,    -1,   109,   815,    -1,    -1,    -1,    -1,    -1,    -1,
     3256     117,   118,    -1,    -1,    -1,    -1,   759,    -1,    -1,    -1,
     3257      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3258    1259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1267,  1268,
     3259    1269,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1278,
     3260    1279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3261      -1,    -1,    -1,  1292,   876,    -1,    -1,    -1,    -1,    -1,
     3262      -1,    -1,    -1,    -1,  1004,    -1,    -1,    -1,    -1,    -1,
     3263      -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
     3264      -1,    -1,    -1,    -1,   906,   575,   576,    -1,    -1,    -1,
     3265      -1,    -1,  1331,    -1,    -1,    -1,    -1,    -1,    49,    -1,
     3266      -1,    -1,    37,    38,    39,    40,   859,   860,   861,   862,
     3267      -1,   864,    -1,    -1,   604,    66,    -1,   607,   608,    -1,
     3268     610,    -1,   612,   613,    -1,    -1,   879,   617,   618,    -1,
     3269      -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3270     893,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3271      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,  1398,
     3272      -1,    -1,   113,    -1,    -1,    -1,   117,    -1,    -1,    -1,
     3273      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3274     933,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3275      -1,    -1,    -1,    -1,    -1,   146,    -1,  1019,  1020,    -1,
     3276    1022,  1023,    -1,    -1,    -1,   156,  1445,    -1,    -1,   160,
     3277      -1,    -1,    -1,  1452,    -1,    -1,    -1,    -1,    -1,    -1,
     3278    1042,    -1,    -1,    -1,    -1,   978,    -1,    -1,    -1,    -1,
     3279      -1,   984,    -1,    -1,    -1,    -1,   989,    -1,    -1,    -1,
     3280      -1,   994,    -1,   996,    -1,    -1,    -1,  1000,    -1,  1002,
     3281    1003,    -1,  1192,  1006,    -1,  1077,  1078,    -1,   209,    -1,
     3282      -1,    -1,  1015,    -1,  1503,   755,   756,    -1,    -1,    -1,
     3283     221,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3284    1033,  1034,    -1,    -1,    -1,    -1,    -1,    -1,   239,    10,
     3285      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3286      21,    22,    23,    24,    25,    26,    27,  1060,    -1,    -1,
     3287    1063,    -1,    -1,   264,    -1,    -1,    -1,    -1,    39,    -1,
     3288     271,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1150,    -1,
     3289      -1,    -1,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,
     3290      -1,    -1,    -1,   294,    -1,    -1,    67,  1287,    -1,    -1,
     3291      -1,    -1,    -1,  1106,    -1,    -1,   307,    -1,    -1,  1112,
     3292    1113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3293      -1,  1193,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1132,
     3294      -1,    -1,    -1,  1136,    -1,    -1,    -1,    -1,  1141,    -1,
     3295      -1,    -1,    -1,  1215,   345,    -1,    -1,    -1,    -1,   350,
     3296      -1,  1154,    -1,    -1,    98,  1227,   100,  1229,    -1,    -1,
     3297      -1,    -1,    -1,    -1,  1167,    -1,  1169,  1170,  1171,  1172,
     3298      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
     3299      -1,   125,  1185,    -1,  1187,    -1,    -1,  1259,  1191,    -1,
     3300      -1,    -1,    -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,
     3301      -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,    -1,    -1,
     3302      66,    -1,    -1,    -1,    -1,    -1,    -1,  1220,  1221,    75,
     3303    1292,    77,    -1,    79,    -1,   426,   427,    -1,    -1,    -1,
     3304      86,    -1,   433,    -1,    -1,    -1,    -1,   181,    -1,    -1,
     3305      -1,    -1,    -1,    -1,    -1,   189,    -1,   191,   192,    -1,
     3306      -1,    -1,   196,   454,   198,   199,    -1,    -1,    -1,  1331,
     3307      -1,   117,    -1,   119,   120,   121,    -1,  1270,  1271,    -1,
     3308      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1280,    -1,    -1,
     3309      -1,   482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3310      -1,    -1,    -1,   494,    -1,    -1,    -1,    -1,    -1,    -1,
     3311      -1,    -1,    -1,    -1,   160,   506,    -1,   508,    -1,    -1,
     3312     511,    -1,   513,   514,    -1,    -1,    -1,    -1,    -1,    -1,
     3313      -1,    -1,    -1,    -1,   268,   526,  1398,    -1,    -1,    -1,
     3314      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1341,  1079,
     3315    1343,  1344,  1345,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3316      -1,    -1,  1355,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3317      -1,  1364,    -1,    -1,    -1,   221,    -1,   223,   224,   225,
     3318      -1,    -1,    -1,  1445,    -1,    -1,    -1,    -1,   579,    -1,
     3319    1452,    -1,    -1,    -1,    -1,    -1,  1389,    -1,    -1,    -1,
     3320     591,    -1,    -1,    -1,   595,    -1,    -1,    -1,    -1,    -1,
     3321      -1,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,    -1,
     3322      -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,
     3323     621,    -1,    -1,   279,    -1,   626,    -1,    -1,    -1,  1432,
     3324    1433,  1503,    -1,    -1,   635,   636,   637,    -1,    -1,    -1,
     3325      -1,    -1,  1445,    -1,    -1,    -1,    -1,    -1,    -1,  1452,
     3326      -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3327      -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3328    1210,   101,   328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3329      -1,  1484,    -1,    -1,   685,  1488,    -1,    -1,    -1,    -1,
     3330      -1,    -1,    -1,    -1,   350,    -1,    -1,    -1,    -1,   355,
     3331     356,    -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,
     3332     711,    -1,   713,  1516,    -1,  1518,    -1,    -1,    -1,    -1,
     3333      -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,    -1,
     3334      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3335      -1,   171,    -1,  1546,  1547,   746,    -1,    -1,    -1,    -1,
     3336     406,  1554,  1555,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3337      -1,    -1,    -1,    -1,   194,    -1,    -1,    -1,   424,    37,
     3338      38,    -1,    40,   429,    -1,   431,    -1,    -1,   208,    -1,
     3339      -1,    -1,    -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,
     3340      -1,    -1,   448,    -1,    -1,   451,   452,   227,    66,    -1,
     3341      -1,    -1,   803,   459,    72,    -1,   807,    -1,    76,    -1,
     3342     811,    79,    80,    81,    82,    83,    84,   473,    86,    87,
     3343      -1,    -1,   252,    -1,   480,    -1,    -1,   257,    -1,    -1,
     3344      -1,   575,   576,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3345     270,   109,    -1,   111,    -1,    -1,   276,    -1,   278,   117,
     3346     118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
     3347     604,    -1,   130,   607,   608,   295,   610,    -1,   612,   613,
     3348      -1,    -1,    -1,   617,   618,    10,    11,    12,    13,    14,
     3349      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3350      25,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,
     3351      -1,    -1,    -1,    -1,    39,   906,    -1,    -1,   338,    -1,
     3352      -1,    -1,    -1,   343,    -1,    -1,    -1,    -1,    -1,    -1,
     3353     921,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3354      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,   595,
     3355      -1,    -1,   372,    78,   945,    -1,   376,   377,    -1,   379,
     3356      -1,    -1,    -1,    -1,    -1,    -1,   386,   387,    -1,   389,
     3357     390,    -1,   392,    -1,   394,    -1,    -1,   623,    -1,    -1,
     3358      -1,    -1,   628,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3359      -1,   411,    -1,    -1,    37,    38,    -1,    40,    -1,   419,
     3360      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3361    1001,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3362      -1,   755,   756,    66,   444,    -1,    -1,    -1,    -1,    72,
     3363      -1,  1022,  1023,    76,    -1,    -1,    79,    80,    81,    82,
     3364      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3365     470,    -1,    -1,   699,    -1,    -1,   476,    -1,    -1,    -1,
     3366      -1,   481,    -1,    -1,    -1,    -1,   109,   713,   111,    -1,
     3367      -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3368      -1,    -1,    -1,    -1,    -1,    -1,    -1,   733,    -1,    -1,
     3369      -1,  1082,    -1,    -1,    -1,    -1,    -1,   517,    -1,    -1,
     3370      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3371      -1,    -1,   532,    -1,     0,    -1,    -1,     3,     4,     5,
    25443372       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    25453373      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2546        0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2547        0,    31,     0,     0,     0,     8,     9,    10,    11,    12,
    2548       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2549       23,    24,    25,     0,     0,    26,    27,    28,     0,    34,
    2550        0,    35,     0,    36,    31,   675,    38,    39,     0,     0,
    2551        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2552        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2553     1334,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2554       39,     0,     0,     0,     0,   668,     0,     0,     0,     0,
    2555        0,    45,    46,     2,   205,     4,     5,     6,     7,     8,
    2556        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2557       19,    20,    21,    22,    23,    24,    25,     0,   676,    26,
    2558       27,    28,   677,     0,    45,    46,     0,     0,    31,     0,
    2559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2560        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2561        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2562       36,     0,     0,   206,    39,     2,   205,     4,     5,     6,
    2563        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2564       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2565        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2566       31,     0,   269,     0,     0,     0,     0,     0,    45,    46,
    2567        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2569       35,     0,    36,     0,     0,    38,    39,     2,   205,     4,
    2570        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2571       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2572       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2573        0,     0,    31,     0,   668,     0,     0,     0,     0,     0,
    2574       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    2575        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2576       34,     0,    35,     0,    36,     0,     0,   206,    39,     8,
    2577        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2578       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2579       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2580        0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
    2581        0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
    2582        0,     0,     0,     0,     0,   284,    34,     0,     0,     0,
    2583        0,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2584      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2585        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2586        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2587      295,     0,   513,     0,     0,   170,     0,     0,    45,    46,
    2588      297,   298,   299,   300,     8,     9,    10,    11,    12,    13,
    2589       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2590       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2591        0,   281,   282,    31,   283,     8,     9,    10,    11,    12,
    2592       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2593       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2594      284,    34,     0,     0,    31,     0,   285,     0,    38,    39,
    2595      286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
    2596       42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
    2597        0,     0,    34,     0,     0,     0,     0,   110,     0,    38,
    2598       39,     0,     0,     0,     0,   295,   -40,   296,     0,     0,
    2599       41,    42,     0,    45,    46,   297,   298,   299,   300,     8,
    2600        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2601       19,    20,    21,    22,    23,    24,    25,     0,    44,    26,
    2602       27,    28,     0,     0,    45,    46,   281,   282,    31,   283,
    2603        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2604       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2605       26,    27,    28,     0,     0,   284,    34,     0,     0,    31,
    2606      675,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2607      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2608        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
    2609        0,     0,     0,     0,    38,    39,     0,     0,     0,     0,
    2610      295,     0,   296,     0,     0,     0,     0,     0,    45,    46,
    2611      297,   298,   299,   300,     8,     9,    10,    11,    12,    13,
    2612       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2613       24,    25,     0,   676,    26,    27,    28,  1070,     0,    45,
    2614       46,   281,   282,    31,   283,     8,     9,    10,    11,    12,
    2615       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2616       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2617      284,    34,     0,     0,    31,   675,   285,     0,    38,    39,
    2618      286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
    2619       42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
    2620        0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2621       39,     0,     0,     0,     0,   295,     0,   341,     0,     0,
    2622        0,     0,     0,    45,    46,   297,   298,   299,   300,     8,
    2623        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2624       19,    20,    21,    22,    23,    24,    25,     0,   676,    26,
    2625       27,    28,  1197,     0,    45,    46,   281,   282,    31,   283,
    2626        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2627       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2628       26,    27,    28,     0,     0,   284,    34,     0,     0,    31,
    2629        0,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2630      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2631        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
    2632        0,     0,    37,     0,    38,    39,    40,     0,     0,     0,
    2633      295,     0,   376,     0,     0,    41,    42,     0,    45,    46,
    2634      297,   298,   299,   300,     0,     0,     0,     0,     0,     0,
    2635        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2636        0,    43,     0,    44,     0,     0,     0,     0,     0,    45,
    2637       46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2638       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2639        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2640       31,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2641       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2642        0,    26,    27,    28,     0,     0,     0,     0,    34,     0,
    2643       31,     0,     0,    37,     0,   206,    39,    40,     0,     0,
    2644        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2645        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2646        0,     0,     0,     0,     0,    38,    39,     0,     0,     0,
    2647        0,     0,    43,     0,   269,     0,     0,     0,     0,     0,
    2648       45,    46,     0,     0,     0,     8,     9,    10,    11,    12,
    2649       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2650       23,    24,    25,     0,   256,    26,    27,    28,     0,     0,
    2651       45,    46,     0,     0,    31,     8,     9,    10,    11,    12,
    2652       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2653       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2654        0,     0,    34,     0,    31,     0,     0,     0,     0,    38,
    2655       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2656        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2657        0,     0,    34,     0,     0,     0,     0,     0,     0,   206,
    2658       39,     0,     0,     0,     0,     0,     0,     0,    44,     0,
    2659        0,     0,     0,     0,    45,    46,     0,     0,     0,     8,
    2660        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2661       19,    20,    21,    22,    23,    24,    25,     0,   269,    26,
    2662       27,    28,     0,     0,    45,    46,     0,     0,    31,     8,
    2663        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2664       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2665       27,    28,     0,     0,     0,     0,    34,     0,    31,     0,
    2666        0,     0,     0,    38,    39,     0,     0,     0,     0,     0,
    2667        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2668        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
    2669        0,     0,     0,    38,    39,     0,     0,     0,     0,     0,
    2670        0,     0,   337,     0,     0,     0,     0,     0,    45,    46,
    2671        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2672       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2673       25,     0,   676,    26,    27,    28,     0,     0,    45,    46,
    2674        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2675        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2676        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2677       34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
    2678        0,     0,   281,   282,     0,   283,  1021,     0,  1022,     0,
    2679        0,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,     0,
    2680        0,  1508,  1031,     0,     0,     0,  1032,  1033,     0,    33,
    2681        0,   284,     0,     0,     0,     0,   668,  1034,     0,     0,
    2682        0,   286,    45,    46,   287,   288,   289,   290,   291,   292,
    2683       41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2684        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2685        0,     0,     0,     0,     0,     0,   295,     0,   376,     0,
    2686        0,   170,     0,     0,    45,    46,   297,   298,   299,   300,
    2687        0,     0,   281,   282,  1035,   283,  1021,     0,  1022,  -134,
    2688        0,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,     0,
    2689        0,     0,  1031,     0,     0,     0,  1032,  1033,     0,    33,
    2690        0,   284,     0,     0,     0,     0,     0,  1034,     0,     0,
    2691        0,   286,     0,     0,   287,   288,   289,   290,   291,   292,
    2692       41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2693        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2694        0,     0,     0,     0,     0,     0,   295,     0,   376,     0,
    2695        0,   170,     0,     0,    45,    46,   297,   298,   299,   300,
    2696        0,     0,     0,     0,  1035,     0,     0,     0,     0,  -134,
    2697        2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    2698       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2699       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2700        0,     0,     0,     0,     0,    31,     0,   281,   282,     0,
    2701      283,  1021,     0,  1022,  1380,  1381,  1023,  1024,  1025,  1026,
    2702     1027,  1028,  1029,  1030,     0,     0,  1508,  1031,     0,     0,
    2703        0,  1032,  1033,    34,    33,    35,   284,    36,     0,     0,
    2704       38,    39,  1034,     0,     0,     0,   286,     0,     0,   287,
    2705      288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    2706        0,     0,     0,     0,  1291,     0,     0,     0,     0,     0,
    2707        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2708        0,   295,     0,   376,     0,     0,   170,     0,     0,    45,
    2709       46,   297,   298,   299,   300,     0,     0,   281,   282,  1035,
    2710      283,  1021,     0,  1022,  1380,  1381,  1023,  1024,  1025,  1026,
    2711     1027,  1028,  1029,  1030,     0,     0,     0,  1031,     0,     0,
    2712        0,  1032,  1033,     0,    33,     0,   284,     0,     0,     0,
    2713        0,     0,  1034,     0,     0,     0,   286,     0,     0,   287,
    2714      288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    2715        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2716        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2717        0,   295,     0,   376,     0,     0,   170,     0,     0,    45,
    2718       46,   297,   298,   299,   300,     0,     0,   281,   282,  1035,
    2719      283,  1021,     0,  1022,     0,     0,  1023,  1024,  1025,  1026,
    2720     1027,  1028,  1029,  1030,     0,     0,     0,  1031,     0,     0,
    2721        0,  1032,  1033,     0,    33,     0,   284,     0,     0,     0,
    2722        0,     0,  1034,     0,     0,     0,   286,     0,     0,   287,
    2723      288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    2724        0,     0,     0,     0,     0,     0,   281,   282,     0,   283,
    2725        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2726        0,   295,     0,   376,     0,     0,   170,     0,     0,    45,
    2727       46,   297,   298,   299,   300,   284,     0,     0,     0,  1035,
    2728        0,   631,     0,   139,   140,   286,     0,     0,   287,   288,
    2729      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2730        0,     0,     0,     0,     0,   281,   282,     0,   283,     0,
    2731        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2732      295,     0,   632,     0,   633,   377,     0,     0,    45,    46,
    2733      297,   298,   299,   300,   284,     0,     0,     0,     0,     0,
    2734      285,     0,     0,     0,   286,     0,     0,   287,   288,   289,
    2735      290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
    2736        0,     0,     0,     0,   281,   282,     0,   283,     0,     0,
    2737        0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
    2738        0,   376,     0,     0,   377,     0,     0,    45,    46,   297,
    2739      298,   299,   300,   284,     0,     0,     0,     0,     0,   285,
    2740        0,     0,     0,   286,     0,     0,   287,   288,   289,   290,
    2741      291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    2742        0,     0,     0,   281,   282,     0,   283,     0,     0,     0,
    2743        0,     0,     0,     0,     0,     0,     0,     0,   295,     0,
    2744      376,     0,     0,     0,     0,   748,    45,    46,   297,   298,
    2745      299,   300,   284,     0,     0,     0,     0,     0,   285,     0,
    2746        0,     0,   286,     0,     0,   287,   288,   289,   290,   291,
    2747      292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
    2748        0,     0,   281,   282,     0,   283,     0,     0,     0,     0,
    2749        0,     0,     0,     0,     0,     0,     0,   295,     0,   376,
    2750        0,     0,   956,     0,     0,    45,    46,   297,   298,   299,
    2751      300,   284,     0,     0,     0,     0,     0,   285,     0,     0,
    2752        0,   286,     0,     0,   287,   288,   289,   290,   291,   292,
    2753       41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2754        0,   281,   282,     0,   283,     0,     0,     0,     0,     0,
    2755        0,     0,     0,     0,     0,     0,   295,     0,   376,     0,
    2756        0,     0,     0,     0,    45,    46,   297,   298,   299,   300,
    2757      284,     0,     0,     0,     0,     0,   285,     0,     0,     0,
    2758      286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
    2759       42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
    2760      281,   282,     0,   283,     0,     0,     0,     0,     0,     0,
    2761        0,     0,     0,     0,     0,   502,     0,   376,     0,     0,
    2762        0,     0,     0,    45,    46,   297,   298,   299,   300,   284,
    2763        0,     0,     0,     0,     0,   285,     0,     0,     0,   286,
    2764        0,     0,   287,   288,   289,   290,   291,   292,    41,    42,
    2765        0,   293,   294,     0,     0,     0,     0,     0,     0,   281,
    2766      282,     0,   283,     0,     0,     0,     0,     0,     0,     0,
    2767        0,     0,     0,     0,   507,     0,   376,     0,     0,     0,
    2768        0,     0,    45,    46,   297,   298,   299,   300,   284,     0,
    2769        0,     0,     0,     0,   285,     0,     0,     0,   286,     0,
    2770        0,   287,   288,   289,   290,   291,   292,    41,    42,     0,
    2771      293,   294,     0,     0,     0,     0,     0,     0,   281,   282,
    2772        0,   283,     0,     0,     0,     0,     0,     0,     0,     0,
    2773        0,     0,     0,   510,     0,   376,     0,     0,     0,     0,
    2774        0,    45,    46,   297,   298,   299,   300,   284,     0,     0,
    2775        0,     0,     0,   285,     0,     0,     0,   286,     0,     0,
    2776      287,   288,   289,   290,   291,   292,    41,    42,     0,   293,
    2777      294,     0,     0,     0,     0,     0,     0,   281,   282,     0,
    2778      283,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2779        0,     0,   295,     0,   376,     0,     0,     0,     0,     0,
    2780      699,    46,   297,   298,   299,   300,   284,     0,     0,     0,
    2781        0,     0,   285,     0,     0,     0,   286,     0,     0,   287,
    2782      288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    2783        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2784        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2785        0,   295,     0,   376,     0,     0,     0,     0,     0,   342,
    2786       46,   297,   298,   299,   300,     2,   205,     4,     5,     6,
    2787        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2788       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2790       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2791        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2792        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2793       35,     0,    36,    37,     0,   173,   174,    40,     0,     0,
    2794        0,     0,     0,     0,     0,     0,    41,    42,   204,     2,
    2795      205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2796       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2797       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2798        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    2799        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2800        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2801        0,     0,    34,     0,    35,     0,    36,     0,     0,   206,
    2802       39,   463,     2,   205,     4,     5,     6,     7,     8,     9,
     3374      26,    27,    -1,    -1,    30,    31,    32,    33,    -1,   795,
     3375      36,   571,    -1,    39,    40,    -1,    -1,    -1,    -1,  1150,
     3376     580,   807,    -1,    -1,    -1,    -1,    -1,   587,    -1,    -1,
     3377      -1,    -1,    -1,   593,    -1,    -1,    -1,    -1,    64,   913,
     3378     826,    67,   602,    69,   918,    71,    72,    -1,    74,    75,
     3379      76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
     3380      -1,  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3381      -1,    -1,    -1,    -1,    -1,   155,   156,    -1,    -1,    -1,
     3382      -1,    -1,   642,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3383      -1,   117,   118,    -1,    -1,    -1,    -1,    -1,  1229,    -1,
     3384      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   189,
     3385      -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,   678,    -1,
     3386      -1,    -1,    -1,    -1,    -1,    -1,   686,    -1,    -1,    10,
     3387      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3388      21,    22,    23,    24,    25,    26,    27,  1278,  1279,    30,
     3389      31,    32,    -1,   939,    -1,    -1,  1287,   717,    39,    -1,
     3390      -1,    -1,    -1,    -1,    -1,    -1,    -1,   727,   728,    -1,
     3391      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3392      -1,    -1,    -1,   969,    -1,    -1,    67,    -1,   268,    -1,
     3393      -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
     3394     760,    -1,    83,    84,    -1,  1079,   766,    -1,    -1,    -1,
     3395      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1004,    -1,
     3396      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,  1015,
     3397     111,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
     3398      -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,
     3399      -1,   331,   332,    -1,   334,   335,    -1,    -1,    -1,    -1,
     3400      -1,    -1,    -1,    -1,    -1,   345,    -1,  1398,    -1,   349,
     3401     830,    -1,    -1,    -1,    -1,    -1,    -1,   837,    -1,    -1,
     3402      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
     3403     850,   371,   852,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3404      -1,  1087,    -1,    -1,    -1,    -1,   866,    -1,    -1,    -1,
     3405      -1,    -1,   872,    -1,    -1,  1101,    -1,    -1,   398,    -1,
     3406      -1,    -1,   402,  1454,   884,  1456,    -1,   887,    -1,    -1,
     3407      -1,    -1,    -1,    -1,    -1,    -1,  1210,    -1,    -1,    -1,
     3408      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3409      -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,    -1,  1490,
     3410      -1,  1492,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3411      -1,    -1,   282,    -1,   284,   285,    -1,    -1,    -1,    -1,
     3412      -1,    -1,   292,   293,    -1,    -1,    -1,    -1,  1519,    -1,
     3413      -1,    -1,    -1,    -1,    -1,    -1,    -1,   307,   308,   479,
     3414      -1,    -1,   482,    -1,   964,    -1,  1192,    -1,    -1,    -1,
     3415      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3416      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3417      -1,    30,    31,    32,    -1,   345,    -1,    -1,    -1,   999,
     3418      39,   521,    -1,    -1,    -1,   525,   526,    -1,    -1,    -1,
     3419      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3420      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3421      -1,   381,    -1,    72,    -1,    74,    75,    76,    -1,    78,
     3422      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
     3423      -1,   571,   572,    -1,    -1,    -1,    -1,  1057,    -1,    -1,
     3424      -1,  1287,    -1,  1063,    -1,    -1,   146,    -1,    -1,    -1,
     3425     590,   591,   111,    -1,    -1,    -1,   156,    -1,   117,   118,
     3426      -1,   601,    -1,   603,   604,    -1,    -1,    -1,   168,   169,
     3427     610,    -1,    -1,    -1,    -1,    -1,    -1,  1097,    -1,    -1,
     3428     620,   621,  1102,    -1,    -1,    -1,   626,    -1,    -1,    -1,
     3429    1110,    -1,    -1,    -1,    -1,   635,   636,   637,    -1,    -1,
     3430      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3431      -1,    -1,    -1,   653,    -1,    -1,    -1,    -1,   658,   659,
     3432      -1,    -1,   662,   663,    -1,  1145,    -1,    -1,    -1,   669,
     3433      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1157,    -1,   239,
     3434    1160,    -1,  1162,    -1,    -1,    -1,    -1,    -1,   688,    -1,
     3435      -1,    -1,    -1,    -1,    -1,    -1,  1176,  1177,    -1,    -1,
     3436      -1,    -1,    -1,   263,    -1,    -1,    -1,    -1,    -1,    -1,
     3437      -1,   711,   712,    -1,    -1,    -1,    -1,    -1,  1198,    -1,
     3438     550,   551,   552,   553,   554,   555,   556,   557,   558,   559,
     3439     560,   561,   562,   563,   564,   565,   566,   567,    -1,    -1,
     3440      -1,    -1,    -1,    -1,    -1,   745,   746,    -1,    -1,    -1,
     3441     750,   751,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3442      -1,    -1,    -1,    -1,    -1,  1245,    -1,    -1,    -1,    -1,
    28033443      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2804       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2805       28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    2806        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2807        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2808        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2809        0,     0,    38,    39,     2,   205,     4,     5,     6,     7,
    2810        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2811       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2812       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2813        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2814       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2815        0,    26,    27,    28,   481,   482,   483,    34,     0,    35,
    2816       31,    36,     0,     0,   206,    39,     0,     0,     0,     0,
    2817        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2818        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2819        0,     0,     0,     0,     0,    38,    39
    2820 };
    2821 
    2822 #define yypact_value_is_default(yystate) \
    2823   ((yystate) == (-1333))
    2824 
    2825 #define yytable_value_is_error(yytable_value) \
    2826   YYID (0)
    2827 
    2828 static const yytype_int16 yycheck[] =
    2829 {
    2830        0,     1,    43,    43,    43,   238,   184,     0,   116,   203,
    2831        1,   184,     0,   530,   184,   218,     0,   184,   184,   509,
    2832      740,     0,   167,   168,   740,   740,   184,   184,   860,   613,
    2833      595,    32,    32,   593,   725,   637,   347,     1,    43,    32,
    2834      460,   593,   517,    43,    32,   478,   488,   593,    32,    49,
    2835      492,   347,   566,    32,   105,   186,    49,   595,  1301,    39,
    2836      185,     0,   966,    63,   423,   424,    66,    81,    43,    69,
    2837       63,   593,   683,    66,   593,   362,    69,   593,    69,   366,
    2838     1002,  1003,    28,   593,    97,    49,   264,  1020,  1003,    43,
    2839       39,   264,   200,    32,   264,    81,    49,   264,   264,   627,
    2840      628,    51,     0,     1,   155,   105,   264,   264,   118,  1013,
    2841        0,  1110,   109,   113,    72,   643,   116,   117,   131,    81,
    2842        0,   343,  1032,  1033,   134,   106,   112,    66,   109,   260,
    2843      261,   490,    78,   113,    32,    63,   133,   111,    44,    45,
    2844      265,   105,    32,   184,   184,   184,   146,   147,    39,   113,
    2845      509,   113,    32,  1485,   147,   155,   156,    49,  1401,   159,
    2846      113,   111,   111,    43,   113,    64,   159,   860,   280,    49,
    2847      890,    69,   628,   701,   890,   890,   134,   111,   415,   184,
    2848     1512,   185,   146,    63,   184,   185,    66,   643,   484,    69,
    2849      709,   155,   185,   709,   627,   628,  1106,   434,   255,   709,
    2850      200,   686,  1485,   678,   407,   442,   134,   596,   208,   184,
    2851      643,   117,   111,   602,   573,   208,   111,   112,   113,    39,
    2852      220,   113,  1505,   264,   264,   264,    39,   220,  1380,  1512,
    2853      184,  1230,    72,  1232,  1233,    72,   217,   111,   238,   799,
    2854      204,   661,    44,    45,   208,   701,   811,   799,    39,   250,
    2855      250,    39,    11,   799,   146,   208,   478,   250,   258,   133,
    2856       98,   265,   250,   263,   264,   265,   250,   147,   701,   783,
    2857      270,   250,   265,   811,   238,   886,   255,   799,   403,   159,
    2858      799,   220,   119,   799,   595,   393,   124,  1202,   339,   799,
    2859      271,   111,    98,   113,   134,   295,   583,   278,   111,   118,
    2860      113,  1453,    87,   736,   184,   185,   270,   909,   308,   273,
    2861      111,   250,  1384,   421,   116,   134,   208,   270,   124,   427,
    2862      111,   114,   113,   111,   324,   113,  1435,  1020,   208,   329,
    2863      115,   295,   116,  1255,  1256,  1268,   329,   624,  1029,   339,
    2864      220,  1256,   295,   343,   308,   227,   238,   347,   348,   111,
    2865      112,   476,   250,   918,   112,   308,  1188,   917,   415,   779,
    2866      250,  1470,   362,  1472,   246,   255,   366,    44,    45,   789,
    2867      250,   917,     0,     1,   132,   339,    72,   434,   270,   343,
    2868      800,   112,   363,   118,   264,   442,   367,   118,   500,    85,
    2869       86,   613,     3,   393,  1456,   917,   618,   981,   362,   403,
    2870     1462,   597,   366,   403,    32,   601,   891,  1311,  1480,   348,
    2871      403,    55,   801,  1485,   118,   111,   308,   113,    30,     3,
    2872     1482,   421,   112,   423,   424,  1487,   622,   427,   132,   429,
    2873      626,   118,    72,  1505,    72,   672,   415,   112,    66,   116,
    2874     1512,    69,   132,     0,   118,    85,    86,    85,    86,   329,
    2875      450,   343,   937,    97,  1376,   434,   889,   132,   132,   423,
    2876      424,  1376,     0,   442,  1368,  1369,   118,   347,   468,   111,
    2877       82,    83,   476,   113,   964,   113,   476,   952,   478,   295,
    2878      480,   111,   134,   476,   484,   927,   450,   480,   121,   122,
    2879      490,  1424,   480,   638,   118,  1188,   480,   450,  1431,   463,
    2880      811,   480,   502,  1105,   504,   792,   112,   507,   132,   509,
    2881      510,   118,   118,  1078,   736,   811,   647,   517,   118,   118,
    2882      113,   521,   115,   403,   488,   415,   490,   134,   492,   114,
    2883      469,   423,   424,   118,   134,   134,   112,   645,   502,   132,
    2884      504,   480,   118,   507,   434,   509,   510,   133,   192,   502,
    2885     1483,   504,   442,   678,   507,   111,   118,   510,     4,     5,
    2886        6,     7,     8,     9,   130,   565,   566,   133,   112,  1002,
    2887      118,   215,   134,   573,   118,  1268,   111,  1268,   113,   999,
    2888     1000,   225,   480,   583,   584,   112,   134,   587,   478,  1064,
    2889      480,   118,   220,   593,  1069,   595,   584,   112,   490,   111,
    2890      480,   990,   991,   118,   484,   118,   112,   423,   424,   573,
    2891      114,  1096,   118,   613,   118,   672,   728,   509,   618,   583,
    2892      620,   134,   250,    69,   624,    71,   922,   627,   628,   111,
    2893      242,   118,   112,   614,  1054,  1055,   111,   833,   118,   118,
    2894      118,   698,   118,   643,   847,   645,   118,   134,   629,   613,
    2895      112,   295,  1343,   114,   618,   134,   134,   118,   134,    72,
    2896      624,   642,   134,    76,   867,   114,    72,   889,    49,   118,
    2897     1155,  1156,    85,    86,   678,   675,   615,   119,   678,    85,
    2898       86,   573,    63,   125,   126,    66,   502,   111,    69,   112,
    2899      112,   507,  1125,   672,   510,   118,   929,   111,   111,   113,
    2900      113,   701,   702,   703,    90,    91,   119,   120,   853,   709,
    2901      710,   675,   890,   593,   114,   595,   112,   890,   118,   698,
    2902      890,   613,   675,   890,   890,   112,   618,   923,   112,   112,
    2903      112,  1424,   890,   890,   118,   118,   736,  1428,  1431,  1430,
    2904      740,   741,   111,   724,   113,   112,   112,   112,   564,   713,
    2905      689,   118,   118,     4,     5,     6,     7,     8,     9,   981,
    2906      111,    92,    93,     1,   703,   377,   147,   892,  1285,  1489,
    2907      112,   112,   111,  1489,  1489,   112,   118,   118,   159,   117,
    2908     1200,   118,   672,   783,     4,     5,     6,     7,     8,     9,
    2909     1483,   111,   792,  1484,   794,   439,   127,   128,   678,   799,
    2910      994,   112,    72,   111,   185,   113,  1094,   118,   698,    79,
    2911     1098,   811,    82,    33,    84,    85,    86,  1237,    69,   134,
    2912       71,   465,  1255,   111,  1244,  1245,  1246,   208,   792,   709,
    2913      710,    72,   112,    74,    75,    76,    94,    95,   118,   220,
    2914       72,   112,    74,    75,    85,    86,   736,   118,   111,    69,
    2915      113,    71,   480,    85,    86,   794,   119,   120,   502,   111,
    2916      860,   113,   111,   507,    66,    64,   510,     0,     1,   111,
    2917     1015,   113,   860,   134,   111,   487,   113,   489,  1363,   111,
    2918       82,   860,   882,   134,   116,   112,   113,  1307,   892,   889,
    2919      890,   116,   892,   116,   882,  1380,    29,    30,    72,    32,
    2920       74,    75,   116,  1125,   904,   134,    57,   111,   112,   113,
    2921       43,    85,    86,    72,   111,   117,    49,   917,   918,   799,
    2922       79,   860,   922,    82,    57,    84,    85,    86,   928,   929,
    2923       63,   811,    72,    66,    74,    75,    69,   928,   134,  1064,
    2924      904,   111,   116,   113,  1069,    85,    86,    81,   329,    82,
    2925       83,   904,   952,   111,   113,   106,   111,   159,   109,   283,
    2926      117,   118,   860,   927,   928,   929,    81,  1452,  1453,   502,
    2927      860,   504,   120,   106,   507,   129,   109,   510,  1086,    96,
    2928     1202,   981,  1094,   116,   308,   309,  1098,  1099,   130,   111,
    2929     1465,   113,   111,   113,   113,   111,   112,   113,     3,   889,
    2930      119,   120,  1002,  1003,   114,    10,    11,    12,    13,    14,
    2931      890,   114,   892,   251,   147,   112,   660,   981,   220,   343,
    2932     1020,   633,   403,    58,    59,   669,   159,   117,   118,   673,
    2933      928,   895,  1020,   897,    39,    44,    45,   929,   112,  1514,
    2934      112,  1020,   922,   112,    72,   984,    74,    75,    76,  1111,
    2935     1112,   184,   185,   112,   378,   112,   258,    85,    86,  1059,
    2936     1064,   263,    67,   111,  1064,  1069,   217,   200,   114,  1069,
    2937      682,   111,   684,   113,   113,   208,   688,   118,  1078,   119,
    2938      120,  1020,   116,   111,   217,   113,  1086,   220,   133,   981,
    2939      116,   119,   120,   116,   227,  1059,   549,   550,    72,   111,
    2940     1212,   111,   112,   113,   132,    79,  1059,   114,    82,   242,
    2941       84,    85,    86,   246,    58,    59,    60,   250,   251,   133,
    2942      271,   112,  1020,   551,   552,  1125,   112,   278,   557,   558,
    2943     1020,   264,   265,     3,   553,   554,   555,   556,   271,   113,
    2944       10,    11,    12,    13,    14,   278,   348,     3,    10,    11,
    2945       12,    13,    14,   114,    10,    11,    12,    13,    14,   114,
    2946       72,   132,    74,    75,    76,   132,  1166,  1167,    72,    39,
    2947       74,    75,    76,    85,    86,   132,  1167,    39,   118,   860,
    2948       29,    85,    86,    39,  1064,   112,   112,   116,  1188,  1069,
    2949     1302,   112,   117,   117,  1306,   346,   329,    67,   117,   111,
    2950     1188,   113,  1202,   118,   111,    67,  1206,   119,   120,  1188,
    2951      112,    67,   363,   346,   347,  1206,   367,    10,    11,    12,
    2952       13,    14,   546,   547,   548,   463,   428,  1166,   134,   132,
    2953      363,   112,   860,   118,   367,  1125,   112,   112,   112,   112,
    2954      884,   853,  1206,   112,   377,   112,    39,   859,   112,  1188,
    2955      118,  1359,   112,   112,   112,  1255,  1256,   112,   112,   112,
    2956      393,   112,   112,  1263,   112,     0,  1499,   469,  1268,  1167,
    2957      403,   117,    29,   112,    67,   118,   133,   114,   114,   112,
    2958     1268,   112,   112,   118,   111,   132,   524,   899,   421,  1268,
    2959     1188,   529,    72,  1405,   427,   118,   116,    32,  1188,    79,
    2960      928,  1301,    82,   132,    84,    85,    86,   112,  1206,   112,
    2961     1301,  1489,  1202,   112,   118,   112,  1489,   112,   111,  1489,
    2962      113,   112,  1489,  1489,  1263,   111,   119,   120,   118,  1268,
    2963      463,  1489,  1489,   113,    69,   468,    72,  1301,   111,   577,
    2964       76,   118,  1023,   476,   956,   111,   111,   480,   111,    85,
    2965       86,   484,  1168,  1169,   487,  1171,   489,  1465,   132,  1359,
    2966      112,   117,  1178,   134,  1180,  1490,   112,   117,    72,   112,
    2967     1268,   130,    76,   117,   116,   111,  1376,  1358,  1268,   134,
    2968      114,    85,    86,   119,   120,   587,   112,  1031,   118,  1514,
    2969      114,   524,  1020,   114,   112,   112,   529,    47,   114,   114,
    2970      114,  1401,   112,  1301,   117,   114,   644,   111,   646,   114,
    2971     1401,   114,   134,   615,   134,   119,   120,   112,   620,     0,
    2972        1,   156,   134,   747,  1424,   117,    72,   134,    74,    75,
    2973      112,  1431,   134,  1433,   132,  1435,  1424,  1401,  1050,    85,
    2974       86,   117,   114,  1431,   577,  1424,    83,   114,  1489,  1489,
    2975     1489,    32,  1431,   114,   114,   114,   114,   112,   696,   112,
    2976      593,    60,   595,   614,   111,  1465,   114,   113,    49,  1433,
    2977     1470,  1435,  1472,   111,   116,   111,    98,   112,   629,   112,
    2978     1433,   614,  1435,  1483,   111,  1424,  1490,   689,    69,  1489,
    2979     1490,   642,  1431,   661,   229,  1483,   629,  1490,   114,  1499,
    2980      633,   703,   134,  1401,  1483,   114,  1470,  1188,  1472,   642,
    2981     1514,   644,   645,   646,  1514,   250,   112,  1470,   112,  1472,
    2982      255,  1514,   114,  1339,   105,    98,  1424,   111,   111,   134,
    2983      117,    42,   112,  1431,  1424,  1499,   112,   112,  1166,  1167,
    2984       72,  1431,    74,    75,  1483,   678,   112,   118,   134,   682,
    2985     1162,   684,   134,    85,    86,   688,    70,   112,   132,    73,
    2986     1188,   112,    76,   696,    78,    98,   147,    98,   112,   134,
    2987      134,    85,   112,   724,   155,   156,   709,   710,  1206,   111,
    2988      114,   134,   112,   112,   116,  1483,    72,   114,    74,    75,
    2989       76,   724,   794,  1483,   117,   114,   134,   134,   111,    85,
    2990       86,   117,   117,  1284,   185,   112,   112,  1499,   134,  1489,
    2991      112,   779,   112,   657,   349,  1035,   559,   562,   560,   200,
    2992      561,   789,   203,   204,   563,   111,   961,   208,  1188,  1453,
    2993     1345,  1524,   800,  1277,  1099,  1263,  1306,  1278,    66,  1431,
    2994     1268,    10,    11,    12,    13,    14,  1050,    75,   229,   686,
    2995      675,   675,   233,  1069,   235,   688,  1337,   981,   897,  1340,
    2996      905,   577,   956,   244,   853,   925,   799,   639,   480,   250,
    2997       39,   713,  1206,  1301,   255,   724,   565,   565,   811,   565,
    2998      415,    -1,    -1,    -1,   265,    -1,    -1,    -1,    -1,   117,
    2999       -1,    -1,   273,    -1,   429,    -1,  1020,   211,    67,   434,
    3000       -1,    -1,    -1,  1384,    -1,   943,    -1,   442,  1389,    -1,
    3001       10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
    3002      853,    -1,    -1,    -1,   962,   460,   859,    -1,   966,    -1,
    3003       -1,   159,    -1,    -1,    -1,    -1,    -1,  1418,    -1,    39,
    3004      777,    -1,   111,   478,   113,   480,    -1,    -1,    -1,    -1,
    3005      119,   120,    -1,    -1,    -1,    -1,    -1,   890,   339,   892,
    3006       -1,    -1,   343,    -1,   278,    -1,   899,    67,   349,    -1,
    3007       -1,    -1,    -1,  1401,    83,  1013,    -1,    -1,    87,    88,
    3008       89,   362,   984,    -1,    -1,   366,   521,    -1,  1432,   922,
    3009     1434,    -1,   220,    -1,    -1,    -1,  1424,    -1,   188,    -1,
    3010       -1,    66,   111,  1431,   113,   195,   115,   116,    -1,    -1,
    3011      943,   111,   849,   113,    -1,    -1,    -1,    -1,    -1,   119,
    3012      120,    -1,  1503,   956,    -1,  1469,    -1,  1471,  1509,   962,
    3013      258,   999,  1000,   966,   415,   263,   350,    -1,   352,  1520,
    3014       -1,    -1,    -1,  1524,    -1,    -1,    -1,    -1,   429,   584,
    3015      278,    -1,   117,   434,   891,  1483,    -1,    -1,    -1,    -1,
    3016       -1,   442,    72,    -1,    74,    75,    76,    -1,    -1,  1513,
    3017       -1,  1515,  1110,    -1,    -1,    85,    86,   267,    -1,   460,
    3018     1013,    -1,   463,    -1,  1528,  1529,  1054,  1055,    -1,    -1,
    3019       -1,    -1,   627,   628,   159,    -1,    -1,   478,    -1,   480,
    3020      937,   111,    -1,   113,    -1,    -1,    -1,   488,   643,   119,
    3021      120,   492,    10,    11,    12,    13,    14,  1050,    -1,    -1,
    3022      348,    -1,    -1,    -1,   438,    -1,   661,    -1,    -1,    -1,
    3023       -1,  1064,   969,    -1,   324,    -1,  1069,   672,    -1,    -1,
    3024      521,    39,   332,    -1,    72,   335,    74,    75,    76,    -1,
    3025        0,    -1,    -1,  1086,    -1,   220,    -1,    85,    86,    -1,
    3026       -1,    -1,    -1,   698,  1166,    -1,   701,    -1,    -1,    67,
    3027       -1,    -1,    -1,    -1,    72,    -1,    -1,  1110,    76,    -1,
    3028     1017,    -1,    32,   111,    -1,   566,    -1,    85,    86,    -1,
    3029       -1,    -1,  1230,   258,  1232,  1233,    -1,    -1,   263,    -1,
    3030      428,   736,   583,   584,    -1,   395,    -1,    -1,    -1,   399,
    3031       -1,    -1,    -1,   111,   595,    -1,   444,    -1,    -1,    69,
    3032      460,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,  1162,
    3033       -1,    -1,   613,    -1,     0,    -1,    -1,   618,    -1,    -1,
    3034       -1,   469,    -1,   624,   779,    -1,   627,   628,    -1,    -1,
    3035       -1,    -1,    -1,    -1,   789,    -1,    -1,    -1,    -1,  1096,
    3036      795,  1263,   643,    -1,    -1,   800,    32,    -1,    72,  1237,
    3037       74,    75,    76,  1311,    -1,    -1,  1244,  1245,  1246,    -1,
    3038      661,    85,    86,   348,    -1,   475,    -1,    -1,    -1,    -1,
    3039       -1,   672,    -1,    -1,    -1,    -1,    -1,  1230,    -1,  1232,
    3040     1233,    -1,    -1,    69,    -1,    -1,   156,   111,    10,    11,
    3041       12,    13,    14,    -1,    -1,   119,   120,   698,  1155,  1156,
    3042      701,    -1,    -1,    -1,    -1,   860,    -1,    -1,    -1,   710,
    3043     1368,  1369,   713,    -1,    -1,    -1,    -1,    39,    -1,  1307,
    3044       10,    11,    12,    13,    14,    -1,    -1,   882,    -1,    -1,
    3045       -1,    -1,    -1,    -1,   889,   736,    -1,    -1,    -1,   587,
    3046      741,    -1,    -1,   428,    -1,    67,    -1,    -1,  1406,    39,
    3047       72,    -1,    74,    75,    76,   565,   566,    -1,  1311,    -1,
    3048       -1,    -1,    -1,    85,    86,    -1,    -1,   615,    -1,    -1,
    3049      156,    -1,   620,    -1,    -1,    -1,    -1,    67,   779,    -1,
    3050      250,    -1,    72,    -1,   469,   255,    76,  1358,   789,   111,
    3051      724,   792,    -1,    -1,   795,    85,    86,   119,   120,   800,
    3052       -1,   661,    -1,    -1,    -1,  1358,  1359,    -1,  1466,   810,
    3053       72,    -1,    74,    75,    76,  1368,  1369,  1475,     0,     1,
    3054       -1,   111,    -1,    85,    86,    -1,    -1,    -1,    -1,   119,
    3055      120,    -1,    10,    11,    12,    13,    14,    -1,   648,    -1,
    3056       -1,   689,   652,    -1,   999,  1000,    -1,  1002,  1003,   111,
    3057       32,   113,    -1,  1406,    -1,   703,    -1,   119,   120,   860,
    3058       -1,    39,    -1,    -1,   250,  1020,    -1,    -1,    -1,   255,
    3059       -1,    -1,    -1,    -1,    -1,    -1,   724,    -1,    -1,   349,
    3060       -1,   882,    -1,    -1,    66,    -1,    -1,    69,   889,    67,
    3061       -1,   892,    -1,    -1,    72,    -1,    74,    75,    76,  1054,
    3062     1055,    -1,   587,    -1,    -1,    -1,  1363,    85,    86,    -1,
    3063       -1,    -1,  1465,  1466,    -1,    -1,    -1,   918,    -1,   779,
    3064       -1,    -1,  1475,  1380,    -1,    -1,   927,   928,     0,   789,
    3065      615,    -1,    -1,   111,    -1,   620,  1489,  1490,    -1,    -1,
    3066      800,   119,   120,    -1,    -1,   415,   794,    -1,    -1,    10,
    3067       11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,   429,
    3068       32,  1514,    -1,   349,   434,    -1,    -1,    -1,    -1,    -1,
    3069     1125,    -1,   442,   783,   156,    -1,    -1,    -1,    39,    -1,
    3070      981,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3071      460,    -1,    -1,   994,    -1,  1452,  1453,    69,   999,  1000,
    3072       -1,  1002,  1003,    -1,   689,    -1,    67,    -1,   478,    -1,
    3073      480,    72,  1167,    74,    75,    76,    -1,    -1,   703,  1020,
    3074       -1,    -1,    -1,    -1,    85,    86,    -1,    -1,    72,   415,
    3075       74,    75,    76,  1188,    -1,    -1,    -1,    -1,   220,    -1,
    3076       -1,    85,    86,   429,    -1,  1200,    -1,  1202,   434,    -1,
    3077      111,   521,   113,  1054,  1055,    -1,   442,    -1,   119,   120,
    3078       -1,    -1,    -1,    -1,    -1,    83,    -1,   111,   250,    87,
    3079       88,    89,    -1,    -1,   460,   119,   120,    -1,    -1,    -1,
    3080       -1,    -1,  1237,    -1,   156,    -1,   896,    -1,    -1,  1244,
    3081     1245,  1246,   478,   111,   480,   113,    -1,   115,   116,    -1,
    3082     1255,  1256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   794,
    3083       -1,    -1,    -1,  1268,   584,    -1,    -1,    -1,    -1,    -1,
    3084       -1,    -1,    -1,    -1,  1125,    -1,    -1,    -1,    -1,    -1,
    3085       -1,    -1,    -1,    -1,    -1,   521,   984,    -1,    -1,   999,
    3086     1000,    99,   100,   101,   102,   103,   104,   105,   106,   107,
    3087      108,   109,  1307,    -1,    -1,    -1,    -1,   627,   628,    -1,
    3088       -1,   971,    -1,    -1,    -1,    -1,  1167,    -1,    -1,    -1,
    3089       -1,    -1,    -1,   643,    -1,   133,    -1,   987,   250,    -1,
    3090       -1,    -1,    -1,   255,    -1,    -1,    -1,  1188,    -1,    -1,
    3091       -1,   661,    -1,    -1,  1054,  1055,    -1,    -1,   584,  1200,
    3092       -1,  1202,   672,    -1,    -1,  1206,    -1,    -1,    -1,    -1,
    3093       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3094       -1,  1376,    -1,    -1,    -1,    -1,    -1,    -1,   698,    -1,
    3095       -1,   701,    -1,    -1,    -1,    -1,  1237,    -1,    -1,    -1,
    3096       -1,   627,   628,  1244,  1245,  1246,    -1,   429,    -1,    -1,
    3097       -1,    -1,  1062,    -1,  1255,  1256,    -1,   643,    -1,    -1,
    3098       -1,    -1,    -1,    -1,    -1,    -1,   736,  1268,    -1,  1424,
    3099       -1,    -1,    -1,    -1,    -1,   661,  1431,   349,    53,    -1,
    3100       55,    -1,    -1,    58,    59,    60,   672,    62,    -1,    -1,
    3101       -1,  1101,    -1,    -1,    -1,    -1,    -1,    -1,   480,   984,
    3102     1301,    76,    -1,    -1,    -1,    -1,  1307,    -1,    -1,   779,
    3103       -1,    -1,   698,    88,    89,   701,    -1,    -1,  1166,   789,
    3104       -1,    -1,    -1,    -1,    -1,   795,    -1,    -1,  1483,    -1,
    3105      800,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   521,
    3106     1200,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
    3107      736,    -1,    -1,    -1,    -1,    -1,    -1,   429,    -1,    -1,
    3108       -1,    -1,   434,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3109      442,    -1,    -1,    -1,    -1,  1376,    -1,  1237,    -1,    -1,
    3110       -1,    -1,    -1,    -1,  1244,  1245,  1246,    -1,   460,    -1,
    3111      860,    -1,    -1,   779,    -1,    -1,    -1,    -1,    -1,    -1,
    3112     1401,    -1,   584,   789,    -1,    -1,   478,    -1,   480,   795,
    3113       -1,    -1,   882,    -1,   800,  1263,    -1,    -1,    -1,   889,
    3114       -1,    -1,    -1,  1424,    -1,    -1,    -1,    -1,    -1,    -1,
    3115     1431,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
    3116       -1,    -1,    -1,    -1,    -1,   627,   628,  1307,    -1,   521,
    3117       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3118       -1,   643,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3119       -1,    -1,    -1,    -1,   860,    -1,    -1,    -1,    -1,    -1,
    3120       -1,  1166,  1483,    -1,    -1,    -1,    -1,    -1,    -1,  1490,
    3121       -1,    66,    67,    -1,    -1,    -1,   882,    72,    -1,    -1,
    3122       -1,    76,    -1,   889,    79,    80,    81,    82,    83,    84,
    3123       85,    86,   584,    88,    89,    -1,    -1,    -1,    -1,   701,
    3124       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   999,
    3125     1000,    -1,  1002,  1003,    -1,    -1,   111,    -1,   113,    -1,
    3126       -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3127     1020,    -1,    -1,    -1,    -1,   627,   628,    -1,    -1,    -1,
    3128       -1,    -1,    -1,    -1,    -1,    -1,    -1,   342,    -1,   344,
    3129       -1,   643,    -1,    10,    11,    12,    13,    14,  1263,    -1,
    3130      355,   356,    -1,    -1,  1054,  1055,    -1,    -1,    -1,   661,
    3131       -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3132      672,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3133       -1,    -1,    -1,   999,  1000,    -1,  1002,  1003,    -1,    -1,
    3134       -1,    -1,    -1,    -1,    39,    -1,   698,    -1,    -1,   701,
    3135       67,    -1,    -1,    -1,  1020,    72,    -1,    74,    75,    76,
    3136       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,
    3137       -1,    -1,    67,    -1,    -1,  1125,    -1,    72,    -1,    74,
    3138       75,    76,    -1,    -1,   736,    -1,    -1,    -1,  1054,  1055,
    3139       85,    86,    -1,    -1,   111,    -1,   113,    -1,   860,    -1,
    3140       -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3141       -1,    -1,    -1,    -1,    -1,    -1,   111,  1167,   113,    -1,
    3142      882,    -1,    -1,    -1,   119,   120,    -1,   779,    37,    38,
    3143       -1,    40,    -1,    -1,    -1,    -1,    -1,   789,  1188,    -1,
    3144       -1,    -1,    -1,   795,    -1,    -1,    -1,    -1,   800,    -1,
    3145     1200,    -1,  1202,    -1,    -1,    -1,    -1,    66,    -1,  1125,
    3146       -1,    -1,    -1,    72,    -1,    -1,   928,    76,    -1,    -1,
    3147       79,    80,    81,    82,    83,    84,    85,    86,    -1,    88,
    3148       89,    -1,    -1,    -1,    -1,    -1,    -1,  1237,    -1,    -1,
    3149       -1,    -1,    -1,    -1,  1244,  1245,  1246,    -1,    -1,    -1,
    3150       -1,  1167,   111,    -1,   113,  1255,  1256,    -1,   860,    -1,
    3151      119,   120,   121,   122,   123,   124,    -1,    -1,  1268,    -1,
    3152       -1,    -1,  1188,   132,    -1,    -1,    -1,    -1,    -1,    -1,
    3153      882,    -1,    -1,    -1,  1200,    -1,  1202,   889,    -1,    -1,
    3154     1002,  1003,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3155       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1307,  1020,    -1,
    3156       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
    3157       -1,  1237,    -1,    75,    -1,    77,    -1,    79,  1244,  1245,
    3158     1246,    -1,    -1,    -1,    86,    -1,    -1,    -1,    -1,  1255,
    3159     1256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3160       -1,    -1,  1268,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3161       -1,    -1,    -1,    -1,    -1,   117,    -1,   119,   120,   121,
    3162       -1,    -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,    -1,
    3163       -1,    -1,    -1,    -1,    -1,   690,    -1,   692,    -1,    -1,
    3164       -1,  1307,    -1,    -1,   699,   700,    -1,   999,  1000,   704,
    3165     1002,  1003,    -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,
    3166       -1,    -1,   717,    -1,    -1,    -1,    -1,   722,  1020,    -1,
    3167       -1,    -1,    -1,    -1,  1424,    -1,    -1,    -1,    -1,    -1,
    3168       -1,  1431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3169       -1,    -1,    -1,    -1,   749,    -1,    -1,    -1,    -1,    -1,
    3170       -1,    -1,  1054,  1055,  1166,  1167,    -1,    -1,    -1,    -1,
    3171     1376,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   220,    -1,
    3172      222,   223,   224,    -1,    -1,    -1,  1188,    -1,    -1,    -1,
    3173       -1,    -1,    -1,  1483,    -1,    -1,    -1,    -1,    -1,    -1,
    3174       -1,    -1,    -1,    -1,  1206,    -1,    -1,    -1,    -1,    -1,
    3175       -1,    -1,    -1,    -1,    -1,    -1,   258,    -1,  1424,    -1,
    3176       -1,   263,    -1,    -1,    -1,  1431,    -1,    -1,    -1,    -1,
    3177       -1,    -1,    -1,  1125,    -1,    -1,   278,    -1,    -1,    -1,
    3178       -1,    -1,    -1,    -1,    -1,    -1,    -1,   842,    -1,   844,
    3179      845,   846,    -1,  1255,  1256,    -1,    -1,    -1,    -1,    -1,
    3180       -1,  1263,    49,    -1,    -1,    -1,  1268,    -1,   863,    -1,
    3181       -1,    -1,    -1,    -1,    -1,  1167,    -1,  1483,    -1,    66,
    3182       -1,    -1,   877,    -1,    -1,    -1,    -1,   329,    -1,    -1,
    3183       -1,    -1,    -1,    -1,    -1,    -1,  1188,    -1,    -1,  1301,
    3184       -1,    -1,    -1,    -1,    -1,    -1,   348,    -1,  1200,    -1,
    3185     1202,   353,   354,    -1,    -1,    -1,    -1,    -1,    -1,   361,
    3186       -1,   916,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,
    3187      117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3188       -1,    -1,    -1,    -1,    -1,  1237,    -1,    -1,    -1,    -1,
    3189       -1,    -1,  1244,  1245,  1246,    -1,    -1,    -1,    -1,   146,
    3190       -1,   403,    -1,  1255,  1256,   960,    -1,    -1,    -1,   156,
    3191      965,    -1,   159,    -1,  1376,   970,  1268,    -1,    -1,   421,
    3192      975,    -1,    -1,    -1,   426,   980,   428,   982,   983,    -1,
    3193       -1,   986,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1401,
    3194      995,    -1,   444,    -1,    -1,   447,   448,    -1,    -1,    -1,
    3195       -1,    -1,    -1,   455,    -1,  1307,  1011,  1012,    -1,    -1,
    3196       -1,   208,  1424,    -1,    -1,    -1,    -1,   469,    -1,  1431,
    3197       -1,    -1,    -1,   220,   476,    -1,    -1,    -1,    -1,    -1,
    3198       -1,    -1,  1037,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
    3199       -1,   238,    -1,    -1,    -1,    26,    27,    28,    10,    11,
    3200       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3201       22,    23,    24,    25,    26,    27,   263,    -1,    -1,    -1,
    3202       -1,  1483,    -1,   270,  1376,    -1,    -1,    39,  1083,    -1,
    3203       -1,    -1,    -1,    -1,  1089,  1090,    -1,    -1,    -1,    -1,
    3204       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,    -1,
    3205       -1,    -1,    -1,  1108,    -1,    67,    -1,    -1,  1113,    -1,
    3206       -1,   308,    -1,  1118,    -1,    -1,    -1,    98,    -1,   100,
    3207       -1,    -1,  1424,    -1,  1129,    -1,    -1,    -1,    -1,  1431,
    3208       -1,    -1,    -1,    -1,    -1,   587,    -1,  1142,    -1,  1144,
    3209     1145,  1146,  1147,    -1,    -1,    -1,   343,    -1,    -1,    -1,
    3210       -1,   348,    -1,    -1,  1159,    -1,  1161,    -1,    -1,    -1,
    3211     1165,    -1,    -1,   615,    -1,    -1,    -1,    -1,   620,    -1,
    3212       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3213       -1,  1483,    -1,    -1,    -1,    -1,    -1,    -1,  1193,  1194,
    3214       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   180,
    3215       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   190,
    3216      191,    -1,    -1,    -1,   195,    -1,   197,   198,    -1,    -1,
    3217       44,    -1,    -1,    -1,    -1,    -1,   423,   424,    -1,    -1,
    3218       -1,    -1,   429,    -1,    -1,    -1,    -1,   689,    -1,    -1,
    3219       -1,    -1,  1247,  1248,    -1,    -1,    -1,    -1,    -1,    -1,
    3220       -1,   703,  1257,   450,    -1,    -1,    -1,    -1,    -1,    -1,
    3221       -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,    -1,
    3222       -1,    -1,   724,    -1,    -1,    -1,    -1,   101,    -1,    -1,
    3223       -1,   478,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3224       -1,    -1,    -1,   490,    -1,    -1,    -1,    -1,    -1,    -1,
    3225       -1,    -1,    -1,    -1,    -1,   502,    -1,   504,    -1,    -1,
    3226      507,    -1,   509,   510,  1319,    -1,  1321,  1322,  1323,    -1,
    3227       -1,    -1,    -1,    -1,   521,    -1,    -1,    -1,  1333,    -1,
    3228       -1,   783,    -1,    -1,    -1,    -1,  1341,    -1,    -1,    -1,
    3229       -1,    -1,   794,    -1,    -1,    -1,   170,    -1,    -1,    -1,
    3230       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   811,
    3231       -1,  1366,  1367,    -1,    -1,    -1,    -1,    -1,    -1,   193,
    3232       -1,    -1,    -1,    -1,    -1,    -1,   573,    -1,    -1,    -1,
    3233       -1,    -1,    -1,   207,    -1,    -1,    -1,   584,    -1,    -1,
    3234      587,    -1,   216,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3235       -1,    -1,   226,    -1,    -1,    -1,  1411,  1412,    -1,    -1,
    3236       -1,    -1,    -1,    -1,    -1,    -1,   613,    -1,    -1,  1424,
    3237       -1,   618,    -1,    -1,    -1,    -1,  1431,   251,    -1,    -1,
    3238      627,   628,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3239       -1,    -1,    -1,    -1,    -1,   269,   643,    -1,    -1,    -1,
    3240       -1,   275,    -1,   277,    -1,    -1,    -1,    -1,    -1,  1464,
    3241       -1,    -1,    -1,  1468,    -1,    -1,    -1,    -1,    -1,    -1,
    3242      922,    -1,   296,    -1,    -1,    -1,    -1,    -1,   675,    -1,
    3243       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3244       -1,  1496,    -1,  1498,    -1,    -1,    -1,    -1,    -1,    -1,
    3245      952,    -1,    -1,    -1,   701,    -1,   703,    -1,    -1,    -1,
    3246       -1,    -1,    -1,   337,    -1,    -1,    -1,   341,    -1,    -1,
    3247       -1,  1526,  1527,    -1,    -1,    -1,    -1,    -1,    -1,  1534,
    3248     1535,    -1,   984,    -1,    -1,    -1,    -1,    -1,    -1,   736,
    3249       -1,    -1,    -1,   995,    -1,   369,    -1,    -1,    -1,   373,
    3250      374,    -1,   376,    -1,    -1,    -1,    -1,    -1,    -1,   383,
    3251      384,    -1,   386,   387,    -1,   389,    -1,   391,    -1,    -1,
    3252       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3253       -1,    -1,    -1,    -1,   408,    -1,    -1,    -1,   569,   570,
    3254       -1,    -1,   416,    -1,    -1,    -1,    -1,   794,    -1,    -1,
    3255       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3256       -1,    -1,  1064,    -1,    -1,   596,   440,    -1,   599,   600,
    3257       -1,   602,    -1,   604,   605,    -1,  1078,    -1,   609,   610,
    3258       -1,    26,    27,    28,   281,    -1,   283,   284,    -1,    -1,
    3259       -1,    -1,   466,    -1,    -1,    -1,   293,   294,   472,    -1,
    3260       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
    3261       -1,   308,   309,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3262       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
    3263      156,    -1,    -1,    -1,    -1,   882,    -1,    -1,    -1,   513,
    3264       -1,    -1,   889,    -1,    -1,    -1,   343,    -1,    -1,    -1,
    3265       -1,    -1,    -1,    98,   528,   100,    -1,   904,    -1,    -1,
    3266       -1,    -1,   188,    -1,  1166,    -1,    -1,    -1,    -1,   195,
    3267       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3268      125,   378,   929,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3269       -1,   565,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3270      574,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3271       -1,    -1,    -1,    -1,   745,   746,    -1,    -1,    -1,    -1,
    3272      594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3273       -1,    -1,    -1,    -1,   981,   180,    -1,    -1,    -1,    -1,
    3274       -1,   267,    -1,   188,    -1,   190,   191,    -1,    -1,    -1,
    3275      195,    -1,   197,   198,    -1,  1002,  1003,    -1,   632,    -1,
    3276       -1,  1263,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3444      20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
     3445      30,    31,    32,    -1,    -1,   795,    -1,    -1,    -1,    39,
     3446      -1,    -1,    -1,   803,    -1,    -1,    -1,    -1,    -1,    -1,
     3447     810,   811,    -1,    -1,   814,    -1,   816,    -1,    -1,    -1,
     3448     380,    -1,    -1,    -1,    -1,    -1,   826,    67,  1534,    -1,
     3449      -1,    -1,    72,    -1,    74,    75,    76,    -1,    78,    -1,
     3450    1320,    -1,  1322,    83,    84,    -1,    -1,    -1,    -1,    -1,
     3451      -1,    -1,    -1,    -1,    -1,    -1,  1336,    -1,  1338,    -1,
     3452      -1,    -1,    -1,    -1,    -1,    -1,   696,    -1,    -1,   109,
     3453      -1,   111,    -1,  1353,    -1,    -1,    -1,   117,   118,    -1,
     3454      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1369,
     3455    1370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   898,    -1,
     3456    1380,    -1,    -1,  1383,    -1,   905,   906,   907,    -1,   909,
     3457      -1,    -1,    -1,   913,   474,    -1,    -1,    -1,    -1,    -1,
     3458      -1,    -1,    -1,    -1,  1404,    -1,    -1,   757,    -1,    -1,
     3459      -1,    -1,    -1,  1413,   934,   935,  1416,    -1,  1418,  1419,
     3460    1420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3461      -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,   788,    -1,
     3462      -1,    -1,    -1,    -1,    -1,    -1,   526,    -1,    -1,   969,
     3463      -1,   531,    -1,    -1,   534,    -1,    -1,    -1,  1458,    -1,
     3464    1460,    -1,  1462,    -1,    -1,    -1,    -1,   547,    -1,    -1,
     3465     990,   991,    -1,    -1,    -1,    -1,    -1,  1477,    -1,    -1,
     3466      -1,  1001,    -1,    -1,    -1,    -1,    -1,  1007,  1008,   569,
     3467    1010,  1011,  1012,    -1,    -1,    -1,    -1,    -1,    -1,   579,
     3468      -1,    -1,  1022,  1023,    -1,    -1,   586,    -1,    -1,    -1,
     3469      -1,   591,    -1,    -1,     3,     4,     5,     6,     7,     8,
    32773470       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    32783471      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3279       -1,    30,    31,    32,   668,    -1,    -1,    -1,   324,    -1,
    3280       39,    -1,   676,    -1,    -1,    -1,   332,   333,    -1,   335,
    3281      336,    -1,  1059,    -1,    -1,    -1,    -1,   343,    -1,    -1,
    3282       -1,   347,   267,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3283       69,    -1,    71,   707,    -1,    74,    75,    -1,    -1,    -1,
    3284      366,    -1,    -1,    -1,   718,   719,    -1,    -1,    -1,   546,
    3285      547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
    3286      557,   558,   559,   560,   561,   562,   563,    -1,    -1,   395,
    3287      901,    -1,    -1,   399,    -1,    -1,   750,   116,  1125,    -1,
    3288       -1,   755,    10,    11,    12,    13,    14,    15,    16,    17,
    3289       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3290       28,    -1,    -1,   429,    -1,    -1,    -1,    -1,    -1,    -1,
    3291       -1,    39,    -1,   146,    -1,    -1,    -1,    -1,    -1,  1166,
    3292       -1,    -1,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,
    3293       -1,    -1,    -1,    -1,   167,   168,    -1,    -1,    -1,    67,
    3294       -1,   815,    -1,    -1,    -1,    -1,    -1,    -1,   822,   475,
    3295       78,    -1,   478,    -1,    -1,  1202,    -1,    -1,    -1,    -1,
    3296       -1,   835,    -1,   837,    -1,    -1,    -1,    -1,    -1,    -1,
    3297       -1,    -1,    -1,    -1,    -1,    -1,   850,    -1,    -1,    -1,
    3298       -1,    -1,   856,    -1,    -1,    -1,    -1,    -1,    -1,   686,
    3299       -1,   517,    -1,    -1,   868,   521,    -1,   871,    -1,    -1,
    3300       -1,    -1,    -1,    -1,    -1,   238,    -1,    -1,  1255,  1256,
    3301       -1,    -1,  1514,    -1,    -1,    -1,  1263,    -1,    -1,    -1,
    3302       -1,    -1,    -1,    -1,    -1,  1056,    -1,    -1,    -1,   262,
    3303       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   565,
    3304      566,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3305      747,    -1,    -1,    -1,    -1,    -1,    -1,   583,   584,    -1,
    3306       -1,    -1,    -1,    -1,    -1,    -1,    -1,   593,    -1,   595,
    3307      596,    -1,    -1,    -1,    -1,    -1,   602,    -1,    -1,    -1,
    3308      777,    -1,    -1,    -1,    -1,    -1,   612,   613,    -1,    -1,
    3309       -1,    -1,   618,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3310       -1,   627,   628,    -1,    -1,   979,    -1,    -1,    -1,    -1,
    3311       -1,    -1,    -1,    -1,    -1,    -1,    -1,   643,    -1,    -1,
    3312       -1,    -1,   648,   649,   569,   570,   652,   653,    -1,  1376,
    3313       -1,    -1,    -1,   659,    -1,    -1,    -1,    -1,    -1,    -1,
    3314       -1,    -1,    -1,    -1,   377,    -1,    -1,    -1,    -1,    -1,
    3315       -1,   596,   678,  1184,   599,   600,    -1,   602,    -1,   604,
    3316      605,    -1,    -1,    -1,   609,   610,  1040,    -1,    -1,    -1,
    3317       -1,    -1,    -1,    -1,    -1,   701,   702,    -1,    -1,    -1,
    3318       -1,    -1,    -1,    -1,    -1,    -1,  1433,    -1,  1435,    -1,
    3319       -1,    -1,    -1,    -1,   891,    -1,    -1,    -1,    -1,    -1,
    3320     1074,    -1,    -1,    -1,    -1,  1079,    -1,    -1,    -1,    -1,
    3321      736,    -1,    -1,  1087,   740,   741,    -1,    -1,    -1,    -1,
    3322       -1,    -1,    -1,  1470,    -1,  1472,    -1,    -1,    -1,    -1,
    3323       -1,    -1,    -1,    -1,    -1,    -1,    -1,   470,    -1,    -1,
    3324      937,    -1,    -1,    -1,    -1,    -1,    -1,  1121,    -1,    -1,
    3325       -1,    -1,  1499,    -1,    -1,    -1,    -1,   783,  1132,    -1,
    3326       -1,  1135,    -1,  1137,    -1,    -1,    -1,    -1,    -1,    -1,
    3327       -1,    -1,   969,   799,    -1,   801,   509,    -1,  1152,  1153,
    3328       -1,    -1,    -1,    -1,   981,   811,    -1,    -1,   521,    -1,
    3329       -1,    -1,    -1,    -1,   527,    -1,    -1,   530,  1172,    -1,
    3330      745,   746,     7,    -1,    -1,    10,    11,    12,    13,    14,
    3331      543,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3332       -1,    -1,    -1,  1020,    -1,    -1,    -1,    -1,    -1,    -1,
    3333       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3334      573,    -1,    -1,    -1,  1218,    -1,    -1,   580,    -1,    -1,
    3335       -1,   584,  1226,    -1,    -1,    -1,   882,    -1,    -1,    -1,
    3336       -1,    66,    67,   889,   890,    -1,   892,    72,    -1,    -1,
    3337      896,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3338       85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3339       -1,   917,   918,    -1,    -1,    -1,    -1,   630,    -1,  1096,
    3340       -1,    -1,    -1,    -1,    -1,   638,   111,    -1,   113,    -1,
    3341       -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3342       -1,    -1,  1296,    -1,  1298,    -1,   952,    -1,    -1,    -1,
     3472      -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
     3473      39,    40,    -1,    -1,    -1,    -1,    -1,    -1,   908,    -1,
     3474     640,    -1,    -1,    -1,    -1,  1085,    -1,  1087,   648,    -1,
     3475      -1,    -1,  1092,    -1,    -1,    64,    -1,    -1,    67,    -1,
     3476      69,  1101,    71,    72,    -1,    74,    75,    76,    -1,    -1,
     3477      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
     3478      -1,    -1,    -1,   953,  1124,  1125,  1126,    -1,    -1,    -1,
    33433479      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3344     1314,    -1,  1316,    -1,    -1,   971,   972,    -1,    -1,    -1,
    3345       -1,   896,    -1,    -1,    -1,   981,   901,  1331,  1155,  1156,
    3346       -1,   987,   988,    -1,   990,   991,   992,    -1,    -1,    -1,
    3347       -1,    -1,  1346,  1347,    -1,    -1,  1002,  1003,    -1,    -1,
    3348       -1,   714,    -1,  1357,    -1,    -1,  1360,    -1,    -1,    -1,
     3480     109,    -1,   111,    -1,    -1,    -1,   115,    -1,   117,   118,
     3481    1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   988,    -1,
    33493482      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3350       -1,    -1,    -1,   736,    -1,   738,    -1,    -1,  1382,    -1,
    3351       -1,    -1,    -1,    -1,    -1,   748,    -1,  1391,    -1,    -1,
    3352     1394,   754,  1396,  1397,  1398,    -1,    -1,    -1,    -1,    -1,
    3353       -1,    -1,    -1,    -1,    -1,    -1,  1062,    -1,  1064,    -1,
    3354       -1,    -1,    -1,  1069,    -1,    -1,    -1,    -1,    -1,    -1,
    3355       -1,    -1,  1078,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3356       -1,   794,   795,  1437,    -1,  1439,    -1,  1441,    -1,    -1,
    3357       -1,    -1,    -1,    -1,    -1,  1101,  1102,   810,    -1,    -1,
    3358       -1,    -1,    -1,  1457,    -1,    -1,    -1,    -1,    -1,    -1,
    3359       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1125,
     3483      -1,  1001,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
     3484      -1,    40,    -1,    -1,    -1,    -1,   746,    -1,   748,    -1,
     3485      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   758,    -1,
     3486      -1,    -1,    -1,    -1,   764,    -1,    -1,    66,    -1,    -1,
     3487      -1,  1211,  1042,    72,    -1,    74,    75,    76,    -1,    -1,
     3488      79,    80,    81,    82,    83,    84,    -1,    86,    87,  1229,
    33603489      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3361       -1,  1056,    -1,    -1,    -1,    -1,   849,    -1,    -1,    -1,
    3362      853,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3363       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3364       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,   882,
    3365       -1,    -1,    -1,    -1,    39,    -1,   889,    -1,    -1,    -1,
    3366       -1,    -1,    -1,    -1,    -1,    -1,  1363,    -1,    -1,    -1,
    3367       -1,    -1,    -1,    -1,    -1,    -1,  1202,    -1,    -1,    -1,
    3368       -1,    -1,    67,  1380,    -1,    -1,    -1,    -1,    -1,    74,
    3369       75,    -1,    -1,    -1,    -1,    -1,   929,     3,     4,     5,
    3370        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3371       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3372       26,    27,    -1,   956,    30,    31,    32,    -1,   961,  1255,
    3373     1256,   964,    -1,    39,   119,   120,    -1,    -1,    -1,  1184,
     3490      -1,    -1,    -1,    -1,    -1,    -1,    -1,   807,   808,    -1,
     3491     109,   811,   111,    -1,   113,   114,    -1,    -1,   117,   118,
     3492     119,   120,   121,   122,    -1,   825,    -1,    -1,    -1,    -1,
     3493      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,
     3494      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1119,
    33743495      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3375       -1,   984,    -1,    -1,    -1,  1452,  1453,    -1,    -1,    -1,
    3376       -1,    67,   995,    69,    -1,    71,    72,    -1,    74,    75,
    3377       76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
    3378       86,    -1,  1015,    -1,  1017,    -1,    -1,    -1,    -1,    -1,
    3379       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1032,
    3380     1033,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
    3381       -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,  1052,
    3382       -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
    3383        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3384       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3385     1376,    -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,
    3386       -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3387       -1,    -1,    -1,  1106,    -1,    -1,    -1,    -1,    -1,    -1,
    3388       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3389       -1,    69,  1125,    71,    -1,    -1,    74,    75,    -1,    -1,
    3390       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1140,  1141,    -1,
    3391        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3392       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3393       24,    25,    26,    27,    -1,   113,    30,    31,    32,  1465,
    3394       -1,   119,   120,    -1,    -1,    39,    -1,    -1,    -1,    -1,
     3496      -1,    -1,    -1,    -1,    -1,   865,    -1,    -1,    -1,   869,
    33953497      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3396       -1,    -1,    -1,  1489,  1490,    -1,    -1,    -1,    -1,    -1,
    3397       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3398       74,    75,    -1,    -1,    -1,    -1,    -1,    -1,  1514,    -1,
    3399       -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    3400       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3401       21,    22,    23,    24,    25,    26,    27,    -1,   112,    30,
    3402       31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
    3403       41,    -1,    43,    -1,    -1,    46,    47,    48,    49,    50,
    3404       51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,  1282,
    3405       61,    62,  1285,    64,    -1,    66,    67,    -1,    69,    -1,
    3406       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3407       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
     3498       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3499      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3500      23,    24,    25,    26,    27,    -1,   906,    30,    31,    32,
     3501      33,  1181,  1182,    36,    -1,    -1,    39,    40,    -1,    -1,
    34083502      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34093503      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3410      111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,   120,
    3411      121,   122,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,
    3412       -1,    -1,    -1,   134,     3,     4,     5,     6,     7,     8,
     3504      -1,    64,    -1,    -1,    67,   945,    69,    -1,    71,    72,
     3505      -1,    74,    75,    76,    -1,    -1,    -1,    -1,  1398,    -1,
     3506      83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3507      -1,    -1,    -1,   973,    -1,    -1,    -1,    37,    38,   979,
     3508      40,    -1,    -1,   983,    -1,    -1,   109,    -1,   111,    -1,
     3509      -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
     3510      -1,    -1,    -1,    -1,  1004,    -1,    66,    -1,    -1,    -1,
     3511      -1,    -1,    72,    -1,    -1,  1015,    76,    -1,    -1,    79,
     3512      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3513      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1037,    -1,  1039,
     3514      -1,    -1,    -1,    37,    38,  1485,    40,    -1,    -1,   109,
     3515      -1,   111,    -1,    -1,  1054,  1055,   116,   117,   118,   119,
     3516     120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,  1509,
     3517    1510,    -1,    66,    -1,    -1,  1075,    -1,    -1,    72,    -1,
     3518      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3519      84,    -1,    86,    87,  1534,    -1,    -1,    -1,    -1,    -1,
     3520      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3521      -1,    -1,    -1,    -1,    -1,   109,  1386,   111,    -1,    -1,
     3522     114,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3523    1130,    -1,  1402,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3524      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3525    1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3526      -1,    -1,    -1,    -1,    -1,  1165,  1166,    -1,    -1,    -1,
     3527      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3528      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3529      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3530      32,    33,  1472,  1473,    36,    37,    38,    39,    40,    41,
     3531      -1,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
     3532      52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,
     3533      62,    -1,    64,    -1,    66,    67,    -1,    69,    -1,    71,
     3534      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3535      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3536      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3537      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3538      -1,    -1,   114,    -1,    -1,   117,   118,   119,   120,   121,
     3539     122,    -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,
     3540     132,    -1,    -1,    -1,    -1,    -1,  1306,    -1,    -1,  1309,
     3541       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3542      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3543      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3544      33,    -1,    -1,    36,    37,    38,    39,    40,    10,    11,
     3545      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3546      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3547      32,    -1,    -1,    66,    67,    -1,    69,    39,    71,    72,
     3548      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
     3549      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3550      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3551      72,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3552      -1,    83,    84,    -1,   117,   118,   119,   120,   121,   122,
     3553      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,
     3554      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
    34133555       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    34143556      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    34153557      -1,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
    3416       39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
    3417       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3418       -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
    3419       69,    39,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3420       79,    80,    81,    82,    83,    84,    85,    86,    -1,    88,
    3421       89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3422       -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,    -1,
    3423       -1,    -1,   111,    -1,   113,    -1,    -1,    85,    86,    -1,
    3424      119,   120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,
    3425       -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,    -1,
    3426       -1,    -1,    -1,    -1,    -1,    -1,  1499,     3,     4,     5,
    3427        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3428       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3429       26,    27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,
    3430       36,    37,    38,    39,    40,    10,    11,    12,    13,    14,
     3558      39,    40,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    34313559      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3432       25,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,
    3433       66,    67,    -1,    69,    39,    71,    72,    -1,    74,    75,
    3434       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
    3435       86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
     3560      25,    26,    27,    28,    -1,    -1,    -1,    66,    67,    -1,
     3561      69,    -1,    71,    72,    39,    74,    75,    76,    -1,  1519,
     3562      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3563      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34363564      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3437       -1,    -1,    -1,    78,    -1,   111,    -1,   113,    -1,    -1,
    3438       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,     4,
    3439        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3440       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3441       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3442       -1,    -1,    37,    38,    39,    40,    10,    11,    12,    13,
    3443       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3444       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3445       -1,    66,    67,    -1,    69,    39,    71,    72,    -1,    74,
    3446       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3447       85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3448       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
    3449       74,    75,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
    3450       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,   124,
    3451        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3452       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3453       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3454       -1,    -1,    -1,    37,    38,    39,    40,    10,    11,    12,
    3455       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3456       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3457       -1,    -1,    66,    67,    -1,    69,    39,    71,    72,    -1,
    3458       74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3459       84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,
    3460       -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
    3461       -1,    74,    75,    -1,    -1,    -1,    -1,   111,    -1,   113,
    3462       -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
    3463      124,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3565     109,    -1,   111,    78,    -1,    -1,    -1,    -1,   117,   118,
     3566     119,   120,   121,   122,     4,     5,     6,     7,     8,     9,
     3567      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3568      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3569      30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,
     3570      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3571      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3572      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    69,
     3573      39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3574      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3575      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3576      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
     3577      -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,
     3578     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
     3579      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3580      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3581      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3582      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3583      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3584      30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
     3585      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3586      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3587      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3588      -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,
     3589     111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
     3590     121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
     3591      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3592      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3593      32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,
     3594      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3596      -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,
     3597      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3598      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3599      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3600      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3601      -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,   121,
     3602     122,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    34643603      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    34653604      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     
    34693608      -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,
    34703609      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3471       83,    84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,
     3610      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    34723611      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3473       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3474      113,    -1,    -1,    -1,    -1,    -1,   119,   120,   121,   122,
    3475      123,   124,     4,     5,     6,     7,     8,     9,    10,    11,
     3612      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     3613      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3614       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3615      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3616      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3617      -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,
     3618      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3619      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3620      -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,
     3621      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3622      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3623      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3624      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3625      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     4,
     3626       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3627      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3628      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3629      -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3630      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3631      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3632      -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     3633      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3634      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3635      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3636      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3637      -1,    -1,   117,   118,   119,   120,   121,   122,     4,     5,
     3638       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3639      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3640      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     3641      -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,
     3642      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3643      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3644      66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
     3645      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3646      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3647      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3648      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3649      -1,   117,   118,   119,   120,   121,   122,     3,     4,     5,
     3650       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3651      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3652      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     3653      -1,    -1,    -1,    39,    -1,    10,    11,    12,    13,    14,
     3654      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3655      25,    26,    27,    -1,    -1,    30,    31,    32,    33,    34,
     3656      35,    67,    -1,    69,    39,    71,    72,    -1,    74,    75,
     3657      76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
     3658      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3659      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3660      75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3661      -1,   117,   118,     3,     4,     5,     6,     7,     8,     9,
     3662      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3663      20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
     3664      30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
     3665      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3666      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3667      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3668      -1,    71,    -1,    -1,    74,    75,    -1,    -1,    78,     3,
     3669       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3670      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3671      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    33,
     3672      -1,   111,    36,    -1,    -1,    39,    -1,   117,   118,    -1,
     3673      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3674      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3675      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     3676      74,    75,     3,     4,     5,     6,     7,     8,     9,    10,
     3677      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3678      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3679      31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,
     3680      -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
     3681      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3682      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
     3683      71,    -1,    -1,    74,    75,    -1,     4,     5,     6,     7,
     3684       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3685      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3686      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     3687     111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
     3688      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3689      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3690      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3691      -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
     3692      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3693      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3694      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
     3695     118,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3696      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3697      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3698      -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
     3699      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3700      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3701      -1,    30,    31,    32,    67,    -1,    69,    -1,    71,    -1,
     3702      39,    74,    75,    -1,     4,     5,     6,     7,     8,     9,
     3703      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3704      20,    21,    22,    23,    24,    25,    26,    27,    67,    -1,
     3705      30,    31,    32,    -1,    -1,    74,    75,   110,   111,    39,
     3706      -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
     3707      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3708      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3709     109,    71,   111,    -1,    74,    75,    -1,    -1,   117,   118,
     3710      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3711      -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
     3712      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3713      -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,     4,
     3714       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3715      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3716      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3717      -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    10,    11,
    34763718      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    34773719      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3478       32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,
     3720      32,    -1,    67,    -1,    69,    -1,    71,    39,    40,    74,
     3721      75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3722      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3723      -1,    96,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3724      -1,    -1,    74,    75,    -1,    -1,   111,    -1,    -1,    -1,
     3725      -1,    -1,   117,   118,     4,     5,     6,     7,     8,     9,
     3726      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3727      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
     3728      30,    31,    32,   115,    -1,   117,   118,    -1,    -1,    39,
    34793729      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34803730      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3481       -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,
    3482       72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
    3483       82,    83,    84,    85,    86,    -1,    88,    89,    -1,    -1,
     3731      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3732      -1,    71,    -1,    -1,    74,    75,    -1,     4,     5,     6,
     3733       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3734      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3735      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3736      -1,   111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,
    34843737      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3485       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    3486       -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,   121,
    3487      122,   123,   124,     4,     5,     6,     7,     8,     9,    10,
     3738      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3739      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3740       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3741      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3742      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3743      -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
     3744     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3745      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3746      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     3747      74,    75,    -1,     4,     5,     6,     7,     8,     9,    10,
    34883748      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    34893749      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3490       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3750      31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,
     3751      -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
     3752      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3753      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
     3754      71,    -1,    -1,    74,    75,    10,    11,    12,    13,    14,
     3755      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3756      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3757      -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3758     111,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
     3759      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3760      -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3761      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3762      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3763      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3764      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
     3765      -1,    -1,   117,   118,   119,   120,   121,   122,    10,    11,
     3766      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3767      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3768      32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    10,
     3769      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3770      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3771      31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,    -1,
     3772      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3773      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3774      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3775      -1,    72,    -1,    74,    75,    76,    -1,   109,   110,   111,
     3776      -1,    -1,    83,    84,    -1,   117,   118,   119,   120,   121,
     3777     122,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3778      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3779     111,    30,    31,    32,    -1,    -1,   117,   118,    37,    38,
     3780      39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
     3781      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3782      -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
     3783      -1,    39,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3784      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3785      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3786      -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,    -1,
     3787     109,    -1,   111,    -1,    -1,    83,    84,    -1,   117,   118,
     3788     119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
     3789      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3790      26,    27,    -1,   111,    30,    31,    32,    -1,    -1,   117,
     3791     118,    37,    38,    39,    40,    10,    11,    12,    13,    14,
     3792      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3793      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3794      66,    67,    -1,    -1,    39,    40,    72,    -1,    74,    75,
     3795      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3796      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3797      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3798      75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3799      -1,   117,   118,   119,   120,   121,   122,    10,    11,    12,
     3800      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3801      23,    24,    25,    26,    27,    -1,   111,    30,    31,    32,
     3802     115,    -1,   117,   118,    37,    38,    39,    40,    10,    11,
     3803      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3804      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3805      32,    -1,    -1,    66,    67,    -1,    -1,    39,    40,    72,
     3806      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
     3807      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3808      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3809      -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3810      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3811      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3812      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
     3813      30,    31,    32,   115,    -1,   117,   118,    37,    38,    39,
     3814      40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
     3815      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3816      22,    23,    24,    25,    26,    27,    66,    67,    30,    31,
     3817      32,    -1,    72,    -1,    74,    75,    76,    39,    -1,    79,
     3818      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3819      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3820      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,   109,
     3821      -1,   111,    74,    75,    -1,    -1,    -1,   117,   118,   119,
     3822     120,   121,   122,     3,     4,     5,     6,     7,     8,     9,
     3823      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3824      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
     3825      30,    31,    32,    -1,    -1,   117,   118,    -1,    -1,    39,
     3826      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3827      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3828      27,    -1,    -1,    30,    31,    32,    -1,    67,    -1,    69,
     3829      -1,    71,    39,    -1,    74,    75,    -1,    -1,    -1,    -1,
     3830      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3831      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3832      67,    30,    31,    32,    -1,    72,    -1,    74,    75,    76,
     3833      39,    -1,    -1,    -1,   114,    -1,    83,    84,    -1,    10,
     3834      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3835      21,    22,    23,    24,    25,    26,    27,    -1,    67,    30,
     3836      31,    32,   109,    72,   111,    74,    75,    76,    39,    -1,
     3837     117,   118,    -1,    -1,    83,    84,    -1,    10,    11,    12,
     3838      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3839      23,    24,    25,    26,    27,    28,    67,    30,    31,    32,
     3840     109,    72,   111,    74,    75,    76,    39,    -1,   117,   118,
     3841      -1,    -1,    83,    84,    -1,    10,    11,    12,    13,    14,
     3842      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3843      25,    26,    27,    28,    67,    30,    31,    32,   109,    -1,
     3844     111,    74,    75,    -1,    39,    78,   117,   118,    10,    11,
     3845      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3846      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3847      32,    -1,    67,    -1,    -1,    -1,   109,    39,   111,    74,
     3848      75,    -1,    -1,    78,   117,   118,    10,    11,    12,    13,
     3849      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3850      24,    25,    26,    27,    -1,    67,    30,    31,    32,    -1,
     3851      -1,    -1,    74,    75,    -1,    39,   111,    -1,    -1,    -1,
     3852      -1,    -1,   117,   118,    10,    11,    12,    13,    14,    15,
     3853      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3854      26,    27,    -1,    67,    30,    31,    32,    -1,    -1,   111,
     3855      74,    75,    -1,    39,    -1,   117,   118,    10,    11,    12,
     3856      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3857      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3858      -1,    67,    -1,    -1,    -1,    -1,    39,   111,    74,    75,
     3859      -1,    -1,    -1,   117,   118,    10,    11,    12,    13,    14,
     3860      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3861      25,    26,    27,    -1,    67,    30,    31,    32,    -1,    -1,
     3862      -1,    74,    75,    -1,    39,   111,    -1,    -1,    -1,    -1,
     3863      -1,   117,   118,    10,    11,    12,    13,    14,    15,    16,
     3864      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3865      27,    -1,    67,    30,    31,    32,    -1,    -1,   111,    74,
     3866      75,    -1,    39,    -1,   117,   118,     4,     5,     6,     7,
     3867       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3868      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3869      67,    -1,    30,    31,    32,    -1,   111,    74,    75,    -1,
     3870      -1,    39,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3871      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3872      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3873      -1,    69,    -1,    71,   111,    -1,    74,    75,    -1,    -1,
     3874     117,   118,    37,    38,    -1,    40,    41,    -1,    43,    -1,
     3875      -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
     3876      -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
     3877      -1,    66,   110,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3878      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3879      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3880      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3881      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
     3882      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3883      37,    38,   127,    40,    41,    -1,    43,   132,    -1,    46,
     3884      47,    48,    49,    50,    51,    52,    53,    -1,    -1,    -1,
     3885      57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,
     3886      -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3887      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3888      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3889      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3890      -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
     3891     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
     3892     127,    -1,    -1,    -1,    -1,   132,     4,     5,     6,     7,
     3893       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3894      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3895      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     3896      -1,    39,    -1,    37,    38,    -1,    40,    41,    -1,    43,
     3897      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
     3898      -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    67,
     3899      64,    69,    66,    71,    -1,    -1,    74,    75,    72,    -1,
     3900      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3901      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    96,    -1,
     3902      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3903      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3904     114,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3905      -1,    37,    38,   127,    40,    41,    -1,    43,    44,    45,
     3906      46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
     3907      -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,
     3908      66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
     3909      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3910      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3911      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3912      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
     3913      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    37,
     3914      38,   127,    40,    41,    -1,    43,    -1,    -1,    46,    47,
     3915      48,    49,    50,    51,    52,    53,    -1,    -1,    -1,    57,
     3916      -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,
     3917      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
     3918      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3919      -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
     3920      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3921      -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,
     3922     118,   119,   120,   121,   122,    66,    -1,    -1,    -1,   127,
     3923      -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
     3924      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3925      -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
     3926      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3927     111,    -1,    37,    38,    -1,    40,   117,   118,   119,   120,
     3928     121,   122,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     3929      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3930      84,    66,    86,    87,    -1,    -1,    -1,    72,    -1,    -1,
     3931      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3932      -1,    86,    87,    -1,    -1,   109,    -1,   111,    -1,    37,
     3933      38,    -1,    40,   117,   118,   119,   120,   121,   122,    -1,
     3934      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    37,    38,
     3935      -1,    40,   117,   118,   119,   120,   121,   122,    66,    -1,
     3936      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
     3937      -1,    79,    80,    81,    82,    83,    84,    66,    86,    87,
     3938      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3939      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3940      -1,   109,    -1,    -1,    -1,    37,    38,    -1,    40,   117,
     3941     118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
     3942     109,    -1,    -1,    -1,    37,    38,    -1,    40,   117,   118,
     3943     119,   120,   121,   122,    66,    -1,    -1,    -1,    -1,    -1,
     3944      72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
     3945      82,    83,    84,    66,    86,    87,    -1,    -1,    -1,    72,
     3946      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3947      83,    84,    -1,    86,    87,    -1,    -1,   109,    -1,    -1,
     3948      -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3949     122,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     3950      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3951       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3952      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3953      24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,
     3954      -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    34913955      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34923956      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3493       -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
    3494       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3495       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3496       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3497       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3498      111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3499      121,   122,   123,   124,     0,    -1,    -1,     3,     4,     5,
    3500        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3501       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3502       26,    27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,
    3503       36,    -1,    -1,    39,    40,    -1,    -1,    -1,    -1,    -1,
    3504       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3505       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,
    3506       -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
    3507       76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
    3508       86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3509       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3510       -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
    3511       -1,    -1,    -1,   119,   120,     3,     4,     5,     6,     7,
    3512        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3513       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3514       -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,
    3515       -1,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3516       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3517       -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,
    3518       -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
    3519       -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    -1,
    3520       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3521       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3522       -1,    -1,    -1,   111,    -1,   113,    -1,    -1,    -1,   117,
    3523       -1,   119,   120,     3,     4,     5,     6,     7,     8,     9,
    3524       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3525       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3526       30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
    3527       40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3528       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3529       -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    69,
    3530       -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
    3531       -1,    -1,    -1,    -1,    -1,    85,    86,    -1,    -1,    -1,
    3532       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3533       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3534       -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,
    3535      120,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3957      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
     3958      74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
     3959      84,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    35363960      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3537       22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
    3538       32,    33,    -1,    -1,    36,    -1,    -1,    39,    -1,    -1,
     3961      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3962      32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    35393963      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35403964      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35413965      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3542       -1,    -1,    74,    75,    -1,    -1,    78,     3,     4,     5,
    3543        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3544       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3545       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3546       -1,   113,    -1,    39,    -1,    -1,    -1,   119,   120,    -1,
     3966      -1,    -1,    74,    75,     3,     4,     5,     6,     7,     8,
     3967       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3968      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3969      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     3970      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35473971      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3548       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3549       -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
    3550        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3551       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3552       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3553       -1,    -1,    -1,    -1,    -1,    39,    -1,   113,    -1,    -1,
    3554       -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,
    3555       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3556       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
    3557       74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3558       -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3559       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3560       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,
    3561       -1,    -1,    -1,    -1,    -1,   119,   120,     4,     5,     6,
     3972      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3973      69,    -1,    71,    -1,    -1,    74,    75,     4,     5,     6,
    35623974       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    35633975      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     
    35663978      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35673979      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3568       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     4,
    3569        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3570       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3571       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3572       -1,    -1,    -1,    -1,    39,   112,   113,    -1,    -1,    -1,
    3573       -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3574       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3575       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3576       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3577       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3578       -1,    -1,    -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,
    3579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,
    3580       -1,    -1,    -1,    -1,   119,   120,     4,     5,     6,     7,
    3581        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3582       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3583       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3584       -1,    39,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3585       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3586       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    67,
    3587       -1,    69,    -1,    71,    39,    40,    74,    75,    -1,    -1,
    3588       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3589       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3590       98,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3591       75,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,    -1,
    3592       -1,   119,   120,     4,     5,     6,     7,     8,     9,    10,
    3593       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3594       21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
    3595       31,    32,   117,    -1,   119,   120,    -1,    -1,    39,    -1,
    3596       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3597       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3598       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3599       71,    -1,    -1,    74,    75,     4,     5,     6,     7,     8,
    3600        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3601       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3602       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3603       39,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3604       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3605       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3606       69,    -1,    71,    -1,    -1,    74,    75,     4,     5,     6,
    3607        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3608       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3609       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3610       -1,    -1,    39,    -1,   113,    -1,    -1,    -1,    -1,    -1,
    3611      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3612       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3613       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    10,
    3614       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3615       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3616       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3617       -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,
    3618       -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3619       -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,
    3620       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3621       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3622       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3624      111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,   120,
    3625      121,   122,   123,   124,    10,    11,    12,    13,    14,    15,
    3626       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3627       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3628       -1,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    3629       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3630       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3631       66,    67,    -1,    -1,    39,    -1,    72,    -1,    74,    75,
    3632       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
    3633       86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
    3634       -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3635       75,    -1,    -1,    -1,    -1,   111,   112,   113,    -1,    -1,
    3636       85,    86,    -1,   119,   120,   121,   122,   123,   124,    10,
    3637       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3638       21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
    3639       31,    32,    -1,    -1,   119,   120,    37,    38,    39,    40,
    3640       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3641       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3642       30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
    3643       40,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3644       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3645       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3646       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
    3647      111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3648      121,   122,   123,   124,    10,    11,    12,    13,    14,    15,
    3649       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3650       26,    27,    -1,   113,    30,    31,    32,   117,    -1,   119,
    3651      120,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    3652       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3653       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3654       66,    67,    -1,    -1,    39,    40,    72,    -1,    74,    75,
    3655       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
    3656       86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
    3657       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3658       75,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
    3659       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    10,
    3660       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3661       21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
    3662       31,    32,   117,    -1,   119,   120,    37,    38,    39,    40,
    3663       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3664       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3665       30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
    3666       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3667       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3668       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3669       -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
    3670      111,    -1,   113,    -1,    -1,    85,    86,    -1,   119,   120,
    3671      121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,
    3672       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3673       -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,
    3674      120,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3675       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3676       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3677       39,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3678       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3679       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    67,    -1,
    3680       39,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3681       -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    -1,    -1,
    3682       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3683       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
    3684       -1,    -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,
    3685      119,   120,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3686       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3687       25,    26,    27,    -1,   113,    30,    31,    32,    -1,    -1,
    3688      119,   120,    -1,    -1,    39,    10,    11,    12,    13,    14,
    3689       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3690       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3691       -1,    -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,
    3692       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3694       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3695       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,
    3696       -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    10,
    3697       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3698       21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
    3699       31,    32,    -1,    -1,   119,   120,    -1,    -1,    39,    10,
    3700       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3701       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3702       31,    32,    -1,    -1,    -1,    -1,    67,    -1,    39,    -1,
    3703       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
    3704       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3705       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
    3706       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
    3707       -1,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3708       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3709       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3710       27,    -1,   113,    30,    31,    32,    -1,    -1,   119,   120,
    3711       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3712       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3713       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3714       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    3715       -1,    -1,    37,    38,    -1,    40,    41,    -1,    43,    -1,
    3716       -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    3717       -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
    3718       -1,    66,    -1,    -1,    -1,    -1,   113,    72,    -1,    -1,
    3719       -1,    76,   119,   120,    79,    80,    81,    82,    83,    84,
    3720       85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3721       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3722       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
    3723       -1,   116,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3724       -1,    -1,    37,    38,   129,    40,    41,    -1,    43,   134,
    3725       -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    3726       -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
    3727       -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3728       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3729       85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3730       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3731       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
    3732       -1,   116,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3733       -1,    -1,    -1,    -1,   129,    -1,    -1,    -1,    -1,   134,
    3734        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3735       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3736       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3737       -1,    -1,    -1,    -1,    -1,    39,    -1,    37,    38,    -1,
    3738       40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
    3739       50,    51,    52,    53,    -1,    -1,    56,    57,    -1,    -1,
    3740       -1,    61,    62,    67,    64,    69,    66,    71,    -1,    -1,
    3741       74,    75,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3742       80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
    3743       -1,    -1,    -1,    -1,    98,    -1,    -1,    -1,    -1,    -1,
    3744       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3745       -1,   111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,
    3746      120,   121,   122,   123,   124,    -1,    -1,    37,    38,   129,
    3747       40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
    3748       50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
    3749       -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
    3750       -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3751       80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
    3752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3753       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3754       -1,   111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,
    3755      120,   121,   122,   123,   124,    -1,    -1,    37,    38,   129,
    3756       40,    41,    -1,    43,    -1,    -1,    46,    47,    48,    49,
    3757       50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
    3758       -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
    3759       -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3760       80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
    3761       -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
    3762       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3763       -1,   111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,
    3764      120,   121,   122,   123,   124,    66,    -1,    -1,    -1,   129,
    3765       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3766       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3767       -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,
    3768       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3769      111,    -1,   113,    -1,   115,   116,    -1,    -1,   119,   120,
    3770      121,   122,   123,   124,    66,    -1,    -1,    -1,    -1,    -1,
    3771       72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
    3772       82,    83,    84,    85,    86,    -1,    88,    89,    -1,    -1,
    3773       -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
    3774       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    3775       -1,   113,    -1,    -1,   116,    -1,    -1,   119,   120,   121,
    3776      122,   123,   124,    66,    -1,    -1,    -1,    -1,    -1,    72,
    3777       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3778       83,    84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,
    3779       -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
    3780       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3781      113,    -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,
    3782      123,   124,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
    3783       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3784       84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,
    3785       -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
    3786       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,
    3787       -1,    -1,   116,    -1,    -1,   119,   120,   121,   122,   123,
    3788      124,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3789       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3790       85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3791       -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
    3792       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
    3793       -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3794       66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    3795       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
    3796       86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
    3797       37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
    3798       -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
    3799       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    66,
    3800       -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
    3801       -1,    -1,    79,    80,    81,    82,    83,    84,    85,    86,
    3802       -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    37,
    3803       38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3804       -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,    -1,
    3805       -1,    -1,   119,   120,   121,   122,   123,   124,    66,    -1,
    3806       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    3807       -1,    79,    80,    81,    82,    83,    84,    85,    86,    -1,
    3808       88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
    3809       -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3810       -1,    -1,    -1,   111,    -1,   113,    -1,    -1,    -1,    -1,
    3811       -1,   119,   120,   121,   122,   123,   124,    66,    -1,    -1,
    3812       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3813       79,    80,    81,    82,    83,    84,    85,    86,    -1,    88,
    3814       89,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,
    3815       40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3816       -1,    -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,
    3817      119,   120,   121,   122,   123,   124,    66,    -1,    -1,    -1,
    3818       -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3819       80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
    3820       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3821       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3822       -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,
    3823      120,   121,   122,   123,   124,     4,     5,     6,     7,     8,
    3824        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3825       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3826       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3827       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3828       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3830       69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3831       -1,    -1,    -1,    -1,    -1,    -1,    85,    86,     3,     4,
    3832        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3833       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3834       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3835       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
    3836       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3837       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3838       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3839       75,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3840       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3841       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3842       32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    3843       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3844       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3845       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3846       -1,    -1,    74,    75,     4,     5,     6,     7,     8,     9,
    3847       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3848       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3849       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3850       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3851       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3852       -1,    30,    31,    32,    33,    34,    35,    67,    -1,    69,
    3853       39,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
    3854       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3855       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3856       -1,    -1,    -1,    -1,    -1,    74,    75
     3980      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75
    38573981};
    38583982
     
    38653989      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    38663990      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    3867       76,    85,    86,   111,   113,   119,   120,   139,   142,   154,
    3868      203,   217,   218,   219,   220,   221,   222,   223,   224,   225,
    3869      226,   227,   228,   229,   230,   231,   232,   233,   234,   236,
    3870      237,   238,   239,   240,   241,   242,   244,   245,   246,   247,
    3871      248,   249,   251,   259,   260,   287,   288,   289,   297,   300,
    3872      306,   307,   309,   311,   312,   318,   323,   327,   328,   329,
    3873      330,   331,   332,   333,   334,   354,   371,   372,   373,   374,
    3874       72,   141,   142,   154,   220,   222,   230,   232,   241,   245,
    3875      247,   288,    81,   111,   316,   317,   318,   316,   316,    72,
    3876       74,    75,    76,   140,   141,   277,   278,   298,   299,    74,
    3877       75,   278,   111,   309,    11,   204,   111,   154,   323,   328,
    3878      329,   330,   332,   333,   334,   114,   136,   223,   230,   232,
    3879      327,   331,   370,   371,   374,   375,   137,   109,   133,   281,
    3880      116,   137,   178,    74,    75,   139,   276,   137,   137,   137,
    3881      118,   137,    74,    75,   111,   154,   313,   322,   323,   324,
    3882      325,   326,   327,   331,   335,   336,   337,   338,   339,   345,
    3883        3,    28,    78,   243,     3,     5,    74,   113,   154,   222,
    3884      233,   237,   239,   248,   289,   327,   331,   374,   220,   222,
    3885      232,   241,   245,   247,   288,   327,   331,    33,   238,   238,
    3886      233,   239,   137,   238,   233,   238,   233,    75,   111,   116,
    3887      278,   289,   116,   278,   238,   233,   118,   137,   137,     0,
    3888      136,   111,   178,   316,   316,   136,   113,   230,   232,   372,
    3889      276,   276,   133,   232,   111,   154,   313,   323,   327,   113,
    3890      154,   374,   310,   235,   318,   111,   294,   111,   111,    51,
    3891      111,    37,    38,    40,    66,    72,    76,    79,    80,    81,
    3892       82,    83,    84,    88,    89,   111,   113,   121,   122,   123,
    3893      124,   138,   142,   143,   144,   145,   146,   153,   154,   155,
    3894      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
    3895      166,   167,   169,   172,   230,   280,   296,   370,   375,   232,
    3896      112,   112,   112,   112,   112,   112,   112,   113,   230,   354,
    3897      372,   113,   119,   154,   169,   222,   223,   229,   232,   236,
    3898      237,   241,   244,   245,   247,   266,   267,   271,   272,   273,
    3899      274,   288,   354,   366,   367,   368,   369,   374,   375,   111,
    3900      327,   331,   374,   111,   118,   134,   113,   116,   154,   169,
    3901      282,   282,   117,   136,   118,   134,   111,   118,   134,   118,
    3902      134,   118,   134,   316,   134,   323,   324,   325,   326,   336,
    3903      337,   338,   339,   232,   322,   335,    64,   315,   113,   316,
    3904      353,   354,   316,   316,   178,   136,   111,   316,   353,   316,
    3905      316,   232,   313,   111,   111,   231,   232,   230,   232,   136,
    3906      230,   370,   375,   178,   136,   276,   281,   222,   237,   327,
    3907      331,   178,   136,   298,   232,   241,   134,   232,   232,   296,
    3908      252,   250,   262,   278,   261,   232,   298,   134,   134,   309,
    3909      136,   141,   275,     3,   137,   212,   213,   227,   229,   232,
    3910      136,   315,   111,   315,   169,   323,   232,   111,   136,   276,
    3911      116,    33,    34,    35,   230,   290,   291,   293,   136,   130,
    3912      133,   295,   136,   233,   238,   239,   276,   319,   320,   321,
    3913      111,   143,   111,   153,   111,   153,   156,   111,   153,   111,
    3914      111,   153,   153,   113,   169,   174,   178,   230,   279,   370,
    3915      374,   136,    81,    83,    87,    88,    89,   111,   113,   115,
    3916      116,    99,   100,   101,   102,   103,   104,   105,   106,   107,
    3917      108,   109,   133,   171,   156,   156,   119,   125,   126,   121,
    3918      122,    90,    91,    92,    93,   127,   128,    94,    95,   120,
    3919      129,   130,    96,    97,   131,   111,   154,   349,   350,   351,
    3920      352,   353,   112,   118,   111,   353,   354,   111,   353,   354,
    3921      136,   230,   372,   114,   136,   137,   230,   232,   365,   366,
    3922      374,   375,   137,   111,   113,   154,   323,   340,   341,   342,
    3923      343,   344,   345,   346,   347,   348,   354,   355,   356,   357,
    3924      358,   359,   360,   154,   374,   232,   137,   137,   154,   230,
    3925      232,   367,   276,   230,   354,   367,   276,   136,   136,   136,
    3926      136,    72,   113,   115,   142,   278,   282,   283,   284,   285,
    3927      286,   136,   136,   136,   136,   136,   136,   313,   112,   112,
    3928      112,   112,   112,   112,   112,   322,   335,   111,   281,   114,
    3929      212,   136,   313,   174,   280,   174,   280,   313,   113,   212,
    3930      315,   178,   136,   212,   112,    40,   113,   117,   230,   253,
    3931      254,   255,   370,   116,   118,   376,   133,   263,   116,   232,
    3932      268,   269,   270,   273,   274,   112,   118,   178,   136,   119,
    3933      169,   136,   229,   232,   267,   366,   374,   307,   308,   111,
    3934      154,   340,   112,   118,   133,   377,   278,   290,   111,   116,
    3935      278,   280,   290,   112,   118,   111,   143,   112,   132,   279,
    3936      279,   279,   148,   169,   280,   279,   136,   112,   118,   112,
    3937      111,   154,   353,   361,   362,   363,   364,   112,   118,   169,
    3938      113,   141,   147,   148,   136,   113,   141,   147,   169,   156,
    3939      156,   156,   157,   157,   158,   158,   159,   159,   159,   159,
    3940      160,   160,   161,   162,   163,   164,   165,   132,   174,   136,
    3941      350,   351,   352,   232,   349,   316,   316,   169,   280,   136,
    3942      275,   230,   354,   367,   232,   236,   114,   374,   114,   111,
    3943      136,   323,   341,   342,   343,   346,   356,   357,   358,   114,
    3944      136,   232,   340,   344,   355,   111,   316,   359,   377,   316,
    3945      316,   377,   111,   316,   359,   316,   316,   316,   316,   354,
    3946      230,   365,   375,   276,   114,   118,   114,   118,   377,   230,
    3947      367,   377,   264,   265,   266,   267,   264,   276,   169,   136,
    3948      113,   278,   132,   118,   376,   282,   113,   132,   286,    29,
    3949      214,   215,   276,   264,   141,   313,   141,   315,   111,   353,
    3950      354,   111,   353,   354,   144,   354,   178,   268,   112,   112,
    3951      112,   112,   136,   178,   212,   178,   116,   254,   255,   136,
    3952      111,   132,   154,   256,   258,   322,   323,   335,   361,   118,
    3953      134,   118,   134,   278,   252,   278,   117,   167,   168,   262,
    3954      137,   137,   141,   227,   137,   137,   264,   111,   154,   374,
    3955      137,   117,   232,   291,   169,   292,   137,   136,   136,   111,
    3956      137,   112,   320,   174,   175,   132,   134,   113,   143,   205,
    3957      206,   207,   112,   118,   112,   112,   112,   112,   169,   362,
    3958      363,   364,   232,   361,   316,   316,   116,   156,   169,   170,
    3959      173,   118,   136,   112,   118,   169,   136,   117,   167,   132,
    3960      268,   112,   112,   112,   349,   268,   112,   230,   367,   113,
    3961      119,   154,   169,   169,   232,   346,   268,   112,   112,   112,
    3962      112,   112,   112,   112,     7,   232,   340,   344,   355,   136,
    3963      136,   377,   136,   136,   137,   137,   137,   137,   281,   167,
    3964      168,   169,   314,   136,   282,   284,   117,   136,   216,   278,
    3965       40,    41,    43,    46,    47,    48,    49,    50,    51,    52,
    3966       53,    57,    61,    62,    72,   129,   175,   176,   177,   178,
    3967      179,   180,   182,   183,   195,   197,   198,   203,   217,   312,
    3968       29,   137,   133,   281,   136,   136,   112,   137,   178,   252,
    3969      134,   134,   323,   168,   232,   257,   258,   257,   278,   316,
    3970      117,   263,   376,   112,   118,   114,   114,   137,   232,   118,
    3971      377,   294,   112,   290,   220,   222,   230,   302,   303,   304,
    3972      305,   296,   112,   112,   132,   168,   111,   112,   132,   118,
    3973      141,   112,   112,   112,   361,   283,   118,   137,   173,    79,
    3974       82,    84,   141,   149,   150,   151,   148,   137,   149,   167,
    3975      137,   111,   353,   354,   137,   136,   137,   137,   137,   169,
    3976      112,   137,   111,   353,   354,   111,   359,   111,   359,   354,
    3977      231,     7,   119,   137,   169,   268,   268,   267,   271,   271,
    3978      272,   112,   118,   118,   112,    98,   124,   137,   137,   149,
    3979      282,   169,   118,   134,   217,   221,   232,   236,   111,   111,
    3980      176,   111,   111,    72,   134,    72,   134,    72,   119,   175,
    3981      111,   178,   170,   170,   132,   146,   134,   137,   136,   137,
    3982      216,   112,   169,   268,   268,   316,   112,   117,   256,   117,
    3983      136,   112,   136,   137,   313,   117,   136,   137,   137,   112,
    3984      116,   205,   114,   168,   134,   205,   207,   112,   111,   353,
    3985      354,   376,   170,   114,   137,   152,   113,   150,   152,   152,
    3986      118,   137,    87,   115,   114,   137,   112,   136,   112,   114,
    3987      114,   114,   137,   112,   136,   136,   136,   169,   169,   137,
    3988      114,   137,   137,   137,   137,   136,   136,   168,   168,   114,
    3989      114,   137,   278,   232,   174,   174,    47,   174,   136,   134,
    3990      134,   134,   174,   134,   174,    58,    59,    60,   199,   200,
    3991      201,   134,    63,   134,   316,   116,   180,   117,   134,   137,
    3992      137,    98,   273,   274,   112,   303,   118,   134,   118,   134,
    3993      117,   301,   132,   143,   112,   112,   132,   136,   117,   114,
    3994       83,   136,   150,   114,   113,   150,   113,   150,   114,   268,
    3995      114,   268,   268,   268,   137,   137,   114,   114,   112,   112,
    3996      114,   118,    98,   267,    98,   137,   114,   112,   112,   111,
    3997      112,   175,   196,   217,   134,   112,   111,   111,   178,   201,
    3998       58,    59,   169,   176,   147,   112,   112,   116,   136,   136,
    3999      302,   143,   208,   111,   134,   208,   268,   149,   136,   136,
    4000      137,   137,   137,   137,   114,   114,   136,   137,   114,   176,
    4001       44,    45,   116,   186,   187,   188,   174,   176,   137,   112,
    4002      175,   116,   188,    98,   136,    98,   136,   111,   111,   134,
    4003      117,   136,   276,   313,   117,   118,   132,   168,   112,   137,
    4004      137,   149,   149,   112,   112,   112,   112,   271,    42,   168,
    4005      184,   185,   314,   132,   136,   176,   186,   112,   134,   176,
    4006      134,   136,   112,   136,   112,   136,    98,   136,    98,   136,
    4007      134,   302,   143,   141,   209,   112,   134,   112,   114,   137,
    4008      137,   176,    98,   118,   132,   137,   210,   211,   217,   134,
    4009      175,   175,   210,   178,   202,   230,   370,   178,   202,   112,
    4010      136,   112,   136,   117,   112,   118,   114,   114,   168,   184,
    4011      187,   189,   190,   136,   134,   187,   191,   192,   137,   111,
    4012      154,   313,   361,   141,   137,   178,   202,   178,   202,   111,
    4013      134,   141,   176,   181,   117,   187,   217,   175,    56,   181,
    4014      194,   117,   187,   112,   232,   112,   137,   137,   296,   176,
    4015      181,   134,   193,   194,   181,   194,   178,   178,   112,   112,
    4016      112,   193,   137,   137,   178,   178,   137,   137
     3991      76,    83,    84,   109,   111,   117,   118,   137,   140,   151,
     3992     200,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     3993     223,   224,   225,   226,   227,   228,   229,   230,   231,   233,
     3994     234,   235,   236,   237,   238,   239,   241,   242,   243,   244,
     3995     245,   246,   248,   256,   257,   284,   285,   286,   294,   297,
     3996     303,   304,   306,   308,   309,   315,   320,   324,   325,   326,
     3997     327,   328,   329,   330,   331,   351,   368,   369,   370,   371,
     3998      72,   139,   140,   151,   217,   219,   227,   229,   238,   242,
     3999     244,   285,    82,   109,   313,   314,   315,   313,   313,    72,
     4000      74,    75,    76,   138,   139,   274,   275,   295,   296,    74,
     4001      75,   275,   109,   306,    11,   201,   109,   151,   320,   325,
     4002     326,   327,   329,   330,   331,   112,   134,   111,   220,   227,
     4003     229,   324,   328,   367,   368,   371,   372,   135,   107,   131,
     4004     278,   114,   135,   175,    74,    75,   137,   273,   135,   135,
     4005     135,   116,   135,    74,    75,   109,   151,   310,   319,   320,
     4006     321,   322,   323,   324,   328,   332,   333,   334,   335,   336,
     4007     342,     3,    28,    78,   240,     3,     5,    74,   111,   151,
     4008     219,   230,   234,   236,   245,   286,   324,   328,   371,   217,
     4009     219,   229,   238,   242,   244,   285,   324,   328,    33,   235,
     4010     235,   230,   236,   135,   235,   230,   235,   230,    75,   109,
     4011     114,   275,   286,   114,   275,   235,   230,   116,   135,   135,
     4012       0,   134,   109,   175,   313,   313,   134,   111,   227,   229,
     4013     369,   273,   273,   131,   229,   109,   151,   310,   320,   324,
     4014     111,   151,   371,   307,   232,   315,   109,   291,   109,   109,
     4015      51,   109,    37,    38,    40,    66,    72,    76,    79,    80,
     4016      81,    82,    86,    87,   109,   111,   119,   120,   121,   122,
     4017     136,   140,   141,   142,   143,   144,   150,   151,   152,   153,
     4018     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
     4019     164,   166,   169,   227,   277,   293,   367,   372,   229,   110,
     4020     110,   110,   110,   110,   110,   110,    74,    75,   111,   227,
     4021     273,   351,   369,   111,   117,   151,   166,   219,   220,   226,
     4022     229,   233,   234,   238,   241,   242,   244,   263,   264,   268,
     4023     269,   270,   271,   285,   351,   363,   364,   365,   366,   371,
     4024     372,   112,   109,   324,   328,   371,   109,   116,   132,   111,
     4025     114,   151,   166,   279,   279,   115,   134,   116,   132,   109,
     4026     116,   132,   116,   132,   116,   132,   313,   132,   320,   321,
     4027     322,   323,   333,   334,   335,   336,   229,   319,   332,    64,
     4028     312,   111,   313,   350,   351,   313,   313,   175,   134,   109,
     4029     313,   350,   313,   313,   229,   310,   109,   109,   228,   229,
     4030     227,   229,   112,   134,   227,   367,   372,   175,   134,   273,
     4031     278,   219,   234,   324,   328,   175,   134,   295,   229,   238,
     4032     132,   229,   229,   293,   249,   247,   259,   275,   258,   229,
     4033     295,   132,   132,   306,   134,   139,   272,     3,   135,   209,
     4034     210,   224,   226,   229,   134,   312,   109,   312,   166,   320,
     4035     229,   109,   134,   273,   114,    33,    34,    35,   227,   287,
     4036     288,   290,   134,   128,   131,   292,   134,   230,   235,   236,
     4037     273,   316,   317,   318,   109,   141,   109,   150,   109,   150,
     4038     153,   109,   150,   109,   109,   150,   150,   111,   166,   171,
     4039     175,   227,   276,   367,   371,   112,   134,    82,    85,    86,
     4040      87,   109,   111,   113,   114,    97,    98,    99,   100,   101,
     4041     102,   103,   104,   105,   106,   107,   131,   168,   153,   153,
     4042     117,   123,   124,   119,   120,    88,    89,    90,    91,   125,
     4043     126,    92,    93,   118,   127,   128,    94,    95,   129,   131,
     4044     374,   109,   151,   346,   347,   348,   349,   350,   110,   116,
     4045     109,   350,   351,   109,   350,   351,   134,   109,   227,   369,
     4046     112,   134,   135,   111,   227,   229,   362,   363,   371,   372,
     4047     135,   109,   111,   151,   320,   337,   338,   339,   340,   341,
     4048     342,   343,   344,   345,   351,   352,   353,   354,   355,   356,
     4049     357,   151,   371,   229,   135,   135,   151,   227,   229,   364,
     4050     273,   227,   351,   364,   273,   109,   134,   134,   134,   112,
     4051     134,    72,   111,   113,   140,   275,   279,   280,   281,   282,
     4052     283,   134,   134,   134,   134,   134,   134,   310,   110,   110,
     4053     110,   110,   110,   110,   110,   319,   332,   109,   278,   112,
     4054     209,   134,   310,   171,   277,   171,   277,   310,   111,   209,
     4055     312,   175,   134,   209,   110,    40,   111,   115,   227,   250,
     4056     251,   252,   367,   114,   116,   373,   131,   260,   114,   229,
     4057     265,   266,   267,   270,   271,   110,   116,   175,   134,   117,
     4058     166,   134,   226,   229,   264,   363,   371,   304,   305,   109,
     4059     151,   337,   110,   116,   374,   275,   287,   109,   114,   275,
     4060     277,   287,   110,   116,   109,   141,   110,   130,   276,   276,
     4061     276,   146,   166,   277,   276,   112,   134,   110,   116,   110,
     4062     109,   151,   350,   358,   359,   360,   361,   110,   116,   166,
     4063     111,   139,   145,   146,   134,    79,   111,   139,   145,   166,
     4064     153,   153,   153,   154,   154,   155,   155,   156,   156,   156,
     4065     156,   157,   157,   158,   159,   160,   161,   162,   130,   171,
     4066     166,   134,   347,   348,   349,   229,   346,   313,   313,   166,
     4067     277,   134,   272,   134,   227,   351,   364,   229,   233,   112,
     4068     112,   134,   371,   112,   109,   134,   320,   338,   339,   340,
     4069     343,   353,   354,   355,   112,   134,   229,   337,   341,   352,
     4070     109,   313,   356,   374,   313,   313,   374,   109,   313,   356,
     4071     313,   313,   313,   313,   351,   227,   362,   372,   273,   112,
     4072     116,   112,   116,   374,   227,   364,   374,   261,   262,   263,
     4073     264,   261,   261,   273,   166,   134,   111,   275,   130,   116,
     4074     373,   279,   111,   130,   283,    29,   211,   212,   273,   261,
     4075     139,   310,   139,   312,   109,   350,   351,   109,   350,   351,
     4076     142,   351,   175,   265,   110,   110,   110,   110,   112,   175,
     4077     209,   175,   114,   251,   252,   112,   134,   109,   130,   151,
     4078     253,   255,   319,   320,   332,   358,   116,   132,   116,   132,
     4079     275,   249,   275,   115,   164,   165,   259,   135,   135,   139,
     4080     224,   135,   135,   261,   109,   151,   371,   135,   115,   229,
     4081     288,   289,   135,   134,   134,   109,   135,   110,   317,   171,
     4082     172,   130,   132,   111,   141,   202,   203,   204,   110,   116,
     4083     110,   110,   110,   110,   111,   166,   359,   360,   361,   229,
     4084     358,   313,   313,   114,   153,   169,   166,   167,   170,   116,
     4085     135,   134,   110,   116,   166,   134,   115,   164,   130,   265,
     4086     110,   110,   110,   346,   265,   110,   261,   227,   364,   111,
     4087     117,   151,   166,   166,   229,   343,   265,   110,   110,   110,
     4088     110,   110,   110,   110,     7,   229,   337,   341,   352,   134,
     4089     134,   374,   134,   134,   110,   135,   135,   135,   135,   278,
     4090     135,   164,   165,   166,   311,   134,   279,   281,   115,   134,
     4091     213,   275,    40,    41,    43,    46,    47,    48,    49,    50,
     4092      51,    52,    53,    57,    61,    62,    72,   111,   127,   172,
     4093     173,   174,   175,   176,   177,   179,   180,   192,   194,   195,
     4094     200,   214,   309,    29,   135,   131,   278,   134,   134,   110,
     4095     135,   175,   249,   132,   132,   320,   165,   229,   254,   255,
     4096     254,   275,   313,   115,   260,   373,   110,   116,   112,   112,
     4097     135,   229,   116,   374,   291,   110,   287,   217,   219,   227,
     4098     299,   300,   301,   302,   293,   110,   110,   130,   165,   109,
     4099     110,   130,   116,   139,   112,   110,   110,   110,   358,   280,
     4100     116,   135,   170,   112,    79,   139,   147,   148,   149,   146,
     4101     135,   147,   164,   169,   135,   109,   350,   351,   135,   135,
     4102     134,   135,   135,   135,   166,   110,   135,   109,   350,   351,
     4103     109,   356,   109,   356,   351,   228,     7,   117,   135,   166,
     4104     265,   265,   264,   268,   268,   269,   116,   116,   110,   110,
     4105     112,    96,   122,   135,   135,   147,   279,   166,   116,   132,
     4106     214,   218,   229,   233,   109,   109,   173,   109,   109,    72,
     4107     132,    72,   132,    72,   117,   172,   109,   175,   167,   167,
     4108     130,   112,   144,   132,   135,   134,   135,   213,   110,   166,
     4109     265,   265,   313,   110,   115,   253,   115,   134,   110,   134,
     4110     135,   310,   115,   134,   135,   135,   110,   114,   202,   112,
     4111     165,   132,   202,   204,   110,   109,   350,   351,   373,   167,
     4112     112,   135,   116,   135,    85,   113,   112,   135,   110,   134,
     4113     110,   110,   112,   112,   112,   135,   110,   134,   134,   134,
     4114     166,   166,   135,   112,   135,   135,   135,   135,   134,   134,
     4115     165,   165,   112,   112,   135,   135,   275,   229,   171,   171,
     4116      47,   171,   134,   132,   132,   132,   171,   132,   171,    58,
     4117      59,    60,   196,   197,   198,   132,    63,   132,   313,   114,
     4118     177,   115,   132,   135,   135,    96,   270,   271,   110,   300,
     4119     116,   132,   116,   132,   115,   298,   130,   141,   110,   110,
     4120     130,   134,   115,   112,   148,   112,   111,   148,   111,   148,
     4121     112,   265,   112,   265,   265,   265,   135,   135,   112,   112,
     4122     110,   110,   112,   116,    96,   264,    96,   135,   112,   112,
     4123     110,   110,   109,   110,   172,   193,   214,   132,   110,   109,
     4124     109,   175,   198,    58,    59,   166,   173,   145,   110,   110,
     4125     114,   134,   134,   299,   141,   205,   109,   132,   205,   265,
     4126     134,   134,   135,   135,   135,   135,   112,   112,   134,   135,
     4127     112,   173,    44,    45,   114,   183,   184,   185,   171,   173,
     4128     135,   110,   172,   114,   185,    96,   134,    96,   134,   109,
     4129     109,   132,   115,   134,   273,   310,   115,   116,   130,   165,
     4130     110,   135,   147,   147,   110,   110,   110,   110,   268,    42,
     4131     165,   181,   182,   311,   130,   134,   173,   183,   110,   132,
     4132     173,   132,   134,   110,   134,   110,   134,    96,   134,    96,
     4133     134,   132,   299,   141,   139,   206,   110,   132,   110,   135,
     4134     135,   173,    96,   116,   130,   135,   207,   208,   214,   132,
     4135     172,   172,   207,   175,   199,   227,   367,   175,   199,   110,
     4136     134,   110,   134,   115,   110,   116,   112,   112,   165,   181,
     4137     184,   186,   187,   134,   132,   184,   188,   189,   135,   109,
     4138     151,   310,   358,   139,   135,   175,   199,   175,   199,   109,
     4139     132,   139,   173,   178,   115,   184,   214,   172,    56,   178,
     4140     191,   115,   184,   110,   229,   110,   135,   135,   293,   173,
     4141     178,   132,   190,   191,   178,   191,   175,   175,   110,   110,
     4142     110,   190,   135,   135,   175,   175,   135,   135
    40174143};
    40184144
     
    48514977
    48524978/* Line 1806 of yacc.c  */
     4979#line 302 "parser.yy"
     4980    { typedefTable.enterScope(); }
     4981    break;
     4982
     4983  case 3:
     4984
     4985/* Line 1806 of yacc.c  */
    48534986#line 306 "parser.yy"
    4854     { typedefTable.enterScope(); }
    4855     break;
    4856 
    4857   case 3:
    4858 
    4859 /* Line 1806 of yacc.c  */
    4860 #line 310 "parser.yy"
    48614987    { typedefTable.leaveScope(); }
    48624988    break;
     
    48654991
    48664992/* Line 1806 of yacc.c  */
    4867 #line 317 "parser.yy"
     4993#line 313 "parser.yy"
    48684994    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    48694995    break;
     
    48724998
    48734999/* Line 1806 of yacc.c  */
    4874 #line 318 "parser.yy"
     5000#line 314 "parser.yy"
    48755001    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    48765002    break;
     
    48795005
    48805006/* Line 1806 of yacc.c  */
    4881 #line 319 "parser.yy"
    4882     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    4883     break;
    4884 
    4885   case 7:
    4886 
    4887 /* Line 1806 of yacc.c  */
    4888 #line 320 "parser.yy"
    4889     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    4890     break;
    4891 
    4892   case 8:
    4893 
    4894 /* Line 1806 of yacc.c  */
    4895 #line 321 "parser.yy"
     5007#line 315 "parser.yy"
    48965008    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    48975009    break;
    48985010
     5011  case 16:
     5012
     5013/* Line 1806 of yacc.c  */
     5014#line 340 "parser.yy"
     5015    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
     5016    break;
     5017
     5018  case 17:
     5019
     5020/* Line 1806 of yacc.c  */
     5021#line 344 "parser.yy"
     5022    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
     5023    break;
     5024
    48995025  case 18:
    49005026
    49015027/* Line 1806 of yacc.c  */
    49025028#line 346 "parser.yy"
    4903     { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    4904     break;
    4905 
    4906   case 19:
    4907 
    4908 /* Line 1806 of yacc.c  */
    4909 #line 350 "parser.yy"
    4910     { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    4911     break;
    4912 
    4913   case 20:
    4914 
    4915 /* Line 1806 of yacc.c  */
    4916 #line 352 "parser.yy"
    49175029    {
    49185030                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    49225034    break;
    49235035
     5036  case 19:
     5037
     5038/* Line 1806 of yacc.c  */
     5039#line 357 "parser.yy"
     5040    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5041    break;
     5042
     5043  case 20:
     5044
     5045/* Line 1806 of yacc.c  */
     5046#line 359 "parser.yy"
     5047    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5048    break;
     5049
    49245050  case 21:
    49255051
    49265052/* Line 1806 of yacc.c  */
     5053#line 361 "parser.yy"
     5054    { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5055    break;
     5056
     5057  case 22:
     5058
     5059/* Line 1806 of yacc.c  */
    49275060#line 363 "parser.yy"
    4928     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    4929     break;
    4930 
    4931   case 22:
    4932 
    4933 /* Line 1806 of yacc.c  */
    4934 #line 365 "parser.yy"
    4935     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5061    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    49365062    break;
    49375063
     
    49395065
    49405066/* Line 1806 of yacc.c  */
    4941 #line 368 "parser.yy"
    4942     { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5067#line 373 "parser.yy"
     5068    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    49435069    break;
    49445070
     
    49465072
    49475073/* Line 1806 of yacc.c  */
    4948 #line 370 "parser.yy"
    4949     { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    4950     break;
    4951 
    4952   case 27:
    4953 
    4954 /* Line 1806 of yacc.c  */
    4955 #line 380 "parser.yy"
    4956     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    4957     break;
    4958 
    4959   case 28:
    4960 
    4961 /* Line 1806 of yacc.c  */
    4962 #line 382 "parser.yy"
     5074#line 375 "parser.yy"
    49635075    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    49645076    break;
    49655077
     5078  case 26:
     5079
     5080/* Line 1806 of yacc.c  */
     5081#line 379 "parser.yy"
     5082    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     5083    break;
     5084
    49665085  case 29:
    49675086
    49685087/* Line 1806 of yacc.c  */
    4969 #line 384 "parser.yy"
    4970     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     5088#line 383 "parser.yy"
     5089    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     5090    break;
     5091
     5092  case 31:
     5093
     5094/* Line 1806 of yacc.c  */
     5095#line 386 "parser.yy"
     5096    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    49715097    break;
    49725098
     
    49755101/* Line 1806 of yacc.c  */
    49765102#line 388 "parser.yy"
    4977     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     5103    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
     5104    break;
     5105
     5106  case 33:
     5107
     5108/* Line 1806 of yacc.c  */
     5109#line 390 "parser.yy"
     5110    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    49785111    break;
    49795112
     
    49815114
    49825115/* Line 1806 of yacc.c  */
    4983 #line 391 "parser.yy"
    4984     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    4985     break;
    4986 
    4987   case 35:
    4988 
    4989 /* Line 1806 of yacc.c  */
    4990 #line 393 "parser.yy"
    4991     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    4992     break;
    4993 
    4994   case 36:
    4995 
    4996 /* Line 1806 of yacc.c  */
    4997 #line 395 "parser.yy"
    4998     { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    4999     break;
    5000 
    5001   case 37:
    5002 
    5003 /* Line 1806 of yacc.c  */
    5004 #line 397 "parser.yy"
     5116#line 392 "parser.yy"
    50055117    {
    50065118                        Token fn;
     
    50105122    break;
    50115123
    5012   case 39:
     5124  case 36:
     5125
     5126/* Line 1806 of yacc.c  */
     5127#line 402 "parser.yy"
     5128    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     5129    break;
     5130
     5131  case 37:
    50135132
    50145133/* Line 1806 of yacc.c  */
    50155134#line 407 "parser.yy"
    5016     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     5135    { (yyval.en) = 0; }
    50175136    break;
    50185137
     
    50205139
    50215140/* Line 1806 of yacc.c  */
    5022 #line 412 "parser.yy"
    5023     { (yyval.en) = 0; }
     5141#line 413 "parser.yy"
     5142    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5143    break;
     5144
     5145  case 41:
     5146
     5147/* Line 1806 of yacc.c  */
     5148#line 420 "parser.yy"
     5149    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5150    break;
     5151
     5152  case 42:
     5153
     5154/* Line 1806 of yacc.c  */
     5155#line 422 "parser.yy"
     5156    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    50245157    break;
    50255158
     
    50275160
    50285161/* Line 1806 of yacc.c  */
    5029 #line 418 "parser.yy"
    5030     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5162#line 424 "parser.yy"
     5163    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    50315164    break;
    50325165
     
    50345167
    50355168/* Line 1806 of yacc.c  */
    5036 #line 423 "parser.yy"
    5037     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5169#line 426 "parser.yy"
     5170    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    50385171    break;
    50395172
     
    50415174
    50425175/* Line 1806 of yacc.c  */
    5043 #line 425 "parser.yy"
    5044     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(2) - (2)].en), build_varref( (yyvsp[(1) - (2)].tok) ) ) ); }
    5045     break;
    5046 
    5047   case 46:
    5048 
    5049 /* Line 1806 of yacc.c  */
    5050 #line 427 "parser.yy"
    5051     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(4) - (6)].en), build_varref( (yyvsp[(1) - (6)].tok) ) ) ); }
    5052     break;
    5053 
    5054   case 47:
    5055 
    5056 /* Line 1806 of yacc.c  */
    5057 #line 429 "parser.yy"
    5058     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    5059     break;
    5060 
    5061   case 48:
    5062 
    5063 /* Line 1806 of yacc.c  */
    5064 #line 431 "parser.yy"
    5065     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
     5176#line 428 "parser.yy"
     5177    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    50665178    break;
    50675179
     
    50695181
    50705182/* Line 1806 of yacc.c  */
    5071 #line 433 "parser.yy"
    5072     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
     5183#line 442 "parser.yy"
     5184    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    50735185    break;
    50745186
     
    50765188
    50775189/* Line 1806 of yacc.c  */
    5078 #line 435 "parser.yy"
    5079     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
     5190#line 444 "parser.yy"
     5191    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    50805192    break;
    50815193
     
    50835195
    50845196/* Line 1806 of yacc.c  */
    5085 #line 440 "parser.yy"
    5086     { (yyval.tok) = (yyvsp[(1) - (2)].tok); }
     5197#line 446 "parser.yy"
     5198    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    50875199    break;
    50885200
     
    50905202
    50915203/* Line 1806 of yacc.c  */
    5092 #line 442 "parser.yy"
    5093     { (yyval.tok) = (yyvsp[(1) - (2)].tok); }
    5094     break;
    5095 
    5096   case 53:
    5097 
    5098 /* Line 1806 of yacc.c  */
    5099 #line 444 "parser.yy"
    5100     { (yyval.tok) = (yyvsp[(1) - (2)].tok); }
    5101     break;
    5102 
    5103   case 57:
    5104 
    5105 /* Line 1806 of yacc.c  */
    5106 #line 457 "parser.yy"
    5107     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5108     break;
    5109 
    5110   case 58:
    5111 
    5112 /* Line 1806 of yacc.c  */
    5113 #line 459 "parser.yy"
    5114     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    5115     break;
    5116 
    5117   case 59:
    5118 
    5119 /* Line 1806 of yacc.c  */
    5120 #line 461 "parser.yy"
    5121     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    5122     break;
    5123 
    5124   case 60:
    5125 
    5126 /* Line 1806 of yacc.c  */
    5127 #line 466 "parser.yy"
     5204#line 451 "parser.yy"
    51285205    {
    51295206                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    51405217    break;
    51415218
     5219  case 53:
     5220
     5221/* Line 1806 of yacc.c  */
     5222#line 464 "parser.yy"
     5223    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     5224    break;
     5225
     5226  case 54:
     5227
     5228/* Line 1806 of yacc.c  */
     5229#line 466 "parser.yy"
     5230    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     5231    break;
     5232
     5233  case 55:
     5234
     5235/* Line 1806 of yacc.c  */
     5236#line 468 "parser.yy"
     5237    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     5238    break;
     5239
     5240  case 56:
     5241
     5242/* Line 1806 of yacc.c  */
     5243#line 470 "parser.yy"
     5244    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5245    break;
     5246
     5247  case 57:
     5248
     5249/* Line 1806 of yacc.c  */
     5250#line 472 "parser.yy"
     5251    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5252    break;
     5253
     5254  case 58:
     5255
     5256/* Line 1806 of yacc.c  */
     5257#line 474 "parser.yy"
     5258    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5259    break;
     5260
     5261  case 59:
     5262
     5263/* Line 1806 of yacc.c  */
     5264#line 476 "parser.yy"
     5265    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5266    break;
     5267
     5268  case 60:
     5269
     5270/* Line 1806 of yacc.c  */
     5271#line 478 "parser.yy"
     5272    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     5273    break;
     5274
    51425275  case 61:
    51435276
    51445277/* Line 1806 of yacc.c  */
    5145 #line 479 "parser.yy"
    5146     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     5278#line 480 "parser.yy"
     5279    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    51475280    break;
    51485281
     
    51505283
    51515284/* Line 1806 of yacc.c  */
    5152 #line 481 "parser.yy"
    5153     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     5285#line 482 "parser.yy"
     5286    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    51545287    break;
    51555288
     
    51575290
    51585291/* Line 1806 of yacc.c  */
    5159 #line 483 "parser.yy"
    5160     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     5292#line 484 "parser.yy"
     5293    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    51615294    break;
    51625295
     
    51645297
    51655298/* Line 1806 of yacc.c  */
    5166 #line 485 "parser.yy"
    5167     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5299#line 490 "parser.yy"
     5300    { (yyval.op) = OperKinds::PointTo; }
    51685301    break;
    51695302
     
    51715304
    51725305/* Line 1806 of yacc.c  */
    5173 #line 487 "parser.yy"
    5174     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5306#line 491 "parser.yy"
     5307    { (yyval.op) = OperKinds::AddressOf; }
    51755308    break;
    51765309
     
    51785311
    51795312/* Line 1806 of yacc.c  */
    5180 #line 489 "parser.yy"
    5181     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5313#line 497 "parser.yy"
     5314    { (yyval.op) = OperKinds::UnPlus; }
    51825315    break;
    51835316
     
    51855318
    51865319/* Line 1806 of yacc.c  */
    5187 #line 491 "parser.yy"
    5188     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5320#line 498 "parser.yy"
     5321    { (yyval.op) = OperKinds::UnMinus; }
    51895322    break;
    51905323
     
    51925325
    51935326/* Line 1806 of yacc.c  */
    5194 #line 493 "parser.yy"
    5195     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     5327#line 499 "parser.yy"
     5328    { (yyval.op) = OperKinds::Neg; }
    51965329    break;
    51975330
     
    51995332
    52005333/* Line 1806 of yacc.c  */
    5201 #line 495 "parser.yy"
    5202     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    5203     break;
    5204 
    5205   case 70:
    5206 
    5207 /* Line 1806 of yacc.c  */
    5208 #line 497 "parser.yy"
    5209     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     5334#line 500 "parser.yy"
     5335    { (yyval.op) = OperKinds::BitNeg; }
    52105336    break;
    52115337
     
    52135339
    52145340/* Line 1806 of yacc.c  */
    5215 #line 499 "parser.yy"
    5216     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     5341#line 506 "parser.yy"
     5342    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    52175343    break;
    52185344
     
    52205346
    52215347/* Line 1806 of yacc.c  */
    5222 #line 505 "parser.yy"
    5223     { (yyval.op) = OperKinds::PointTo; }
    5224     break;
    5225 
    5226   case 73:
    5227 
    5228 /* Line 1806 of yacc.c  */
    5229 #line 506 "parser.yy"
    5230     { (yyval.op) = OperKinds::AddressOf; }
     5348#line 508 "parser.yy"
     5349    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    52315350    break;
    52325351
     
    52345353
    52355354/* Line 1806 of yacc.c  */
    5236 #line 512 "parser.yy"
    5237     { (yyval.op) = OperKinds::UnPlus; }
     5355#line 514 "parser.yy"
     5356    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52385357    break;
    52395358
     
    52415360
    52425361/* Line 1806 of yacc.c  */
    5243 #line 513 "parser.yy"
    5244     { (yyval.op) = OperKinds::UnMinus; }
     5362#line 516 "parser.yy"
     5363    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52455364    break;
    52465365
     
    52485367
    52495368/* Line 1806 of yacc.c  */
    5250 #line 514 "parser.yy"
    5251     { (yyval.op) = OperKinds::Neg; }
    5252     break;
    5253 
    5254   case 77:
    5255 
    5256 /* Line 1806 of yacc.c  */
    5257 #line 515 "parser.yy"
    5258     { (yyval.op) = OperKinds::BitNeg; }
     5369#line 518 "parser.yy"
     5370    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5371    break;
     5372
     5373  case 78:
     5374
     5375/* Line 1806 of yacc.c  */
     5376#line 524 "parser.yy"
     5377    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52595378    break;
    52605379
     
    52625381
    52635382/* Line 1806 of yacc.c  */
    5264 #line 521 "parser.yy"
    5265     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     5383#line 526 "parser.yy"
     5384    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52665385    break;
    52675386
     
    52695388
    52705389/* Line 1806 of yacc.c  */
    5271 #line 529 "parser.yy"
    5272     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5390#line 532 "parser.yy"
     5391    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52735392    break;
    52745393
     
    52765395
    52775396/* Line 1806 of yacc.c  */
    5278 #line 531 "parser.yy"
    5279     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5280     break;
    5281 
    5282   case 83:
    5283 
    5284 /* Line 1806 of yacc.c  */
    5285 #line 533 "parser.yy"
    5286     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5397#line 534 "parser.yy"
     5398    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5399    break;
     5400
     5401  case 84:
     5402
     5403/* Line 1806 of yacc.c  */
     5404#line 540 "parser.yy"
     5405    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52875406    break;
    52885407
     
    52905409
    52915410/* Line 1806 of yacc.c  */
    5292 #line 539 "parser.yy"
    5293     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5411#line 542 "parser.yy"
     5412    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52945413    break;
    52955414
     
    52975416
    52985417/* Line 1806 of yacc.c  */
    5299 #line 541 "parser.yy"
    5300     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5301     break;
    5302 
    5303   case 88:
    5304 
    5305 /* Line 1806 of yacc.c  */
    5306 #line 547 "parser.yy"
    5307     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5418#line 544 "parser.yy"
     5419    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5420    break;
     5421
     5422  case 87:
     5423
     5424/* Line 1806 of yacc.c  */
     5425#line 546 "parser.yy"
     5426    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53085427    break;
    53095428
     
    53115430
    53125431/* Line 1806 of yacc.c  */
    5313 #line 549 "parser.yy"
    5314     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5315     break;
    5316 
    5317   case 91:
    5318 
    5319 /* Line 1806 of yacc.c  */
    5320 #line 555 "parser.yy"
    5321     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5432#line 552 "parser.yy"
     5433    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5434    break;
     5435
     5436  case 90:
     5437
     5438/* Line 1806 of yacc.c  */
     5439#line 554 "parser.yy"
     5440    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53225441    break;
    53235442
     
    53255444
    53265445/* Line 1806 of yacc.c  */
    5327 #line 557 "parser.yy"
    5328     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5329     break;
    5330 
    5331   case 93:
    5332 
    5333 /* Line 1806 of yacc.c  */
    5334 #line 559 "parser.yy"
    5335     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5446#line 560 "parser.yy"
     5447    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53365448    break;
    53375449
     
    53395451
    53405452/* Line 1806 of yacc.c  */
    5341 #line 561 "parser.yy"
    5342     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5453#line 566 "parser.yy"
     5454    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53435455    break;
    53445456
     
    53465458
    53475459/* Line 1806 of yacc.c  */
    5348 #line 567 "parser.yy"
    5349     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5350     break;
    5351 
    5352   case 97:
    5353 
    5354 /* Line 1806 of yacc.c  */
    5355 #line 569 "parser.yy"
    5356     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5357     break;
    5358 
    5359   case 99:
    5360 
    5361 /* Line 1806 of yacc.c  */
    5362 #line 575 "parser.yy"
    5363     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5364     break;
    5365 
    5366   case 101:
    5367 
    5368 /* Line 1806 of yacc.c  */
    5369 #line 581 "parser.yy"
    5370     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5460#line 572 "parser.yy"
     5461    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5462    break;
     5463
     5464  case 98:
     5465
     5466/* Line 1806 of yacc.c  */
     5467#line 578 "parser.yy"
     5468    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     5469    break;
     5470
     5471  case 100:
     5472
     5473/* Line 1806 of yacc.c  */
     5474#line 584 "parser.yy"
     5475    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     5476    break;
     5477
     5478  case 102:
     5479
     5480/* Line 1806 of yacc.c  */
     5481#line 590 "parser.yy"
     5482    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    53715483    break;
    53725484
     
    53745486
    53755487/* Line 1806 of yacc.c  */
    5376 #line 587 "parser.yy"
    5377     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5378     break;
    5379 
    5380   case 105:
    5381 
    5382 /* Line 1806 of yacc.c  */
    53835488#line 593 "parser.yy"
    5384     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     5489    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     5490    break;
     5491
     5492  case 104:
     5493
     5494/* Line 1806 of yacc.c  */
     5495#line 595 "parser.yy"
     5496    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    53855497    break;
    53865498
     
    53885500
    53895501/* Line 1806 of yacc.c  */
    5390 #line 599 "parser.yy"
    5391     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     5502#line 606 "parser.yy"
     5503    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5504    break;
     5505
     5506  case 108:
     5507
     5508/* Line 1806 of yacc.c  */
     5509#line 608 "parser.yy"
     5510    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
    53925511    break;
    53935512
     
    53955514
    53965515/* Line 1806 of yacc.c  */
    5397 #line 605 "parser.yy"
    5398     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    5399     break;
    5400 
    5401   case 110:
    5402 
    5403 /* Line 1806 of yacc.c  */
    5404 #line 608 "parser.yy"
    5405     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     5516#line 613 "parser.yy"
     5517    { (yyval.en) = nullptr; }
     5518    break;
     5519
     5520  case 111:
     5521
     5522/* Line 1806 of yacc.c  */
     5523#line 618 "parser.yy"
     5524    { (yyval.op) = OperKinds::Assign; }
     5525    break;
     5526
     5527  case 112:
     5528
     5529/* Line 1806 of yacc.c  */
     5530#line 619 "parser.yy"
     5531    { (yyval.op) = OperKinds::AtAssn; }
    54065532    break;
    54075533
     
    54095535
    54105536/* Line 1806 of yacc.c  */
     5537#line 620 "parser.yy"
     5538    { (yyval.op) = OperKinds::MulAssn; }
     5539    break;
     5540
     5541  case 114:
     5542
     5543/* Line 1806 of yacc.c  */
    54115544#line 621 "parser.yy"
    5412     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5413     break;
    5414 
    5415   case 114:
     5545    { (yyval.op) = OperKinds::DivAssn; }
     5546    break;
     5547
     5548  case 115:
     5549
     5550/* Line 1806 of yacc.c  */
     5551#line 622 "parser.yy"
     5552    { (yyval.op) = OperKinds::ModAssn; }
     5553    break;
     5554
     5555  case 116:
     5556
     5557/* Line 1806 of yacc.c  */
     5558#line 623 "parser.yy"
     5559    { (yyval.op) = OperKinds::PlusAssn; }
     5560    break;
     5561
     5562  case 117:
     5563
     5564/* Line 1806 of yacc.c  */
     5565#line 624 "parser.yy"
     5566    { (yyval.op) = OperKinds::MinusAssn; }
     5567    break;
     5568
     5569  case 118:
     5570
     5571/* Line 1806 of yacc.c  */
     5572#line 625 "parser.yy"
     5573    { (yyval.op) = OperKinds::LSAssn; }
     5574    break;
     5575
     5576  case 119:
     5577
     5578/* Line 1806 of yacc.c  */
     5579#line 626 "parser.yy"
     5580    { (yyval.op) = OperKinds::RSAssn; }
     5581    break;
     5582
     5583  case 120:
     5584
     5585/* Line 1806 of yacc.c  */
     5586#line 627 "parser.yy"
     5587    { (yyval.op) = OperKinds::AndAssn; }
     5588    break;
     5589
     5590  case 121:
    54165591
    54175592/* Line 1806 of yacc.c  */
    54185593#line 628 "parser.yy"
    5419     { (yyval.en) = nullptr; }
    5420     break;
    5421 
    5422   case 116:
    5423 
    5424 /* Line 1806 of yacc.c  */
    5425 #line 633 "parser.yy"
    5426     { (yyval.op) = OperKinds::Assign; }
    5427     break;
    5428 
    5429   case 117:
    5430 
    5431 /* Line 1806 of yacc.c  */
    5432 #line 634 "parser.yy"
    5433     { (yyval.op) = OperKinds::AtAssn; }
    5434     break;
    5435 
    5436   case 118:
    5437 
    5438 /* Line 1806 of yacc.c  */
    5439 #line 635 "parser.yy"
    5440     { (yyval.op) = OperKinds::MulAssn; }
    5441     break;
    5442 
    5443   case 119:
     5594    { (yyval.op) = OperKinds::ERAssn; }
     5595    break;
     5596
     5597  case 122:
     5598
     5599/* Line 1806 of yacc.c  */
     5600#line 629 "parser.yy"
     5601    { (yyval.op) = OperKinds::OrAssn; }
     5602    break;
     5603
     5604  case 123:
    54445605
    54455606/* Line 1806 of yacc.c  */
    54465607#line 636 "parser.yy"
    5447     { (yyval.op) = OperKinds::DivAssn; }
    5448     break;
    5449 
    5450   case 120:
    5451 
    5452 /* Line 1806 of yacc.c  */
    5453 #line 637 "parser.yy"
    5454     { (yyval.op) = OperKinds::ModAssn; }
    5455     break;
    5456 
    5457   case 121:
     5608    { (yyval.en) = new ExpressionNode( build_tuple() ); }
     5609    break;
     5610
     5611  case 124:
    54585612
    54595613/* Line 1806 of yacc.c  */
    54605614#line 638 "parser.yy"
    5461     { (yyval.op) = OperKinds::PlusAssn; }
    5462     break;
    5463 
    5464   case 122:
    5465 
    5466 /* Line 1806 of yacc.c  */
    5467 #line 639 "parser.yy"
    5468     { (yyval.op) = OperKinds::MinusAssn; }
    5469     break;
    5470 
    5471   case 123:
     5615    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     5616    break;
     5617
     5618  case 125:
    54725619
    54735620/* Line 1806 of yacc.c  */
    54745621#line 640 "parser.yy"
    5475     { (yyval.op) = OperKinds::LSAssn; }
    5476     break;
    5477 
    5478   case 124:
    5479 
    5480 /* Line 1806 of yacc.c  */
    5481 #line 641 "parser.yy"
    5482     { (yyval.op) = OperKinds::RSAssn; }
    5483     break;
    5484 
    5485   case 125:
     5622    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     5623    break;
     5624
     5625  case 126:
    54865626
    54875627/* Line 1806 of yacc.c  */
    54885628#line 642 "parser.yy"
    5489     { (yyval.op) = OperKinds::AndAssn; }
    5490     break;
    5491 
    5492   case 126:
    5493 
    5494 /* Line 1806 of yacc.c  */
    5495 #line 643 "parser.yy"
    5496     { (yyval.op) = OperKinds::ERAssn; }
    5497     break;
    5498 
    5499   case 127:
    5500 
    5501 /* Line 1806 of yacc.c  */
    5502 #line 644 "parser.yy"
    5503     { (yyval.op) = OperKinds::OrAssn; }
     5629    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    55045630    break;
    55055631
     
    55075633
    55085634/* Line 1806 of yacc.c  */
    5509 #line 655 "parser.yy"
    5510     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    5511     break;
    5512 
    5513   case 129:
    5514 
    5515 /* Line 1806 of yacc.c  */
    5516 #line 657 "parser.yy"
    5517     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     5635#line 648 "parser.yy"
     5636    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5637    break;
     5638
     5639  case 130:
     5640
     5641/* Line 1806 of yacc.c  */
     5642#line 654 "parser.yy"
     5643    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    55185644    break;
    55195645
     
    55215647
    55225648/* Line 1806 of yacc.c  */
    5523 #line 663 "parser.yy"
    5524     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    5525     break;
    5526 
    5527   case 133:
    5528 
    5529 /* Line 1806 of yacc.c  */
    5530 #line 669 "parser.yy"
    5531     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5532     break;
    5533 
    5534   case 134:
    5535 
    5536 /* Line 1806 of yacc.c  */
    5537 #line 674 "parser.yy"
     5649#line 659 "parser.yy"
    55385650    { (yyval.en) = 0; }
    55395651    break;
    55405652
    5541   case 138:
    5542 
    5543 /* Line 1806 of yacc.c  */
    5544 #line 683 "parser.yy"
     5653  case 135:
     5654
     5655/* Line 1806 of yacc.c  */
     5656#line 668 "parser.yy"
    55455657    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    55465658    break;
    55475659
    5548   case 144:
    5549 
    5550 /* Line 1806 of yacc.c  */
    5551 #line 690 "parser.yy"
     5660  case 141:
     5661
     5662/* Line 1806 of yacc.c  */
     5663#line 675 "parser.yy"
    55525664    {
    55535665                        Token fn;
     
    55575669    break;
    55585670
    5559   case 145:
    5560 
    5561 /* Line 1806 of yacc.c  */
    5562 #line 700 "parser.yy"
     5671  case 142:
     5672
     5673/* Line 1806 of yacc.c  */
     5674#line 685 "parser.yy"
    55635675    {
    55645676                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    55665678    break;
    55675679
     5680  case 143:
     5681
     5682/* Line 1806 of yacc.c  */
     5683#line 692 "parser.yy"
     5684    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5685    break;
     5686
     5687  case 144:
     5688
     5689/* Line 1806 of yacc.c  */
     5690#line 699 "parser.yy"
     5691    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     5692    break;
     5693
    55685694  case 146:
    55695695
    55705696/* Line 1806 of yacc.c  */
    5571 #line 707 "parser.yy"
    5572     { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5697#line 705 "parser.yy"
     5698    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    55735699    break;
    55745700
     
    55765702
    55775703/* Line 1806 of yacc.c  */
    5578 #line 714 "parser.yy"
    5579     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    5580     break;
    5581 
    5582   case 149:
    5583 
    5584 /* Line 1806 of yacc.c  */
    5585 #line 720 "parser.yy"
    5586     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    5587     break;
    5588 
    5589   case 150:
    5590 
    5591 /* Line 1806 of yacc.c  */
    5592 #line 725 "parser.yy"
     5704#line 710 "parser.yy"
    55935705    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    55945706    break;
    55955707
    5596   case 151:
    5597 
    5598 /* Line 1806 of yacc.c  */
    5599 #line 727 "parser.yy"
     5708  case 148:
     5709
     5710/* Line 1806 of yacc.c  */
     5711#line 712 "parser.yy"
    56005712    {   // mark all fields in list
    56015713                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    56055717    break;
    56065718
     5719  case 149:
     5720
     5721/* Line 1806 of yacc.c  */
     5722#line 718 "parser.yy"
     5723    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5724    break;
     5725
    56075726  case 152:
    56085727
    56095728/* Line 1806 of yacc.c  */
    5610 #line 733 "parser.yy"
    5611     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5729#line 725 "parser.yy"
     5730    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5731    break;
     5732
     5733  case 153:
     5734
     5735/* Line 1806 of yacc.c  */
     5736#line 730 "parser.yy"
     5737    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5738    break;
     5739
     5740  case 154:
     5741
     5742/* Line 1806 of yacc.c  */
     5743#line 736 "parser.yy"
     5744    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    56125745    break;
    56135746
     
    56155748
    56165749/* Line 1806 of yacc.c  */
     5750#line 738 "parser.yy"
     5751    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
     5752    break;
     5753
     5754  case 156:
     5755
     5756/* Line 1806 of yacc.c  */
    56175757#line 740 "parser.yy"
    5618     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    5619     break;
    5620 
    5621   case 156:
    5622 
    5623 /* Line 1806 of yacc.c  */
    5624 #line 745 "parser.yy"
    5625     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5758    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    56265759    break;
    56275760
     
    56295762
    56305763/* Line 1806 of yacc.c  */
    5631 #line 751 "parser.yy"
    5632     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    5633     break;
    5634 
    5635   case 158:
    5636 
    5637 /* Line 1806 of yacc.c  */
    5638 #line 753 "parser.yy"
    5639     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    5640     break;
    5641 
    5642   case 159:
    5643 
    5644 /* Line 1806 of yacc.c  */
    5645 #line 755 "parser.yy"
    5646     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5647     break;
    5648 
    5649   case 160:
    5650 
    5651 /* Line 1806 of yacc.c  */
    5652 #line 757 "parser.yy"
     5764#line 742 "parser.yy"
    56535765    {
    56545766                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    56625774    break;
    56635775
    5664   case 161:
    5665 
    5666 /* Line 1806 of yacc.c  */
    5667 #line 767 "parser.yy"
     5776  case 158:
     5777
     5778/* Line 1806 of yacc.c  */
     5779#line 752 "parser.yy"
    56685780    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    56695781    break;
    56705782
    5671   case 162:
    5672 
    5673 /* Line 1806 of yacc.c  */
    5674 #line 769 "parser.yy"
     5783  case 159:
     5784
     5785/* Line 1806 of yacc.c  */
     5786#line 754 "parser.yy"
    56755787    {
    56765788                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    56795791    break;
    56805792
     5793  case 160:
     5794
     5795/* Line 1806 of yacc.c  */
     5796#line 764 "parser.yy"
     5797    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5798    break;
     5799
     5800  case 161:
     5801
     5802/* Line 1806 of yacc.c  */
     5803#line 766 "parser.yy"
     5804    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5805    break;
     5806
    56815807  case 163:
    56825808
    56835809/* Line 1806 of yacc.c  */
    5684 #line 779 "parser.yy"
    5685     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5810#line 771 "parser.yy"
     5811    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    56865812    break;
    56875813
     
    56895815
    56905816/* Line 1806 of yacc.c  */
    5691 #line 781 "parser.yy"
    5692     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5817#line 773 "parser.yy"
     5818    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5819    break;
     5820
     5821  case 165:
     5822
     5823/* Line 1806 of yacc.c  */
     5824#line 777 "parser.yy"
     5825    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    56935826    break;
    56945827
     
    56965829
    56975830/* Line 1806 of yacc.c  */
    5698 #line 786 "parser.yy"
    5699     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    5700     break;
    5701 
    5702   case 167:
     5831#line 778 "parser.yy"
     5832    { (yyval.sn) = new StatementNode( build_default() ); }
     5833    break;
     5834
     5835  case 168:
     5836
     5837/* Line 1806 of yacc.c  */
     5838#line 784 "parser.yy"
     5839    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5840    break;
     5841
     5842  case 169:
    57035843
    57045844/* Line 1806 of yacc.c  */
    57055845#line 788 "parser.yy"
    5706     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    5707     break;
    5708 
    5709   case 168:
    5710 
    5711 /* Line 1806 of yacc.c  */
    5712 #line 792 "parser.yy"
    5713     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    5714     break;
    5715 
    5716   case 169:
     5846    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5847    break;
     5848
     5849  case 170:
    57175850
    57185851/* Line 1806 of yacc.c  */
    57195852#line 793 "parser.yy"
    5720     { (yyval.sn) = new StatementNode( build_default() ); }
    5721     break;
    5722 
    5723   case 171:
     5853    { (yyval.sn) = 0; }
     5854    break;
     5855
     5856  case 172:
    57245857
    57255858/* Line 1806 of yacc.c  */
    57265859#line 799 "parser.yy"
    5727     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    5728     break;
    5729 
    5730   case 172:
    5731 
    5732 /* Line 1806 of yacc.c  */
    5733 #line 803 "parser.yy"
    57345860    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    57355861    break;
     
    57385864
    57395865/* Line 1806 of yacc.c  */
    5740 #line 808 "parser.yy"
     5866#line 801 "parser.yy"
     5867    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5868    break;
     5869
     5870  case 174:
     5871
     5872/* Line 1806 of yacc.c  */
     5873#line 806 "parser.yy"
    57415874    { (yyval.sn) = 0; }
    57425875    break;
    57435876
    5744   case 175:
     5877  case 176:
     5878
     5879/* Line 1806 of yacc.c  */
     5880#line 812 "parser.yy"
     5881    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5882    break;
     5883
     5884  case 177:
    57455885
    57465886/* Line 1806 of yacc.c  */
    57475887#line 814 "parser.yy"
    5748     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    5749     break;
    5750 
    5751   case 176:
     5888    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5889    break;
     5890
     5891  case 178:
    57525892
    57535893/* Line 1806 of yacc.c  */
    57545894#line 816 "parser.yy"
    5755     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    5756     break;
    5757 
    5758   case 177:
    5759 
    5760 /* Line 1806 of yacc.c  */
    5761 #line 821 "parser.yy"
     5895    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5896    break;
     5897
     5898  case 179:
     5899
     5900/* Line 1806 of yacc.c  */
     5901#line 818 "parser.yy"
     5902    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
     5903    break;
     5904
     5905  case 180:
     5906
     5907/* Line 1806 of yacc.c  */
     5908#line 823 "parser.yy"
     5909    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5910    break;
     5911
     5912  case 182:
     5913
     5914/* Line 1806 of yacc.c  */
     5915#line 829 "parser.yy"
    57625916    { (yyval.sn) = 0; }
    57635917    break;
    57645918
    5765   case 179:
    5766 
    5767 /* Line 1806 of yacc.c  */
    5768 #line 827 "parser.yy"
    5769     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5770     break;
    5771 
    5772   case 180:
    5773 
    5774 /* Line 1806 of yacc.c  */
    5775 #line 829 "parser.yy"
    5776     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    5777     break;
    5778 
    5779   case 181:
     5919  case 183:
    57805920
    57815921/* Line 1806 of yacc.c  */
    57825922#line 831 "parser.yy"
    5783     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    5784     break;
    5785 
    5786   case 182:
    5787 
    5788 /* Line 1806 of yacc.c  */
    5789 #line 833 "parser.yy"
    5790     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    5791     break;
    5792 
    5793   case 183:
     5923    { (yyval.sn) = 0; }
     5924    break;
     5925
     5926  case 184:
     5927
     5928/* Line 1806 of yacc.c  */
     5929#line 836 "parser.yy"
     5930    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5931    break;
     5932
     5933  case 185:
    57945934
    57955935/* Line 1806 of yacc.c  */
    57965936#line 838 "parser.yy"
     5937    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
     5938    break;
     5939
     5940  case 186:
     5941
     5942/* Line 1806 of yacc.c  */
     5943#line 840 "parser.yy"
     5944    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     5945    break;
     5946
     5947  case 187:
     5948
     5949/* Line 1806 of yacc.c  */
     5950#line 845 "parser.yy"
     5951    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5952    break;
     5953
     5954  case 188:
     5955
     5956/* Line 1806 of yacc.c  */
     5957#line 847 "parser.yy"
     5958    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5959    break;
     5960
     5961  case 189:
     5962
     5963/* Line 1806 of yacc.c  */
     5964#line 852 "parser.yy"
     5965    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     5966    break;
     5967
     5968  case 190:
     5969
     5970/* Line 1806 of yacc.c  */
     5971#line 856 "parser.yy"
     5972    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5973    break;
     5974
     5975  case 191:
     5976
     5977/* Line 1806 of yacc.c  */
     5978#line 859 "parser.yy"
     5979    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     5980    break;
     5981
     5982  case 192:
     5983
     5984/* Line 1806 of yacc.c  */
     5985#line 863 "parser.yy"
     5986    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     5987    break;
     5988
     5989  case 193:
     5990
     5991/* Line 1806 of yacc.c  */
     5992#line 866 "parser.yy"
    57975993    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    57985994    break;
    57995995
    5800   case 185:
    5801 
    5802 /* Line 1806 of yacc.c  */
    5803 #line 844 "parser.yy"
    5804     { (yyval.sn) = 0; }
    5805     break;
    5806 
    5807   case 186:
    5808 
    5809 /* Line 1806 of yacc.c  */
    5810 #line 846 "parser.yy"
    5811     { (yyval.sn) = 0; }
    5812     break;
    5813 
    5814   case 187:
    5815 
    5816 /* Line 1806 of yacc.c  */
    5817 #line 851 "parser.yy"
    5818     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5819     break;
    5820 
    5821   case 188:
    5822 
    5823 /* Line 1806 of yacc.c  */
    5824 #line 853 "parser.yy"
    5825     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    5826     break;
    5827 
    5828   case 189:
    5829 
    5830 /* Line 1806 of yacc.c  */
    5831 #line 855 "parser.yy"
    5832     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    5833     break;
    5834 
    5835   case 190:
    5836 
    5837 /* Line 1806 of yacc.c  */
    5838 #line 860 "parser.yy"
    5839     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    5840     break;
    5841 
    5842   case 191:
    5843 
    5844 /* Line 1806 of yacc.c  */
    5845 #line 862 "parser.yy"
    5846     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5847     break;
    5848 
    5849   case 192:
    5850 
    5851 /* Line 1806 of yacc.c  */
    5852 #line 867 "parser.yy"
    5853     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    5854     break;
    5855 
    5856   case 193:
    5857 
    5858 /* Line 1806 of yacc.c  */
    5859 #line 871 "parser.yy"
    5860     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    5861     break;
    5862 
    58635996  case 194:
    58645997
    58655998/* Line 1806 of yacc.c  */
     5999#line 870 "parser.yy"
     6000    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     6001    break;
     6002
     6003  case 195:
     6004
     6005/* Line 1806 of yacc.c  */
     6006#line 872 "parser.yy"
     6007    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     6008    break;
     6009
     6010  case 196:
     6011
     6012/* Line 1806 of yacc.c  */
    58666013#line 874 "parser.yy"
    5867     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    5868     break;
    5869 
    5870   case 195:
     6014    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6015    break;
     6016
     6017  case 197:
     6018
     6019/* Line 1806 of yacc.c  */
     6020#line 876 "parser.yy"
     6021    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6022    break;
     6023
     6024  case 198:
    58716025
    58726026/* Line 1806 of yacc.c  */
    58736027#line 878 "parser.yy"
    5874     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    5875     break;
    5876 
    5877   case 196:
    5878 
    5879 /* Line 1806 of yacc.c  */
    5880 #line 881 "parser.yy"
    5881     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    5882     break;
    5883 
    5884   case 197:
     6028    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     6029    break;
     6030
     6031  case 199:
     6032
     6033/* Line 1806 of yacc.c  */
     6034#line 883 "parser.yy"
     6035    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     6036    break;
     6037
     6038  case 200:
    58856039
    58866040/* Line 1806 of yacc.c  */
    58876041#line 885 "parser.yy"
    5888     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    5889     break;
    5890 
    5891   case 198:
     6042    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     6043    break;
     6044
     6045  case 201:
    58926046
    58936047/* Line 1806 of yacc.c  */
    58946048#line 887 "parser.yy"
    5895     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    5896     break;
    5897 
    5898   case 199:
    5899 
    5900 /* Line 1806 of yacc.c  */
    5901 #line 889 "parser.yy"
    5902     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    5903     break;
    5904 
    5905   case 200:
    5906 
    5907 /* Line 1806 of yacc.c  */
    5908 #line 891 "parser.yy"
    5909     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    5910     break;
    5911 
    5912   case 201:
    5913 
    5914 /* Line 1806 of yacc.c  */
    5915 #line 893 "parser.yy"
    5916     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    5917     break;
    5918 
    5919   case 202:
     6049    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     6050    break;
     6051
     6052  case 203:
     6053
     6054/* Line 1806 of yacc.c  */
     6055#line 894 "parser.yy"
     6056    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6057    break;
     6058
     6059  case 204:
     6060
     6061/* Line 1806 of yacc.c  */
     6062#line 896 "parser.yy"
     6063    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6064    break;
     6065
     6066  case 205:
    59206067
    59216068/* Line 1806 of yacc.c  */
    59226069#line 898 "parser.yy"
    5923     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    5924     break;
    5925 
    5926   case 203:
     6070    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6071    break;
     6072
     6073  case 206:
    59276074
    59286075/* Line 1806 of yacc.c  */
    59296076#line 900 "parser.yy"
    5930     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    5931     break;
    5932 
    5933   case 204:
    5934 
    5935 /* Line 1806 of yacc.c  */
    5936 #line 902 "parser.yy"
    5937     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    5938     break;
    5939 
    5940   case 206:
     6077    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6078    break;
     6079
     6080  case 207:
     6081
     6082/* Line 1806 of yacc.c  */
     6083#line 905 "parser.yy"
     6084    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6085    break;
     6086
     6087  case 208:
     6088
     6089/* Line 1806 of yacc.c  */
     6090#line 907 "parser.yy"
     6091    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     6092    break;
     6093
     6094  case 209:
    59416095
    59426096/* Line 1806 of yacc.c  */
    59436097#line 909 "parser.yy"
    5944     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    5945     break;
    5946 
    5947   case 207:
     6098    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6099    break;
     6100
     6101  case 210:
    59486102
    59496103/* Line 1806 of yacc.c  */
    59506104#line 911 "parser.yy"
    5951     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    5952     break;
    5953 
    5954   case 208:
    5955 
    5956 /* Line 1806 of yacc.c  */
    5957 #line 913 "parser.yy"
    5958     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    5959     break;
    5960 
    5961   case 209:
    5962 
    5963 /* Line 1806 of yacc.c  */
    5964 #line 915 "parser.yy"
    5965     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    5966     break;
    5967 
    5968   case 210:
    5969 
    5970 /* Line 1806 of yacc.c  */
    5971 #line 920 "parser.yy"
    5972     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6105    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    59736106    break;
    59746107
     
    59766109
    59776110/* Line 1806 of yacc.c  */
    5978 #line 922 "parser.yy"
    5979     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    5980     break;
    5981 
    5982   case 212:
    5983 
    5984 /* Line 1806 of yacc.c  */
    5985 #line 924 "parser.yy"
    5986     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    5987     break;
    5988 
    5989   case 213:
    5990 
    5991 /* Line 1806 of yacc.c  */
    5992 #line 926 "parser.yy"
    5993     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    5994     break;
    5995 
    5996   case 214:
    5997 
    5998 /* Line 1806 of yacc.c  */
    5999 #line 931 "parser.yy"
     6111#line 916 "parser.yy"
    60006112    {
    60016113                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    60036115    break;
    60046116
    6005   case 216:
    6006 
    6007 /* Line 1806 of yacc.c  */
    6008 #line 944 "parser.yy"
     6117  case 213:
     6118
     6119/* Line 1806 of yacc.c  */
     6120#line 929 "parser.yy"
    60096121    {
    60106122                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60136125    break;
    60146126
    6015   case 217:
    6016 
    6017 /* Line 1806 of yacc.c  */
    6018 #line 949 "parser.yy"
     6127  case 214:
     6128
     6129/* Line 1806 of yacc.c  */
     6130#line 934 "parser.yy"
    60196131    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    60206132    break;
    60216133
    6022   case 218:
    6023 
    6024 /* Line 1806 of yacc.c  */
    6025 #line 951 "parser.yy"
     6134  case 215:
     6135
     6136/* Line 1806 of yacc.c  */
     6137#line 936 "parser.yy"
    60266138    {
    60276139                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60306142    break;
    60316143
     6144  case 217:
     6145
     6146/* Line 1806 of yacc.c  */
     6147#line 945 "parser.yy"
     6148    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     6149    break;
     6150
     6151  case 218:
     6152
     6153/* Line 1806 of yacc.c  */
     6154#line 947 "parser.yy"
     6155    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     6156    break;
     6157
     6158  case 219:
     6159
     6160/* Line 1806 of yacc.c  */
     6161#line 949 "parser.yy"
     6162    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     6163    break;
     6164
    60326165  case 220:
    60336166
    60346167/* Line 1806 of yacc.c  */
     6168#line 951 "parser.yy"
     6169    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
     6170    break;
     6171
     6172  case 221:
     6173
     6174/* Line 1806 of yacc.c  */
     6175#line 953 "parser.yy"
     6176    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
     6177    break;
     6178
     6179  case 222:
     6180
     6181/* Line 1806 of yacc.c  */
     6182#line 958 "parser.yy"
     6183    { (yyval.flag) = false; }
     6184    break;
     6185
     6186  case 223:
     6187
     6188/* Line 1806 of yacc.c  */
    60356189#line 960 "parser.yy"
    6036     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    6037     break;
    6038 
    6039   case 221:
    6040 
    6041 /* Line 1806 of yacc.c  */
    6042 #line 962 "parser.yy"
    6043     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    6044     break;
    6045 
    6046   case 222:
    6047 
    6048 /* Line 1806 of yacc.c  */
    6049 #line 964 "parser.yy"
    6050     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    6051     break;
    6052 
    6053   case 223:
    6054 
    6055 /* Line 1806 of yacc.c  */
    6056 #line 966 "parser.yy"
    6057     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
     6190    { (yyval.flag) = true; }
    60586191    break;
    60596192
     
    60616194
    60626195/* Line 1806 of yacc.c  */
    6063 #line 968 "parser.yy"
    6064     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
    6065     break;
    6066 
    6067   case 225:
    6068 
    6069 /* Line 1806 of yacc.c  */
    6070 #line 973 "parser.yy"
    6071     { (yyval.flag) = false; }
    6072     break;
    6073 
    6074   case 226:
    6075 
    6076 /* Line 1806 of yacc.c  */
    6077 #line 975 "parser.yy"
    6078     { (yyval.flag) = true; }
     6196#line 965 "parser.yy"
     6197    { (yyval.en) = 0; }
    60796198    break;
    60806199
     
    60826201
    60836202/* Line 1806 of yacc.c  */
    6084 #line 980 "parser.yy"
     6203#line 972 "parser.yy"
     6204    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     6205    break;
     6206
     6207  case 228:
     6208
     6209/* Line 1806 of yacc.c  */
     6210#line 977 "parser.yy"
     6211    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     6212    break;
     6213
     6214  case 229:
     6215
     6216/* Line 1806 of yacc.c  */
     6217#line 979 "parser.yy"
     6218    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     6219    break;
     6220
     6221  case 230:
     6222
     6223/* Line 1806 of yacc.c  */
     6224#line 984 "parser.yy"
    60856225    { (yyval.en) = 0; }
    60866226    break;
    60876227
    6088   case 230:
    6089 
    6090 /* Line 1806 of yacc.c  */
    6091 #line 987 "parser.yy"
    6092     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    6093     break;
    6094 
    60956228  case 231:
    60966229
    60976230/* Line 1806 of yacc.c  */
    6098 #line 992 "parser.yy"
    6099     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     6231#line 986 "parser.yy"
     6232    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    61006233    break;
    61016234
     
    61036236
    61046237/* Line 1806 of yacc.c  */
    6105 #line 994 "parser.yy"
    6106     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     6238#line 988 "parser.yy"
     6239    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    61076240    break;
    61086241
     
    61106243
    61116244/* Line 1806 of yacc.c  */
    6112 #line 999 "parser.yy"
    6113     { (yyval.en) = 0; }
    6114     break;
    6115 
    6116   case 234:
    6117 
    6118 /* Line 1806 of yacc.c  */
    6119 #line 1001 "parser.yy"
    6120     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    6121     break;
    6122 
    6123   case 235:
    6124 
    6125 /* Line 1806 of yacc.c  */
    6126 #line 1003 "parser.yy"
    6127     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    6128     break;
    6129 
    6130   case 236:
    6131 
    6132 /* Line 1806 of yacc.c  */
    6133 #line 1008 "parser.yy"
     6245#line 993 "parser.yy"
    61346246    {
    61356247                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    61386250    break;
    61396251
    6140   case 237:
    6141 
    6142 /* Line 1806 of yacc.c  */
    6143 #line 1013 "parser.yy"
     6252  case 234:
     6253
     6254/* Line 1806 of yacc.c  */
     6255#line 998 "parser.yy"
    61446256    {
    61456257                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    61486260    break;
    61496261
     6262  case 235:
     6263
     6264/* Line 1806 of yacc.c  */
     6265#line 1008 "parser.yy"
     6266    { (yyval.decl) = 0; }
     6267    break;
     6268
    61506269  case 238:
    61516270
    61526271/* Line 1806 of yacc.c  */
    6153 #line 1023 "parser.yy"
     6272#line 1015 "parser.yy"
     6273    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6274    break;
     6275
     6276  case 239:
     6277
     6278/* Line 1806 of yacc.c  */
     6279#line 1020 "parser.yy"
    61546280    { (yyval.decl) = 0; }
    61556281    break;
    61566282
    6157   case 241:
    6158 
    6159 /* Line 1806 of yacc.c  */
    6160 #line 1030 "parser.yy"
     6283  case 242:
     6284
     6285/* Line 1806 of yacc.c  */
     6286#line 1027 "parser.yy"
    61616287    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    61626288    break;
    61636289
    6164   case 242:
    6165 
    6166 /* Line 1806 of yacc.c  */
    6167 #line 1035 "parser.yy"
    6168     { (yyval.decl) = 0; }
    6169     break;
    6170 
    6171   case 245:
     6290  case 247:
     6291
     6292/* Line 1806 of yacc.c  */
     6293#line 1041 "parser.yy"
     6294    {}
     6295    break;
     6296
     6297  case 248:
    61726298
    61736299/* Line 1806 of yacc.c  */
    61746300#line 1042 "parser.yy"
    6175     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6176     break;
    6177 
    6178   case 250:
    6179 
    6180 /* Line 1806 of yacc.c  */
    6181 #line 1056 "parser.yy"
    61826301    {}
    61836302    break;
    61846303
    6185   case 251:
    6186 
    6187 /* Line 1806 of yacc.c  */
    6188 #line 1057 "parser.yy"
    6189     {}
    6190     break;
    6191 
    6192   case 259:
    6193 
    6194 /* Line 1806 of yacc.c  */
    6195 #line 1086 "parser.yy"
     6304  case 256:
     6305
     6306/* Line 1806 of yacc.c  */
     6307#line 1071 "parser.yy"
    61966308    {
    61976309                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62006312    break;
    62016313
    6202   case 260:
    6203 
    6204 /* Line 1806 of yacc.c  */
    6205 #line 1093 "parser.yy"
     6314  case 257:
     6315
     6316/* Line 1806 of yacc.c  */
     6317#line 1078 "parser.yy"
    62066318    {
    62076319                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62106322    break;
    62116323
    6212   case 261:
    6213 
    6214 /* Line 1806 of yacc.c  */
    6215 #line 1098 "parser.yy"
     6324  case 258:
     6325
     6326/* Line 1806 of yacc.c  */
     6327#line 1083 "parser.yy"
    62166328    {
    62176329                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    62206332    break;
    62216333
    6222   case 262:
    6223 
    6224 /* Line 1806 of yacc.c  */
    6225 #line 1108 "parser.yy"
     6334  case 259:
     6335
     6336/* Line 1806 of yacc.c  */
     6337#line 1093 "parser.yy"
    62266338    {
    62276339                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62306342    break;
    62316343
    6232   case 263:
    6233 
    6234 /* Line 1806 of yacc.c  */
    6235 #line 1113 "parser.yy"
     6344  case 260:
     6345
     6346/* Line 1806 of yacc.c  */
     6347#line 1098 "parser.yy"
    62366348    {
    62376349                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62406352    break;
    62416353
    6242   case 264:
    6243 
    6244 /* Line 1806 of yacc.c  */
    6245 #line 1118 "parser.yy"
     6354  case 261:
     6355
     6356/* Line 1806 of yacc.c  */
     6357#line 1103 "parser.yy"
    62466358    {
    62476359                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    62506362    break;
    62516363
    6252   case 265:
    6253 
    6254 /* Line 1806 of yacc.c  */
    6255 #line 1126 "parser.yy"
     6364  case 262:
     6365
     6366/* Line 1806 of yacc.c  */
     6367#line 1111 "parser.yy"
    62566368    {
    62576369                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62606372    break;
    62616373
    6262   case 266:
    6263 
    6264 /* Line 1806 of yacc.c  */
    6265 #line 1131 "parser.yy"
     6374  case 263:
     6375
     6376/* Line 1806 of yacc.c  */
     6377#line 1116 "parser.yy"
    62666378    {
    62676379                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62706382    break;
    62716383
    6272   case 267:
    6273 
    6274 /* Line 1806 of yacc.c  */
    6275 #line 1136 "parser.yy"
     6384  case 264:
     6385
     6386/* Line 1806 of yacc.c  */
     6387#line 1121 "parser.yy"
    62766388    {
    62776389                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62806392    break;
    62816393
    6282   case 268:
    6283 
    6284 /* Line 1806 of yacc.c  */
    6285 #line 1141 "parser.yy"
     6394  case 265:
     6395
     6396/* Line 1806 of yacc.c  */
     6397#line 1126 "parser.yy"
    62866398    {
    62876399                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62906402    break;
    62916403
    6292   case 269:
    6293 
    6294 /* Line 1806 of yacc.c  */
    6295 #line 1146 "parser.yy"
     6404  case 266:
     6405
     6406/* Line 1806 of yacc.c  */
     6407#line 1131 "parser.yy"
    62966408    {
    62976409                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63006412    break;
    63016413
    6302   case 270:
    6303 
    6304 /* Line 1806 of yacc.c  */
    6305 #line 1177 "parser.yy"
     6414  case 267:
     6415
     6416/* Line 1806 of yacc.c  */
     6417#line 1139 "parser.yy"
     6418    {
     6419                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     6420                }
     6421    break;
     6422
     6423  case 268:
     6424
     6425/* Line 1806 of yacc.c  */
     6426#line 1162 "parser.yy"
    63066427    {
    63076428                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63096430    break;
    63106431
    6311   case 271:
    6312 
    6313 /* Line 1806 of yacc.c  */
    6314 #line 1181 "parser.yy"
     6432  case 269:
     6433
     6434/* Line 1806 of yacc.c  */
     6435#line 1166 "parser.yy"
    63156436    {
    63166437                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63186439    break;
    63196440
     6441  case 270:
     6442
     6443/* Line 1806 of yacc.c  */
     6444#line 1173 "parser.yy"
     6445    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     6446    break;
     6447
     6448  case 271:
     6449
     6450/* Line 1806 of yacc.c  */
     6451#line 1177 "parser.yy"
     6452    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
     6453    break;
     6454
    63206455  case 272:
    63216456
    63226457/* Line 1806 of yacc.c  */
    6323 #line 1188 "parser.yy"
    6324     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    6325     break;
    6326 
    6327   case 273:
    6328 
    6329 /* Line 1806 of yacc.c  */
    6330 #line 1192 "parser.yy"
    6331     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    6332     break;
    6333 
    6334   case 274:
    6335 
    6336 /* Line 1806 of yacc.c  */
    6337 #line 1197 "parser.yy"
     6458#line 1182 "parser.yy"
    63386459    {
    63396460                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63426463    break;
    63436464
    6344   case 275:
    6345 
    6346 /* Line 1806 of yacc.c  */
    6347 #line 1202 "parser.yy"
     6465  case 273:
     6466
     6467/* Line 1806 of yacc.c  */
     6468#line 1187 "parser.yy"
    63486469    {
    63496470                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63526473    break;
    63536474
    6354   case 276:
    6355 
    6356 /* Line 1806 of yacc.c  */
    6357 #line 1207 "parser.yy"
     6475  case 274:
     6476
     6477/* Line 1806 of yacc.c  */
     6478#line 1192 "parser.yy"
    63586479    {
    63596480                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    63626483    break;
    63636484
    6364   case 277:
    6365 
    6366 /* Line 1806 of yacc.c  */
    6367 #line 1218 "parser.yy"
     6485  case 275:
     6486
     6487/* Line 1806 of yacc.c  */
     6488#line 1203 "parser.yy"
    63686489    {
    63696490                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63726493    break;
    63736494
    6374   case 278:
    6375 
    6376 /* Line 1806 of yacc.c  */
    6377 #line 1223 "parser.yy"
     6495  case 276:
     6496
     6497/* Line 1806 of yacc.c  */
     6498#line 1208 "parser.yy"
    63786499    {
    63796500                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63826503    break;
    63836504
    6384   case 279:
    6385 
    6386 /* Line 1806 of yacc.c  */
    6387 #line 1228 "parser.yy"
     6505  case 277:
     6506
     6507/* Line 1806 of yacc.c  */
     6508#line 1213 "parser.yy"
    63886509    {
    63896510                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63926513    break;
    63936514
    6394   case 280:
    6395 
    6396 /* Line 1806 of yacc.c  */
    6397 #line 1233 "parser.yy"
     6515  case 278:
     6516
     6517/* Line 1806 of yacc.c  */
     6518#line 1218 "parser.yy"
    63986519    {
    63996520                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64026523    break;
    64036524
    6404   case 281:
    6405 
    6406 /* Line 1806 of yacc.c  */
    6407 #line 1238 "parser.yy"
     6525  case 279:
     6526
     6527/* Line 1806 of yacc.c  */
     6528#line 1223 "parser.yy"
    64086529    {
    64096530                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64126533    break;
    64136534
    6414   case 282:
    6415 
    6416 /* Line 1806 of yacc.c  */
    6417 #line 1247 "parser.yy"
     6535  case 280:
     6536
     6537/* Line 1806 of yacc.c  */
     6538#line 1232 "parser.yy"
    64186539    {
    64196540                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    64226543    break;
    64236544
    6424   case 283:
    6425 
    6426 /* Line 1806 of yacc.c  */
    6427 #line 1252 "parser.yy"
     6545  case 281:
     6546
     6547/* Line 1806 of yacc.c  */
     6548#line 1237 "parser.yy"
    64286549    {
    64296550                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    64326553    break;
    64336554
    6434   case 288:
    6435 
    6436 /* Line 1806 of yacc.c  */
    6437 #line 1269 "parser.yy"
     6555  case 286:
     6556
     6557/* Line 1806 of yacc.c  */
     6558#line 1254 "parser.yy"
    64386559    {
    64396560                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64426563    break;
    64436564
    6444   case 289:
    6445 
    6446 /* Line 1806 of yacc.c  */
    6447 #line 1274 "parser.yy"
     6565  case 287:
     6566
     6567/* Line 1806 of yacc.c  */
     6568#line 1259 "parser.yy"
    64486569    {
    64496570                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64526573    break;
    64536574
    6454   case 298:
    6455 
    6456 /* Line 1806 of yacc.c  */
    6457 #line 1296 "parser.yy"
     6575  case 296:
     6576
     6577/* Line 1806 of yacc.c  */
     6578#line 1281 "parser.yy"
    64586579    { (yyval.decl) = 0; }
    64596580    break;
    64606581
    6461   case 301:
     6582  case 299:
     6583
     6584/* Line 1806 of yacc.c  */
     6585#line 1293 "parser.yy"
     6586    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6587    break;
     6588
     6589  case 302:
     6590
     6591/* Line 1806 of yacc.c  */
     6592#line 1304 "parser.yy"
     6593    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6594    break;
     6595
     6596  case 303:
     6597
     6598/* Line 1806 of yacc.c  */
     6599#line 1306 "parser.yy"
     6600    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6601    break;
     6602
     6603  case 304:
    64626604
    64636605/* Line 1806 of yacc.c  */
    64646606#line 1308 "parser.yy"
    6465     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6466     break;
    6467 
    6468   case 304:
    6469 
    6470 /* Line 1806 of yacc.c  */
    6471 #line 1319 "parser.yy"
    6472     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6607    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    64736608    break;
    64746609
     
    64766611
    64776612/* Line 1806 of yacc.c  */
    6478 #line 1321 "parser.yy"
    6479     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6613#line 1310 "parser.yy"
     6614    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    64806615    break;
    64816616
     
    64836618
    64846619/* Line 1806 of yacc.c  */
    6485 #line 1323 "parser.yy"
    6486     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6620#line 1312 "parser.yy"
     6621    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    64876622    break;
    64886623
     
    64906625
    64916626/* Line 1806 of yacc.c  */
    6492 #line 1325 "parser.yy"
    6493     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6494     break;
    6495 
    6496   case 308:
    6497 
    6498 /* Line 1806 of yacc.c  */
    6499 #line 1327 "parser.yy"
    6500     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6501     break;
    6502 
    6503   case 309:
    6504 
    6505 /* Line 1806 of yacc.c  */
    6506 #line 1329 "parser.yy"
     6627#line 1314 "parser.yy"
    65076628    {
    65086629                        typedefTable.enterScope();
     
    65106631    break;
    65116632
    6512   case 310:
    6513 
    6514 /* Line 1806 of yacc.c  */
    6515 #line 1333 "parser.yy"
     6633  case 308:
     6634
     6635/* Line 1806 of yacc.c  */
     6636#line 1318 "parser.yy"
    65166637    {
    65176638                        typedefTable.leaveScope();
     
    65206641    break;
    65216642
    6522   case 312:
    6523 
    6524 /* Line 1806 of yacc.c  */
    6525 #line 1342 "parser.yy"
     6643  case 310:
     6644
     6645/* Line 1806 of yacc.c  */
     6646#line 1327 "parser.yy"
    65266647    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65276648    break;
    65286649
     6650  case 311:
     6651
     6652/* Line 1806 of yacc.c  */
     6653#line 1329 "parser.yy"
     6654    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6655    break;
     6656
    65296657  case 313:
    65306658
    65316659/* Line 1806 of yacc.c  */
    6532 #line 1344 "parser.yy"
     6660#line 1340 "parser.yy"
     6661    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6662    break;
     6663
     6664  case 314:
     6665
     6666/* Line 1806 of yacc.c  */
     6667#line 1345 "parser.yy"
     6668    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6669    break;
     6670
     6671  case 315:
     6672
     6673/* Line 1806 of yacc.c  */
     6674#line 1347 "parser.yy"
     6675    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6676    break;
     6677
     6678  case 316:
     6679
     6680/* Line 1806 of yacc.c  */
     6681#line 1349 "parser.yy"
     6682    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6683    break;
     6684
     6685  case 317:
     6686
     6687/* Line 1806 of yacc.c  */
     6688#line 1351 "parser.yy"
     6689    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6690    break;
     6691
     6692  case 318:
     6693
     6694/* Line 1806 of yacc.c  */
     6695#line 1354 "parser.yy"
     6696    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     6697    break;
     6698
     6699  case 319:
     6700
     6701/* Line 1806 of yacc.c  */
     6702#line 1356 "parser.yy"
     6703    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6704    break;
     6705
     6706  case 320:
     6707
     6708/* Line 1806 of yacc.c  */
     6709#line 1359 "parser.yy"
     6710    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     6711    break;
     6712
     6713  case 321:
     6714
     6715/* Line 1806 of yacc.c  */
     6716#line 1361 "parser.yy"
     6717    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6718    break;
     6719
     6720  case 322:
     6721
     6722/* Line 1806 of yacc.c  */
     6723#line 1366 "parser.yy"
     6724    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6725    break;
     6726
     6727  case 323:
     6728
     6729/* Line 1806 of yacc.c  */
     6730#line 1368 "parser.yy"
     6731    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6732    break;
     6733
     6734  case 324:
     6735
     6736/* Line 1806 of yacc.c  */
     6737#line 1370 "parser.yy"
     6738    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6739    break;
     6740
     6741  case 325:
     6742
     6743/* Line 1806 of yacc.c  */
     6744#line 1372 "parser.yy"
     6745    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6746    break;
     6747
     6748  case 326:
     6749
     6750/* Line 1806 of yacc.c  */
     6751#line 1374 "parser.yy"
     6752    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     6753    break;
     6754
     6755  case 327:
     6756
     6757/* Line 1806 of yacc.c  */
     6758#line 1376 "parser.yy"
     6759    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     6760    break;
     6761
     6762  case 328:
     6763
     6764/* Line 1806 of yacc.c  */
     6765#line 1378 "parser.yy"
     6766    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     6767    break;
     6768
     6769  case 329:
     6770
     6771/* Line 1806 of yacc.c  */
     6772#line 1380 "parser.yy"
     6773    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     6774    break;
     6775
     6776  case 330:
     6777
     6778/* Line 1806 of yacc.c  */
     6779#line 1382 "parser.yy"
     6780    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6781    break;
     6782
     6783  case 331:
     6784
     6785/* Line 1806 of yacc.c  */
     6786#line 1384 "parser.yy"
     6787    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6788    break;
     6789
     6790  case 332:
     6791
     6792/* Line 1806 of yacc.c  */
     6793#line 1386 "parser.yy"
     6794    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     6795    break;
     6796
     6797  case 333:
     6798
     6799/* Line 1806 of yacc.c  */
     6800#line 1388 "parser.yy"
     6801    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     6802    break;
     6803
     6804  case 334:
     6805
     6806/* Line 1806 of yacc.c  */
     6807#line 1390 "parser.yy"
     6808    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6809    break;
     6810
     6811  case 336:
     6812
     6813/* Line 1806 of yacc.c  */
     6814#line 1397 "parser.yy"
     6815    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6816    break;
     6817
     6818  case 337:
     6819
     6820/* Line 1806 of yacc.c  */
     6821#line 1399 "parser.yy"
     6822    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6823    break;
     6824
     6825  case 338:
     6826
     6827/* Line 1806 of yacc.c  */
     6828#line 1401 "parser.yy"
    65336829    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    65346830    break;
    65356831
    6536   case 315:
    6537 
    6538 /* Line 1806 of yacc.c  */
    6539 #line 1355 "parser.yy"
     6832  case 339:
     6833
     6834/* Line 1806 of yacc.c  */
     6835#line 1403 "parser.yy"
     6836    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6837    break;
     6838
     6839  case 341:
     6840
     6841/* Line 1806 of yacc.c  */
     6842#line 1409 "parser.yy"
     6843    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6844    break;
     6845
     6846  case 343:
     6847
     6848/* Line 1806 of yacc.c  */
     6849#line 1416 "parser.yy"
     6850    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6851    break;
     6852
     6853  case 344:
     6854
     6855/* Line 1806 of yacc.c  */
     6856#line 1418 "parser.yy"
    65406857    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65416858    break;
    65426859
    6543   case 316:
    6544 
    6545 /* Line 1806 of yacc.c  */
    6546 #line 1360 "parser.yy"
    6547     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6548     break;
    6549 
    6550   case 317:
    6551 
    6552 /* Line 1806 of yacc.c  */
    6553 #line 1362 "parser.yy"
    6554     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6555     break;
    6556 
    6557   case 318:
    6558 
    6559 /* Line 1806 of yacc.c  */
    6560 #line 1364 "parser.yy"
    6561     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6562     break;
    6563 
    6564   case 319:
    6565 
    6566 /* Line 1806 of yacc.c  */
    6567 #line 1366 "parser.yy"
    6568     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6569     break;
    6570 
    6571   case 320:
    6572 
    6573 /* Line 1806 of yacc.c  */
    6574 #line 1369 "parser.yy"
    6575     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    6576     break;
    6577 
    6578   case 321:
    6579 
    6580 /* Line 1806 of yacc.c  */
    6581 #line 1371 "parser.yy"
    6582     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6583     break;
    6584 
    6585   case 322:
    6586 
    6587 /* Line 1806 of yacc.c  */
    6588 #line 1374 "parser.yy"
    6589     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    6590     break;
    6591 
    6592   case 323:
    6593 
    6594 /* Line 1806 of yacc.c  */
    6595 #line 1376 "parser.yy"
    6596     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6597     break;
    6598 
    6599   case 324:
    6600 
    6601 /* Line 1806 of yacc.c  */
    6602 #line 1381 "parser.yy"
    6603     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6604     break;
    6605 
    6606   case 325:
    6607 
    6608 /* Line 1806 of yacc.c  */
    6609 #line 1383 "parser.yy"
    6610     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6611     break;
    6612 
    6613   case 326:
    6614 
    6615 /* Line 1806 of yacc.c  */
    6616 #line 1385 "parser.yy"
    6617     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6618     break;
    6619 
    6620   case 327:
    6621 
    6622 /* Line 1806 of yacc.c  */
    6623 #line 1387 "parser.yy"
    6624     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6625     break;
    6626 
    6627   case 328:
    6628 
    6629 /* Line 1806 of yacc.c  */
    6630 #line 1389 "parser.yy"
    6631     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    6632     break;
    6633 
    6634   case 329:
    6635 
    6636 /* Line 1806 of yacc.c  */
    6637 #line 1391 "parser.yy"
    6638     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    6639     break;
    6640 
    6641   case 330:
    6642 
    6643 /* Line 1806 of yacc.c  */
    6644 #line 1393 "parser.yy"
    6645     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    6646     break;
    6647 
    6648   case 331:
    6649 
    6650 /* Line 1806 of yacc.c  */
    6651 #line 1395 "parser.yy"
    6652     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    6653     break;
    6654 
    6655   case 332:
    6656 
    6657 /* Line 1806 of yacc.c  */
    6658 #line 1397 "parser.yy"
    6659     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6660     break;
    6661 
    6662   case 333:
    6663 
    6664 /* Line 1806 of yacc.c  */
    6665 #line 1399 "parser.yy"
    6666     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6667     break;
    6668 
    6669   case 334:
    6670 
    6671 /* Line 1806 of yacc.c  */
    6672 #line 1401 "parser.yy"
    6673     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    6674     break;
    6675 
    6676   case 335:
    6677 
    6678 /* Line 1806 of yacc.c  */
    6679 #line 1403 "parser.yy"
    6680     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    6681     break;
    6682 
    6683   case 336:
    6684 
    6685 /* Line 1806 of yacc.c  */
    6686 #line 1405 "parser.yy"
    6687     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6688     break;
    6689 
    6690   case 338:
    6691 
    6692 /* Line 1806 of yacc.c  */
    6693 #line 1412 "parser.yy"
     6860  case 345:
     6861
     6862/* Line 1806 of yacc.c  */
     6863#line 1420 "parser.yy"
     6864    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6865    break;
     6866
     6867  case 346:
     6868
     6869/* Line 1806 of yacc.c  */
     6870#line 1425 "parser.yy"
     6871    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6872    break;
     6873
     6874  case 347:
     6875
     6876/* Line 1806 of yacc.c  */
     6877#line 1427 "parser.yy"
     6878    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6879    break;
     6880
     6881  case 348:
     6882
     6883/* Line 1806 of yacc.c  */
     6884#line 1429 "parser.yy"
     6885    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6886    break;
     6887
     6888  case 349:
     6889
     6890/* Line 1806 of yacc.c  */
     6891#line 1431 "parser.yy"
     6892    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6893    break;
     6894
     6895  case 351:
     6896
     6897/* Line 1806 of yacc.c  */
     6898#line 1437 "parser.yy"
    66946899    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    66956900    break;
    66966901
    6697   case 339:
    6698 
    6699 /* Line 1806 of yacc.c  */
    6700 #line 1414 "parser.yy"
     6902  case 352:
     6903
     6904/* Line 1806 of yacc.c  */
     6905#line 1439 "parser.yy"
    67016906    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67026907    break;
    67036908
    6704   case 340:
    6705 
    6706 /* Line 1806 of yacc.c  */
    6707 #line 1416 "parser.yy"
     6909  case 353:
     6910
     6911/* Line 1806 of yacc.c  */
     6912#line 1441 "parser.yy"
    67086913    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67096914    break;
    67106915
    6711   case 341:
    6712 
    6713 /* Line 1806 of yacc.c  */
    6714 #line 1418 "parser.yy"
    6715     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6716     break;
    6717 
    6718   case 343:
    6719 
    6720 /* Line 1806 of yacc.c  */
    6721 #line 1424 "parser.yy"
    6722     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6723     break;
    6724 
    6725   case 345:
    6726 
    6727 /* Line 1806 of yacc.c  */
    6728 #line 1431 "parser.yy"
     6916  case 355:
     6917
     6918/* Line 1806 of yacc.c  */
     6919#line 1447 "parser.yy"
    67296920    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67306921    break;
    67316922
    6732   case 346:
    6733 
    6734 /* Line 1806 of yacc.c  */
    6735 #line 1433 "parser.yy"
     6923  case 356:
     6924
     6925/* Line 1806 of yacc.c  */
     6926#line 1449 "parser.yy"
    67366927    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67376928    break;
    67386929
    6739   case 347:
    6740 
    6741 /* Line 1806 of yacc.c  */
    6742 #line 1435 "parser.yy"
    6743     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6744     break;
    6745 
    6746   case 348:
    6747 
    6748 /* Line 1806 of yacc.c  */
    6749 #line 1440 "parser.yy"
    6750     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6751     break;
    6752 
    6753   case 349:
    6754 
    6755 /* Line 1806 of yacc.c  */
    6756 #line 1442 "parser.yy"
    6757     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6758     break;
    6759 
    6760   case 350:
    6761 
    6762 /* Line 1806 of yacc.c  */
    6763 #line 1444 "parser.yy"
    6764     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6765     break;
    6766 
    6767   case 351:
    6768 
    6769 /* Line 1806 of yacc.c  */
    6770 #line 1446 "parser.yy"
    6771     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6772     break;
    6773 
    6774   case 353:
    6775 
    6776 /* Line 1806 of yacc.c  */
    6777 #line 1452 "parser.yy"
     6930  case 358:
     6931
     6932/* Line 1806 of yacc.c  */
     6933#line 1455 "parser.yy"
    67786934    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67796935    break;
    67806936
    6781   case 354:
    6782 
    6783 /* Line 1806 of yacc.c  */
    6784 #line 1454 "parser.yy"
     6937  case 359:
     6938
     6939/* Line 1806 of yacc.c  */
     6940#line 1457 "parser.yy"
    67856941    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67866942    break;
    67876943
    6788   case 355:
    6789 
    6790 /* Line 1806 of yacc.c  */
    6791 #line 1456 "parser.yy"
     6944  case 360:
     6945
     6946/* Line 1806 of yacc.c  */
     6947#line 1459 "parser.yy"
    67926948    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67936949    break;
    67946950
    6795   case 357:
    6796 
    6797 /* Line 1806 of yacc.c  */
    6798 #line 1462 "parser.yy"
    6799     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6800     break;
    6801 
    6802   case 358:
     6951  case 361:
    68036952
    68046953/* Line 1806 of yacc.c  */
    68056954#line 1464 "parser.yy"
     6955    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6956    break;
     6957
     6958  case 362:
     6959
     6960/* Line 1806 of yacc.c  */
     6961#line 1466 "parser.yy"
     6962    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6963    break;
     6964
     6965  case 363:
     6966
     6967/* Line 1806 of yacc.c  */
     6968#line 1468 "parser.yy"
    68066969    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68076970    break;
    68086971
    6809   case 360:
    6810 
    6811 /* Line 1806 of yacc.c  */
    6812 #line 1470 "parser.yy"
    6813     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6814     break;
    6815 
    6816   case 361:
    6817 
    6818 /* Line 1806 of yacc.c  */
    6819 #line 1472 "parser.yy"
    6820     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6821     break;
    6822 
    6823   case 362:
    6824 
    6825 /* Line 1806 of yacc.c  */
    6826 #line 1474 "parser.yy"
    6827     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6828     break;
    6829 
    6830   case 363:
    6831 
    6832 /* Line 1806 of yacc.c  */
    6833 #line 1479 "parser.yy"
    6834     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    6835     break;
    6836 
    6837   case 364:
    6838 
    6839 /* Line 1806 of yacc.c  */
    6840 #line 1481 "parser.yy"
    6841     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6842     break;
    6843 
    6844   case 365:
    6845 
    6846 /* Line 1806 of yacc.c  */
    6847 #line 1483 "parser.yy"
    6848     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6849     break;
    6850 
    6851   case 368:
    6852 
    6853 /* Line 1806 of yacc.c  */
    6854 #line 1493 "parser.yy"
     6972  case 366:
     6973
     6974/* Line 1806 of yacc.c  */
     6975#line 1478 "parser.yy"
    68556976    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    68566977    break;
    68576978
    6858   case 369:
    6859 
    6860 /* Line 1806 of yacc.c  */
    6861 #line 1495 "parser.yy"
     6979  case 367:
     6980
     6981/* Line 1806 of yacc.c  */
     6982#line 1480 "parser.yy"
    68626983    {
    68636984                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    68666987    break;
    68676988
     6989  case 368:
     6990
     6991/* Line 1806 of yacc.c  */
     6992#line 1485 "parser.yy"
     6993    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6994    break;
     6995
     6996  case 369:
     6997
     6998/* Line 1806 of yacc.c  */
     6999#line 1487 "parser.yy"
     7000    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     7001    break;
     7002
    68687003  case 370:
    68697004
    68707005/* Line 1806 of yacc.c  */
    6871 #line 1500 "parser.yy"
    6872     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7006#line 1489 "parser.yy"
     7007    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    68737008    break;
    68747009
     
    68767011
    68777012/* Line 1806 of yacc.c  */
    6878 #line 1502 "parser.yy"
    6879     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     7013#line 1491 "parser.yy"
     7014    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    68807015    break;
    68817016
     
    68837018
    68847019/* Line 1806 of yacc.c  */
    6885 #line 1504 "parser.yy"
    6886     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     7020#line 1496 "parser.yy"
     7021    { (yyval.aggKey) = DeclarationNode::Struct; }
    68877022    break;
    68887023
     
    68907025
    68917026/* Line 1806 of yacc.c  */
    6892 #line 1506 "parser.yy"
    6893     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7027#line 1498 "parser.yy"
     7028    { (yyval.aggKey) = DeclarationNode::Union; }
    68947029    break;
    68957030
     
    68977032
    68987033/* Line 1806 of yacc.c  */
     7034#line 1503 "parser.yy"
     7035    { (yyval.decl) = 0; }
     7036    break;
     7037
     7038  case 375:
     7039
     7040/* Line 1806 of yacc.c  */
     7041#line 1505 "parser.yy"
     7042    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     7043    break;
     7044
     7045  case 377:
     7046
     7047/* Line 1806 of yacc.c  */
    68997048#line 1511 "parser.yy"
    6900     { (yyval.aggKey) = DeclarationNode::Struct; }
    6901     break;
    6902 
    6903   case 375:
    6904 
    6905 /* Line 1806 of yacc.c  */
    6906 #line 1513 "parser.yy"
    6907     { (yyval.aggKey) = DeclarationNode::Union; }
    6908     break;
    6909 
    6910   case 376:
    6911 
    6912 /* Line 1806 of yacc.c  */
    6913 #line 1518 "parser.yy"
    6914     { (yyval.decl) = 0; }
    6915     break;
    6916 
    6917   case 377:
    6918 
    6919 /* Line 1806 of yacc.c  */
    6920 #line 1520 "parser.yy"
    6921     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     7049    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    69227050    break;
    69237051
     
    69257053
    69267054/* Line 1806 of yacc.c  */
    6927 #line 1526 "parser.yy"
    6928     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    6929     break;
    6930 
    6931   case 381:
    6932 
    6933 /* Line 1806 of yacc.c  */
    6934 #line 1529 "parser.yy"
     7055#line 1514 "parser.yy"
    69357056    {   // mark all fields in list
    69367057                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    69407061    break;
    69417062
     7063  case 381:
     7064
     7065/* Line 1806 of yacc.c  */
     7066#line 1524 "parser.yy"
     7067    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7068    break;
     7069
     7070  case 382:
     7071
     7072/* Line 1806 of yacc.c  */
     7073#line 1526 "parser.yy"
     7074    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7075    break;
     7076
    69427077  case 383:
    69437078
    69447079/* Line 1806 of yacc.c  */
    6945 #line 1539 "parser.yy"
    6946     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7080#line 1528 "parser.yy"
     7081    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    69477082    break;
    69487083
     
    69507085
    69517086/* Line 1806 of yacc.c  */
    6952 #line 1541 "parser.yy"
    6953     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7087#line 1533 "parser.yy"
     7088    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    69547089    break;
    69557090
     
    69577092
    69587093/* Line 1806 of yacc.c  */
    6959 #line 1543 "parser.yy"
    6960     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7094#line 1535 "parser.yy"
     7095    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    69617096    break;
    69627097
     
    69647099
    69657100/* Line 1806 of yacc.c  */
     7101#line 1540 "parser.yy"
     7102    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7103    break;
     7104
     7105  case 387:
     7106
     7107/* Line 1806 of yacc.c  */
     7108#line 1542 "parser.yy"
     7109    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7110    break;
     7111
     7112  case 388:
     7113
     7114/* Line 1806 of yacc.c  */
     7115#line 1545 "parser.yy"
     7116    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7117    break;
     7118
     7119  case 389:
     7120
     7121/* Line 1806 of yacc.c  */
    69667122#line 1548 "parser.yy"
    6967     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    6968     break;
    6969 
    6970   case 387:
    6971 
    6972 /* Line 1806 of yacc.c  */
    6973 #line 1550 "parser.yy"
    6974     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    6975     break;
    6976 
    6977   case 388:
    6978 
    6979 /* Line 1806 of yacc.c  */
    6980 #line 1555 "parser.yy"
    6981     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    6982     break;
    6983 
    6984   case 389:
    6985 
    6986 /* Line 1806 of yacc.c  */
    6987 #line 1557 "parser.yy"
    6988     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    6989     break;
    6990 
    6991   case 390:
    6992 
    6993 /* Line 1806 of yacc.c  */
    6994 #line 1560 "parser.yy"
    69957123    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    69967124    break;
     
    69997127
    70007128/* Line 1806 of yacc.c  */
    7001 #line 1563 "parser.yy"
    7002     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7129#line 1554 "parser.yy"
     7130    { (yyval.en) = 0; }
     7131    break;
     7132
     7133  case 392:
     7134
     7135/* Line 1806 of yacc.c  */
     7136#line 1556 "parser.yy"
     7137    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    70037138    break;
    70047139
     
    70067141
    70077142/* Line 1806 of yacc.c  */
    7008 #line 1569 "parser.yy"
    7009     { (yyval.en) = 0; }
    7010     break;
    7011 
    7012   case 394:
    7013 
    7014 /* Line 1806 of yacc.c  */
    7015 #line 1571 "parser.yy"
    7016     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     7143#line 1561 "parser.yy"
     7144    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70177145    break;
    70187146
     
    70207148
    70217149/* Line 1806 of yacc.c  */
    7022 #line 1576 "parser.yy"
    7023     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7024     break;
    7025 
    7026   case 397:
    7027 
    7028 /* Line 1806 of yacc.c  */
    7029 #line 1585 "parser.yy"
     7150#line 1570 "parser.yy"
    70307151    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    70317152    break;
    70327153
    7033   case 398:
    7034 
    7035 /* Line 1806 of yacc.c  */
    7036 #line 1587 "parser.yy"
     7154  case 396:
     7155
     7156/* Line 1806 of yacc.c  */
     7157#line 1572 "parser.yy"
    70377158    {
    70387159                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    70417162    break;
    70427163
     7164  case 397:
     7165
     7166/* Line 1806 of yacc.c  */
     7167#line 1577 "parser.yy"
     7168    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7169    break;
     7170
     7171  case 398:
     7172
     7173/* Line 1806 of yacc.c  */
     7174#line 1579 "parser.yy"
     7175    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7176    break;
     7177
    70437178  case 399:
    70447179
    70457180/* Line 1806 of yacc.c  */
    7046 #line 1592 "parser.yy"
    7047     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7181#line 1584 "parser.yy"
     7182    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    70487183    break;
    70497184
     
    70517186
    70527187/* Line 1806 of yacc.c  */
    7053 #line 1594 "parser.yy"
    7054     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7188#line 1586 "parser.yy"
     7189    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    70557190    break;
    70567191
     
    70587193
    70597194/* Line 1806 of yacc.c  */
    7060 #line 1599 "parser.yy"
    7061     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7195#line 1591 "parser.yy"
     7196    { (yyval.en) = 0; }
    70627197    break;
    70637198
     
    70657200
    70667201/* Line 1806 of yacc.c  */
    7067 #line 1601 "parser.yy"
    7068     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7202#line 1593 "parser.yy"
     7203    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70697204    break;
    70707205
     
    70727207
    70737208/* Line 1806 of yacc.c  */
    7074 #line 1606 "parser.yy"
    7075     { (yyval.en) = 0; }
    7076     break;
    7077 
    7078   case 404:
     7209#line 1600 "parser.yy"
     7210    { (yyval.decl) = 0; }
     7211    break;
     7212
     7213  case 407:
    70797214
    70807215/* Line 1806 of yacc.c  */
    70817216#line 1608 "parser.yy"
    7082     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7083     break;
    7084 
    7085   case 405:
    7086 
    7087 /* Line 1806 of yacc.c  */
    7088 #line 1615 "parser.yy"
     7217    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7218    break;
     7219
     7220  case 408:
     7221
     7222/* Line 1806 of yacc.c  */
     7223#line 1610 "parser.yy"
     7224    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7225    break;
     7226
     7227  case 409:
     7228
     7229/* Line 1806 of yacc.c  */
     7230#line 1612 "parser.yy"
     7231    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7232    break;
     7233
     7234  case 411:
     7235
     7236/* Line 1806 of yacc.c  */
     7237#line 1620 "parser.yy"
     7238    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7239    break;
     7240
     7241  case 412:
     7242
     7243/* Line 1806 of yacc.c  */
     7244#line 1622 "parser.yy"
     7245    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7246    break;
     7247
     7248  case 413:
     7249
     7250/* Line 1806 of yacc.c  */
     7251#line 1624 "parser.yy"
     7252    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7253    break;
     7254
     7255  case 415:
     7256
     7257/* Line 1806 of yacc.c  */
     7258#line 1630 "parser.yy"
     7259    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7260    break;
     7261
     7262  case 416:
     7263
     7264/* Line 1806 of yacc.c  */
     7265#line 1635 "parser.yy"
    70897266    { (yyval.decl) = 0; }
    70907267    break;
    70917268
    7092   case 409:
    7093 
    7094 /* Line 1806 of yacc.c  */
    7095 #line 1623 "parser.yy"
     7269  case 419:
     7270
     7271/* Line 1806 of yacc.c  */
     7272#line 1642 "parser.yy"
     7273    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7274    break;
     7275
     7276  case 422:
     7277
     7278/* Line 1806 of yacc.c  */
     7279#line 1649 "parser.yy"
    70967280    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    70977281    break;
    70987282
    7099   case 410:
    7100 
    7101 /* Line 1806 of yacc.c  */
    7102 #line 1625 "parser.yy"
    7103     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7104     break;
    7105 
    7106   case 411:
    7107 
    7108 /* Line 1806 of yacc.c  */
    7109 #line 1627 "parser.yy"
    7110     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7111     break;
    7112 
    7113   case 413:
    7114 
    7115 /* Line 1806 of yacc.c  */
    7116 #line 1635 "parser.yy"
     7283  case 423:
     7284
     7285/* Line 1806 of yacc.c  */
     7286#line 1651 "parser.yy"
    71177287    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71187288    break;
    71197289
    7120   case 414:
    7121 
    7122 /* Line 1806 of yacc.c  */
    7123 #line 1637 "parser.yy"
    7124     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7125     break;
    7126 
    7127   case 415:
    7128 
    7129 /* Line 1806 of yacc.c  */
    7130 #line 1639 "parser.yy"
    7131     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7132     break;
    7133 
    7134   case 417:
    7135 
    7136 /* Line 1806 of yacc.c  */
    7137 #line 1645 "parser.yy"
    7138     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7139     break;
    7140 
    7141   case 418:
    7142 
    7143 /* Line 1806 of yacc.c  */
    7144 #line 1650 "parser.yy"
    7145     { (yyval.decl) = 0; }
    7146     break;
    7147 
    7148   case 421:
    7149 
    7150 /* Line 1806 of yacc.c  */
    7151 #line 1657 "parser.yy"
    7152     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7153     break;
    7154 
    7155   case 424:
    7156 
    7157 /* Line 1806 of yacc.c  */
    7158 #line 1664 "parser.yy"
    7159     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7160     break;
    7161 
    71627290  case 425:
    71637291
    71647292/* Line 1806 of yacc.c  */
    7165 #line 1666 "parser.yy"
    7166     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7293#line 1660 "parser.yy"
     7294    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7295    break;
     7296
     7297  case 426:
     7298
     7299/* Line 1806 of yacc.c  */
     7300#line 1663 "parser.yy"
     7301    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    71677302    break;
    71687303
     
    71707305
    71717306/* Line 1806 of yacc.c  */
     7307#line 1665 "parser.yy"
     7308    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     7309    break;
     7310
     7311  case 432:
     7312
     7313/* Line 1806 of yacc.c  */
    71727314#line 1675 "parser.yy"
    7173     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7174     break;
    7175 
    7176   case 428:
    7177 
    7178 /* Line 1806 of yacc.c  */
    7179 #line 1678 "parser.yy"
    7180     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7181     break;
    7182 
    7183   case 429:
    7184 
    7185 /* Line 1806 of yacc.c  */
    7186 #line 1680 "parser.yy"
    7187     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     7315    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    71887316    break;
    71897317
     
    71917319
    71927320/* Line 1806 of yacc.c  */
    7193 #line 1690 "parser.yy"
    7194     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7195     break;
    7196 
    7197   case 436:
    7198 
    7199 /* Line 1806 of yacc.c  */
    7200 #line 1696 "parser.yy"
     7321#line 1681 "parser.yy"
    72017322    {
    72027323                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72057326    break;
    72067327
    7207   case 437:
    7208 
    7209 /* Line 1806 of yacc.c  */
    7210 #line 1701 "parser.yy"
     7328  case 435:
     7329
     7330/* Line 1806 of yacc.c  */
     7331#line 1686 "parser.yy"
    72117332    {
    72127333                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72157336    break;
    72167337
     7338  case 437:
     7339
     7340/* Line 1806 of yacc.c  */
     7341#line 1695 "parser.yy"
     7342    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7343    break;
     7344
     7345  case 438:
     7346
     7347/* Line 1806 of yacc.c  */
     7348#line 1704 "parser.yy"
     7349    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7350    break;
     7351
    72177352  case 439:
    72187353
    72197354/* Line 1806 of yacc.c  */
    7220 #line 1710 "parser.yy"
     7355#line 1706 "parser.yy"
     7356    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7357    break;
     7358
     7359  case 451:
     7360
     7361/* Line 1806 of yacc.c  */
     7362#line 1731 "parser.yy"
    72217363    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72227364    break;
    72237365
    7224   case 440:
    7225 
    7226 /* Line 1806 of yacc.c  */
    7227 #line 1719 "parser.yy"
    7228     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7229     break;
    7230 
    7231   case 441:
    7232 
    7233 /* Line 1806 of yacc.c  */
    7234 #line 1721 "parser.yy"
    7235     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    7236     break;
    7237 
    7238   case 453:
     7366  case 455:
     7367
     7368/* Line 1806 of yacc.c  */
     7369#line 1739 "parser.yy"
     7370    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7371    break;
     7372
     7373  case 456:
     7374
     7375/* Line 1806 of yacc.c  */
     7376#line 1744 "parser.yy"
     7377    { (yyval.in) = 0; }
     7378    break;
     7379
     7380  case 457:
    72397381
    72407382/* Line 1806 of yacc.c  */
    72417383#line 1746 "parser.yy"
    7242     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7243     break;
    7244 
    7245   case 457:
    7246 
    7247 /* Line 1806 of yacc.c  */
    7248 #line 1754 "parser.yy"
    7249     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7384    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    72507385    break;
    72517386
     
    72537388
    72547389/* Line 1806 of yacc.c  */
    7255 #line 1759 "parser.yy"
     7390#line 1748 "parser.yy"
     7391    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7392    break;
     7393
     7394  case 459:
     7395
     7396/* Line 1806 of yacc.c  */
     7397#line 1752 "parser.yy"
     7398    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7399    break;
     7400
     7401  case 460:
     7402
     7403/* Line 1806 of yacc.c  */
     7404#line 1753 "parser.yy"
     7405    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7406    break;
     7407
     7408  case 461:
     7409
     7410/* Line 1806 of yacc.c  */
     7411#line 1758 "parser.yy"
    72567412    { (yyval.in) = 0; }
    72577413    break;
    72587414
    7259   case 459:
     7415  case 463:
     7416
     7417/* Line 1806 of yacc.c  */
     7418#line 1760 "parser.yy"
     7419    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7420    break;
     7421
     7422  case 464:
    72607423
    72617424/* Line 1806 of yacc.c  */
    72627425#line 1761 "parser.yy"
    7263     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7264     break;
    7265 
    7266   case 460:
     7426    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     7427    break;
     7428
     7429  case 465:
    72677430
    72687431/* Line 1806 of yacc.c  */
    72697432#line 1763 "parser.yy"
    7270     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7271     break;
    7272 
    7273   case 461:
    7274 
    7275 /* Line 1806 of yacc.c  */
    7276 #line 1767 "parser.yy"
    7277     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7278     break;
    7279 
    7280   case 462:
    7281 
    7282 /* Line 1806 of yacc.c  */
    7283 #line 1768 "parser.yy"
    7284     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7285     break;
    7286 
    7287   case 463:
    7288 
    7289 /* Line 1806 of yacc.c  */
    7290 #line 1773 "parser.yy"
    7291     { (yyval.in) = 0; }
    7292     break;
    7293 
    7294   case 465:
    7295 
    7296 /* Line 1806 of yacc.c  */
    7297 #line 1775 "parser.yy"
    7298     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    7299     break;
    7300 
    7301   case 466:
    7302 
    7303 /* Line 1806 of yacc.c  */
    7304 #line 1776 "parser.yy"
    7305     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     7433    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    73067434    break;
    73077435
     
    73097437
    73107438/* Line 1806 of yacc.c  */
    7311 #line 1778 "parser.yy"
    7312     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7439#line 1779 "parser.yy"
     7440    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    73137441    break;
    73147442
     
    73167444
    73177445/* Line 1806 of yacc.c  */
     7446#line 1785 "parser.yy"
     7447    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     7448    break;
     7449
     7450  case 470:
     7451
     7452/* Line 1806 of yacc.c  */
     7453#line 1791 "parser.yy"
     7454    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     7455    break;
     7456
     7457  case 471:
     7458
     7459/* Line 1806 of yacc.c  */
    73187460#line 1794 "parser.yy"
    7319     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    7320     break;
    7321 
    7322   case 471:
     7461    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7462    break;
     7463
     7464  case 472:
     7465
     7466/* Line 1806 of yacc.c  */
     7467#line 1796 "parser.yy"
     7468    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7469    break;
     7470
     7471  case 473:
     7472
     7473/* Line 1806 of yacc.c  */
     7474#line 1798 "parser.yy"
     7475    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     7476    break;
     7477
     7478  case 474:
    73237479
    73247480/* Line 1806 of yacc.c  */
    73257481#line 1800 "parser.yy"
    7326     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    7327     break;
    7328 
    7329   case 472:
    7330 
    7331 /* Line 1806 of yacc.c  */
    7332 #line 1806 "parser.yy"
    7333     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    7334     break;
    7335 
    7336   case 473:
    7337 
    7338 /* Line 1806 of yacc.c  */
    7339 #line 1809 "parser.yy"
    7340     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7341     break;
    7342 
    7343   case 474:
    7344 
    7345 /* Line 1806 of yacc.c  */
    7346 #line 1811 "parser.yy"
    7347     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7348     break;
    7349 
    7350   case 475:
    7351 
    7352 /* Line 1806 of yacc.c  */
    7353 #line 1813 "parser.yy"
    7354     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     7482    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    73557483    break;
    73567484
     
    73587486
    73597487/* Line 1806 of yacc.c  */
    7360 #line 1815 "parser.yy"
    7361     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     7488#line 1824 "parser.yy"
     7489    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7490    break;
     7491
     7492  case 477:
     7493
     7494/* Line 1806 of yacc.c  */
     7495#line 1826 "parser.yy"
     7496    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73627497    break;
    73637498
     
    73657500
    73667501/* Line 1806 of yacc.c  */
    7367 #line 1839 "parser.yy"
     7502#line 1828 "parser.yy"
     7503    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7504    break;
     7505
     7506  case 480:
     7507
     7508/* Line 1806 of yacc.c  */
     7509#line 1834 "parser.yy"
    73687510    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73697511    break;
    73707512
    7371   case 479:
     7513  case 481:
     7514
     7515/* Line 1806 of yacc.c  */
     7516#line 1836 "parser.yy"
     7517    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7518    break;
     7519
     7520  case 482:
    73727521
    73737522/* Line 1806 of yacc.c  */
    73747523#line 1841 "parser.yy"
    7375     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7376     break;
    7377 
    7378   case 480:
    7379 
    7380 /* Line 1806 of yacc.c  */
    7381 #line 1843 "parser.yy"
    7382     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7383     break;
    7384 
    7385   case 482:
    7386 
    7387 /* Line 1806 of yacc.c  */
    7388 #line 1849 "parser.yy"
    7389     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7390     break;
    7391 
    7392   case 483:
    7393 
    7394 /* Line 1806 of yacc.c  */
    7395 #line 1851 "parser.yy"
    7396     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7524    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    73977525    break;
    73987526
     
    74007528
    74017529/* Line 1806 of yacc.c  */
    7402 #line 1856 "parser.yy"
    7403     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     7530#line 1847 "parser.yy"
     7531    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7532    break;
     7533
     7534  case 485:
     7535
     7536/* Line 1806 of yacc.c  */
     7537#line 1852 "parser.yy"
     7538    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    74047539    break;
    74057540
     
    74077542
    74087543/* Line 1806 of yacc.c  */
     7544#line 1854 "parser.yy"
     7545    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7546    break;
     7547
     7548  case 488:
     7549
     7550/* Line 1806 of yacc.c  */
     7551#line 1860 "parser.yy"
     7552    { (yyval.tclass) = DeclarationNode::Otype; }
     7553    break;
     7554
     7555  case 489:
     7556
     7557/* Line 1806 of yacc.c  */
    74097558#line 1862 "parser.yy"
    7410     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    7411     break;
    7412 
    7413   case 487:
    7414 
    7415 /* Line 1806 of yacc.c  */
    7416 #line 1867 "parser.yy"
    7417     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7418     break;
    7419 
    7420   case 488:
     7559    { (yyval.tclass) = DeclarationNode::Ftype; }
     7560    break;
     7561
     7562  case 490:
     7563
     7564/* Line 1806 of yacc.c  */
     7565#line 1864 "parser.yy"
     7566    { (yyval.tclass) = DeclarationNode::Dtype; }
     7567    break;
     7568
     7569  case 491:
    74217570
    74227571/* Line 1806 of yacc.c  */
    74237572#line 1869 "parser.yy"
    7424     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    7425     break;
    7426 
    7427   case 490:
    7428 
    7429 /* Line 1806 of yacc.c  */
    7430 #line 1875 "parser.yy"
    7431     { (yyval.tclass) = DeclarationNode::Otype; }
    7432     break;
    7433 
    7434   case 491:
    7435 
    7436 /* Line 1806 of yacc.c  */
    7437 #line 1877 "parser.yy"
    7438     { (yyval.tclass) = DeclarationNode::Ftype; }
     7573    { (yyval.decl) = 0; }
    74397574    break;
    74407575
     
    74427577
    74437578/* Line 1806 of yacc.c  */
    7444 #line 1879 "parser.yy"
    7445     { (yyval.tclass) = DeclarationNode::Dtype; }
     7579#line 1871 "parser.yy"
     7580    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    74467581    break;
    74477582
     
    74497584
    74507585/* Line 1806 of yacc.c  */
    7451 #line 1884 "parser.yy"
    7452     { (yyval.decl) = 0; }
    7453     break;
    7454 
    7455   case 494:
    7456 
    7457 /* Line 1806 of yacc.c  */
    7458 #line 1886 "parser.yy"
    7459     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    7460     break;
    7461 
    7462   case 495:
    7463 
    7464 /* Line 1806 of yacc.c  */
    7465 #line 1891 "parser.yy"
     7586#line 1876 "parser.yy"
    74667587    {
    74677588                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    74707591    break;
    74717592
     7593  case 494:
     7594
     7595/* Line 1806 of yacc.c  */
     7596#line 1881 "parser.yy"
     7597    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7598    break;
     7599
     7600  case 495:
     7601
     7602/* Line 1806 of yacc.c  */
     7603#line 1883 "parser.yy"
     7604    { (yyval.decl) = 0; }
     7605    break;
     7606
    74727607  case 496:
    74737608
    74747609/* Line 1806 of yacc.c  */
    7475 #line 1896 "parser.yy"
    7476     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    7477     break;
    7478 
    7479   case 497:
     7610#line 1888 "parser.yy"
     7611    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     7612    break;
     7613
     7614  case 498:
     7615
     7616/* Line 1806 of yacc.c  */
     7617#line 1891 "parser.yy"
     7618    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7619    break;
     7620
     7621  case 499:
     7622
     7623/* Line 1806 of yacc.c  */
     7624#line 1893 "parser.yy"
     7625    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     7626    break;
     7627
     7628  case 500:
    74807629
    74817630/* Line 1806 of yacc.c  */
    74827631#line 1898 "parser.yy"
    7483     { (yyval.decl) = 0; }
    7484     break;
    7485 
    7486   case 498:
    7487 
    7488 /* Line 1806 of yacc.c  */
    7489 #line 1903 "parser.yy"
    7490     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    7491     break;
    7492 
    7493   case 500:
    7494 
    7495 /* Line 1806 of yacc.c  */
    7496 #line 1906 "parser.yy"
    7497     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7632    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    74987633    break;
    74997634
     
    75017636
    75027637/* Line 1806 of yacc.c  */
    7503 #line 1908 "parser.yy"
    7504     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     7638#line 1900 "parser.yy"
     7639    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    75057640    break;
    75067641
     
    75087643
    75097644/* Line 1806 of yacc.c  */
    7510 #line 1913 "parser.yy"
    7511     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7645#line 1902 "parser.yy"
     7646    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    75127647    break;
    75137648
     
    75157650
    75167651/* Line 1806 of yacc.c  */
    7517 #line 1915 "parser.yy"
    7518     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7652#line 1907 "parser.yy"
     7653    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    75197654    break;
    75207655
     
    75227657
    75237658/* Line 1806 of yacc.c  */
    7524 #line 1917 "parser.yy"
    7525     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     7659#line 1909 "parser.yy"
     7660    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    75267661    break;
    75277662
     
    75297664
    75307665/* Line 1806 of yacc.c  */
    7531 #line 1922 "parser.yy"
    7532     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7533     break;
    7534 
    7535   case 506:
    7536 
    7537 /* Line 1806 of yacc.c  */
    7538 #line 1924 "parser.yy"
    7539     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7540     break;
    7541 
    7542   case 507:
    7543 
    7544 /* Line 1806 of yacc.c  */
    7545 #line 1929 "parser.yy"
     7666#line 1914 "parser.yy"
    75467667    {
    75477668                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    75507671    break;
    75517672
    7552   case 508:
    7553 
    7554 /* Line 1806 of yacc.c  */
    7555 #line 1934 "parser.yy"
     7673  case 506:
     7674
     7675/* Line 1806 of yacc.c  */
     7676#line 1919 "parser.yy"
    75567677    {
    75577678                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    75607681    break;
    75617682
    7562   case 509:
    7563 
    7564 /* Line 1806 of yacc.c  */
    7565 #line 1942 "parser.yy"
     7683  case 507:
     7684
     7685/* Line 1806 of yacc.c  */
     7686#line 1927 "parser.yy"
    75667687    {
    75677688                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    75707691    break;
    75717692
    7572   case 510:
    7573 
    7574 /* Line 1806 of yacc.c  */
    7575 #line 1947 "parser.yy"
     7693  case 508:
     7694
     7695/* Line 1806 of yacc.c  */
     7696#line 1932 "parser.yy"
    75767697    {
    75777698                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    75807701    break;
    75817702
    7582   case 511:
    7583 
    7584 /* Line 1806 of yacc.c  */
    7585 #line 1952 "parser.yy"
     7703  case 509:
     7704
     7705/* Line 1806 of yacc.c  */
     7706#line 1937 "parser.yy"
    75867707    {
    75877708                        typedefTable.leaveTrait();
     
    75917712    break;
    75927713
    7593   case 513:
    7594 
    7595 /* Line 1806 of yacc.c  */
    7596 #line 1962 "parser.yy"
     7714  case 511:
     7715
     7716/* Line 1806 of yacc.c  */
     7717#line 1947 "parser.yy"
    75977718    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    75987719    break;
    75997720
    7600   case 516:
    7601 
    7602 /* Line 1806 of yacc.c  */
    7603 #line 1972 "parser.yy"
     7721  case 514:
     7722
     7723/* Line 1806 of yacc.c  */
     7724#line 1957 "parser.yy"
    76047725    {
    76057726                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76087729    break;
    76097730
    7610   case 517:
    7611 
    7612 /* Line 1806 of yacc.c  */
    7613 #line 1977 "parser.yy"
     7731  case 515:
     7732
     7733/* Line 1806 of yacc.c  */
     7734#line 1962 "parser.yy"
    76147735    {
    76157736                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76187739    break;
    76197740
    7620   case 518:
    7621 
    7622 /* Line 1806 of yacc.c  */
    7623 #line 1982 "parser.yy"
     7741  case 516:
     7742
     7743/* Line 1806 of yacc.c  */
     7744#line 1967 "parser.yy"
    76247745    {
    76257746                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    76287749    break;
    76297750
    7630   case 519:
    7631 
    7632 /* Line 1806 of yacc.c  */
    7633 #line 1990 "parser.yy"
     7751  case 517:
     7752
     7753/* Line 1806 of yacc.c  */
     7754#line 1975 "parser.yy"
    76347755    {
    76357756                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76387759    break;
    76397760
    7640   case 520:
    7641 
    7642 /* Line 1806 of yacc.c  */
    7643 #line 1995 "parser.yy"
     7761  case 518:
     7762
     7763/* Line 1806 of yacc.c  */
     7764#line 1980 "parser.yy"
    76447765    {
    76457766                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76487769    break;
    76497770
    7650   case 521:
    7651 
    7652 /* Line 1806 of yacc.c  */
    7653 #line 2005 "parser.yy"
     7771  case 519:
     7772
     7773/* Line 1806 of yacc.c  */
     7774#line 1990 "parser.yy"
    76547775    {}
    76557776    break;
    76567777
     7778  case 520:
     7779
     7780/* Line 1806 of yacc.c  */
     7781#line 1992 "parser.yy"
     7782    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
     7783    break;
     7784
    76577785  case 522:
    76587786
    76597787/* Line 1806 of yacc.c  */
    7660 #line 2007 "parser.yy"
    7661     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    7662     break;
    7663 
    7664   case 524:
     7788#line 1998 "parser.yy"
     7789    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7790    break;
     7791
     7792  case 523:
     7793
     7794/* Line 1806 of yacc.c  */
     7795#line 2003 "parser.yy"
     7796    { (yyval.decl) = 0; }
     7797    break;
     7798
     7799  case 527:
     7800
     7801/* Line 1806 of yacc.c  */
     7802#line 2011 "parser.yy"
     7803    {}
     7804    break;
     7805
     7806  case 528:
    76657807
    76667808/* Line 1806 of yacc.c  */
    76677809#line 2013 "parser.yy"
    7668     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    7669     break;
    7670 
    7671   case 525:
    7672 
    7673 /* Line 1806 of yacc.c  */
    7674 #line 2018 "parser.yy"
    7675     { (yyval.decl) = 0; }
    7676     break;
    7677 
    7678   case 529:
    7679 
    7680 /* Line 1806 of yacc.c  */
    7681 #line 2026 "parser.yy"
    7682     {}
    7683     break;
    7684 
    7685   case 530:
    7686 
    7687 /* Line 1806 of yacc.c  */
    7688 #line 2028 "parser.yy"
    76897810    {
    76907811                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    76937814    break;
    76947815
    7695   case 531:
    7696 
    7697 /* Line 1806 of yacc.c  */
    7698 #line 2033 "parser.yy"
     7816  case 529:
     7817
     7818/* Line 1806 of yacc.c  */
     7819#line 2018 "parser.yy"
    76997820    {
    77007821                        linkage = linkageStack.top();
     
    77047825    break;
    77057826
    7706   case 532:
    7707 
    7708 /* Line 1806 of yacc.c  */
    7709 #line 2039 "parser.yy"
     7827  case 530:
     7828
     7829/* Line 1806 of yacc.c  */
     7830#line 2024 "parser.yy"
    77107831    {   // mark all fields in list
    77117832                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    77127833                                iter->set_extension( true );
    77137834                        (yyval.decl) = (yyvsp[(2) - (2)].decl);
     7835                }
     7836    break;
     7837
     7838  case 532:
     7839
     7840/* Line 1806 of yacc.c  */
     7841#line 2039 "parser.yy"
     7842    {
     7843                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     7844                        typedefTable.leaveScope();
     7845                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     7846                }
     7847    break;
     7848
     7849  case 533:
     7850
     7851/* Line 1806 of yacc.c  */
     7852#line 2045 "parser.yy"
     7853    {
     7854                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     7855                        typedefTable.leaveScope();
     7856                        (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
    77147857                }
    77157858    break;
     
    77337876                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    77347877                        typedefTable.leaveScope();
    7735                         (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
    7736                 }
    7737     break;
    7738 
    7739   case 536:
    7740 
    7741 /* Line 1806 of yacc.c  */
    7742 #line 2069 "parser.yy"
    7743     {
    7744                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    7745                         typedefTable.leaveScope();
    7746                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
    7747                 }
    7748     break;
    7749 
    7750   case 537:
    7751 
    7752 /* Line 1806 of yacc.c  */
    7753 #line 2075 "parser.yy"
    7754     {
    7755                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    7756                         typedefTable.leaveScope();
    77577878                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );
    77587879                }
    77597880    break;
    77607881
    7761   case 538:
    7762 
    7763 /* Line 1806 of yacc.c  */
    7764 #line 2081 "parser.yy"
     7882  case 536:
     7883
     7884/* Line 1806 of yacc.c  */
     7885#line 2066 "parser.yy"
    77657886    {
    77667887                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77707891    break;
    77717892
    7772   case 539:
    7773 
    7774 /* Line 1806 of yacc.c  */
    7775 #line 2087 "parser.yy"
     7893  case 537:
     7894
     7895/* Line 1806 of yacc.c  */
     7896#line 2072 "parser.yy"
    77767897    {
    77777898                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77817902    break;
    77827903
    7783   case 540:
    7784 
    7785 /* Line 1806 of yacc.c  */
    7786 #line 2093 "parser.yy"
     7904  case 538:
     7905
     7906/* Line 1806 of yacc.c  */
     7907#line 2078 "parser.yy"
    77877908    {
    77887909                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77927913    break;
    77937914
    7794   case 541:
    7795 
    7796 /* Line 1806 of yacc.c  */
    7797 #line 2101 "parser.yy"
     7915  case 539:
     7916
     7917/* Line 1806 of yacc.c  */
     7918#line 2086 "parser.yy"
    77987919    {
    77997920                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78037924    break;
    78047925
    7805   case 542:
    7806 
    7807 /* Line 1806 of yacc.c  */
    7808 #line 2107 "parser.yy"
     7926  case 540:
     7927
     7928/* Line 1806 of yacc.c  */
     7929#line 2092 "parser.yy"
    78097930    {
    78107931                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78147935    break;
    78157936
    7816   case 543:
    7817 
    7818 /* Line 1806 of yacc.c  */
    7819 #line 2115 "parser.yy"
     7937  case 541:
     7938
     7939/* Line 1806 of yacc.c  */
     7940#line 2100 "parser.yy"
    78207941    {
    78217942                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78257946    break;
    78267947
    7827   case 544:
    7828 
    7829 /* Line 1806 of yacc.c  */
    7830 #line 2121 "parser.yy"
     7948  case 542:
     7949
     7950/* Line 1806 of yacc.c  */
     7951#line 2106 "parser.yy"
    78317952    {
    78327953                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78367957    break;
    78377958
     7959  case 546:
     7960
     7961/* Line 1806 of yacc.c  */
     7962#line 2121 "parser.yy"
     7963    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     7964    break;
     7965
    78387966  case 548:
    78397967
    78407968/* Line 1806 of yacc.c  */
    7841 #line 2136 "parser.yy"
    7842     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    7843     break;
    7844 
    7845   case 550:
    7846 
    7847 /* Line 1806 of yacc.c  */
    7848 #line 2141 "parser.yy"
     7969#line 2126 "parser.yy"
    78497970    { delete (yyvsp[(3) - (5)].str); }
    78507971    break;
    78517972
    7852   case 551:
    7853 
    7854 /* Line 1806 of yacc.c  */
    7855 #line 2146 "parser.yy"
     7973  case 549:
     7974
     7975/* Line 1806 of yacc.c  */
     7976#line 2131 "parser.yy"
    78567977    { (yyval.decl) = 0; }
    78577978    break;
    78587979
    7859   case 554:
    7860 
    7861 /* Line 1806 of yacc.c  */
    7862 #line 2153 "parser.yy"
     7980  case 552:
     7981
     7982/* Line 1806 of yacc.c  */
     7983#line 2138 "parser.yy"
    78637984    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    78647985    break;
    78657986
    7866   case 555:
     7987  case 553:
     7988
     7989/* Line 1806 of yacc.c  */
     7990#line 2144 "parser.yy"
     7991    { (yyval.decl) = 0; }
     7992    break;
     7993
     7994  case 558:
     7995
     7996/* Line 1806 of yacc.c  */
     7997#line 2155 "parser.yy"
     7998    { delete (yyvsp[(3) - (4)].en); }
     7999    break;
     8000
     8001  case 559:
    78678002
    78688003/* Line 1806 of yacc.c  */
    78698004#line 2159 "parser.yy"
    7870     { (yyval.decl) = 0; }
     8005    { delete (yyvsp[(1) - (1)].tok); }
    78718006    break;
    78728007
     
    78748009
    78758010/* Line 1806 of yacc.c  */
    7876 #line 2170 "parser.yy"
    7877     { delete (yyvsp[(3) - (4)].en); }
     8011#line 2160 "parser.yy"
     8012    { delete (yyvsp[(1) - (1)].decl); }
    78788013    break;
    78798014
     
    78818016
    78828017/* Line 1806 of yacc.c  */
    7883 #line 2174 "parser.yy"
    7884     { delete (yyvsp[(1) - (1)].tok); }
     8018#line 2161 "parser.yy"
     8019    { delete (yyvsp[(1) - (1)].decl); }
    78858020    break;
    78868021
     
    78888023
    78898024/* Line 1806 of yacc.c  */
    7890 #line 2175 "parser.yy"
     8025#line 2162 "parser.yy"
    78918026    { delete (yyvsp[(1) - (1)].decl); }
    78928027    break;
     
    78958030
    78968031/* Line 1806 of yacc.c  */
    7897 #line 2176 "parser.yy"
    7898     { delete (yyvsp[(1) - (1)].decl); }
    7899     break;
    7900 
    7901   case 564:
    7902 
    7903 /* Line 1806 of yacc.c  */
    7904 #line 2177 "parser.yy"
    7905     { delete (yyvsp[(1) - (1)].decl); }
     8032#line 2197 "parser.yy"
     8033    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79068034    break;
    79078035
     
    79098037
    79108038/* Line 1806 of yacc.c  */
    7911 #line 2212 "parser.yy"
     8039#line 2200 "parser.yy"
    79128040    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79138041    break;
    79148042
     8043  case 566:
     8044
     8045/* Line 1806 of yacc.c  */
     8046#line 2202 "parser.yy"
     8047    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8048    break;
     8049
    79158050  case 567:
    79168051
    79178052/* Line 1806 of yacc.c  */
    7918 #line 2215 "parser.yy"
    7919     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7920     break;
    7921 
    7922   case 568:
    7923 
    7924 /* Line 1806 of yacc.c  */
    7925 #line 2217 "parser.yy"
    7926     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7927     break;
    7928 
    7929   case 569:
    7930 
    7931 /* Line 1806 of yacc.c  */
    7932 #line 2222 "parser.yy"
     8053#line 2207 "parser.yy"
    79338054    {
    79348055                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    79378058    break;
    79388059
     8060  case 568:
     8061
     8062/* Line 1806 of yacc.c  */
     8063#line 2212 "parser.yy"
     8064    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8065    break;
     8066
     8067  case 569:
     8068
     8069/* Line 1806 of yacc.c  */
     8070#line 2217 "parser.yy"
     8071    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8072    break;
     8073
    79398074  case 570:
    79408075
    79418076/* Line 1806 of yacc.c  */
    7942 #line 2227 "parser.yy"
     8077#line 2219 "parser.yy"
     8078    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8079    break;
     8080
     8081  case 571:
     8082
     8083/* Line 1806 of yacc.c  */
     8084#line 2221 "parser.yy"
    79438085    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79448086    break;
    79458087
    7946   case 571:
     8088  case 572:
     8089
     8090/* Line 1806 of yacc.c  */
     8091#line 2226 "parser.yy"
     8092    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8093    break;
     8094
     8095  case 573:
     8096
     8097/* Line 1806 of yacc.c  */
     8098#line 2228 "parser.yy"
     8099    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8100    break;
     8101
     8102  case 574:
     8103
     8104/* Line 1806 of yacc.c  */
     8105#line 2230 "parser.yy"
     8106    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8107    break;
     8108
     8109  case 575:
    79478110
    79488111/* Line 1806 of yacc.c  */
    79498112#line 2232 "parser.yy"
     8113    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8114    break;
     8115
     8116  case 576:
     8117
     8118/* Line 1806 of yacc.c  */
     8119#line 2237 "parser.yy"
     8120    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8121    break;
     8122
     8123  case 577:
     8124
     8125/* Line 1806 of yacc.c  */
     8126#line 2239 "parser.yy"
     8127    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8128    break;
     8129
     8130  case 578:
     8131
     8132/* Line 1806 of yacc.c  */
     8133#line 2248 "parser.yy"
     8134    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8135    break;
     8136
     8137  case 580:
     8138
     8139/* Line 1806 of yacc.c  */
     8140#line 2251 "parser.yy"
     8141    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8142    break;
     8143
     8144  case 581:
     8145
     8146/* Line 1806 of yacc.c  */
     8147#line 2256 "parser.yy"
     8148    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8149    break;
     8150
     8151  case 582:
     8152
     8153/* Line 1806 of yacc.c  */
     8154#line 2258 "parser.yy"
     8155    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8156    break;
     8157
     8158  case 583:
     8159
     8160/* Line 1806 of yacc.c  */
     8161#line 2260 "parser.yy"
     8162    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8163    break;
     8164
     8165  case 584:
     8166
     8167/* Line 1806 of yacc.c  */
     8168#line 2265 "parser.yy"
    79508169    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    79518170    break;
    79528171
    7953   case 572:
    7954 
    7955 /* Line 1806 of yacc.c  */
    7956 #line 2234 "parser.yy"
     8172  case 585:
     8173
     8174/* Line 1806 of yacc.c  */
     8175#line 2267 "parser.yy"
    79578176    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    79588177    break;
    79598178
    7960   case 573:
    7961 
    7962 /* Line 1806 of yacc.c  */
    7963 #line 2236 "parser.yy"
     8179  case 586:
     8180
     8181/* Line 1806 of yacc.c  */
     8182#line 2269 "parser.yy"
    79648183    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79658184    break;
    79668185
    7967   case 574:
    7968 
    7969 /* Line 1806 of yacc.c  */
    7970 #line 2241 "parser.yy"
     8186  case 587:
     8187
     8188/* Line 1806 of yacc.c  */
     8189#line 2274 "parser.yy"
     8190    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8191    break;
     8192
     8193  case 588:
     8194
     8195/* Line 1806 of yacc.c  */
     8196#line 2276 "parser.yy"
     8197    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8198    break;
     8199
     8200  case 589:
     8201
     8202/* Line 1806 of yacc.c  */
     8203#line 2278 "parser.yy"
     8204    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8205    break;
     8206
     8207  case 593:
     8208
     8209/* Line 1806 of yacc.c  */
     8210#line 2293 "parser.yy"
     8211    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8212    break;
     8213
     8214  case 594:
     8215
     8216/* Line 1806 of yacc.c  */
     8217#line 2295 "parser.yy"
     8218    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8219    break;
     8220
     8221  case 595:
     8222
     8223/* Line 1806 of yacc.c  */
     8224#line 2297 "parser.yy"
     8225    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8226    break;
     8227
     8228  case 596:
     8229
     8230/* Line 1806 of yacc.c  */
     8231#line 2302 "parser.yy"
     8232    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8233    break;
     8234
     8235  case 597:
     8236
     8237/* Line 1806 of yacc.c  */
     8238#line 2304 "parser.yy"
     8239    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8240    break;
     8241
     8242  case 598:
     8243
     8244/* Line 1806 of yacc.c  */
     8245#line 2306 "parser.yy"
     8246    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8247    break;
     8248
     8249  case 599:
     8250
     8251/* Line 1806 of yacc.c  */
     8252#line 2311 "parser.yy"
     8253    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8254    break;
     8255
     8256  case 600:
     8257
     8258/* Line 1806 of yacc.c  */
     8259#line 2313 "parser.yy"
     8260    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8261    break;
     8262
     8263  case 601:
     8264
     8265/* Line 1806 of yacc.c  */
     8266#line 2315 "parser.yy"
     8267    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8268    break;
     8269
     8270  case 602:
     8271
     8272/* Line 1806 of yacc.c  */
     8273#line 2330 "parser.yy"
     8274    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8275    break;
     8276
     8277  case 604:
     8278
     8279/* Line 1806 of yacc.c  */
     8280#line 2333 "parser.yy"
     8281    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8282    break;
     8283
     8284  case 605:
     8285
     8286/* Line 1806 of yacc.c  */
     8287#line 2335 "parser.yy"
     8288    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8289    break;
     8290
     8291  case 607:
     8292
     8293/* Line 1806 of yacc.c  */
     8294#line 2341 "parser.yy"
     8295    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8296    break;
     8297
     8298  case 608:
     8299
     8300/* Line 1806 of yacc.c  */
     8301#line 2346 "parser.yy"
     8302    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8303    break;
     8304
     8305  case 609:
     8306
     8307/* Line 1806 of yacc.c  */
     8308#line 2348 "parser.yy"
     8309    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8310    break;
     8311
     8312  case 610:
     8313
     8314/* Line 1806 of yacc.c  */
     8315#line 2350 "parser.yy"
     8316    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8317    break;
     8318
     8319  case 611:
     8320
     8321/* Line 1806 of yacc.c  */
     8322#line 2355 "parser.yy"
    79718323    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    79728324    break;
    79738325
    7974   case 575:
    7975 
    7976 /* Line 1806 of yacc.c  */
    7977 #line 2243 "parser.yy"
     8326  case 612:
     8327
     8328/* Line 1806 of yacc.c  */
     8329#line 2357 "parser.yy"
    79788330    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    79798331    break;
    79808332
    7981   case 576:
    7982 
    7983 /* Line 1806 of yacc.c  */
    7984 #line 2245 "parser.yy"
     8333  case 613:
     8334
     8335/* Line 1806 of yacc.c  */
     8336#line 2359 "parser.yy"
    79858337    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    79868338    break;
    79878339
    7988   case 577:
    7989 
    7990 /* Line 1806 of yacc.c  */
    7991 #line 2247 "parser.yy"
     8340  case 614:
     8341
     8342/* Line 1806 of yacc.c  */
     8343#line 2361 "parser.yy"
    79928344    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79938345    break;
    79948346
    7995   case 578:
    7996 
    7997 /* Line 1806 of yacc.c  */
    7998 #line 2252 "parser.yy"
     8347  case 615:
     8348
     8349/* Line 1806 of yacc.c  */
     8350#line 2366 "parser.yy"
     8351    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8352    break;
     8353
     8354  case 616:
     8355
     8356/* Line 1806 of yacc.c  */
     8357#line 2368 "parser.yy"
    79998358    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80008359    break;
    80018360
    8002   case 579:
    8003 
    8004 /* Line 1806 of yacc.c  */
    8005 #line 2254 "parser.yy"
     8361  case 617:
     8362
     8363/* Line 1806 of yacc.c  */
     8364#line 2370 "parser.yy"
    80068365    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80078366    break;
    80088367
    8009   case 580:
    8010 
    8011 /* Line 1806 of yacc.c  */
    8012 #line 2263 "parser.yy"
     8368  case 618:
     8369
     8370/* Line 1806 of yacc.c  */
     8371#line 2380 "parser.yy"
    80138372    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80148373    break;
    80158374
    8016   case 582:
    8017 
    8018 /* Line 1806 of yacc.c  */
    8019 #line 2266 "parser.yy"
     8375  case 620:
     8376
     8377/* Line 1806 of yacc.c  */
     8378#line 2383 "parser.yy"
    80208379    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80218380    break;
    80228381
    8023   case 583:
    8024 
    8025 /* Line 1806 of yacc.c  */
    8026 #line 2271 "parser.yy"
     8382  case 621:
     8383
     8384/* Line 1806 of yacc.c  */
     8385#line 2385 "parser.yy"
     8386    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8387    break;
     8388
     8389  case 622:
     8390
     8391/* Line 1806 of yacc.c  */
     8392#line 2390 "parser.yy"
     8393    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8394    break;
     8395
     8396  case 623:
     8397
     8398/* Line 1806 of yacc.c  */
     8399#line 2392 "parser.yy"
     8400    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8401    break;
     8402
     8403  case 624:
     8404
     8405/* Line 1806 of yacc.c  */
     8406#line 2394 "parser.yy"
     8407    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8408    break;
     8409
     8410  case 625:
     8411
     8412/* Line 1806 of yacc.c  */
     8413#line 2399 "parser.yy"
     8414    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8415    break;
     8416
     8417  case 626:
     8418
     8419/* Line 1806 of yacc.c  */
     8420#line 2401 "parser.yy"
     8421    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8422    break;
     8423
     8424  case 627:
     8425
     8426/* Line 1806 of yacc.c  */
     8427#line 2403 "parser.yy"
     8428    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8429    break;
     8430
     8431  case 628:
     8432
     8433/* Line 1806 of yacc.c  */
     8434#line 2405 "parser.yy"
     8435    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8436    break;
     8437
     8438  case 629:
     8439
     8440/* Line 1806 of yacc.c  */
     8441#line 2410 "parser.yy"
    80278442    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    80288443    break;
    80298444
    8030   case 584:
    8031 
    8032 /* Line 1806 of yacc.c  */
    8033 #line 2273 "parser.yy"
     8445  case 630:
     8446
     8447/* Line 1806 of yacc.c  */
     8448#line 2412 "parser.yy"
    80348449    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80358450    break;
    80368451
    8037   case 585:
    8038 
    8039 /* Line 1806 of yacc.c  */
    8040 #line 2275 "parser.yy"
     8452  case 631:
     8453
     8454/* Line 1806 of yacc.c  */
     8455#line 2414 "parser.yy"
    80418456    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80428457    break;
    80438458
    8044   case 586:
    8045 
    8046 /* Line 1806 of yacc.c  */
    8047 #line 2280 "parser.yy"
    8048     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8049     break;
    8050 
    8051   case 587:
    8052 
    8053 /* Line 1806 of yacc.c  */
    8054 #line 2282 "parser.yy"
    8055     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8056     break;
    8057 
    8058   case 588:
    8059 
    8060 /* Line 1806 of yacc.c  */
    8061 #line 2284 "parser.yy"
    8062     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8063     break;
    8064 
    8065   case 589:
    8066 
    8067 /* Line 1806 of yacc.c  */
    8068 #line 2289 "parser.yy"
    8069     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8070     break;
    8071 
    8072   case 590:
    8073 
    8074 /* Line 1806 of yacc.c  */
    8075 #line 2291 "parser.yy"
    8076     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8077     break;
    8078 
    8079   case 591:
    8080 
    8081 /* Line 1806 of yacc.c  */
    8082 #line 2293 "parser.yy"
    8083     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8084     break;
    8085 
    8086   case 595:
    8087 
    8088 /* Line 1806 of yacc.c  */
    8089 #line 2308 "parser.yy"
    8090     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8091     break;
    8092 
    8093   case 596:
    8094 
    8095 /* Line 1806 of yacc.c  */
    8096 #line 2310 "parser.yy"
    8097     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8098     break;
    8099 
    8100   case 597:
    8101 
    8102 /* Line 1806 of yacc.c  */
    8103 #line 2312 "parser.yy"
    8104     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8105     break;
    8106 
    8107   case 598:
    8108 
    8109 /* Line 1806 of yacc.c  */
    8110 #line 2317 "parser.yy"
    8111     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8112     break;
    8113 
    8114   case 599:
    8115 
    8116 /* Line 1806 of yacc.c  */
    8117 #line 2319 "parser.yy"
    8118     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8119     break;
    8120 
    8121   case 600:
    8122 
    8123 /* Line 1806 of yacc.c  */
    8124 #line 2321 "parser.yy"
    8125     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8126     break;
    8127 
    8128   case 601:
    8129 
    8130 /* Line 1806 of yacc.c  */
    8131 #line 2326 "parser.yy"
    8132     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8133     break;
    8134 
    8135   case 602:
    8136 
    8137 /* Line 1806 of yacc.c  */
    8138 #line 2328 "parser.yy"
    8139     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8140     break;
    8141 
    8142   case 603:
    8143 
    8144 /* Line 1806 of yacc.c  */
    8145 #line 2330 "parser.yy"
    8146     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8147     break;
    8148 
    8149   case 604:
    8150 
    8151 /* Line 1806 of yacc.c  */
    8152 #line 2345 "parser.yy"
     8459  case 632:
     8460
     8461/* Line 1806 of yacc.c  */
     8462#line 2445 "parser.yy"
    81538463    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81548464    break;
    81558465
    8156   case 606:
    8157 
    8158 /* Line 1806 of yacc.c  */
    8159 #line 2348 "parser.yy"
     8466  case 634:
     8467
     8468/* Line 1806 of yacc.c  */
     8469#line 2448 "parser.yy"
    81608470    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81618471    break;
    81628472
    8163   case 607:
    8164 
    8165 /* Line 1806 of yacc.c  */
    8166 #line 2350 "parser.yy"
     8473  case 635:
     8474
     8475/* Line 1806 of yacc.c  */
     8476#line 2450 "parser.yy"
    81678477    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81688478    break;
    81698479
    8170   case 609:
    8171 
    8172 /* Line 1806 of yacc.c  */
    8173 #line 2356 "parser.yy"
    8174     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8175     break;
    8176 
    8177   case 610:
    8178 
    8179 /* Line 1806 of yacc.c  */
    8180 #line 2361 "parser.yy"
    8181     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8182     break;
    8183 
    8184   case 611:
    8185 
    8186 /* Line 1806 of yacc.c  */
    8187 #line 2363 "parser.yy"
    8188     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8189     break;
    8190 
    8191   case 612:
    8192 
    8193 /* Line 1806 of yacc.c  */
    8194 #line 2365 "parser.yy"
    8195     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8196     break;
    8197 
    8198   case 613:
    8199 
    8200 /* Line 1806 of yacc.c  */
    8201 #line 2370 "parser.yy"
    8202     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8203     break;
    8204 
    8205   case 614:
    8206 
    8207 /* Line 1806 of yacc.c  */
    8208 #line 2372 "parser.yy"
    8209     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8210     break;
    8211 
    8212   case 615:
    8213 
    8214 /* Line 1806 of yacc.c  */
    8215 #line 2374 "parser.yy"
    8216     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8217     break;
    8218 
    8219   case 616:
    8220 
    8221 /* Line 1806 of yacc.c  */
    8222 #line 2376 "parser.yy"
    8223     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8224     break;
    8225 
    8226   case 617:
    8227 
    8228 /* Line 1806 of yacc.c  */
    8229 #line 2381 "parser.yy"
    8230     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8231     break;
    8232 
    8233   case 618:
    8234 
    8235 /* Line 1806 of yacc.c  */
    8236 #line 2383 "parser.yy"
    8237     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8238     break;
    8239 
    8240   case 619:
    8241 
    8242 /* Line 1806 of yacc.c  */
    8243 #line 2385 "parser.yy"
    8244     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8245     break;
    8246 
    8247   case 620:
    8248 
    8249 /* Line 1806 of yacc.c  */
    8250 #line 2395 "parser.yy"
    8251     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8252     break;
    8253 
    8254   case 622:
    8255 
    8256 /* Line 1806 of yacc.c  */
    8257 #line 2398 "parser.yy"
    8258     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8259     break;
    8260 
    8261   case 623:
    8262 
    8263 /* Line 1806 of yacc.c  */
    8264 #line 2400 "parser.yy"
    8265     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8266     break;
    8267 
    8268   case 624:
    8269 
    8270 /* Line 1806 of yacc.c  */
    8271 #line 2405 "parser.yy"
    8272     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8273     break;
    8274 
    8275   case 625:
    8276 
    8277 /* Line 1806 of yacc.c  */
    8278 #line 2407 "parser.yy"
    8279     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8280     break;
    8281 
    8282   case 626:
    8283 
    8284 /* Line 1806 of yacc.c  */
    8285 #line 2409 "parser.yy"
    8286     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8287     break;
    8288 
    8289   case 627:
    8290 
    8291 /* Line 1806 of yacc.c  */
    8292 #line 2414 "parser.yy"
    8293     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8294     break;
    8295 
    8296   case 628:
    8297 
    8298 /* Line 1806 of yacc.c  */
    8299 #line 2416 "parser.yy"
    8300     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8301     break;
    8302 
    8303   case 629:
    8304 
    8305 /* Line 1806 of yacc.c  */
    8306 #line 2418 "parser.yy"
    8307     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8308     break;
    8309 
    8310   case 630:
    8311 
    8312 /* Line 1806 of yacc.c  */
    8313 #line 2420 "parser.yy"
    8314     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8315     break;
    8316 
    8317   case 631:
    8318 
    8319 /* Line 1806 of yacc.c  */
    8320 #line 2425 "parser.yy"
    8321     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8322     break;
    8323 
    8324   case 632:
    8325 
    8326 /* Line 1806 of yacc.c  */
    8327 #line 2427 "parser.yy"
    8328     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8329     break;
    8330 
    8331   case 633:
    8332 
    8333 /* Line 1806 of yacc.c  */
    8334 #line 2429 "parser.yy"
    8335     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8336     break;
    8337 
    8338   case 634:
    8339 
    8340 /* Line 1806 of yacc.c  */
    8341 #line 2460 "parser.yy"
    8342     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8343     break;
    8344 
    83458480  case 636:
    83468481
    83478482/* Line 1806 of yacc.c  */
    8348 #line 2463 "parser.yy"
    8349     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8350     break;
    8351 
    8352   case 637:
    8353 
    8354 /* Line 1806 of yacc.c  */
    8355 #line 2465 "parser.yy"
    8356     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8357     break;
    8358 
    8359   case 638:
    8360 
    8361 /* Line 1806 of yacc.c  */
    8362 #line 2470 "parser.yy"
     8483#line 2455 "parser.yy"
    83638484    {
    83648485                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83678488    break;
    83688489
    8369   case 639:
    8370 
    8371 /* Line 1806 of yacc.c  */
    8372 #line 2475 "parser.yy"
     8490  case 637:
     8491
     8492/* Line 1806 of yacc.c  */
     8493#line 2460 "parser.yy"
    83738494    {
    83748495                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83778498    break;
    83788499
     8500  case 638:
     8501
     8502/* Line 1806 of yacc.c  */
     8503#line 2468 "parser.yy"
     8504    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8505    break;
     8506
     8507  case 639:
     8508
     8509/* Line 1806 of yacc.c  */
     8510#line 2470 "parser.yy"
     8511    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8512    break;
     8513
    83798514  case 640:
    83808515
    83818516/* Line 1806 of yacc.c  */
    8382 #line 2483 "parser.yy"
     8517#line 2472 "parser.yy"
     8518    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8519    break;
     8520
     8521  case 641:
     8522
     8523/* Line 1806 of yacc.c  */
     8524#line 2477 "parser.yy"
     8525    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8526    break;
     8527
     8528  case 642:
     8529
     8530/* Line 1806 of yacc.c  */
     8531#line 2479 "parser.yy"
     8532    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8533    break;
     8534
     8535  case 643:
     8536
     8537/* Line 1806 of yacc.c  */
     8538#line 2484 "parser.yy"
     8539    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8540    break;
     8541
     8542  case 644:
     8543
     8544/* Line 1806 of yacc.c  */
     8545#line 2486 "parser.yy"
     8546    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8547    break;
     8548
     8549  case 646:
     8550
     8551/* Line 1806 of yacc.c  */
     8552#line 2501 "parser.yy"
     8553    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8554    break;
     8555
     8556  case 647:
     8557
     8558/* Line 1806 of yacc.c  */
     8559#line 2503 "parser.yy"
     8560    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8561    break;
     8562
     8563  case 648:
     8564
     8565/* Line 1806 of yacc.c  */
     8566#line 2508 "parser.yy"
     8567    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8568    break;
     8569
     8570  case 649:
     8571
     8572/* Line 1806 of yacc.c  */
     8573#line 2510 "parser.yy"
     8574    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8575    break;
     8576
     8577  case 650:
     8578
     8579/* Line 1806 of yacc.c  */
     8580#line 2512 "parser.yy"
    83838581    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83848582    break;
    83858583
    8386   case 641:
    8387 
    8388 /* Line 1806 of yacc.c  */
    8389 #line 2485 "parser.yy"
     8584  case 651:
     8585
     8586/* Line 1806 of yacc.c  */
     8587#line 2514 "parser.yy"
    83908588    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83918589    break;
    83928590
    8393   case 642:
    8394 
    8395 /* Line 1806 of yacc.c  */
    8396 #line 2487 "parser.yy"
     8591  case 652:
     8592
     8593/* Line 1806 of yacc.c  */
     8594#line 2516 "parser.yy"
    83978595    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83988596    break;
    83998597
    8400   case 643:
    8401 
    8402 /* Line 1806 of yacc.c  */
    8403 #line 2492 "parser.yy"
     8598  case 654:
     8599
     8600/* Line 1806 of yacc.c  */
     8601#line 2522 "parser.yy"
     8602    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8603    break;
     8604
     8605  case 655:
     8606
     8607/* Line 1806 of yacc.c  */
     8608#line 2524 "parser.yy"
     8609    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8610    break;
     8611
     8612  case 656:
     8613
     8614/* Line 1806 of yacc.c  */
     8615#line 2526 "parser.yy"
     8616    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8617    break;
     8618
     8619  case 657:
     8620
     8621/* Line 1806 of yacc.c  */
     8622#line 2531 "parser.yy"
     8623    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     8624    break;
     8625
     8626  case 658:
     8627
     8628/* Line 1806 of yacc.c  */
     8629#line 2533 "parser.yy"
     8630    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8631    break;
     8632
     8633  case 659:
     8634
     8635/* Line 1806 of yacc.c  */
     8636#line 2535 "parser.yy"
     8637    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8638    break;
     8639
     8640  case 660:
     8641
     8642/* Line 1806 of yacc.c  */
     8643#line 2541 "parser.yy"
     8644    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8645    break;
     8646
     8647  case 661:
     8648
     8649/* Line 1806 of yacc.c  */
     8650#line 2543 "parser.yy"
     8651    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8652    break;
     8653
     8654  case 663:
     8655
     8656/* Line 1806 of yacc.c  */
     8657#line 2549 "parser.yy"
     8658    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8659    break;
     8660
     8661  case 664:
     8662
     8663/* Line 1806 of yacc.c  */
     8664#line 2551 "parser.yy"
     8665    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8666    break;
     8667
     8668  case 665:
     8669
     8670/* Line 1806 of yacc.c  */
     8671#line 2553 "parser.yy"
     8672    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8673    break;
     8674
     8675  case 666:
     8676
     8677/* Line 1806 of yacc.c  */
     8678#line 2555 "parser.yy"
     8679    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8680    break;
     8681
     8682  case 668:
     8683
     8684/* Line 1806 of yacc.c  */
     8685#line 2570 "parser.yy"
     8686    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8687    break;
     8688
     8689  case 669:
     8690
     8691/* Line 1806 of yacc.c  */
     8692#line 2572 "parser.yy"
     8693    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8694    break;
     8695
     8696  case 670:
     8697
     8698/* Line 1806 of yacc.c  */
     8699#line 2577 "parser.yy"
     8700    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8701    break;
     8702
     8703  case 671:
     8704
     8705/* Line 1806 of yacc.c  */
     8706#line 2579 "parser.yy"
     8707    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8708    break;
     8709
     8710  case 672:
     8711
     8712/* Line 1806 of yacc.c  */
     8713#line 2581 "parser.yy"
     8714    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8715    break;
     8716
     8717  case 673:
     8718
     8719/* Line 1806 of yacc.c  */
     8720#line 2583 "parser.yy"
     8721    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8722    break;
     8723
     8724  case 674:
     8725
     8726/* Line 1806 of yacc.c  */
     8727#line 2585 "parser.yy"
     8728    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8729    break;
     8730
     8731  case 676:
     8732
     8733/* Line 1806 of yacc.c  */
     8734#line 2591 "parser.yy"
     8735    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8736    break;
     8737
     8738  case 677:
     8739
     8740/* Line 1806 of yacc.c  */
     8741#line 2593 "parser.yy"
     8742    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8743    break;
     8744
     8745  case 678:
     8746
     8747/* Line 1806 of yacc.c  */
     8748#line 2595 "parser.yy"
     8749    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8750    break;
     8751
     8752  case 679:
     8753
     8754/* Line 1806 of yacc.c  */
     8755#line 2600 "parser.yy"
     8756    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     8757    break;
     8758
     8759  case 680:
     8760
     8761/* Line 1806 of yacc.c  */
     8762#line 2602 "parser.yy"
     8763    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8764    break;
     8765
     8766  case 681:
     8767
     8768/* Line 1806 of yacc.c  */
     8769#line 2604 "parser.yy"
     8770    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8771    break;
     8772
     8773  case 683:
     8774
     8775/* Line 1806 of yacc.c  */
     8776#line 2611 "parser.yy"
    84048777    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84058778    break;
    84068779
    8407   case 644:
    8408 
    8409 /* Line 1806 of yacc.c  */
    8410 #line 2494 "parser.yy"
     8780  case 685:
     8781
     8782/* Line 1806 of yacc.c  */
     8783#line 2622 "parser.yy"
     8784    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8785    break;
     8786
     8787  case 686:
     8788
     8789/* Line 1806 of yacc.c  */
     8790#line 2625 "parser.yy"
     8791    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8792    break;
     8793
     8794  case 687:
     8795
     8796/* Line 1806 of yacc.c  */
     8797#line 2627 "parser.yy"
     8798    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8799    break;
     8800
     8801  case 688:
     8802
     8803/* Line 1806 of yacc.c  */
     8804#line 2630 "parser.yy"
     8805    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8806    break;
     8807
     8808  case 689:
     8809
     8810/* Line 1806 of yacc.c  */
     8811#line 2632 "parser.yy"
     8812    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8813    break;
     8814
     8815  case 690:
     8816
     8817/* Line 1806 of yacc.c  */
     8818#line 2634 "parser.yy"
     8819    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8820    break;
     8821
     8822  case 692:
     8823
     8824/* Line 1806 of yacc.c  */
     8825#line 2648 "parser.yy"
     8826    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8827    break;
     8828
     8829  case 693:
     8830
     8831/* Line 1806 of yacc.c  */
     8832#line 2650 "parser.yy"
     8833    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8834    break;
     8835
     8836  case 694:
     8837
     8838/* Line 1806 of yacc.c  */
     8839#line 2655 "parser.yy"
     8840    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8841    break;
     8842
     8843  case 695:
     8844
     8845/* Line 1806 of yacc.c  */
     8846#line 2657 "parser.yy"
     8847    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8848    break;
     8849
     8850  case 696:
     8851
     8852/* Line 1806 of yacc.c  */
     8853#line 2659 "parser.yy"
     8854    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8855    break;
     8856
     8857  case 697:
     8858
     8859/* Line 1806 of yacc.c  */
     8860#line 2661 "parser.yy"
     8861    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8862    break;
     8863
     8864  case 698:
     8865
     8866/* Line 1806 of yacc.c  */
     8867#line 2663 "parser.yy"
     8868    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8869    break;
     8870
     8871  case 700:
     8872
     8873/* Line 1806 of yacc.c  */
     8874#line 2669 "parser.yy"
    84118875    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84128876    break;
    84138877
    8414   case 645:
    8415 
    8416 /* Line 1806 of yacc.c  */
    8417 #line 2499 "parser.yy"
    8418     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8419     break;
    8420 
    8421   case 646:
    8422 
    8423 /* Line 1806 of yacc.c  */
    8424 #line 2501 "parser.yy"
     8878  case 701:
     8879
     8880/* Line 1806 of yacc.c  */
     8881#line 2671 "parser.yy"
     8882    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8883    break;
     8884
     8885  case 702:
     8886
     8887/* Line 1806 of yacc.c  */
     8888#line 2673 "parser.yy"
     8889    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8890    break;
     8891
     8892  case 703:
     8893
     8894/* Line 1806 of yacc.c  */
     8895#line 2678 "parser.yy"
    84258896    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84268897    break;
    84278898
    8428   case 648:
    8429 
    8430 /* Line 1806 of yacc.c  */
    8431 #line 2516 "parser.yy"
    8432     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8433     break;
    8434 
    8435   case 649:
    8436 
    8437 /* Line 1806 of yacc.c  */
    8438 #line 2518 "parser.yy"
    8439     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8440     break;
    8441 
    8442   case 650:
    8443 
    8444 /* Line 1806 of yacc.c  */
    8445 #line 2523 "parser.yy"
    8446     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8447     break;
    8448 
    8449   case 651:
    8450 
    8451 /* Line 1806 of yacc.c  */
    8452 #line 2525 "parser.yy"
    8453     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8454     break;
    8455 
    8456   case 652:
    8457 
    8458 /* Line 1806 of yacc.c  */
    8459 #line 2527 "parser.yy"
    8460     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8461     break;
    8462 
    8463   case 653:
    8464 
    8465 /* Line 1806 of yacc.c  */
    8466 #line 2529 "parser.yy"
    8467     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8468     break;
    8469 
    8470   case 654:
    8471 
    8472 /* Line 1806 of yacc.c  */
    8473 #line 2531 "parser.yy"
     8899  case 704:
     8900
     8901/* Line 1806 of yacc.c  */
     8902#line 2680 "parser.yy"
    84748903    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84758904    break;
    84768905
    8477   case 656:
    8478 
    8479 /* Line 1806 of yacc.c  */
    8480 #line 2537 "parser.yy"
    8481     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8482     break;
    8483 
    8484   case 657:
    8485 
    8486 /* Line 1806 of yacc.c  */
    8487 #line 2539 "parser.yy"
    8488     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8489     break;
    8490 
    8491   case 658:
    8492 
    8493 /* Line 1806 of yacc.c  */
    8494 #line 2541 "parser.yy"
    8495     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8496     break;
    8497 
    8498   case 659:
    8499 
    8500 /* Line 1806 of yacc.c  */
    8501 #line 2546 "parser.yy"
    8502     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    8503     break;
    8504 
    8505   case 660:
    8506 
    8507 /* Line 1806 of yacc.c  */
    8508 #line 2548 "parser.yy"
    8509     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8510     break;
    8511 
    8512   case 661:
    8513 
    8514 /* Line 1806 of yacc.c  */
    8515 #line 2550 "parser.yy"
    8516     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8517     break;
    8518 
    8519   case 662:
    8520 
    8521 /* Line 1806 of yacc.c  */
    8522 #line 2556 "parser.yy"
    8523     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8524     break;
    8525 
    8526   case 663:
    8527 
    8528 /* Line 1806 of yacc.c  */
    8529 #line 2558 "parser.yy"
    8530     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8531     break;
    8532 
    8533   case 665:
    8534 
    8535 /* Line 1806 of yacc.c  */
    8536 #line 2564 "parser.yy"
    8537     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8538     break;
    8539 
    8540   case 666:
    8541 
    8542 /* Line 1806 of yacc.c  */
    8543 #line 2566 "parser.yy"
    8544     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8545     break;
    8546 
    8547   case 667:
    8548 
    8549 /* Line 1806 of yacc.c  */
    8550 #line 2568 "parser.yy"
    8551     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8552     break;
    8553 
    8554   case 668:
    8555 
    8556 /* Line 1806 of yacc.c  */
    8557 #line 2570 "parser.yy"
    8558     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8559     break;
    8560 
    8561   case 670:
    8562 
    8563 /* Line 1806 of yacc.c  */
    8564 #line 2585 "parser.yy"
    8565     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8566     break;
    8567 
    8568   case 671:
    8569 
    8570 /* Line 1806 of yacc.c  */
    8571 #line 2587 "parser.yy"
    8572     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8573     break;
    8574 
    8575   case 672:
    8576 
    8577 /* Line 1806 of yacc.c  */
    8578 #line 2592 "parser.yy"
    8579     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8580     break;
    8581 
    8582   case 673:
    8583 
    8584 /* Line 1806 of yacc.c  */
    8585 #line 2594 "parser.yy"
    8586     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8587     break;
    8588 
    8589   case 674:
    8590 
    8591 /* Line 1806 of yacc.c  */
    8592 #line 2596 "parser.yy"
    8593     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8594     break;
    8595 
    8596   case 675:
    8597 
    8598 /* Line 1806 of yacc.c  */
    8599 #line 2598 "parser.yy"
    8600     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8601     break;
    8602 
    8603   case 676:
    8604 
    8605 /* Line 1806 of yacc.c  */
    8606 #line 2600 "parser.yy"
    8607     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8608     break;
    8609 
    8610   case 678:
    8611 
    8612 /* Line 1806 of yacc.c  */
    8613 #line 2606 "parser.yy"
    8614     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8615     break;
    8616 
    8617   case 679:
    8618 
    8619 /* Line 1806 of yacc.c  */
    8620 #line 2608 "parser.yy"
    8621     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8622     break;
    8623 
    8624   case 680:
    8625 
    8626 /* Line 1806 of yacc.c  */
    8627 #line 2610 "parser.yy"
    8628     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8629     break;
    8630 
    8631   case 681:
    8632 
    8633 /* Line 1806 of yacc.c  */
    8634 #line 2615 "parser.yy"
    8635     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    8636     break;
    8637 
    8638   case 682:
    8639 
    8640 /* Line 1806 of yacc.c  */
    8641 #line 2617 "parser.yy"
    8642     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8643     break;
    8644 
    8645   case 683:
    8646 
    8647 /* Line 1806 of yacc.c  */
    8648 #line 2619 "parser.yy"
    8649     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8650     break;
    8651 
    8652   case 685:
    8653 
    8654 /* Line 1806 of yacc.c  */
    8655 #line 2626 "parser.yy"
    8656     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8657     break;
    8658 
    8659   case 687:
    8660 
    8661 /* Line 1806 of yacc.c  */
    8662 #line 2637 "parser.yy"
    8663     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8664     break;
    8665 
    8666   case 688:
    8667 
    8668 /* Line 1806 of yacc.c  */
    8669 #line 2640 "parser.yy"
     8906  case 707:
     8907
     8908/* Line 1806 of yacc.c  */
     8909#line 2690 "parser.yy"
     8910    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8911    break;
     8912
     8913  case 710:
     8914
     8915/* Line 1806 of yacc.c  */
     8916#line 2700 "parser.yy"
     8917    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8918    break;
     8919
     8920  case 711:
     8921
     8922/* Line 1806 of yacc.c  */
     8923#line 2702 "parser.yy"
     8924    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8925    break;
     8926
     8927  case 712:
     8928
     8929/* Line 1806 of yacc.c  */
     8930#line 2704 "parser.yy"
     8931    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8932    break;
     8933
     8934  case 713:
     8935
     8936/* Line 1806 of yacc.c  */
     8937#line 2706 "parser.yy"
     8938    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8939    break;
     8940
     8941  case 714:
     8942
     8943/* Line 1806 of yacc.c  */
     8944#line 2708 "parser.yy"
     8945    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8946    break;
     8947
     8948  case 715:
     8949
     8950/* Line 1806 of yacc.c  */
     8951#line 2710 "parser.yy"
     8952    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8953    break;
     8954
     8955  case 716:
     8956
     8957/* Line 1806 of yacc.c  */
     8958#line 2717 "parser.yy"
     8959    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8960    break;
     8961
     8962  case 717:
     8963
     8964/* Line 1806 of yacc.c  */
     8965#line 2719 "parser.yy"
     8966    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8967    break;
     8968
     8969  case 718:
     8970
     8971/* Line 1806 of yacc.c  */
     8972#line 2721 "parser.yy"
     8973    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8974    break;
     8975
     8976  case 719:
     8977
     8978/* Line 1806 of yacc.c  */
     8979#line 2723 "parser.yy"
     8980    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8981    break;
     8982
     8983  case 720:
     8984
     8985/* Line 1806 of yacc.c  */
     8986#line 2725 "parser.yy"
     8987    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8988    break;
     8989
     8990  case 721:
     8991
     8992/* Line 1806 of yacc.c  */
     8993#line 2728 "parser.yy"
     8994    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8995    break;
     8996
     8997  case 722:
     8998
     8999/* Line 1806 of yacc.c  */
     9000#line 2730 "parser.yy"
     9001    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9002    break;
     9003
     9004  case 723:
     9005
     9006/* Line 1806 of yacc.c  */
     9007#line 2732 "parser.yy"
     9008    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9009    break;
     9010
     9011  case 724:
     9012
     9013/* Line 1806 of yacc.c  */
     9014#line 2734 "parser.yy"
     9015    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9016    break;
     9017
     9018  case 725:
     9019
     9020/* Line 1806 of yacc.c  */
     9021#line 2736 "parser.yy"
     9022    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9023    break;
     9024
     9025  case 726:
     9026
     9027/* Line 1806 of yacc.c  */
     9028#line 2741 "parser.yy"
    86709029    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    86719030    break;
    86729031
    8673   case 689:
    8674 
    8675 /* Line 1806 of yacc.c  */
    8676 #line 2642 "parser.yy"
    8677     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8678     break;
    8679 
    8680   case 690:
    8681 
    8682 /* Line 1806 of yacc.c  */
    8683 #line 2645 "parser.yy"
     9032  case 727:
     9033
     9034/* Line 1806 of yacc.c  */
     9035#line 2743 "parser.yy"
    86849036    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    86859037    break;
    86869038
    8687   case 691:
    8688 
    8689 /* Line 1806 of yacc.c  */
    8690 #line 2647 "parser.yy"
    8691     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8692     break;
    8693 
    8694   case 692:
    8695 
    8696 /* Line 1806 of yacc.c  */
    8697 #line 2649 "parser.yy"
    8698     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8699     break;
    8700 
    8701   case 694:
    8702 
    8703 /* Line 1806 of yacc.c  */
    8704 #line 2663 "parser.yy"
    8705     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8706     break;
    8707 
    8708   case 695:
    8709 
    8710 /* Line 1806 of yacc.c  */
    8711 #line 2665 "parser.yy"
    8712     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8713     break;
    8714 
    8715   case 696:
    8716 
    8717 /* Line 1806 of yacc.c  */
    8718 #line 2670 "parser.yy"
    8719     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8720     break;
    8721 
    8722   case 697:
    8723 
    8724 /* Line 1806 of yacc.c  */
    8725 #line 2672 "parser.yy"
    8726     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8727     break;
    8728 
    8729   case 698:
    8730 
    8731 /* Line 1806 of yacc.c  */
    8732 #line 2674 "parser.yy"
    8733     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8734     break;
    8735 
    8736   case 699:
    8737 
    8738 /* Line 1806 of yacc.c  */
    8739 #line 2676 "parser.yy"
    8740     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8741     break;
    8742 
    8743   case 700:
    8744 
    8745 /* Line 1806 of yacc.c  */
    8746 #line 2678 "parser.yy"
    8747     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8748     break;
    8749 
    8750   case 702:
    8751 
    8752 /* Line 1806 of yacc.c  */
    8753 #line 2684 "parser.yy"
    8754     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8755     break;
    8756 
    8757   case 703:
    8758 
    8759 /* Line 1806 of yacc.c  */
    8760 #line 2686 "parser.yy"
    8761     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8762     break;
    8763 
    8764   case 704:
    8765 
    8766 /* Line 1806 of yacc.c  */
    8767 #line 2688 "parser.yy"
    8768     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8769     break;
    8770 
    8771   case 705:
    8772 
    8773 /* Line 1806 of yacc.c  */
    8774 #line 2693 "parser.yy"
    8775     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8776     break;
    8777 
    8778   case 706:
    8779 
    8780 /* Line 1806 of yacc.c  */
    8781 #line 2695 "parser.yy"
    8782     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8783     break;
    8784 
    8785   case 709:
    8786 
    8787 /* Line 1806 of yacc.c  */
    8788 #line 2705 "parser.yy"
     9039  case 728:
     9040
     9041/* Line 1806 of yacc.c  */
     9042#line 2748 "parser.yy"
     9043    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     9044    break;
     9045
     9046  case 729:
     9047
     9048/* Line 1806 of yacc.c  */
     9049#line 2750 "parser.yy"
     9050    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     9051    break;
     9052
     9053  case 731:
     9054
     9055/* Line 1806 of yacc.c  */
     9056#line 2777 "parser.yy"
    87899057    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    87909058    break;
    87919059
    8792   case 712:
    8793 
    8794 /* Line 1806 of yacc.c  */
    8795 #line 2715 "parser.yy"
     9060  case 735:
     9061
     9062/* Line 1806 of yacc.c  */
     9063#line 2788 "parser.yy"
    87969064    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87979065    break;
    87989066
    8799   case 713:
    8800 
    8801 /* Line 1806 of yacc.c  */
    8802 #line 2717 "parser.yy"
     9067  case 736:
     9068
     9069/* Line 1806 of yacc.c  */
     9070#line 2790 "parser.yy"
    88039071    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88049072    break;
    88059073
    8806   case 714:
    8807 
    8808 /* Line 1806 of yacc.c  */
    8809 #line 2719 "parser.yy"
     9074  case 737:
     9075
     9076/* Line 1806 of yacc.c  */
     9077#line 2792 "parser.yy"
    88109078    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88119079    break;
    88129080
    8813   case 715:
    8814 
    8815 /* Line 1806 of yacc.c  */
    8816 #line 2721 "parser.yy"
     9081  case 738:
     9082
     9083/* Line 1806 of yacc.c  */
     9084#line 2794 "parser.yy"
    88179085    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88189086    break;
    88199087
    8820   case 716:
    8821 
    8822 /* Line 1806 of yacc.c  */
    8823 #line 2723 "parser.yy"
     9088  case 739:
     9089
     9090/* Line 1806 of yacc.c  */
     9091#line 2796 "parser.yy"
    88249092    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88259093    break;
    88269094
    8827   case 717:
    8828 
    8829 /* Line 1806 of yacc.c  */
    8830 #line 2725 "parser.yy"
     9095  case 740:
     9096
     9097/* Line 1806 of yacc.c  */
     9098#line 2798 "parser.yy"
    88319099    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88329100    break;
    88339101
    8834   case 718:
    8835 
    8836 /* Line 1806 of yacc.c  */
    8837 #line 2732 "parser.yy"
    8838     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8839     break;
    8840 
    8841   case 719:
    8842 
    8843 /* Line 1806 of yacc.c  */
    8844 #line 2734 "parser.yy"
     9102  case 741:
     9103
     9104/* Line 1806 of yacc.c  */
     9105#line 2805 "parser.yy"
     9106    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9107    break;
     9108
     9109  case 742:
     9110
     9111/* Line 1806 of yacc.c  */
     9112#line 2807 "parser.yy"
     9113    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9114    break;
     9115
     9116  case 743:
     9117
     9118/* Line 1806 of yacc.c  */
     9119#line 2809 "parser.yy"
    88459120    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88469121    break;
    88479122
    8848   case 720:
    8849 
    8850 /* Line 1806 of yacc.c  */
    8851 #line 2736 "parser.yy"
    8852     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8853     break;
    8854 
    8855   case 721:
    8856 
    8857 /* Line 1806 of yacc.c  */
    8858 #line 2738 "parser.yy"
    8859     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8860     break;
    8861 
    8862   case 722:
    8863 
    8864 /* Line 1806 of yacc.c  */
    8865 #line 2740 "parser.yy"
     9123  case 744:
     9124
     9125/* Line 1806 of yacc.c  */
     9126#line 2811 "parser.yy"
     9127    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9128    break;
     9129
     9130  case 745:
     9131
     9132/* Line 1806 of yacc.c  */
     9133#line 2813 "parser.yy"
     9134    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9135    break;
     9136
     9137  case 746:
     9138
     9139/* Line 1806 of yacc.c  */
     9140#line 2815 "parser.yy"
    88669141    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88679142    break;
    88689143
    8869   case 723:
    8870 
    8871 /* Line 1806 of yacc.c  */
    8872 #line 2743 "parser.yy"
    8873     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8874     break;
    8875 
    8876   case 724:
    8877 
    8878 /* Line 1806 of yacc.c  */
    8879 #line 2745 "parser.yy"
    8880     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8881     break;
    8882 
    8883   case 725:
    8884 
    8885 /* Line 1806 of yacc.c  */
    8886 #line 2747 "parser.yy"
    8887     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8888     break;
    8889 
    8890   case 726:
    8891 
    8892 /* Line 1806 of yacc.c  */
    8893 #line 2749 "parser.yy"
    8894     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8895     break;
    8896 
    8897   case 727:
    8898 
    8899 /* Line 1806 of yacc.c  */
    8900 #line 2751 "parser.yy"
    8901     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8902     break;
    8903 
    8904   case 728:
    8905 
    8906 /* Line 1806 of yacc.c  */
    8907 #line 2756 "parser.yy"
    8908     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8909     break;
    8910 
    8911   case 729:
    8912 
    8913 /* Line 1806 of yacc.c  */
    8914 #line 2758 "parser.yy"
    8915     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8916     break;
    8917 
    8918   case 730:
    8919 
    8920 /* Line 1806 of yacc.c  */
    8921 #line 2763 "parser.yy"
    8922     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    8923     break;
    8924 
    8925   case 731:
    8926 
    8927 /* Line 1806 of yacc.c  */
    8928 #line 2765 "parser.yy"
    8929     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    8930     break;
    8931 
    8932   case 733:
    8933 
    8934 /* Line 1806 of yacc.c  */
    8935 #line 2792 "parser.yy"
    8936     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8937     break;
    8938 
    8939   case 737:
    8940 
    8941 /* Line 1806 of yacc.c  */
    8942 #line 2803 "parser.yy"
    8943     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8944     break;
    8945 
    8946   case 738:
    8947 
    8948 /* Line 1806 of yacc.c  */
    8949 #line 2805 "parser.yy"
    8950     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8951     break;
    8952 
    8953   case 739:
    8954 
    8955 /* Line 1806 of yacc.c  */
    8956 #line 2807 "parser.yy"
    8957     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8958     break;
    8959 
    8960   case 740:
    8961 
    8962 /* Line 1806 of yacc.c  */
    8963 #line 2809 "parser.yy"
    8964     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8965     break;
    8966 
    8967   case 741:
    8968 
    8969 /* Line 1806 of yacc.c  */
    8970 #line 2811 "parser.yy"
    8971     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8972     break;
    8973 
    8974   case 742:
    8975 
    8976 /* Line 1806 of yacc.c  */
    8977 #line 2813 "parser.yy"
    8978     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8979     break;
    8980 
    8981   case 743:
     9144  case 747:
    89829145
    89839146/* Line 1806 of yacc.c  */
    89849147#line 2820 "parser.yy"
    8985     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    8986     break;
    8987 
    8988   case 744:
    8989 
    8990 /* Line 1806 of yacc.c  */
    8991 #line 2822 "parser.yy"
    8992     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    8993     break;
    8994 
    8995   case 745:
    8996 
    8997 /* Line 1806 of yacc.c  */
    8998 #line 2824 "parser.yy"
    8999     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9000     break;
    9001 
    9002   case 746:
    9003 
    9004 /* Line 1806 of yacc.c  */
    9005 #line 2826 "parser.yy"
    9006     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9007     break;
    9008 
    9009   case 747:
    9010 
    9011 /* Line 1806 of yacc.c  */
    9012 #line 2828 "parser.yy"
    9013     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9148    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    90149149    break;
    90159150
     
    90179152
    90189153/* Line 1806 of yacc.c  */
    9019 #line 2830 "parser.yy"
    9020     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9154#line 2825 "parser.yy"
     9155    { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    90219156    break;
    90229157
     
    90249159
    90259160/* Line 1806 of yacc.c  */
    9026 #line 2835 "parser.yy"
    9027     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9161#line 2827 "parser.yy"
     9162    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    90289163    break;
    90299164
     
    90319166
    90329167/* Line 1806 of yacc.c  */
    9033 #line 2842 "parser.yy"
     9168#line 2829 "parser.yy"
    90349169    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    90359170    break;
    90369171
    9037   case 751:
    9038 
    9039 /* Line 1806 of yacc.c  */
    9040 #line 2844 "parser.yy"
    9041     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     9172  case 753:
     9173
     9174/* Line 1806 of yacc.c  */
     9175#line 2853 "parser.yy"
     9176    { (yyval.en) = 0; }
    90429177    break;
    90439178
     
    90459180
    90469181/* Line 1806 of yacc.c  */
    9047 #line 2868 "parser.yy"
    9048     { (yyval.en) = 0; }
    9049     break;
    9050 
    9051   case 755:
    9052 
    9053 /* Line 1806 of yacc.c  */
    9054 #line 2870 "parser.yy"
     9182#line 2855 "parser.yy"
    90559183    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    90569184    break;
     
    90599187
    90609188/* Line 1806 of yacc.c  */
    9061 #line 9062 "Parser/parser.cc"
     9189#line 9190 "Parser/parser.cc"
    90629190      default: break;
    90639191    }
     
    92909418
    92919419/* Line 2067 of yacc.c  */
    9292 #line 2873 "parser.yy"
     9420#line 2858 "parser.yy"
    92939421
    92949422// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.