Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r3cfe27f rbd85400  
    7777#include <cstdio>
    7878#include <stack>
     79#include "TypedefTable.h"
    7980#include "lex.h"
    80 #include "parser.h"
    8181#include "ParseNode.h"
    82 #include "TypedefTable.h"
    8382#include "TypeData.h"
    8483#include "LinkageSpec.h"
     
    9190
    9291/* Line 268 of yacc.c  */
    93 #line 94 "Parser/parser.cc"
     92#line 93 "Parser/parser.cc"
    9493
    9594/* Enabling traces.  */
     
    139138     SIGNED = 277,
    140139     UNSIGNED = 278,
    141      VALIST = 279,
    142      BOOL = 280,
    143      COMPLEX = 281,
    144      IMAGINARY = 282,
    145      TYPEOF = 283,
    146      LABEL = 284,
    147      ENUM = 285,
    148      STRUCT = 286,
    149      UNION = 287,
    150      OTYPE = 288,
    151      FTYPE = 289,
    152      DTYPE = 290,
    153      TRAIT = 291,
    154      SIZEOF = 292,
    155      OFFSETOF = 293,
    156      ATTRIBUTE = 294,
    157      EXTENSION = 295,
    158      IF = 296,
    159      ELSE = 297,
    160      SWITCH = 298,
    161      CASE = 299,
    162      DEFAULT = 300,
    163      DO = 301,
    164      WHILE = 302,
    165      FOR = 303,
    166      BREAK = 304,
    167      CONTINUE = 305,
    168      GOTO = 306,
    169      RETURN = 307,
    170      CHOOSE = 308,
    171      DISABLE = 309,
    172      ENABLE = 310,
    173      FALLTHRU = 311,
    174      TRY = 312,
    175      CATCH = 313,
    176      CATCHRESUME = 314,
    177      FINALLY = 315,
    178      THROW = 316,
    179      THROWRESUME = 317,
    180      AT = 318,
    181      ASM = 319,
    182      ALIGNAS = 320,
    183      ALIGNOF = 321,
    184      ATOMIC = 322,
    185      GENERIC = 323,
    186      NORETURN = 324,
    187      STATICASSERT = 325,
    188      THREADLOCAL = 326,
    189      IDENTIFIER = 327,
    190      QUOTED_IDENTIFIER = 328,
    191      TYPEDEFname = 329,
    192      TYPEGENname = 330,
    193      ATTR_IDENTIFIER = 331,
    194      ATTR_TYPEDEFname = 332,
    195      ATTR_TYPEGENname = 333,
    196      INTEGERconstant = 334,
    197      FLOATINGconstant = 335,
    198      CHARACTERconstant = 336,
    199      STRINGliteral = 337,
    200      ZERO = 338,
    201      ONE = 339,
    202      ARROW = 340,
    203      ICR = 341,
    204      DECR = 342,
    205      LS = 343,
    206      RS = 344,
    207      LE = 345,
    208      GE = 346,
    209      EQ = 347,
    210      NE = 348,
    211      ANDAND = 349,
    212      OROR = 350,
    213      ELLIPSIS = 351,
    214      MULTassign = 352,
    215      DIVassign = 353,
    216      MODassign = 354,
    217      PLUSassign = 355,
    218      MINUSassign = 356,
    219      LSassign = 357,
    220      RSassign = 358,
    221      ANDassign = 359,
    222      ERassign = 360,
    223      ORassign = 361,
    224      ATassign = 362,
    225      THEN = 363
     140     BOOL = 279,
     141     COMPLEX = 280,
     142     IMAGINARY = 281,
     143     TYPEOF = 282,
     144     LABEL = 283,
     145     ENUM = 284,
     146     STRUCT = 285,
     147     UNION = 286,
     148     TYPE = 287,
     149     FTYPE = 288,
     150     DTYPE = 289,
     151     CONTEXT = 290,
     152     SIZEOF = 291,
     153     OFFSETOF = 292,
     154     ATTRIBUTE = 293,
     155     EXTENSION = 294,
     156     IF = 295,
     157     ELSE = 296,
     158     SWITCH = 297,
     159     CASE = 298,
     160     DEFAULT = 299,
     161     DO = 300,
     162     WHILE = 301,
     163     FOR = 302,
     164     BREAK = 303,
     165     CONTINUE = 304,
     166     GOTO = 305,
     167     RETURN = 306,
     168     CHOOSE = 307,
     169     DISABLE = 308,
     170     ENABLE = 309,
     171     FALLTHRU = 310,
     172     TRY = 311,
     173     CATCH = 312,
     174     CATCHRESUME = 313,
     175     FINALLY = 314,
     176     THROW = 315,
     177     THROWRESUME = 316,
     178     AT = 317,
     179     ASM = 318,
     180     ALIGNAS = 319,
     181     ALIGNOF = 320,
     182     ATOMIC = 321,
     183     GENERIC = 322,
     184     NORETURN = 323,
     185     STATICASSERT = 324,
     186     THREADLOCAL = 325,
     187     IDENTIFIER = 326,
     188     QUOTED_IDENTIFIER = 327,
     189     TYPEDEFname = 328,
     190     TYPEGENname = 329,
     191     ATTR_IDENTIFIER = 330,
     192     ATTR_TYPEDEFname = 331,
     193     ATTR_TYPEGENname = 332,
     194     INTEGERconstant = 333,
     195     FLOATINGconstant = 334,
     196     CHARACTERconstant = 335,
     197     STRINGliteral = 336,
     198     ZERO = 337,
     199     ONE = 338,
     200     ARROW = 339,
     201     ICR = 340,
     202     DECR = 341,
     203     LS = 342,
     204     RS = 343,
     205     LE = 344,
     206     GE = 345,
     207     EQ = 346,
     208     NE = 347,
     209     ANDAND = 348,
     210     OROR = 349,
     211     ELLIPSIS = 350,
     212     MULTassign = 351,
     213     DIVassign = 352,
     214     MODassign = 353,
     215     PLUSassign = 354,
     216     MINUSassign = 355,
     217     LSassign = 356,
     218     RSassign = 357,
     219     ANDassign = 358,
     220     ERassign = 359,
     221     ORassign = 360,
     222     ATassign = 361,
     223     THEN = 362
    226224   };
    227225#endif
     
    248246#define SIGNED 277
    249247#define UNSIGNED 278
    250 #define VALIST 279
    251 #define BOOL 280
    252 #define COMPLEX 281
    253 #define IMAGINARY 282
    254 #define TYPEOF 283
    255 #define LABEL 284
    256 #define ENUM 285
    257 #define STRUCT 286
    258 #define UNION 287
    259 #define OTYPE 288
    260 #define FTYPE 289
    261 #define DTYPE 290
    262 #define TRAIT 291
    263 #define SIZEOF 292
    264 #define OFFSETOF 293
    265 #define ATTRIBUTE 294
    266 #define EXTENSION 295
    267 #define IF 296
    268 #define ELSE 297
    269 #define SWITCH 298
    270 #define CASE 299
    271 #define DEFAULT 300
    272 #define DO 301
    273 #define WHILE 302
    274 #define FOR 303
    275 #define BREAK 304
    276 #define CONTINUE 305
    277 #define GOTO 306
    278 #define RETURN 307
    279 #define CHOOSE 308
    280 #define DISABLE 309
    281 #define ENABLE 310
    282 #define FALLTHRU 311
    283 #define TRY 312
    284 #define CATCH 313
    285 #define CATCHRESUME 314
    286 #define FINALLY 315
    287 #define THROW 316
    288 #define THROWRESUME 317
    289 #define AT 318
    290 #define ASM 319
    291 #define ALIGNAS 320
    292 #define ALIGNOF 321
    293 #define ATOMIC 322
    294 #define GENERIC 323
    295 #define NORETURN 324
    296 #define STATICASSERT 325
    297 #define THREADLOCAL 326
    298 #define IDENTIFIER 327
    299 #define QUOTED_IDENTIFIER 328
    300 #define TYPEDEFname 329
    301 #define TYPEGENname 330
    302 #define ATTR_IDENTIFIER 331
    303 #define ATTR_TYPEDEFname 332
    304 #define ATTR_TYPEGENname 333
    305 #define INTEGERconstant 334
    306 #define FLOATINGconstant 335
    307 #define CHARACTERconstant 336
    308 #define STRINGliteral 337
    309 #define ZERO 338
    310 #define ONE 339
    311 #define ARROW 340
    312 #define ICR 341
    313 #define DECR 342
    314 #define LS 343
    315 #define RS 344
    316 #define LE 345
    317 #define GE 346
    318 #define EQ 347
    319 #define NE 348
    320 #define ANDAND 349
    321 #define OROR 350
    322 #define ELLIPSIS 351
    323 #define MULTassign 352
    324 #define DIVassign 353
    325 #define MODassign 354
    326 #define PLUSassign 355
    327 #define MINUSassign 356
    328 #define LSassign 357
    329 #define RSassign 358
    330 #define ANDassign 359
    331 #define ERassign 360
    332 #define ORassign 361
    333 #define ATassign 362
    334 #define THEN 363
     248#define BOOL 279
     249#define COMPLEX 280
     250#define IMAGINARY 281
     251#define TYPEOF 282
     252#define LABEL 283
     253#define ENUM 284
     254#define STRUCT 285
     255#define UNION 286
     256#define TYPE 287
     257#define FTYPE 288
     258#define DTYPE 289
     259#define CONTEXT 290
     260#define SIZEOF 291
     261#define OFFSETOF 292
     262#define ATTRIBUTE 293
     263#define EXTENSION 294
     264#define IF 295
     265#define ELSE 296
     266#define SWITCH 297
     267#define CASE 298
     268#define DEFAULT 299
     269#define DO 300
     270#define WHILE 301
     271#define FOR 302
     272#define BREAK 303
     273#define CONTINUE 304
     274#define GOTO 305
     275#define RETURN 306
     276#define CHOOSE 307
     277#define DISABLE 308
     278#define ENABLE 309
     279#define FALLTHRU 310
     280#define TRY 311
     281#define CATCH 312
     282#define CATCHRESUME 313
     283#define FINALLY 314
     284#define THROW 315
     285#define THROWRESUME 316
     286#define AT 317
     287#define ASM 318
     288#define ALIGNAS 319
     289#define ALIGNOF 320
     290#define ATOMIC 321
     291#define GENERIC 322
     292#define NORETURN 323
     293#define STATICASSERT 324
     294#define THREADLOCAL 325
     295#define IDENTIFIER 326
     296#define QUOTED_IDENTIFIER 327
     297#define TYPEDEFname 328
     298#define TYPEGENname 329
     299#define ATTR_IDENTIFIER 330
     300#define ATTR_TYPEDEFname 331
     301#define ATTR_TYPEGENname 332
     302#define INTEGERconstant 333
     303#define FLOATINGconstant 334
     304#define CHARACTERconstant 335
     305#define STRINGliteral 336
     306#define ZERO 337
     307#define ONE 338
     308#define ARROW 339
     309#define ICR 340
     310#define DECR 341
     311#define LS 342
     312#define RS 343
     313#define LE 344
     314#define GE 345
     315#define EQ 346
     316#define NE 347
     317#define ANDAND 348
     318#define OROR 349
     319#define ELLIPSIS 350
     320#define MULTassign 351
     321#define DIVassign 352
     322#define MODassign 353
     323#define PLUSassign 354
     324#define MINUSassign 355
     325#define LSassign 356
     326#define RSassign 357
     327#define ANDassign 358
     328#define ERassign 359
     329#define ORassign 360
     330#define ATassign 361
     331#define THEN 362
    335332
    336333
     
    342339
    343340/* Line 293 of yacc.c  */
    344 #line 112 "parser.yy"
     341#line 110 "parser.yy"
    345342
    346343        Token tok;
     
    359356
    360357/* Line 293 of yacc.c  */
    361 #line 362 "Parser/parser.cc"
     358#line 359 "Parser/parser.cc"
    362359} YYSTYPE;
    363360# define YYSTYPE_IS_TRIVIAL 1
     
    371368
    372369/* Line 343 of yacc.c  */
    373 #line 374 "Parser/parser.cc"
     370#line 371 "Parser/parser.cc"
    374371
    375372#ifdef short
     
    588585
    589586/* YYFINAL -- State number of the termination state.  */
    590 #define YYFINAL  249
     587#define YYFINAL  248
    591588/* YYLAST -- Last index in YYTABLE.  */
    592 #define YYLAST   11290
     589#define YYLAST   11042
    593590
    594591/* YYNTOKENS -- Number of terminals.  */
    595 #define YYNTOKENS  133
     592#define YYNTOKENS  132
    596593/* YYNNTS -- Number of nonterminals.  */
    597594#define YYNNTS  238
    598595/* YYNRULES -- Number of rules.  */
    599 #define YYNRULES  752
     596#define YYNRULES  751
    600597/* YYNRULES -- Number of states.  */
    601 #define YYNSTATES  1579
     598#define YYNSTATES  1578
    602599
    603600/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    604601#define YYUNDEFTOK  2
    605 #define YYMAXUTOK   363
     602#define YYMAXUTOK   362
    606603
    607604#define YYTRANSLATE(YYX)                                                \
     
    614611       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    615612       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    616        2,     2,     2,   118,     2,     2,     2,   125,   120,     2,
    617      109,   110,   119,   121,   116,   122,   113,   124,     2,     2,
    618        2,     2,     2,     2,     2,     2,     2,     2,   117,   132,
    619      126,   131,   127,   130,     2,     2,     2,     2,     2,     2,
     613       2,     2,     2,   117,     2,     2,     2,   124,   119,     2,
     614     108,   109,   118,   120,   115,   121,   112,   123,     2,     2,
     615       2,     2,     2,     2,     2,     2,     2,     2,   116,   131,
     616     125,   130,   126,   129,     2,     2,     2,     2,     2,     2,
    620617       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    621618       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    622        2,   111,     2,   112,   128,     2,     2,     2,     2,     2,
     619       2,   110,     2,   111,   127,     2,     2,     2,     2,     2,
    623620       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    624621       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    625        2,     2,     2,   114,   129,   115,   123,     2,     2,     2,
     622       2,     2,     2,   113,   128,   114,   122,     2,     2,     2,
    626623       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    627624       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    647644      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    648645      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    649      105,   106,   107,   108
     646     105,   106,   107
    650647};
    651648
     
    688685    1156,  1158,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
    689686    1177,  1179,  1181,  1183,  1185,  1187,  1189,  1191,  1193,  1195,
    690     1197,  1199,  1201,  1203,  1205,  1207,  1210,  1213,  1217,  1221,
    691     1223,  1227,  1229,  1232,  1235,  1238,  1243,  1248,  1253,  1258,
    692     1260,  1263,  1266,  1270,  1272,  1275,  1278,  1280,  1283,  1286,
    693     1290,  1292,  1295,  1298,  1300,  1302,  1307,  1310,  1316,  1324,
    694     1327,  1330,  1333,  1335,  1338,  1341,  1345,  1348,  1352,  1354,
    695     1357,  1361,  1364,  1367,  1372,  1373,  1375,  1378,  1381,  1383,
    696     1384,  1386,  1389,  1392,  1398,  1405,  1408,  1411,  1416,  1417,
    697     1420,  1421,  1423,  1425,  1427,  1433,  1439,  1445,  1447,  1453,
    698     1459,  1469,  1471,  1477,  1478,  1480,  1482,  1488,  1490,  1492,
    699     1498,  1504,  1506,  1510,  1514,  1519,  1521,  1523,  1525,  1527,
    700     1530,  1532,  1536,  1540,  1542,  1545,  1547,  1551,  1553,  1555,
    701     1557,  1559,  1561,  1563,  1565,  1567,  1569,  1571,  1573,  1576,
    702     1578,  1580,  1582,  1585,  1586,  1589,  1592,  1594,  1599,  1600,
    703     1602,  1605,  1609,  1614,  1617,  1620,  1622,  1625,  1627,  1630,
    704     1636,  1642,  1650,  1657,  1659,  1662,  1665,  1669,  1671,  1674,
    705     1677,  1682,  1685,  1690,  1691,  1696,  1699,  1701,  1703,  1705,
    706     1706,  1709,  1715,  1721,  1735,  1737,  1739,  1743,  1747,  1750,
    707     1754,  1758,  1761,  1766,  1768,  1775,  1785,  1786,  1798,  1800,
    708     1804,  1808,  1812,  1814,  1816,  1822,  1825,  1831,  1832,  1834,
    709     1836,  1840,  1841,  1843,  1845,  1847,  1849,  1850,  1857,  1860,
    710     1862,  1865,  1870,  1873,  1877,  1881,  1885,  1890,  1896,  1902,
    711     1908,  1915,  1917,  1919,  1921,  1925,  1926,  1932,  1933,  1935,
    712     1937,  1940,  1947,  1949,  1953,  1954,  1956,  1961,  1963,  1965,
    713     1967,  1969,  1972,  1974,  1977,  1980,  1982,  1986,  1989,  1993,
    714     1997,  2000,  2005,  2010,  2014,  2023,  2027,  2030,  2032,  2035,
    715     2042,  2051,  2055,  2058,  2062,  2066,  2071,  2076,  2080,  2082,
    716     2084,  2086,  2091,  2098,  2102,  2105,  2109,  2113,  2118,  2123,
    717     2127,  2130,  2132,  2135,  2138,  2140,  2144,  2147,  2151,  2155,
    718     2158,  2163,  2168,  2172,  2179,  2188,  2192,  2195,  2197,  2200,
    719     2203,  2206,  2210,  2214,  2217,  2222,  2227,  2231,  2238,  2247,
    720     2251,  2254,  2256,  2259,  2262,  2264,  2266,  2269,  2273,  2277,
    721     2280,  2285,  2292,  2301,  2303,  2306,  2309,  2311,  2314,  2317,
    722     2321,  2325,  2327,  2332,  2337,  2341,  2347,  2356,  2360,  2363,
    723     2367,  2369,  2375,  2381,  2388,  2395,  2397,  2400,  2403,  2405,
    724     2408,  2411,  2415,  2419,  2421,  2426,  2431,  2435,  2441,  2450,
    725     2454,  2456,  2459,  2461,  2464,  2471,  2477,  2484,  2492,  2500,
    726     2502,  2505,  2508,  2510,  2513,  2516,  2520,  2524,  2526,  2531,
    727     2536,  2540,  2549,  2553,  2555,  2557,  2560,  2562,  2564,  2567,
    728     2571,  2574,  2578,  2581,  2585,  2589,  2592,  2597,  2601,  2604,
    729     2608,  2611,  2616,  2620,  2623,  2630,  2637,  2644,  2652,  2654,
    730     2657,  2659,  2661,  2663,  2666,  2670,  2673,  2677,  2680,  2684,
    731     2688,  2693,  2696,  2700,  2705,  2708,  2714,  2720,  2727,  2734,
    732     2735,  2737,  2738
     687    1197,  1199,  1201,  1203,  1205,  1208,  1211,  1215,  1219,  1221,
     688    1225,  1227,  1230,  1233,  1236,  1241,  1246,  1251,  1256,  1258,
     689    1261,  1264,  1268,  1270,  1273,  1276,  1278,  1281,  1284,  1288,
     690    1290,  1293,  1296,  1298,  1300,  1305,  1308,  1314,  1322,  1325,
     691    1328,  1331,  1333,  1336,  1339,  1343,  1346,  1350,  1352,  1355,
     692    1359,  1362,  1365,  1370,  1371,  1373,  1376,  1379,  1381,  1382,
     693    1384,  1387,  1390,  1396,  1403,  1406,  1409,  1414,  1415,  1418,
     694    1419,  1421,  1423,  1425,  1431,  1437,  1443,  1445,  1451,  1457,
     695    1467,  1469,  1475,  1476,  1478,  1480,  1486,  1488,  1490,  1496,
     696    1502,  1504,  1508,  1512,  1517,  1519,  1521,  1523,  1525,  1528,
     697    1530,  1534,  1538,  1540,  1543,  1545,  1549,  1551,  1553,  1555,
     698    1557,  1559,  1561,  1563,  1565,  1567,  1569,  1571,  1574,  1576,
     699    1578,  1580,  1583,  1584,  1587,  1590,  1592,  1597,  1598,  1600,
     700    1603,  1607,  1612,  1615,  1618,  1620,  1623,  1625,  1628,  1634,
     701    1640,  1648,  1655,  1657,  1660,  1663,  1667,  1669,  1672,  1675,
     702    1680,  1683,  1688,  1689,  1694,  1697,  1699,  1701,  1703,  1704,
     703    1707,  1713,  1719,  1733,  1735,  1737,  1741,  1745,  1748,  1752,
     704    1756,  1759,  1764,  1766,  1773,  1783,  1784,  1796,  1798,  1802,
     705    1806,  1810,  1812,  1814,  1820,  1823,  1829,  1830,  1832,  1834,
     706    1838,  1839,  1841,  1843,  1845,  1847,  1848,  1855,  1858,  1860,
     707    1863,  1868,  1871,  1875,  1879,  1883,  1888,  1894,  1900,  1906,
     708    1913,  1915,  1917,  1919,  1923,  1924,  1930,  1931,  1933,  1935,
     709    1938,  1945,  1947,  1951,  1952,  1954,  1959,  1961,  1963,  1965,
     710    1967,  1970,  1972,  1975,  1978,  1980,  1984,  1987,  1991,  1995,
     711    1998,  2003,  2008,  2012,  2021,  2025,  2028,  2030,  2033,  2040,
     712    2049,  2053,  2056,  2060,  2064,  2069,  2074,  2078,  2080,  2082,
     713    2084,  2089,  2096,  2100,  2103,  2107,  2111,  2116,  2121,  2125,
     714    2128,  2130,  2133,  2136,  2138,  2142,  2145,  2149,  2153,  2156,
     715    2161,  2166,  2170,  2177,  2186,  2190,  2193,  2195,  2198,  2201,
     716    2204,  2208,  2212,  2215,  2220,  2225,  2229,  2236,  2245,  2249,
     717    2252,  2254,  2257,  2260,  2262,  2264,  2267,  2271,  2275,  2278,
     718    2283,  2290,  2299,  2301,  2304,  2307,  2309,  2312,  2315,  2319,
     719    2323,  2325,  2330,  2335,  2339,  2345,  2354,  2358,  2361,  2365,
     720    2367,  2373,  2379,  2386,  2393,  2395,  2398,  2401,  2403,  2406,
     721    2409,  2413,  2417,  2419,  2424,  2429,  2433,  2439,  2448,  2452,
     722    2454,  2457,  2459,  2462,  2469,  2475,  2482,  2490,  2498,  2500,
     723    2503,  2506,  2508,  2511,  2514,  2518,  2522,  2524,  2529,  2534,
     724    2538,  2547,  2551,  2553,  2555,  2558,  2560,  2562,  2565,  2569,
     725    2572,  2576,  2579,  2583,  2587,  2590,  2595,  2599,  2602,  2606,
     726    2609,  2614,  2618,  2621,  2628,  2635,  2642,  2650,  2652,  2655,
     727    2657,  2659,  2661,  2664,  2668,  2671,  2675,  2678,  2682,  2686,
     728    2691,  2694,  2698,  2703,  2706,  2712,  2718,  2725,  2732,  2733,
     729    2735,  2736
    733730};
    734731
     
    736733static const yytype_int16 yyrhs[] =
    737734{
    738      299,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
    739       -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
    740       -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,    82,
    741       -1,   141,    82,    -1,    72,    -1,   140,    -1,   109,   168,
    742      110,    -1,   109,   172,   110,    -1,   142,    -1,   143,   111,
    743      134,   163,   135,   112,    -1,   143,   109,   144,   110,    -1,
    744      143,   113,   139,    -1,   143,   113,   111,   134,   146,   135,
    745      112,    -1,   143,    85,   139,    -1,   143,    85,   111,   134,
    746      146,   135,   112,    -1,   143,    86,    -1,   143,    87,    -1,
    747      109,   272,   110,   114,   276,   369,   115,    -1,   143,   114,
    748      144,   115,    -1,   145,    -1,   144,   116,   145,    -1,    -1,
    749      163,    -1,   139,   117,   163,    -1,   111,   134,   163,   135,
    750      112,   117,   163,    -1,   111,   134,   163,   116,   166,   135,
    751      112,   117,   163,    -1,   147,    -1,   146,   116,   147,    -1,
    752      139,    -1,   139,   113,   147,    -1,   139,   113,   111,   134,
    753      146,   135,   112,    -1,   139,    85,   147,    -1,   139,    85,
    754      111,   134,   146,   135,   112,    -1,   143,    -1,   136,    -1,
    755      141,    -1,    86,   148,    -1,    87,   148,    -1,    40,   150,
    756       -1,   149,   150,    -1,   118,   150,    -1,   119,   150,    -1,
    757       37,   148,    -1,    37,   109,   272,   110,    -1,    38,   109,
    758      272,   116,   139,   110,    -1,    76,    -1,    76,   109,   273,
    759      110,    -1,    76,   109,   145,   110,    -1,    66,   148,    -1,
    760       66,   109,   272,   110,    -1,    94,   139,    -1,   120,    -1,
    761      121,    -1,   122,    -1,   123,    -1,   148,    -1,   109,   272,
    762      110,   150,    -1,   109,   272,   110,   165,    -1,   150,    -1,
    763      151,   119,   150,    -1,   151,   124,   150,    -1,   151,   125,
    764      150,    -1,   151,    -1,   152,   121,   151,    -1,   152,   122,
    765      151,    -1,   152,    -1,   153,    88,   152,    -1,   153,    89,
    766      152,    -1,   153,    -1,   154,   126,   153,    -1,   154,   127,
    767      153,    -1,   154,    90,   153,    -1,   154,    91,   153,    -1,
    768      154,    -1,   155,    92,   154,    -1,   155,    93,   154,    -1,
    769      155,    -1,   156,   120,   155,    -1,   156,    -1,   157,   128,
    770      156,    -1,   157,    -1,   158,   129,   157,    -1,   158,    -1,
    771      159,    94,   158,    -1,   159,    -1,   160,    95,   159,    -1,
    772      160,    -1,   160,   130,   168,   117,   161,    -1,   160,   130,
    773      117,   161,    -1,   160,   130,   168,   117,   165,    -1,   161,
    774       -1,   161,    -1,   148,   131,   163,    -1,   148,   167,   163,
    775       -1,   165,   370,    -1,    -1,   163,    -1,   111,   112,    -1,
    776      111,   134,   163,   135,   112,    -1,   111,   134,   116,   166,
    777      135,   112,    -1,   111,   134,   163,   116,   166,   135,   112,
    778       -1,   164,    -1,   166,   116,   164,    -1,    97,    -1,    98,
    779       -1,    99,    -1,   100,    -1,   101,    -1,   102,    -1,   103,
    780       -1,   104,    -1,   105,    -1,   106,    -1,   163,    -1,   168,
    781      116,   163,    -1,    -1,   168,    -1,   171,    -1,   172,    -1,
    782      176,    -1,   177,    -1,   189,    -1,   191,    -1,   192,    -1,
    783      197,    -1,   128,   143,   114,   144,   115,   132,    -1,   139,
    784      117,   309,   170,    -1,   114,   115,    -1,   114,   134,   134,
    785      208,   173,   135,   115,    -1,   174,    -1,   173,   134,   174,
    786       -1,   211,    -1,    40,   211,    -1,   305,    -1,   170,   135,
    787       -1,   170,    -1,   175,   170,    -1,   169,   132,    -1,    41,
    788      109,   168,   110,   170,    -1,    41,   109,   168,   110,   170,
    789       42,   170,    -1,    43,   109,   168,   110,   182,    -1,    43,
    790      109,   168,   110,   114,   134,   204,   183,   115,    -1,    53,
    791      109,   168,   110,   182,    -1,    53,   109,   168,   110,   114,
    792      134,   204,   185,   115,    -1,   162,    -1,   162,    96,   162,
    793       -1,   307,    -1,   178,    -1,   179,   116,   178,    -1,    44,
    794      179,   117,    -1,    45,   117,    -1,   180,    -1,   181,   180,
    795       -1,   181,   170,    -1,    -1,   184,    -1,   181,   175,    -1,
    796      184,   181,   175,    -1,    -1,   186,    -1,   181,   188,    -1,
    797      181,   175,   187,    -1,   186,   181,   188,    -1,   186,   181,
    798      175,   187,    -1,    -1,   188,    -1,    56,    -1,    56,   132,
    799       -1,    47,   109,   168,   110,   170,    -1,    46,   170,    47,
    800      109,   168,   110,   132,    -1,    48,   109,   134,   190,   110,
    801      170,    -1,   169,   135,   132,   169,   132,   169,    -1,   211,
    802      169,   132,   169,    -1,    51,   139,   132,    -1,    51,   119,
    803      168,   132,    -1,    50,   132,    -1,    50,   139,   132,    -1,
    804       49,   132,    -1,    49,   139,   132,    -1,    52,   169,   132,
    805       -1,    61,   164,   132,    -1,    62,   164,   132,    -1,    62,
    806      164,    63,   163,   132,    -1,    57,   172,   193,    -1,    57,
    807      172,   195,    -1,    57,   172,   193,   195,    -1,   194,    -1,
    808       58,   109,    96,   110,   172,    -1,   194,    58,   109,    96,
    809      110,   172,    -1,    59,   109,    96,   110,   172,    -1,   194,
    810       59,   109,    96,   110,   172,    -1,    58,   109,   134,   134,
    811      196,   135,   110,   172,   135,    -1,   194,    58,   109,   134,
    812      134,   196,   135,   110,   172,   135,    -1,    59,   109,   134,
    813      134,   196,   135,   110,   172,   135,    -1,   194,    59,   109,
    814      134,   134,   196,   135,   110,   172,   135,    -1,    60,   172,
    815       -1,   224,    -1,   224,   306,    -1,   224,   354,    -1,   363,
    816      139,    -1,   363,    -1,    64,   198,   109,   141,   110,   132,
    817       -1,    64,   198,   109,   141,   117,   199,   110,   132,    -1,
    818       64,   198,   109,   141,   117,   199,   117,   199,   110,   132,
    819       -1,    64,   198,   109,   141,   117,   199,   117,   199,   117,
    820      202,   110,   132,    -1,    64,   198,    51,   109,   141,   117,
    821      117,   199,   117,   202,   117,   203,   110,   132,    -1,    -1,
    822       11,    -1,    -1,   200,    -1,   201,    -1,   200,   116,   201,
    823       -1,   141,   109,   162,   110,    -1,   111,   162,   112,   141,
    824      109,   162,   110,    -1,    -1,   141,    -1,   202,   116,   141,
    825       -1,   139,    -1,   203,   116,   139,    -1,   135,    -1,   205,
    826       -1,   211,    -1,   205,   134,   211,    -1,   135,    -1,   207,
    827       -1,   221,    -1,   207,   134,   221,    -1,    -1,   209,    -1,
    828       29,   210,   132,    -1,   209,    29,   210,   132,    -1,   271,
    829       -1,   210,   116,   271,    -1,   212,    -1,   221,    -1,   213,
    830      135,   132,    -1,   218,   135,   132,    -1,   215,   135,   132,
    831       -1,   290,   135,   132,    -1,   293,   135,   132,    -1,   214,
    832      274,    -1,   230,   214,   274,    -1,   213,   135,   116,   134,
    833      269,   274,    -1,   364,   269,   308,    -1,   367,   269,   308,
    834       -1,   226,   367,   269,   308,    -1,   216,    -1,   226,   216,
    835       -1,   230,   216,    -1,   230,   226,   216,    -1,   215,   135,
    836      116,   134,   269,    -1,   111,   112,   269,   109,   134,   257,
    837      135,   110,    -1,   367,   269,   109,   134,   257,   135,   110,
    838       -1,   217,   269,   109,   134,   257,   135,   110,    -1,   111,
    839      134,   259,   135,   112,    -1,   111,   134,   259,   135,   116,
    840      134,   260,   135,   112,    -1,     3,   214,    -1,     3,   216,
    841       -1,   218,   135,   116,   134,   139,    -1,     3,   224,   306,
    842       -1,   219,   135,   116,   134,   306,    -1,   226,     3,   224,
    843      306,    -1,   224,     3,   306,    -1,   224,     3,   226,   306,
    844       -1,     3,   139,   131,   163,    -1,   220,   135,   116,   134,
    845      139,   131,   163,    -1,   222,   135,   132,    -1,   219,   135,
    846      132,    -1,   220,   135,   132,    -1,   239,   135,   132,    -1,
    847      223,   306,   308,   274,    -1,   222,   116,   309,   306,   308,
    848      274,    -1,   235,    -1,   239,    -1,   241,    -1,   280,    -1,
    849      236,    -1,   240,    -1,   242,    -1,   281,    -1,    -1,   226,
    850       -1,   227,    -1,   226,   227,    -1,   228,    -1,   311,    -1,
    851       10,    -1,    12,    -1,    11,    -1,    14,    -1,    67,    -1,
    852       -1,    13,   109,   229,   283,   110,    -1,   231,    -1,   226,
    853      231,    -1,   230,   226,   231,    -1,   232,    -1,   231,   232,
    854       -1,   233,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
    855       -1,     8,    -1,     9,    -1,    69,    -1,    71,    -1,    16,
     735     298,     0,    -1,    -1,    -1,    78,    -1,    79,    -1,    80,
     736      -1,    71,    -1,    75,    -1,   139,    -1,    71,    -1,    75,
     737      -1,    71,    -1,   139,    -1,    82,    -1,    83,    -1,    81,
     738      -1,   140,    81,    -1,    71,    -1,   139,    -1,   108,   167,
     739     109,    -1,   108,   171,   109,    -1,   141,    -1,   142,   110,
     740     133,   162,   134,   111,    -1,   142,   108,   143,   109,    -1,
     741     142,   112,   138,    -1,   142,   112,   110,   133,   145,   134,
     742     111,    -1,   142,    84,   138,    -1,   142,    84,   110,   133,
     743     145,   134,   111,    -1,   142,    85,    -1,   142,    86,    -1,
     744     108,   271,   109,   113,   275,   368,   114,    -1,   142,   113,
     745     143,   114,    -1,   144,    -1,   143,   115,   144,    -1,    -1,
     746     162,    -1,   138,   116,   162,    -1,   110,   133,   162,   134,
     747     111,   116,   162,    -1,   110,   133,   162,   115,   165,   134,
     748     111,   116,   162,    -1,   146,    -1,   145,   115,   146,    -1,
     749     138,    -1,   138,   112,   146,    -1,   138,   112,   110,   133,
     750     145,   134,   111,    -1,   138,    84,   146,    -1,   138,    84,
     751     110,   133,   145,   134,   111,    -1,   142,    -1,   135,    -1,
     752     140,    -1,    85,   147,    -1,    86,   147,    -1,    39,   149,
     753      -1,   148,   149,    -1,   117,   149,    -1,   118,   149,    -1,
     754      36,   147,    -1,    36,   108,   271,   109,    -1,    37,   108,
     755     271,   115,   138,   109,    -1,    75,    -1,    75,   108,   272,
     756     109,    -1,    75,   108,   144,   109,    -1,    65,   147,    -1,
     757      65,   108,   271,   109,    -1,    93,   138,    -1,   119,    -1,
     758     120,    -1,   121,    -1,   122,    -1,   147,    -1,   108,   271,
     759     109,   149,    -1,   108,   271,   109,   164,    -1,   149,    -1,
     760     150,   118,   149,    -1,   150,   123,   149,    -1,   150,   124,
     761     149,    -1,   150,    -1,   151,   120,   150,    -1,   151,   121,
     762     150,    -1,   151,    -1,   152,    87,   151,    -1,   152,    88,
     763     151,    -1,   152,    -1,   153,   125,   152,    -1,   153,   126,
     764     152,    -1,   153,    89,   152,    -1,   153,    90,   152,    -1,
     765     153,    -1,   154,    91,   153,    -1,   154,    92,   153,    -1,
     766     154,    -1,   155,   119,   154,    -1,   155,    -1,   156,   127,
     767     155,    -1,   156,    -1,   157,   128,   156,    -1,   157,    -1,
     768     158,    93,   157,    -1,   158,    -1,   159,    94,   158,    -1,
     769     159,    -1,   159,   129,   167,   116,   160,    -1,   159,   129,
     770     116,   160,    -1,   159,   129,   167,   116,   164,    -1,   160,
     771      -1,   160,    -1,   147,   130,   162,    -1,   147,   166,   162,
     772      -1,   164,   369,    -1,    -1,   162,    -1,   110,   111,    -1,
     773     110,   133,   162,   134,   111,    -1,   110,   133,   115,   165,
     774     134,   111,    -1,   110,   133,   162,   115,   165,   134,   111,
     775      -1,   163,    -1,   165,   115,   163,    -1,    96,    -1,    97,
     776      -1,    98,    -1,    99,    -1,   100,    -1,   101,    -1,   102,
     777      -1,   103,    -1,   104,    -1,   105,    -1,   162,    -1,   167,
     778     115,   162,    -1,    -1,   167,    -1,   170,    -1,   171,    -1,
     779     175,    -1,   176,    -1,   188,    -1,   190,    -1,   191,    -1,
     780     196,    -1,   127,   142,   113,   143,   114,   131,    -1,   138,
     781     116,   308,   169,    -1,   113,   114,    -1,   113,   133,   133,
     782     207,   172,   134,   114,    -1,   173,    -1,   172,   133,   173,
     783      -1,   210,    -1,    39,   210,    -1,   304,    -1,   169,   134,
     784      -1,   169,    -1,   174,   169,    -1,   168,   131,    -1,    40,
     785     108,   167,   109,   169,    -1,    40,   108,   167,   109,   169,
     786      41,   169,    -1,    42,   108,   167,   109,   181,    -1,    42,
     787     108,   167,   109,   113,   133,   203,   182,   114,    -1,    52,
     788     108,   167,   109,   181,    -1,    52,   108,   167,   109,   113,
     789     133,   203,   184,   114,    -1,   161,    -1,   161,    95,   161,
     790      -1,   306,    -1,   177,    -1,   178,   115,   177,    -1,    43,
     791     178,   116,    -1,    44,   116,    -1,   179,    -1,   180,   179,
     792      -1,   180,   169,    -1,    -1,   183,    -1,   180,   174,    -1,
     793     183,   180,   174,    -1,    -1,   185,    -1,   180,   187,    -1,
     794     180,   174,   186,    -1,   185,   180,   187,    -1,   185,   180,
     795     174,   186,    -1,    -1,   187,    -1,    55,    -1,    55,   131,
     796      -1,    46,   108,   167,   109,   169,    -1,    45,   169,    46,
     797     108,   167,   109,   131,    -1,    47,   108,   133,   189,   109,
     798     169,    -1,   168,   134,   131,   168,   131,   168,    -1,   210,
     799     168,   131,   168,    -1,    50,   138,   131,    -1,    50,   118,
     800     167,   131,    -1,    49,   131,    -1,    49,   138,   131,    -1,
     801      48,   131,    -1,    48,   138,   131,    -1,    51,   168,   131,
     802      -1,    60,   163,   131,    -1,    61,   163,   131,    -1,    61,
     803     163,    62,   162,   131,    -1,    56,   171,   192,    -1,    56,
     804     171,   194,    -1,    56,   171,   192,   194,    -1,   193,    -1,
     805      57,   108,    95,   109,   171,    -1,   193,    57,   108,    95,
     806     109,   171,    -1,    58,   108,    95,   109,   171,    -1,   193,
     807      58,   108,    95,   109,   171,    -1,    57,   108,   133,   133,
     808     195,   134,   109,   171,   134,    -1,   193,    57,   108,   133,
     809     133,   195,   134,   109,   171,   134,    -1,    58,   108,   133,
     810     133,   195,   134,   109,   171,   134,    -1,   193,    58,   108,
     811     133,   133,   195,   134,   109,   171,   134,    -1,    59,   171,
     812      -1,   223,    -1,   223,   305,    -1,   223,   353,    -1,   362,
     813     138,    -1,   362,    -1,    63,   197,   108,   140,   109,   131,
     814      -1,    63,   197,   108,   140,   116,   198,   109,   131,    -1,
     815      63,   197,   108,   140,   116,   198,   116,   198,   109,   131,
     816      -1,    63,   197,   108,   140,   116,   198,   116,   198,   116,
     817     201,   109,   131,    -1,    63,   197,    50,   108,   140,   116,
     818     116,   198,   116,   201,   116,   202,   109,   131,    -1,    -1,
     819      11,    -1,    -1,   199,    -1,   200,    -1,   199,   115,   200,
     820      -1,   140,   108,   161,   109,    -1,   110,   161,   111,   140,
     821     108,   161,   109,    -1,    -1,   140,    -1,   201,   115,   140,
     822      -1,   138,    -1,   202,   115,   138,    -1,   134,    -1,   204,
     823      -1,   210,    -1,   204,   133,   210,    -1,   134,    -1,   206,
     824      -1,   220,    -1,   206,   133,   220,    -1,    -1,   208,    -1,
     825      28,   209,   131,    -1,   208,    28,   209,   131,    -1,   270,
     826      -1,   209,   115,   270,    -1,   211,    -1,   220,    -1,   212,
     827     134,   131,    -1,   217,   134,   131,    -1,   214,   134,   131,
     828      -1,   289,   134,   131,    -1,   292,   134,   131,    -1,   213,
     829     273,    -1,   229,   213,   273,    -1,   212,   134,   115,   133,
     830     268,   273,    -1,   363,   268,   307,    -1,   366,   268,   307,
     831      -1,   225,   366,   268,   307,    -1,   215,    -1,   225,   215,
     832      -1,   229,   215,    -1,   229,   225,   215,    -1,   214,   134,
     833     115,   133,   268,    -1,   110,   111,   268,   108,   133,   256,
     834     134,   109,    -1,   366,   268,   108,   133,   256,   134,   109,
     835      -1,   216,   268,   108,   133,   256,   134,   109,    -1,   110,
     836     133,   258,   134,   111,    -1,   110,   133,   258,   134,   115,
     837     133,   259,   134,   111,    -1,     3,   213,    -1,     3,   215,
     838      -1,   217,   134,   115,   133,   138,    -1,     3,   223,   305,
     839      -1,   218,   134,   115,   133,   305,    -1,   225,     3,   223,
     840     305,    -1,   223,     3,   305,    -1,   223,     3,   225,   305,
     841      -1,     3,   138,   130,   162,    -1,   219,   134,   115,   133,
     842     138,   130,   162,    -1,   221,   134,   131,    -1,   218,   134,
     843     131,    -1,   219,   134,   131,    -1,   238,   134,   131,    -1,
     844     222,   305,   307,   273,    -1,   221,   115,   308,   305,   307,
     845     273,    -1,   234,    -1,   238,    -1,   240,    -1,   279,    -1,
     846     235,    -1,   239,    -1,   241,    -1,   280,    -1,    -1,   225,
     847      -1,   226,    -1,   225,   226,    -1,   227,    -1,   310,    -1,
     848      10,    -1,    12,    -1,    11,    -1,    14,    -1,    66,    -1,
     849      -1,    13,   108,   228,   282,   109,    -1,   230,    -1,   225,
     850     230,    -1,   229,   225,   230,    -1,   231,    -1,   230,   231,
     851      -1,   232,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
     852      -1,     8,    -1,     9,    -1,    68,    -1,    70,    -1,    16,
    856853      -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,    17,
    857       -1,    22,    -1,    23,    -1,    15,    -1,    25,    -1,    26,
    858       -1,    27,    -1,    24,    -1,   236,    -1,   230,   236,    -1,
    859      235,   232,    -1,   235,   232,   226,    -1,   235,   232,   236,
    860       -1,   237,    -1,   225,   238,   225,    -1,   234,    -1,   226,
    861      234,    -1,   237,   227,    -1,   237,   234,    -1,    28,   109,
    862      273,   110,    -1,    28,   109,   168,   110,    -1,    78,   109,
    863      273,   110,    -1,    78,   109,   168,   110,    -1,   240,    -1,
    864      230,   240,    -1,   239,   232,    -1,   239,   232,   226,    -1,
    865      243,    -1,   226,   243,    -1,   240,   227,    -1,   242,    -1,
    866      230,   242,    -1,   241,   232,    -1,   241,   232,   226,    -1,
    867       74,    -1,   226,    74,    -1,   242,   227,    -1,   244,    -1,
    868      254,    -1,   245,   114,   246,   115,    -1,   245,   271,    -1,
    869      245,   271,   114,   246,   115,    -1,   245,   109,   289,   110,
    870      114,   246,   115,    -1,   245,   282,    -1,    31,   309,    -1,
    871       32,   309,    -1,   247,    -1,   246,   247,    -1,   248,   132,
    872       -1,    40,   248,   132,    -1,   249,   132,    -1,    40,   249,
    873      132,    -1,   363,    -1,   363,   271,    -1,   248,   116,   271,
    874       -1,   248,   116,    -1,   224,   250,    -1,   249,   116,   309,
    875      250,    -1,    -1,   252,    -1,   315,   251,    -1,   328,   251,
    876       -1,   354,    -1,    -1,   252,    -1,   117,   162,    -1,    30,
    877      309,    -1,   253,   114,   255,   369,   115,    -1,   253,   271,
    878      114,   255,   369,   115,    -1,   253,   271,    -1,   271,   256,
    879       -1,   255,   116,   271,   256,    -1,    -1,   131,   162,    -1,
    880       -1,   258,    -1,   260,    -1,   259,    -1,   259,   135,   116,
    881      134,   260,    -1,   260,   135,   116,   134,    96,    -1,   259,
    882      135,   116,   134,    96,    -1,   264,    -1,   260,   135,   116,
    883      134,   264,    -1,   259,   135,   116,   134,   264,    -1,   259,
    884      135,   116,   134,   260,   135,   116,   134,   264,    -1,   265,
    885       -1,   260,   135,   116,   134,   265,    -1,    -1,   262,    -1,
    886      263,    -1,   263,   135,   116,   134,    96,    -1,   267,    -1,
    887      266,    -1,   263,   135,   116,   134,   267,    -1,   263,   135,
    888      116,   134,   266,    -1,   266,    -1,   359,   269,   370,    -1,
    889      367,   269,   370,    -1,   226,   367,   269,   370,    -1,   216,
    890       -1,   267,    -1,   359,    -1,   367,    -1,   226,   367,    -1,
    891      368,    -1,   223,   333,   370,    -1,   223,   337,   370,    -1,
    892      223,    -1,   223,   348,    -1,   139,    -1,   268,   116,   139,
    893       -1,   137,    -1,    74,    -1,    75,    -1,   138,    -1,    74,
    894       -1,    75,    -1,   139,    -1,    74,    -1,    75,    -1,   363,
    895       -1,   224,    -1,   224,   354,    -1,   363,    -1,   368,    -1,
    896      224,    -1,   224,   342,    -1,    -1,   131,   275,    -1,   107,
    897      275,    -1,   163,    -1,   114,   276,   369,   115,    -1,    -1,
    898      275,    -1,   277,   275,    -1,   276,   116,   275,    -1,   276,
    899      116,   277,   275,    -1,   278,   117,    -1,   271,   117,    -1,
    900      279,    -1,   278,   279,    -1,    80,    -1,   113,   271,    -1,
    901      111,   134,   163,   135,   112,    -1,   111,   134,   307,   135,
    902      112,    -1,   111,   134,   162,    96,   162,   135,   112,    -1,
    903      113,   111,   134,   146,   135,   112,    -1,   281,    -1,   230,
    904      281,    -1,   280,   232,    -1,   280,   232,   226,    -1,   282,
    905       -1,   226,   282,    -1,   281,   227,    -1,    75,   109,   289,
    906      110,    -1,   284,   370,    -1,   283,   116,   284,   370,    -1,
    907       -1,   286,   271,   285,   287,    -1,   224,   333,    -1,    33,
    908       -1,    35,    -1,    34,    -1,    -1,   287,   288,    -1,   129,
    909      271,   109,   289,   110,    -1,   129,   114,   134,   295,   115,
    910       -1,   129,   109,   134,   283,   135,   110,   114,   134,   295,
    911      115,   109,   289,   110,    -1,   273,    -1,   163,    -1,   289,
    912      116,   273,    -1,   289,   116,   163,    -1,    33,   291,    -1,
    913      231,    33,   291,    -1,   290,   116,   291,    -1,   292,   287,
    914       -1,   292,   287,   131,   273,    -1,   271,    -1,   270,   109,
    915      134,   283,   135,   110,    -1,    36,   271,   109,   134,   283,
    916      135,   110,   114,   115,    -1,    -1,    36,   271,   109,   134,
    917      283,   135,   110,   114,   294,   295,   115,    -1,   296,    -1,
    918      295,   134,   296,    -1,   297,   135,   132,    -1,   298,   135,
    919      132,    -1,   214,    -1,   216,    -1,   297,   135,   116,   134,
    920      269,    -1,   224,   306,    -1,   298,   135,   116,   134,   306,
    921       -1,    -1,   300,    -1,   302,    -1,   300,   134,   302,    -1,
    922       -1,   300,    -1,   211,    -1,   304,    -1,   197,    -1,    -1,
    923        5,    82,   303,   114,   301,   115,    -1,    40,   302,    -1,
    924      305,    -1,   320,   172,    -1,   324,   134,   206,   172,    -1,
    925      215,   172,    -1,   223,   320,   172,    -1,   226,   320,   172,
    926       -1,   230,   320,   172,    -1,   230,   226,   320,   172,    -1,
    927      223,   324,   134,   206,   172,    -1,   226,   324,   134,   206,
    928      172,    -1,   230,   324,   134,   206,   172,    -1,   230,   226,
    929      324,   134,   206,   172,    -1,   315,    -1,   320,    -1,   328,
    930       -1,   162,   123,   162,    -1,    -1,    64,   109,   141,   110,
    931      309,    -1,    -1,   310,    -1,   311,    -1,   310,   311,    -1,
    932       39,   109,   109,   312,   110,   110,    -1,   313,    -1,   312,
    933      116,   313,    -1,    -1,   314,    -1,   314,   109,   169,   110,
    934       -1,   269,    -1,   233,    -1,   234,    -1,   227,    -1,   316,
    935      309,    -1,   317,    -1,   318,   309,    -1,   319,   309,    -1,
    936      137,    -1,   109,   316,   110,    -1,   119,   315,    -1,   119,
    937      226,   315,    -1,   109,   317,   110,    -1,   316,   346,    -1,
    938      109,   317,   110,   346,    -1,   109,   318,   110,   347,    -1,
    939      109,   318,   110,    -1,   109,   317,   110,   109,   134,   261,
    940      135,   110,    -1,   109,   319,   110,    -1,   321,   309,    -1,
    941      322,    -1,   323,   309,    -1,   316,   109,   134,   261,   135,
    942      110,    -1,   109,   322,   110,   109,   134,   261,   135,   110,
    943       -1,   109,   321,   110,    -1,   119,   320,    -1,   119,   226,
    944      320,    -1,   109,   322,   110,    -1,   109,   322,   110,   346,
    945       -1,   109,   323,   110,   347,    -1,   109,   323,   110,    -1,
    946      325,    -1,   326,    -1,   327,    -1,   316,   109,   268,   110,
    947       -1,   109,   326,   110,   109,   268,   110,    -1,   109,   325,
    948      110,    -1,   119,   324,    -1,   119,   226,   324,    -1,   109,
    949      326,   110,    -1,   109,   326,   110,   346,    -1,   109,   327,
    950      110,   347,    -1,   109,   327,   110,    -1,   329,   309,    -1,
    951      330,    -1,   331,   309,    -1,   332,   309,    -1,   338,    -1,
    952      109,   329,   110,    -1,   119,   328,    -1,   119,   226,   328,
    953       -1,   109,   330,   110,    -1,   329,   346,    -1,   109,   330,
    954      110,   346,    -1,   109,   331,   110,   347,    -1,   109,   331,
    955      110,    -1,   329,   109,   134,   261,   135,   110,    -1,   109,
    956      330,   110,   109,   134,   261,   135,   110,    -1,   109,   332,
    957      110,    -1,   316,   309,    -1,   334,    -1,   335,   309,    -1,
    958      336,   309,    -1,   119,   333,    -1,   119,   226,   333,    -1,
    959      109,   334,   110,    -1,   316,   352,    -1,   109,   334,   110,
    960      346,    -1,   109,   335,   110,   347,    -1,   109,   335,   110,
    961       -1,   316,   109,   134,   261,   135,   110,    -1,   109,   334,
    962      110,   109,   134,   261,   135,   110,    -1,   109,   336,   110,
    963       -1,   338,   309,    -1,   339,    -1,   340,   309,    -1,   341,
    964      309,    -1,    74,    -1,    75,    -1,   119,   337,    -1,   119,
    965      226,   337,    -1,   109,   339,   110,    -1,   338,   352,    -1,
    966      109,   339,   110,   352,    -1,   338,   109,   134,   261,   135,
    967      110,    -1,   109,   339,   110,   109,   134,   261,   135,   110,
    968       -1,   343,    -1,   344,   309,    -1,   345,   309,    -1,   119,
    969       -1,   119,   226,    -1,   119,   342,    -1,   119,   226,   342,
    970       -1,   109,   343,   110,    -1,   346,    -1,   109,   343,   110,
    971      346,    -1,   109,   344,   110,   347,    -1,   109,   344,   110,
    972       -1,   109,   134,   261,   135,   110,    -1,   109,   343,   110,
    973      109,   134,   261,   135,   110,    -1,   109,   345,   110,    -1,
    974      111,   112,    -1,   111,   112,   347,    -1,   347,    -1,   111,
    975      134,   163,   135,   112,    -1,   111,   134,   119,   135,   112,
    976       -1,   347,   111,   134,   163,   135,   112,    -1,   347,   111,
    977      134,   119,   135,   112,    -1,   349,    -1,   350,   309,    -1,
    978      351,   309,    -1,   119,    -1,   119,   226,    -1,   119,   348,
    979       -1,   119,   226,   348,    -1,   109,   349,   110,    -1,   352,
    980       -1,   109,   349,   110,   352,    -1,   109,   350,   110,   347,
    981       -1,   109,   350,   110,    -1,   109,   134,   261,   135,   110,
    982       -1,   109,   349,   110,   109,   134,   261,   135,   110,    -1,
    983      109,   351,   110,    -1,   353,    -1,   353,   347,    -1,   347,
    984       -1,   111,   112,    -1,   111,   134,   226,   119,   135,   112,
    985       -1,   111,   134,   226,   135,   112,    -1,   111,   134,   226,
    986      163,   135,   112,    -1,   111,   134,     7,   225,   163,   135,
    987      112,    -1,   111,   134,   226,     7,   163,   135,   112,    -1,
    988      355,    -1,   356,   309,    -1,   357,   309,    -1,   119,    -1,
    989      119,   226,    -1,   119,   354,    -1,   119,   226,   354,    -1,
    990      109,   355,   110,    -1,   346,    -1,   109,   355,   110,   346,
    991       -1,   109,   356,   110,   347,    -1,   109,   356,   110,    -1,
    992      109,   355,   110,   109,   134,   261,   135,   110,    -1,   109,
    993      357,   110,    -1,   359,    -1,   367,    -1,   226,   367,    -1,
    994      360,    -1,   361,    -1,   119,   224,    -1,   226,   119,   224,
    995       -1,   119,   368,    -1,   226,   119,   368,    -1,   119,   358,
    996       -1,   226,   119,   358,    -1,   111,   112,   224,    -1,   362,
    997      224,    -1,   111,   112,   347,   224,    -1,   362,   347,   224,
    998       -1,   347,   224,    -1,   111,   112,   360,    -1,   362,   360,
    999       -1,   111,   112,   347,   360,    -1,   362,   347,   360,    -1,
    1000      347,   360,    -1,   111,   134,   226,   119,   135,   112,    -1,
    1001      111,   134,   226,   163,   135,   112,    -1,   111,   134,   230,
    1002      163,   135,   112,    -1,   111,   134,   230,   226,   163,   135,
    1003      112,    -1,   367,    -1,   226,   367,    -1,   364,    -1,   365,
    1004       -1,   366,    -1,   119,   224,    -1,   226,   119,   224,    -1,
    1005      119,   368,    -1,   226,   119,   368,    -1,   119,   363,    -1,
    1006      226,   119,   363,    -1,   111,   112,   224,    -1,   111,   112,
    1007      347,   224,    -1,   347,   224,    -1,   111,   112,   365,    -1,
    1008      111,   112,   347,   365,    -1,   347,   365,    -1,   111,   134,
    1009      260,   135,   112,    -1,   111,   112,   109,   257,   110,    -1,
    1010      367,   109,   134,   257,   135,   110,    -1,   217,   109,   134,
    1011      257,   135,   110,    -1,    -1,   116,    -1,    -1,   131,   163,
    1012       -1
     854      -1,    22,    -1,    23,    -1,    15,    -1,    24,    -1,    25,
     855      -1,    26,    -1,   235,    -1,   229,   235,    -1,   234,   231,
     856      -1,   234,   231,   225,    -1,   234,   231,   235,    -1,   236,
     857      -1,   224,   237,   224,    -1,   233,    -1,   225,   233,    -1,
     858     236,   226,    -1,   236,   233,    -1,    27,   108,   272,   109,
     859      -1,    27,   108,   167,   109,    -1,    77,   108,   272,   109,
     860      -1,    77,   108,   167,   109,    -1,   239,    -1,   229,   239,
     861      -1,   238,   231,    -1,   238,   231,   225,    -1,   242,    -1,
     862     225,   242,    -1,   239,   226,    -1,   241,    -1,   229,   241,
     863      -1,   240,   231,    -1,   240,   231,   225,    -1,    73,    -1,
     864     225,    73,    -1,   241,   226,    -1,   243,    -1,   253,    -1,
     865     244,   113,   245,   114,    -1,   244,   270,    -1,   244,   270,
     866     113,   245,   114,    -1,   244,   108,   288,   109,   113,   245,
     867     114,    -1,   244,   281,    -1,    30,   308,    -1,    31,   308,
     868      -1,   246,    -1,   245,   246,    -1,   247,   131,    -1,    39,
     869     247,   131,    -1,   248,   131,    -1,    39,   248,   131,    -1,
     870     362,    -1,   362,   270,    -1,   247,   115,   270,    -1,   247,
     871     115,    -1,   223,   249,    -1,   248,   115,   308,   249,    -1,
     872      -1,   251,    -1,   314,   250,    -1,   327,   250,    -1,   353,
     873      -1,    -1,   251,    -1,   116,   161,    -1,    29,   308,    -1,
     874     252,   113,   254,   368,   114,    -1,   252,   270,   113,   254,
     875     368,   114,    -1,   252,   270,    -1,   270,   255,    -1,   254,
     876     115,   270,   255,    -1,    -1,   130,   161,    -1,    -1,   257,
     877      -1,   259,    -1,   258,    -1,   258,   134,   115,   133,   259,
     878      -1,   259,   134,   115,   133,    95,    -1,   258,   134,   115,
     879     133,    95,    -1,   263,    -1,   259,   134,   115,   133,   263,
     880      -1,   258,   134,   115,   133,   263,    -1,   258,   134,   115,
     881     133,   259,   134,   115,   133,   263,    -1,   264,    -1,   259,
     882     134,   115,   133,   264,    -1,    -1,   261,    -1,   262,    -1,
     883     262,   134,   115,   133,    95,    -1,   266,    -1,   265,    -1,
     884     262,   134,   115,   133,   266,    -1,   262,   134,   115,   133,
     885     265,    -1,   265,    -1,   358,   268,   369,    -1,   366,   268,
     886     369,    -1,   225,   366,   268,   369,    -1,   215,    -1,   266,
     887      -1,   358,    -1,   366,    -1,   225,   366,    -1,   367,    -1,
     888     222,   332,   369,    -1,   222,   336,   369,    -1,   222,    -1,
     889     222,   347,    -1,   138,    -1,   267,   115,   138,    -1,   136,
     890      -1,    73,    -1,    74,    -1,   137,    -1,    73,    -1,    74,
     891      -1,   138,    -1,    73,    -1,    74,    -1,   362,    -1,   223,
     892      -1,   223,   353,    -1,   362,    -1,   367,    -1,   223,    -1,
     893     223,   341,    -1,    -1,   130,   274,    -1,   106,   274,    -1,
     894     162,    -1,   113,   275,   368,   114,    -1,    -1,   274,    -1,
     895     276,   274,    -1,   275,   115,   274,    -1,   275,   115,   276,
     896     274,    -1,   277,   116,    -1,   270,   116,    -1,   278,    -1,
     897     277,   278,    -1,    79,    -1,   112,   270,    -1,   110,   133,
     898     162,   134,   111,    -1,   110,   133,   306,   134,   111,    -1,
     899     110,   133,   161,    95,   161,   134,   111,    -1,   112,   110,
     900     133,   145,   134,   111,    -1,   280,    -1,   229,   280,    -1,
     901     279,   231,    -1,   279,   231,   225,    -1,   281,    -1,   225,
     902     281,    -1,   280,   226,    -1,    74,   108,   288,   109,    -1,
     903     283,   369,    -1,   282,   115,   283,   369,    -1,    -1,   285,
     904     270,   284,   286,    -1,   223,   332,    -1,    32,    -1,    34,
     905      -1,    33,    -1,    -1,   286,   287,    -1,   128,   270,   108,
     906     288,   109,    -1,   128,   113,   133,   294,   114,    -1,   128,
     907     108,   133,   282,   134,   109,   113,   133,   294,   114,   108,
     908     288,   109,    -1,   272,    -1,   162,    -1,   288,   115,   272,
     909      -1,   288,   115,   162,    -1,    32,   290,    -1,   230,    32,
     910     290,    -1,   289,   115,   290,    -1,   291,   286,    -1,   291,
     911     286,   130,   272,    -1,   270,    -1,   269,   108,   133,   282,
     912     134,   109,    -1,    35,   270,   108,   133,   282,   134,   109,
     913     113,   114,    -1,    -1,    35,   270,   108,   133,   282,   134,
     914     109,   113,   293,   294,   114,    -1,   295,    -1,   294,   133,
     915     295,    -1,   296,   134,   131,    -1,   297,   134,   131,    -1,
     916     213,    -1,   215,    -1,   296,   134,   115,   133,   268,    -1,
     917     223,   305,    -1,   297,   134,   115,   133,   305,    -1,    -1,
     918     299,    -1,   301,    -1,   299,   133,   301,    -1,    -1,   299,
     919      -1,   210,    -1,   303,    -1,   196,    -1,    -1,     5,    81,
     920     302,   113,   300,   114,    -1,    39,   301,    -1,   304,    -1,
     921     319,   171,    -1,   323,   133,   205,   171,    -1,   214,   171,
     922      -1,   222,   319,   171,    -1,   225,   319,   171,    -1,   229,
     923     319,   171,    -1,   229,   225,   319,   171,    -1,   222,   323,
     924     133,   205,   171,    -1,   225,   323,   133,   205,   171,    -1,
     925     229,   323,   133,   205,   171,    -1,   229,   225,   323,   133,
     926     205,   171,    -1,   314,    -1,   319,    -1,   327,    -1,   161,
     927     122,   161,    -1,    -1,    63,   108,   140,   109,   308,    -1,
     928      -1,   309,    -1,   310,    -1,   309,   310,    -1,    38,   108,
     929     108,   311,   109,   109,    -1,   312,    -1,   311,   115,   312,
     930      -1,    -1,   313,    -1,   313,   108,   168,   109,    -1,   268,
     931      -1,   232,    -1,   233,    -1,   226,    -1,   315,   308,    -1,
     932     316,    -1,   317,   308,    -1,   318,   308,    -1,   136,    -1,
     933     108,   315,   109,    -1,   118,   314,    -1,   118,   225,   314,
     934      -1,   108,   316,   109,    -1,   315,   345,    -1,   108,   316,
     935     109,   345,    -1,   108,   317,   109,   346,    -1,   108,   317,
     936     109,    -1,   108,   316,   109,   108,   133,   260,   134,   109,
     937      -1,   108,   318,   109,    -1,   320,   308,    -1,   321,    -1,
     938     322,   308,    -1,   315,   108,   133,   260,   134,   109,    -1,
     939     108,   321,   109,   108,   133,   260,   134,   109,    -1,   108,
     940     320,   109,    -1,   118,   319,    -1,   118,   225,   319,    -1,
     941     108,   321,   109,    -1,   108,   321,   109,   345,    -1,   108,
     942     322,   109,   346,    -1,   108,   322,   109,    -1,   324,    -1,
     943     325,    -1,   326,    -1,   315,   108,   267,   109,    -1,   108,
     944     325,   109,   108,   267,   109,    -1,   108,   324,   109,    -1,
     945     118,   323,    -1,   118,   225,   323,    -1,   108,   325,   109,
     946      -1,   108,   325,   109,   345,    -1,   108,   326,   109,   346,
     947      -1,   108,   326,   109,    -1,   328,   308,    -1,   329,    -1,
     948     330,   308,    -1,   331,   308,    -1,   337,    -1,   108,   328,
     949     109,    -1,   118,   327,    -1,   118,   225,   327,    -1,   108,
     950     329,   109,    -1,   328,   345,    -1,   108,   329,   109,   345,
     951      -1,   108,   330,   109,   346,    -1,   108,   330,   109,    -1,
     952     328,   108,   133,   260,   134,   109,    -1,   108,   329,   109,
     953     108,   133,   260,   134,   109,    -1,   108,   331,   109,    -1,
     954     315,   308,    -1,   333,    -1,   334,   308,    -1,   335,   308,
     955      -1,   118,   332,    -1,   118,   225,   332,    -1,   108,   333,
     956     109,    -1,   315,   351,    -1,   108,   333,   109,   345,    -1,
     957     108,   334,   109,   346,    -1,   108,   334,   109,    -1,   315,
     958     108,   133,   260,   134,   109,    -1,   108,   333,   109,   108,
     959     133,   260,   134,   109,    -1,   108,   335,   109,    -1,   337,
     960     308,    -1,   338,    -1,   339,   308,    -1,   340,   308,    -1,
     961      73,    -1,    74,    -1,   118,   336,    -1,   118,   225,   336,
     962      -1,   108,   338,   109,    -1,   337,   351,    -1,   108,   338,
     963     109,   351,    -1,   337,   108,   133,   260,   134,   109,    -1,
     964     108,   338,   109,   108,   133,   260,   134,   109,    -1,   342,
     965      -1,   343,   308,    -1,   344,   308,    -1,   118,    -1,   118,
     966     225,    -1,   118,   341,    -1,   118,   225,   341,    -1,   108,
     967     342,   109,    -1,   345,    -1,   108,   342,   109,   345,    -1,
     968     108,   343,   109,   346,    -1,   108,   343,   109,    -1,   108,
     969     133,   260,   134,   109,    -1,   108,   342,   109,   108,   133,
     970     260,   134,   109,    -1,   108,   344,   109,    -1,   110,   111,
     971      -1,   110,   111,   346,    -1,   346,    -1,   110,   133,   162,
     972     134,   111,    -1,   110,   133,   118,   134,   111,    -1,   346,
     973     110,   133,   162,   134,   111,    -1,   346,   110,   133,   118,
     974     134,   111,    -1,   348,    -1,   349,   308,    -1,   350,   308,
     975      -1,   118,    -1,   118,   225,    -1,   118,   347,    -1,   118,
     976     225,   347,    -1,   108,   348,   109,    -1,   351,    -1,   108,
     977     348,   109,   351,    -1,   108,   349,   109,   346,    -1,   108,
     978     349,   109,    -1,   108,   133,   260,   134,   109,    -1,   108,
     979     348,   109,   108,   133,   260,   134,   109,    -1,   108,   350,
     980     109,    -1,   352,    -1,   352,   346,    -1,   346,    -1,   110,
     981     111,    -1,   110,   133,   225,   118,   134,   111,    -1,   110,
     982     133,   225,   134,   111,    -1,   110,   133,   225,   162,   134,
     983     111,    -1,   110,   133,     7,   224,   162,   134,   111,    -1,
     984     110,   133,   225,     7,   162,   134,   111,    -1,   354,    -1,
     985     355,   308,    -1,   356,   308,    -1,   118,    -1,   118,   225,
     986      -1,   118,   353,    -1,   118,   225,   353,    -1,   108,   354,
     987     109,    -1,   345,    -1,   108,   354,   109,   345,    -1,   108,
     988     355,   109,   346,    -1,   108,   355,   109,    -1,   108,   354,
     989     109,   108,   133,   260,   134,   109,    -1,   108,   356,   109,
     990      -1,   358,    -1,   366,    -1,   225,   366,    -1,   359,    -1,
     991     360,    -1,   118,   223,    -1,   225,   118,   223,    -1,   118,
     992     367,    -1,   225,   118,   367,    -1,   118,   357,    -1,   225,
     993     118,   357,    -1,   110,   111,   223,    -1,   361,   223,    -1,
     994     110,   111,   346,   223,    -1,   361,   346,   223,    -1,   346,
     995     223,    -1,   110,   111,   359,    -1,   361,   359,    -1,   110,
     996     111,   346,   359,    -1,   361,   346,   359,    -1,   346,   359,
     997      -1,   110,   133,   225,   118,   134,   111,    -1,   110,   133,
     998     225,   162,   134,   111,    -1,   110,   133,   229,   162,   134,
     999     111,    -1,   110,   133,   229,   225,   162,   134,   111,    -1,
     1000     366,    -1,   225,   366,    -1,   363,    -1,   364,    -1,   365,
     1001      -1,   118,   223,    -1,   225,   118,   223,    -1,   118,   367,
     1002      -1,   225,   118,   367,    -1,   118,   362,    -1,   225,   118,
     1003     362,    -1,   110,   111,   223,    -1,   110,   111,   346,   223,
     1004      -1,   346,   223,    -1,   110,   111,   364,    -1,   110,   111,
     1005     346,   364,    -1,   346,   364,    -1,   110,   133,   259,   134,
     1006     111,    -1,   110,   111,   108,   256,   109,    -1,   366,   108,
     1007     133,   256,   134,   109,    -1,   216,   108,   133,   256,   134,
     1008     109,    -1,    -1,   115,    -1,    -1,   130,   162,    -1
    10131009};
    10141010
     
    10161012static const yytype_uint16 yyrline[] =
    10171013{
    1018        0,   292,   292,   298,   307,   308,   309,   313,   314,   315,
    1019      319,   320,   324,   325,   329,   330,   334,   335,   341,   343,
    1020      345,   347,   352,   353,   359,   363,   365,   366,   368,   369,
    1021      371,   373,   375,   383,   384,   390,   391,   392,   397,   399,
    1022      404,   405,   409,   413,   415,   417,   419,   424,   427,   429,
    1023      431,   433,   435,   437,   439,   441,   447,   449,   451,   453,
    1024      455,   457,   459,   461,   463,   468,   469,   470,   471,   475,
    1025      476,   478,   483,   484,   486,   488,   493,   494,   496,   501,
    1026      502,   504,   509,   510,   512,   514,   516,   521,   522,   524,
    1027      529,   530,   535,   536,   541,   542,   547,   548,   553,   554,
    1028      559,   560,   562,   564,   569,   574,   575,   577,   579,   585,
    1029      586,   592,   594,   596,   598,   603,   604,   609,   610,   611,
    1030      612,   613,   614,   615,   616,   617,   618,   622,   623,   629,
    1031      630,   636,   637,   638,   639,   640,   641,   642,   643,   644,
    1032      653,   660,   662,   672,   673,   678,   680,   682,   684,   688,
    1033      689,   694,   699,   702,   704,   706,   711,   713,   721,   722,
    1034      724,   728,   729,   734,   735,   740,   741,   745,   750,   751,
    1035      755,   757,   763,   764,   768,   770,   772,   774,   780,   781,
    1036      785,   786,   790,   792,   794,   799,   801,   806,   808,   812,
    1037      815,   819,   822,   826,   828,   832,   834,   841,   843,   845,
    1038      854,   856,   858,   860,   862,   867,   869,   871,   873,   878,
    1039      891,   892,   897,   899,   904,   908,   910,   912,   914,   916,
    1040      922,   923,   929,   930,   934,   935,   940,   942,   948,   949,
    1041      951,   956,   958,   965,   967,   971,   972,   977,   979,   983,
    1042      984,   988,   990,   994,   995,   999,  1000,  1004,  1005,  1020,
    1043     1021,  1022,  1023,  1024,  1028,  1033,  1040,  1050,  1055,  1060,
    1044     1068,  1073,  1078,  1083,  1088,  1096,  1118,  1123,  1130,  1132,
    1045     1139,  1144,  1149,  1160,  1165,  1170,  1175,  1180,  1189,  1194,
    1046     1202,  1203,  1204,  1205,  1211,  1216,  1224,  1225,  1226,  1227,
    1047     1231,  1232,  1233,  1234,  1239,  1240,  1249,  1250,  1255,  1256,
    1048     1261,  1263,  1265,  1267,  1269,  1272,  1271,  1283,  1284,  1286,
    1049     1296,  1297,  1302,  1306,  1308,  1310,  1312,  1314,  1316,  1318,
    1050     1320,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
    1051     1343,  1345,  1347,  1349,  1355,  1356,  1358,  1360,  1362,  1367,
    1052     1368,  1374,  1375,  1377,  1379,  1384,  1386,  1388,  1390,  1395,
    1053     1396,  1398,  1400,  1405,  1406,  1408,  1413,  1414,  1416,  1418,
    1054     1423,  1425,  1427,  1432,  1433,  1437,  1439,  1441,  1443,  1445,
    1055     1450,  1452,  1457,  1459,  1464,  1465,  1467,  1468,  1473,  1474,
    1056     1476,  1478,  1483,  1485,  1491,  1492,  1494,  1497,  1500,  1505,
    1057     1506,  1511,  1516,  1520,  1522,  1524,  1529,  1531,  1537,  1538,
    1058     1546,  1547,  1551,  1552,  1553,  1555,  1557,  1564,  1565,  1567,
    1059     1569,  1574,  1575,  1581,  1582,  1586,  1587,  1592,  1593,  1594,
    1060     1596,  1604,  1605,  1607,  1610,  1612,  1616,  1617,  1618,  1620,
    1061     1622,  1626,  1631,  1639,  1640,  1649,  1651,  1656,  1657,  1658,
    1062     1662,  1663,  1664,  1668,  1669,  1670,  1674,  1675,  1676,  1681,
    1063     1682,  1683,  1684,  1690,  1691,  1693,  1698,  1699,  1704,  1705,
    1064     1706,  1707,  1708,  1723,  1724,  1729,  1730,  1738,  1740,  1742,
    1065     1745,  1747,  1749,  1772,  1773,  1775,  1777,  1782,  1783,  1785,
    1066     1790,  1795,  1796,  1802,  1801,  1805,  1809,  1811,  1813,  1819,
    1067     1820,  1825,  1830,  1832,  1837,  1839,  1840,  1842,  1847,  1849,
    1068     1851,  1856,  1858,  1863,  1868,  1876,  1882,  1881,  1895,  1896,
    1069     1901,  1902,  1906,  1911,  1916,  1924,  1929,  1940,  1941,  1952,
    1070     1953,  1959,  1960,  1964,  1965,  1966,  1969,  1968,  1979,  1984,
    1071     1989,  1995,  2004,  2010,  2016,  2022,  2028,  2036,  2042,  2050,
    1072     2056,  2065,  2066,  2067,  2071,  2075,  2077,  2082,  2083,  2087,
    1073     2088,  2093,  2099,  2100,  2103,  2105,  2106,  2110,  2111,  2112,
    1074     2113,  2147,  2149,  2150,  2152,  2157,  2162,  2167,  2169,  2171,
    1075     2176,  2178,  2180,  2182,  2187,  2189,  2199,  2201,  2202,  2207,
    1076     2209,  2211,  2216,  2218,  2220,  2225,  2227,  2229,  2238,  2239,
    1077     2240,  2244,  2246,  2248,  2253,  2255,  2257,  2262,  2264,  2266,
    1078     2281,  2283,  2284,  2286,  2291,  2292,  2297,  2299,  2301,  2306,
    1079     2308,  2310,  2312,  2317,  2319,  2321,  2331,  2333,  2334,  2336,
    1080     2341,  2343,  2345,  2350,  2352,  2354,  2356,  2361,  2363,  2365,
    1081     2396,  2398,  2399,  2401,  2406,  2411,  2419,  2421,  2423,  2428,
    1082     2430,  2435,  2437,  2451,  2452,  2454,  2459,  2461,  2463,  2465,
    1083     2467,  2472,  2473,  2475,  2477,  2482,  2484,  2486,  2492,  2494,
    1084     2496,  2500,  2502,  2504,  2506,  2520,  2521,  2523,  2528,  2530,
    1085     2532,  2534,  2536,  2541,  2542,  2544,  2546,  2551,  2553,  2555,
    1086     2561,  2562,  2564,  2573,  2576,  2578,  2581,  2583,  2585,  2598,
    1087     2599,  2601,  2606,  2608,  2610,  2612,  2614,  2619,  2620,  2622,
    1088     2624,  2629,  2631,  2639,  2640,  2641,  2646,  2647,  2651,  2653,
    1089     2655,  2657,  2659,  2661,  2668,  2670,  2672,  2674,  2676,  2678,
    1090     2680,  2682,  2684,  2686,  2691,  2693,  2695,  2700,  2726,  2727,
    1091     2729,  2733,  2734,  2738,  2740,  2742,  2744,  2746,  2748,  2755,
    1092     2757,  2759,  2761,  2763,  2765,  2770,  2775,  2777,  2779,  2797,
    1093     2799,  2804,  2805
     1014       0,   290,   290,   296,   305,   306,   307,   311,   312,   313,
     1015     317,   318,   322,   323,   327,   328,   332,   333,   339,   341,
     1016     343,   345,   350,   351,   357,   361,   363,   364,   366,   367,
     1017     369,   371,   373,   381,   382,   388,   389,   390,   395,   397,
     1018     402,   403,   407,   411,   413,   415,   417,   422,   425,   427,
     1019     429,   431,   433,   435,   437,   439,   445,   447,   449,   451,
     1020     453,   455,   457,   459,   461,   466,   467,   468,   469,   473,
     1021     474,   476,   481,   482,   484,   486,   491,   492,   494,   499,
     1022     500,   502,   507,   508,   510,   512,   514,   519,   520,   522,
     1023     527,   528,   533,   534,   539,   540,   545,   546,   551,   552,
     1024     557,   558,   560,   562,   567,   572,   573,   575,   577,   583,
     1025     584,   590,   592,   594,   596,   601,   602,   607,   608,   609,
     1026     610,   611,   612,   613,   614,   615,   616,   620,   621,   627,
     1027     628,   634,   635,   636,   637,   638,   639,   640,   641,   642,
     1028     651,   658,   660,   670,   671,   676,   678,   680,   682,   686,
     1029     687,   692,   697,   700,   702,   704,   709,   711,   719,   720,
     1030     722,   726,   727,   732,   733,   738,   739,   743,   748,   749,
     1031     753,   755,   761,   762,   766,   768,   770,   772,   778,   779,
     1032     783,   784,   788,   790,   792,   797,   799,   804,   806,   810,
     1033     813,   817,   820,   824,   826,   830,   832,   839,   841,   843,
     1034     852,   854,   856,   858,   860,   865,   867,   869,   871,   876,
     1035     889,   890,   895,   897,   902,   906,   908,   910,   912,   914,
     1036     920,   921,   927,   928,   932,   933,   938,   940,   946,   947,
     1037     949,   954,   956,   963,   965,   969,   970,   975,   977,   981,
     1038     982,   986,   988,   992,   993,   997,   998,  1002,  1003,  1018,
     1039    1019,  1020,  1021,  1022,  1026,  1031,  1038,  1048,  1053,  1058,
     1040    1066,  1071,  1076,  1081,  1086,  1094,  1116,  1121,  1128,  1130,
     1041    1137,  1142,  1147,  1158,  1163,  1168,  1173,  1178,  1187,  1192,
     1042    1200,  1201,  1202,  1203,  1209,  1214,  1222,  1223,  1224,  1225,
     1043    1229,  1230,  1231,  1232,  1237,  1238,  1247,  1248,  1253,  1254,
     1044    1259,  1261,  1263,  1265,  1267,  1270,  1269,  1281,  1282,  1284,
     1045    1294,  1295,  1300,  1304,  1306,  1308,  1310,  1312,  1314,  1316,
     1046    1318,  1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,
     1047    1341,  1343,  1345,  1351,  1352,  1354,  1356,  1358,  1363,  1364,
     1048    1370,  1371,  1373,  1375,  1380,  1382,  1384,  1386,  1391,  1392,
     1049    1394,  1396,  1401,  1402,  1404,  1409,  1410,  1412,  1414,  1419,
     1050    1421,  1423,  1428,  1429,  1433,  1435,  1437,  1439,  1441,  1446,
     1051    1448,  1453,  1455,  1460,  1461,  1463,  1464,  1469,  1470,  1472,
     1052    1474,  1479,  1481,  1487,  1488,  1490,  1493,  1496,  1501,  1502,
     1053    1507,  1512,  1516,  1518,  1520,  1525,  1527,  1533,  1534,  1542,
     1054    1543,  1547,  1548,  1549,  1551,  1553,  1560,  1561,  1563,  1565,
     1055    1570,  1571,  1577,  1578,  1582,  1583,  1588,  1589,  1590,  1592,
     1056    1600,  1601,  1603,  1606,  1608,  1612,  1613,  1614,  1616,  1618,
     1057    1622,  1627,  1635,  1636,  1645,  1647,  1652,  1653,  1654,  1658,
     1058    1659,  1660,  1664,  1665,  1666,  1670,  1671,  1672,  1677,  1678,
     1059    1679,  1680,  1686,  1687,  1689,  1694,  1695,  1700,  1701,  1702,
     1060    1703,  1704,  1719,  1720,  1725,  1726,  1734,  1736,  1738,  1741,
     1061    1743,  1745,  1768,  1769,  1771,  1773,  1778,  1779,  1781,  1786,
     1062    1791,  1792,  1798,  1797,  1801,  1805,  1807,  1809,  1815,  1816,
     1063    1821,  1826,  1828,  1833,  1835,  1836,  1838,  1843,  1845,  1847,
     1064    1852,  1854,  1859,  1864,  1872,  1878,  1877,  1891,  1892,  1897,
     1065    1898,  1902,  1907,  1912,  1920,  1925,  1936,  1937,  1948,  1949,
     1066    1955,  1956,  1960,  1961,  1962,  1965,  1964,  1975,  1980,  1985,
     1067    1991,  2000,  2006,  2012,  2018,  2024,  2032,  2038,  2046,  2052,
     1068    2061,  2062,  2063,  2067,  2071,  2073,  2078,  2079,  2083,  2084,
     1069    2089,  2095,  2096,  2099,  2101,  2102,  2106,  2107,  2108,  2109,
     1070    2143,  2145,  2146,  2148,  2153,  2158,  2163,  2165,  2167,  2172,
     1071    2174,  2176,  2178,  2183,  2185,  2195,  2197,  2198,  2203,  2205,
     1072    2207,  2212,  2214,  2216,  2221,  2223,  2225,  2234,  2235,  2236,
     1073    2240,  2242,  2244,  2249,  2251,  2253,  2258,  2260,  2262,  2277,
     1074    2279,  2280,  2282,  2287,  2288,  2293,  2295,  2297,  2302,  2304,
     1075    2306,  2308,  2313,  2315,  2317,  2327,  2329,  2330,  2332,  2337,
     1076    2339,  2341,  2346,  2348,  2350,  2352,  2357,  2359,  2361,  2392,
     1077    2394,  2395,  2397,  2402,  2407,  2415,  2417,  2419,  2424,  2426,
     1078    2431,  2433,  2447,  2448,  2450,  2455,  2457,  2459,  2461,  2463,
     1079    2468,  2469,  2471,  2473,  2478,  2480,  2482,  2488,  2490,  2492,
     1080    2496,  2498,  2500,  2502,  2516,  2517,  2519,  2524,  2526,  2528,
     1081    2530,  2532,  2537,  2538,  2540,  2542,  2547,  2549,  2551,  2557,
     1082    2558,  2560,  2569,  2572,  2574,  2577,  2579,  2581,  2594,  2595,
     1083    2597,  2602,  2604,  2606,  2608,  2610,  2615,  2616,  2618,  2620,
     1084    2625,  2627,  2635,  2636,  2637,  2642,  2643,  2647,  2649,  2651,
     1085    2653,  2655,  2657,  2664,  2666,  2668,  2670,  2672,  2674,  2676,
     1086    2678,  2680,  2682,  2687,  2689,  2691,  2696,  2722,  2723,  2725,
     1087    2729,  2730,  2734,  2736,  2738,  2740,  2742,  2744,  2751,  2753,
     1088    2755,  2757,  2759,  2761,  2766,  2771,  2773,  2775,  2793,  2795,
     1089    2800,  2801
    10941090};
    10951091#endif
     
    11031099  "STATIC", "INLINE", "FORTRAN", "CONST", "VOLATILE", "RESTRICT", "FORALL",
    11041100  "LVALUE", "VOID", "CHAR", "SHORT", "INT", "LONG", "FLOAT", "DOUBLE",
    1105   "SIGNED", "UNSIGNED", "VALIST", "BOOL", "COMPLEX", "IMAGINARY", "TYPEOF",
    1106   "LABEL", "ENUM", "STRUCT", "UNION", "OTYPE", "FTYPE", "DTYPE", "TRAIT",
    1107   "SIZEOF", "OFFSETOF", "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH",
    1108   "CASE", "DEFAULT", "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO",
    1109   "RETURN", "CHOOSE", "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH",
    1110   "CATCHRESUME", "FINALLY", "THROW", "THROWRESUME", "AT", "ASM", "ALIGNAS",
    1111   "ALIGNOF", "ATOMIC", "GENERIC", "NORETURN", "STATICASSERT",
    1112   "THREADLOCAL", "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname",
    1113   "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
     1101  "SIGNED", "UNSIGNED", "BOOL", "COMPLEX", "IMAGINARY", "TYPEOF", "LABEL",
     1102  "ENUM", "STRUCT", "UNION", "TYPE", "FTYPE", "DTYPE", "CONTEXT", "SIZEOF",
     1103  "OFFSETOF", "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH", "CASE",
     1104  "DEFAULT", "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN",
     1105  "CHOOSE", "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH", "CATCHRESUME",
     1106  "FINALLY", "THROW", "THROWRESUME", "AT", "ASM", "ALIGNAS", "ALIGNOF",
     1107  "ATOMIC", "GENERIC", "NORETURN", "STATICASSERT", "THREADLOCAL",
     1108  "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname", "TYPEGENname",
     1109  "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
    11141110  "INTEGERconstant", "FLOATINGconstant", "CHARACTERconstant",
    11151111  "STRINGliteral", "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE",
     
    11731169  "type_parameter", "$@2", "type_class", "assertion_list_opt", "assertion",
    11741170  "type_name_list", "type_declaring_list", "type_declarator",
    1175   "type_declarator_name", "trait_specifier", "$@3",
    1176   "trait_declaration_list", "trait_declaration",
    1177   "new_trait_declaring_list", "trait_declaring_list", "translation_unit",
    1178   "external_definition_list", "external_definition_list_opt",
    1179   "external_definition", "$@4", "external_function_definition",
    1180   "function_definition", "declarator", "subrange", "asm_name_opt",
    1181   "attribute_list_opt", "attribute_list", "attribute",
    1182   "attribute_parameter_list", "attrib", "any_word", "variable_declarator",
    1183   "paren_identifier", "variable_ptr", "variable_array",
    1184   "variable_function", "function_declarator", "function_no_ptr",
    1185   "function_ptr", "function_array", "old_function_declarator",
    1186   "old_function_no_ptr", "old_function_ptr", "old_function_array",
    1187   "type_redeclarator", "paren_type", "type_ptr", "type_array",
    1188   "type_function", "identifier_parameter_declarator",
     1171  "type_declarator_name", "context_specifier", "$@3",
     1172  "context_declaration_list", "context_declaration",
     1173  "new_context_declaring_list", "context_declaring_list",
     1174  "translation_unit", "external_definition_list",
     1175  "external_definition_list_opt", "external_definition", "$@4",
     1176  "external_function_definition", "function_definition", "declarator",
     1177  "subrange", "asm_name_opt", "attribute_list_opt", "attribute_list",
     1178  "attribute", "attribute_parameter_list", "attrib", "any_word",
     1179  "variable_declarator", "paren_identifier", "variable_ptr",
     1180  "variable_array", "variable_function", "function_declarator",
     1181  "function_no_ptr", "function_ptr", "function_array",
     1182  "old_function_declarator", "old_function_no_ptr", "old_function_ptr",
     1183  "old_function_array", "type_redeclarator", "paren_type", "type_ptr",
     1184  "type_array", "type_function", "identifier_parameter_declarator",
    11891185  "identifier_parameter_ptr", "identifier_parameter_array",
    11901186  "identifier_parameter_function", "type_parameter_redeclarator",
     
    12231219     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12241220     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1225      355,   356,   357,   358,   359,   360,   361,   362,   363,    40,
    1226       41,    91,    93,    46,   123,   125,    44,    58,    33,    42,
    1227       38,    43,    45,   126,    47,    37,    60,    62,    94,   124,
    1228       63,    61,    59
     1221     355,   356,   357,   358,   359,   360,   361,   362,    40,    41,
     1222      91,    93,    46,   123,   125,    44,    58,    33,    42,    38,
     1223      43,    45,   126,    47,    37,    60,    62,    94,   124,    63,
     1224      61,    59
    12291225};
    12301226# endif
     
    12331229static const yytype_uint16 yyr1[] =
    12341230{
    1235        0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
    1236      138,   138,   139,   139,   140,   140,   141,   141,   142,   142,
    1237      142,   142,   143,   143,   143,   143,   143,   143,   143,   143,
    1238      143,   143,   143,   144,   144,   145,   145,   145,   145,   145,
    1239      146,   146,   147,   147,   147,   147,   147,   148,   148,   148,
    1240      148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
    1241      148,   148,   148,   148,   148,   149,   149,   149,   149,   150,
    1242      150,   150,   151,   151,   151,   151,   152,   152,   152,   153,
    1243      153,   153,   154,   154,   154,   154,   154,   155,   155,   155,
    1244      156,   156,   157,   157,   158,   158,   159,   159,   160,   160,
    1245      161,   161,   161,   161,   162,   163,   163,   163,   163,   164,
    1246      164,   165,   165,   165,   165,   166,   166,   167,   167,   167,
    1247      167,   167,   167,   167,   167,   167,   167,   168,   168,   169,
    1248      169,   170,   170,   170,   170,   170,   170,   170,   170,   170,
    1249      171,   172,   172,   173,   173,   174,   174,   174,   174,   175,
    1250      175,   176,   177,   177,   177,   177,   177,   177,   178,   178,
    1251      178,   179,   179,   180,   180,   181,   181,   182,   183,   183,
    1252      184,   184,   185,   185,   186,   186,   186,   186,   187,   187,
    1253      188,   188,   189,   189,   189,   190,   190,   191,   191,   191,
    1254      191,   191,   191,   191,   191,   191,   191,   192,   192,   192,
    1255      193,   193,   193,   193,   193,   194,   194,   194,   194,   195,
    1256      196,   196,   196,   196,   196,   197,   197,   197,   197,   197,
    1257      198,   198,   199,   199,   200,   200,   201,   201,   202,   202,
    1258      202,   203,   203,   204,   204,   205,   205,   206,   206,   207,
    1259      207,   208,   208,   209,   209,   210,   210,   211,   211,   212,
    1260      212,   212,   212,   212,   213,   213,   213,   214,   214,   214,
    1261      215,   215,   215,   215,   215,   216,   216,   216,   217,   217,
    1262      218,   218,   218,   219,   219,   219,   219,   219,   220,   220,
    1263      221,   221,   221,   221,   222,   222,   223,   223,   223,   223,
    1264      224,   224,   224,   224,   225,   225,   226,   226,   227,   227,
    1265      228,   228,   228,   228,   228,   229,   228,   230,   230,   230,
    1266      231,   231,   232,   233,   233,   233,   233,   233,   233,   233,
    1267      233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
    1268      234,   234,   234,   234,   235,   235,   235,   235,   235,   236,
    1269      236,   237,   237,   237,   237,   238,   238,   238,   238,   239,
    1270      239,   239,   239,   240,   240,   240,   241,   241,   241,   241,
    1271      242,   242,   242,   243,   243,   244,   244,   244,   244,   244,
    1272      245,   245,   246,   246,   247,   247,   247,   247,   248,   248,
    1273      248,   248,   249,   249,   250,   250,   250,   250,   250,   251,
    1274      251,   252,   253,   254,   254,   254,   255,   255,   256,   256,
    1275      257,   257,   258,   258,   258,   258,   258,   259,   259,   259,
    1276      259,   260,   260,   261,   261,   262,   262,   263,   263,   263,
    1277      263,   264,   264,   264,   264,   264,   265,   265,   265,   265,
    1278      265,   266,   266,   267,   267,   268,   268,   269,   269,   269,
    1279      270,   270,   270,   271,   271,   271,   272,   272,   272,   273,
    1280      273,   273,   273,   274,   274,   274,   275,   275,   276,   276,
    1281      276,   276,   276,   277,   277,   278,   278,   279,   279,   279,
    1282      279,   279,   279,   280,   280,   280,   280,   281,   281,   281,
    1283      282,   283,   283,   285,   284,   284,   286,   286,   286,   287,
    1284      287,   288,   288,   288,   289,   289,   289,   289,   290,   290,
    1285      290,   291,   291,   292,   292,   293,   294,   293,   295,   295,
    1286      296,   296,   297,   297,   297,   298,   298,   299,   299,   300,
    1287      300,   301,   301,   302,   302,   302,   303,   302,   302,   304,
    1288      304,   304,   305,   305,   305,   305,   305,   305,   305,   305,
    1289      305,   306,   306,   306,   307,   308,   308,   309,   309,   310,
    1290      310,   311,   312,   312,   313,   313,   313,   314,   314,   314,
    1291      314,   315,   315,   315,   315,   316,   316,   317,   317,   317,
    1292      318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
    1293      321,   321,   322,   322,   322,   323,   323,   323,   324,   324,
    1294      324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
    1295      328,   328,   328,   328,   329,   329,   330,   330,   330,   331,
    1296      331,   331,   331,   332,   332,   332,   333,   333,   333,   333,
    1297      334,   334,   334,   335,   335,   335,   335,   336,   336,   336,
    1298      337,   337,   337,   337,   338,   338,   339,   339,   339,   340,
    1299      340,   341,   341,   342,   342,   342,   343,   343,   343,   343,
    1300      343,   344,   344,   344,   344,   345,   345,   345,   346,   346,
    1301      346,   347,   347,   347,   347,   348,   348,   348,   349,   349,
    1302      349,   349,   349,   350,   350,   350,   350,   351,   351,   351,
    1303      352,   352,   352,   353,   353,   353,   353,   353,   353,   354,
    1304      354,   354,   355,   355,   355,   355,   355,   356,   356,   356,
    1305      356,   357,   357,   358,   358,   358,   359,   359,   360,   360,
    1306      360,   360,   360,   360,   361,   361,   361,   361,   361,   361,
    1307      361,   361,   361,   361,   362,   362,   362,   362,   363,   363,
    1308      363,   364,   364,   365,   365,   365,   365,   365,   365,   366,
    1309      366,   366,   366,   366,   366,   367,   368,   368,   368,   369,
    1310      369,   370,   370
     1231       0,   132,   133,   134,   135,   135,   135,   136,   136,   136,
     1232     137,   137,   138,   138,   139,   139,   140,   140,   141,   141,
     1233     141,   141,   142,   142,   142,   142,   142,   142,   142,   142,
     1234     142,   142,   142,   143,   143,   144,   144,   144,   144,   144,
     1235     145,   145,   146,   146,   146,   146,   146,   147,   147,   147,
     1236     147,   147,   147,   147,   147,   147,   147,   147,   147,   147,
     1237     147,   147,   147,   147,   147,   148,   148,   148,   148,   149,
     1238     149,   149,   150,   150,   150,   150,   151,   151,   151,   152,
     1239     152,   152,   153,   153,   153,   153,   153,   154,   154,   154,
     1240     155,   155,   156,   156,   157,   157,   158,   158,   159,   159,
     1241     160,   160,   160,   160,   161,   162,   162,   162,   162,   163,
     1242     163,   164,   164,   164,   164,   165,   165,   166,   166,   166,
     1243     166,   166,   166,   166,   166,   166,   166,   167,   167,   168,
     1244     168,   169,   169,   169,   169,   169,   169,   169,   169,   169,
     1245     170,   171,   171,   172,   172,   173,   173,   173,   173,   174,
     1246     174,   175,   176,   176,   176,   176,   176,   176,   177,   177,
     1247     177,   178,   178,   179,   179,   180,   180,   181,   182,   182,
     1248     183,   183,   184,   184,   185,   185,   185,   185,   186,   186,
     1249     187,   187,   188,   188,   188,   189,   189,   190,   190,   190,
     1250     190,   190,   190,   190,   190,   190,   190,   191,   191,   191,
     1251     192,   192,   192,   192,   192,   193,   193,   193,   193,   194,
     1252     195,   195,   195,   195,   195,   196,   196,   196,   196,   196,
     1253     197,   197,   198,   198,   199,   199,   200,   200,   201,   201,
     1254     201,   202,   202,   203,   203,   204,   204,   205,   205,   206,
     1255     206,   207,   207,   208,   208,   209,   209,   210,   210,   211,
     1256     211,   211,   211,   211,   212,   212,   212,   213,   213,   213,
     1257     214,   214,   214,   214,   214,   215,   215,   215,   216,   216,
     1258     217,   217,   217,   218,   218,   218,   218,   218,   219,   219,
     1259     220,   220,   220,   220,   221,   221,   222,   222,   222,   222,
     1260     223,   223,   223,   223,   224,   224,   225,   225,   226,   226,
     1261     227,   227,   227,   227,   227,   228,   227,   229,   229,   229,
     1262     230,   230,   231,   232,   232,   232,   232,   232,   232,   232,
     1263     232,   233,   233,   233,   233,   233,   233,   233,   233,   233,
     1264     233,   233,   233,   234,   234,   234,   234,   234,   235,   235,
     1265     236,   236,   236,   236,   237,   237,   237,   237,   238,   238,
     1266     238,   238,   239,   239,   239,   240,   240,   240,   240,   241,
     1267     241,   241,   242,   242,   243,   243,   243,   243,   243,   244,
     1268     244,   245,   245,   246,   246,   246,   246,   247,   247,   247,
     1269     247,   248,   248,   249,   249,   249,   249,   249,   250,   250,
     1270     251,   252,   253,   253,   253,   254,   254,   255,   255,   256,
     1271     256,   257,   257,   257,   257,   257,   258,   258,   258,   258,
     1272     259,   259,   260,   260,   261,   261,   262,   262,   262,   262,
     1273     263,   263,   263,   263,   263,   264,   264,   264,   264,   264,
     1274     265,   265,   266,   266,   267,   267,   268,   268,   268,   269,
     1275     269,   269,   270,   270,   270,   271,   271,   271,   272,   272,
     1276     272,   272,   273,   273,   273,   274,   274,   275,   275,   275,
     1277     275,   275,   276,   276,   277,   277,   278,   278,   278,   278,
     1278     278,   278,   279,   279,   279,   279,   280,   280,   280,   281,
     1279     282,   282,   284,   283,   283,   285,   285,   285,   286,   286,
     1280     287,   287,   287,   288,   288,   288,   288,   289,   289,   289,
     1281     290,   290,   291,   291,   292,   293,   292,   294,   294,   295,
     1282     295,   296,   296,   296,   297,   297,   298,   298,   299,   299,
     1283     300,   300,   301,   301,   301,   302,   301,   301,   303,   303,
     1284     303,   304,   304,   304,   304,   304,   304,   304,   304,   304,
     1285     305,   305,   305,   306,   307,   307,   308,   308,   309,   309,
     1286     310,   311,   311,   312,   312,   312,   313,   313,   313,   313,
     1287     314,   314,   314,   314,   315,   315,   316,   316,   316,   317,
     1288     317,   317,   317,   318,   318,   319,   319,   319,   320,   320,
     1289     320,   321,   321,   321,   322,   322,   322,   323,   323,   323,
     1290     324,   324,   324,   325,   325,   325,   326,   326,   326,   327,
     1291     327,   327,   327,   328,   328,   329,   329,   329,   330,   330,
     1292     330,   330,   331,   331,   331,   332,   332,   332,   332,   333,
     1293     333,   333,   334,   334,   334,   334,   335,   335,   335,   336,
     1294     336,   336,   336,   337,   337,   338,   338,   338,   339,   339,
     1295     340,   340,   341,   341,   341,   342,   342,   342,   342,   342,
     1296     343,   343,   343,   343,   344,   344,   344,   345,   345,   345,
     1297     346,   346,   346,   346,   347,   347,   347,   348,   348,   348,
     1298     348,   348,   349,   349,   349,   349,   350,   350,   350,   351,
     1299     351,   351,   352,   352,   352,   352,   352,   352,   353,   353,
     1300     353,   354,   354,   354,   354,   354,   355,   355,   355,   355,
     1301     356,   356,   357,   357,   357,   358,   358,   359,   359,   359,
     1302     359,   359,   359,   360,   360,   360,   360,   360,   360,   360,
     1303     360,   360,   360,   361,   361,   361,   361,   362,   362,   362,
     1304     363,   363,   364,   364,   364,   364,   364,   364,   365,   365,
     1305     365,   365,   365,   365,   366,   367,   367,   367,   368,   368,
     1306     369,   369
    13111307};
    13121308
     
    13471343       1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
    13481344       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1349        1,     1,     1,     1,     1,     2,     2,     3,     3,     1,
    1350        3,     1,     2,     2,     2,     4,     4,     4,     4,     1,
    1351        2,     2,     3,     1,     2,     2,     1,     2,     2,     3,
    1352        1,     2,     2,     1,     1,     4,     2,     5,     7,     2,
    1353        2,     2,     1,     2,     2,     3,     2,     3,     1,     2,
    1354        3,     2,     2,     4,     0,     1,     2,     2,     1,     0,
    1355        1,     2,     2,     5,     6,     2,     2,     4,     0,     2,
    1356        0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
    1357        9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
    1358        5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
    1359        1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
    1360        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1361        1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
    1362        2,     3,     4,     2,     2,     1,     2,     1,     2,     5,
    1363        5,     7,     6,     1,     2,     2,     3,     1,     2,     2,
    1364        4,     2,     4,     0,     4,     2,     1,     1,     1,     0,
    1365        2,     5,     5,    13,     1,     1,     3,     3,     2,     3,
    1366        3,     2,     4,     1,     6,     9,     0,    11,     1,     3,
    1367        3,     3,     1,     1,     5,     2,     5,     0,     1,     1,
    1368        3,     0,     1,     1,     1,     1,     0,     6,     2,     1,
    1369        2,     4,     2,     3,     3,     3,     4,     5,     5,     5,
    1370        6,     1,     1,     1,     3,     0,     5,     0,     1,     1,
    1371        2,     6,     1,     3,     0,     1,     4,     1,     1,     1,
    1372        1,     2,     1,     2,     2,     1,     3,     2,     3,     3,
    1373        2,     4,     4,     3,     8,     3,     2,     1,     2,     6,
    1374        8,     3,     2,     3,     3,     4,     4,     3,     1,     1,
    1375        1,     4,     6,     3,     2,     3,     3,     4,     4,     3,
     1345       1,     1,     1,     1,     2,     2,     3,     3,     1,     3,
     1346       1,     2,     2,     2,     4,     4,     4,     4,     1,     2,
     1347       2,     3,     1,     2,     2,     1,     2,     2,     3,     1,
     1348       2,     2,     1,     1,     4,     2,     5,     7,     2,     2,
     1349       2,     1,     2,     2,     3,     2,     3,     1,     2,     3,
     1350       2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
     1351       2,     2,     5,     6,     2,     2,     4,     0,     2,     0,
     1352       1,     1,     1,     5,     5,     5,     1,     5,     5,     9,
     1353       1,     5,     0,     1,     1,     5,     1,     1,     5,     5,
     1354       1,     3,     3,     4,     1,     1,     1,     1,     2,     1,
     1355       3,     3,     1,     2,     1,     3,     1,     1,     1,     1,
     1356       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
     1357       1,     2,     0,     2,     2,     1,     4,     0,     1,     2,
     1358       3,     4,     2,     2,     1,     2,     1,     2,     5,     5,
     1359       7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
     1360       2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
     1361       5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
     1362       2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
     1363       3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
     1364       0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
     1365       4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
     1366       1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
     1367       6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
    13761368       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
    1377        4,     4,     3,     6,     8,     3,     2,     1,     2,     2,
    1378        2,     3,     3,     2,     4,     4,     3,     6,     8,     3,
    1379        2,     1,     2,     2,     1,     1,     2,     3,     3,     2,
    1380        4,     6,     8,     1,     2,     2,     1,     2,     2,     3,
    1381        3,     1,     4,     4,     3,     5,     8,     3,     2,     3,
    1382        1,     5,     5,     6,     6,     1,     2,     2,     1,     2,
    1383        2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
    1384        1,     2,     1,     2,     6,     5,     6,     7,     7,     1,
    1385        2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
    1386        3,     8,     3,     1,     1,     2,     1,     1,     2,     3,
    1387        2,     3,     2,     3,     3,     2,     4,     3,     2,     3,
    1388        2,     4,     3,     2,     6,     6,     6,     7,     1,     2,
    1389        1,     1,     1,     2,     3,     2,     3,     2,     3,     3,
    1390        4,     2,     3,     4,     2,     5,     5,     6,     6,     0,
    1391        1,     0,     2
     1369       4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
     1370       3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
     1371       4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
     1372       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
     1373       4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
     1374       3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
     1375       1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
     1376       6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
     1377       1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
     1378       5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
     1379       3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
     1380       2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
     1381       2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
     1382       8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
     1383       3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
     1384       4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
     1385       1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
     1386       2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
     1387       0,     2
    13921388};
    13931389
     
    13991395     294,   294,   315,   313,   316,   314,   317,   318,   300,   302,
    14001396     301,     0,   303,   329,   321,   326,   324,   325,   323,   322,
    1401      327,   328,   333,   330,   331,   332,   547,   547,   547,     0,
    1402        0,     0,   294,   220,   304,   319,   320,     7,   360,     0,
    1403        8,    14,    15,     0,     2,   294,   565,     9,   525,   523,
    1404      247,     3,   453,     3,   260,     0,     3,     3,     3,   248,
    1405        3,     0,     0,     0,   295,   296,   298,   294,   307,   310,
    1406      312,   341,   286,   334,   339,   287,   349,   288,   356,   353,
    1407      363,     0,     0,   364,   289,   473,   477,     3,     3,     0,
    1408        2,   519,   524,   529,   299,     0,     0,   547,   577,   547,
    1409        2,   588,   589,   590,   294,     0,   731,   732,     0,    12,
    1410      294,     0,    13,   270,   271,     0,   295,   290,   291,   292,
    1411      293,   526,   305,   392,   548,   549,   370,   371,    12,   444,
    1412      445,    11,   440,   443,     0,   503,   498,   489,   444,   445,
    1413        0,     0,   528,   221,     0,   294,     0,     0,     0,     0,
    1414        0,     0,     0,     0,   294,   294,     2,     0,   733,   295,
    1415      582,   594,   737,   730,   728,   735,     0,     0,     0,   254,
    1416        2,     0,   532,   438,   439,   437,     0,     0,     0,     0,
    1417      547,     0,   634,   635,     0,     0,   545,   541,   547,   562,
    1418      547,   547,   542,     2,   543,   547,   601,   547,   547,   604,
    1419        0,     0,     0,   294,   294,   313,   361,     2,   294,   261,
    1420      297,   308,   342,   354,   478,     0,     2,     0,   453,   262,
    1421      295,   335,   350,   357,   474,     0,     2,     0,   311,   336,
    1422      343,   344,     0,   351,   355,   358,   362,   445,   294,   294,
    1423      366,   369,     0,   395,   475,   479,     0,     0,     0,     1,
    1424      294,     2,   530,   576,   578,   294,     2,   741,   295,   744,
    1425      545,   545,   295,     0,     0,     0,   273,   547,   542,     2,
    1426      294,     0,     0,   294,   550,     2,   501,     2,   554,     0,
    1427        0,     0,     0,     0,     0,    18,    59,     4,     5,     6,
    1428       16,     0,     0,     0,   294,     2,     0,   294,    65,    66,
    1429       67,    68,    48,    19,    49,    22,    47,    69,     0,    72,
    1430       76,    79,    82,    87,    90,    92,    94,    96,    98,   100,
    1431      105,   495,   751,   451,   494,     0,   449,   450,     0,   566,
    1432      581,   584,   587,   593,   596,   599,   360,     0,     2,   739,
    1433        0,   294,   742,     2,   294,     3,   425,     0,   433,   295,
    1434      294,   307,   334,   287,   349,   356,     3,     3,   407,   411,
    1435      421,   426,   473,   294,   427,   706,   707,   294,   428,   430,
    1436      294,     2,   583,   595,   729,     2,     2,   249,     2,   458,
    1437        0,   456,   455,   454,   141,     2,     2,   251,     2,     2,
    1438      250,     2,   281,     2,   282,     0,   280,     0,     0,     0,
    1439        0,     0,     0,     0,     0,     0,   567,   606,     0,   453,
    1440        2,   561,   570,   660,   563,   564,   533,   294,     2,   600,
    1441      609,   602,   603,     0,   276,   294,   294,   340,   295,     0,
    1442      295,     0,   294,   734,   738,   736,   534,   294,   545,   255,
    1443      263,   309,     0,     2,   535,   294,   499,   337,   338,   283,
    1444      352,   359,     0,   294,     2,   384,   294,   372,     0,     0,
    1445      378,   728,   294,   749,   398,     0,   476,   500,   252,   253,
    1446      520,   294,   435,     0,   294,   237,     0,     2,   239,     0,
    1447      295,     0,   257,     2,   258,   278,     0,     0,     2,   294,
    1448      545,   294,   486,   488,   487,     0,     0,   751,     0,   294,
    1449        0,   294,   490,   294,   560,   558,   559,   557,     0,   552,
    1450      555,     0,     0,   294,    56,   294,    69,    52,   294,    62,
    1451      294,   294,    50,    51,    64,     2,   127,     0,     0,   447,
    1452        0,   446,   111,   294,    54,    55,    17,     0,    29,    30,
    1453       35,     2,     0,    35,   117,   118,   119,   120,   121,   122,
    1454      123,   124,   125,   126,     0,     0,    53,     0,     0,     0,
     1397     327,   328,   330,   331,   332,   546,   546,   546,     0,     0,
     1398       0,   294,   220,   304,   319,   320,     7,   359,     0,     8,
     1399      14,    15,     0,     2,   294,   564,     9,   524,   522,   247,
     1400       3,   452,     3,   260,     0,     3,     3,     3,   248,     3,
     1401       0,     0,     0,   295,   296,   298,   294,   307,   310,   312,
     1402     340,   286,   333,   338,   287,   348,   288,   355,   352,   362,
     1403       0,     0,   363,   289,   472,   476,     3,     3,     0,     2,
     1404     518,   523,   528,   299,     0,     0,   546,   576,   546,     2,
     1405     587,   588,   589,   294,     0,   730,   731,     0,    12,   294,
     1406       0,    13,   270,   271,     0,   295,   290,   291,   292,   293,
     1407     525,   305,   391,   547,   548,   369,   370,    12,   443,   444,
     1408      11,   439,   442,     0,   502,   497,   488,   443,   444,     0,
     1409       0,   527,   221,     0,   294,     0,     0,     0,     0,     0,
     1410       0,     0,     0,   294,   294,     2,     0,   732,   295,   581,
     1411     593,   736,   729,   727,   734,     0,     0,     0,   254,     2,
     1412       0,   531,   437,   438,   436,     0,     0,     0,     0,   546,
     1413       0,   633,   634,     0,     0,   544,   540,   546,   561,   546,
     1414     546,   541,     2,   542,   546,   600,   546,   546,   603,     0,
     1415       0,     0,   294,   294,   313,   360,     2,   294,   261,   297,
     1416     308,   341,   353,   477,     0,     2,     0,   452,   262,   295,
     1417     334,   349,   356,   473,     0,     2,     0,   311,   335,   342,
     1418     343,     0,   350,   354,   357,   361,   444,   294,   294,   365,
     1419     368,     0,   394,   474,   478,     0,     0,     0,     1,   294,
     1420       2,   529,   575,   577,   294,     2,   740,   295,   743,   544,
     1421     544,   295,     0,     0,     0,   273,   546,   541,     2,   294,
     1422       0,     0,   294,   549,     2,   500,     2,   553,     0,     0,
     1423       0,     0,     0,     0,    18,    59,     4,     5,     6,    16,
     1424       0,     0,     0,   294,     2,     0,   294,    65,    66,    67,
     1425      68,    48,    19,    49,    22,    47,    69,     0,    72,    76,
     1426      79,    82,    87,    90,    92,    94,    96,    98,   100,   105,
     1427     494,   750,   450,   493,     0,   448,   449,     0,   565,   580,
     1428     583,   586,   592,   595,   598,   359,     0,     2,   738,     0,
     1429     294,   741,     2,   294,     3,   424,     0,   432,   295,   294,
     1430     307,   333,   287,   348,   355,     3,     3,   406,   410,   420,
     1431     425,   472,   294,   426,   705,   706,   294,   427,   429,   294,
     1432       2,   582,   594,   728,     2,     2,   249,     2,   457,     0,
     1433     455,   454,   453,   141,     2,     2,   251,     2,     2,   250,
     1434       2,   281,     2,   282,     0,   280,     0,     0,     0,     0,
     1435       0,     0,     0,     0,     0,   566,   605,     0,   452,     2,
     1436     560,   569,   659,   562,   563,   532,   294,     2,   599,   608,
     1437     601,   602,     0,   276,   294,   294,   339,   295,     0,   295,
     1438       0,   294,   733,   737,   735,   533,   294,   544,   255,   263,
     1439     309,     0,     2,   534,   294,   498,   336,   337,   283,   351,
     1440     358,     0,   294,     2,   383,   294,   371,     0,     0,   377,
     1441     727,   294,   748,   397,     0,   475,   499,   252,   253,   519,
     1442     294,   434,     0,   294,   237,     0,     2,   239,     0,   295,
     1443       0,   257,     2,   258,   278,     0,     0,     2,   294,   544,
     1444     294,   485,   487,   486,     0,     0,   750,     0,   294,     0,
     1445     294,   489,   294,   559,   557,   558,   556,     0,   551,   554,
     1446       0,     0,   294,    56,   294,    69,    52,   294,    62,   294,
     1447     294,    50,    51,    64,     2,   127,     0,     0,   446,     0,
     1448     445,   111,   294,    54,    55,    17,     0,    29,    30,    35,
     1449       2,     0,    35,   117,   118,   119,   120,   121,   122,   123,
     1450     124,   125,   126,     0,     0,    53,     0,     0,     0,     0,
    14551451       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1456        0,     0,     0,     0,     0,     0,     0,   108,     2,   646,
    1457      452,   643,   547,   547,   651,   480,   294,     2,   585,   586,
    1458        0,   597,   598,     0,     2,   740,   743,   111,   294,     2,
    1459      294,     0,   708,   295,   712,   703,   704,   710,     0,     2,
    1460        2,   668,   547,   751,   617,   547,   547,   751,   547,   631,
    1461      547,   547,   682,   434,   665,   547,   547,   673,   680,   294,
    1462      429,   295,     0,     0,   294,   718,   295,   723,   751,   715,
    1463      294,   720,   751,   294,   294,   294,     0,   111,     0,    18,
    1464        5,     2,     0,    19,     0,   459,   749,     0,     0,   465,
    1465      241,     0,   294,     0,     0,     0,   545,   569,   573,   575,
    1466      605,   608,   612,   615,   568,   607,     0,   284,   658,     0,
    1467      294,   277,     0,     0,     0,     0,   275,     2,     0,   259,
    1468      536,   294,     0,     0,     0,     0,   294,   294,     0,     0,
    1469      692,   382,   385,   389,   547,   389,   697,   388,   689,   547,
    1470      547,   365,   373,   381,   374,   547,   376,   379,   294,   750,
    1471        0,     0,   396,   749,   295,     3,   414,     3,   418,   417,
    1472      591,     0,   531,   294,     3,     3,   294,   433,   295,     3,
    1473      427,   428,     2,     0,     0,     0,   485,   306,   294,   481,
    1474      483,     3,     2,     2,     0,   502,     3,     0,   554,   129,
    1475        0,     0,   222,     0,     0,     0,     2,     0,     0,    36,
    1476        0,     0,   111,   294,    20,     0,    21,     0,   692,   448,
    1477        0,   109,     3,     2,    27,     2,     0,    33,     0,     2,
    1478       25,     0,   106,   107,    73,    74,    75,    77,    78,    80,
    1479       81,    85,    86,    83,    84,    88,    89,    91,    93,    95,
    1480       97,    99,     0,     0,   752,   294,     0,     0,     0,   647,
    1481      648,   644,   645,   497,   496,   294,     0,     3,   294,   714,
    1482      294,   719,   295,   294,   294,   294,   662,   705,   661,     2,
    1483      294,     0,     0,     0,     0,     0,     0,     0,     0,   683,
    1484        0,   669,   620,   636,   670,     2,   616,   623,   431,   618,
    1485      619,   432,     2,   630,   639,   632,   633,   666,   667,   681,
    1486      709,   713,   711,   751,   268,     2,   745,     2,   422,   717,
    1487      722,   423,     0,   401,     3,     3,     3,     3,   453,     3,
    1488        0,     2,   468,   464,   750,     0,   460,   467,     2,   463,
    1489      466,     0,   294,   242,   264,     3,   272,   274,     0,   453,
    1490        2,   571,   572,     2,   610,   611,     0,   659,   537,     3,
    1491      346,   345,   348,   347,   294,   538,     0,   539,   294,   375,
    1492      377,     2,     0,     0,     0,     0,   104,   391,   693,   694,
    1493      386,   390,   387,   690,   691,   380,   384,   367,   398,   393,
    1494      399,     0,     0,     0,   436,   240,     0,     0,     3,     2,
    1495      668,   429,     0,   527,     0,   751,   489,     0,   294,   294,
    1496      294,     0,   551,   553,   130,     0,     0,   215,     0,     0,
    1497        0,   223,   224,    57,     0,    63,   294,     0,    61,    60,
    1498        0,   128,   693,   458,    70,    71,   110,   115,     3,   109,
    1499        0,     0,     0,    24,    35,     3,     0,    32,   102,     0,
    1500        3,   650,   654,   657,   649,     3,   592,     3,   716,   721,
    1501        2,   294,     3,     3,   295,     0,     3,   622,   626,   629,
    1502      638,   672,   676,   679,   294,     3,   621,   637,   671,   294,
    1503      294,   424,   294,   294,   746,     0,     0,     0,     0,   256,
    1504        0,   104,     0,     3,     3,     0,   461,     0,   457,     0,
    1505        0,   245,   294,     0,     0,   129,     0,     0,     0,     0,
    1506        0,   129,     0,     0,   109,   109,     2,     0,     0,     0,
    1507        3,   131,   132,     2,   143,   133,   134,   135,   136,   137,
    1508      138,   145,   147,     0,     0,     0,   285,   294,   294,   547,
    1509        0,   540,   294,   111,   696,   700,   702,   695,   383,   397,
    1510      394,   579,     2,   664,   663,     0,   669,     2,   482,   484,
    1511      504,     3,   512,   513,     0,     2,   508,     3,     3,     0,
    1512        0,   556,   222,     0,     0,     0,   222,     0,     0,     3,
    1513       37,   749,   109,     0,     3,   661,    42,     3,    40,     3,
    1514       34,     0,     3,   101,   103,     0,     2,   652,   653,     0,
    1515        0,   294,     0,     0,     0,     3,   638,     0,     2,   624,
    1516      625,     2,   640,     2,   674,   675,     0,     0,     3,     0,
    1517        3,     3,     3,     3,   409,   408,   412,     2,     2,   748,
    1518      747,   112,     0,     0,     0,     0,     3,   462,     3,     0,
    1519      243,   146,     3,   295,   294,     0,     0,     0,     0,     2,
    1520      191,     0,   189,     0,     0,     0,     0,     0,     0,     0,
    1521        0,   111,     0,   547,   151,   148,   294,     0,     0,   267,
    1522      279,     3,     3,   546,   613,   368,     2,   698,   699,   294,
    1523      266,   294,     0,   515,   492,   294,     0,     0,   491,   506,
    1524        0,     0,     0,   216,     0,   225,    58,   109,     0,     0,
    1525      116,   113,     0,     0,     0,     0,     0,     0,    23,     0,
    1526      655,   294,   580,   265,   724,   725,   726,     0,   677,   294,
    1527      294,   294,     3,     3,     0,   685,     0,     0,     0,     0,
    1528      294,   294,     3,   544,   469,   470,     0,     0,   246,   295,
    1529        0,     0,     0,     0,   294,   192,   190,     0,   187,   193,
    1530        0,     0,     0,     0,   197,   200,   198,   194,     0,   195,
    1531       35,   129,   144,   142,   244,     0,     0,   294,   416,   420,
    1532      419,     0,   509,     2,   510,     2,   511,   505,   294,   228,
    1533        0,   226,     0,   228,     3,   661,    31,   114,     2,    45,
    1534        2,    43,    41,    28,   112,    26,     3,   727,     3,     3,
    1535        3,     0,     0,   684,   686,   627,   641,   269,     2,   406,
    1536        3,   405,     0,   472,   469,   129,     0,     0,   129,     3,
    1537        0,   129,   188,     0,     2,     2,   209,   199,     0,     0,
    1538        0,     0,   140,   574,   614,     3,     2,     0,     0,     2,
    1539      229,     0,     0,   217,     0,     0,     0,     0,     0,     0,
    1540        0,     0,     0,   687,   688,   294,     0,   471,   152,     0,
    1541        0,     2,   165,   129,   154,     0,   182,     0,   129,     0,
    1542        2,   156,     0,     2,     0,     2,     2,     2,   196,    32,
    1543        0,   294,   514,   516,   507,     0,     0,     0,     0,   114,
    1544       38,     3,     3,   656,   628,   642,   678,   410,   129,   158,
    1545      161,     0,   160,   164,     3,   167,   166,     0,   129,   184,
    1546      129,     3,     0,   294,     0,   294,     0,     2,     0,     2,
    1547      139,   701,     2,   230,   231,     0,   227,   218,     0,     0,
    1548        0,   153,     0,     0,   163,   233,   168,     2,   235,   183,
    1549        0,   186,   172,   201,     3,   210,   214,   203,     3,     0,
    1550      294,     0,   294,     0,     0,     0,    39,    46,    44,   159,
    1551      162,   129,     0,   169,   294,   129,   129,     0,   173,     0,
    1552        0,   692,   211,   212,   213,     0,   202,     3,   204,     3,
    1553      294,   219,   232,   149,   170,   155,   129,   236,   185,   180,
    1554      178,   174,   157,   129,     0,   693,     0,     0,     0,     0,
    1555      150,   171,   181,   175,   179,   178,   176,     3,     3,     0,
    1556        0,   493,   177,   205,   207,     3,     3,   206,   208
     1452       0,     0,     0,     0,     0,     0,   108,     2,   645,   451,
     1453     642,   546,   546,   650,   479,   294,     2,   584,   585,     0,
     1454     596,   597,     0,     2,   739,   742,   111,   294,     2,   294,
     1455       0,   707,   295,   711,   702,   703,   709,     0,     2,     2,
     1456     667,   546,   750,   616,   546,   546,   750,   546,   630,   546,
     1457     546,   681,   433,   664,   546,   546,   672,   679,   294,   428,
     1458     295,     0,     0,   294,   717,   295,   722,   750,   714,   294,
     1459     719,   750,   294,   294,   294,     0,   111,     0,    18,     5,
     1460       2,     0,    19,     0,   458,   748,     0,     0,   464,   241,
     1461       0,   294,     0,     0,     0,   544,   568,   572,   574,   604,
     1462     607,   611,   614,   567,   606,     0,   284,   657,     0,   294,
     1463     277,     0,     0,     0,     0,   275,     2,     0,   259,   535,
     1464     294,     0,     0,     0,     0,   294,   294,     0,     0,   691,
     1465     381,   384,   388,   546,   388,   696,   387,   688,   546,   546,
     1466     364,   372,   380,   373,   546,   375,   378,   294,   749,     0,
     1467       0,   395,   748,   295,     3,   413,     3,   417,   416,   590,
     1468       0,   530,   294,     3,     3,   294,   432,   295,     3,   426,
     1469     427,     2,     0,     0,     0,   484,   306,   294,   480,   482,
     1470       3,     2,     2,     0,   501,     3,     0,   553,   129,     0,
     1471       0,   222,     0,     0,     0,     2,     0,     0,    36,     0,
     1472       0,   111,   294,    20,     0,    21,     0,   691,   447,     0,
     1473     109,     3,     2,    27,     2,     0,    33,     0,     2,    25,
     1474       0,   106,   107,    73,    74,    75,    77,    78,    80,    81,
     1475      85,    86,    83,    84,    88,    89,    91,    93,    95,    97,
     1476      99,     0,     0,   751,   294,     0,     0,     0,   646,   647,
     1477     643,   644,   496,   495,   294,     0,     3,   294,   713,   294,
     1478     718,   295,   294,   294,   294,   661,   704,   660,     2,   294,
     1479       0,     0,     0,     0,     0,     0,     0,     0,   682,     0,
     1480     668,   619,   635,   669,     2,   615,   622,   430,   617,   618,
     1481     431,     2,   629,   638,   631,   632,   665,   666,   680,   708,
     1482     712,   710,   750,   268,     2,   744,     2,   421,   716,   721,
     1483     422,     0,   400,     3,     3,     3,     3,   452,     3,     0,
     1484       2,   467,   463,   749,     0,   459,   466,     2,   462,   465,
     1485       0,   294,   242,   264,     3,   272,   274,     0,   452,     2,
     1486     570,   571,     2,   609,   610,     0,   658,   536,     3,   345,
     1487     344,   347,   346,   294,   537,     0,   538,   294,   374,   376,
     1488       2,     0,     0,     0,     0,   104,   390,   692,   693,   385,
     1489     389,   386,   689,   690,   379,   383,   366,   397,   392,   398,
     1490       0,     0,     0,   435,   240,     0,     0,     3,     2,   667,
     1491     428,     0,   526,     0,   750,   488,     0,   294,   294,   294,
     1492       0,   550,   552,   130,     0,     0,   215,     0,     0,     0,
     1493     223,   224,    57,     0,    63,   294,     0,    61,    60,     0,
     1494     128,   692,   457,    70,    71,   110,   115,     3,   109,     0,
     1495       0,     0,    24,    35,     3,     0,    32,   102,     0,     3,
     1496     649,   653,   656,   648,     3,   591,     3,   715,   720,     2,
     1497     294,     3,     3,   295,     0,     3,   621,   625,   628,   637,
     1498     671,   675,   678,   294,     3,   620,   636,   670,   294,   294,
     1499     423,   294,   294,   745,     0,     0,     0,     0,   256,     0,
     1500     104,     0,     3,     3,     0,   460,     0,   456,     0,     0,
     1501     245,   294,     0,     0,   129,     0,     0,     0,     0,     0,
     1502     129,     0,     0,   109,   109,     2,     0,     0,     0,     3,
     1503     131,   132,     2,   143,   133,   134,   135,   136,   137,   138,
     1504     145,   147,     0,     0,     0,   285,   294,   294,   546,     0,
     1505     539,   294,   111,   695,   699,   701,   694,   382,   396,   393,
     1506     578,     2,   663,   662,     0,   668,     2,   481,   483,   503,
     1507       3,   511,   512,     0,     2,   507,     3,     3,     0,     0,
     1508     555,   222,     0,     0,     0,   222,     0,     0,     3,    37,
     1509     748,   109,     0,     3,   660,    42,     3,    40,     3,    34,
     1510       0,     3,   101,   103,     0,     2,   651,   652,     0,     0,
     1511     294,     0,     0,     0,     3,   637,     0,     2,   623,   624,
     1512       2,   639,     2,   673,   674,     0,     0,     3,     0,     3,
     1513       3,     3,     3,   408,   407,   411,     2,     2,   747,   746,
     1514     112,     0,     0,     0,     0,     3,   461,     3,     0,   243,
     1515     146,     3,   295,   294,     0,     0,     0,     0,     2,   191,
     1516       0,   189,     0,     0,     0,     0,     0,     0,     0,     0,
     1517     111,     0,   546,   151,   148,   294,     0,     0,   267,   279,
     1518       3,     3,   545,   612,   367,     2,   697,   698,   294,   266,
     1519     294,     0,   514,   491,   294,     0,     0,   490,   505,     0,
     1520       0,     0,   216,     0,   225,    58,   109,     0,     0,   116,
     1521     113,     0,     0,     0,     0,     0,     0,    23,     0,   654,
     1522     294,   579,   265,   723,   724,   725,     0,   676,   294,   294,
     1523     294,     3,     3,     0,   684,     0,     0,     0,     0,   294,
     1524     294,     3,   543,   468,   469,     0,     0,   246,   295,     0,
     1525       0,     0,     0,   294,   192,   190,     0,   187,   193,     0,
     1526       0,     0,     0,   197,   200,   198,   194,     0,   195,    35,
     1527     129,   144,   142,   244,     0,     0,   294,   415,   419,   418,
     1528       0,   508,     2,   509,     2,   510,   504,   294,   228,     0,
     1529     226,     0,   228,     3,   660,    31,   114,     2,    45,     2,
     1530      43,    41,    28,   112,    26,     3,   726,     3,     3,     3,
     1531       0,     0,   683,   685,   626,   640,   269,     2,   405,     3,
     1532     404,     0,   471,   468,   129,     0,     0,   129,     3,     0,
     1533     129,   188,     0,     2,     2,   209,   199,     0,     0,     0,
     1534       0,   140,   573,   613,     3,     2,     0,     0,     2,   229,
     1535       0,     0,   217,     0,     0,     0,     0,     0,     0,     0,
     1536       0,     0,   686,   687,   294,     0,   470,   152,     0,     0,
     1537       2,   165,   129,   154,     0,   182,     0,   129,     0,     2,
     1538     156,     0,     2,     0,     2,     2,     2,   196,    32,     0,
     1539     294,   513,   515,   506,     0,     0,     0,     0,   114,    38,
     1540       3,     3,   655,   627,   641,   677,   409,   129,   158,   161,
     1541       0,   160,   164,     3,   167,   166,     0,   129,   184,   129,
     1542       3,     0,   294,     0,   294,     0,     2,     0,     2,   139,
     1543     700,     2,   230,   231,     0,   227,   218,     0,     0,     0,
     1544     153,     0,     0,   163,   233,   168,     2,   235,   183,     0,
     1545     186,   172,   201,     3,   210,   214,   203,     3,     0,   294,
     1546       0,   294,     0,     0,     0,    39,    46,    44,   159,   162,
     1547     129,     0,   169,   294,   129,   129,     0,   173,     0,     0,
     1548     691,   211,   212,   213,     0,   202,     3,   204,     3,   294,
     1549     219,   232,   149,   170,   155,   129,   236,   185,   180,   178,
     1550     174,   157,   129,     0,   692,     0,     0,     0,     0,   150,
     1551     171,   181,   175,   179,   178,   176,     3,     3,     0,     0,
     1552     492,   177,   205,   207,     3,     3,   206,   208
    15571553};
    15581554
     
    15601556static const yytype_int16 yydefgoto[] =
    15611557{
    1562       -1,   840,   475,   302,    46,   132,   133,   303,   304,   305,
    1563      306,   786,   787,  1147,  1148,   307,   308,   309,   310,   311,
    1564      312,   313,   314,   315,   316,   317,   318,   319,   320,  1052,
    1565      526,   997,   322,   998,   555,   974,  1079,  1543,  1081,  1082,
    1566     1083,  1084,  1544,  1085,  1086,  1460,  1461,  1422,  1423,  1424,
    1567     1522,  1523,  1527,  1528,  1563,  1564,  1087,  1380,  1088,  1089,
    1568     1314,  1315,  1316,  1504,  1090,   144,   980,   981,   982,  1401,
    1569     1485,  1496,  1497,   476,   477,   902,   903,  1060,    49,    50,
    1570       51,    52,    53,   346,   157,    56,    57,    58,    59,    60,
    1571      348,    62,    63,   262,    65,    66,   273,   350,   351,    69,
    1572       70,    71,    72,   117,    74,   203,   353,   118,    77,   119,
    1573       79,    80,    81,   456,   457,   458,   459,   701,   940,   702,
    1574       82,    83,   463,   722,   882,   883,   356,   357,   725,   726,
    1575      727,   358,   359,   360,   361,   473,   340,   134,   135,   530,
    1576      324,   169,   655,   656,   657,   658,   659,    84,   120,    86,
    1577      496,   497,   966,   498,   276,   502,   325,    87,   136,   137,
    1578       88,  1338,  1125,  1126,  1127,  1128,    89,    90,   743,    91,
    1579      272,    92,    93,   186,  1054,   689,   411,   124,    94,   508,
    1580      509,   510,   187,   267,   189,   190,   191,   268,    97,    98,
    1581       99,   100,   101,   102,   103,   194,   195,   196,   197,   198,
    1582      852,   614,   615,   616,   617,   199,   619,   620,   621,   580,
    1583      581,   582,   583,   706,   104,   623,   624,   625,   626,   627,
    1584      628,   939,   708,   709,   710,   604,   364,   365,   366,   367,
    1585      326,   163,   106,   107,   108,   369,   720,   577
     1558      -1,   839,   474,   301,    45,   131,   132,   302,   303,   304,
     1559     305,   785,   786,  1146,  1147,   306,   307,   308,   309,   310,
     1560     311,   312,   313,   314,   315,   316,   317,   318,   319,  1051,
     1561     525,   996,   321,   997,   554,   973,  1078,  1542,  1080,  1081,
     1562    1082,  1083,  1543,  1084,  1085,  1459,  1460,  1421,  1422,  1423,
     1563    1521,  1522,  1526,  1527,  1562,  1563,  1086,  1379,  1087,  1088,
     1564    1313,  1314,  1315,  1503,  1089,   143,   979,   980,   981,  1400,
     1565    1484,  1495,  1496,   475,   476,   901,   902,  1059,    48,    49,
     1566      50,    51,    52,   345,   156,    55,    56,    57,    58,    59,
     1567     347,    61,    62,   261,    64,    65,   272,   349,   350,    68,
     1568      69,    70,    71,   116,    73,   202,   352,   117,    76,   118,
     1569      78,    79,    80,   455,   456,   457,   458,   700,   939,   701,
     1570      81,    82,   462,   721,   881,   882,   355,   356,   724,   725,
     1571     726,   357,   358,   359,   360,   472,   339,   133,   134,   529,
     1572     323,   168,   654,   655,   656,   657,   658,    83,   119,    85,
     1573     495,   496,   965,   497,   275,   501,   324,    86,   135,   136,
     1574      87,  1337,  1124,  1125,  1126,  1127,    88,    89,   742,    90,
     1575     271,    91,    92,   185,  1053,   688,   410,   123,    93,   507,
     1576     508,   509,   186,   266,   188,   189,   190,   267,    96,    97,
     1577      98,    99,   100,   101,   102,   193,   194,   195,   196,   197,
     1578     851,   613,   614,   615,   616,   198,   618,   619,   620,   579,
     1579     580,   581,   582,   705,   103,   622,   623,   624,   625,   626,
     1580     627,   938,   707,   708,   709,   603,   363,   364,   365,   366,
     1581     325,   162,   105,   106,   107,   368,   719,   576
    15861582};
    15871583
    15881584/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15891585   STATE-NUM.  */
    1590 #define YYPACT_NINF -1356
     1586#define YYPACT_NINF -1281
    15911587static const yytype_int16 yypact[] =
    15921588{
    1593     5863,  4890, -1356,    65, -1356, -1356, -1356, -1356, -1356, -1356,
    1594    -1356,     9, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356,
    1595    -1356, -1356, -1356, -1356, -1356, -1356,   139,   139,   139,  1216,
    1596      781,    63,  4761,   238, -1356, -1356, -1356, -1356, -1356,   165,
    1597    -1356, -1356, -1356,   572,   207,  2350, -1356, -1356, -1356, -1356,
    1598    -1356, -1356,    59,   217, -1356,  1506, -1356, -1356, -1356, -1356,
    1599      220,  1734,   341,    66,  7480, -1356, -1356,  9240,  1240, -1356,
    1600    -1356, -1356,  1320,   351,  3183,  1125,   757,  1320,  1149, -1356,
    1601    -1356,  1042,   895, -1356,  1320,  1227, -1356,   243, -1356,   378,
    1602      403, -1356, -1356, -1356, -1356,   303,   217,   139, -1356,   139,
    1603    -1356, -1356, -1356, -1356,  9019,  1506, -1356, -1356,  1506, -1356,
    1604     9774,   314, -1356, -1356, -1356,  1811,  9812, -1356,   726,   726,
    1605      726, -1356, -1356, -1356,   139, -1356, -1356, -1356,   353,   381,
    1606      400, -1356, -1356, -1356,   417, -1356, -1356, -1356, -1356, -1356,
    1607      424,   436, -1356, -1356,    28,  8867,  2398,   371,   447,   459,
    1608      467,   482,   495,   557,  8670,  6999,   468,   584, -1356,  9350,
    1609    -1356, -1356, -1356, -1356,   594, -1356,   335,  4628,  4628, -1356,
    1610      575,   352, -1356, -1356, -1356, -1356,   602,   432,   434,   470,
    1611      139,   624, -1356, -1356,  1734,  1711,   656, -1356,    68, -1356,
    1612      139,   139,   217, -1356, -1356,    93, -1356,   139,   139, -1356,
    1613     2093,   670,   699,   726,  6910, -1356, -1356,   654,  2350, -1356,
    1614    -1356,  1320, -1356, -1356, -1356,   217, -1356,  1506,    59, -1356,
    1615     7819, -1356,   726,   726,   726,   217, -1356,  1216, -1356,  6673,
    1616    -1356, -1356,   659,   726, -1356,   726, -1356,   165,  8867,  8784,
    1617      714, -1356,   781,   740,   726, -1356,  1216,   737,   749, -1356,
    1618     4761,   791, -1356, -1356, -1356,  4061, -1356, -1356,  7390, -1356,
    1619      656,    62,  9812, 10718,  1811,  2093, -1356,   152, -1356, -1356,
    1620     9774,  1506,   770,  7511, -1356, -1356,   269, -1356,  3425,   779,
    1621      827,  3643,   814, 10872, 10930, -1356,   817, -1356, -1356, -1356,
    1622    -1356, 10949, 10949,   791,  8525,   818, 10872,  8981, -1356, -1356,
    1623    -1356, -1356, -1356, -1356,   855, -1356,   889,  2173, 10872, -1356,
    1624      498,   751,   809,   524,   880,   822,   831,   819,   869,     5,
    1625    -1356, -1356,   883,    64, -1356,   116, -1356, -1356,  2398, -1356,
    1626    -1356,   516,   900, -1356,   644,   900,   913,   165, -1356, -1356,
    1627      915,  9019, -1356,   916,  8639, -1356, -1356,  1004,  1539,  8240,
    1628     6910,  1320, -1356,  1320,   726,   726, -1356, -1356, -1356, -1356,
    1629    -1356, -1356,   726,  9885,  1506, -1356, -1356,  9923,  1500, -1356,
    1630     7969, -1356, -1356, -1356, -1356, -1356, -1356, -1356,   929,  5043,
    1631    10872, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356,
    1632    -1356, -1356, -1356, -1356, -1356,  1811, -1356,   876,   936,   938,
    1633      944,   885,   947,   954,   957,  1711, -1356, -1356,   930,    59,
    1634      960, -1356, -1356,   970, -1356, -1356, -1356,  4061, -1356, -1356,
    1635    -1356, -1356, -1356,  2093, -1356,  8867,  8867, -1356,   726,  1811,
    1636     7030,  1506,  8313, -1356, -1356, -1356, -1356,  4061,    62, -1356,
    1637    -1356,  1320,   217, -1356, -1356,  4061, -1356,  6793, -1356, -1356,
    1638      726,   726,   472,  9953,   974,  1092,  5671, -1356,   521,   543,
    1639      781, -1356,  8784,   976,   959,   781,   726, -1356, -1356, -1356,
    1640    -1356, 10252, -1356,   560,  6550, -1356,   217,   981, -1356,  1811,
    1641    11070, 10776, -1356, -1356, -1356, -1356,   921,  2093, -1356,  8386,
    1642      656,  6061, -1356, -1356, -1356,   820,   612,   883,   781,  7511,
    1643     1338,  9774, -1356,  7511, -1356, -1356, -1356, -1356,   638, -1356,
    1644      994,   827,   255,  8525, -1356,  9953, -1356, -1356,  8525, -1356,
    1645     8753,  8525, -1356, -1356, -1356,   993, -1356,   665,   998,   161,
    1646     1002, -1356,  9490,  6639, -1356, -1356, -1356,   290, -1356, -1356,
    1647    10795, -1356,   366, 10795, -1356, -1356, -1356, -1356, -1356, -1356,
    1648    -1356, -1356, -1356, -1356, 10718, 10718, -1356, 10872, 10872, 10872,
    1649    10872, 10872, 10872, 10872, 10872, 10872, 10872, 10872, 10872, 10872,
    1650    10872, 10872, 10872, 10872, 10872,  5362, 10718, -1356,    64,  1168,
    1651    -1356, -1356,   139,   139, -1356, -1356,  8867, -1356, -1356,   970,
    1652      791, -1356,   970, 10853, -1356, -1356, -1356,  3524,  6639,  1016,
    1653     9095,  1028, -1356, 10035, -1356, -1356,   594, -1356,  1029,   776,
    1654     1036,  1922,   164,   883, -1356,   139,   139,   883,   174, -1356,
    1655      139,   139,   970, -1356, -1356,   139,   139, -1356,   900, 10065,
    1656     1506, 11215,   233,   347, 10065, -1356, 10214, -1356,   883, -1356,
    1657     9885, -1356,   125,  7935,  7935,  7935,  1506, -1356,  6115,  1033,
    1658      414,   929,  1150,  1037,  1038, -1356,  1054,  4628,   555, -1356,
    1659     1124,  1506,  7935,   791,  1811,   791,   656,   704,   900, -1356,
    1660    -1356,   729,   900, -1356, -1356, -1356,   827, -1356,   900,   217,
    1661    10252, -1356,   666,  1061,   679,  1062, -1356,  1065,   217, -1356,
    1662    -1356,  4061,   217,  1059,   553,   573, 10103,  7119,  1590, 10872,
    1663     1954, -1356, -1356,  1066,    39,  1066, -1356, -1356, -1356,   139,
    1664      139, -1356, -1356,   781, -1356,   139, -1356, -1356,  9630,   781,
    1665     1069, 10872, -1356,   976, 11215, -1356, -1356,  1075, -1356, -1356,
    1666    -1356,   791, -1356, 11143, 10872, -1356,  7935,   588,  8240, -1356,
    1667    -1356,   594,  1072,  1077,   820,  2542, -1356, -1356,  7511, -1356,
    1668    -1356,  1074, -1356, -1356,  1088, -1356,  1074,  1090,  3425, 10718,
    1669      205,  1073,    47,  1094,  1082,  1100,   818,  1102,  1110, -1356,
    1670     1113,  1117,  9661,  6759, -1356, 10718, -1356,   161,  1861, -1356,
    1671     6396, 10718,  1120, -1356, -1356,   929,   689, -1356, 10718, -1356,
    1672    -1356,   865, -1356, -1356, -1356, -1356, -1356,   498,   498,   751,
    1673      751,   809,   809,   809,   809,   524,   524,   880,   822,   831,
    1674      819,   869, 10872,   875, -1356, 10252,  1119,  1140,  1142,  1168,
    1675    -1356, -1356, -1356, -1356, -1356, 10252,   691, 10872,  7935, -1356,
    1676     9885, -1356,  7239,  9209,  8905,  6999, -1356, -1356, -1356,   776,
    1677    10252,   927,  1145,  1152,  1158,  1159,  1162,  1166,  1172, -1356,
    1678     4275,  1922, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356,
    1679    -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356,   970,
    1680    -1356, -1356, -1356,   883, -1356, -1356, -1356, -1356, -1356, -1356,
    1681    -1356, -1356,  1176, -1356,  1183,  1185, -1356, -1356,    59,  1120,
    1682     6115, -1356, -1356, -1356,  5043,  1144, -1356, -1356, -1356, -1356,
    1683    -1356,   781,  6242,  1231, -1356, -1356, -1356, -1356,  1165,    59,
    1684    -1356, -1356,   970, -1356, -1356,   970,    29,   970, -1356, -1356,
    1685    -1356, -1356, -1356, -1356,  9380, -1356,   217, -1356,  8784, -1356,
    1686    -1356,  1190,   906,  1187,  1193,  1198, -1356, -1356,  1954, -1356,
    1687    -1356, -1356, -1356, -1356, -1356, -1356,  1092, -1356,   959, -1356,
    1688    -1356,  1195,  1202,  1201, -1356, -1356,  1206,  1210, -1356,   588,
    1689     2182, -1356,   533, -1356,  2542,   883, -1356,  1213,  7511, 10176,
    1690     8867,  1220, -1356, -1356,  1218,  1222,  1224, -1356, 10872,   230,
    1691       -1,  1219, -1356,  1225,   791,  1225,  6639, 10718, -1356, -1356,
    1692     1225, -1356,  1861,  5043, -1356, -1356, -1356, -1356,  1236, 10718,
    1693     1233,   791,  6115, -1356, 10795, -1356,   791, -1356, -1356, 10718,
    1694    -1356,   782,   900, -1356, -1356, -1356, -1356, -1356, -1356, -1356,
    1695      929,  8639, -1356, -1356,  7359,  1237, -1356,   807,   900, -1356,
    1696      825,   836,   900, -1356,   726,  4460, -1356, -1356, -1356, 10252,
    1697    10252, -1356,  8313,  8313, -1356,  1241,  1248,  1246,  1259, -1356,
    1698     1262,   672,   244,  1120, -1356,   791, -1356,  4628, -1356, 10718,
    1699      578, -1356,  6519,  1267,  1271, 10660,  1272,  1277,   122,   304,
    1700      298, 10718,  1279,   217, 10718, 10718,  1280,   678,  1254,  1261,
    1701    -1356, -1356, -1356,  1284, -1356, -1356, -1356, -1356, -1356, -1356,
    1702    -1356, -1356, -1356,   781,  1290, 10718, -1356, 10252, 10252,   139,
    1703     1292, -1356,  9743,  9520,   847,   900, -1356, -1356, -1356, -1356,
    1704    -1356, -1356, -1356, -1356, -1356,  1293,  2182, -1356, -1356,  1275,
    1705    -1356,  1074, -1356, -1356,  1811,  1296, -1356, -1356, -1356,   706,
    1706     1291, -1356,    47,  1305, 10872,  1288,    47,    47,  1314,  1310,
    1707    -1356,  1054, 10718,  1315,  1236,   711,   214,  1317, -1356,  1310,
    1708    -1356,  1323,  1317, -1356, -1356,  1328, -1356, -1356,   970,  1329,
    1709     1330,  6879,  1331,  1339,  1341, -1356, -1356,  1340, -1356, -1356,
    1710      970, -1356, -1356, -1356, -1356,   970, 10718, 10718, 10872,  1344,
    1711    -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356,
    1712    -1356, -1356, 10872, 10872,  1347,  1349,  1317, -1356, -1356,   781,
    1713    -1356, -1356, -1356,  7746, 10176, 10718, 10718,  1394, 10718, -1356,
    1714    -1356,  1333, -1356,  1334, 10718,  1335,  1343, 10718,   992,  1345,
    1715       36,  8158,  1229,   139, -1356, -1356,  6242,  1348,   585, -1356,
    1716    -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356,   970, 10478,
    1717    -1356,  8386,  1360, -1356, -1356, 10176,   592,   598, -1356,  1356,
    1718     1355,   827,  1366, -1356,   179, -1356, -1356, 10718,  1368,  1363,
    1719    -1356, -1356,  1369,   484,   663,   791,  1376,  1378, -1356,  1380,
    1720    -1356, 10252, -1356, -1356, -1356, -1356, -1356,  1382, -1356, 10252,
    1721    10252, 10252, -1356, -1356,  1386, -1356,  1389,  1392,  1393,   682,
    1722     8008,  8124, -1356, -1356,   370, -1356,  1396,  1397, -1356,  8459,
    1723      715,   725,  1395,   760,  6377, -1356, -1356,   641, -1356, -1356,
    1724      796,  1402,  1403,   217,  1453,   961, -1356, -1356, 10718, -1356,
    1725    10795, 10660, -1356, -1356, -1356,  1406,  1407, 10252, -1356, -1356,
    1726    -1356,  1405, -1356, -1356, -1356, -1356, -1356, -1356, 10176,   827,
    1727      287, -1356,  1388,   827,  1236,   361, -1356, -1356, -1356, -1356,
    1728    -1356, -1356, -1356, -1356,  1408, -1356, -1356, -1356, -1356, -1356,
    1729    -1356,  1411,  1412, -1356, -1356, -1356, -1356, -1356, -1356, -1356,
    1730     1418, -1356,  1417, -1356, -1356, 10660,   272, 10718, 10660, -1356,
    1731     1422, 10718, -1356,   306,  1438,  1441, -1356, -1356,  1430,  1431,
    1732     1413,   918, -1356, -1356, -1356, -1356, -1356,  1506,  1811,  1433,
    1733      855,   946, 10872, -1356,   801,  1439, 10718,   791,   791,  1442,
    1734     1448,  1449,  1450, -1356, -1356,  8313,  1452, -1356,  1535, 10872,
    1735     1462, -1356, -1356, 10571, -1356,   803, -1356,  1460, 10660,  1463,
    1736    -1356, -1356,  1489, -1356,  1493, -1356,  1511,  1512, -1356,  1480,
    1737     1508, 10176, -1356, -1356, -1356,   827,   791,  1514,  1484,  1509,
    1738    -1356,  1317,  1317, -1356, -1356, -1356, -1356, -1356, 10660,   301,
    1739    -1356,   958, -1356, -1356,  7597, -1356, -1356,  1502, 10718, -1356,
    1740    10718,  7597,   217,  9953,   217,  9953,  1515, -1356,  1522, -1356,
    1741    -1356, -1356,  1520,   855, -1356,   811, -1356, -1356, 10718,  1526,
    1742     1527, -1356, 10872, 10872, -1356, -1356,  1055,   154, -1356, -1356,
    1743     1510, -1356,  1055, -1356, -1356,  1716,   791, -1356, -1356,   217,
    1744     9953,   217,  9953,  1532,  1517,   791, -1356, -1356, -1356, -1356,
    1745    -1356, 10571,  1528,  1055,  7673, 10718, 10482,  1531,  1055,  1537,
    1746     1716,  2045, -1356, -1356, -1356,  1545, -1356, -1356, -1356, -1356,
    1747     8867, -1356, -1356, -1356, 10349, -1356, 10571, -1356, -1356,  1529,
    1748    10256, -1356, -1356, 10482,   217,  2045,   217,  1558,  1559,   815,
    1749    -1356, 10349, -1356, -1356, -1356, 10256, -1356, -1356, -1356,   217,
    1750      217, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356
     1589    3705,  8889, -1281,   104, -1281, -1281, -1281, -1281, -1281, -1281,
     1590   -1281,    44, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1591   -1281, -1281, -1281, -1281, -1281,   155,   155,   155,  1205,   815,
     1592     110,  6006,   222, -1281, -1281, -1281, -1281, -1281,   130, -1281,
     1593   -1281, -1281,  1267,   189,  3199, -1281, -1281, -1281, -1281, -1281,
     1594   -1281,    31,   144, -1281,  1338, -1281, -1281, -1281, -1281,   153,
     1595    1410,   279,    82,  7674, -1281, -1281,  8086,  1234, -1281, -1281,
     1596   -1281,   981,   359,  7231,   925,   669,   981,  1012, -1281, -1281,
     1597     738,   575, -1281,   981,  1119, -1281,   242, -1281,   416,   419,
     1598   -1281, -1281, -1281, -1281,   277,   144,   155, -1281,   155, -1281,
     1599   -1281, -1281, -1281,  9536,  1338, -1281, -1281,  1338, -1281,  9574,
     1600     321, -1281, -1281, -1281,  2195,  9607, -1281,   565,   565,   565,
     1601   -1281, -1281, -1281,   155, -1281, -1281, -1281,   280,   366,   418,
     1602   -1281, -1281, -1281,   425, -1281, -1281, -1281, -1281, -1281,   443,
     1603     475, -1281, -1281,   120,  8972,  3739,   375,   387,   486,   496,
     1604     514,   527,   541,  8273,  7081,   550,   568, -1281,  9460, -1281,
     1605   -1281, -1281, -1281,   602, -1281,   121,  4456,  4456, -1281,   552,
     1606     298, -1281, -1281, -1281, -1281,   634,   302,   306,   327,   155,
     1607     590, -1281, -1281,  1410,  2454,   696, -1281,    90, -1281,   155,
     1608     155,   144, -1281, -1281,   124, -1281,   155,   155, -1281,  2638,
     1609     658,   667,   565,  6993, -1281, -1281,   678,  3199, -1281, -1281,
     1610     981, -1281, -1281, -1281,   144, -1281,  1338,    31, -1281,  8010,
     1611   -1281,   565,   565,   565,   144, -1281,  1205, -1281,  5198, -1281,
     1612   -1281,   673,   565, -1281,   565, -1281,   130,  8972,  9002,   686,
     1613   -1281,   815,   694,   565, -1281,  1205,   728,   736, -1281,  6006,
     1614     544, -1281, -1281, -1281,  9431, -1281, -1281,  3957, -1281,   696,
     1615      79,  9607,  6464,  2195,  2638, -1281,   157, -1281, -1281,  9574,
     1616    1338,   717,  7703, -1281, -1281,   699, -1281, 10744,   783,   831,
     1617    3925,   787,  6306, 10567, -1281,   827, -1281, -1281, -1281, -1281,
     1618   10625, 10625,   544,  8633,   829,  6306,  9085, -1281, -1281, -1281,
     1619   -1281, -1281, -1281,   862, -1281,  1121,  2197,  6306, -1281,   599,
     1620     388,   472,   354,   593,   830,   867,   873,   970,   245, -1281,
     1621   -1281,   874,   650, -1281,   325, -1281, -1281,  3739, -1281, -1281,
     1622     585,   901, -1281,   747,   901,   958,   130, -1281, -1281,   962,
     1623    9536, -1281,   977,  8746, -1281, -1281,   957,   935,  8355,  6993,
     1624     981, -1281,   981,   565,   565, -1281, -1281, -1281, -1281, -1281,
     1625   -1281,   565,  9645,  1338, -1281, -1281,  9683,  1067, -1281,  9123,
     1626   -1281, -1281, -1281, -1281, -1281, -1281, -1281,   990,  5315,  6306,
     1627   -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1628   -1281, -1281, -1281, -1281,  2195, -1281,   846,   996,   998,  1002,
     1629     864,  1005,  1008,  1026,  2454, -1281, -1281,  1031,    31,  1033,
     1630   -1281, -1281,  1061, -1281, -1281, -1281,  9431, -1281, -1281, -1281,
     1631   -1281, -1281,  2638, -1281,  8972,  8972, -1281,   565,  2195,  7112,
     1632    1338,  8426, -1281, -1281, -1281, -1281,  9431,    79, -1281, -1281,
     1633     981,   144, -1281, -1281,  9431, -1281,  6877, -1281, -1281,   565,
     1634     565,   376,  9716,  1035,  1868,  2111, -1281,   334,   338,   815,
     1635   -1281,  9002,  1059,  1047,   815,   565, -1281, -1281, -1281, -1281,
     1636    9940, -1281,   583,  6755, -1281,   144,  1065, -1281,  2195, 10825,
     1637   10471, -1281, -1281, -1281, -1281,   889,  2638, -1281,  8497,   696,
     1638    7558, -1281, -1281, -1281,  1286,   636,   874,   815,  7703,   868,
     1639    9574, -1281,  7703, -1281, -1281, -1281, -1281,   638, -1281,  1073,
     1640     831,   207,  8633, -1281,  9716, -1281, -1281,  8633, -1281,  8859,
     1641    8633, -1281, -1281, -1281,  1071, -1281,   681,  1077,   668,  1078,
     1642   -1281,  4381,  6724, -1281, -1281, -1281,   328, -1281, -1281, 10490,
     1643   -1281,   385, 10490, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1644   -1281, -1281, -1281,  6464,  6464, -1281,  6306,  6306,  6306,  6306,
     1645    6306,  6306,  6306,  6306,  6306,  6306,  6306,  6306,  6306,  6306,
     1646    6306,  6306,  6306,  6306,  4789,  6464, -1281,   650,  1062, -1281,
     1647   -1281,   155,   155, -1281, -1281,  8972, -1281, -1281,  1061,   544,
     1648   -1281,  1061, 10548, -1281, -1281, -1281,  5232,  6724,  1079,  9198,
     1649    1080, -1281,  9754, -1281, -1281,   602, -1281,  1082,  1185,  1084,
     1650    1899,   185,   874, -1281,   155,   155,   874,   233, -1281,   155,
     1651     155,  1061, -1281, -1281,   155,   155, -1281,   901,  9792,  1338,
     1652   10968,   234,   509,  9792, -1281,  5821, -1281,   874, -1281,  9645,
     1653   -1281,   293,  5525,  5525,  5525,  1338, -1281,  5054,  1072,   558,
     1654     990,  1016,  1083,  1086, -1281,  1074,  4456,   592, -1281,  1172,
     1655    1338,  5525,   544,  2195,   544,   696,   809,   901, -1281, -1281,
     1656     814,   901, -1281, -1281, -1281,   831, -1281,   901,   144,  9940,
     1657   -1281,   682,  1095,   691,  1099, -1281,  1098,   144, -1281, -1281,
     1658    9431,   144,  1103,   362,   407,  9825,  7200,  1999,  6306,  1917,
     1659   -1281, -1281,  1101,    94,  1101, -1281, -1281, -1281,   155,   155,
     1660   -1281, -1281,   815, -1281,   155, -1281, -1281,  3122,   815,  1107,
     1661    6306, -1281,  1059, 10968, -1281, -1281,  1102, -1281, -1281, -1281,
     1662     544, -1281, 10897,  6306, -1281,  5525,   675,  8355, -1281, -1281,
     1663     602,  1108,  1109,  1286,  3745, -1281, -1281,  7703, -1281, -1281,
     1664    1111, -1281, -1281,  1116, -1281,  1111,  1128, 10744,  6464,   146,
     1665    1113,    53,  1136,  1115,  1137,   829,  1131,  1139, -1281,  1142,
     1666    1143,  1696,  6843, -1281,  6464, -1281,   668,  1691, -1281,  6022,
     1667    6464,  1138, -1281, -1281,   990,   708, -1281,  6464, -1281, -1281,
     1668     727, -1281, -1281, -1281, -1281, -1281,   599,   599,   388,   388,
     1669     472,   472,   472,   472,   354,   354,   593,   830,   867,   873,
     1670     970,  6306,   755, -1281,  9940,  1148,  1149,  1152,  1062, -1281,
     1671   -1281, -1281, -1281, -1281,  9940,   713,  6306,  5525, -1281,  9645,
     1672   -1281,  7319,  9311,  9236,  7081, -1281, -1281, -1281,  1185,  9940,
     1673     951,  1160,  1163,  1165,  1166,  1175,  1176,  1182, -1281,  3532,
     1674    1899, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1675   -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,  1061, -1281,
     1676   -1281, -1281,   874, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1677   -1281,  1183, -1281,  1187,  1189, -1281, -1281,    31,  1138,  5054,
     1678   -1281, -1281, -1281,  5315,  1180, -1281, -1281, -1281, -1281, -1281,
     1679     815,  6243,  1272, -1281, -1281, -1281, -1281,  1188,    31, -1281,
     1680   -1281,  1061, -1281, -1281,  1061,    70,  1061, -1281, -1281, -1281,
     1681   -1281, -1281, -1281,  9498, -1281,   144, -1281,  9002, -1281, -1281,
     1682    1201,   818,  1208,  1212,  1213, -1281, -1281,  1917, -1281, -1281,
     1683   -1281, -1281, -1281, -1281, -1281,  1868, -1281,  1047, -1281, -1281,
     1684    1210,  1216,  1211, -1281, -1281,  1218,  1223, -1281,   675,  1777,
     1685   -1281,   562, -1281,  3745,   874, -1281,  1226,  7703,  9863,  8972,
     1686    1230, -1281, -1281,  1225,  1235,  1238, -1281,  6306,   252,    40,
     1687    1231, -1281,  1242,   544,  1242,  6724,  6464, -1281, -1281,  1242,
     1688   -1281,  1691,  5315, -1281, -1281, -1281, -1281,  1236,  6464,  1245,
     1689     544,  5054, -1281, 10490, -1281,   544, -1281, -1281,  6464, -1281,
     1690     850,   901, -1281, -1281, -1281, -1281, -1281, -1281, -1281,   990,
     1691    8746, -1281, -1281,  7438,  1249, -1281,   856,   901, -1281,   872,
     1692     904,   901, -1281,   565,  4646, -1281, -1281, -1281,  9940,  9940,
     1693   -1281,  8426,  8426, -1281,  1252,  1255,  1264,  1271, -1281,  1253,
     1694     594,   247,  1138, -1281,   544, -1281,  4456, -1281,  6464,   459,
     1695   -1281,  6603,  1274,  1279, 10343,  1281,  1283,   301,   308,   344,
     1696    6464,  1285,   144,  6464,  6464,  1284,   498,  1282,  1268, -1281,
     1697   -1281, -1281,  1289, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1698   -1281, -1281,   815,  1296,  6464, -1281,  9940,  9940,   155,  1301,
     1699   -1281,  9349,  4935,   934,   901, -1281, -1281, -1281, -1281, -1281,
     1700   -1281, -1281, -1281, -1281,  1305,  1777, -1281, -1281,  1290, -1281,
     1701    1111, -1281, -1281,  2195,  1309, -1281, -1281, -1281,   734,  1312,
     1702   -1281,    53,  1317,  6306,  1303,    53,    53,  1327,  1323, -1281,
     1703    1074,  6464,  1328,  1236,  1036,   113,  1326, -1281,  1323, -1281,
     1704    1331,  1326, -1281, -1281,  1337, -1281, -1281,  1061,  1340,  1343,
     1705    6962,  1342,  1344,  1350, -1281, -1281,  1353, -1281, -1281,  1061,
     1706   -1281, -1281, -1281, -1281,  1061,  6464,  6464,  6306,  1355, -1281,
     1707   -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1708   -1281,  6306,  6306,  1356,  1357,  1326, -1281, -1281,   815, -1281,
     1709   -1281, -1281,  7939,  9863,  6464,  6464,  1423,  6464, -1281, -1281,
     1710    1341, -1281,  1345,  6464,  1347,  1358,  6464,  1097,  1360,    74,
     1711    8776,  1197,   155, -1281, -1281,  6243,  1361,   467, -1281, -1281,
     1712   -1281, -1281, -1281, -1281, -1281, -1281, -1281,  1061, 10467, -1281,
     1713    8497,  1362, -1281, -1281,  9863,   482,   494, -1281,  1372,  1383,
     1714     831,  1394, -1281,    66, -1281, -1281,  6464,  1395,  1393, -1281,
     1715   -1281,  1399,   430,   657,   544,  1400,  1401, -1281,  1406, -1281,
     1716    9940, -1281, -1281, -1281, -1281, -1281,  1412, -1281,  9940,  9940,
     1717    9940, -1281, -1281,  1413, -1281,  1415,  1425,  1427,   623,  8125,
     1718    8240, -1281, -1281,   278, -1281,  1426,  1429, -1281,  8568,   745,
     1719     759,  1430,   769,  6445, -1281, -1281,   502, -1281, -1281,   770,
     1720    1434,  1436,   144,  1487,   911, -1281, -1281,  6464, -1281, 10490,
     1721   10343, -1281, -1281, -1281,  1442,  1444,  9940, -1281, -1281, -1281,
     1722    1437, -1281, -1281, -1281, -1281, -1281, -1281,  9863,   831,   269,
     1723   -1281,  1424,   831,  1236,   373, -1281, -1281, -1281, -1281, -1281,
     1724   -1281, -1281, -1281,  1443, -1281, -1281, -1281, -1281, -1281, -1281,
     1725    1452,  1454, -1281, -1281, -1281, -1281, -1281, -1281, -1281,  1458,
     1726   -1281,  1457, -1281, -1281, 10343,   148,  6464, 10343, -1281,  1462,
     1727    6464, -1281,   171,  1484,  1486, -1281, -1281,  1465,  1476,  1455,
     1728     905, -1281, -1281, -1281, -1281, -1281,  1338,  2195,  1471,   862,
     1729     918,  6306, -1281,   772,  1477,  6464,   544,   544,  1480,  1482,
     1730    1483,  1485, -1281, -1281,  8426,  1472, -1281,  1555,  6306,  1493,
     1731   -1281, -1281, 10254, -1281,   790, -1281,  1467, 10343,  1468, -1281,
     1732   -1281,  1511, -1281,  1513, -1281,  1507,  1529, -1281,  1496,  1519,
     1733    9863, -1281, -1281, -1281,   831,   544,  1520,  1499,  1515, -1281,
     1734    1326,  1326, -1281, -1281, -1281, -1281, -1281, 10343,   258, -1281,
     1735     922, -1281, -1281,  7790, -1281, -1281,  1501,  6464, -1281,  6464,
     1736    7790,   144,  9716,   144,  9716,  1528, -1281,  1530, -1281, -1281,
     1737   -1281,  1524,   862, -1281,   794, -1281, -1281,  6464,  1540,  1542,
     1738   -1281,  6306,  6306, -1281, -1281,  1051,   133, -1281, -1281,  1510,
     1739   -1281,  1051, -1281, -1281,  2099,   544, -1281, -1281,   144,  9716,
     1740     144,  9716,  1546,  1525,   544, -1281, -1281, -1281, -1281, -1281,
     1741   10254,  1541,  1051,  7866,  6464, 10165,  1543,  1051,  1551,  2099,
     1742    2338, -1281, -1281, -1281,  1552, -1281, -1281, -1281, -1281,  8972,
     1743   -1281, -1281, -1281, 10072, -1281, 10254, -1281, -1281,  1531,  9979,
     1744   -1281, -1281, 10165,   144,  2338,   144,  1557,  1559,   795, -1281,
     1745   10072, -1281, -1281, -1281,  9979, -1281, -1281, -1281,   144,   144,
     1746   -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281
    17511747};
    17521748
     
    17541750static const yytype_int16 yypgoto[] =
    17551751{
    1756    -1356,  4068,  1513, -1356,  1381, -1356,    41,     0,  -254, -1356,
    1757      593,  -523,  -482,  -960,  -143,  5028, -1356,  -101,   576,   581,
    1758      386,   577,  1101,  1105,  1106,  1099,  1107, -1356,  -593,  -585,
    1759     4966,  -933,  -708,  -942, -1356,  -273,  -719,   379, -1356,  1404,
    1760    -1356,   457, -1092, -1356, -1356,   195, -1356,  -844, -1059,   308,
    1761    -1356, -1356, -1356, -1356,   124, -1118, -1356, -1356, -1356, -1356,
    1762    -1356, -1356,   382, -1355,    53, -1356,  -496, -1356,   558,   349,
    1763    -1356,   226, -1356,  -307, -1356, -1356, -1356,   610,  -832, -1356,
    1764    -1356,    13,  -961,   169,  2725, -1356, -1356, -1356,   -79, -1356,
    1765      189,   845,  -184,  1482,  3902, -1356, -1356,   192,   133,   657,
    1766     -251,  1620, -1356,  1796, -1356, -1356,   156,  2416, -1356,  2575,
    1767      798, -1356, -1356,  -404,  -428,  1252,  1253,   761,  1003,   302,
    1768    -1356, -1356,  1245,   764,  -253, -1356,   -24,  -132,  -469, -1356,
    1769    -1356,  -983,  -881,     4,   862,  1128,   -43, -1356,   561,  -100,
    1770     -262,  -193,  -152,   721,   826, -1356,  1071, -1356,  2692,   907,
    1771     -449,   971, -1356, -1356,   765, -1356,  -227, -1356,   -60, -1356,
    1772    -1356, -1356, -1248,   485, -1356, -1356, -1356,  1242, -1356,    45,
    1773    -1356, -1356,  -846,  -109, -1333,  -138,  3289, -1356,  1880, -1356,
    1774      969, -1356,  -161,   268,  -181,  -177,  -175,     2,   -39,   -35,
    1775      -33,   769,    30,    31,    69,  -146,  -162,  -151,  -147,  -140,
    1776     -277,  -521,  -506,  -484,  -575,  -313,  -516, -1356, -1356,  -528,
    1777     1156,  1157,  1163,  2484,  4688,  -570,  -557,  -534,  -533,  -478,
    1778    -1356,  -432,  -693,  -685,  -681,  -580,  -201,  -236, -1356, -1356,
    1779      265,   180,   -86, -1356,  3600,   232,  -625,  -376
     1752   -1281,  4254,  1590, -1281,  1409, -1281,    52,     0,  -229, -1281,
     1753     596,  -527,  -497,  -931,   -99,  4508, -1281,   358,   609,   563,
     1754     518,   591,  1104,  1105,  1110,  1117,  1112, -1281,   613,  -339,
     1755    5346,  -893,  -690,  -919, -1281,   401,  -634,   444, -1281,   753,
     1756   -1281,   449, -1224, -1281, -1281,   191, -1281, -1265,  -724,   305,
     1757   -1281, -1281, -1281, -1281,   129, -1170, -1281, -1281, -1281, -1281,
     1758   -1281, -1281,   382, -1175,    71, -1281,  -381, -1281,   560,   356,
     1759   -1281,   229, -1281,  -338, -1281, -1281, -1281,   632,  -691, -1281,
     1760   -1281,    11, -1000,    10,  2865, -1281, -1281, -1281,  -125, -1281,
     1761     275,   363,  -194,  1416,  4157, -1281, -1281,    24,    25,   374,
     1762    -202,  1621, -1281,  2138, -1281, -1281,   112,  2165, -1281,  2832,
     1763     139, -1281, -1281,  -416,  -434,  1276,  1278,   786,  1028,   400,
     1764   -1281, -1281,  1269,   793,  -513, -1281,  -522,   -57,  -636, -1281,
     1765   -1281,  -959,  -994,   122,   819,  1153,   135, -1281,  1441,   296,
     1766    -299,  -212,  -109,   749,   844, -1281,  1087, -1281,  2859,  1478,
     1767    -462,  1000, -1281, -1281,   778, -1281,  -233, -1281,   -72, -1281,
     1768   -1281, -1281, -1232,   504, -1281, -1281, -1281,  1259, -1281,    68,
     1769   -1281, -1281,  -850,   -96, -1280,   -93,  1665, -1281,  2401, -1281,
     1770     993, -1281,  -164,   689,  -177,  -176,  -170,     2,   -39,   -33,
     1771     -28,  1052,    48,    75,    93,  -100,  -167,  -166,  -153,  -148,
     1772    -277,  -569,  -500,  -490,  -543,  -300,  -514, -1281, -1281,  -506,
     1773    1174,  1177,  1181,  2149,  5126,  -572,  -549,  -544,  -523,  -484,
     1774   -1281,  -427,  -665,  -663,  -660,  -602,  -320,  -271, -1281, -1281,
     1775     102,   140,   -84, -1281,  3728,   128,  -603,  -447
    17801776};
    17811777
     
    17831779   positive, shift that token.  If negative, reduce the rule which
    17841780   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1785 #define YYTABLE_NINF -523
     1781#define YYTABLE_NINF -522
    17861782static const yytype_int16 yytable[] =
    17871783{
    1788       47,   112,    96,   398,   148,   933,   266,   399,   149,   400,
    1789      150,   452,   176,   934,   113,   382,   383,   935,   259,   427,
    1790      791,   527,   401,   707,   406,   439,   512,   505,   712,   112,
    1791      112,   895,    47,   402,    96,   618,   853,   403,   768,   407,
    1792      975,   854,   111,    47,   404,    47,  1152,   160,   409,   871,
    1793      751,   820,   846,    48,   756,    47,  1092,  1144,   718,  1184,
    1794     1185,    47,   260,   192,    47,   261,   215,    47,   342,   225,
    1795     1091,   613,   995,   151,   152,   847,   848,   142,    31,   279,
    1796      218,   112,   112,   398,   933,    48,  1462,   399,   842,   400,
    1797     1399,   424,   934,   845,   201,  1196,   935,   779,   951,  1318,
    1798      574,  1202,   401,   843,   406,    47,   936,    31,    47,  1135,
    1799      679,   536,   153,   402,   937,    47,  1136,   403,   122,   407,
    1800     1508,   749,   482,   484,   404,   844,   408,   637,   936,   290,
    1801      688,   641,    31,    68,   857,   575,   950,   280,   692,  1099,
    1802      864,  1219,  1220,   605,   202,   148,    47,   121,   160,   149,
    1803      410,   150,   682,   684,    47,  1537,    75,  1539,   978,    47,
    1804     1462,   372,  1186,   683,   685,    68,   167,   446,  1319,    54,
    1805      114,   483,   141,   578,   438,   410,   478,   251,    31,   410,
    1806      105,   105,   517,   579,    47,    47,   467,   160,    75,    61,
    1807      168,    31,    67,  1482,   109,   534,   535,   211,  -234,  -234,
    1808       47,    54,   418,    31,   410,    41,    42,   556,    47,  1260,
    1809      160,   919,   105,    31,   151,   152,   677,    47,   746,  1008,
    1810       47,    61,   442,   842,    67,   148,   585,   112,   490,   149,
    1811     1201,   150,   586,   209,   483,   507,   219,   858,   843,   755,
    1812      527,   861,   112,   535,   674,   527,   112,   105,   527,   143,
    1813       47,   112,    96,   153,  1210,   596,   576,   760,   770,   675,
    1814      844,   488,   878,   410,    47,    47,   881,   160,    95,  -234,
    1815      777,    47,   410,   855,   145,   610,  1037,   165,    47,   535,
    1816      778,  1038,   846,   862,   342,   610,   666,   536,   740,  1342,
    1817      712,  1014,   472,   112,   703,   470,  1343,  1051,   618,  1263,
    1818       95,  1154,   813,    48,   176,   847,   848,  1184,  1185,   705,
    1819      162,   147,   536,    95,   681,  1344,  1419,  1420,   842,   154,
    1820      686,   638,   976,  1025,   824,   642,   674,  1264,    47,   188,
    1821      372,   170,    95,   843,   524,    95,   180,   536,   478,  1134,
    1822     1192,   675,   165,  1202,   200,   874,  1010,    47,    47,   875,
    1823     1419,  1420,  1216,   441,  -290,   844,  1015,   739,   478,   246,
    1824     1186,   831,   109,   857,    47,   761,   478,  1193,    47,   536,
    1825      109,  1026,   762,    41,    42,   162,   109,   327,   249,   653,
    1826     1092,    41,    42,    68,   926,   936,  1421,    41,    42,   440,
    1827      854,   886,   887,  1133,  1091,    47,  1402,  1492,   500,   605,
    1828      501,   783,   846,  -518,   880,    47,    75,   372,  1551,   905,
    1829     1186,    75,   251,   763,    95,   764,  1153,  1214,   765,    54,
    1830     1430,   771,   916,    47,  1193,   847,   848,    95,   605,    47,
    1831      105,    47,  1457,   605,  1550,  1566,  1212,  1521,   109,    61,
    1832      435,   871,    67,  1526,   479,   263,   342,  1451,  1452,    41,
    1833       42,   376,   397,   188,  1561,    47,   794,   795,   796,   876,
    1834      112,  1565,   -10,   877,  1546,   112,  1051,   377,   386,  1553,
    1835      327,  -112,  1381,   434,   112,   728,    95,   789,  1406,    47,
    1836      251,   329,   211,   958,   387,  -112,  -112,    47,    95,   372,
    1837     -441,    47,  -112,    96,  -467,    47,   740,  1041,   112,   535,
    1838      112,  -112,   435,  1202,   460,   896,  1107,   505,   979,  -442,
    1839     1202,   885,   885,   885,   707,   111,  1259,   398,    95,  1121,
    1840      653,   399,  1150,   400,  1102,  -467,   275,  -467,   909,   165,
    1841      885,  -467,   486,   277,  1186,   434,   401,   112,   618,   406,
    1842      653,   936,   112,   653,    48,   278,  1038,   402,   389,  1252,
    1843      391,   403,  1172,  1174,   407,   907,   109,   330,   404,   531,
    1844     1107,   767,   162,  1202,   390,   739,   392,    41,    42,   331,
    1845     1181,  1182,   740,    75,  1036,  1017,   607,   332,   784,  1466,
    1846      370,   767,   693,   790,   767,  1379,   393,   873,   586,  1118,
    1847      112,   140,   333,    75,  1019,  1348,    95,    47,   831,   936,
    1848      936,    75,   394,   888,   885,   334,   479,  1292,  1293,    47,
    1849      342,    47,   478,   211,   564,   565,   612,   557,   904,   884,
    1850      884,   884,   558,   559,    68,   587,   479,   410,  1231,  1232,
    1851       47,   472,  1498,   535,   479,   897,  1250,   713,   884,  1498,
    1852     1254,   739,   240,   243,    37,   876,    47,    75,    40,  1117,
    1853      566,   567,   112,   714,   955,    41,    42,   327,   327,   715,
    1854       54,    47,  1429,   112,    47,   112,   898,   335,   652,   713,
    1855      730,   105,   899,   188,   712,   716,   731,  1466,   737,   994,
    1856       61,    43,  1466,    67,   728,   929,   342,  1036,   831,   715,
    1857      384,   146,  1547,   371,  1199,  1049,   885,   959,    47,   610,
    1858       47,  1199,  1466,   375,   906,   930,   908,   960,  1333,  1466,
    1859     1200,   388,   884,   112,  1335,   507,  1096,  1324,   460,   112,
    1860      408,   460,   747,   704,  1334,   228,   535,   460,   748,   229,
    1861     1336,   112,   233,   327,   235,   109,     8,     9,    10,    11,
    1862       12,   244,  1056,  1129,    47,    47,    41,    42,   757,  1500,
    1863      285,  1501,   327,   590,   758,   410,   396,   775,    47,    95,
    1864     -291,    41,    42,   612,   441,    31,   431,     8,     9,    10,
    1865       11,    12,   954,  1382,  1350,   774,   920,   674,   531,   425,
    1866      531,   775,   775,   531,  -105,   703,   531,   521,  -105,   922,
    1867      833,   449,   675,    34,  1367,   775,    31,  1391,  1368,  1003,
    1868      705,  1016,  1356,   464,   884,  1004,  1548,   731,   426,   936,
    1869     1358,  1359,  1360,   910,   161,   410,  1248,  1447,   327,   728,
    1870      605,  -112,   586,  -112,    34,  1375,   936,  -112,   462,   728,
    1871      193,   775,   607,   216,  1459,  1376,   226,   933,   913,    47,
    1872      410,   775,  -112,  -112,   728,   934,   115,    75,    37,   935,
    1873     1176,    47,    40,   109,   465,   138,   139,   211,  1395,    41,
    1874       42,   872,   213,   109,    41,    42,   607,   831,   228,   468,
    1875     1378,   211,   560,   561,    41,    42,   775,   841,   979,   612,
    1876      479,   469,   979,   979,   491,   839,   737,   610,   511,    75,
    1877      158,  1156,    37,   410,   653,   611,    40,   562,   563,   936,
    1878      936,   112,   653,    41,    42,  1197,  1383,  1519,  1459,   290,
    1879     1183,  1448,   775,  1467,   213,   161,  1168,  1445,   410,   775,
    1880      535,  1514,   479,   515,    47,  1571,   520,  1515,   373,   744,
    1881      532,   586,  1300,  1301,  1171,  1303,   610,   536,    47,   745,
    1882      654,  1307,   570,  1078,  1310,  1173,    47,   610,   572,   257,
    1883      801,   802,   803,   804,   161,   158,  1236,   213,   410,   571,
    1884      740,   517,   737,   573,    47,   211,   932,   109,   704,   138,
    1885      139,   214,   568,   569,   537,   538,   539,   161,    41,    42,
    1886     1007,  1004,  1122,   460,   112,   251,   329,   410,   241,   443,
    1887      323,   775,  1009,   653,   418,   670,   410,  1340,   540,   339,
    1888      541,   112,   542,   543,   653,   941,   112,   941,   228,   242,
    1889      233,   338,   841,   612,   576,  1243,   329,   410,   213,  1388,
    1890     1389,   717,  -438,   214,   594,  1138,   464,   833,   597,   739,
    1891      488,   329,   410,  1439,  1004,    68,   855,   329,   610,   676,
    1892      740,   647,  1146,   728,   728,   767,   667,  1146,   668,   429,
    1893     1311,  1312,  1313,   433,   669,   112,   213,   671,    75,   750,
    1894      213,   754,  1445,  1446,   672,   653,   214,   673,   112,   112,
    1895      112,    54,   678,  1533,  1493,  1494,    37,   535,   173,   174,
    1896       40,   256,   105,   323,   455,  1400,   696,    41,    42,  1400,
    1897      721,    61,   719,   112,    67,  -238,  1146,   373,   228,  1419,
    1898     1420,   728,   728,   759,  1425,   772,  1078,   841,   776,  1211,
    1899     1213,  1215,   780,   371,   109,   433,   138,   237,   495,   612,
    1900     1349,  1351,  1352,  1107,    47,    41,    42,   214,   834,     2,
    1901      205,     4,     5,     6,     7,   342,   797,   798,  1123,   529,
    1902      836,   838,   158,   799,   800,   805,   806,   213,   849,   105,
    1903      -12,   238,  -292,   901,   -13,   893,   239,   441,  1370,     8,
    1904        9,    10,    11,    12,    37,   214,   182,   183,    40,   214,
    1905      894,   921,   923,   928,   373,    41,    42,   924,     8,     9,
    1906       10,    11,    12,   699,   949,  -415,   595,  -522,    31,   602,
    1907      748,  1483,   963,   460,    35,    68,    36,   970,   984,   112,
    1908      972,   698,   327,   410,   983,   977,   704,    31,   635,   699,
    1909      985,   700,   639,   892,   704,   339,    34,   218,    75,   987,
    1910      988,    47,   109,   989,   138,   139,   653,   990,   213,  1011,
    1911     -293,    54,   612,    41,    42,    34,   999,     8,     9,    10,
    1912       11,    12,   105,  1329,     2,   205,     4,     5,     6,     7,
    1913     1012,   479,  1013,   872,  1204,  1027,   214,    -3,  1122,  1058,
    1914     1093,   891,  1028,   112,   112,   112,    31,  1078,  1029,  1030,
    1915      323,   323,  1031,   227,   945,   728,  1032,   578,   213,   410,
    1916      948,  1080,  1033,   728,   728,   728,  1044,   579,   128,  1443,
    1917      129,   130,   131,  -403,    34,  -402,  1095,  1104,   455,    41,
    1918       42,   455,  1103,  1105,  1146,  1146,  1146,   455,  1106,    35,
    1919     1110,    36,  1111,  1559,   537,   538,   539,  1112,  1113,   115,
    1920      653,   653,  1114,  1120,     2,   205,     4,     5,     6,     7,
    1921     1130,   728,  1131,   729,   775,  1137,   211,   214,   540,   993,
    1922      541,  1132,   542,  1320,   495,  1145,   323,  1166,   495,   398,
    1923      737,  1122,  1142,   399,  1442,   400,  1189,  1187,   529,    68,
    1924      529,   767,  1078,   529,  1188,   323,   529,   460,   401,  1190,
    1925      406,  1223,   209,   219,  1191,   653,  1205,   339,   653,   402,
    1926     1206,  1208,    75,   403,   105,   407,  1209,   214,  1217,    35,
    1927      404,    36,  1221,  1224,   674,    54,  1532,    47,    47,    -3,
    1928     1229,   213,  1234,  1240,   500,  1249,   105,   112,   112,   675,
    1929      109,  1244,   138,   139,  1123,    61,  1078,  1251,    67,  1078,
    1930     1253,    41,    42,   653,  1256,   105,  1257,  1261,   653,   213,
    1931      737,   323,   441,  1265,   213,  1268,   175,    68,  1270,  1272,
    1932     1273,  1302,   829,  1274,  1207,   602,   112,   752,  1146,  1146,
    1933     1278,  1275,   753,  1276,  1122,   654,  1285,   172,   653,  1294,
    1934       75,  1295,  1061,  1323,  1078,  1305,  1306,  1308,   440,  1078,
    1935     1331,  1337,  1339,    54,   870,  1309,  1341,  1317,  1346,   602,
    1936     1345,  1347,    64,   116,   105,   879,   175,  1484,  1353,   175,
    1937     1354,   148,  1355,   479,  1357,   149,  1204,   150,  1363,  1078,
    1938      252,  1364,  1365,  1366,  1377,    47,   112,  1123,  1373,  1374,
    1939      214,  1384,  1385,  1313,    64,   112,  1393,  1394,   105,  1396,
    1940     1403,   653,   213,  1413,  1414,  1406,   653,   159,  -404,  1417,
    1941       47,    47,  1428,   160,  1432,   175,   213,  1434,   214,  1436,
    1942     1437,   339,   729,   214,   653,  1438,   653,  1534,  1444,   220,
    1943      653,  1449,  1453,   653,   654,    47,  1542,   372,  1454,  1455,
    1944     1456,   653,  1078,   455,   166,   653,   171,  1078,  1368,   177,
    1945      178,   179,    37,   181,   173,   174,    40,  1458,    37,  1463,
    1946      173,   174,    40,    41,    42,  1078,   258,  1078,   232,    41,
    1947       42,  1078,  1468,   495,  1078,  1470,   416,    68,   175,  1472,
    1948      247,   248,  1078,  1474,    68,  1080,  1078,  1476,  1478,   375,
    1949     1123,    37,  1480,   182,   183,    40,  1487,   339,  1481,   436,
    1950       75,   105,    41,    42,  1486,  1509,  1488,    75,   328,   444,
    1951      213,   214,  1511,    54,  1499,  1513,   258,   349,  1517,  1518,
    1952       54,  1540,  1525,  1545,   105,   214,  1552,  1554,   609,  1541,
    1953      610,   105,   175,   479,  1061,  1556,  1204,    68,   611,   175,
    1954      479,  1562,    37,  1204,   182,   183,    40,   405,  1569,  1570,
    1955     1222,   807,   810,    41,    42,  1018,   808,   729,   809,   829,
    1956       75,   811,   423,  1322,   212,   428,   430,   729,  1520,  1572,
    1957      159,  1431,  1404,    54,   231,  1255,  1387,  1502,   528,   698,
    1958     1392,   410,   729,  1228,   105,   694,   695,  1108,   942,   700,
    1959      723,   447,  1109,   479,  1141,   450,  1204,   451,   826,   965,
    1960     1057,     8,     9,    10,    11,    12,   466,   973,   175,   900,
    1961     1332,  1119,    64,   742,   816,   817,   212,   480,  1506,   214,
    1962     1506,   818,     0,     0,     0,   175,     0,   487,     0,   175,
    1963       31,     0,     0,     0,  1418,   430,     0,  1426,     0,     0,
    1964     1298,     0,     0,     0,     0,     0,     0,     0,     0,   829,
    1965        0,     0,   327,   455,     0,  1506,     0,  1506,    34,   212,
    1966        0,     0,     0,    37,     0,   182,   183,    40,    37,     0,
    1967      182,   183,    40,     0,    41,    42,    73,     0,   486,    41,
    1968       42,     0,  1465,     0,     0,     0,    37,  1469,   182,   183,
    1969       40,     0,   175,   495,  1124,   323,     0,    41,    42,     0,
    1970      184,     0,   213,   258,     0,  1530,   603,   410,    73,     0,
    1971      185,     0,   631,     0,     0,  1531,     0,  1491,     0,     0,
    1972      212,     0,     0,   184,     0,   636,   690,     0,     0,   636,
    1973        0,     0,   258,   185,     0,     0,     0,   601,   608,     0,
    1974        0,     0,     0,   221,     0,     0,   870,     0,     0,   632,
    1975      633,     8,     9,    10,    11,    12,     0,     0,   212,     0,
    1976      732,     0,   212,    37,     0,   182,   183,    40,     0,     0,
    1977        0,     0,     0,     0,    41,    42,     0,     0,   506,   480,
    1978       31,   729,   729,     0,     0,     0,   125,   125,   125,     0,
    1979        0,     0,     0,     0,   349,     0,     0,   528,     0,   480,
    1980      264,     0,   528,  1560,     0,   528,     0,   480,    34,  1560,
    1981      265,   214,     8,     9,    10,    11,    12,     0,     0,     0,
    1982     1560,     0,     0,     0,  1560,     0,     0,   455,   829,     0,
    1983        0,   352,     0,   724,     0,     0,   430,     0,     0,   729,
    1984      729,    31,     0,     0,     8,     9,    10,    11,    12,   212,
    1985      777,   738,   410,    64,     0,     0,     0,   125,   175,   125,
    1986      778,   430,     0,     0,     0,   430,     0,     0,     0,    34,
    1987        0,     0,     0,    31,    37,     0,   182,   183,    40,     0,
    1988        0,   213,     0,     0,   274,    41,    42,     0,     0,     0,
    1989        0,   175,     0,     0,   258,   349,     0,     0,     0,     0,
    1990        0,    34,     0,     0,     0,   448,    37,   175,   182,   183,
    1991       40,   609,     0,   610,     0,     0,     0,    41,    42,     0,
    1992        0,   611,   175,     0,     0,     0,    73,     0,     0,     0,
    1993      212,    73,     0,     0,     0,     8,     9,    10,    11,    12,
    1994      125,   819,     0,   698,     0,   410,   339,   212,   125,     0,
    1995      125,   125,     0,   700,     0,   125,     0,   125,   125,   636,
    1996      832,     0,   603,   918,    31,     0,     0,     0,     0,     0,
    1997     1124,     0,   925,   851,     0,     0,   927,   213,     0,     0,
    1998      212,  1330,     0,     8,     9,    10,    11,    12,     0,     0,
    1999      214,   603,    34,     0,     0,     0,   603,    37,     0,   182,
    2000      183,    40,   636,     0,     0,   349,   349,   349,    41,    42,
    2001        0,     0,    31,   729,     0,     0,     0,     0,     0,   175,
    2002        0,   729,   729,   729,   349,     0,   221,   125,     0,     0,
    2003        0,     0,     0,     0,  1530,     0,   410,     0,     0,     0,
    2004       34,     0,   724,     0,  1531,    37,     0,   182,   183,    40,
    2005        0,     0,     0,   480,     0,     0,    41,    42,   258,   738,
    2006        0,     0,   938,  1124,     0,     0,     0,     0,     0,   729,
    2007        0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2008        0,     0,   264,     0,     0,     0,   214,     0,     0,     0,
    2009        0,     0,   265,    73,     0,   480,     0,     0,   349,     0,
    2010        0,    31,     0,   212,     0,     0,     0,   964,   352,     0,
    2011      430,     0,     0,    73,     0,     0,     0,     0,   952,     0,
    2012      953,    73,     0,     0,     0,     0,     0,   956,   957,    34,
    2013        0,   212,   962,     0,   258,   738,   212,     0,     0,     0,
    2014      992,     0,     0,     0,   967,     0,     0,   352,     0,   971,
    2015      544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
    2016        0,     0,     0,     0,     0,   352,  1124,    73,     0,     0,
    2017        0,   959,     0,   610,     0,  1000,     0,   724,     0,     0,
    2018        0,   960,     0,     0,   554,   175,     0,   724,     0,     0,
    2019      349,     0,   636,     0,     0,  1024,   636,   832,  1505,     0,
    2020     1505,     0,   724,     0,     0,     0,     0,     0,     0,   352,
    2021     1101,     0,  1035,     0,     0,     0,     0,     0,     0,     0,
    2022      601,     0,     0,     0,   212,     0,     0,     0,     0,     0,
    2023        0,     0,     0,     0,     0,  1505,     0,  1505,   212,     0,
     1784      46,   111,    95,   147,   451,   438,   397,   398,   426,   148,
     1785      53,   113,   112,   399,   149,   790,   400,   401,   265,   258,
     1786     405,   711,   767,   604,    66,    67,   870,   706,   111,   111,
     1787     402,    46,   932,    95,   933,   403,   750,   934,   853,   841,
     1788     755,    53,    46,   918,    46,   717,   159,   617,  1185,   748,
     1789     511,  1091,   894,   110,    46,    66,    67,   381,   382,   845,
     1790      46,  1201,   191,    46,   846,   214,    46,   852,   224,   341,
     1791     612,    47,   819,   208,  1151,   504,   218,   217,   678,  1143,
     1792     111,   111,  1183,  1184,   406,   847,   397,   398,   210,   994,
     1793     150,   636,   408,   399,   844,   640,   400,   401,   687,   141,
     1794     405,   778,    47,   423,    46,  1398,   691,    46,   842,   200,
     1795     402,   932,    74,   933,    46,   403,   934,   151,   843,   950,
     1796     883,   883,   883,  1195,   974,   682,   684,   856,    30,   477,
     1797     885,   886,    30,   863,   289,   152,  1317,   166,  1461,   883,
     1798     104,   104,   407,    74,   147,    46,   161,   159,   904,  1134,
     1799     148,   535,   121,    46,   445,   149,  1135,  1465,    46,   201,
     1800     371,   167,    30,   977,   406,   857,   481,   483,   739,   860,
     1801     278,   104,   164,   466,   841,  1341,  -234,  -234,  1009,  1098,
     1802    1218,  1219,  1342,    46,    46,   120,   159,   482,  1014,   175,
     1803     877,  1418,  1419,    30,   880,    30,   676,  1262,   250,    46,
     1804     409,   754,   212,  1025,   409,  1318,   104,    46,  1481,   159,
     1805    1090,   161,  1461,   883,  1418,  1419,    46,   745,   140,    46,
     1806     769,   441,   957,    30,   147,  1263,   111,   535,   279,   439,
     1807     148,   150,   417,   142,   409,   149,   375,   164,   144,   259,
     1808     673,   111,   260,   842,   440,   111,  1185,  -234,  1259,    46,
     1809     111,    95,   376,   843,   212,  1465,   595,   169,   151,    53,
     1810    1465,  1420,   975,    46,    46,   487,   159,   409,   179,   841,
     1811      46,    30,   326,    66,    67,    60,   152,    46,  1037,   604,
     1812    1465,   759,   199,   711,  1429,   341,   823,  1465,   535,   845,
     1813     702,   477,   111,   854,   846,   609,  1185,   212,   665,  1507,
     1814     153,  1549,   471,  1201,   674,   883,    60,  1036,   604,   433,
     1815     617,   477,  1013,   604,  1016,   847,   760,   469,  1153,   477,
     1816      47,  1560,   673,   761,  1024,   830,   680,    46,  1564,   371,
     1817    1183,  1184,   685,   535,  1536,   434,  1538,  1343,   842,   573,
     1818     459,   861,  1191,   609,   523,   873,    46,    46,   843,   874,
     1819     535,   437,   925,  1491,   704,  1550,   856,   245,   212,   936,
     1820    1133,    74,  -290,    46,   114,   326,    74,    46,   879,  1192,
     1821    1200,   433,   108,   210,   574,  1091,   739,  1401,   652,   108,
     1822    1192,   949,  1565,    40,    41,   250,   674,   853,   -10,   104,
     1823      40,    41,  -112,  -112,    46,   530,   212,   434,   161,   108,
     1824     212,   482,  1180,  1181,    46,   489,   371,   157,  -112,   845,
     1825      40,    41,   506,   385,   846,   108,   248,   388,   870,  -517,
     1826    1185,   390,    46,   575,   164,  1040,    40,    41,    46,   386,
     1827      46,   738,  1209,   389,   584,   847,  1215,   391,   782,  1211,
     1828     585,   227,   392,   563,   564,   228,   915,   341,   232,   712,
     1829     234,   262,   739,   714,    46,  1456,   108,   243,   393,   111,
     1830    1230,  1231,  1213,  1201,   111,   713,   256,    40,    41,   715,
     1831    1201,   606,   157,   111,  -440,  1450,  1451,   712,    46,   565,
     1832     566,   175,  -112,   250,   328,   692,    46,   212,   371,  1405,
     1833      46,   585,    95,   928,    46,   788,   329,   111,   637,   111,
     1834      53,   108,   641,  -112,   210,  1120,  1149,   322,   559,   560,
     1835    1106,  1101,    40,    41,    66,    67,   338,  1117,   706,   652,
     1836     397,   398,   714,  1201,    60,   110,  -441,   399,    74,   478,
     1837     400,   401,   978,   274,  1090,   405,   111,  1258,   929,   652,
     1838    1347,   111,   652,  1037,   402,  1171,  1173,   895,    74,   403,
     1839     617,   276,   326,   326,   459,   504,    74,   459,  1018,   561,
     1840     562,    47,   830,   459,  1106,   477,   428,   906,   212,   284,
     1841     432,   766,   908,  1035,  1198,     8,     9,    10,    11,    12,
     1842      40,    41,  1198,   277,   227,   884,   884,   884,   783,   111,
     1843    1199,   766,   727,   789,   766,   330,    46,  1332,  1323,   406,
     1844     322,   454,    74,    30,   884,   331,   520,   954,    46,  1334,
     1845      46,   341,  1380,  1333,   530,   108,   530,   774,   212,   530,
     1846     875,   832,   530,   332,   876,  1335,    40,    41,   326,    46,
     1847     104,    33,   432,  1381,  1355,   494,   333,  -466,  1132,   738,
     1848     516,   471,  1357,  1358,  1359,    46,   108,   326,   137,   138,
     1849     334,   111,   830,   533,   534,   440,   528,    40,    41,   157,
     1850      46,   369,   111,    46,   111,   555,   383,   711,  -466,  1378,
     1851    -466,   896,  -291,   875,  -466,  1048,   370,  1116,   884,     8,
     1852       9,    10,    11,    12,   567,   568,  1035,   341,   241,    94,
     1853    1394,   478,   729,   586,   526,   409,  1095,    46,   730,    46,
     1854     604,   534,   897,   594,   651,  -105,   601,    30,   898,  -105,
     1855     374,   478,   111,   326,   905,   738,   907,   556,   111,   478,
     1856      94,   395,   557,   558,   227,   634,   232,   606,   108,   638,
     1857     111,   146,   338,    94,  1366,    33,  1128,   534,  1367,    40,
     1858      41,   212,   387,    46,    46,   746,  1428,   756,   210,   187,
     1859    1249,   747,    94,   757,  1253,    94,   871,    46,   577,   407,
     1860     409,   606,   210,   736,   872,    60,   424,  1349,   578,   212,
     1861     884,  1520,  1497,   673,   212,   425,   776,  1525,   409,  1497,
     1862     887,   702,   953,   958,  1055,   609,   777,   322,   322,   430,
     1863     773,   919,  1390,   959,  1251,   903,   774,   774,  1545,   461,
     1864     921,   727,    74,  1552,   448,   171,   774,   464,   762,   108,
     1865     763,   137,   236,   764,   227,   454,   770,  1002,   454,   459,
     1866      40,    41,  1015,  1003,   454,   681,   683,   499,   730,   500,
     1867     490,   830,  1546,  1499,    94,  1500,   114,   674,    46,  1175,
     1868     739,  1006,  1003,  1247,    74,   704,   237,    94,   251,   585,
     1869      46,   238,  1291,  1292,  1374,   589,   210,   409,   832,   467,
     1870     774,   494,   212,   322,   932,   494,   933,   468,  1375,   934,
     1871     774,  1008,   396,   187,   774,   528,   212,   528,  1377,  1382,
     1872     528,  1447,   322,   528,   774,   774,   108,  1444,   137,   138,
     1873    1547,   510,   506,   652,   338,   514,    94,    40,    41,  1466,
     1874     111,   652,   978,  1513,  1570,   774,   978,   978,    94,  1514,
     1875     585,    53,   289,   526,   793,   794,   795,   909,   526,   409,
     1876     739,   526,   912,    46,   409,    66,    67,   328,   409,     2,
     1877     204,     4,     5,     6,     7,   519,   727,    46,    94,   108,
     1878     531,   137,   138,   535,   415,    46,   727,  1196,   322,   569,
     1879      40,    41,   485,  1077,   250,   328,   409,   534,  1155,   828,
     1880     409,   727,   601,    46,  1167,   478,   409,   435,  1387,  1388,
     1881     212,   736,   417,   669,   409,   812,   751,   443,  1122,  1121,
     1882    1170,   752,   609,   111,  1182,     2,   204,     4,     5,     6,
     1883       7,   869,   652,    34,   570,    35,   601,   487,   328,   409,
     1884     111,   571,   878,   652,   575,   111,    36,   478,   181,   182,
     1885      39,   337,  1172,    74,   609,  -292,    94,    40,    41,  1438,
     1886    1003,  1339,     8,     9,    10,    11,    12,  1242,    36,   459,
     1887     172,   173,    39,  1444,  1445,  1137,   611,  1492,  1493,    40,
     1888      41,   104,  1235,   608,   409,   609,   527,   736,   440,    34,
     1889      30,    35,  1145,   610,   111,   766,    -3,  1145,   338,   854,
     1890     328,   609,  1446,   572,   652,   370,  -437,   111,   111,   111,
     1891     593,    53,     8,     9,    10,    11,    12,  1532,    33,  1458,
     1892     454,   800,   801,   802,   803,  1203,    67,   108,   596,   137,
     1893     138,   534,   111,   187,  1418,  1419,   160,   326,    40,    41,
     1894      30,   646,   940,   738,   940,   666,  1145,   667,   104,  1399,
     1895     494,   668,   192,  1399,   670,   215,  1077,   671,   225,  1210,
     1896    1212,  1214,  -293,    46,   798,   799,   890,  1106,    33,     8,
     1897       9,    10,    11,    12,   338,   672,   341,   993,    36,   675,
     1898     172,   173,    39,   703,   677,  -112,   695,  -112,   871,    40,
     1899      41,  -112,  1518,  1458,  1310,  1311,  1312,    30,   804,   805,
     1900     727,   727,   212,  1348,  1350,  1351,  -112,  -112,   796,   797,
     1901     577,   255,   409,    74,   718,   374,    60,   720,  -238,    94,
     1902     578,   758,   771,   611,   534,    33,   775,   779,   -12,   893,
     1903     833,   835,  1017,   837,   689,   848,   828,   160,   111,   -13,
     1904     900,   104,   892,   459,   920,   536,   537,   538,   922,   923,
     1905     372,  -414,   208,   218,   217,  1482,   927,   698,   727,   727,
     1906      46,   948,  -521,   962,   969,   652,   747,   210,   731,   539,
     1907     983,   540,  1369,   541,   542,    53,   160,   971,     2,   204,
     1908       4,     5,     6,     7,   976,   982,   984,   986,   987,    66,
     1909      67,   988,   989,   998,  1122,  1121,    36,  1010,  1011,   160,
     1910      39,  1012,   111,   111,   111,   527,   226,    40,    41,  1026,
     1911     527,   442,  1027,   527,  1028,  1029,   127,  1077,   128,   129,
     1912     130,   536,   537,   538,  1030,  1031,   828,    40,    41,   728,
     1913     454,  1032,  1043,   838,  1057,   609,  -402,   840,  -401,   611,
     1914    1092,  1442,    34,   610,    35,   539,  1558,   540,   439,   541,
     1915    1319,   935,  1102,    53,  1145,  1145,  1145,  1103,  1094,   652,
     1916     652,  1104,  1105,   440,  1109,  1110,  1111,  1203,    67,  1112,
     1917     494,  1123,   322,   935,  1113,  1119,   478,    74,    36,  1129,
     1918     774,   212,    39,   104,  1130,  1079,  1136,  1122,  1121,    40,
     1919      41,  1141,   397,   398,  1131,   992,  1144,    36,  1165,   399,
     1920    1328,    39,   400,   401,  1190,   104,   405,  1186,    40,    41,
     1921    1187,   766,  1077,  1188,   652,    42,   402,   652,   534,   372,
     1922    1189,   403,  1204,   869,   104,   145,   931,  1205,   703,  1207,
     1923     673,  1208,   727,  1216,   743,  1220,    46,    46,  1222,  1223,
     1924     727,   727,   727,    -3,   744,  1228,   111,   111,  1531,    36,
     1925    1233,   172,   173,    39,  1239,    74,    63,   115,   499,   516,
     1926      40,    41,   652,  1243,  1007,  1248,  1077,   652,  1250,  1077,
     1927     406,   917,   840,   611,  1252,   736,  1255,   212,  1256,  1260,
     1928     924,  1264,  1267,   104,   926,   111,  1269,    63,   727,  1271,
     1929    1122,  1121,  1272,  1273,   674,  1274,   372,   652,  1145,  1145,
     1930     158,  1275,  1277,   174,   454,   828,  1284,  1293,  1294,  1301,
     1931     139,  1330,  1304,    53,  1077,  1322,  1305,   104,  1307,  1077,
     1932      53,    36,   219,   181,   182,    39,  1336,  1203,    67,  1308,
     1933     147,  1316,    40,    41,  1203,    67,   148,  1483,   728,  1338,
     1934      60,   149,  1050,  1340,    46,   111,  1344,  1345,  1206,  1077,
     1935    1346,  1352,  1353,   174,   111,   736,   174,  1354,   183,   257,
     1936     652,   239,   242,  1356,  1362,   652,  1363,   840,   184,    46,
     1937      46,  1441,   159,    53,  1364,   534,  1365,  1372,  1376,   611,
     1938    1373,   213,  1383,   652,  1384,   652,  1312,  1203,    67,   652,
     1939    1395,  1392,   652,  1393,    46,  1402,   371,  1533,   240,  1405,
     1940     652,   327,   174,  1412,   652,  1413,  1541,  -403,  1416,   257,
     1941     348,  1427,  1077,  1435,  1505,    74,  1505,  1077,   478,  1431,
     1942     104,  1433,    74,   338,  1436,  1443,  1437,  1367,  1448,  1452,
     1943     935,  1453,  1454,   213,  1455,  1077,  1457,  1077,  1467,  1469,
     1944     404,  1077,  1475,   104,  1077,  1299,  1300,  1123,  1302,  1462,
     1945     104,  1505,  1077,  1505,  1306,   422,  1077,  1309,   427,   429,
     1946    1471,  1152,  1473,   158,  1477,   174,   703,  1479,  1480,  1485,
     1947    1486,  1487,  1498,   728,   703,    74,   213,  1508,  1512,  1510,
     1948     165,  1524,   170,   728,   446,   176,   177,   178,   449,   180,
     1949     450,  1516,   611,  1517,  1539,  1544,  1540,  1551,   728,   465,
     1950    1553,  1555,  1561,   104,   231,    63,  1568,   326,  1569,  1079,
     1951     479,  1050,  1221,   806,  1321,   807,   246,   247,  1100,   174,
     1952     486,   808,   463,  1519,   211,   810,   174,  1430,   429,   809,
     1953     122,   125,   126,  1571,   230,  1386,  1254,   213,  1403,  1501,
     1954    1123,     8,     9,    10,    11,    12,     8,     9,    10,    11,
     1955      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     1956      22,    23,    24,  -294,  1227,    25,    26,    27,   693,    30,
     1957     694,  1107,   941,   722,    30,   213,   211,  1056,   478,   213,
     1958    1108,  1140,   825,  1118,   899,   478,   935,   964,  1331,   741,
     1959     972,   815,     0,     0,   816,   174,   257,    33,   817,   602,
     1960       0,   252,    33,   253,  1391,   630,     0,     0,     0,    37,
     1961      38,     0,   174,  -294,     0,     0,   174,  1424,   635,   211,
     1962       0,     0,   635,     0,     0,   257,     0,     8,     9,    10,
     1963      11,    12,     0,     0,     0,     0,     0,     0,   478,   776,
     1964       0,   409,     0,  1123,   935,   935,   337,     0,     0,   777,
     1965       0,     0,     0,     0,   109,    30,     0,     0,  1417,   653,
     1966       0,  1425,     0,     0,     0,  1217,   213,     0,     0,     0,
     1967       0,     0,   479,     0,     0,  1504,     0,  1504,     0,   174,
     1968     211,     0,     0,    33,   394,     0,     0,   348,     0,     0,
     1969       0,     0,   479,     0,   413,   414,     0,   728,   728,   418,
     1970     479,   420,   421,     0,     0,     0,  1464,     0,     0,     0,
     1971       0,  1468,  1504,     0,  1504,     0,     0,     0,   211,     0,
     1972       0,     0,   211,     0,     0,   958,   723,   609,     0,   429,
     1973       0,     0,     0,     0,     0,   959,     0,     0,   505,     0,
     1974     716,  1490,   322,     0,   737,   463,    63,   213,     0,     8,
     1975       9,    10,    11,    12,   429,   728,   728,     0,   429,     0,
     1976       0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
     1977      11,    12,     0,   600,   607,     0,     0,    30,   749,    36,
     1978     753,   181,   182,    39,     0,   631,   632,   257,   348,     0,
     1979      40,    41,     0,     0,     0,    30,     0,   213,     0,     0,
     1980       0,     0,     0,     0,     0,    33,     0,     0,     0,   211,
     1981      36,     0,   181,   182,    39,     0,   697,     0,   409,     0,
     1982       0,    40,    41,    33,   698,     0,   699,  1559,    36,     0,
     1983     181,   182,    39,  1559,   818,     0,     0,     0,     0,    40,
     1984      41,     0,     0,     0,  1559,   174,     0,   608,  1559,   609,
     1985       0,     0,   635,   831,   935,   602,     0,   610,     0,     0,
     1986       0,     0,     0,     0,     0,   697,   850,   409,     0,     0,
     1987       0,   935,     0,     0,     0,   699,     0,     0,   174,     0,
     1988       0,     0,     0,     0,   602,     0,     0,     0,     0,   602,
     1989     211,     0,     0,     0,   174,   635,     0,  1329,   348,   348,
     1990     348,     0,     0,     0,     0,  1385,     0,   211,     0,   174,
     1991      36,     0,   181,   182,    39,     0,     0,   348,     0,     0,
     1992     213,    40,    41,     0,     0,     0,     0,     0,     0,   728,
     1993       0,     0,   891,     0,     0,   723,     0,   728,   728,   728,
     1994     211,     0,     0,     0,   935,   935,   479,   697,   213,   409,
     1995       0,   257,   737,   213,     0,   937,     0,   699,     0,     0,
     1996       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     1997      17,    18,    19,    20,    21,    22,    23,    24,    72,     0,
     1998      25,    26,    27,     0,     0,   728,     0,     0,   479,    30,
     1999     452,   348,     0,   944,     0,     0,     0,     0,     0,   947,
     2000     963,     0,     0,   429,     0,    75,   174,     0,     0,    72,
     2001      36,     0,   181,   182,    39,     0,     0,    33,     0,     0,
     2002       0,    40,    41,     0,    37,    38,     0,   257,   737,     0,
     2003       0,     0,     0,   991,     0,     0,    75,     0,     0,     0,
     2004       0,   213,     0,     0,   220,     0,     0,  1529,     0,   409,
     2005       0,     0,     0,     0,     0,   213,     0,  1530,   485,     0,
     2006       0,   453,     0,   211,  1502,   710,  1506,     0,     0,   109,
     2007     723,   221,     0,     0,     0,     0,     0,     0,     0,     0,
     2008     723,     0,     0,   348,     0,   635,   820,   821,  1023,   635,
     2009     831,   211,     0,     0,     0,   723,   211,     0,     0,     0,
     2010       0,  1535,     0,  1537,     0,  1034,    36,     0,   181,   182,
     2011      39,     0,     0,     0,     0,     0,   855,    40,    41,   858,
     2012     859,     0,   862,     0,   864,   865,     0,     0,     0,   866,
     2013     867,     0,   351,   543,   544,   545,   546,   547,   548,   549,
     2014     550,   551,   552,   263,     0,     0,  1566,     0,  1567,   213,
     2015       0,     0,     0,   264,   951,     0,   952,    63,     0,   353,
     2016       0,  1574,  1575,   955,   956,     0,     0,   553,   961,     0,
     2017       0,     0,   174,     0,   653,     0,   411,     0,     0,   635,
     2018     966,  1060,     0,   419,   211,   970,     0,     0,     8,     9,
     2019      10,    11,    12,     0,     0,     0,     0,     0,   211,     0,
     2020       0,     0,     0,     0,     0,     0,   447,     0,     0,     0,
     2021       0,   999,     0,   942,   943,  1115,    30,     0,   505,   945,
     2022       0,     0,     0,   429,   115,     0,     0,    72,     0,     0,
     2023       0,     0,    72,     0,     0,     0,     0,     0,     0,     0,
     2024       0,   348,     0,     0,    33,     0,     0,     0,     0,    36,
     2025       0,   181,   182,    39,    75,   411,   600,     0,     0,    75,
     2026      40,    41,     0,     0,     0,     0,   124,   124,   124,     0,
     2027       0,     0,     0,   653,     0,     0,   602,     0,     0,     0,
     2028       0,     0,     0,     0,     0,     0,  1529,     0,   409,   427,
     2029       0,     0,   211,     0,   723,   723,  1530,   348,   348,     0,
     2030       0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
     2031       0,   583,     0,  1044,  1045,  1046,  1047,  1202,  1049,   587,
     2032       0,     0,   590,     0,     0,     0,     0,   220,     0,     0,
     2033       0,     0,    30,     0,  1093,     0,     0,   124,     0,   124,
     2034       0,   213,     0,     0,     0,     0,     0,     0,  1099,     0,
     2035       0,     0,   723,   723,   221,     0,     0,     0,   635,     0,
     2036      33,     0,     0,     0,   273,    36,     0,   181,   182,    39,
     2037       0,     0,     0,  1060,     0,     0,    40,    41,     0,     0,
     2038       0,     0,     0,     0,     0,   411,     0,  1114,     0,   419,
     2039       0,     0,     0,     0,    72,     0,     0,     0,     0,     0,
     2040       0,     0,   183,     0,     0,     0,     0,     0,     0,   351,
     2041       0,     0,   184,     0,    72,     0,   737,     0,     0,     0,
     2042     124,    75,    72,     0,     0,     0,     0,  1142,   124,     0,
     2043     124,   124,     0,     0,  1150,   124,   353,   124,   124,  1154,
     2044       0,    75,     0,     0,  1158,     0,  1159,     0,   351,    75,
     2045    1161,  1162,  1163,     0,     0,  1166,     0,     0,     0,  1298,
     2046       0,     0,     0,     0,  1178,     0,   351,     0,    72,   174,
     2047       0,     0,     0,     0,   411,   353,   257,     0,     0,  1297,
     2048       0,    63,  1193,  1194,   211,     0,     0,     0,     8,     9,
     2049      10,    11,    12,   353,   723,    75,   737,     0,     0,     0,
     2050     115,     0,     0,     0,     0,     0,     0,   124,     0,  1224,
     2051     351,     0,  1226,     0,     0,     0,    30,     0,     0,     0,
     2052     213,     0,     0,     0,     0,     0,   723,     0,     0,     0,
     2053       0,     0,     0,     0,   723,   723,   723,   353,     0,     0,
     2054       0,     0,     0,     0,    33,   348,   348,     0,     0,    36,
     2055    1241,   181,   182,    39,     0,     0,  1245,  1246,     0,  1202,
     2056      40,    41,     0,     0,     0,     0,   583,   583,  1257,     0,
     2057       0,     0,     0,  1261,     0,   351,  1265,     0,  1266,     0,
     2058       0,  1268,   723,     0,     0,     0,   263,     0,     0,     0,
     2059       0,     0,     0,   115,  1276,     0,   264,     0,     0,     0,
     2060       0,     0,   353,  1232,     0,     0,     0,  1283,     0,  1285,
     2061    1286,  1287,  1288,     0,     0,     0,   213,     0,     0,     0,
     2062     351,   351,   351,     0,     0,  1295,     0,  1296,     0,     0,
     2063       0,   170,     0,     0,     0,     0,     0,     0,     0,   351,
     2064       0,     0,     0,     0,     0,   174,     0,   353,   353,   353,
     2065       0,     0,     0,     0,     0,   910,     0,   351,     0,   913,
     2066    1324,  1325,     0,   211,     0,     0,   353,     0,    72,     0,
     2067     348,     0,    77,     0,   351,     0,     0,     0,     0,     0,
     2068       0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
     2069       0,     0,   411,     0,     0,    75,   115,     0,     0,    84,
     2070       0,   353,     0,    77,     0,    54,    54,     0,     0,     0,
     2071      72,  1360,  1361,   351,     0,     0,     0,     0,     0,  1202,
     2072       0,  1371,     0,     0,     0,     0,  1202,  1320,     0,     0,
     2073      84,     0,     0,     0,     0,     0,    54,    75,   222,     0,
     2074     353,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2075     351,     0,     0,     0,     0,     0,     0,     0,     0,   211,
     2076       0,     0,     0,     0,     0,   223,     0,     0,    54,     0,
     2077       0,    54,     0,  1404,     0,     0,     0,   353,     0,  1202,
     2078       0,     0,     0,     0,     0,  1408,  1554,  1409,  1410,  1411,
     2079       0,     0,   351,     0,     0,     0,     0,     0,     0,  1415,
     2080       0,     0,   351,     0,     0,   351,     0,   583,  1426,     0,
     2081     220,     0,   351,     0,     0,     0,     0,   351,     0,   353,
     2082       0,     0,   124,   124,  1439,     0,   354,     0,     0,   353,
     2083       0,     0,   353,     0,     0,     0,     0,   221,     0,   353,
     2084       0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
     2085       0,     0,   124,   361,     0,   124,   124,     0,   124,   346,
     2086     124,   124,     0,     0,     0,   124,   124,     0,     0,     0,
     2087       0,     0,     0,     0,     0,     0,     0,     0,     0,    72,
     2088    1488,  1489,     0,     0,     0,     0,     0,     0,     0,     0,
     2089       0,     0,     0,  1494,     0,     0,     0,     0,     0,     0,
     2090    1494,     0,     0,     0,     0,     0,    75,     0,     0,     0,
     2091       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2092     411,    77,     0,     0,    54,     0,    77,     0,     0,     0,
     2093       0,     0,     0,  1528,     0,     0,     0,  1534,     0,     0,
     2094       0,     0,     0,     0,   124,     0,     0,     0,    84,   124,
     2095     124,     0,     0,    84,    54,   124,     0,     0,     0,     0,
     2096       0,     0,     0,   351,     0,     0,  1556,     0,  1557,     0,
     2097       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2098      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2099     353,    25,    26,    27,     0,     0,  1572,  1573,     0,  1156,
     2100      30,   452,     0,     0,  1576,  1577,     0,     0,     0,     0,
     2101       0,     0,     0,     0,     0,  1168,   351,   351,     0,   351,
     2102     351,   222,     0,     0,     0,     0,     0,     0,    33,     0,
     2103       0,     0,     0,     0,     0,    37,    38,     0,     0,    72,
     2104       0,     0,     0,   353,   353,     0,   353,   353,   223,     8,
     2105       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2106      19,    20,    21,    22,    23,    24,    75,     0,    25,    26,
     2107      27,     0,   453,     0,   351,   351,   946,    30,     0,     0,
     2108     109,     0,     0,     0,     0,     0,     0,     0,    77,     0,
     2109       0,     0,  1236,     0,     0,     0,     0,     0,     0,     0,
     2110       0,   353,   353,   354,     0,    33,     0,     0,    77,     0,
     2111      36,     0,    37,    38,    39,    84,    77,     0,     0,     0,
     2112       0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
     2113     361,     0,     0,     0,     0,    84,   346,     0,   351,     0,
     2114       0,     0,   354,    84,     0,     0,     0,    42,     0,   155,
     2115       0,     0,     0,     0,     0,     0,     0,    44,     0,     0,
     2116     354,     0,    77,     0,     0,   353,     0,     0,     0,   361,
     2117       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2118       0,   220,     0,     0,     0,     0,     0,   361,     0,    84,
     2119       0,     0,     0,     0,     0,    54,     0,     0,     0,     0,
     2120       0,     0,     0,    72,   354,     0,     0,     0,   221,     0,
     2121       0,     0,     0,     0,     0,     0,   351,     0,   351,     0,
     2122       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2123      75,   361,     0,     0,     0,     0,     0,   346,     0,     0,
     2124       0,     0,     0,   353,     0,   353,     0,     0,   351,     0,
     2125       0,     0,     0,     0,     0,     0,   351,   351,   351,     0,
     2126       0,     0,     0,     0,     0,     0,     0,   351,   351,   354,
     2127       0,     0,     0,     0,     0,   353,     0,     0,     0,     0,
     2128       0,    72,     0,   353,   353,   353,     0,     0,     0,     0,
     2129       0,     0,     0,     0,   353,   353,   361,     0,     0,     0,
     2130       0,     0,   346,     0,   351,     0,     0,     0,    75,     0,
     2131       0,     0,     0,     0,   354,   354,   354,     0,     0,     0,
     2132       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2133       0,   353,     0,   354,     0,     0,     0,     0,     0,   124,
     2134       0,   361,   361,   361,     0,     0,     0,   346,   346,   346,
     2135       0,   354,     0,     0,     0,     0,     0,     0,     0,     0,
     2136     361,     0,    77,     0,     0,     0,   346,     0,   354,     0,
     2137       0,     0,     0,     0,     0,     0,     0,     0,   361,  1033,
     2138       0,     0,     8,     9,    10,    11,    12,     0,     0,    84,
     2139       0,     0,   351,     0,     0,   361,     0,     0,     0,     0,
     2140       0,     0,     0,     0,    77,     0,     0,   354,   280,   281,
     2141      30,   282,     0,     0,     0,     0,     0,     0,     0,   353,
     2142       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2143       0,    84,     0,     0,   361,     0,     0,   283,    33,     0,
     2144     346,    72,     0,   284,   354,     0,     0,   285,    72,     0,
     2145     286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
     2146       0,     0,     0,   124,     0,   292,     0,     0,    75,     0,
     2147       0,   361,     0,     0,     0,    75,     0,     0,     0,     0,
     2148     293,     0,   377,     0,     0,     0,   354,     0,     0,   295,
     2149     826,   297,   298,   299,   300,     0,   354,     0,     0,   354,
     2150       0,    72,     0,     0,   222,     0,   354,     0,     0,     0,
     2151       0,   354,     0,   361,     0,     0,     0,     0,     0,     0,
     2152       0,     0,     0,   361,     0,     0,   361,     0,    75,     0,
     2153       0,   223,   346,   361,     0,     0,     0,     0,   361,   346,
     2154       0,     0,     0,     0,     0,  -516,     0,     0,     1,     2,
     2155       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2156      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2157      23,    24,     0,    77,    25,    26,    27,    28,     0,     0,
     2158      29,     0,     0,    30,    31,     0,     0,     0,     0,     8,
     2159       9,    10,    11,    12,     0,     8,     9,    10,    11,    12,
     2160      84,     0,     0,     0,     0,     0,    54,     0,    32,     0,
     2161       0,    33,   163,    34,     0,    35,    36,    30,    37,    38,
     2162      39,     0,     0,    30,     0,     0,     0,    40,    41,     0,
     2163       0,   216,     0,     0,     0,     0,     0,     0,     0,     0,
     2164       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2165      36,    33,     0,    42,    39,    43,    36,   354,     0,     0,
     2166      39,    40,    41,    44,     0,     0,     0,    40,    41,     0,
     2167       0,     0,     0,    54,     0,     0,     0,   163,     0,     0,
     2168       0,     0,     0,   270,   361,     0,     0,    42,     0,     0,
     2169     346,     0,     0,   743,     0,     0,     0,   145,     0,     0,
     2170       0,     0,     0,   744,     0,     0,     0,     0,     0,     0,
     2171     354,   354,   163,   354,   354,     0,     0,     0,     0,     0,
     2172       0,     0,   367,     0,     0,     0,   373,     0,     0,     0,
     2173       0,     0,     0,    77,     0,     0,     0,   361,   361,     0,
     2174     361,   361,     0,     0,     0,     0,   346,   346,     0,     0,
     2175       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2176      84,     0,     0,     0,     0,     0,    54,     0,   354,   354,
     2177       0,     0,     0,     0,     0,   163,     0,     0,     0,     0,
     2178       0,     0,     0,     0,     0,     0,     0,   216,     0,     0,
     2179       0,     0,     0,     0,     0,   361,   361,     0,     0,     0,
     2180       0,   280,   281,     0,   282,   163,   460,     8,     9,    10,
     2181      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2182      21,    22,    23,    24,     0,     0,    25,    26,    27,   373,
     2183     283,     0,   354,     0,     0,    30,   284,   163,     0,     0,
     2184     285,     0,     0,   286,   287,   288,   289,    40,    41,     0,
     2185     290,   291,     0,     0,     0,     0,     0,     0,   292,   361,
     2186       0,   460,     0,    33,   163,     0,     0,     0,     0,     0,
     2187     205,    38,     0,   512,     0,   222,     0,     0,     0,     0,
     2188       0,     0,   295,   379,   297,   298,   299,   300,     0,     0,
     2189       0,     0,     0,     0,     0,     0,     0,    77,     0,     0,
     2190       0,     0,   223,     0,     0,     0,     0,    54,    54,     0,
     2191     354,   605,   354,     0,     0,   269,   629,     0,     0,     0,
     2192       0,     0,     0,     0,    84,     0,     0,     0,     0,     0,
     2193      54,     0,     0,     0,     0,     0,     0,   361,     0,   361,
     2194       0,     0,   354,     0,     0,     0,     0,     0,     0,    54,
     2195     354,   354,   354,     0,     0,     0,     0,     0,     0,     0,
     2196       0,   354,   354,     0,     0,     0,     0,     0,     0,   361,
     2197       0,     0,     0,     0,     0,    77,     0,   361,   361,   361,
     2198       0,     0,     0,     0,     0,     0,     0,     0,   361,   361,
     2199       0,     0,   163,   163,   346,   346,     0,     0,   354,   367,
     2200       0,     0,    84,    54,     0,     0,     0,     0,    54,     0,
     2201       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2202     460,     0,     0,   460,     0,   361,     0,     0,     0,   460,
     2203       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2204       0,     0,    54,     0,     0,     0,     0,     0,     0,     0,
     2205       0,     0,     0,     0,     0,     0,   740,     0,     0,     0,
     2206     209,     0,     0,     0,     0,     0,     0,     0,   163,     0,
     2207     229,     0,   233,     0,   235,     0,     0,     0,     0,     0,
     2208     460,   244,   460,     0,     0,   460,   354,   163,   460,     0,
     2209       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2210     367,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2211       0,     0,   209,   361,   233,   235,   244,     0,     0,   346,
     2212       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2213       0,     0,     0,     0,     0,    77,     0,   154,     0,     0,
     2214       0,     0,    77,     0,     0,    54,     0,     0,     0,     0,
     2215       0,     0,     0,   163,     0,   209,     0,     0,     0,     0,
     2216       0,     0,    84,     0,     0,   367,     0,   605,    54,    84,
     2217     836,     0,     0,     0,     0,    54,     0,     0,     0,     0,
     2218       0,     0,     0,   249,     0,     0,     0,     0,     0,     0,
     2219       0,     0,     0,   254,     0,    77,   605,     0,     0,     0,
     2220       0,   605,     0,     0,     0,     0,     0,     0,     0,     0,
     2221     367,   367,   367,     0,     0,     0,   209,     0,   233,   235,
     2222     244,     0,    84,     0,     0,     0,     0,     0,    54,   367,
     2223       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2224      17,    18,    19,    20,    21,    22,    23,    24,  -294,   154,
     2225      25,    26,    27,     0,   209,     0,     0,     0,   209,    30,
     2226       0,     0,     0,   384,   740,     0,     0,     0,     0,     0,
     2227       0,     0,     0,     0,   503,     0,     0,     0,     0,     0,
     2228       0,     0,     0,     0,     0,   460,   416,    33,     0,     0,
     2229       0,     0,     0,     0,    37,    38,     0,     0,  -294,     0,
     2230     431,     0,     0,   367,     0,   960,     0,     0,     0,   436,
     2231       0,     0,     0,     0,     0,     0,     0,     0,     0,   444,
     2232       0,     0,     0,     0,   209,     0,     0,     0,     0,   642,
     2233       0,   337,   280,   281,     0,   282,     0,     0,     0,   109,
     2234     740,     0,     0,     0,   470,   209,     0,     0,     0,   480,
     2235     233,   235,     0,     0,     0,     0,     0,     0,   244,     0,
     2236       0,   283,   488,     0,     0,     0,     0,   284,   498,     0,
     2237     502,   285,     0,     0,   286,   287,   288,   289,    40,    41,
     2238       0,   290,   291,     0,     0,     0,     0,     0,   532,   292,
     2239       0,     0,     0,     0,     0,   367,     0,     0,     0,   629,
     2240       0,   209,   367,     0,   293,     0,   377,     0,     0,   378,
     2241       0,     0,     0,   295,   379,   297,   298,   299,   300,   209,
     2242       0,     0,     0,     0,   209,     0,   209,     0,     0,     0,
     2243       0,   592,     0,     0,     0,     0,   597,     0,     0,     0,
     2244       0,     0,     0,   209,     0,     0,   209,   209,     0,     0,
     2245       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2246       0,     0,   209,     0,   643,     0,     0,     0,   644,   645,
     2247       0,   647,     0,     0,     0,     0,   209,     0,   659,   660,
     2248       0,   661,   662,   209,   663,     0,   664,     0,     0,     0,
     2249       0,     0,     0,  1176,     0,   460,     8,     9,    10,    11,
     2250      12,     0,     0,   592,     0,     0,     0,     0,     0,     0,
     2251       0,   679,     0,     0,     0,     0,     0,     0,     0,     0,
     2252       0,     0,   280,   281,    30,   282,     0,     0,     0,     0,
     2253       0,     0,     0,     0,     0,     0,   690,   163,     0,     0,
     2254       0,     0,     0,     0,     0,     0,     0,   696,     0,     0,
     2255       0,   283,    33,   367,     0,     0,     0,   284,     0,     0,
     2256       0,   285,     0,     0,   286,   287,   288,   289,    40,    41,
     2257     732,   290,   291,     0,     0,     0,   735,     0,     0,   292,
     2258       0,   470,     0,     0,     0,     0,     0,     0,   605,     0,
     2259       0,     0,     0,     0,   293,     0,   377,     0,     0,   209,
     2260       0,     0,     0,   295,  1177,   297,   298,   299,   300,   367,
     2261     367,     0,     0,     0,     0,     0,     0,     0,   772,     0,
     2262       0,     0,     0,     0,     0,     0,     0,   209,   513,     0,
     2263     515,   518,   209,     0,   787,     0,     0,     0,   521,   522,
     2264       0,     0,     0,   515,   515,     0,     0,     0,     0,     0,
     2265       0,     0,     0,     0,     0,   515,     0,     0,     0,     0,
     2266       0,     0,     0,     0,     0,   280,   281,     0,   282,   460,
     2267       0,   814,     0,     0,     0,     0,     0,     0,     0,     0,
     2268     824,     0,     0,     0,     0,     0,     0,   827,     0,     0,
     2269       0,   515,   834,     0,   283,     0,     0,     0,     0,     0,
     2270     284,     0,     0,   849,   285,     0,     0,   286,   287,   288,
     2271     289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
     2272     209,     0,   292,     0,     0,     0,     0,   515,   740,     0,
     2273       0,     0,     0,     0,   209,     0,     0,   293,     0,   377,
     2274       0,     0,     0,     0,   889,   811,   295,   379,   297,   298,
     2275     299,   300,     0,     0,   503,     0,     0,     0,     0,     0,
     2276       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2277     216,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2278     834,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2279      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2280      23,    24,  -294,     0,    25,    26,    27,     0,   740,     0,
     2281       0,     0,     0,    30,     0,   209,     0,     0,     0,     0,
     2282       0,     0,     0,     0,     0,     0,     0,     0,   209,     0,
     2283       0,     0,     0,     0,     0,   249,     0,     0,     0,     0,
     2284       0,    33,     0,     0,     0,   967,   968,   209,    37,    38,
     2285       0,     0,  -294,     0,     0,     0,     0,   367,   367,   985,
     2286       0,     0,     0,     0,     0,     0,   216,     0,     0,     0,
     2287       0,     0,     0,     0,     0,     0,  1000,     0,  1001,     0,
     2288       0,     0,  1005,   642,     0,   337,     0,     0,     0,     0,
     2289       0,     0,     0,   633,     0,     0,     0,     0,     0,     0,
     2290       0,     0,     0,     0,   515,   515,   515,   515,   515,   515,
     2291     515,   515,   515,   515,   515,   515,   515,   515,   515,   515,
     2292     515,   515,     0,     0,     0,     0,     0,     0,     0,     0,
     2293     280,   281,     0,   282,   209,     0,     0,     0,     0,     0,
     2294       0,     0,     0,     0,     0,     0,     0,   515,  1038,     0,
     2295       0,     0,     0,     0,     0,  1039,     0,     0,     0,   283,
     2296     209,     0,     0,     0,     0,   284,     0,     0,  1041,   285,
     2297    1042,     0,   286,   287,   288,   289,    40,    41,     0,   290,
     2298     291,     0,   367,     0,  1054,     0,     0,   292,   209,     0,
     2299       0,  1058,     0,     0,     0,     0,     0,     0,     0,     0,
     2300       0,     0,   293,  1096,   377,     0,  1097,     0,     0,   780,
     2301       0,   295,   379,   297,   298,   299,   300,     0,     0,     0,
     2302     209,     0,     0,     0,   597,     0,     0,     0,     0,     0,
     2303       0,   209,     0,     0,     0,     0,     0,     0,     0,     0,
     2304     460,     0,   460,     0,     0,     0,   515,     0,     8,     9,
     2305      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2306      20,    21,    22,    23,    24,  -294,     0,     0,   515,     0,
     2307       0,     0,     0,     0,     0,     0,    30,   460,     0,   460,
     2308       0,   515,     8,     9,    10,    11,    12,    13,    14,    15,
     2309      16,    17,    18,    19,    20,    21,    22,    23,    24,  -294,
     2310       0,    25,    26,    27,    33,     0,     0,   163,     0,     0,
     2311      30,     0,   209,  1160,     0,  -294,     0,     0,     0,   340,
     2312     362,     0,     0,     0,     0,     0,     0,   515,     0,     0,
     2313       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2314       0,     0,     0,    36,     0,   335,   336,    39,     0,  -294,
     2315       0,     0,     0,   412,    40,    41,     0,     0,     0,   515,
     2316     412,     0,     0,     0,     0,     0,     0,     0,     0,   532,
     2317       0,     0,     0,     0,   515,     0,  1225,     0,     0,     0,
     2318     642,     0,   337,     0,     0,     0,     0,     0,     0,     0,
     2319     633,   280,   281,     0,   282,     0,     0,     0,     0,   209,
     2320       0,     0,     0,     0,     0,  1238,     0,     0,     0,     0,
     2321    1240,     0,     0,     0,     0,     0,     0,     0,  1244,     0,
     2322     283,     0,     0,     0,     0,     0,   648,     0,   137,   138,
     2323     285,     0,   412,   286,   649,   288,   289,    40,    41,     0,
     2324     290,   291,     0,     0,     0,     0,     0,     0,   292,  1270,
     2325       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2326       0,  1278,     0,   293,  1279,   650,  1280,   651,   378,     0,
     2327       0,     0,   295,   379,   297,   298,   299,   300,     0,     0,
     2328    1289,  1290,     0,     0,     0,     0,     0,     0,   412,     0,
     2329       0,     0,     0,     0,     0,   209,   412,   588,     0,   412,
     2330     591,     0,  1303,     0,     0,     0,     0,     0,     0,   362,
     2331       0,     0,     0,   621,     0,     0,     0,     0,     0,     0,
     2332       0,     0,     0,     0,     0,   515,     0,     0,     0,  1326,
     2333     320,     0,   639,     0,     0,   340,     0,     0,     0,     0,
     2334     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2335       0,     0,   380,   380,     0,     0,   515,     0,     0,     0,
     2336       0,     0,   412,     0,     0,     0,   412,     0,   515,     2,
     2337     204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2338      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2339      23,    24,     0,     0,    25,    26,    27,   362,     0,     0,
     2340       0,     0,     0,    30,     0,     0,     0,     0,     0,   515,
     2341       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2342     412,     0,     0,   320,     0,     0,  1396,     0,  1397,     0,
     2343       0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
     2344       0,  1406,     0,  1407,     0,     0,     0,     0,   484,     0,
     2345       0,   412,     0,     0,   362,     0,     0,     0,     0,     0,
     2346       0,  1414,     0,     0,     0,     0,     0,     0,     0,     0,
     2347       0,     0,     0,     0,  -399,   686,     0,  1432,  1434,     0,
     2348       0,   515,     0,   633,     0,     0,     0,     0,     0,  1440,
     2349       0,     0,  1244,     0,   412,     0,     0,   340,   362,     0,
     2350       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2351       0,     0,     0,     0,  1463,     0,     0,     0,     0,     0,
     2352       0,     0,     0,  1470,     0,   515,  1472,     0,  1474,  1476,
     2353    1478,     0,     0,     0,     0,     0,     0,     0,     0,   515,
     2354     515,     0,     0,   412,   412,     0,     0,     0,     0,     0,
     2355       0,   209,     0,     0,     0,     0,     0,     0,     0,     0,
     2356       0,     0,   829,   362,   380,   362,     0,     0,     0,     0,
     2357    1509,     0,  1511,     0,   621,  1244,   621,   621,     0,     0,
     2358       0,     0,     0,   621,     0,     0,     0,     0,     0,     0,
     2359    1523,     0,     0,   868,   362,     0,     0,     0,     0,   362,
     2360       0,     0,     0,     0,     0,     0,     0,     0,   362,   362,
     2361     362,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2362       0,     0,     0,     0,     0,     0,     0,   362,     0,     0,
     2363       0,     0,   412,   911,     0,     0,   412,   914,     0,     0,
     2364       0,     0,     0,   916,     0,     0,     0,     0,     0,     0,
     2365       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2366       0,   340,   362,   412,     0,   412,   734,     0,     0,   412,
     2367       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2368      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2369      25,    26,    27,     0,     0,     0,     0,     0,     0,    30,
     2370       0,   362,   621,     0,     0,   768,     0,     0,     0,     0,
     2371       0,     0,     0,     0,     0,     0,     0,     0,   781,     0,
     2372       0,     0,     0,     0,     0,   768,     0,    33,   768,     0,
     2373       0,     0,     0,     0,   205,    38,     0,   340,   362,   791,
     2374     792,     0,   412,   412,     0,     0,     0,     0,     0,   515,
     2375       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2376       0,   813,     0,     0,     0,     0,   515,     0,     0,     0,
     2377       0,   822,     0,     0,     0,     0,     0,     0,   344,   628,
     2378       0,     0,     0,   781,   412,     0,     0,     0,     0,     0,
     2379       0,     0,     0,   362,     0,     0,     0,     0,     0,   829,
     2380     362,     0,     0,     0,   621,     0,   621,     0,     0,     0,
     2381       0,     0,     0,     0,     0,     0,   621,     0,     0,     0,
     2382       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2383       0,     0,     0,   888,     0,     0,     0,     0,     0,   515,
     2384     515,     0,   380,     0,     0,     0,     0,     0,     0,     1,
     2385       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     2386      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2387      22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
     2388       0,    29,   344,     0,    30,    31,     0,     0,     0,   829,
     2389       0,     0,     0,     0,     0,     0,     0,   412,   280,   281,
     2390       0,   282,     0,   412,     0,     0,     0,     0,     0,    32,
     2391       0,   412,    33,     0,    34,     0,    35,    36,     0,    37,
     2392      38,    39,     0,     0,   621,   621,     0,   283,    40,    41,
     2393       0,     0,     0,   284,     0,     0,     0,   285,     0,     0,
     2394     286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
     2395       0,   362,     0,     0,    42,   292,    43,   412,   781,     0,
     2396     990,     0,     0,     0,    44,     0,   995,     0,     0,     0,
     2397     293,     0,   377,  1004,     0,   992,   412,  1157,     0,   295,
     2398     379,   297,   298,   299,   300,     0,   362,     0,     0,     0,
     2399       0,     0,   412,  1169,     0,   621,   621,  1174,     0,     0,
     2400       0,     0,     0,     0,     0,     0,     0,   362,   362,     0,
     2401       0,     0,     0,     0,     0,     0,     0,  1021,  1022,     0,
     2402     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2403       0,     0,     0,     0,     0,   344,     0,     0,     0,     0,
     2404       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2405       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2406       0,     0,     0,     0,     0,     0,     0,     0,   829,   412,
     2407    1237,     0,     0,     0,     0,  1052,     0,     0,     0,   380,
     2408       0,   621,     0,     0,     0,     0,     1,     2,   204,     4,
     2409       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2410      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2411       0,     0,    25,    26,    27,    28,     0,     0,    29,   280,
     2412     281,    30,  1061,  1062,     0,  1063,   362,     0,  1064,  1065,
     2413    1066,  1067,  1068,  1069,  1070,  1071,     0,     0,     0,  1072,
     2414       0,     0,     0,  1073,  1074,     0,    32,     0,   283,    33,
     2415       0,    34,     0,    35,   648,   320,    37,    38,   285,     0,
     2416       0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
     2417       0,  1138,  1139,     0,     0,     0,   292,     0,   380,     0,
     2418       0,     0,   280,   281,   995,   282,   340,  1148,     0,   768,
     2419       0,   293,     0,  1075,     0,     0,   169,     0,     0,     0,
     2420     295,   296,   297,   298,   299,   300,   362,     0,     0,  1164,
     2421    1076,   283,     0,     0,  -129,     0,     0,   284,     0,     0,
     2422    1179,   285,     0,     0,   286,   287,   288,   289,    40,    41,
     2423       0,   290,   291,     0,     0,     0,     0,     0,     0,   292,
     2424       0,     0,   380,     0,  1197,     0,     0,     0,     0,     0,
     2425       0,     0,     0,     0,   293,   362,   362,     0,     0,   995,
     2426     995,     0,     0,   295,   379,   297,   298,   299,   300,     0,
     2427       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2428    1229,     0,     0,     0,     0,     0,     0,     0,     1,     2,
     2429     204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2430      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2431      23,    24,     0,     0,    25,    26,    27,    28,     0,     0,
     2432      29,   280,   281,    30,   282,     0,     0,   995,     0,     0,
     2433       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2434     280,   281,     0,   282,     0,     0,   888,     0,     0,     0,
     2435     283,    33,     0,    34,     0,    35,   284,     0,    37,    38,
     2436     285,  1281,  1282,   286,   287,   288,   289,    40,    41,   283,
     2437     290,   291,     0,     0,     0,   284,     0,     0,   292,   285,
     2438     362,     0,   286,   287,   288,   289,    40,    41,     0,   290,
     2439     291,     0,     0,   293,     0,  1075,     0,   292,     0,     0,
     2440       0,     0,   295,   296,   297,   298,   299,   300,     0,     0,
     2441       0,     0,   293,     0,   377,     0,  -129,     0,     0,     0,
     2442       0,   295,   379,   297,   298,   299,   300,     0,     0,     0,
     2443       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2444       0,     0,   995,     0,     0,     0,     1,     2,   204,     4,
     2445       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2446      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2447     412,     0,    25,    26,    27,    28,     0,     0,    29,   280,
     2448     281,    30,   282,     0,     0,     0,     0,     0,     0,     0,
     2449       0,     0,     0,     0,     0,   412,   412,     0,     0,     0,
     2450       0,     0,     0,  1389,     0,   768,     0,     0,   283,    33,
     2451       0,    34,     0,    35,   284,     0,    37,    38,   285,     0,
     2452     412,   286,   287,   288,   289,    40,    41,     0,   290,   291,
     2453       0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
     2454       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2455       0,   293,     0,    43,     0,     0,     0,     0,     0,     0,
     2456     295,   296,   297,   298,   299,   300,     0,     0,     2,   204,
     2457       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2458      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2459      24,  1449,     0,    25,    26,    27,     0,     0,     0,     0,
     2460     280,   281,    30,   282,     0,     8,     9,    10,    11,    12,
     2461      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2462      23,    24,     0,     0,    25,    26,    27,     0,     0,   283,
     2463      33,     0,    34,    30,    35,   284,     0,    37,    38,   285,
     2464       0,     0,   286,   287,   288,   289,    40,    41,     0,   290,
     2465     291,     0,     0,     0,     0,     0,     0,   292,     0,     0,
     2466       0,    33,     0,     0,     0,     0,   108,     0,    37,    38,
     2467       0,     0,   293,  1515,   342,     0,     0,    40,    41,   780,
     2468       0,   295,   343,   297,   298,   299,   300,     2,   204,     4,
     2469       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2470      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2471       0,     0,    25,    26,    27,     0,     0,     0,     0,   280,
     2472     281,    30,   282,     0,     0,   320,     0,     8,     9,    10,
     2473      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2474      21,    22,    23,    24,  -295,     0,     0,     0,   283,    33,
     2475       0,    34,     0,    35,   284,    30,    37,    38,   285,     0,
     2476       0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
     2477       0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
     2478       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2479       0,   293,     0,   930,  -295,     0,     0,     0,   780,     0,
     2480     295,   343,   297,   298,   299,   300,     2,   204,     4,     5,
     2481       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2482      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2483       0,    25,    26,    27,     0,     0,     0,     0,   280,   281,
     2484      30,   282,     0,     8,     9,    10,    11,    12,    13,    14,
     2485      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2486       0,     0,    25,    26,    27,     0,     0,   283,    33,     0,
     2487      34,    30,    35,   284,     0,    37,    38,   285,     0,     0,
     2488     286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
     2489       0,     0,     0,     0,     0,   292,     0,     0,     0,    33,
     2490       0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
     2491     293,     0,   930,     0,     0,     0,     0,   780,     0,   295,
     2492     599,   297,   298,   299,   300,     2,   204,     4,     5,     6,
     2493       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2494      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2495      25,    26,    27,     0,     0,     0,     0,   280,   281,    30,
     2496     282,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2497      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2498       0,    25,    26,    27,     0,     0,   283,    33,     0,    34,
     2499      30,    35,   284,     0,    37,    38,   285,     0,     0,   286,
     2500     287,   288,   289,    40,    41,     0,   290,   291,     0,     0,
     2501       0,     0,     0,     0,   292,     0,     0,     0,    33,     0,
     2502       0,     0,     0,     0,     0,   205,    38,     0,     0,   293,
     2503       0,   342,     0,     0,     0,     0,     0,     0,   295,   343,
     2504     297,   298,   299,   300,     2,   204,     4,     5,     6,     7,
    20242505       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2025       18,    19,    20,    21,    22,    23,    24,    25,   506,     0,
    2026       26,    27,    28,     0,    64,   323,     0,     0,     0,    31,
    2027        0,     0,     0,     0,   352,     0,     0,  1045,  1046,  1047,
    2028     1048,     0,  1050,     0,     0,     0,   636,     0,     8,     9,
    2029       10,    11,    12,     0,     0,     0,    76,    34,  1094,     0,
    2030        0,     0,    37,     0,    38,    39,    40,     0,     0,     0,
    2031        0,     0,  1100,    41,    42,     0,     0,    31,     0,   352,
    2032      352,   352,  1116,     0,     0,     0,     0,     0,    76,     0,
    2033      430,   116,   212,     0,     0,     0,     0,     0,   352,    43,
    2034        0,   156,   125,   125,     0,    34,     0,     0,   349,    45,
    2035       37,  1115,     0,     0,    40,     0,   352,  1218,     0,     0,
    2036        0,    41,    42,   222,     0,     0,     0,    73,     0,     0,
    2037        0,     0,   125,   352,     0,   125,   125,     0,   125,     0,
    2038      125,   125,     0,   603,     0,   125,   125,    43,     0,     0,
    2039        0,  1143,     0,     0,     0,     0,   428,   146,  1151,     0,
    2040        0,   724,   724,  1155,   349,   349,     0,     0,  1159,    73,
    2041     1160,     0,   352,     0,  1162,  1163,  1164,     0,     0,  1167,
    2042        0,     0,     0,     0,  1203,     0,     0,     0,  1179,     0,
    2043        0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2044        0,     0,     0,     0,     0,     0,  1194,  1195,     0,   352,
    2045        0,   354,     0,     0,     0,    78,     0,     0,     0,   724,
    2046      724,    31,     0,     0,   125,   636,     0,     0,     0,   125,
    2047      125,     0,     0,  1225,     0,   125,  1227,     0,     0,     0,
    2048        0,     0,   175,     0,     0,     0,     0,    78,     0,    34,
    2049        0,   352,     0,     0,    37,     0,     0,     0,    40,     0,
    2050        0,   352,     0,     0,   352,    41,    42,     0,     0,   221,
    2051        0,   352,     0,     0,  1242,     0,   352,     0,     0,     0,
    2052     1246,  1247,   223,   738,   212,     0,     0,     0,     0,     0,
    2053        0,   744,  1258,     0,     0,     0,     0,  1262,     0,     0,
    2054     1266,   745,  1267,     0,     0,  1269,    76,     0,     0,     0,
    2055        0,    76,   412,     0,     0,     0,     0,     0,  1277,   420,
    2056        0,     0,     0,     0,     0,     0,  1299,     0,     0,     0,
    2057        0,  1284,    85,  1286,  1287,  1288,  1289,     0,    73,     0,
    2058        0,     0,     0,   258,     0,     0,     0,     0,    64,  1296,
    2059        0,  1297,     0,     0,     0,   171,     0,  1386,     0,     0,
    2060        0,   724,     0,   738,    85,    55,    55,   116,     0,     0,
    2061      355,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2062        0,     0,     0,     0,  1325,  1326,     0,     0,     0,     0,
    2063        0,   412,     0,   724,     0,     0,     0,    55,     0,   224,
    2064        0,   724,   724,   724,     0,     0,   222,     0,     0,     0,
    2065        0,     0,   349,   349,     0,     0,     0,     0,   175,     0,
    2066        0,     0,   352,     0,     0,     0,  1203,     0,     0,    55,
    2067        0,     0,    55,     0,     0,  1361,  1362,     0,     0,     0,
    2068        0,     0,     0,     0,     0,  1372,     0,   584,     0,   724,
    2069        0,     0,     0,     0,     0,   588,     0,     0,   591,     0,
    2070      116,     0,     0,   212,     0,    78,     0,     0,     0,     0,
    2071       78,     0,     0,    76,     0,   352,   352,     0,   352,   352,
    2072        0,     0,     0,     0,     0,     0,     0,   362,   354,     0,
    2073        0,     0,     0,    76,     0,     0,     0,  1405,    73,     0,
    2074        0,    76,     0,     0,     0,     0,     0,     0,     0,  1409,
    2075        0,  1410,  1411,  1412,     0,     0,  1503,     0,  1507,     0,
    2076      347,   412,     0,  1416,     0,   420,     0,   354,     0,     0,
    2077        0,     0,  1427,   352,   352,     0,     0,   349,     0,     0,
    2078        0,     0,     0,     0,     0,   354,     0,    76,  1440,     0,
    2079        0,     0,     0,  1536,     0,  1538,     0,     0,     0,   212,
    2080        0,     0,     0,   116,     0,   223,     0,     0,     0,     0,
     2506      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2507      26,    27,     0,     0,     0,     0,   280,   281,    30,   282,
     2508       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2509      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2510       0,     0,     0,     0,     0,   283,    33,     0,    34,    30,
     2511      35,   284,     0,    37,    38,   285,     0,     0,   286,   287,
     2512     288,   289,    40,    41,     0,   290,   291,     0,     0,     0,
     2513       0,     0,     0,   292,     0,     0,     0,    33,     0,     0,
     2514       0,     0,     0,     0,     0,     0,     0,     0,   293,     0,
     2515     930,     0,     0,     0,     0,     0,     0,   295,   343,   297,
     2516     298,   299,   300,     2,   204,     4,     5,     6,     7,     8,
     2517       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2518      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2519      27,     0,     0,     0,     0,   280,   281,    30,   282,     0,
    20812520       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2082        0,     0,    85,     0,     0,    55,  1203,    85,     0,   354,
    2083        0,     0,     0,  1203,     0,     0,     0,   352,  1567,     0,
    2084     1568,     0,     0,     0,  1489,  1490,     0,     0,     0,     0,
    2085      412,     0,     0,  1575,  1576,    55,     0,  1495,     0,   125,
    2086        0,     0,     0,     0,  1495,     0,     0,     0,     0,     0,
    2087        0,     0,    78,     0,     0,     0,     0,     0,     0,     0,
    2088      221,     0,     0,     0,     0,     0,  1203,   355,     0,     0,
    2089        0,     0,    78,  1555,   354,     0,     0,  1529,     0,     0,
    2090       78,  1535,    73,     0,     0,     0,     0,     0,     0,     0,
    2091        0,     0,     0,     0,     0,   352,     0,   352,     0,     0,
    2092        0,     0,   224,     0,     0,     0,   355,     0,     0,     0,
    2093     1557,     0,  1558,     0,     0,     0,     0,     0,     0,   354,
    2094      354,   354,   584,   584,   355,     0,    78,   352,     0,     0,
    2095        0,     0,     0,     0,     0,   352,   352,   352,   354,     0,
    2096     1573,  1574,     0,     0,     0,     0,   352,   352,  1577,  1578,
    2097        0,     0,     0,     0,     0,     0,   354,     0,     0,     0,
    2098       73,     0,     0,   125,     0,     0,     0,    76,   355,    85,
    2099        0,     0,     0,   354,     0,     0,     0,     0,     0,     0,
    2100        0,     0,     0,   352,   362,     0,     0,     0,     0,    85,
    2101        0,     0,     0,     0,     0,     0,     0,    85,     0,     0,
    2102        0,     0,     0,     0,     0,     0,     0,     0,     0,    76,
    2103        0,   911,   354,     0,     0,   914,     0,   347,     0,     0,
    2104        0,     0,     0,   362,     0,     0,     0,     0,     0,     0,
    2105        0,     0,     0,   355,     0,     0,     0,     0,     0,     0,
    2106        0,   362,     0,    85,     0,     0,     0,     0,   412,   354,
     2521       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2522       0,     0,     0,     0,   283,    33,     0,    34,     0,    35,
     2523     284,     0,   205,    38,   285,     0,     0,   286,   287,   288,
     2524     289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
     2525       0,     0,   292,     0,     0,     0,     0,     0,     0,     0,
     2526       0,     0,     0,     0,     0,     0,     0,   293,     0,  1019,
     2527       0,     0,     0,     0,     0,     0,   295,  1020,   297,   298,
     2528     299,   300,     2,   204,     4,     5,     6,     7,     8,     9,
     2529      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2530      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2531       0,     0,     0,     0,   280,   281,    30,   282,     0,     0,
     2532       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2533       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2534       0,     0,     0,   283,    33,     0,    34,     0,    35,   284,
     2535       0,   205,    38,   285,     0,     0,   286,   287,   288,   289,
     2536      40,    41,     0,   290,   291,     0,     0,     0,     0,     0,
     2537       0,   292,     0,     0,     0,     0,     0,     0,     0,     0,
     2538       0,     0,     0,     0,     0,     0,   293,     0,   377,     0,
     2539       0,     0,     0,     0,     0,   295,   379,   297,   298,   299,
     2540     300,     1,     2,     3,     4,     5,     6,     7,     8,     9,
     2541      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2542      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2543      28,     0,     0,    29,     0,     0,    30,    31,     0,     0,
     2544       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2545       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2546       0,    32,     0,     0,    33,     0,    34,     0,    35,    36,
     2547       0,    37,    38,    39,     0,     0,     0,     0,     0,     0,
     2548      40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
     2549       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2550       0,     0,     0,     0,     0,     0,    42,     0,    43,     0,
     2551       0,     0,  -520,     0,     0,     0,    44,   203,     2,   204,
     2552       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2553      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2554      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2555       0,     0,    30,     8,     9,    10,    11,    12,    13,    14,
     2556      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2557       0,     0,    25,    26,    27,   491,   492,   493,     0,     0,
     2558      33,    30,    34,     0,    35,    36,     0,   205,    38,    39,
     2559       0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
     2560       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2561       0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
     2562       0,     0,    42,     0,   206,     0,     0,     0,     0,     0,
     2563       0,     0,   207,     1,     2,   204,     4,     5,     6,     7,
     2564       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2565      18,    19,    20,    21,    22,    23,    24,  -294,     0,    25,
     2566      26,    27,    28,     0,     0,    29,     0,     0,    30,     0,
     2567       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2568       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2569       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2570      35,     0,     0,    37,    38,     0,     0,  -294,     0,     1,
     2571       2,   204,     4,     5,     6,     7,     8,     9,    10,    11,
     2572      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2573      22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
     2574      43,    29,     0,     0,    30,     0,     0,     0,   109,     0,
     2575       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2576       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2577       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     2578      38,     0,   203,     2,   204,     4,     5,     6,     7,     8,
     2579       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2580      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2581      27,     0,     0,     0,     0,     0,    43,    30,     0,     0,
     2582       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2583       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2584       0,     0,     0,     0,     0,    33,     0,    34,     0,    35,
     2585       0,     0,   205,    38,     2,   204,     4,     5,     6,     7,
     2586       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2587      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2588      26,    27,     0,     0,     0,     0,     0,     0,    30,   206,
     2589       0,     0,     0,     0,     0,     0,     0,   269,     0,     0,
     2590       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2591       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2592      35,    36,     0,   205,    38,    39,     0,     0,     0,     0,
     2593       0,     0,    40,    41,     0,     0,     8,     9,    10,    11,
     2594      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2595      22,    23,    24,     0,     0,    25,    26,    27,    42,     0,
     2596     206,     0,     0,     0,    30,     0,     0,     0,   207,     2,
     2597     204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2598      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2599      23,    24,    33,     0,    25,    26,    27,    36,     0,    37,
     2600      38,    39,     0,    30,     0,     0,     0,     0,    40,    41,
     2601       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2602       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2603       0,    33,     0,    34,    42,    35,    43,     0,    37,    38,
     2604       0,     0,     0,     0,    44,     0,     0,     0,     0,     0,
     2605       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2606    1368,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2607       0,     0,     0,     0,     0,   686,     0,     0,     0,     0,
     2608       0,     0,     0,   633,     2,   204,     4,     5,     6,     7,
     2609       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2610      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2611      26,    27,     0,     0,     0,     0,     0,     0,    30,     0,
    21072612       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    21082613      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2109       25,   352,     0,     0,     0,     0,    55,     0,   355,   355,
    2110      355,     0,    31,     0,     0,   362,     0,     0,     0,     0,
    2111        0,   354,     0,     0,     0,     0,     0,   355,     0,     0,
    2112        0,   354,     0,     0,   354,     0,     0,     0,     0,   222,
    2113       34,   354,     0,     0,     0,   355,   354,     0,   347,     0,
    2114       73,     0,     0,     0,     0,     0,    78,    73,     0,     0,
    2115        0,     0,   355,     0,     0,     0,     0,     0,     0,     0,
     2614       0,     0,    25,    26,    27,     0,    33,     0,    34,     0,
     2615      35,    30,     0,    37,    38,     0,     0,     0,     0,     0,
    21162616       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2117      362,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2118        0,     0,     0,   584,     0,     0,     0,     0,    78,     0,
    2119        0,   355,     0,     0,     0,   123,   126,   127,    76,     0,
    2120       73,     0,     0,   347,     0,     0,     0,     0,     0,     0,
    2121        0,     0,     0,     0,     0,   362,   362,   362,     0,     0,
    2122        0,     0,     0,     0,     0,     0,     0,     0,   355,     0,
    2123        0,     0,     0,     0,   362,     0,     0,     0,     0,     0,
    2124        0,     0,     0,     0,     0,     0,     0,     0,   347,   347,
    2125      347,     0,   362,     0,     0,     0,     0,     0,     0,     0,
    2126        0,     0,     0,    85,     0,     0,   253,   347,   254,   362,
    2127      355,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2128      355,     0,   354,   355,     0,     0,     0,     0,   223,     0,
    2129      355,     0,     0,     0,     0,   355,   412,     0,     0,     0,
    2130        0,     0,     0,     0,     0,    85,     0,     0,   362,     2,
    2131      205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2617       0,     0,     0,     0,     0,  1370,     0,     0,     0,    33,
     2618       0,     0,     0,     0,    36,     0,   335,   336,    39,     0,
     2619     686,     0,     0,     0,     0,    40,    41,     0,   633,     2,
     2620     204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    21322621      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2133       23,    24,    25,     0,     0,   354,   354,     0,   354,   354,
    2134        0,   347,     0,     0,    31,   362,     0,     0,     0,   395,
    2135        0,     0,     0,     0,     0,     0,     0,    78,    76,   414,
    2136      415,     0,     0,     0,   419,     0,   421,   422,     0,     0,
    2137        0,     0,    34,     0,    35,  1157,    36,    37,     0,   173,
    2138      174,    40,     0,     0,     0,     0,     0,   362,    41,    42,
    2139        0,  1169,     0,   354,   354,     0,     0,   362,     0,     0,
    2140      362,     0,     0,     0,     0,   224,     0,   362,     0,     0,
    2141        0,     0,   362,     0,     8,     9,    10,    11,    12,    13,
    2142       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2143       24,    25,  -294,   347,    26,    27,    28,     0,     0,     0,
    2144      347,   355,     0,    31,     0,     0,     0,     0,     0,     0,
    2145        0,     0,     0,     0,     0,     0,     0,   354,     0,     0,
    2146        0,     0,     0,     0,     0,     0,     0,     0,  1237,     0,
    2147        0,    34,     0,     0,    85,     0,    37,     0,   336,   337,
    2148       40,     0,  -294,     0,     0,     0,     0,    41,    42,     0,
    2149        0,     0,     0,     0,   355,   355,     0,   355,   355,     0,
    2150      222,     0,     0,     0,     0,     0,     0,    55,     0,     0,
    2151        0,     0,     0,   643,     0,   338,     0,    78,     0,     0,
    2152        0,     0,    76,   634,     0,   164,     0,     0,     0,     0,
    2153        0,     0,     0,     0,     0,   354,     0,   354,     0,     0,
    2154        0,     0,     0,     0,   217,     0,     0,     0,     0,     0,
    2155        0,     0,   355,   355,     0,     0,     0,     0,   362,     0,
    2156      281,   282,     0,   283,     0,     0,     0,   354,     0,     0,
    2157        0,     0,     0,     0,    55,   354,   354,   354,     0,     0,
    2158        0,     0,     0,     0,     0,     0,   354,   354,     0,   284,
    2159      164,   347,     0,     0,     0,   285,   271,     0,     0,   286,
    2160       76,     0,   287,   288,   289,   290,    41,    42,     0,   291,
    2161      292,   362,   362,     0,   362,   362,   355,   293,     0,     0,
    2162        0,     0,     0,   354,     0,   164,     0,     0,     0,     0,
    2163        0,     0,   513,     0,    85,   368,     0,     0,     0,   374,
    2164        0,   296,   380,   298,   299,   300,   301,   347,   347,     0,
    2165        0,     0,     0,     0,     0,     0,     0,     0,     0,   223,
    2166        0,     0,     0,     0,     0,     0,     0,    55,     0,   362,
    2167      362,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2168        0,    78,     0,     0,     0,     0,     0,     0,   164,     0,
    2169        0,     0,     0,     0,   355,     0,   355,     0,     0,     0,
    2170      217,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2171        0,   354,     0,     0,     0,     0,     0,     0,   164,   461,
    2172        0,     0,     0,     0,     0,     0,   355,     0,     0,     0,
    2173        0,     0,     0,   362,   355,   355,   355,     0,     0,     0,
    2174        0,     0,   374,     0,     0,   355,   355,     0,     0,     0,
    2175      164,   821,   822,     0,     0,     0,     0,     0,     0,    78,
    2176       76,     0,     0,     0,     0,     0,     0,    76,     0,     0,
    2177        0,     0,     0,     0,   461,     0,   224,   164,     0,     0,
    2178        0,   856,   355,     0,   859,   860,     0,   863,     0,   865,
    2179      866,     0,     0,     0,   867,   868,     0,     0,    85,     0,
    2180        0,     0,     0,     0,     0,     0,     0,     0,    55,    55,
    2181        0,   362,     0,   362,     0,     0,     0,     0,     0,     0,
    2182       76,     0,     0,     0,   606,     0,     0,     0,     0,   630,
    2183        0,    55,     0,     0,     0,     0,     0,     0,     0,     0,
    2184        0,     0,     0,   362,     0,     0,   210,     0,     0,     0,
    2185       55,   362,   362,   362,     0,     0,   230,     0,   234,     0,
    2186      236,     0,   362,   362,     0,     0,     0,   245,     0,     0,
    2187      355,     0,     0,     0,     0,     0,    85,     0,   943,   944,
    2188        0,     0,     0,     0,   946,     0,     0,     0,     0,     0,
    2189        0,     0,     0,     0,     0,   347,   347,     0,   210,   362,
    2190      234,   236,   245,     0,    55,   164,   164,     0,     0,    55,
    2191        0,     0,   368,     0,     0,     0,     0,     0,     0,    78,
    2192        0,     0,     0,     0,     0,     0,    78,     0,     0,     0,
    2193        0,     0,     0,   461,     0,     0,   461,     0,     0,     0,
    2194        0,   210,   461,    55,   474,     2,   205,     4,     5,     6,
    2195        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2196       17,    18,    19,    20,    21,    22,    23,    24,    25,   741,
    2197        0,    26,    27,    28,     0,     0,     0,     0,     0,    78,
    2198       31,   164,     0,     0,     0,     0,     0,   362,     0,     0,
    2199        0,     0,   155,   461,     0,   461,     0,     0,   461,     0,
    2200      164,   461,   210,     0,   234,   236,   245,     0,    34,     0,
    2201       35,     0,    36,   368,     0,    38,    39,     0,     0,     0,
    2202      347,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2203        0,     0,     0,     0,     0,     0,    85,     0,   250,     0,
    2204      210,     0,     0,    85,   210,     0,    55,     0,   255,     0,
    2205        0,     0,     0,     0,     0,    -3,     0,     0,     0,     0,
    2206      504,     0,     0,     0,     0,     0,   164,     0,     0,    55,
    2207        0,     0,     0,     0,     0,     0,    55,     0,   368,     0,
    2208      606,     0,     0,   837,     0,     0,     0,     0,     0,     0,
    2209        0,     0,     0,     0,     0,     0,    85,     0,     0,     0,
    2210        0,     0,     0,     0,   155,     0,     0,     0,     0,   606,
    2211      210,     0,     0,     0,   606,     0,     0,     0,   385,     0,
    2212        0,     0,     0,   368,   368,   368,     0,     0,     0,    55,
    2213        0,   210,     0,     0,     0,     0,   234,   236,     0,     0,
    2214        0,   417,   368,     0,   245,     0,     0,     0,     0,     0,
    2215        0,     0,     0,     0,     0,   432,     0,     0,     0,     0,
    2216        0,     0,  1034,     0,   437,     8,     9,    10,    11,    12,
    2217        0,     0,     0,     0,   445,     0,     0,   741,     0,     0,
    2218        0,     0,     0,     0,     0,     0,     0,   210,     0,     0,
    2219        0,     0,   281,   282,    31,   283,     0,     0,   461,   471,
    2220        0,     0,     0,     0,   481,   210,     0,     0,     0,     0,
    2221      210,     0,   210,     0,     0,     0,   368,   489,   961,     0,
    2222        0,   284,    34,   499,     0,   503,     0,   285,     0,   210,
    2223        0,   286,   210,   210,   287,   288,   289,   290,    41,    42,
    2224        0,   291,   292,   533,     0,     0,     0,     0,   210,   293,
    2225        0,     0,     0,   741,     0,     0,     0,     0,     0,     0,
    2226        0,     0,   210,     0,   294,     0,   378,     0,  1233,   210,
    2227        0,     0,     0,   296,   827,   298,   299,   300,   301,     0,
    2228        0,     0,     0,     0,     0,     0,   593,     0,     0,     0,
    2229        0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
    2230        0,     0,     0,     0,     0,     0,     0,     0,   368,     0,
    2231        0,     0,   630,     0,     0,   368,     0,     0,     0,   644,
    2232        0,     0,     0,   645,   646,     0,   648,     0,     0,     0,
    2233        0,     0,     0,   660,   661,     0,   662,   663,     0,   664,
    2234        0,   665,     0,     0,     0,     0,     0,  1177,     0,     0,
    2235        8,     9,    10,    11,    12,     0,     0,     0,   593,     0,
    2236        0,     0,     0,     0,     0,     0,   680,     0,     0,     0,
    2237        0,     0,     0,     0,     0,     0,     0,   281,   282,    31,
    2238      283,     0,     0,     0,     0,   210,     0,     0,     0,     0,
    2239        0,   691,  1321,     0,     0,     0,     0,     0,     0,     0,
    2240        0,     0,   697,     0,     0,     0,   284,    34,   461,     0,
    2241        0,     0,   285,   210,     0,     0,   286,     0,   210,   287,
    2242      288,   289,   290,    41,    42,   733,   291,   292,     0,     0,
    2243        0,   736,     0,     0,   293,     0,   471,     0,     0,     0,
    2244        0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
    2245      164,   378,     0,     0,     0,     0,     0,     0,   296,  1178,
    2246      298,   299,   300,   301,     0,     0,   368,     0,     0,     0,
    2247        0,     0,     0,   773,     0,     0,     0,     0,     0,     0,
    2248        0,     0,     0,     0,     0,     0,     0,     0,     0,   788,
    2249        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2250        0,   606,     0,     0,     0,     0,   210,     0,     0,     0,
    2251        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2252      210,     0,   368,   368,     0,     0,   815,     0,     0,     0,
    2253        0,     0,     0,     0,     0,   825,     0,     0,     0,     0,
    2254      504,     0,   828,     0,     0,   281,   282,   835,   283,     0,
    2255        0,     0,     0,     0,     0,     0,     0,     0,   850,     0,
    2256        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2257        0,     0,     0,     0,   284,     0,     0,     0,     0,     0,
    2258      285,     0,   461,     0,   286,     0,     0,   287,   288,   289,
    2259      290,    41,    42,     0,   291,   292,     0,     0,     0,   890,
    2260        0,   210,   293,     0,     0,     0,     0,     0,     0,     0,
    2261        0,     0,     0,     0,   210,     0,     0,   294,     0,   378,
    2262        0,     0,   379,     0,     0,     0,   296,   380,   298,   299,
    2263      300,   301,     0,   210,     0,   835,     0,     0,     0,     0,
    2264        0,   741,     0,     0,     1,     2,     3,     4,     5,     6,
    2265        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2266       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2267        0,    26,    27,    28,    29,     0,     0,    30,     0,     0,
    2268       31,    32,     0,   217,     0,     0,     0,     0,     0,     0,
    2269      250,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2270      968,   969,     0,     0,     0,    33,     0,     0,    34,     0,
    2271       35,     0,    36,    37,   986,    38,    39,    40,     0,     0,
    2272      210,   741,   341,   363,    41,    42,     0,     0,     0,     0,
    2273        0,  1001,     0,  1002,     0,     0,     0,  1006,     0,     0,
    2274        0,     0,     0,     0,     0,     0,   210,     0,     0,     0,
    2275       43,     0,    44,     0,     0,     0,   413,     0,     0,     0,
    2276       45,     0,     0,   413,     0,     0,     0,     0,     0,     0,
    2277      368,   368,     0,     0,   210,     0,     0,     0,     0,   217,
    2278        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2279       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2280       26,    27,    28,  1039,     0,     0,   210,     0,     0,    31,
    2281     1040,     0,     0,     0,     0,     0,     0,   210,     0,     0,
    2282        0,     0,     0,  1042,     0,  1043,     0,     0,     0,     0,
    2283        0,     0,     0,     0,     0,   413,     0,    34,     0,  1055,
    2284        0,     0,   109,     0,    38,    39,  1059,     0,     0,     0,
    2285        0,     0,     0,    41,    42,     0,     0,     0,  1097,     0,
    2286        0,  1098,     0,     0,     0,     0,     0,     0,     0,     0,
    2287        0,     0,     0,     0,     0,     0,     0,     0,     0,   598,
    2288        0,    44,     0,     0,     0,     0,     0,     0,     0,   110,
    2289        0,   413,     0,     0,     0,   368,     0,     0,   210,   413,
    2290      589,     0,   413,   592,     0,     0,     0,     0,     0,     0,
    2291        0,     0,   363,     0,     0,     0,   622,     0,     0,     0,
    2292        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2293        0,     0,     0,     0,     0,   640,     0,     0,   341,     0,
    2294        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2295        0,     0,     0,   461,     0,   461,     0,     0,     0,     0,
    2296      281,   282,     0,   283,     0,   413,     0,     0,  1161,   413,
    2297        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2298        0,     0,     0,     0,     0,   210,     0,     0,     0,   284,
    2299      461,   321,   461,     0,     0,   649,     0,   138,   139,   286,
    2300      363,   345,   287,   650,   289,   290,    41,    42,     0,   291,
    2301      292,     0,     0,   381,   381,     0,     0,   293,     0,     0,
    2302      164,     0,     0,   413,   533,     0,     0,     0,     0,     0,
    2303        0,  1226,   294,     0,   651,     0,   652,   379,     0,     0,
    2304        0,   296,   380,   298,   299,   300,   301,     0,     0,     0,
    2305        0,     0,     0,     0,   413,     0,     0,   363,     0,     0,
    2306     1239,     0,     0,     0,     0,  1241,     0,     0,     0,     0,
    2307        0,     0,     0,  1245,     0,     0,     0,     0,     0,     0,
    2308        0,   210,     0,     0,   321,     0,     0,     0,     0,     0,
    2309        0,     0,     0,     0,     0,     0,     0,   413,     0,     0,
    2310      341,   363,     0,     0,  1271,     0,     0,     0,     0,   485,
    2311        0,     0,     0,     0,     0,     0,  1279,     0,     0,  1280,
    2312        0,  1281,     0,     0,     0,     0,     0,     0,     0,     0,
    2313        0,     0,     0,     0,     0,  1290,  1291,     0,     0,     0,
    2314        0,     0,     0,     0,     0,     0,   413,   413,     0,     0,
    2315        0,     0,     0,     0,     0,     0,     0,  1304,     0,     0,
    2316        0,     0,     0,     0,     0,   830,   363,     0,   363,     0,
    2317        0,     0,     0,     0,     0,     0,     0,   622,     0,   622,
    2318      622,     0,     0,     0,  1327,     0,   622,     0,     0,   514,
    2319        0,   516,   519,     0,     0,     0,   869,   363,     0,   522,
    2320      523,     0,   363,     0,   516,   516,     0,     0,     0,     0,
    2321        0,   363,   363,   363,     0,     0,   516,     0,     0,     0,
    2322        0,     0,     0,     0,     0,   381,     0,     0,     0,     0,
    2323      363,     0,     0,     0,     0,   413,   912,     0,     0,   413,
    2324      915,     0,     0,     0,     0,     0,   917,     0,     0,     0,
    2325        0,     0,   516,     0,     0,     0,     0,     0,     0,     0,
    2326        0,     0,     0,     0,   341,   363,   413,     0,   413,     0,
    2327        0,     0,   413,     0,     0,     0,     0,     0,     0,   281,
    2328      282,  1397,   283,  1398,     0,     0,     0,     0,   516,     0,
    2329        0,     0,     0,     0,     0,     0,  1407,     0,  1408,     0,
    2330        0,     0,     0,     0,   363,   622,     0,     0,   284,     0,
    2331        0,     0,     0,     0,   285,     0,  1415,     0,   286,     0,
    2332        0,   287,   288,   289,   290,    41,    42,   735,   291,   292,
    2333        0,     0,  1433,  1435,     0,     0,   293,   210,     0,     0,
    2334      341,   363,     0,     0,  1441,   413,   413,  1245,     0,     0,
    2335        0,   294,     0,   378,     0,     0,     0,     0,     0,   812,
    2336      296,   380,   298,   299,   300,   301,   769,     0,     0,  1464,
    2337        0,     0,     0,     0,     0,     0,     0,     0,  1471,   782,
    2338        0,  1473,     0,  1475,  1477,  1479,   769,   413,     0,   769,
    2339        0,     0,     0,     0,     0,     0,   363,     0,     0,     0,
    2340      792,   793,   830,   363,     0,     0,     0,   622,     0,   622,
    2341        0,     0,     0,     0,     0,     0,     0,     0,     0,   622,
    2342        0,     0,   814,     0,     0,  1510,     0,  1512,     0,     0,
    2343     1245,     0,   823,     0,     0,     0,     0,     0,     0,   345,
    2344        0,     0,     0,     0,   782,  1524,     0,     0,     0,     0,
    2345        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2346        0,     0,     0,     0,     0,   516,   516,   516,   516,   516,
    2347      516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
    2348      516,   516,   516,     0,     0,     0,     0,     0,     0,     0,
    2349        0,     0,   830,     0,   889,     0,     0,     0,     0,     0,
    2350      413,     0,     0,   381,     0,     0,   413,     0,   516,     0,
    2351        0,     0,     0,     0,   413,     0,     0,     0,     0,     0,
    2352        0,     0,     0,     0,     0,     0,     0,   622,   622,     0,
    2353        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2354        0,     0,     0,   345,     0,     0,     0,     0,     0,     0,
    2355        0,     0,     0,     0,   363,     0,     0,     0,     0,     0,
    2356      413,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2357       17,    18,    19,    20,    21,    22,    23,    24,    25,   413,
    2358     1158,    26,    27,    28,     0,     0,     0,     0,     0,   363,
    2359       31,   453,     0,     0,     0,   413,  1170,     0,   622,   622,
    2360     1175,     0,     0,     0,     0,     0,     0,   516,     0,     0,
    2361      363,   363,     0,     0,     0,     0,     0,     0,    34,   782,
    2362        0,   991,     0,     0,     0,    38,    39,   996,     0,   516,
    2363        0,     0,     0,     0,  1005,     0,     0,     0,     0,     0,
    2364        0,     0,   516,     0,     0,     0,     0,     0,     0,     0,
    2365        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2366        0,     0,   454,     0,     0,     0,   711,     0,     0,     0,
    2367      110,   830,   413,  1238,     0,     0,     0,     0,  1022,  1023,
    2368        0,   345,     0,     0,   622,     0,     0,     0,   516,     0,
    2369        0,     0,     0,     0,     0,     0,   345,     0,     0,     0,
     2622      23,    24,     0,   337,    25,    26,    27,     0,     0,     0,
     2623       0,   109,     0,    30,     0,     0,     0,     0,     0,     0,
    23702624       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23712625       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2372      516,     0,     0,     0,     0,     0,     0,     0,     0,   363,
    2373        0,     0,     0,     0,     0,   516,  1053,     0,     0,     0,
    2374      381,     0,     0,  -517,     0,     0,     1,     2,     3,     4,
     2626       0,    33,     0,    34,     0,    35,     0,     0,   205,    38,
     2627       2,   204,     4,     5,     6,     7,     8,     9,    10,    11,
     2628      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2629      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2630       0,     0,     0,     0,    30,   268,     0,     0,     0,     0,
     2631       0,     0,     0,   628,     0,     0,     0,     0,     0,     0,
     2632       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2633       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     2634      38,     2,   204,     4,     5,     6,     7,     8,     9,    10,
     2635      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2636      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2637       0,     0,     0,     0,     0,    30,   686,     0,     0,     0,
     2638       0,     0,     0,     0,   633,     0,     0,     0,     0,     0,
     2639       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2640       0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
     2641      37,    38,     2,   204,     4,     5,     6,     7,     8,     9,
     2642      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2643      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2644       0,     0,     0,     0,     0,     0,    30,   598,     0,     0,
     2645       0,     0,     0,     0,     0,   633,     0,     0,     0,     0,
     2646       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2647       0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
     2648       0,   205,    38,     8,     9,    10,    11,    12,    13,    14,
     2649      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2650       0,     0,    25,    26,    27,     0,     0,     0,     0,   280,
     2651     281,    30,   282,     0,     0,     0,     0,     0,   206,     0,
     2652       0,     0,     0,     0,     0,     0,   269,     0,     0,     0,
     2653       0,     0,     0,     0,     0,     0,     0,     0,   283,    33,
     2654       0,     0,     0,     0,   284,     0,    37,    38,   285,     0,
     2655       0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
     2656       0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
     2657       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2658       0,   293,     0,   524,     0,     0,   169,     0,     0,     0,
     2659     295,   296,   297,   298,   299,   300,     8,     9,    10,    11,
     2660      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2661      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2662       0,     0,   280,   281,    30,   282,     8,     9,    10,    11,
     2663      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2664      22,    23,    24,  -294,     0,    25,    26,    27,     0,     0,
     2665       0,   283,    33,     0,    30,     0,     0,   284,     0,    37,
     2666      38,   285,     0,     0,   286,   287,   288,   289,    40,    41,
     2667       0,   290,   291,     0,     0,     0,     0,     0,     0,   292,
     2668       0,     0,    33,     0,     0,     0,     0,    36,     0,   335,
     2669     336,    39,     0,  -294,   293,     0,   598,    -3,    40,    41,
     2670       0,     0,     0,   295,   599,   297,   298,   299,   300,     8,
     2671       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2672      19,    20,    21,    22,    23,    24,   337,     0,    25,    26,
     2673      27,     0,     0,     0,   109,   280,   281,    30,   282,     8,
     2674       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2675      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2676      27,     0,     0,     0,   283,    33,     0,    30,     0,     0,
     2677     648,     0,    37,    38,   285,     0,     0,   286,   287,   288,
     2678     289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
     2679       0,     0,   292,     0,     0,    33,     0,     0,     0,     0,
     2680     108,     0,    37,    38,     0,     0,     0,   293,   -35,   765,
     2681       0,    40,    41,     0,     0,     0,   295,   296,   297,   298,
     2682     299,   300,     8,     9,    10,    11,    12,    13,    14,    15,
     2683      16,    17,    18,    19,    20,    21,    22,    23,    24,    43,
     2684       0,    25,    26,    27,     0,     0,     0,   109,   280,   281,
     2685      30,   282,     8,     9,    10,    11,    12,    13,    14,    15,
     2686      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2687       0,    25,    26,    27,     0,     0,     0,   283,    33,     0,
     2688      30,   452,     0,   284,     0,    37,    38,   285,     0,     0,
     2689     286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
     2690       0,     0,     0,     0,     0,   292,     0,     0,    33,     0,
     2691       0,     0,     0,     0,     0,    37,    38,     0,     0,     0,
     2692     293,     0,   294,     0,     0,     0,     0,     0,     0,   295,
     2693     296,   297,   298,   299,   300,     8,     9,    10,    11,    12,
     2694      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2695      23,    24,   453,     0,    25,    26,    27,     0,     0,     0,
     2696     109,   280,   281,    30,   282,     0,     0,     0,     0,     0,
     2697       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2698      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2699     283,    33,    25,    26,    27,     0,   284,     0,    37,    38,
     2700     285,    30,     0,   286,   287,   288,   289,    40,    41,     0,
     2701     290,   291,     0,     0,     0,     0,     0,     0,   292,     0,
     2702       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2703       0,     0,     0,   293,     0,   155,    37,    38,     0,     0,
     2704       0,     0,   295,   296,   297,   298,   299,   300,     8,     9,
     2705      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2706      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2707       0,   642,     0,   337,   280,   281,    30,   282,     0,     0,
     2708       0,   109,     0,     0,     0,     0,     8,     9,    10,    11,
     2709      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2710      22,    23,    24,   283,    33,    25,    26,    27,     0,   284,
     2711       0,    37,    38,   285,    30,     0,   286,   287,   288,   289,
     2712      40,    41,     0,   290,   291,     0,     0,     0,     0,     0,
     2713       0,   292,     0,     0,     0,     0,     0,     0,     0,     0,
     2714       0,     0,    33,     0,     0,     0,   293,     0,   598,    37,
     2715      38,     0,     0,     0,     0,   295,   599,   297,   298,   299,
     2716     300,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2717      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2718      25,    26,    27,     0,   642,     0,   337,   280,   281,    30,
     2719     282,     0,     0,     0,   633,     0,     0,     0,     0,     8,
     2720       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2721      19,    20,    21,    22,    23,    24,   283,    33,    25,    26,
     2722      27,     0,   284,     0,    37,    38,   285,    30,   452,   286,
     2723     287,   288,   289,    40,    41,     0,   290,   291,     0,     0,
     2724       0,     0,     0,     0,   292,     0,     0,     0,     0,     0,
     2725       0,     0,     0,     0,     0,    33,     0,     0,     0,   293,
     2726       0,   377,    37,    38,     0,     0,     0,     0,   295,   379,
     2727     297,   298,   299,   300,   473,     2,   204,     4,     5,     6,
     2728       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2729      17,    18,    19,    20,    21,    22,    23,    24,     0,   453,
     2730      25,    26,    27,  1234,     0,     0,     0,   109,     0,    30,
     2731       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2732      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2733      26,    27,     0,     0,     0,     0,     0,    33,    30,    34,
     2734       0,    35,     0,     0,    37,    38,     0,     0,     8,     9,
     2735      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2736      20,    21,    22,    23,    24,     0,    33,    25,    26,    27,
     2737       0,    36,     0,   205,    38,    39,    30,     0,     0,     0,
     2738       0,     0,    40,    41,    -3,     0,     8,     9,    10,    11,
     2739      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2740      22,    23,    24,     0,    33,    25,    26,    27,    42,    36,
     2741     268,   335,   336,    39,    30,     0,     0,     0,   207,     0,
     2742      40,    41,     0,     0,     8,     9,    10,    11,    12,    13,
     2743      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2744      24,     0,    33,    25,    26,    27,   642,     0,   337,    37,
     2745      38,     0,    30,     0,     0,     0,   633,     8,     9,    10,
     2746      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2747      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2748      33,     0,     0,     0,     0,    30,   255,    37,    38,     0,
     2749       0,     0,     0,     0,   109,     8,     9,    10,    11,    12,
     2750      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2751      23,    24,     0,    33,    25,    26,    27,     0,     0,     0,
     2752     205,    38,     0,    30,   155,     0,     0,     0,     0,     0,
     2753       0,     0,   109,     8,     9,    10,    11,    12,    13,    14,
     2754      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2755       0,    33,    25,    26,    27,     0,     0,   268,    37,    38,
     2756       0,    30,     0,     0,     0,   269,     8,     9,    10,    11,
     2757      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2758      22,    23,    24,     0,     0,    25,    26,    27,     0,    33,
     2759       0,     0,     0,     0,    30,   255,    37,    38,     0,     0,
     2760       0,     0,     0,   633,     8,     9,    10,    11,    12,    13,
     2761      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2762      24,     0,    33,    25,    26,    27,     0,     0,     0,    37,
     2763      38,     0,    30,   337,     0,     0,     0,     0,     0,     0,
     2764       0,   633,     8,     9,    10,    11,    12,    13,    14,    15,
     2765      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2766      33,    25,    26,    27,     0,     0,   453,   205,    38,     0,
     2767      30,     0,     0,     0,   109,     8,     9,    10,    11,    12,
     2768      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2769      23,    24,     0,     0,    25,    26,    27,     0,    33,     0,
     2770       0,     0,     0,    30,   268,    37,    38,     0,     0,     0,
     2771       0,     0,   628,     8,     9,    10,    11,    12,    13,    14,
     2772      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2773       0,    33,    25,    26,    27,     0,     0,     0,    37,    38,
     2774       0,    30,   598,     0,     0,     0,     0,     0,     0,     0,
     2775     633,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2776       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2777       0,     0,     0,     0,     0,   337,    37,    38,     0,     0,
     2778       0,     0,     0,   109,     2,   204,     4,     5,     6,     7,
     2779       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2780      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2781      26,    27,     0,    43,     0,     0,     0,     0,    30,     0,
     2782       0,   109,     0,     0,     0,     0,     0,     0,     0,     0,
     2783       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2784       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2785      35,     0,     0,    37,    38,   280,   281,     0,   282,  1062,
     2786       0,  1063,     0,     0,  1064,  1065,  1066,  1067,  1068,  1069,
     2787    1070,  1071,     0,     0,  1548,  1072,     0,     0,     0,  1073,
     2788    1074,     0,    32,     0,   283,     0,     0,     0,     0,  -412,
     2789     648,     0,     0,     0,   285,     0,     0,   286,   287,   288,
     2790     289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
     2791       0,     0,   292,     0,     0,     0,     0,     0,     0,     0,
     2792       0,     0,     0,     0,     0,     0,     0,   293,     0,   377,
     2793       0,     0,   169,     0,     0,     0,   295,   379,   297,   298,
     2794     299,   300,     0,     0,     0,     0,  1076,     0,   280,   281,
     2795    -129,   282,  1062,     0,  1063,     0,     0,  1064,  1065,  1066,
     2796    1067,  1068,  1069,  1070,  1071,     0,     0,     0,  1072,     0,
     2797       0,     0,  1073,  1074,     0,    32,     0,   283,     0,     0,
     2798       0,     0,     0,   648,     0,     0,     0,   285,     0,     0,
     2799     286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
     2800       0,     0,     0,     0,     0,   292,     0,     0,     0,     0,
     2801       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2802     293,     0,   377,     0,     0,   169,     0,     0,     0,   295,
     2803     379,   297,   298,   299,   300,     0,     0,     0,     0,  1076,
     2804       0,   280,   281,  -129,   282,  1062,     0,  1063,  1418,  1419,
     2805    1064,  1065,  1066,  1067,  1068,  1069,  1070,  1071,     0,     0,
     2806    1548,  1072,     0,     0,     0,  1073,  1074,     0,    32,     0,
     2807     283,     0,     0,     0,     0,     0,   648,     0,     0,     0,
     2808     285,     0,     0,   286,   287,   288,   289,    40,    41,     0,
     2809     290,   291,     0,     0,     0,     0,     0,     0,   292,     0,
     2810       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2811       0,     0,     0,   293,     0,   377,     0,     0,   169,     0,
     2812       0,     0,   295,   379,   297,   298,   299,   300,     0,     0,
     2813     280,   281,  1076,   282,  1062,     0,  1063,  1418,  1419,  1064,
     2814    1065,  1066,  1067,  1068,  1069,  1070,  1071,     0,     0,     0,
     2815    1072,     0,     0,     0,  1073,  1074,     0,    32,     0,   283,
     2816       0,     0,     0,     0,     0,   648,     0,     0,     0,   285,
     2817       0,     0,   286,   287,   288,   289,    40,    41,     0,   290,
     2818     291,     0,     0,     0,     0,     0,     0,   292,     0,     0,
     2819       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2820       0,     0,   293,     0,   377,     0,     0,   169,     0,     0,
     2821       0,   295,   379,   297,   298,   299,   300,     0,     0,   280,
     2822     281,  1076,   282,  1062,     0,  1063,     0,     0,  1064,  1065,
     2823    1066,  1067,  1068,  1069,  1070,  1071,     0,     0,     0,  1072,
     2824       0,     0,     0,  1073,  1074,     0,    32,     0,   283,     0,
     2825       0,     0,     0,     0,   648,     0,     0,     0,   285,     0,
     2826       0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
     2827       0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
     2828       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2829       0,   293,     0,   377,     0,     0,   169,     0,     0,     0,
     2830     295,   379,   297,   298,   299,   300,     0,     0,     0,     0,
     2831    1076,     2,   204,     4,     5,     6,     7,     8,     9,    10,
     2832      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2833      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2834       0,     0,     0,     0,     0,    30,     0,   280,   281,     0,
     2835     282,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2836       0,     0,     0,     0,     0,     0,   280,   281,     0,   282,
     2837       0,     0,     0,    33,     0,    34,   283,    35,     0,     0,
     2838      37,    38,   284,     0,     0,     0,   285,     0,     0,   286,
     2839     287,   288,   289,    40,    41,   283,   290,   291,     0,     0,
     2840       0,   648,  1327,     0,   292,   285,     0,     0,   286,   287,
     2841     288,   289,    40,    41,     0,   290,   291,     0,     0,   293,
     2842       0,   377,     0,   292,   280,   281,     0,   282,   295,   733,
     2843     297,   298,   299,   300,     0,     0,     0,     0,   293,     0,
     2844     784,     0,     0,   280,   281,     0,   282,   295,   379,   297,
     2845     298,   299,   300,   283,     0,     0,     0,     0,     0,   284,
     2846       0,     0,     0,   285,     0,     0,   286,   287,   288,   289,
     2847      40,    41,   283,   290,   291,     0,     0,     0,   284,     0,
     2848       0,   292,   285,     0,     0,   286,   287,   288,   289,    40,
     2849      41,     0,   290,   291,     0,     0,   293,     0,   377,     0,
     2850     292,   280,   281,     0,   282,   295,   826,   297,   298,   299,
     2851     300,     0,     0,     0,     0,   517,     0,     0,     0,     0,
     2852       0,     0,     0,     0,   295,   379,   297,   298,   299,   300,
     2853     283,     0,     0,     0,     0,     0,   284,     0,     0,     0,
     2854     285,     0,     0,   286,   287,   288,   289,    40,    41,     0,
     2855     290,   291,     0,     0,     0,     0,     0,     0,   292,     0,
     2856       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2857       0,     0,     0,   520,     0,     0,     0,     0,     0,     0,
     2858       0,     0,   295,   379,   297,   298,   299,   300,     2,   204,
     2859       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2860      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2861      24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2862       0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
     2863       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2864       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2865      33,     0,    34,     0,    35,    36,     0,   172,   173,    39,
     2866       0,     0,     0,     0,     0,     0,    40,    41,   203,     2,
     2867     204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2868      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2869      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2870       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
     2871       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2872       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2873       0,    33,     0,    34,     0,    35,     0,     0,   205,    38,
     2874     473,     2,   204,     4,     5,     6,     7,     8,     9,    10,
     2875      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2876      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2877       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
     2878       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2879       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2880       0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
     2881      37,    38,     2,   204,     4,     5,     6,     7,     8,     9,
     2882      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2883      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2884       0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
     2885       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2886       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2887       0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
     2888       0,   205,    38
     2889};
     2890
     2891#define yypact_value_is_default(yystate) \
     2892  ((yystate) == (-1281))
     2893
     2894#define yytable_value_is_error(yytable_value) \
     2895  YYID (0)
     2896
     2897static const yytype_int16 yycheck[] =
     2898{
     2899       0,     1,     0,    42,   237,   217,   183,   183,   202,    42,
     2900       0,     1,     1,   183,    42,   542,   183,   183,   114,   103,
     2901     184,   455,   519,   343,     0,     0,   628,   454,    28,    29,
     2902     183,    31,   697,    31,   697,   183,   498,   697,   610,   608,
     2903     502,    31,    42,   679,    44,   461,    44,   347,  1042,   496,
     2904     279,   901,   655,     1,    54,    31,    31,   166,   167,   608,
     2905      60,  1061,    60,    63,   608,    63,    66,   610,    66,   153,
     2906     347,     0,   578,    63,  1005,   277,    66,    66,   416,   998,
     2907      80,    81,  1041,  1042,   184,   608,   263,   263,    63,   779,
     2908      42,   362,   185,   263,   608,   366,   263,   263,   436,    31,
     2909     264,   528,    31,   199,   104,  1337,   444,   107,   608,    27,
     2910     263,   776,     0,   776,   114,   263,   776,    42,   608,   722,
     2911     642,   643,   644,  1054,   758,   424,   425,   611,    38,   254,
     2912     643,   644,    38,   617,    81,    42,    62,   106,  1418,   661,
     2913       0,     1,    63,    31,   183,   145,    44,   145,   661,   109,
     2914     183,    81,   108,   153,   226,   183,   116,  1422,   158,    77,
     2915     158,   130,    38,   110,   264,   612,   259,   260,   488,   616,
     2916      50,    31,    44,   245,   743,   109,    43,    44,   814,   109,
     2917    1073,  1074,   116,   183,   184,    81,   184,   108,   824,    54,
     2918     637,    43,    44,    38,   641,    38,   408,    84,   108,   199,
     2919     110,   500,    63,   839,   110,   131,    66,   207,  1440,   207,
     2920     901,   109,  1492,   735,    43,    44,   216,   494,   108,   219,
     2921     519,   219,   735,    38,   263,   112,   226,    81,   108,   219,
     2922     263,   183,   108,    11,   110,   263,   115,   109,   108,   104,
     2923     404,   241,   107,   743,   219,   245,  1240,   114,  1141,   249,
     2924     250,   249,   131,   743,   115,  1520,   340,   113,   183,   249,
     2925    1525,   113,   116,   263,   264,   108,   264,   110,   115,   838,
     2926     270,    38,   144,   249,   249,     0,   183,   277,   850,   599,
     2927    1545,   510,     3,   717,   113,   369,   585,  1552,    81,   838,
     2928     454,   416,   292,   108,   838,   110,  1290,   158,   394,  1474,
     2929     111,  1525,   250,  1303,   404,   827,    31,   850,   628,   207,
     2930     610,   436,   818,   633,   827,   838,   109,   249,  1008,   444,
     2931     249,  1545,   486,   116,   838,   596,   422,   327,  1552,   327,
     2932    1289,  1290,   428,    81,  1509,   207,  1511,  1256,   838,    94,
     2933     238,   108,    95,   110,   292,   111,   346,   347,   838,   115,
     2934      81,   216,   690,    95,   454,  1525,   840,   115,   219,   698,
     2935     108,   249,     3,   363,     1,   237,   254,   367,   639,   122,
     2936    1061,   269,    71,   348,   129,  1225,   696,   108,   378,    71,
     2937     122,   720,  1552,    82,    83,   108,   486,   959,   108,   249,
     2938      82,    83,   114,   115,   394,   293,   257,   269,   296,    71,
     2939     261,   108,  1038,  1039,   404,   270,   404,    44,   130,   958,
     2940      82,    83,   277,   115,   958,    71,     0,   115,  1020,     0,
     2941    1414,   115,   422,   130,   296,   872,    82,    83,   428,   131,
     2942     430,   488,   131,   131,   109,   958,  1070,   131,   110,   131,
     2943     115,    67,   115,    89,    90,    71,   675,   531,    74,   115,
     2944      76,   130,   772,   115,   454,  1414,    71,    83,   131,   459,
     2945    1096,  1097,   118,  1463,   464,   131,   103,    82,    83,   131,
     2946    1470,   343,   109,   473,   108,  1406,  1407,   115,   478,   125,
     2947     126,   346,   109,   108,   109,   109,   486,   348,   486,   116,
     2948     490,   115,   490,   131,   494,   110,   109,   497,   363,   499,
     2949     490,    71,   367,   130,   479,   967,  1003,   144,   120,   121,
     2950     937,   927,    82,    83,   490,   490,   153,   964,   945,   519,
     2951     697,   697,   115,  1523,   249,   473,   108,   697,   416,   254,
     2952     697,   697,   761,   108,  1225,   699,   536,  1140,   131,   539,
     2953     110,   541,   542,  1115,   697,  1029,  1030,   656,   436,   697,
     2954     850,   108,   424,   425,   452,   757,   444,   455,   829,    87,
     2955      88,   490,   833,   461,   991,   690,   203,   663,   429,    71,
     2956     207,   519,   665,   850,   115,    10,    11,    12,    13,    14,
     2957      82,    83,   115,   108,   210,   642,   643,   644,   536,   589,
     2958     131,   539,   470,   541,   542,   109,   596,   115,   131,   699,
     2959     237,   238,   490,    38,   661,   109,   108,   732,   608,   115,
     2960     610,   695,  1303,   131,   512,    71,   514,   115,   479,   517,
     2961     111,   597,   520,   109,   115,   131,    82,    83,   500,   629,
     2962     490,    66,   269,   131,  1270,   272,   109,    79,   977,   696,
     2963     282,   589,  1278,  1279,  1280,   645,    71,   519,    73,    74,
     2964     109,   651,   923,   295,   296,   630,   293,    82,    83,   296,
     2965     660,   111,   662,   663,   664,   307,   114,  1101,   110,  1303,
     2966     112,    79,     3,   111,   116,   887,   108,   115,   735,    10,
     2967      11,    12,    13,    14,    91,    92,   963,   771,   113,     0,
     2968    1326,   416,   109,   108,   293,   110,   908,   697,   115,   699,
     2969    1020,   343,   110,   340,   112,   111,   343,    38,   116,   115,
     2970     108,   436,   712,   585,   662,   772,   664,   118,   718,   444,
     2971      31,   131,   123,   124,   350,   362,   352,   599,    71,   366,
     2972     730,    42,   369,    44,   111,    66,   969,   379,   115,    82,
     2973      83,   602,   108,   743,   744,   109,  1380,   109,   723,    60,
     2974    1131,   115,    63,   115,  1135,    66,   628,   757,   108,    63,
     2975     110,   633,   737,   488,   629,   490,   108,   110,   118,   630,
     2976     827,  1495,  1463,   937,   635,   108,   108,  1501,   110,  1470,
     2977     645,   945,   730,   108,   893,   110,   118,   424,   425,   111,
     2978     109,   109,  1319,   118,  1133,   660,   115,   115,  1522,   113,
     2979     109,   679,   690,  1527,   131,    52,   115,   113,   512,    71,
     2980     514,    73,    74,   517,   440,   452,   520,   109,   455,   717,
     2981      82,    83,   109,   115,   461,   424,   425,   128,   115,   130,
     2982     113,  1102,  1523,  1467,   145,  1469,   473,   937,   838,  1033,
     2983    1160,   114,   115,   109,   732,   945,   108,   158,    95,   115,
     2984     850,   113,  1191,  1192,   109,   108,   831,   110,   834,   131,
     2985     115,   498,   723,   500,  1529,   502,  1529,   131,   109,  1529,
     2986     115,   116,   183,   184,   115,   512,   737,   514,   109,   109,
     2987     517,   109,   519,   520,   115,   115,    71,   115,    73,    74,
     2988    1524,   108,   757,   893,   531,   108,   207,    82,    83,   109,
     2989     900,   901,  1131,   109,   109,   115,  1135,  1136,   219,   115,
     2990     115,   901,    81,   512,   556,   557,   558,   108,   517,   110,
     2991    1240,   520,   108,   923,   110,   901,   901,   109,   110,     4,
     2992       5,     6,     7,     8,     9,   108,   814,   937,   249,    71,
     2993     111,    73,    74,    81,   191,   945,   824,  1056,   585,   119,
     2994      82,    83,   263,   901,   108,   109,   110,   599,   108,   596,
     2995     110,   839,   599,   963,   108,   690,   110,   214,    57,    58,
     2996     831,   696,   108,   109,   110,   574,   108,   224,   968,   968,
     2997     108,   113,   110,   983,  1041,     4,     5,     6,     7,     8,
     2998       9,   628,   992,    68,   127,    70,   633,   108,   109,   110,
     2999    1000,   128,   639,  1003,   130,  1005,    71,   732,    73,    74,
     3000      75,   110,   108,   901,   110,     3,   327,    82,    83,   114,
     3001     115,  1250,    10,    11,    12,    13,    14,  1123,    71,   927,
     3002      73,    74,    75,   115,   116,   983,   347,   115,   116,    82,
     3003      83,   901,   108,   108,   110,   110,   293,   772,  1023,    68,
     3004      38,    70,  1000,   118,  1054,  1003,   131,  1005,   695,   108,
     3005     109,   110,  1401,    93,  1064,   108,   108,  1067,  1068,  1069,
     3006     108,  1061,    10,    11,    12,    13,    14,  1504,    66,  1418,
     3007     717,   563,   564,   565,   566,  1061,  1061,    71,   111,    73,
     3008      74,   733,  1092,   404,    43,    44,    44,   969,    82,    83,
     3009      38,   111,   702,  1160,   704,   109,  1054,   109,   968,  1338,
     3010     747,   109,    60,  1342,   109,    63,  1064,   109,    66,  1067,
     3011    1068,  1069,     3,  1123,   561,   562,   110,  1554,    66,    10,
     3012      11,    12,    13,    14,   771,   109,  1220,   779,    71,   108,
     3013      73,    74,    75,   454,   111,   109,   111,   111,  1020,    82,
     3014      83,   115,  1491,  1492,    57,    58,    59,    38,   567,   568,
     3015    1038,  1039,  1023,  1262,  1263,  1264,   130,   131,   559,   560,
     3016     108,   110,   110,  1061,   115,   108,   901,   130,   113,   490,
     3017     118,   108,   111,   494,   826,    66,   109,   109,   116,   115,
     3018     111,   111,   829,   111,   441,   111,   833,   145,  1198,   116,
     3019      28,  1061,   116,  1101,   109,    84,    85,    86,   109,   111,
     3020     158,   109,  1202,  1203,  1203,  1444,   113,   116,  1096,  1097,
     3021    1220,   114,   114,   114,   108,  1225,   115,  1202,   475,   108,
     3022     115,   110,  1289,   112,   113,  1225,   184,   109,     4,     5,
     3023       6,     7,     8,     9,   131,   109,   109,   116,   109,  1225,
     3024    1225,   109,   109,   115,  1244,  1244,    71,   109,   109,   207,
     3025      75,   109,  1262,  1263,  1264,   512,    32,    82,    83,   109,
     3026     517,   219,   109,   520,   109,   109,    71,  1225,    73,    74,
     3027      75,    84,    85,    86,   109,   109,   923,    82,    83,   470,
     3028     927,   109,   109,   108,   114,   110,   109,   608,   109,   610,
     3029      28,  1397,    68,   118,    70,   108,  1539,   110,  1298,   112,
     3030     113,   698,   111,  1303,  1262,  1263,  1264,   109,   130,  1319,
     3031    1320,   109,   109,  1298,   114,   109,   115,  1303,  1303,   111,
     3032     967,   968,   969,   720,   111,   109,  1061,  1225,    71,   109,
     3033     115,  1202,    75,  1203,   109,   901,   115,  1337,  1337,    82,
     3034      83,   115,  1529,  1529,   116,   113,   111,    71,   109,  1529,
     3035    1238,    75,  1529,  1529,   111,  1225,  1530,   115,    82,    83,
     3036     115,  1319,  1320,   109,  1374,   108,  1529,  1377,  1020,   327,
     3037     109,  1529,   108,  1020,  1244,   118,   697,   108,   699,   108,
     3038    1554,   108,  1270,   108,   108,   111,  1396,  1397,   116,   131,
     3039    1278,  1279,  1280,   114,   118,   109,  1406,  1407,  1504,    71,
     3040     109,    73,    74,    75,   109,  1303,     0,     1,   128,  1061,
     3041      82,    83,  1422,   114,   811,   113,  1374,  1427,   111,  1377,
     3042    1530,   678,   743,   744,   131,  1160,   109,  1298,   115,   111,
     3043     687,   115,   111,  1303,   691,  1445,   109,    31,  1326,   109,
     3044    1440,  1440,   109,   111,  1554,   111,   404,  1457,  1406,  1407,
     3045      44,   111,   109,    54,  1101,  1102,   111,   111,   111,    46,
     3046      29,   109,   131,  1463,  1422,   114,   131,  1337,   131,  1427,
     3047    1470,    71,    66,    73,    74,    75,   114,  1463,  1463,   131,
     3048    1529,   131,    82,    83,  1470,  1470,  1529,  1445,   679,   116,
     3049    1225,  1529,   889,   109,  1504,  1505,   111,   114,  1064,  1457,
     3050     111,   111,   111,   104,  1514,  1240,   107,   111,   108,   103,
     3051    1520,    80,    81,   111,   111,  1525,   111,   838,   118,  1529,
     3052    1530,  1396,  1530,  1523,   109,  1177,   109,   111,   108,   850,
     3053     111,    63,   108,  1543,   108,  1545,    59,  1523,  1523,  1549,
     3054     113,   109,  1552,   109,  1554,   131,  1554,  1505,    80,   116,
     3055    1560,   145,   153,   111,  1564,   111,  1514,   109,   111,   153,
     3056     154,   109,  1520,   108,  1472,  1463,  1474,  1525,  1303,    95,
     3057    1440,    95,  1470,  1220,   108,   114,   131,   115,   111,   109,
     3058     977,   109,   109,   115,   109,  1543,    41,  1545,   131,   131,
     3059     184,  1549,    95,  1463,  1552,  1204,  1205,  1244,  1207,   116,
     3060    1470,  1509,  1560,  1511,  1213,   199,  1564,  1216,   202,   203,
     3061     109,  1008,   109,   207,    95,   216,   937,   131,   109,   109,
     3062     131,   116,   131,   814,   945,  1523,   158,   109,   114,   109,
     3063      50,   131,    52,   824,   228,    55,    56,    57,   232,    59,
     3064     234,   111,   963,   111,   108,   114,   131,   114,   839,   243,
     3065     109,   109,   131,  1523,    74,   249,   109,  1539,   109,  1225,
     3066     254,  1058,  1076,   569,  1225,   570,    86,    87,   925,   270,
     3067     264,   571,   241,  1492,    63,   573,   277,  1382,   272,   572,
     3068      25,    26,    27,  1564,    73,  1313,  1136,   219,  1342,  1470,
     3069    1337,    10,    11,    12,    13,    14,    10,    11,    12,    13,
     3070      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3071      24,    25,    26,    27,  1092,    29,    30,    31,   452,    38,
     3072     452,   945,   704,   464,    38,   257,   115,   893,  1463,   261,
     3073     947,   992,   589,   965,   657,  1470,  1133,   747,  1244,   490,
     3074     757,   577,    -1,    -1,   577,   346,   340,    66,   577,   343,
     3075      -1,    96,    66,    98,  1320,   349,    -1,    -1,    -1,    73,
     3076      74,    -1,   363,    77,    -1,    -1,   367,  1376,   362,   158,
     3077      -1,    -1,   366,    -1,    -1,   369,    -1,    10,    11,    12,
     3078      13,    14,    -1,    -1,    -1,    -1,    -1,    -1,  1523,   108,
     3079      -1,   110,    -1,  1440,  1191,  1192,   110,    -1,    -1,   118,
     3080      -1,    -1,    -1,    -1,   118,    38,    -1,    -1,  1374,   378,
     3081      -1,  1377,    -1,    -1,    -1,  1072,   348,    -1,    -1,    -1,
     3082      -1,    -1,   416,    -1,    -1,  1472,    -1,  1474,    -1,   430,
     3083     219,    -1,    -1,    66,   179,    -1,    -1,   431,    -1,    -1,
     3084      -1,    -1,   436,    -1,   189,   190,    -1,  1038,  1039,   194,
     3085     444,   196,   197,    -1,    -1,    -1,  1422,    -1,    -1,    -1,
     3086      -1,  1427,  1509,    -1,  1511,    -1,    -1,    -1,   257,    -1,
     3087      -1,    -1,   261,    -1,    -1,   108,   470,   110,    -1,   473,
     3088      -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,   277,    -1,
     3089     459,  1457,  1539,    -1,   488,   464,   490,   429,    -1,    10,
     3090      11,    12,    13,    14,   498,  1096,  1097,    -1,   502,    -1,
     3091      -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
     3092      13,    14,    -1,   343,   344,    -1,    -1,    38,   497,    71,
     3093     499,    73,    74,    75,    -1,   355,   356,   531,   532,    -1,
     3094      82,    83,    -1,    -1,    -1,    38,    -1,   479,    -1,    -1,
     3095      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   348,
     3096      71,    -1,    73,    74,    75,    -1,   108,    -1,   110,    -1,
     3097      -1,    82,    83,    66,   116,    -1,   118,  1543,    71,    -1,
     3098      73,    74,    75,  1549,   578,    -1,    -1,    -1,    -1,    82,
     3099      83,    -1,    -1,    -1,  1560,   596,    -1,   108,  1564,   110,
     3100      -1,    -1,   596,   597,  1401,   599,    -1,   118,    -1,    -1,
     3101      -1,    -1,    -1,    -1,    -1,   108,   610,   110,    -1,    -1,
     3102      -1,  1418,    -1,    -1,    -1,   118,    -1,    -1,   629,    -1,
     3103      -1,    -1,    -1,    -1,   628,    -1,    -1,    -1,    -1,   633,
     3104     429,    -1,    -1,    -1,   645,   639,    -1,  1238,   642,   643,
     3105     644,    -1,    -1,    -1,    -1,  1312,    -1,   446,    -1,   660,
     3106      71,    -1,    73,    74,    75,    -1,    -1,   661,    -1,    -1,
     3107     602,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,  1270,
     3108      -1,    -1,   651,    -1,    -1,   679,    -1,  1278,  1279,  1280,
     3109     479,    -1,    -1,    -1,  1491,  1492,   690,   108,   630,   110,
     3110      -1,   695,   696,   635,    -1,   699,    -1,   118,    -1,    -1,
     3111      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3112      19,    20,    21,    22,    23,    24,    25,    26,     0,    -1,
     3113      29,    30,    31,    -1,    -1,  1326,    -1,    -1,   732,    38,
     3114      39,   735,    -1,   712,    -1,    -1,    -1,    -1,    -1,   718,
     3115     744,    -1,    -1,   747,    -1,     0,   757,    -1,    -1,    31,
     3116      71,    -1,    73,    74,    75,    -1,    -1,    66,    -1,    -1,
     3117      -1,    82,    83,    -1,    73,    74,    -1,   771,   772,    -1,
     3118      -1,    -1,    -1,   777,    -1,    -1,    31,    -1,    -1,    -1,
     3119      -1,   723,    -1,    -1,    66,    -1,    -1,   108,    -1,   110,
     3120      -1,    -1,    -1,    -1,    -1,   737,    -1,   118,  1529,    -1,
     3121      -1,   110,    -1,   602,  1471,   114,  1473,    -1,    -1,   118,
     3122     814,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3123     824,    -1,    -1,   827,    -1,   829,   581,   582,   832,   833,
     3124     834,   630,    -1,    -1,    -1,   839,   635,    -1,    -1,    -1,
     3125      -1,  1508,    -1,  1510,    -1,   849,    71,    -1,    73,    74,
     3126      75,    -1,    -1,    -1,    -1,    -1,   611,    82,    83,   614,
     3127     615,    -1,   617,    -1,   619,   620,    -1,    -1,    -1,   624,
     3128     625,    -1,   154,    96,    97,    98,    99,   100,   101,   102,
     3129     103,   104,   105,   108,    -1,    -1,  1553,    -1,  1555,   831,
     3130      -1,    -1,    -1,   118,   724,    -1,   726,   901,    -1,   154,
     3131      -1,  1568,  1569,   733,   734,    -1,    -1,   130,   738,    -1,
     3132      -1,    -1,   923,    -1,   893,    -1,   187,    -1,    -1,   923,
     3133     750,   900,    -1,   194,   723,   755,    -1,    -1,    10,    11,
     3134      12,    13,    14,    -1,    -1,    -1,    -1,    -1,   737,    -1,
     3135      -1,    -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,    -1,
     3136      -1,   781,    -1,   708,   709,   959,    38,    -1,   757,   714,
     3137      -1,    -1,    -1,   967,   968,    -1,    -1,   249,    -1,    -1,
     3138      -1,    -1,   254,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3139      -1,   985,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
     3140      -1,    73,    74,    75,   249,   266,   826,    -1,    -1,   254,
     3141      82,    83,    -1,    -1,    -1,    -1,    25,    26,    27,    -1,
     3142      -1,    -1,    -1,   992,    -1,    -1,  1020,    -1,    -1,    -1,
     3143      -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,  1033,
     3144      -1,    -1,   831,    -1,  1038,  1039,   118,  1041,  1042,    -1,
     3145      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,
     3146      -1,   322,    -1,   883,   884,   885,   886,  1061,   888,   330,
     3147      -1,    -1,   333,    -1,    -1,    -1,    -1,   349,    -1,    -1,
     3148      -1,    -1,    38,    -1,   904,    -1,    -1,    96,    -1,    98,
     3149      -1,  1023,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
     3150      -1,    -1,  1096,  1097,   349,    -1,    -1,    -1,  1102,    -1,
     3151      66,    -1,    -1,    -1,   123,    71,    -1,    73,    74,    75,
     3152      -1,    -1,    -1,  1092,    -1,    -1,    82,    83,    -1,    -1,
     3153      -1,    -1,    -1,    -1,    -1,   396,    -1,   957,    -1,   400,
     3154      -1,    -1,    -1,    -1,   416,    -1,    -1,    -1,    -1,    -1,
     3155      -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,   431,
     3156      -1,    -1,   118,    -1,   436,    -1,  1160,    -1,    -1,    -1,
     3157     179,   416,   444,    -1,    -1,    -1,    -1,   997,   187,    -1,
     3158     189,   190,    -1,    -1,  1004,   194,   431,   196,   197,  1009,
     3159      -1,   436,    -1,    -1,  1014,    -1,  1016,    -1,   470,   444,
     3160    1020,  1021,  1022,    -1,    -1,  1025,    -1,    -1,    -1,  1203,
     3161      -1,    -1,    -1,    -1,  1034,    -1,   488,    -1,   490,  1220,
     3162      -1,    -1,    -1,    -1,   485,   470,  1220,    -1,    -1,  1198,
     3163      -1,  1225,  1052,  1053,  1023,    -1,    -1,    -1,    10,    11,
     3164      12,    13,    14,   488,  1238,   490,  1240,    -1,    -1,    -1,
     3165    1244,    -1,    -1,    -1,    -1,    -1,    -1,   266,    -1,  1079,
     3166     532,    -1,  1082,    -1,    -1,    -1,    38,    -1,    -1,    -1,
     3167    1202,    -1,    -1,    -1,    -1,    -1,  1270,    -1,    -1,    -1,
     3168      -1,    -1,    -1,    -1,  1278,  1279,  1280,   532,    -1,    -1,
     3169      -1,    -1,    -1,    -1,    66,  1289,  1290,    -1,    -1,    71,
     3170    1120,    73,    74,    75,    -1,    -1,  1126,  1127,    -1,  1303,
     3171      82,    83,    -1,    -1,    -1,    -1,   577,   578,  1138,    -1,
     3172      -1,    -1,    -1,  1143,    -1,   597,  1146,    -1,  1148,    -1,
     3173      -1,  1151,  1326,    -1,    -1,    -1,   108,    -1,    -1,    -1,
     3174      -1,    -1,    -1,  1337,  1164,    -1,   118,    -1,    -1,    -1,
     3175      -1,    -1,   597,  1098,    -1,    -1,    -1,  1177,    -1,  1179,
     3176    1180,  1181,  1182,    -1,    -1,    -1,  1298,    -1,    -1,    -1,
     3177     642,   643,   644,    -1,    -1,  1195,    -1,  1197,    -1,    -1,
     3178      -1,  1201,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   661,
     3179      -1,    -1,    -1,    -1,    -1,  1396,    -1,   642,   643,   644,
     3180      -1,    -1,    -1,    -1,    -1,   666,    -1,   679,    -1,   670,
     3181    1230,  1231,    -1,  1202,    -1,    -1,   661,    -1,   690,    -1,
     3182    1414,    -1,     0,    -1,   696,    -1,    -1,    -1,    -1,    -1,
     3183      -1,    -1,    -1,    -1,   679,    -1,    -1,    -1,    -1,    -1,
     3184      -1,    -1,   703,    -1,    -1,   690,  1440,    -1,    -1,     0,
     3185      -1,   696,    -1,    31,    -1,     0,     1,    -1,    -1,    -1,
     3186     732,  1281,  1282,   735,    -1,    -1,    -1,    -1,    -1,  1463,
     3187      -1,  1291,    -1,    -1,    -1,    -1,  1470,  1222,    -1,    -1,
     3188      31,    -1,    -1,    -1,    -1,    -1,    31,   732,    66,    -1,
     3189     735,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3190     772,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1298,
     3191      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    63,    -1,
     3192      -1,    66,    -1,  1343,    -1,    -1,    -1,   772,    -1,  1523,
     3193      -1,    -1,    -1,    -1,    -1,  1355,  1530,  1357,  1358,  1359,
     3194      -1,    -1,   814,    -1,    -1,    -1,    -1,    -1,    -1,  1369,
     3195      -1,    -1,   824,    -1,    -1,   827,    -1,   818,  1378,    -1,
     3196     832,    -1,   834,    -1,    -1,    -1,    -1,   839,    -1,   814,
     3197      -1,    -1,   581,   582,  1394,    -1,   154,    -1,    -1,   824,
     3198      -1,    -1,   827,    -1,    -1,    -1,    -1,   832,    -1,   834,
     3199      -1,    -1,    -1,    -1,   839,    -1,    -1,    -1,    -1,    -1,
     3200      -1,    -1,   611,   154,    -1,   614,   615,    -1,   617,   154,
     3201     619,   620,    -1,    -1,    -1,   624,   625,    -1,    -1,    -1,
     3202      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   901,
     3203    1450,  1451,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3204      -1,    -1,    -1,  1463,    -1,    -1,    -1,    -1,    -1,    -1,
     3205    1470,    -1,    -1,    -1,    -1,    -1,   901,    -1,    -1,    -1,
     3206      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3207     931,   249,    -1,    -1,   219,    -1,   254,    -1,    -1,    -1,
     3208      -1,    -1,    -1,  1503,    -1,    -1,    -1,  1507,    -1,    -1,
     3209      -1,    -1,    -1,    -1,   703,    -1,    -1,    -1,   249,   708,
     3210     709,    -1,    -1,   254,   249,   714,    -1,    -1,    -1,    -1,
     3211      -1,    -1,    -1,   985,    -1,    -1,  1536,    -1,  1538,    -1,
     3212      -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3213      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3214     985,    29,    30,    31,    -1,    -1,  1566,  1567,    -1,  1010,
     3215      38,    39,    -1,    -1,  1574,  1575,    -1,    -1,    -1,    -1,
     3216      -1,    -1,    -1,    -1,    -1,  1026,  1038,  1039,    -1,  1041,
     3217    1042,   349,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
     3218      -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,  1061,
     3219      -1,    -1,    -1,  1038,  1039,    -1,  1041,  1042,   349,    10,
     3220      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3221      21,    22,    23,    24,    25,    26,  1061,    -1,    29,    30,
     3222      31,    -1,   110,    -1,  1096,  1097,   114,    38,    -1,    -1,
     3223     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   416,    -1,
     3224      -1,    -1,  1103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3225      -1,  1096,  1097,   431,    -1,    66,    -1,    -1,   436,    -1,
     3226      71,    -1,    73,    74,    75,   416,   444,    -1,    -1,    -1,
     3227      -1,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3228     431,    -1,    -1,    -1,    -1,   436,   431,    -1,  1160,    -1,
     3229      -1,    -1,   470,   444,    -1,    -1,    -1,   108,    -1,   110,
     3230      -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
     3231     488,    -1,   490,    -1,    -1,  1160,    -1,    -1,    -1,   470,
     3232      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3233      -1,  1203,    -1,    -1,    -1,    -1,    -1,   488,    -1,   490,
     3234      -1,    -1,    -1,    -1,    -1,   490,    -1,    -1,    -1,    -1,
     3235      -1,    -1,    -1,  1225,   532,    -1,    -1,    -1,  1203,    -1,
     3236      -1,    -1,    -1,    -1,    -1,    -1,  1238,    -1,  1240,    -1,
     3237      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3238    1225,   532,    -1,    -1,    -1,    -1,    -1,   532,    -1,    -1,
     3239      -1,    -1,    -1,  1238,    -1,  1240,    -1,    -1,  1270,    -1,
     3240      -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,  1280,    -1,
     3241      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1289,  1290,   597,
     3242      -1,    -1,    -1,    -1,    -1,  1270,    -1,    -1,    -1,    -1,
     3243      -1,  1303,    -1,  1278,  1279,  1280,    -1,    -1,    -1,    -1,
     3244      -1,    -1,    -1,    -1,  1289,  1290,   597,    -1,    -1,    -1,
     3245      -1,    -1,   597,    -1,  1326,    -1,    -1,    -1,  1303,    -1,
     3246      -1,    -1,    -1,    -1,   642,   643,   644,    -1,    -1,    -1,
     3247      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3248      -1,  1326,    -1,   661,    -1,    -1,    -1,    -1,    -1,  1098,
     3249      -1,   642,   643,   644,    -1,    -1,    -1,   642,   643,   644,
     3250      -1,   679,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3251     661,    -1,   690,    -1,    -1,    -1,   661,    -1,   696,    -1,
     3252      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   679,     7,
     3253      -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,   690,
     3254      -1,    -1,  1414,    -1,    -1,   696,    -1,    -1,    -1,    -1,
     3255      -1,    -1,    -1,    -1,   732,    -1,    -1,   735,    36,    37,
     3256      38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1414,
     3257      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3258      -1,   732,    -1,    -1,   735,    -1,    -1,    65,    66,    -1,
     3259     735,  1463,    -1,    71,   772,    -1,    -1,    75,  1470,    -1,
     3260      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3261      -1,    -1,    -1,  1222,    -1,    93,    -1,    -1,  1463,    -1,
     3262      -1,   772,    -1,    -1,    -1,  1470,    -1,    -1,    -1,    -1,
     3263     108,    -1,   110,    -1,    -1,    -1,   814,    -1,    -1,   117,
     3264     118,   119,   120,   121,   122,    -1,   824,    -1,    -1,   827,
     3265      -1,  1523,    -1,    -1,   832,    -1,   834,    -1,    -1,    -1,
     3266      -1,   839,    -1,   814,    -1,    -1,    -1,    -1,    -1,    -1,
     3267      -1,    -1,    -1,   824,    -1,    -1,   827,    -1,  1523,    -1,
     3268      -1,   832,   827,   834,    -1,    -1,    -1,    -1,   839,   834,
     3269      -1,    -1,    -1,    -1,    -1,     0,    -1,    -1,     3,     4,
    23753270       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    23763271      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2377       25,     0,     0,    26,    27,    28,    29,     0,     0,    30,
    2378        0,     0,    31,    32,     0,     0,     0,     0,     0,   341,
    2379        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2380        0,     0,     0,     0,     0,     0,     0,    33,     0,   363,
    2381       34,     0,    35,     0,    36,    37,   321,    38,    39,    40,
    2382        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2383        0,     0,  1139,  1140,     0,     0,     0,     0,     0,   381,
    2384        0,     0,     0,     0,     0,   996,     0,     0,  1149,     0,
    2385      769,     0,    43,     0,    44,     0,     0,     0,   363,   363,
    2386        0,     0,    45,     0,     0,     0,     0,     0,     0,     0,
    2387     1165,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2388        0,  1180,     0,     0,     0,     0,   516,     0,     0,     0,
    2389        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2390        0,     0,     0,   381,     0,  1198,     0,     0,     0,     0,
    2391        0,     0,     0,     0,     0,     0,     0,   516,     0,     0,
    2392      996,   996,     0,     0,     0,     0,     0,     0,     0,   516,
    2393        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2394        0,  1230,     0,     0,     1,     2,     3,     4,     5,     6,
     3272      25,    26,    -1,   901,    29,    30,    31,    32,    -1,    -1,
     3273      35,    -1,    -1,    38,    39,    -1,    -1,    -1,    -1,    10,
     3274      11,    12,    13,    14,    -1,    10,    11,    12,    13,    14,
     3275     901,    -1,    -1,    -1,    -1,    -1,   901,    -1,    63,    -1,
     3276      -1,    66,    44,    68,    -1,    70,    71,    38,    73,    74,
     3277      75,    -1,    -1,    38,    -1,    -1,    -1,    82,    83,    -1,
     3278      -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3279      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
     3280      71,    66,    -1,   108,    75,   110,    71,   985,    -1,    -1,
     3281      75,    82,    83,   118,    -1,    -1,    -1,    82,    83,    -1,
     3282      -1,    -1,    -1,   968,    -1,    -1,    -1,   109,    -1,    -1,
     3283      -1,    -1,    -1,   115,   985,    -1,    -1,   108,    -1,    -1,
     3284     985,    -1,    -1,   108,    -1,    -1,    -1,   118,    -1,    -1,
     3285      -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3286    1038,  1039,   144,  1041,  1042,    -1,    -1,    -1,    -1,    -1,
     3287      -1,    -1,   154,    -1,    -1,    -1,   158,    -1,    -1,    -1,
     3288      -1,    -1,    -1,  1061,    -1,    -1,    -1,  1038,  1039,    -1,
     3289    1041,  1042,    -1,    -1,    -1,    -1,  1041,  1042,    -1,    -1,
     3290      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3291    1061,    -1,    -1,    -1,    -1,    -1,  1061,    -1,  1096,  1097,
     3292      -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,    -1,
     3293      -1,    -1,    -1,    -1,    -1,    -1,    -1,   219,    -1,    -1,
     3294      -1,    -1,    -1,    -1,    -1,  1096,  1097,    -1,    -1,    -1,
     3295      -1,    36,    37,    -1,    39,   237,   238,    10,    11,    12,
     3296      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3297      23,    24,    25,    26,    -1,    -1,    29,    30,    31,   261,
     3298      65,    -1,  1160,    -1,    -1,    38,    71,   269,    -1,    -1,
     3299      75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3300      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,  1160,
     3301      -1,   293,    -1,    66,   296,    -1,    -1,    -1,    -1,    -1,
     3302      73,    74,    -1,   108,    -1,  1203,    -1,    -1,    -1,    -1,
     3303      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3304      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1225,    -1,    -1,
     3305      -1,    -1,  1203,    -1,    -1,    -1,    -1,  1202,  1203,    -1,
     3306    1238,   343,  1240,    -1,    -1,   118,   348,    -1,    -1,    -1,
     3307      -1,    -1,    -1,    -1,  1225,    -1,    -1,    -1,    -1,    -1,
     3308    1225,    -1,    -1,    -1,    -1,    -1,    -1,  1238,    -1,  1240,
     3309      -1,    -1,  1270,    -1,    -1,    -1,    -1,    -1,    -1,  1244,
     3310    1278,  1279,  1280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3311      -1,  1289,  1290,    -1,    -1,    -1,    -1,    -1,    -1,  1270,
     3312      -1,    -1,    -1,    -1,    -1,  1303,    -1,  1278,  1279,  1280,
     3313      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1289,  1290,
     3314      -1,    -1,   424,   425,  1289,  1290,    -1,    -1,  1326,   431,
     3315      -1,    -1,  1303,  1298,    -1,    -1,    -1,    -1,  1303,    -1,
     3316      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3317     452,    -1,    -1,   455,    -1,  1326,    -1,    -1,    -1,   461,
     3318      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3319      -1,    -1,  1337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3320      -1,    -1,    -1,    -1,    -1,    -1,   488,    -1,    -1,    -1,
     3321      63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   500,    -1,
     3322      73,    -1,    75,    -1,    77,    -1,    -1,    -1,    -1,    -1,
     3323     512,    84,   514,    -1,    -1,   517,  1414,   519,   520,    -1,
     3324      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3325     532,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3326      -1,    -1,   115,  1414,   117,   118,   119,    -1,    -1,  1414,
     3327      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3328      -1,    -1,    -1,    -1,    -1,  1463,    -1,    43,    -1,    -1,
     3329      -1,    -1,  1470,    -1,    -1,  1440,    -1,    -1,    -1,    -1,
     3330      -1,    -1,    -1,   585,    -1,   158,    -1,    -1,    -1,    -1,
     3331      -1,    -1,  1463,    -1,    -1,   597,    -1,   599,  1463,  1470,
     3332     602,    -1,    -1,    -1,    -1,  1470,    -1,    -1,    -1,    -1,
     3333      -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,
     3334      -1,    -1,    -1,    99,    -1,  1523,   628,    -1,    -1,    -1,
     3335      -1,   633,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3336     642,   643,   644,    -1,    -1,    -1,   219,    -1,   221,   222,
     3337     223,    -1,  1523,    -1,    -1,    -1,    -1,    -1,  1523,   661,
     3338      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3339      19,    20,    21,    22,    23,    24,    25,    26,    27,   155,
     3340      29,    30,    31,    -1,   257,    -1,    -1,    -1,   261,    38,
     3341      -1,    -1,    -1,   169,   696,    -1,    -1,    -1,    -1,    -1,
     3342      -1,    -1,    -1,    -1,   277,    -1,    -1,    -1,    -1,    -1,
     3343      -1,    -1,    -1,    -1,    -1,   717,   192,    66,    -1,    -1,
     3344      -1,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,
     3345     206,    -1,    -1,   735,    -1,   737,    -1,    -1,    -1,   215,
     3346      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   225,
     3347      -1,    -1,    -1,    -1,   327,    -1,    -1,    -1,    -1,   108,
     3348      -1,   110,    36,    37,    -1,    39,    -1,    -1,    -1,   118,
     3349     772,    -1,    -1,    -1,   250,   348,    -1,    -1,    -1,   255,
     3350     353,   354,    -1,    -1,    -1,    -1,    -1,    -1,   361,    -1,
     3351      -1,    65,   268,    -1,    -1,    -1,    -1,    71,   274,    -1,
     3352     276,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
     3353      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,   294,    93,
     3354      -1,    -1,    -1,    -1,    -1,   827,    -1,    -1,    -1,   831,
     3355      -1,   404,   834,    -1,   108,    -1,   110,    -1,    -1,   113,
     3356      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,   422,
     3357      -1,    -1,    -1,    -1,   427,    -1,   429,    -1,    -1,    -1,
     3358      -1,   337,    -1,    -1,    -1,    -1,   342,    -1,    -1,    -1,
     3359      -1,    -1,    -1,   446,    -1,    -1,   449,   450,    -1,    -1,
     3360      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3361      -1,    -1,   465,    -1,   370,    -1,    -1,    -1,   374,   375,
     3362      -1,   377,    -1,    -1,    -1,    -1,   479,    -1,   384,   385,
     3363      -1,   387,   388,   486,   390,    -1,   392,    -1,    -1,    -1,
     3364      -1,    -1,    -1,     7,    -1,   927,    10,    11,    12,    13,
     3365      14,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
     3366      -1,   417,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3367      -1,    -1,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
     3368      -1,    -1,    -1,    -1,    -1,    -1,   442,   969,    -1,    -1,
     3369      -1,    -1,    -1,    -1,    -1,    -1,    -1,   453,    -1,    -1,
     3370      -1,    65,    66,   985,    -1,    -1,    -1,    71,    -1,    -1,
     3371      -1,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
     3372     476,    85,    86,    -1,    -1,    -1,   482,    -1,    -1,    93,
     3373      -1,   487,    -1,    -1,    -1,    -1,    -1,    -1,  1020,    -1,
     3374      -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,   602,
     3375      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,  1041,
     3376    1042,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   524,    -1,
     3377      -1,    -1,    -1,    -1,    -1,    -1,    -1,   630,   280,    -1,
     3378     282,   283,   635,    -1,   540,    -1,    -1,    -1,   290,   291,
     3379      -1,    -1,    -1,   295,   296,    -1,    -1,    -1,    -1,    -1,
     3380      -1,    -1,    -1,    -1,    -1,   307,    -1,    -1,    -1,    -1,
     3381      -1,    -1,    -1,    -1,    -1,    36,    37,    -1,    39,  1101,
     3382      -1,   577,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3383     586,    -1,    -1,    -1,    -1,    -1,    -1,   593,    -1,    -1,
     3384      -1,   343,   598,    -1,    65,    -1,    -1,    -1,    -1,    -1,
     3385      71,    -1,    -1,   609,    75,    -1,    -1,    78,    79,    80,
     3386      81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
     3387     723,    -1,    93,    -1,    -1,    -1,    -1,   379,  1160,    -1,
     3388      -1,    -1,    -1,    -1,   737,    -1,    -1,   108,    -1,   110,
     3389      -1,    -1,    -1,    -1,   650,   116,   117,   118,   119,   120,
     3390     121,   122,    -1,    -1,   757,    -1,    -1,    -1,    -1,    -1,
     3391      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3392    1202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3393     686,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3394      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3395      25,    26,    27,    -1,    29,    30,    31,    -1,  1240,    -1,
     3396      -1,    -1,    -1,    38,    -1,   818,    -1,    -1,    -1,    -1,
     3397      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   831,    -1,
     3398      -1,    -1,    -1,    -1,    -1,   741,    -1,    -1,    -1,    -1,
     3399      -1,    66,    -1,    -1,    -1,   751,   752,   850,    73,    74,
     3400      -1,    -1,    77,    -1,    -1,    -1,    -1,  1289,  1290,   765,
     3401      -1,    -1,    -1,    -1,    -1,    -1,  1298,    -1,    -1,    -1,
     3402      -1,    -1,    -1,    -1,    -1,    -1,   782,    -1,   784,    -1,
     3403      -1,    -1,   788,   108,    -1,   110,    -1,    -1,    -1,    -1,
     3404      -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3405      -1,    -1,    -1,    -1,   556,   557,   558,   559,   560,   561,
     3406     562,   563,   564,   565,   566,   567,   568,   569,   570,   571,
     3407     572,   573,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3408      36,    37,    -1,    39,   937,    -1,    -1,    -1,    -1,    -1,
     3409      -1,    -1,    -1,    -1,    -1,    -1,    -1,   599,   854,    -1,
     3410      -1,    -1,    -1,    -1,    -1,   861,    -1,    -1,    -1,    65,
     3411     963,    -1,    -1,    -1,    -1,    71,    -1,    -1,   874,    75,
     3412     876,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3413      86,    -1,  1414,    -1,   890,    -1,    -1,    93,   991,    -1,
     3414      -1,   897,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3415      -1,    -1,   108,   909,   110,    -1,   912,    -1,    -1,   115,
     3416      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3417    1023,    -1,    -1,    -1,   930,    -1,    -1,    -1,    -1,    -1,
     3418      -1,  1034,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3419    1472,    -1,  1474,    -1,    -1,    -1,   698,    -1,    10,    11,
     3420      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3421      22,    23,    24,    25,    26,    27,    -1,    -1,   720,    -1,
     3422      -1,    -1,    -1,    -1,    -1,    -1,    38,  1509,    -1,  1511,
     3423      -1,   733,    10,    11,    12,    13,    14,    15,    16,    17,
     3424      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3425      -1,    29,    30,    31,    66,    -1,    -1,  1539,    -1,    -1,
     3426      38,    -1,  1115,  1019,    -1,    77,    -1,    -1,    -1,   153,
     3427     154,    -1,    -1,    -1,    -1,    -1,    -1,   779,    -1,    -1,
     3428      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
     3429      -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,    77,
     3430      -1,    -1,    -1,   187,    82,    83,    -1,    -1,    -1,   811,
     3431     194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1075,
     3432      -1,    -1,    -1,    -1,   826,    -1,  1082,    -1,    -1,    -1,
     3433     108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3434     118,    36,    37,    -1,    39,    -1,    -1,    -1,    -1,  1202,
     3435      -1,    -1,    -1,    -1,    -1,  1111,    -1,    -1,    -1,    -1,
     3436    1116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1124,    -1,
     3437      65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,
     3438      75,    -1,   266,    78,    79,    80,    81,    82,    83,    -1,
     3439      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,  1155,
     3440      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3441      -1,  1167,    -1,   108,  1170,   110,  1172,   112,   113,    -1,
     3442      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3443    1186,  1187,    -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,
     3444      -1,    -1,    -1,    -1,    -1,  1298,   330,   331,    -1,   333,
     3445     334,    -1,  1208,    -1,    -1,    -1,    -1,    -1,    -1,   343,
     3446      -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,
     3447      -1,    -1,    -1,    -1,    -1,   977,    -1,    -1,    -1,  1235,
     3448     144,    -1,   366,    -1,    -1,   369,    -1,    -1,    -1,    -1,
     3449     154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3450      -1,    -1,   166,   167,    -1,    -1,  1008,    -1,    -1,    -1,
     3451      -1,    -1,   396,    -1,    -1,    -1,   400,    -1,  1020,     4,
     3452       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3453      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3454      25,    26,    -1,    -1,    29,    30,    31,   431,    -1,    -1,
     3455      -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,  1061,
     3456      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3457     454,    -1,    -1,   237,    -1,    -1,  1332,    -1,  1334,    -1,
     3458      -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,
     3459      -1,  1347,    -1,  1349,    -1,    -1,    -1,    -1,   262,    -1,
     3460      -1,   485,    -1,    -1,   488,    -1,    -1,    -1,    -1,    -1,
     3461      -1,  1367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3462      -1,    -1,    -1,    -1,   109,   110,    -1,  1383,  1384,    -1,
     3463      -1,  1133,    -1,   118,    -1,    -1,    -1,    -1,    -1,  1395,
     3464      -1,    -1,  1398,    -1,   528,    -1,    -1,   531,   532,    -1,
     3465      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3466      -1,    -1,    -1,    -1,  1420,    -1,    -1,    -1,    -1,    -1,
     3467      -1,    -1,    -1,  1429,    -1,  1177,  1432,    -1,  1434,  1435,
     3468    1436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1191,
     3469    1192,    -1,    -1,   577,   578,    -1,    -1,    -1,    -1,    -1,
     3470      -1,  1554,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3471      -1,    -1,   596,   597,   378,   599,    -1,    -1,    -1,    -1,
     3472    1476,    -1,  1478,    -1,   608,  1481,   610,   611,    -1,    -1,
     3473      -1,    -1,    -1,   617,    -1,    -1,    -1,    -1,    -1,    -1,
     3474    1496,    -1,    -1,   627,   628,    -1,    -1,    -1,    -1,   633,
     3475      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   642,   643,
     3476     644,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3477      -1,    -1,    -1,    -1,    -1,    -1,    -1,   661,    -1,    -1,
     3478      -1,    -1,   666,   667,    -1,    -1,   670,   671,    -1,    -1,
     3479      -1,    -1,    -1,   677,    -1,    -1,    -1,    -1,    -1,    -1,
     3480      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3481      -1,   695,   696,   697,    -1,   699,   480,    -1,    -1,   703,
     3482      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3483      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3484      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    38,
     3485      -1,   735,   736,    -1,    -1,   519,    -1,    -1,    -1,    -1,
     3486      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   532,    -1,
     3487      -1,    -1,    -1,    -1,    -1,   539,    -1,    66,   542,    -1,
     3488      -1,    -1,    -1,    -1,    73,    74,    -1,   771,   772,   553,
     3489     554,    -1,   776,   777,    -1,    -1,    -1,    -1,    -1,  1401,
     3490      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3491      -1,   575,    -1,    -1,    -1,    -1,  1418,    -1,    -1,    -1,
     3492      -1,   585,    -1,    -1,    -1,    -1,    -1,    -1,   592,   118,
     3493      -1,    -1,    -1,   597,   818,    -1,    -1,    -1,    -1,    -1,
     3494      -1,    -1,    -1,   827,    -1,    -1,    -1,    -1,    -1,   833,
     3495     834,    -1,    -1,    -1,   838,    -1,   840,    -1,    -1,    -1,
     3496      -1,    -1,    -1,    -1,    -1,    -1,   850,    -1,    -1,    -1,
     3497      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3498      -1,    -1,    -1,   647,    -1,    -1,    -1,    -1,    -1,  1491,
     3499    1492,    -1,   656,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     3500       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3501      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3502      24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
     3503      -1,    35,   696,    -1,    38,    39,    -1,    -1,    -1,   923,
     3504      -1,    -1,    -1,    -1,    -1,    -1,    -1,   931,    36,    37,
     3505      -1,    39,    -1,   937,    -1,    -1,    -1,    -1,    -1,    63,
     3506      -1,   945,    66,    -1,    68,    -1,    70,    71,    -1,    73,
     3507      74,    75,    -1,    -1,   958,   959,    -1,    65,    82,    83,
     3508      -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
     3509      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3510      -1,   985,    -1,    -1,   108,    93,   110,   991,   772,    -1,
     3511     774,    -1,    -1,    -1,   118,    -1,   780,    -1,    -1,    -1,
     3512     108,    -1,   110,   787,    -1,   113,  1010,  1011,    -1,   117,
     3513     118,   119,   120,   121,   122,    -1,  1020,    -1,    -1,    -1,
     3514      -1,    -1,  1026,  1027,    -1,  1029,  1030,  1031,    -1,    -1,
     3515      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1041,  1042,    -1,
     3516      -1,    -1,    -1,    -1,    -1,    -1,    -1,   831,   832,    -1,
     3517     834,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3518      -1,    -1,    -1,    -1,    -1,   849,    -1,    -1,    -1,    -1,
     3519      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3520      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3521      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1102,  1103,
     3522    1104,    -1,    -1,    -1,    -1,   889,    -1,    -1,    -1,   893,
     3523      -1,  1115,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    23953524       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2396       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2397      516,    26,    27,    28,    29,     0,     0,    30,     0,     0,
    2398       31,    32,     0,   363,     0,     0,     0,     0,   996,     0,
    2399        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2400        0,     0,     0,     0,     0,    33,     0,   889,    34,     0,
    2401       35,     0,    36,    37,     0,    38,    39,    40,     0,     0,
    2402        0,     0,  1282,  1283,    41,    42,     0,     0,     0,     0,
    2403        0,     0,   281,   282,     0,   283,     0,     0,     0,     0,
    2404        0,     0,   516,     0,     0,     0,     0,     0,     0,     0,
    2405       43,     0,    44,     0,     0,     0,  -521,     0,     0,     0,
    2406       45,   284,     0,     0,     0,     0,     0,   285,     0,     0,
    2407        0,   286,     0,   413,   287,   288,   289,   290,    41,    42,
    2408        0,   291,   292,     0,     0,     0,   516,     0,     0,   293,
    2409        0,     0,     0,     0,     0,     0,     0,     0,   413,   413,
    2410      516,   516,     0,   996,   294,     0,   378,     0,     0,     0,
    2411        0,   781,     0,   296,   380,   298,   299,   300,   301,     0,
    2412        0,     0,     0,   413,     0,     1,     2,   205,     4,     5,
     3525      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3526      -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
     3527      37,    38,    39,    40,    -1,    42,  1160,    -1,    45,    46,
     3528      47,    48,    49,    50,    51,    52,    -1,    -1,    -1,    56,
     3529      -1,    -1,    -1,    60,    61,    -1,    63,    -1,    65,    66,
     3530      -1,    68,    -1,    70,    71,   969,    73,    74,    75,    -1,
     3531      -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3532      -1,   985,   986,    -1,    -1,    -1,    93,    -1,   992,    -1,
     3533      -1,    -1,    36,    37,   998,    39,  1220,  1001,    -1,  1003,
     3534      -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,
     3535     117,   118,   119,   120,   121,   122,  1240,    -1,    -1,  1023,
     3536     127,    65,    -1,    -1,   131,    -1,    -1,    71,    -1,    -1,
     3537    1034,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
     3538      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
     3539      -1,    -1,  1056,    -1,  1058,    -1,    -1,    -1,    -1,    -1,
     3540      -1,    -1,    -1,    -1,   108,  1289,  1290,    -1,    -1,  1073,
     3541    1074,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3542      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3543    1094,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
     3544       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3545      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3546      25,    26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,
     3547      35,    36,    37,    38,    39,    -1,    -1,  1141,    -1,    -1,
     3548      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3549      36,    37,    -1,    39,    -1,    -1,  1160,    -1,    -1,    -1,
     3550      65,    66,    -1,    68,    -1,    70,    71,    -1,    73,    74,
     3551      75,  1175,  1176,    78,    79,    80,    81,    82,    83,    65,
     3552      85,    86,    -1,    -1,    -1,    71,    -1,    -1,    93,    75,
     3553    1414,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3554      86,    -1,    -1,   108,    -1,   110,    -1,    93,    -1,    -1,
     3555      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3556      -1,    -1,   108,    -1,   110,    -1,   131,    -1,    -1,    -1,
     3557      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3558      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3559      -1,    -1,  1256,    -1,    -1,    -1,     3,     4,     5,     6,
     3560       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3561      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3562    1504,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
     3563      37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3564      -1,    -1,    -1,    -1,    -1,  1529,  1530,    -1,    -1,    -1,
     3565      -1,    -1,    -1,  1317,    -1,  1319,    -1,    -1,    65,    66,
     3566      -1,    68,    -1,    70,    71,    -1,    73,    74,    75,    -1,
     3567    1554,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3568      -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
     3569      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3570      -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
     3571     117,   118,   119,   120,   121,   122,    -1,    -1,     4,     5,
    24133572       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    24143573      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2415        0,     0,    26,    27,    28,    29,     0,     0,    30,   281,
    2416      282,    31,  1062,  1063,  1390,  1064,   769,     0,  1065,  1066,
    2417     1067,  1068,  1069,  1070,  1071,  1072,     0,     0,     0,  1073,
    2418        0,     0,     0,  1074,  1075,     0,    33,     0,   284,    34,
    2419        0,    35,     0,    36,   649,     0,    38,    39,   286,     0,
    2420        0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
    2421        0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
    2422        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2423        0,   294,     0,  1076,     0,     0,   170,     0,     0,     0,
    2424      296,   297,   298,   299,   300,   301,     0,     0,     0,     0,
    2425     1077,     0,  1450,     0,  -129,     0,     0,     0,     0,     0,
    2426        1,     2,   205,     4,     5,     6,     7,     8,     9,    10,
     3574      26,  1405,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3575      36,    37,    38,    39,    -1,    10,    11,    12,    13,    14,
     3576      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3577      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    65,
     3578      66,    -1,    68,    38,    70,    71,    -1,    73,    74,    75,
     3579      -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3580      86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
     3581      -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,
     3582      -1,    -1,   108,  1487,   110,    -1,    -1,    82,    83,   115,
     3583      -1,   117,   118,   119,   120,   121,   122,     4,     5,     6,
     3584       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3585      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3586      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3587      37,    38,    39,    -1,    -1,  1539,    -1,    10,    11,    12,
     3588      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3589      23,    24,    25,    26,    27,    -1,    -1,    -1,    65,    66,
     3590      -1,    68,    -1,    70,    71,    38,    73,    74,    75,    -1,
     3591      -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3592      -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
     3593      -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
     3594      -1,   108,    -1,   110,    77,    -1,    -1,    -1,   115,    -1,
     3595     117,   118,   119,   120,   121,   122,     4,     5,     6,     7,
     3596       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3597      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3598      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
     3599      38,    39,    -1,    10,    11,    12,    13,    14,    15,    16,
     3600      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3601      -1,    -1,    29,    30,    31,    -1,    -1,    65,    66,    -1,
     3602      68,    38,    70,    71,    -1,    73,    74,    75,    -1,    -1,
     3603      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3604      -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    66,
     3605      -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,
     3606     108,    -1,   110,    -1,    -1,    -1,    -1,   115,    -1,   117,
     3607     118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
     3608       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3609      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3610      29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
     3611      39,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3612      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3613      -1,    29,    30,    31,    -1,    -1,    65,    66,    -1,    68,
     3614      38,    70,    71,    -1,    73,    74,    75,    -1,    -1,    78,
     3615      79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
     3616      -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    66,    -1,
     3617      -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,   108,
     3618      -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3619     119,   120,   121,   122,     4,     5,     6,     7,     8,     9,
     3620      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3621      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3622      30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    39,
     3623      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3624      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3625      -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    38,
     3626      70,    71,    -1,    73,    74,    75,    -1,    -1,    78,    79,
     3627      80,    81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,
     3628      -1,    -1,    -1,    93,    -1,    -1,    -1,    66,    -1,    -1,
     3629      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,
     3630     110,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
     3631     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
    24273632      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2428       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2429       29,     0,     0,    30,   281,   282,    31,   283,     0,     0,
    2430        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2431      516,     0,     0,   281,   282,     0,   283,     0,     0,     0,
    2432        0,     0,     0,   284,    34,     0,    35,   516,    36,   285,
    2433        0,    38,    39,   286,  1516,     0,   287,   288,   289,   290,
    2434       41,    42,   284,   291,   292,     0,     0,     0,   285,     0,
    2435        0,   293,   286,     0,     0,   287,   288,   289,   290,    41,
    2436       42,     0,   291,   292,     0,     0,   294,     0,  1076,     0,
    2437      293,     0,     0,     0,     0,   296,   297,   298,   299,   300,
    2438      301,     0,     0,     0,     0,   294,   321,   378,     0,  -129,
    2439      993,     0,     0,     0,   296,   380,   298,   299,   300,   301,
    2440      516,   516,     1,     2,   205,     4,     5,     6,     7,     8,
    2441        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2442       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2443       27,    28,    29,     0,     0,    30,   281,   282,    31,   283,
    2444        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2445       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2446       26,    27,    28,     0,     0,   284,    34,     0,    35,    31,
    2447       36,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2448      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2449        0,     0,     0,   293,     0,     0,     0,    34,     0,     0,
    2450        0,     0,   109,     0,    38,    39,     0,     0,   294,     0,
    2451       44,     0,     0,    41,    42,     0,     0,   296,   297,   298,
    2452      299,   300,   301,     2,   205,     4,     5,     6,     7,     8,
    2453        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2454       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2455       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2456        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2457       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2458       25,  -294,     0,     0,     0,   284,    34,     0,    35,     0,
    2459       36,   285,    31,    38,    39,   286,     0,     0,   287,   288,
    2460      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2461        0,     0,     0,   293,     0,     0,     0,     0,     0,     0,
    2462       34,     0,     0,     0,     0,     0,     0,     0,   294,     0,
    2463      343,  -294,     0,     0,     0,   781,     0,   296,   344,   298,
    2464      299,   300,   301,     2,   205,     4,     5,     6,     7,     8,
    2465        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2466       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2467       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2468        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2469       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2470       25,  -295,     0,     0,     0,   284,    34,     0,    35,     0,
    2471       36,   285,    31,    38,    39,   286,     0,     0,   287,   288,
    2472      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2473        0,     0,     0,   293,     0,     0,     0,     0,     0,     0,
    2474       34,     0,     0,     0,     0,     0,     0,     0,   294,     0,
    2475      931,  -295,     0,     0,     0,   781,     0,   296,   344,   298,
    2476      299,   300,   301,     2,   205,     4,     5,     6,     7,     8,
    2477        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2478       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2479       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2480        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2481       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2482       26,    27,    28,     0,     0,   284,    34,     0,    35,    31,
    2483       36,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2484      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2485        0,     0,     0,   293,     0,     0,     0,    34,     0,     0,
    2486        0,     0,     0,     0,    38,    39,     0,     0,   294,     0,
    2487      931,     0,     0,     0,     0,   781,     0,   296,   600,   298,
    2488      299,   300,   301,     2,   205,     4,     5,     6,     7,     8,
    2489        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2490       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2491       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2492        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2493       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2494       26,    27,    28,     0,     0,   284,    34,     0,    35,    31,
    2495       36,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2496      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2497        0,     0,     0,   293,     0,     0,     0,    34,     0,     0,
    2498        0,     0,     0,     0,   206,    39,     0,     0,   294,     0,
    2499      343,     0,     0,     0,     0,     0,     0,   296,   344,   298,
    2500      299,   300,   301,     2,   205,     4,     5,     6,     7,     8,
    2501        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2502       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2503       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2504        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2505        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2506        0,     0,     0,     0,     0,   284,    34,     0,    35,     0,
    2507       36,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2508      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2509        0,     0,     0,   293,     0,     0,     0,     0,     0,     0,
    2510        0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
    2511      931,     0,     0,     0,     0,     0,     0,   296,   344,   298,
    2512      299,   300,   301,     2,   205,     4,     5,     6,     7,     8,
    2513        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2514       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2515       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2516        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2517        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2518        0,     0,     0,     0,     0,   284,    34,     0,    35,     0,
    2519       36,   285,     0,   206,    39,   286,     0,     0,   287,   288,
    2520      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2521        0,     0,     0,   293,     0,     0,     0,     0,     0,     0,
    2522        0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
    2523     1020,     0,     0,     0,     0,     0,     0,   296,  1021,   298,
    2524      299,   300,   301,     2,   205,     4,     5,     6,     7,     8,
    2525        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2526       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2527       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2528        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2529       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2530       26,    27,    28,     0,     0,   284,    34,     0,    35,    31,
    2531       36,   285,     0,   206,    39,   286,     0,     0,   287,   288,
    2532      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2533        0,     0,     0,   293,     0,     0,     0,    34,     0,     0,
    2534        0,     0,     0,     0,   206,    39,     0,     0,   294,     0,
    2535      378,     0,     0,     0,     0,     0,     0,   296,   380,   298,
    2536      299,   300,   301,   204,     2,   205,     4,     5,     6,     7,
    2537        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2538       18,    19,    20,    21,    22,    23,    24,    25,     0,   270,
    2539       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2540        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2541       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2542        0,    26,    27,    28,   492,   493,   494,    34,     0,    35,
    2543       31,    36,    37,     0,   206,    39,    40,     0,     0,     0,
    2544        0,     0,     0,    41,    42,     0,     0,     0,     0,     0,
    2545        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2546        0,     0,     0,     0,     0,    38,    39,     0,     0,    43,
    2547        0,   207,     0,     0,     0,     0,     0,     0,     0,   208,
    2548        1,     2,   205,     4,     5,     6,     7,     8,     9,    10,
     3633      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3634      31,    -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,
     3635      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3636      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3637      -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,    70,
     3638      71,    -1,    73,    74,    75,    -1,    -1,    78,    79,    80,
     3639      81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
     3640      -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3641      -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
     3642      -1,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
     3643     121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
     3644      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3645      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3646      -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,    -1,
     3647      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3648      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3649      -1,    -1,    -1,    65,    66,    -1,    68,    -1,    70,    71,
     3650      -1,    73,    74,    75,    -1,    -1,    78,    79,    80,    81,
     3651      82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
     3652      -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3653      -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,
     3654      -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3655     122,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3656      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3657      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3658      32,    -1,    -1,    35,    -1,    -1,    38,    39,    -1,    -1,
     3659      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3660      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3661      -1,    63,    -1,    -1,    66,    -1,    68,    -1,    70,    71,
     3662      -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
     3663      82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3664      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3665      -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,
     3666      -1,    -1,   114,    -1,    -1,    -1,   118,     3,     4,     5,
     3667       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3668      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3669      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3670      -1,    -1,    38,    10,    11,    12,    13,    14,    15,    16,
     3671      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3672      -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
     3673      66,    38,    68,    -1,    70,    71,    -1,    73,    74,    75,
     3674      -1,    -1,    -1,    -1,    -1,    -1,    82,    83,    -1,    -1,
     3675      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3676      -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,
     3677      -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
     3678      -1,    -1,   118,     3,     4,     5,     6,     7,     8,     9,
     3679      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3680      20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
     3681      30,    31,    32,    -1,    -1,    35,    -1,    -1,    38,    -1,
     3682      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3683      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3684      -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
     3685      70,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,     3,
     3686       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3687      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3688      24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
     3689     110,    35,    -1,    -1,    38,    -1,    -1,    -1,   118,    -1,
     3690      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3691      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3692      -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,
     3693      74,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    25493694      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2550       21,    22,    23,    24,    25,  -294,     0,    26,    27,    28,
    2551       29,     0,     0,    30,     0,     0,    31,     0,     0,     0,
    2552        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2553        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2554        0,     0,     0,     0,    34,     0,    35,     0,    36,     0,
    2555        0,    38,    39,     0,     0,  -294,     1,     2,   205,     4,
     3695      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3696      31,    -1,    -1,    -1,    -1,    -1,   110,    38,    -1,    -1,
     3697      -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,
     3698      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3699      -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,
     3700      -1,    -1,    73,    74,     4,     5,     6,     7,     8,     9,
     3701      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3702      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3703      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    38,   110,
     3704      -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
     3705      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3706      -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
     3707      70,    71,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
     3708      -1,    -1,    82,    83,    -1,    -1,    10,    11,    12,    13,
     3709      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3710      24,    25,    26,    -1,    -1,    29,    30,    31,   108,    -1,
     3711     110,    -1,    -1,    -1,    38,    -1,    -1,    -1,   118,     4,
    25563712       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25573713      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2558       25,     0,     0,    26,    27,    28,    29,     0,    44,    30,
    2559        0,     0,    31,     0,     0,     0,   110,     0,     0,     0,
    2560        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2561        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2562       34,     0,    35,     0,    36,     0,     0,    38,    39,   204,
    2563        2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    2564       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2565       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2566        0,     0,     0,     0,    44,    31,     0,     0,     0,     0,
    2567        0,     0,   110,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2569        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2570      206,    39,     0,     2,   205,     4,     5,     6,     7,     8,
    2571        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2572       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2573       27,    28,     0,     0,     0,     0,     0,   207,    31,     0,
    2574        0,     0,     0,     0,     0,   270,     0,     0,     0,     0,
    2575        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2576        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2577       36,    37,     0,   206,    39,    40,     0,     0,     0,     0,
    2578        0,     0,    41,    42,     0,     0,     0,     0,     0,     0,
    2579        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2580        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2581      207,     0,     0,     0,     0,     0,     0,     0,   208,     2,
    2582      205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2583       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2584       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2585        0,     0,     0,     0,    31,     0,     0,     0,     0,     8,
    2586        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2587       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2588       27,    28,    34,     0,    35,     0,    36,     0,    31,    38,
    2589       39,     0,     2,   205,     4,     5,     6,     7,     8,     9,
     3714      25,    26,    66,    -1,    29,    30,    31,    71,    -1,    73,
     3715      74,    75,    -1,    38,    -1,    -1,    -1,    -1,    82,    83,
     3716      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3717      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3718      -1,    66,    -1,    68,   108,    70,   110,    -1,    73,    74,
     3719      -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,
     3720      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3721      95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3722      -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
     3723      -1,    -1,    -1,   118,     4,     5,     6,     7,     8,     9,
    25903724      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2591       20,    21,    22,    23,    24,    25,    34,     0,    26,    27,
    2592       28,     0,     0,    38,    39,  -400,   687,    31,     0,     0,
    2593        0,     0,     0,     0,   634,     0,     0,     0,     0,     0,
    2594        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2595        0,     0,     0,     0,     0,    34,     0,    35,   643,    36,
    2596      338,     0,    38,    39,     0,     0,     0,     0,   110,     0,
    2597        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2598        0,     0,     0,     0,  1369,     0,     0,     0,     0,     0,
    2599        0,     0,     0,     0,     0,     0,     0,     0,     0,   687,
    2600        0,     0,     0,     0,     0,     0,     0,   634,     2,   205,
     3725      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3726      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,
     3727      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3728      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3729      -1,    -1,    29,    30,    31,    -1,    66,    -1,    68,    -1,
     3730      70,    38,    -1,    73,    74,    -1,    -1,    -1,    -1,    -1,
     3731      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3732      -1,    -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,    66,
     3733      -1,    -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,
     3734     110,    -1,    -1,    -1,    -1,    82,    83,    -1,   118,     4,
     3735       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3736      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3737      25,    26,    -1,   110,    29,    30,    31,    -1,    -1,    -1,
     3738      -1,   118,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3739      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3740      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3741      -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,
    26013742       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    26023743      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2603       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2604        0,     0,     0,    31,     0,     0,     0,     0,     8,     9,
     3744      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3745      -1,    -1,    -1,    -1,    38,   110,    -1,    -1,    -1,    -1,
     3746      -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3747      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3748      -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,
     3749      74,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3750      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3751      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3752      -1,    -1,    -1,    -1,    -1,    38,   110,    -1,    -1,    -1,
     3753      -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,
     3754      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3755      -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,
     3756      73,    74,     4,     5,     6,     7,     8,     9,    10,    11,
     3757      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3758      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3759      -1,    -1,    -1,    -1,    -1,    -1,    38,   110,    -1,    -1,
     3760      -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     3761      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3762      -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,
     3763      -1,    73,    74,    10,    11,    12,    13,    14,    15,    16,
     3764      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3765      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3766      37,    38,    39,    -1,    -1,    -1,    -1,    -1,   110,    -1,
     3767      -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,
     3768      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
     3769      -1,    -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,
     3770      -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3771      -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
     3772      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3773      -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,
     3774     117,   118,   119,   120,   121,   122,    10,    11,    12,    13,
     3775      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3776      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3777      -1,    -1,    36,    37,    38,    39,    10,    11,    12,    13,
     3778      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3779      24,    25,    26,    27,    -1,    29,    30,    31,    -1,    -1,
     3780      -1,    65,    66,    -1,    38,    -1,    -1,    71,    -1,    73,
     3781      74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
     3782      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
     3783      -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    73,
     3784      74,    75,    -1,    77,   108,    -1,   110,   111,    82,    83,
     3785      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,    10,
     3786      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3787      21,    22,    23,    24,    25,    26,   110,    -1,    29,    30,
     3788      31,    -1,    -1,    -1,   118,    36,    37,    38,    39,    10,
     3789      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3790      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3791      31,    -1,    -1,    -1,    65,    66,    -1,    38,    -1,    -1,
     3792      71,    -1,    73,    74,    75,    -1,    -1,    78,    79,    80,
     3793      81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
     3794      -1,    -1,    93,    -1,    -1,    66,    -1,    -1,    -1,    -1,
     3795      71,    -1,    73,    74,    -1,    -1,    -1,   108,   109,   110,
     3796      -1,    82,    83,    -1,    -1,    -1,   117,   118,   119,   120,
     3797     121,   122,    10,    11,    12,    13,    14,    15,    16,    17,
     3798      18,    19,    20,    21,    22,    23,    24,    25,    26,   110,
     3799      -1,    29,    30,    31,    -1,    -1,    -1,   118,    36,    37,
     3800      38,    39,    10,    11,    12,    13,    14,    15,    16,    17,
     3801      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3802      -1,    29,    30,    31,    -1,    -1,    -1,    65,    66,    -1,
     3803      38,    39,    -1,    71,    -1,    73,    74,    75,    -1,    -1,
     3804      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3805      -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    66,    -1,
     3806      -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,    -1,
     3807     108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3808     118,   119,   120,   121,   122,    10,    11,    12,    13,    14,
     3809      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3810      25,    26,   110,    -1,    29,    30,    31,    -1,    -1,    -1,
     3811     118,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
     3812      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3813      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3814      65,    66,    29,    30,    31,    -1,    71,    -1,    73,    74,
     3815      75,    38,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3816      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
     3817      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3818      -1,    -1,    -1,   108,    -1,   110,    73,    74,    -1,    -1,
     3819      -1,    -1,   117,   118,   119,   120,   121,   122,    10,    11,
     3820      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3821      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3822      -1,   108,    -1,   110,    36,    37,    38,    39,    -1,    -1,
     3823      -1,   118,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3824      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3825      24,    25,    26,    65,    66,    29,    30,    31,    -1,    71,
     3826      -1,    73,    74,    75,    38,    -1,    78,    79,    80,    81,
     3827      82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
     3828      -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3829      -1,    -1,    66,    -1,    -1,    -1,   108,    -1,   110,    73,
     3830      74,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3831     122,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3832      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3833      29,    30,    31,    -1,   108,    -1,   110,    36,    37,    38,
     3834      39,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    10,
     3835      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3836      21,    22,    23,    24,    25,    26,    65,    66,    29,    30,
     3837      31,    -1,    71,    -1,    73,    74,    75,    38,    39,    78,
     3838      79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
     3839      -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
     3840      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   108,
     3841      -1,   110,    73,    74,    -1,    -1,    -1,    -1,   117,   118,
     3842     119,   120,   121,   122,     3,     4,     5,     6,     7,     8,
     3843       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3844      19,    20,    21,    22,    23,    24,    25,    26,    -1,   110,
     3845      29,    30,    31,   114,    -1,    -1,    -1,   118,    -1,    38,
    26053846      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2606       20,    21,    22,    23,    24,    25,  -294,     0,    26,    27,
    2607       28,    34,     0,    35,     0,    36,     0,    31,    38,    39,
    2608        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2609        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2610     1371,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2611       37,     0,   336,   337,    40,   687,  -294,     0,     0,     0,
    2612        0,    41,    42,   634,     2,   205,     4,     5,     6,     7,
    2613        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2614       18,    19,    20,    21,    22,    23,    24,    25,     0,   338,
    2615       26,    27,    28,     0,     0,     0,     0,   110,     0,    31,
    2616        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2617        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2618        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2619        0,    36,     0,     0,   206,    39,     0,     2,   205,     4,
     3847      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3848      30,    31,    -1,    -1,    -1,    -1,    -1,    66,    38,    68,
     3849      -1,    70,    -1,    -1,    73,    74,    -1,    -1,    10,    11,
     3850      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3851      22,    23,    24,    25,    26,    -1,    66,    29,    30,    31,
     3852      -1,    71,    -1,    73,    74,    75,    38,    -1,    -1,    -1,
     3853      -1,    -1,    82,    83,   113,    -1,    10,    11,    12,    13,
     3854      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3855      24,    25,    26,    -1,    66,    29,    30,    31,   108,    71,
     3856     110,    73,    74,    75,    38,    -1,    -1,    -1,   118,    -1,
     3857      82,    83,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3858      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3859      26,    -1,    66,    29,    30,    31,   108,    -1,   110,    73,
     3860      74,    -1,    38,    -1,    -1,    -1,   118,    10,    11,    12,
     3861      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3862      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3863      66,    -1,    -1,    -1,    -1,    38,   110,    73,    74,    -1,
     3864      -1,    -1,    -1,    -1,   118,    10,    11,    12,    13,    14,
     3865      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3866      25,    26,    -1,    66,    29,    30,    31,    -1,    -1,    -1,
     3867      73,    74,    -1,    38,   110,    -1,    -1,    -1,    -1,    -1,
     3868      -1,    -1,   118,    10,    11,    12,    13,    14,    15,    16,
     3869      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3870      -1,    66,    29,    30,    31,    -1,    -1,   110,    73,    74,
     3871      -1,    38,    -1,    -1,    -1,   118,    10,    11,    12,    13,
     3872      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3873      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    66,
     3874      -1,    -1,    -1,    -1,    38,   110,    73,    74,    -1,    -1,
     3875      -1,    -1,    -1,   118,    10,    11,    12,    13,    14,    15,
     3876      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3877      26,    -1,    66,    29,    30,    31,    -1,    -1,    -1,    73,
     3878      74,    -1,    38,   110,    -1,    -1,    -1,    -1,    -1,    -1,
     3879      -1,   118,    10,    11,    12,    13,    14,    15,    16,    17,
     3880      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3881      66,    29,    30,    31,    -1,    -1,   110,    73,    74,    -1,
     3882      38,    -1,    -1,    -1,   118,    10,    11,    12,    13,    14,
     3883      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3884      25,    26,    -1,    -1,    29,    30,    31,    -1,    66,    -1,
     3885      -1,    -1,    -1,    38,   110,    73,    74,    -1,    -1,    -1,
     3886      -1,    -1,   118,    10,    11,    12,    13,    14,    15,    16,
     3887      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3888      -1,    66,    29,    30,    31,    -1,    -1,    -1,    73,    74,
     3889      -1,    38,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3890     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3891      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3892      -1,    -1,    -1,    -1,    -1,   110,    73,    74,    -1,    -1,
     3893      -1,    -1,    -1,   118,     4,     5,     6,     7,     8,     9,
     3894      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3895      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3896      30,    31,    -1,   110,    -1,    -1,    -1,    -1,    38,    -1,
     3897      -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3898      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3899      -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
     3900      70,    -1,    -1,    73,    74,    36,    37,    -1,    39,    40,
     3901      -1,    42,    -1,    -1,    45,    46,    47,    48,    49,    50,
     3902      51,    52,    -1,    -1,    55,    56,    -1,    -1,    -1,    60,
     3903      61,    -1,    63,    -1,    65,    -1,    -1,    -1,    -1,   109,
     3904      71,    -1,    -1,    -1,    75,    -1,    -1,    78,    79,    80,
     3905      81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
     3906      -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3907      -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
     3908      -1,    -1,   113,    -1,    -1,    -1,   117,   118,   119,   120,
     3909     121,   122,    -1,    -1,    -1,    -1,   127,    -1,    36,    37,
     3910     131,    39,    40,    -1,    42,    -1,    -1,    45,    46,    47,
     3911      48,    49,    50,    51,    52,    -1,    -1,    -1,    56,    -1,
     3912      -1,    -1,    60,    61,    -1,    63,    -1,    65,    -1,    -1,
     3913      -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
     3914      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3915      -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,
     3916      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3917     108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,   117,
     3918     118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,
     3919      -1,    36,    37,   131,    39,    40,    -1,    42,    43,    44,
     3920      45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
     3921      55,    56,    -1,    -1,    -1,    60,    61,    -1,    63,    -1,
     3922      65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
     3923      75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3924      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
     3925      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3926      -1,    -1,    -1,   108,    -1,   110,    -1,    -1,   113,    -1,
     3927      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3928      36,    37,   127,    39,    40,    -1,    42,    43,    44,    45,
     3929      46,    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,
     3930      56,    -1,    -1,    -1,    60,    61,    -1,    63,    -1,    65,
     3931      -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
     3932      -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3933      86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
     3934      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3935      -1,    -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,
     3936      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    36,
     3937      37,   127,    39,    40,    -1,    42,    -1,    -1,    45,    46,
     3938      47,    48,    49,    50,    51,    52,    -1,    -1,    -1,    56,
     3939      -1,    -1,    -1,    60,    61,    -1,    63,    -1,    65,    -1,
     3940      -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
     3941      -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3942      -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
     3943      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3944      -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,
     3945     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
     3946     127,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3947      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3948      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3949      -1,    -1,    -1,    -1,    -1,    38,    -1,    36,    37,    -1,
     3950      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3951      -1,    -1,    -1,    -1,    -1,    -1,    36,    37,    -1,    39,
     3952      -1,    -1,    -1,    66,    -1,    68,    65,    70,    -1,    -1,
     3953      73,    74,    71,    -1,    -1,    -1,    75,    -1,    -1,    78,
     3954      79,    80,    81,    82,    83,    65,    85,    86,    -1,    -1,
     3955      -1,    71,    95,    -1,    93,    75,    -1,    -1,    78,    79,
     3956      80,    81,    82,    83,    -1,    85,    86,    -1,    -1,   108,
     3957      -1,   110,    -1,    93,    36,    37,    -1,    39,   117,   118,
     3958     119,   120,   121,   122,    -1,    -1,    -1,    -1,   108,    -1,
     3959     110,    -1,    -1,    36,    37,    -1,    39,   117,   118,   119,
     3960     120,   121,   122,    65,    -1,    -1,    -1,    -1,    -1,    71,
     3961      -1,    -1,    -1,    75,    -1,    -1,    78,    79,    80,    81,
     3962      82,    83,    65,    85,    86,    -1,    -1,    -1,    71,    -1,
     3963      -1,    93,    75,    -1,    -1,    78,    79,    80,    81,    82,
     3964      83,    -1,    85,    86,    -1,    -1,   108,    -1,   110,    -1,
     3965      93,    36,    37,    -1,    39,   117,   118,   119,   120,   121,
     3966     122,    -1,    -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,
     3967      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3968      65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
     3969      75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3970      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
     3971      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3972      -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
     3973      -1,    -1,   117,   118,   119,   120,   121,   122,     4,     5,
     3974       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3975      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3976      26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3977      -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3978      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3979      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3980      66,    -1,    68,    -1,    70,    71,    -1,    73,    74,    75,
     3981      -1,    -1,    -1,    -1,    -1,    -1,    82,    83,     3,     4,
    26203982       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    26213983      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2622       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2623        0,   269,    31,     0,     0,     0,     0,     0,     0,   629,
    2624        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2625        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2626       34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
    2627        2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    2628       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2629       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2630        0,     0,     0,     0,   687,    31,     0,     0,     0,     0,
    2631        0,     0,   634,     0,     0,     0,     0,     0,     0,     0,
    2632        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2633        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2634       38,    39,     0,     2,   205,     4,     5,     6,     7,     8,
    2635        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2636       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2637       27,    28,     0,     0,     0,     0,     0,   599,    31,     0,
    2638        0,     0,     0,     0,     0,   634,     0,     0,     0,     0,
    2639        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2640        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2641       36,     0,     0,   206,    39,     8,     9,    10,    11,    12,
    2642       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2643       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2644        0,     0,   281,   282,    31,   283,     0,     0,     0,     0,
    2645      207,     0,     0,     0,     0,     0,     0,     0,   270,     0,
    2646        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2647        0,   284,    34,     0,     0,     0,     0,   285,     0,    38,
    2648       39,   286,     0,     0,   287,   288,   289,   290,    41,    42,
    2649        0,   291,   292,     0,     0,     0,     0,     0,     0,   293,
    2650        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2651        0,     0,     0,     0,   294,     0,   525,     0,     0,   170,
    2652        0,     0,     0,   296,   297,   298,   299,   300,   301,     8,
    2653        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2654       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2655       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2656        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2657       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2658       26,    27,    28,     0,     0,   284,    34,     0,     0,    31,
    2659        0,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2660      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2661        0,     0,     0,   293,     0,     0,     0,    34,     0,     0,
    2662        0,     0,    37,     0,   336,   337,    40,     0,   294,     0,
    2663      599,    -3,     0,    41,    42,     0,     0,   296,   600,   298,
    2664      299,   300,   301,     8,     9,    10,    11,    12,    13,    14,
    2665       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2666       25,   338,     0,    26,    27,    28,     0,     0,     0,   110,
    2667      281,   282,    31,   283,     8,     9,    10,    11,    12,    13,
    2668       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2669       24,    25,     0,     0,    26,    27,    28,     0,     0,   284,
    2670       34,     0,     0,    31,   453,   649,     0,    38,    39,   286,
    2671        0,     0,   287,   288,   289,   290,    41,    42,     0,   291,
    2672      292,     0,     0,     0,     0,     0,     0,   293,     0,     0,
    2673        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2674        0,     0,   294,   -35,   766,     0,     0,     0,     0,     0,
    2675        0,   296,   297,   298,   299,   300,   301,     8,     9,    10,
    2676       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2677       21,    22,    23,    24,    25,   454,     0,    26,    27,    28,
    2678        0,     0,     0,   110,   281,   282,    31,   283,     0,     0,
    2679        0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
    2680       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2681       23,    24,    25,   284,    34,    26,    27,    28,     0,   285,
    2682        0,    38,    39,   286,    31,     0,   287,   288,   289,   290,
    2683       41,    42,     0,   291,   292,     0,     0,     0,     0,     0,
    2684        0,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2685        0,     0,    34,     0,     0,     0,   294,     0,   295,    38,
    2686       39,     0,     0,     0,     0,   296,   297,   298,   299,   300,
    2687      301,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2688       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2689        0,    26,    27,    28,   643,     0,   338,     0,   281,   282,
    2690       31,   283,     0,     0,   634,     0,     0,     0,     0,     8,
    2691        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2692       19,    20,    21,    22,    23,    24,    25,   284,    34,    26,
    2693       27,    28,     0,   285,     0,    38,    39,   286,    31,     0,
    2694      287,   288,   289,   290,    41,    42,     0,   291,   292,     0,
    2695        0,     0,     0,     0,     0,   293,     0,     0,     0,     0,
    2696        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
    2697      294,     0,   156,    38,    39,     0,     0,     0,     0,   296,
    2698      297,   298,   299,   300,   301,     8,     9,    10,    11,    12,
    2699       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2700       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2701      256,     0,   281,   282,    31,   283,     0,     0,   110,     0,
    2702        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2703        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2704        0,   284,    34,     0,     0,     0,     0,   285,     0,    38,
    2705       39,   286,     0,     0,   287,   288,   289,   290,    41,    42,
    2706        0,   291,   292,     0,     0,     0,     0,     0,     0,   293,
    2707        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2708        0,     0,     0,     0,   294,     0,   599,     0,     0,     0,
    2709        0,     0,     0,   296,   600,   298,   299,   300,   301,     8,
    2710        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2711       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2712       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2713        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2714       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2715       26,    27,    28,     0,     0,   284,    34,     0,     0,    31,
    2716        0,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2717      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2718        0,     0,     0,   293,     0,     0,     0,    34,     0,     0,
    2719        0,     0,    37,     0,    38,    39,    40,     0,   294,     0,
    2720      378,     0,     0,    41,    42,     0,     0,   296,   380,   298,
    2721      299,   300,   301,     0,     0,     0,     0,     0,     0,     0,
    2722        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
    2723        0,    44,     0,     0,     0,     0,     0,     0,     0,    45,
    2724        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2725       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2726       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2727        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2728       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2729       26,    27,    28,     0,     0,     0,     0,    34,     0,    31,
    2730        0,     0,    37,     0,   206,    39,    40,     0,     0,     0,
    2731        0,     0,     0,    41,    42,     0,     0,     0,     0,     0,
    2732        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
    2733        0,     0,    37,     0,   336,   337,    40,     0,     0,    43,
    2734        0,   269,     0,    41,    42,     0,     0,     0,     0,   208,
    2735        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2736        0,     0,     0,     0,     0,     0,     0,     0,     0,   643,
    2737        0,   338,     0,     0,     0,     0,     0,     0,     0,   634,
    2738        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2739       18,    19,    20,    21,    22,    23,    24,    25,  -294,     0,
    2740       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2741        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2742       18,    19,    20,    21,    22,    23,    24,    25,  -294,     0,
    2743       26,    27,    28,     0,     0,     0,     0,    34,     0,    31,
    2744        0,     0,     0,     0,    38,    39,     0,     0,  -294,     0,
    2745        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2746        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
    2747        0,     0,     0,     0,    38,    39,     0,     0,  -294,   643,
    2748        0,   338,     0,     0,     0,     0,     0,     0,     0,   110,
    2749        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2750        0,     0,     0,     0,     0,     0,     0,     0,     0,   643,
    2751        0,   338,     0,     0,     0,     0,     0,     0,     0,   634,
    2752        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2753       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2754       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2755      453,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2756       17,    18,    19,    20,    21,    22,    23,    24,    25,  -294,
    2757        0,    26,    27,    28,     0,     0,     0,    34,     0,     0,
    2758       31,     0,     0,     0,    38,    39,     0,     0,     0,     0,
    2759        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2760        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2761        0,     0,     0,     0,     0,    38,    39,     0,     0,  -294,
    2762        0,   454,     0,     0,     0,   947,     0,     0,     0,   110,
    2763        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2764       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2765       25,     0,   338,    26,    27,    28,     0,     0,     0,     0,
    2766      110,     0,    31,   453,     8,     9,    10,    11,    12,    13,
    2767       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2768       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2769       34,     0,     0,    31,     0,     0,     0,    38,    39,     0,
    2770        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2771       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2772        0,    34,    26,    27,    28,     0,     0,     0,    38,    39,
    2773        0,    31,     0,     0,   454,     0,     0,     0,  1235,     0,
    2774        0,     0,   110,     0,     0,     0,     0,     0,     0,     0,
    2775        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2776        0,     0,     0,     0,     0,   156,   206,    39,     0,     0,
    2777        0,     0,     0,   110,     0,     8,     9,    10,    11,    12,
    2778       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2779       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2780        0,     0,     0,   269,    31,     0,     0,     0,     0,     0,
    2781        0,   270,     0,     8,     9,    10,    11,    12,    13,    14,
    2782       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2783       25,     0,    34,    26,    27,    28,     0,     0,     0,    38,
    2784       39,     0,    31,     8,     9,    10,    11,    12,    13,    14,
    2785       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2786       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2787       34,     0,    31,     0,     0,     0,   256,    38,    39,     0,
    2788        0,     0,     0,     0,   634,     0,     0,     0,     0,     0,
    2789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2790       34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
    2791        0,     0,     0,     0,   338,     0,     0,     0,     0,     0,
    2792        0,     0,   634,     0,     0,     8,     9,    10,    11,    12,
    2793       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2794       23,    24,    25,     0,   454,    26,    27,    28,     0,     0,
    2795        0,     0,   110,     0,    31,     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,    34,     0,    31,     0,     0,     0,     0,   206,
    2799       39,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2800       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2801       25,     0,    34,    26,    27,    28,     0,     0,     0,    38,
    2802       39,     0,    31,     0,     0,     0,   269,     0,     0,     0,
    2803        0,     0,     0,     0,   629,     0,     0,     0,     0,     0,
    2804        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2805       34,     0,     0,     0,     0,     0,   599,    38,    39,     0,
    2806        0,     0,     0,     0,   634,     0,     8,     9,    10,    11,
    2807       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2808       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2809        0,     0,     0,     0,   338,    31,     0,     0,     0,     0,
    2810        0,     0,   110,     0,     8,     9,    10,    11,    12,    13,
    2811       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2812       24,    25,     0,    34,    26,    27,    28,     0,     0,     0,
    2813       38,    39,     0,    31,     0,     0,     2,   205,     4,     5,
    2814        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2815       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2816        0,    34,    26,    27,    28,     0,     0,    44,   206,    39,
    2817        0,    31,     0,   281,   282,   110,   283,  1063,     0,  1064,
    2818        0,     0,  1065,  1066,  1067,  1068,  1069,  1070,  1071,  1072,
    2819        0,     0,  1549,  1073,     0,     0,     0,  1074,  1075,    34,
    2820       33,    35,   284,    36,     0,     0,    38,    39,   649,     0,
    2821        0,     0,   286,   629,     0,   287,   288,   289,   290,    41,
    2822       42,     0,   291,   292,     0,     0,     0,     0,     0,     0,
    2823      293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2824        0,     0,  -413,     0,     0,   294,     0,   378,     0,     0,
    2825      170,     0,     0,     0,   296,   380,   298,   299,   300,   301,
    2826        0,     0,     0,     0,  1077,     0,   281,   282,  -129,   283,
    2827     1063,     0,  1064,     0,     0,  1065,  1066,  1067,  1068,  1069,
    2828     1070,  1071,  1072,     0,     0,     0,  1073,     0,     0,     0,
    2829     1074,  1075,     0,    33,     0,   284,     0,     0,     0,     0,
    2830        0,   649,     0,     0,     0,   286,     0,     0,   287,   288,
    2831      289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
    2832        0,     0,     0,   293,     0,     0,     0,     0,     0,     0,
    2833        0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
    2834      378,     0,     0,   170,     0,     0,     0,   296,   380,   298,
    2835      299,   300,   301,     0,     0,     0,     0,  1077,     0,     0,
    2836        0,  -129,     2,   205,     4,     5,     6,     7,     8,     9,
    2837       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2838       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2839       28,     0,     0,     0,     0,     0,     0,    31,     0,   281,
    2840      282,     0,   283,  1063,     0,  1064,  1419,  1420,  1065,  1066,
    2841     1067,  1068,  1069,  1070,  1071,  1072,     0,     0,  1549,  1073,
    2842        0,     0,     0,  1074,  1075,    34,    33,    35,   284,    36,
    2843        0,     0,    38,    39,   649,     0,     0,     0,   286,     0,
    2844        0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
    2845        0,     0,     0,     0,  1328,     0,   293,     0,     0,     0,
    2846        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2847        0,   294,     0,   378,     0,     0,   170,     0,     0,     0,
    2848      296,   380,   298,   299,   300,   301,     0,     0,   281,   282,
    2849     1077,   283,  1063,     0,  1064,  1419,  1420,  1065,  1066,  1067,
    2850     1068,  1069,  1070,  1071,  1072,     0,     0,     0,  1073,     0,
    2851        0,     0,  1074,  1075,     0,    33,     0,   284,     0,     0,
    2852        0,     0,     0,   649,     0,     0,     0,   286,     0,     0,
    2853      287,   288,   289,   290,    41,    42,     0,   291,   292,     0,
    2854        0,     0,     0,     0,     0,   293,     0,     0,     0,     0,
    2855        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2856      294,     0,   378,     0,     0,   170,     0,     0,     0,   296,
    2857      380,   298,   299,   300,   301,     0,     0,   281,   282,  1077,
    2858      283,  1063,     0,  1064,     0,     0,  1065,  1066,  1067,  1068,
    2859     1069,  1070,  1071,  1072,     0,     0,     0,  1073,     0,     0,
    2860        0,  1074,  1075,     0,    33,     0,   284,     0,     0,     0,
    2861        0,     0,   649,     0,     0,     0,   286,     0,     0,   287,
    2862      288,   289,   290,    41,    42,     0,   291,   292,     0,     0,
    2863        0,     0,     0,     0,   293,   281,   282,     0,   283,     0,
    2864        0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
    2865        0,   378,     0,     0,   170,     0,     0,     0,   296,   380,
    2866      298,   299,   300,   301,   284,     0,     0,     0,  1077,     0,
    2867      285,     0,     0,     0,   286,     0,     0,   287,   288,   289,
    2868      290,    41,    42,     0,   291,   292,     0,     0,     0,     0,
    2869        0,     0,   293,   281,   282,     0,   283,     0,     0,     0,
    2870        0,     0,     0,     0,     0,     0,     0,   294,     0,   378,
    2871        0,     0,   281,   282,     0,   283,   296,   380,   298,   299,
    2872      300,   301,   284,     0,     0,     0,     0,     0,   285,     0,
    2873        0,     0,   286,     0,     0,   287,   288,   289,   290,    41,
    2874       42,   284,   291,   292,     0,     0,     0,   649,     0,     0,
    2875      293,   286,     0,     0,   287,   288,   289,   290,    41,    42,
    2876        0,   291,   292,     0,     0,   294,     0,   378,     0,   293,
    2877      281,   282,     0,   283,   296,   734,   298,   299,   300,   301,
    2878        0,     0,     0,     0,   294,     0,   785,     0,     0,   281,
    2879      282,     0,   283,   296,   380,   298,   299,   300,   301,   284,
    2880        0,     0,     0,     0,     0,   285,     0,     0,     0,   286,
    2881        0,     0,   287,   288,   289,   290,    41,    42,   284,   291,
    2882      292,     0,     0,     0,   285,     0,     0,   293,   286,     0,
    2883        0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
    2884        0,     0,   294,     0,   378,     0,   293,   281,   282,     0,
    2885      283,   296,   827,   298,   299,   300,   301,     0,     0,     0,
    2886        0,   294,     0,     0,     0,     0,   281,   282,     0,   283,
    2887      296,   380,   298,   299,   300,   301,   284,     0,     0,     0,
    2888        0,     0,   285,     0,     0,     0,   286,     0,     0,   287,
    2889      288,   289,   290,    41,    42,   284,   291,   292,     0,     0,
    2890        0,   285,     0,     0,   293,   286,     0,     0,   287,   288,
    2891      289,   290,    41,    42,     0,   291,   292,     0,     0,   518,
    2892        0,     0,     0,   293,     0,     0,     0,     0,   296,   380,
    2893      298,   299,   300,   301,     0,     0,     0,     0,   521,     0,
    2894        0,     0,     0,     0,     0,     0,     0,   296,   380,   298,
    2895      299,   300,   301,   204,     2,   205,     4,     5,     6,     7,
    2896        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2897       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2898       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2899        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2900        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2901        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2902        0,    36,     0,     0,   206,    39,   474,     2,   205,     4,
    2903        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2904       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2905       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2906        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2907        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2908        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2909       34,     0,    35,     0,    36,     0,     0,    38,    39,     2,
    2910      205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2911       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2912       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2913        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    2914        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2915        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2916        0,     0,    34,     0,    35,     0,    36,     0,     0,   206,
    2917       39
    2918 };
    2919 
    2920 #define yypact_value_is_default(yystate) \
    2921   ((yystate) == (-1356))
    2922 
    2923 #define yytable_value_is_error(yytable_value) \
    2924   YYID (0)
    2925 
    2926 static const yytype_int16 yycheck[] =
    2927 {
    2928        0,     1,     0,   184,    43,   698,   115,   184,    43,   184,
    2929       43,   238,    55,   698,     1,   167,   168,   698,   104,   203,
    2930      543,   294,   184,   455,   185,   218,   280,   278,   456,    29,
    2931       30,   656,    32,   184,    32,   348,   611,   184,   520,   185,
    2932      759,   611,     1,    43,   184,    45,  1006,    45,   186,   629,
    2933      499,   579,   609,     0,   503,    55,   902,   999,   462,  1042,
    2934     1043,    61,   105,    61,    64,   108,    64,    67,   154,    67,
    2935      902,   348,   780,    43,    43,   609,   609,    32,    39,    51,
    2936       67,    81,    82,   264,   777,    32,  1419,   264,   609,   264,
    2937     1338,   200,   777,   609,    28,  1055,   777,   529,   723,    63,
    2938       95,  1062,   264,   609,   265,   105,   699,    39,   108,   110,
    2939      417,    82,    43,   264,   699,   115,   117,   264,   109,   265,
    2940     1475,   497,   260,   261,   264,   609,    64,   363,   721,    82,
    2941      437,   367,    39,     0,   612,   130,   721,   109,   445,   110,
    2942      618,  1074,  1075,   344,    78,   184,   146,    82,   146,   184,
    2943      111,   184,   425,   426,   154,  1510,     0,  1512,   111,   159,
    2944     1493,   159,  1043,   425,   426,    32,   107,   227,   132,     0,
    2945        1,   109,   109,   109,   217,   111,   255,   109,    39,   111,
    2946        0,     1,   283,   119,   184,   185,   246,   185,    32,     0,
    2947      131,    39,     0,  1441,    72,   296,   297,    64,    44,    45,
    2948      200,    32,   109,    39,   111,    83,    84,   308,   208,  1142,
    2949      208,   680,    32,    39,   184,   184,   409,   217,   495,   812,
    2950      220,    32,   220,   744,    32,   264,   110,   227,   271,   264,
    2951     1062,   264,   116,    64,   109,   278,    67,   613,   744,   501,
    2952      513,   617,   242,   344,   405,   518,   246,    67,   521,    11,
    2953      250,   251,   250,   184,   132,   341,   131,   511,   520,   405,
    2954      744,   109,   638,   111,   264,   265,   642,   265,     0,   115,
    2955      109,   271,   111,   109,   109,   111,   851,    45,   278,   380,
    2956      119,   851,   839,   109,   370,   111,   395,    82,   489,   110,
    2957      718,   819,   251,   293,   455,   250,   117,   890,   611,    85,
    2958       32,  1009,   575,   250,   347,   839,   839,  1290,  1291,   455,
    2959       45,    43,    82,    45,   423,  1257,    44,    45,   839,   112,
    2960      429,   364,   117,   839,   586,   368,   487,   113,   328,    61,
    2961      328,   114,    64,   839,   293,    67,   116,    82,   417,   109,
    2962       96,   487,   110,  1304,     3,   112,   815,   347,   348,   116,
    2963       44,    45,  1071,   220,     3,   839,   825,   489,   437,   116,
    2964     1241,   597,    72,   841,   364,   110,   445,   123,   368,    82,
    2965       72,   840,   117,    83,    84,   110,    72,   145,     0,   379,
    2966     1226,    83,    84,   250,   691,   978,   114,    83,    84,   220,
    2967      960,   644,   645,   978,  1226,   395,   109,    96,   129,   600,
    2968      131,   111,   959,     0,   640,   405,   250,   405,  1526,   662,
    2969     1291,   255,   109,   513,   146,   515,  1009,   119,   518,   250,
    2970      114,   521,   676,   423,   123,   959,   959,   159,   629,   429,
    2971      250,   431,  1415,   634,  1526,  1553,   132,  1496,    72,   250,
    2972      208,  1021,   250,  1502,   255,   131,   532,  1407,  1408,    83,
    2973       84,   116,   184,   185,  1546,   455,   557,   558,   559,   112,
    2974      460,  1553,   109,   116,  1523,   465,  1059,   132,   116,  1528,
    2975      238,   110,  1304,   208,   474,   471,   208,   111,   117,   479,
    2976      109,   110,   349,   736,   132,   115,   116,   487,   220,   487,
    2977      109,   491,   131,   491,    80,   495,   697,   873,   498,   600,
    2978      500,   131,   270,  1464,   239,   657,   938,   758,   762,   109,
    2979     1471,   643,   644,   645,   946,   474,  1141,   698,   250,   968,
    2980      520,   698,  1004,   698,   928,   111,   109,   113,   666,   297,
    2981      662,   117,   264,   109,  1415,   270,   698,   537,   851,   700,
    2982      540,  1134,   542,   543,   491,   109,  1116,   698,   116,  1134,
    2983      116,   698,  1030,  1031,   700,   664,    72,   110,   698,   294,
    2984      992,   520,   297,  1524,   132,   697,   132,    83,    84,   110,
    2985     1039,  1040,   773,   417,   851,   828,   344,   110,   537,  1423,
    2986      112,   540,   110,   542,   543,  1304,   116,   630,   116,   965,
    2987      590,    30,   110,   437,   830,   111,   328,   597,   834,  1192,
    2988     1193,   445,   132,   646,   736,   110,   417,  1192,  1193,   609,
    2989      696,   611,   691,   480,    90,    91,   348,   119,   661,   643,
    2990      644,   645,   124,   125,   491,   109,   437,   111,  1097,  1098,
    2991      630,   590,  1464,   734,   445,    80,  1132,   116,   662,  1471,
    2992     1136,   773,    81,    82,    72,   112,   646,   491,    76,   116,
    2993      126,   127,   652,   132,   733,    83,    84,   425,   426,   116,
    2994      491,   661,  1381,   663,   664,   665,   111,   110,   113,   116,
    2995      110,   491,   117,   405,  1102,   132,   116,  1521,   489,   780,
    2996      491,   109,  1526,   491,   680,   132,   772,   964,   924,   116,
    2997      115,   119,  1524,   109,   116,   888,   828,   109,   698,   111,
    2998      700,   116,  1546,   109,   663,   132,   665,   119,   116,  1553,
    2999      132,   109,   736,   713,   116,   758,   909,   132,   453,   719,
    3000       64,   456,   110,   455,   132,    68,   827,   462,   116,    72,
    3001      132,   731,    75,   501,    77,    72,    10,    11,    12,    13,
    3002       14,    84,   894,   970,   744,   745,    83,    84,   110,  1468,
    3003       72,  1470,   520,   109,   116,   111,   132,   116,   758,   491,
    3004        3,    83,    84,   495,   631,    39,   112,    10,    11,    12,
    3005       13,    14,   731,   132,   111,   110,   110,   938,   513,   109,
    3006      515,   116,   116,   518,   112,   946,   521,   109,   116,   110,
    3007      598,   132,   938,    67,   112,   116,    39,  1320,   116,   110,
    3008      946,   110,  1271,   242,   828,   116,  1525,   116,   109,  1402,
    3009     1279,  1280,  1281,   109,    45,   111,   110,  1402,   586,   815,
    3010     1021,   110,   116,   112,    67,   110,  1419,   116,   114,   825,
    3011       61,   116,   600,    64,  1419,   110,    67,  1530,   109,   839,
    3012      111,   116,   131,   132,   840,  1530,     1,   691,    72,  1530,
    3013     1034,   851,    76,    72,   114,    74,    75,   724,  1327,    83,
    3014       84,   629,    64,    72,    83,    84,   634,  1103,   211,   132,
    3015      110,   738,   121,   122,    83,    84,   116,   609,  1132,   611,
    3016      691,   132,  1136,  1137,   114,   109,   697,   111,   109,   733,
    3017       45,   109,    72,   111,   894,   119,    76,    88,    89,  1492,
    3018     1493,   901,   902,    83,    84,  1057,   110,  1492,  1493,    82,
    3019     1042,   110,   116,   110,   116,   146,   109,   116,   111,   116,
    3020     1021,   110,   733,   109,   924,   110,   109,   116,   159,   109,
    3021      112,   116,  1205,  1206,   109,  1208,   111,    82,   938,   119,
    3022      379,  1214,   120,   902,  1217,   109,   946,   111,   129,   104,
    3023      564,   565,   566,   567,   185,   110,   109,   159,   111,   128,
    3024     1161,  1062,   773,    94,   964,   832,   698,    72,   700,    74,
    3025       75,    64,    92,    93,    85,    86,    87,   208,    83,    84,
    3026      115,   116,   969,   718,   984,   109,   110,   111,    81,   220,
    3027      145,   116,   117,   993,   109,   110,   111,  1251,   109,   154,
    3028      111,  1001,   113,   114,  1004,   703,  1006,   705,   351,   114,
    3029      353,   111,   744,   745,   131,  1124,   110,   111,   220,    58,
    3030       59,   460,   109,   116,   109,   984,   465,   835,   112,  1161,
    3031      109,   110,   111,   115,   116,   902,   109,   110,   111,   109,
    3032     1241,   112,  1001,  1039,  1040,  1004,   110,  1006,   110,   204,
    3033       58,    59,    60,   208,   110,  1055,   258,   110,   902,   498,
    3034      262,   500,   116,   117,   110,  1065,   159,   110,  1068,  1069,
    3035     1070,   902,   112,  1505,   116,   117,    72,  1178,    74,    75,
    3036       76,   111,   902,   238,   239,  1339,   112,    83,    84,  1343,
    3037      131,   902,   116,  1093,   902,   114,  1055,   328,   441,    44,
    3038       45,  1097,  1098,   109,  1377,   112,  1065,   839,   110,  1068,
    3039     1069,  1070,   110,   109,    72,   270,    74,    75,   273,   851,
    3040     1263,  1264,  1265,  1555,  1124,    83,    84,   220,   112,     4,
    3041        5,     6,     7,     8,     9,  1221,   560,   561,   969,   294,
    3042      112,   112,   297,   562,   563,   568,   569,   349,   112,   969,
    3043      117,   109,     3,    29,   117,   117,   114,  1024,  1290,    10,
    3044       11,    12,    13,    14,    72,   258,    74,    75,    76,   262,
    3045      116,   110,   110,   114,   405,    83,    84,   112,    10,    11,
    3046       12,    13,    14,   117,   115,   110,   341,   115,    39,   344,
    3047      116,  1445,   115,   928,    69,  1062,    71,   109,   116,  1199,
    3048      110,   109,   970,   111,   110,   132,   938,    39,   363,   117,
    3049      110,   119,   367,   652,   946,   370,    67,  1204,  1062,   117,
    3050      110,  1221,    72,   110,    74,    75,  1226,   110,   430,   110,
    3051        3,  1062,   964,    83,    84,    67,   116,    10,    11,    12,
    3052       13,    14,  1062,  1239,     4,     5,     6,     7,     8,     9,
    3053      110,  1062,   110,  1021,  1062,   110,   349,   132,  1245,   115,
    3054       29,   111,   110,  1263,  1264,  1265,    39,  1226,   110,   110,
    3055      425,   426,   110,    33,   713,  1271,   110,   109,   480,   111,
    3056      719,   902,   110,  1279,  1280,  1281,   110,   119,    72,  1398,
    3057       74,    75,    76,   110,    67,   110,   131,   110,   453,    83,
    3058       84,   456,   112,   110,  1263,  1264,  1265,   462,   110,    69,
    3059      115,    71,   110,  1540,    85,    86,    87,   116,   112,   474,
    3060     1320,  1321,   112,   110,     4,     5,     6,     7,     8,     9,
    3061      110,  1327,   110,   471,   116,   116,  1203,   430,   109,   114,
    3062      111,   117,   113,   114,   499,   112,   501,   110,   503,  1530,
    3063     1161,  1338,   116,  1530,  1397,  1530,   110,   116,   513,  1226,
    3064      515,  1320,  1321,   518,   116,   520,   521,  1102,  1530,   110,
    3065     1531,   117,  1203,  1204,   112,  1375,   109,   532,  1378,  1530,
    3066      109,   109,  1226,  1530,  1204,  1531,   109,   480,   109,    69,
    3067     1530,    71,   112,   132,  1555,  1226,  1505,  1397,  1398,   115,
    3068      110,   603,   110,   110,   129,   114,  1226,  1407,  1408,  1555,
    3069       72,   115,    74,    75,  1245,  1226,  1375,   112,  1226,  1378,
    3070      132,    83,    84,  1423,   110,  1245,   116,   112,  1428,   631,
    3071     1241,   586,  1299,   116,   636,   112,    55,  1304,   110,   110,
    3072      110,    47,   597,   112,  1065,   600,  1446,   109,  1407,  1408,
    3073      110,   112,   114,   112,  1441,   894,   112,    53,  1458,   112,
    3074     1304,   112,   901,   115,  1423,   132,   132,   132,  1299,  1428,
    3075      110,   115,   117,  1304,   629,   132,   110,   132,   115,   634,
    3076      112,   112,     0,     1,  1304,   640,   105,  1446,   112,   108,
    3077      112,  1530,   112,  1304,   112,  1530,  1304,  1530,   112,  1458,
    3078       96,   112,   110,   110,   109,  1505,  1506,  1338,   112,   112,
    3079      603,   109,   109,    60,    32,  1515,   110,   110,  1338,   114,
    3080      132,  1521,   724,   112,   112,   117,  1526,    45,   110,   112,
    3081     1530,  1531,   110,  1531,    96,   154,   738,    96,   631,   109,
    3082      109,   696,   680,   636,  1544,   132,  1546,  1506,   115,    67,
    3083     1550,   112,   110,  1553,   993,  1555,  1515,  1555,   110,   110,
    3084      110,  1561,  1521,   718,    51,  1565,    53,  1526,   116,    56,
    3085       57,    58,    72,    60,    74,    75,    76,    42,    72,   117,
    3086       74,    75,    76,    83,    84,  1544,   104,  1546,    75,    83,
    3087       84,  1550,   132,   748,  1553,   132,   192,  1464,   217,   110,
    3088       87,    88,  1561,   110,  1471,  1226,  1565,    96,    96,   109,
    3089     1441,    72,   132,    74,    75,    76,   132,   772,   110,   215,
    3090     1464,  1441,    83,    84,   110,   110,   117,  1471,   146,   225,
    3091      832,   724,   110,  1464,   132,   115,   154,   155,   112,   112,
    3092     1471,   109,   132,   115,  1464,   738,   115,   110,   109,   132,
    3093      111,  1471,   271,  1464,  1093,   110,  1464,  1524,   119,   278,
    3094     1471,   132,    72,  1471,    74,    75,    76,   185,   110,   110,
    3095     1077,   570,   573,    83,    84,   830,   571,   815,   572,   834,
    3096     1524,   574,   200,  1226,    64,   203,   204,   825,  1493,  1565,
    3097      208,  1383,  1343,  1524,    74,  1137,  1314,  1471,   294,   109,
    3098     1321,   111,   840,  1093,  1524,   453,   453,   946,   705,   119,
    3099      465,   229,   948,  1524,   993,   233,  1524,   235,   590,   748,
    3100      894,    10,    11,    12,    13,    14,   244,   758,   347,   658,
    3101     1245,   966,   250,   491,   578,   578,   116,   255,  1473,   832,
    3102     1475,   578,    -1,    -1,    -1,   364,    -1,   265,    -1,   368,
    3103       39,    -1,    -1,    -1,  1375,   273,    -1,  1378,    -1,    -1,
    3104     1199,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   924,
    3105       -1,    -1,  1540,   928,    -1,  1510,    -1,  1512,    67,   159,
    3106       -1,    -1,    -1,    72,    -1,    74,    75,    76,    72,    -1,
    3107       74,    75,    76,    -1,    83,    84,     0,    -1,  1530,    83,
    3108       84,    -1,  1423,    -1,    -1,    -1,    72,  1428,    74,    75,
    3109       76,    -1,   431,   968,   969,   970,    -1,    83,    84,    -1,
    3110      109,    -1,  1024,   341,    -1,   109,   344,   111,    32,    -1,
    3111      119,    -1,   350,    -1,    -1,   119,    -1,  1458,    -1,    -1,
    3112      220,    -1,    -1,   109,    -1,   363,   442,    -1,    -1,   367,
    3113       -1,    -1,   370,   119,    -1,    -1,    -1,   344,   345,    -1,
    3114       -1,    -1,    -1,    67,    -1,    -1,  1021,    -1,    -1,   356,
    3115      357,    10,    11,    12,    13,    14,    -1,    -1,   258,    -1,
    3116      476,    -1,   262,    72,    -1,    74,    75,    76,    -1,    -1,
    3117       -1,    -1,    -1,    -1,    83,    84,    -1,    -1,   278,   417,
    3118       39,  1039,  1040,    -1,    -1,    -1,    26,    27,    28,    -1,
    3119       -1,    -1,    -1,    -1,   432,    -1,    -1,   513,    -1,   437,
    3120      109,    -1,   518,  1544,    -1,   521,    -1,   445,    67,  1550,
    3121      119,  1024,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3122     1561,    -1,    -1,    -1,  1565,    -1,    -1,  1102,  1103,    -1,
    3123       -1,   155,    -1,   471,    -1,    -1,   474,    -1,    -1,  1097,
    3124     1098,    39,    -1,    -1,    10,    11,    12,    13,    14,   349,
    3125      109,   489,   111,   491,    -1,    -1,    -1,    97,   597,    99,
    3126      119,   499,    -1,    -1,    -1,   503,    -1,    -1,    -1,    67,
    3127       -1,    -1,    -1,    39,    72,    -1,    74,    75,    76,    -1,
    3128       -1,  1203,    -1,    -1,   124,    83,    84,    -1,    -1,    -1,
    3129       -1,   630,    -1,    -1,   532,   533,    -1,    -1,    -1,    -1,
    3130       -1,    67,    -1,    -1,    -1,   229,    72,   646,    74,    75,
    3131       76,   109,    -1,   111,    -1,    -1,    -1,    83,    84,    -1,
    3132       -1,   119,   661,    -1,    -1,    -1,   250,    -1,    -1,    -1,
    3133      430,   255,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3134      180,   579,    -1,   109,    -1,   111,  1221,   447,   188,    -1,
    3135      190,   191,    -1,   119,    -1,   195,    -1,   197,   198,   597,
    3136      598,    -1,   600,   679,    39,    -1,    -1,    -1,    -1,    -1,
    3137     1245,    -1,   688,   611,    -1,    -1,   692,  1299,    -1,    -1,
    3138      480,  1239,    -1,    10,    11,    12,    13,    14,    -1,    -1,
    3139     1203,   629,    67,    -1,    -1,    -1,   634,    72,    -1,    74,
    3140       75,    76,   640,    -1,    -1,   643,   644,   645,    83,    84,
    3141       -1,    -1,    39,  1271,    -1,    -1,    -1,    -1,    -1,   758,
    3142       -1,  1279,  1280,  1281,   662,    -1,   350,   267,    -1,    -1,
    3143       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3144       67,    -1,   680,    -1,   119,    72,    -1,    74,    75,    76,
    3145       -1,    -1,    -1,   691,    -1,    -1,    83,    84,   696,   697,
    3146       -1,    -1,   700,  1338,    -1,    -1,    -1,    -1,    -1,  1327,
    3147       -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3148       -1,    -1,   109,    -1,    -1,    -1,  1299,    -1,    -1,    -1,
    3149       -1,    -1,   119,   417,    -1,   733,    -1,    -1,   736,    -1,
    3150       -1,    39,    -1,   603,    -1,    -1,    -1,   745,   432,    -1,
    3151      748,    -1,    -1,   437,    -1,    -1,    -1,    -1,   725,    -1,
    3152      727,   445,    -1,    -1,    -1,    -1,    -1,   734,   735,    67,
    3153       -1,   631,   739,    -1,   772,   773,   636,    -1,    -1,    -1,
    3154      778,    -1,    -1,    -1,   751,    -1,    -1,   471,    -1,   756,
    3155       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
    3156       -1,    -1,    -1,    -1,    -1,   489,  1441,   491,    -1,    -1,
    3157       -1,   109,    -1,   111,    -1,   782,    -1,   815,    -1,    -1,
    3158       -1,   119,    -1,    -1,   131,   924,    -1,   825,    -1,    -1,
    3159      828,    -1,   830,    -1,    -1,   833,   834,   835,  1473,    -1,
    3160     1475,    -1,   840,    -1,    -1,    -1,    -1,    -1,    -1,   533,
    3161      926,    -1,   850,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3162      827,    -1,    -1,    -1,   724,    -1,    -1,    -1,    -1,    -1,
    3163       -1,    -1,    -1,    -1,    -1,  1510,    -1,  1512,   738,    -1,
    3164       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3165       20,    21,    22,    23,    24,    25,    26,    27,   758,    -1,
    3166       30,    31,    32,    -1,   902,  1540,    -1,    -1,    -1,    39,
    3167       -1,    -1,    -1,    -1,   598,    -1,    -1,   884,   885,   886,
    3168      887,    -1,   889,    -1,    -1,    -1,   924,    -1,    10,    11,
    3169       12,    13,    14,    -1,    -1,    -1,     0,    67,   905,    -1,
    3170       -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
    3171       -1,    -1,   919,    83,    84,    -1,    -1,    39,    -1,   643,
    3172      644,   645,   960,    -1,    -1,    -1,    -1,    -1,    32,    -1,
    3173      968,   969,   832,    -1,    -1,    -1,    -1,    -1,   662,   109,
    3174       -1,   111,   582,   583,    -1,    67,    -1,    -1,   986,   119,
    3175       72,   958,    -1,    -1,    76,    -1,   680,  1073,    -1,    -1,
    3176       -1,    83,    84,    67,    -1,    -1,    -1,   691,    -1,    -1,
    3177       -1,    -1,   612,   697,    -1,   615,   616,    -1,   618,    -1,
    3178      620,   621,    -1,  1021,    -1,   625,   626,   109,    -1,    -1,
    3179       -1,   998,    -1,    -1,    -1,    -1,  1034,   119,  1005,    -1,
    3180       -1,  1039,  1040,  1010,  1042,  1043,    -1,    -1,  1015,   733,
    3181     1017,    -1,   736,    -1,  1021,  1022,  1023,    -1,    -1,  1026,
    3182       -1,    -1,    -1,    -1,  1062,    -1,    -1,    -1,  1035,    -1,
    3183       -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3184       -1,    -1,    -1,    -1,    -1,    -1,  1053,  1054,    -1,   773,
    3185       -1,   155,    -1,    -1,    -1,     0,    -1,    -1,    -1,  1097,
    3186     1098,    39,    -1,    -1,   704,  1103,    -1,    -1,    -1,   709,
    3187      710,    -1,    -1,  1080,    -1,   715,  1083,    -1,    -1,    -1,
    3188       -1,    -1,  1221,    -1,    -1,    -1,    -1,    32,    -1,    67,
    3189       -1,   815,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    3190       -1,   825,    -1,    -1,   828,    83,    84,    -1,    -1,   833,
    3191       -1,   835,    -1,    -1,  1121,    -1,   840,    -1,    -1,    -1,
    3192     1127,  1128,    67,  1161,  1024,    -1,    -1,    -1,    -1,    -1,
    3193       -1,   109,  1139,    -1,    -1,    -1,    -1,  1144,    -1,    -1,
    3194     1147,   119,  1149,    -1,    -1,  1152,   250,    -1,    -1,    -1,
    3195       -1,   255,   188,    -1,    -1,    -1,    -1,    -1,  1165,   195,
    3196       -1,    -1,    -1,    -1,    -1,    -1,  1204,    -1,    -1,    -1,
    3197       -1,  1178,     0,  1180,  1181,  1182,  1183,    -1,   902,    -1,
    3198       -1,    -1,    -1,  1221,    -1,    -1,    -1,    -1,  1226,  1196,
    3199       -1,  1198,    -1,    -1,    -1,  1202,    -1,  1313,    -1,    -1,
    3200       -1,  1239,    -1,  1241,    32,     0,     1,  1245,    -1,    -1,
    3201      155,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3202       -1,    -1,    -1,    -1,  1231,  1232,    -1,    -1,    -1,    -1,
    3203       -1,   267,    -1,  1271,    -1,    -1,    -1,    32,    -1,    67,
    3204       -1,  1279,  1280,  1281,    -1,    -1,   350,    -1,    -1,    -1,
    3205       -1,    -1,  1290,  1291,    -1,    -1,    -1,    -1,  1397,    -1,
    3206       -1,    -1,   986,    -1,    -1,    -1,  1304,    -1,    -1,    64,
    3207       -1,    -1,    67,    -1,    -1,  1282,  1283,    -1,    -1,    -1,
    3208       -1,    -1,    -1,    -1,    -1,  1292,    -1,   323,    -1,  1327,
    3209       -1,    -1,    -1,    -1,    -1,   331,    -1,    -1,   334,    -1,
    3210     1338,    -1,    -1,  1203,    -1,   250,    -1,    -1,    -1,    -1,
    3211      255,    -1,    -1,   417,    -1,  1039,  1040,    -1,  1042,  1043,
    3212       -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,   432,    -1,
    3213       -1,    -1,    -1,   437,    -1,    -1,    -1,  1344,  1062,    -1,
    3214       -1,   445,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1356,
    3215       -1,  1358,  1359,  1360,    -1,    -1,  1472,    -1,  1474,    -1,
    3216      155,   397,    -1,  1370,    -1,   401,    -1,   471,    -1,    -1,
    3217       -1,    -1,  1379,  1097,  1098,    -1,    -1,  1415,    -1,    -1,
    3218       -1,    -1,    -1,    -1,    -1,   489,    -1,   491,  1395,    -1,
    3219       -1,    -1,    -1,  1509,    -1,  1511,    -1,    -1,    -1,  1299,
    3220       -1,    -1,    -1,  1441,    -1,   350,    -1,    -1,    -1,    -1,
    3221       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3222       -1,    -1,   250,    -1,    -1,   220,  1464,   255,    -1,   533,
    3223       -1,    -1,    -1,  1471,    -1,    -1,    -1,  1161,  1554,    -1,
    3224     1556,    -1,    -1,    -1,  1451,  1452,    -1,    -1,    -1,    -1,
    3225      486,    -1,    -1,  1569,  1570,   250,    -1,  1464,    -1,  1099,
    3226       -1,    -1,    -1,    -1,  1471,    -1,    -1,    -1,    -1,    -1,
    3227       -1,    -1,   417,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3228     1204,    -1,    -1,    -1,    -1,    -1,  1524,   432,    -1,    -1,
    3229       -1,    -1,   437,  1531,   598,    -1,    -1,  1504,    -1,    -1,
    3230      445,  1508,  1226,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3231       -1,    -1,    -1,    -1,    -1,  1239,    -1,  1241,    -1,    -1,
    3232       -1,    -1,   350,    -1,    -1,    -1,   471,    -1,    -1,    -1,
    3233     1537,    -1,  1539,    -1,    -1,    -1,    -1,    -1,    -1,   643,
    3234      644,   645,   578,   579,   489,    -1,   491,  1271,    -1,    -1,
    3235       -1,    -1,    -1,    -1,    -1,  1279,  1280,  1281,   662,    -1,
    3236     1567,  1568,    -1,    -1,    -1,    -1,  1290,  1291,  1575,  1576,
    3237       -1,    -1,    -1,    -1,    -1,    -1,   680,    -1,    -1,    -1,
    3238     1304,    -1,    -1,  1223,    -1,    -1,    -1,   691,   533,   417,
    3239       -1,    -1,    -1,   697,    -1,    -1,    -1,    -1,    -1,    -1,
    3240       -1,    -1,    -1,  1327,   432,    -1,    -1,    -1,    -1,   437,
    3241       -1,    -1,    -1,    -1,    -1,    -1,    -1,   445,    -1,    -1,
    3242       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   733,
    3243       -1,   667,   736,    -1,    -1,   671,    -1,   432,    -1,    -1,
    3244       -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,    -1,    -1,
    3245       -1,    -1,    -1,   598,    -1,    -1,    -1,    -1,    -1,    -1,
    3246       -1,   489,    -1,   491,    -1,    -1,    -1,    -1,   704,   773,
    3247       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3248       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3249       27,  1415,    -1,    -1,    -1,    -1,   491,    -1,   643,   644,
    3250      645,    -1,    39,    -1,    -1,   533,    -1,    -1,    -1,    -1,
    3251       -1,   815,    -1,    -1,    -1,    -1,    -1,   662,    -1,    -1,
    3252       -1,   825,    -1,    -1,   828,    -1,    -1,    -1,    -1,   833,
    3253       67,   835,    -1,    -1,    -1,   680,   840,    -1,   533,    -1,
    3254     1464,    -1,    -1,    -1,    -1,    -1,   691,  1471,    -1,    -1,
    3255       -1,    -1,   697,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3256       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3257      598,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3258       -1,    -1,    -1,   819,    -1,    -1,    -1,    -1,   733,    -1,
    3259       -1,   736,    -1,    -1,    -1,    26,    27,    28,   902,    -1,
    3260     1524,    -1,    -1,   598,    -1,    -1,    -1,    -1,    -1,    -1,
    3261       -1,    -1,    -1,    -1,    -1,   643,   644,   645,    -1,    -1,
    3262       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   773,    -1,
    3263       -1,    -1,    -1,    -1,   662,    -1,    -1,    -1,    -1,    -1,
    3264       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   643,   644,
    3265      645,    -1,   680,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3266       -1,    -1,    -1,   691,    -1,    -1,    97,   662,    99,   697,
    3267      815,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3268      825,    -1,   986,   828,    -1,    -1,    -1,    -1,   833,    -1,
    3269      835,    -1,    -1,    -1,    -1,   840,   932,    -1,    -1,    -1,
    3270       -1,    -1,    -1,    -1,    -1,   733,    -1,    -1,   736,     4,
    3271        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3272       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3273       25,    26,    27,    -1,    -1,  1039,  1040,    -1,  1042,  1043,
    3274       -1,   736,    -1,    -1,    39,   773,    -1,    -1,    -1,   180,
    3275       -1,    -1,    -1,    -1,    -1,    -1,    -1,   902,  1062,   190,
    3276      191,    -1,    -1,    -1,   195,    -1,   197,   198,    -1,    -1,
    3277       -1,    -1,    67,    -1,    69,  1011,    71,    72,    -1,    74,
    3278       75,    76,    -1,    -1,    -1,    -1,    -1,   815,    83,    84,
    3279       -1,  1027,    -1,  1097,  1098,    -1,    -1,   825,    -1,    -1,
    3280      828,    -1,    -1,    -1,    -1,   833,    -1,   835,    -1,    -1,
    3281       -1,    -1,   840,    -1,    10,    11,    12,    13,    14,    15,
    3282       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3283       26,    27,    28,   828,    30,    31,    32,    -1,    -1,    -1,
    3284      835,   986,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    3285       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1161,    -1,    -1,
    3286       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1104,    -1,
    3287       -1,    67,    -1,    -1,   902,    -1,    72,    -1,    74,    75,
    3288       76,    -1,    78,    -1,    -1,    -1,    -1,    83,    84,    -1,
    3289       -1,    -1,    -1,    -1,  1039,  1040,    -1,  1042,  1043,    -1,
    3290     1204,    -1,    -1,    -1,    -1,    -1,    -1,   902,    -1,    -1,
    3291       -1,    -1,    -1,   109,    -1,   111,    -1,  1062,    -1,    -1,
    3292       -1,    -1,  1226,   119,    -1,    45,    -1,    -1,    -1,    -1,
    3293       -1,    -1,    -1,    -1,    -1,  1239,    -1,  1241,    -1,    -1,
    3294       -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,
    3295       -1,    -1,  1097,  1098,    -1,    -1,    -1,    -1,   986,    -1,
    3296       37,    38,    -1,    40,    -1,    -1,    -1,  1271,    -1,    -1,
    3297       -1,    -1,    -1,    -1,   969,  1279,  1280,  1281,    -1,    -1,
    3298       -1,    -1,    -1,    -1,    -1,    -1,  1290,  1291,    -1,    66,
    3299      110,   986,    -1,    -1,    -1,    72,   116,    -1,    -1,    76,
    3300     1304,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3301       87,  1039,  1040,    -1,  1042,  1043,  1161,    94,    -1,    -1,
    3302       -1,    -1,    -1,  1327,    -1,   145,    -1,    -1,    -1,    -1,
    3303       -1,    -1,   109,    -1,  1062,   155,    -1,    -1,    -1,   159,
    3304       -1,   118,   119,   120,   121,   122,   123,  1042,  1043,    -1,
    3305       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1204,
    3306       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1062,    -1,  1097,
    3307     1098,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3308       -1,  1226,    -1,    -1,    -1,    -1,    -1,    -1,   208,    -1,
    3309       -1,    -1,    -1,    -1,  1239,    -1,  1241,    -1,    -1,    -1,
    3310      220,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3311       -1,  1415,    -1,    -1,    -1,    -1,    -1,    -1,   238,   239,
    3312       -1,    -1,    -1,    -1,    -1,    -1,  1271,    -1,    -1,    -1,
    3313       -1,    -1,    -1,  1161,  1279,  1280,  1281,    -1,    -1,    -1,
    3314       -1,    -1,   262,    -1,    -1,  1290,  1291,    -1,    -1,    -1,
    3315      270,   582,   583,    -1,    -1,    -1,    -1,    -1,    -1,  1304,
    3316     1464,    -1,    -1,    -1,    -1,    -1,    -1,  1471,    -1,    -1,
    3317       -1,    -1,    -1,    -1,   294,    -1,  1204,   297,    -1,    -1,
    3318       -1,   612,  1327,    -1,   615,   616,    -1,   618,    -1,   620,
    3319      621,    -1,    -1,    -1,   625,   626,    -1,    -1,  1226,    -1,
    3320       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1203,  1204,
    3321       -1,  1239,    -1,  1241,    -1,    -1,    -1,    -1,    -1,    -1,
    3322     1524,    -1,    -1,    -1,   344,    -1,    -1,    -1,    -1,   349,
    3323       -1,  1226,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3324       -1,    -1,    -1,  1271,    -1,    -1,    64,    -1,    -1,    -1,
    3325     1245,  1279,  1280,  1281,    -1,    -1,    74,    -1,    76,    -1,
    3326       78,    -1,  1290,  1291,    -1,    -1,    -1,    85,    -1,    -1,
    3327     1415,    -1,    -1,    -1,    -1,    -1,  1304,    -1,   709,   710,
    3328       -1,    -1,    -1,    -1,   715,    -1,    -1,    -1,    -1,    -1,
    3329       -1,    -1,    -1,    -1,    -1,  1290,  1291,    -1,   116,  1327,
    3330      118,   119,   120,    -1,  1299,   425,   426,    -1,    -1,  1304,
    3331       -1,    -1,   432,    -1,    -1,    -1,    -1,    -1,    -1,  1464,
    3332       -1,    -1,    -1,    -1,    -1,    -1,  1471,    -1,    -1,    -1,
    3333       -1,    -1,    -1,   453,    -1,    -1,   456,    -1,    -1,    -1,
    3334       -1,   159,   462,  1338,     3,     4,     5,     6,     7,     8,
    3335        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3336       19,    20,    21,    22,    23,    24,    25,    26,    27,   489,
    3337       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,  1524,
    3338       39,   501,    -1,    -1,    -1,    -1,    -1,  1415,    -1,    -1,
    3339       -1,    -1,    44,   513,    -1,   515,    -1,    -1,   518,    -1,
    3340      520,   521,   220,    -1,   222,   223,   224,    -1,    67,    -1,
    3341       69,    -1,    71,   533,    -1,    74,    75,    -1,    -1,    -1,
    3342     1415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3343       -1,    -1,    -1,    -1,    -1,    -1,  1464,    -1,    90,    -1,
    3344      258,    -1,    -1,  1471,   262,    -1,  1441,    -1,   100,    -1,
    3345       -1,    -1,    -1,    -1,    -1,   114,    -1,    -1,    -1,    -1,
    3346      278,    -1,    -1,    -1,    -1,    -1,   586,    -1,    -1,  1464,
    3347       -1,    -1,    -1,    -1,    -1,    -1,  1471,    -1,   598,    -1,
    3348      600,    -1,    -1,   603,    -1,    -1,    -1,    -1,    -1,    -1,
    3349       -1,    -1,    -1,    -1,    -1,    -1,  1524,    -1,    -1,    -1,
    3350       -1,    -1,    -1,    -1,   156,    -1,    -1,    -1,    -1,   629,
    3351      328,    -1,    -1,    -1,   634,    -1,    -1,    -1,   170,    -1,
    3352       -1,    -1,    -1,   643,   644,   645,    -1,    -1,    -1,  1524,
    3353       -1,   349,    -1,    -1,    -1,    -1,   354,   355,    -1,    -1,
    3354       -1,   193,   662,    -1,   362,    -1,    -1,    -1,    -1,    -1,
    3355       -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,    -1,
    3356       -1,    -1,     7,    -1,   216,    10,    11,    12,    13,    14,
    3357       -1,    -1,    -1,    -1,   226,    -1,    -1,   697,    -1,    -1,
    3358       -1,    -1,    -1,    -1,    -1,    -1,    -1,   405,    -1,    -1,
    3359       -1,    -1,    37,    38,    39,    40,    -1,    -1,   718,   251,
    3360       -1,    -1,    -1,    -1,   256,   423,    -1,    -1,    -1,    -1,
    3361      428,    -1,   430,    -1,    -1,    -1,   736,   269,   738,    -1,
    3362       -1,    66,    67,   275,    -1,   277,    -1,    72,    -1,   447,
    3363       -1,    76,   450,   451,    79,    80,    81,    82,    83,    84,
    3364       -1,    86,    87,   295,    -1,    -1,    -1,    -1,   466,    94,
    3365       -1,    -1,    -1,   773,    -1,    -1,    -1,    -1,    -1,    -1,
    3366       -1,    -1,   480,    -1,   109,    -1,   111,    -1,  1099,   487,
    3367       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    -1,
    3368       -1,    -1,    -1,    -1,    -1,    -1,   338,    -1,    -1,    -1,
    3369       -1,   343,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3370       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   828,    -1,
    3371       -1,    -1,   832,    -1,    -1,   835,    -1,    -1,    -1,   371,
    3372       -1,    -1,    -1,   375,   376,    -1,   378,    -1,    -1,    -1,
    3373       -1,    -1,    -1,   385,   386,    -1,   388,   389,    -1,   391,
    3374       -1,   393,    -1,    -1,    -1,    -1,    -1,     7,    -1,    -1,
    3375       10,    11,    12,    13,    14,    -1,    -1,    -1,   410,    -1,
    3376       -1,    -1,    -1,    -1,    -1,    -1,   418,    -1,    -1,    -1,
    3377       -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    39,
    3378       40,    -1,    -1,    -1,    -1,   603,    -1,    -1,    -1,    -1,
    3379       -1,   443,  1223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3380       -1,    -1,   454,    -1,    -1,    -1,    66,    67,   928,    -1,
    3381       -1,    -1,    72,   631,    -1,    -1,    76,    -1,   636,    79,
    3382       80,    81,    82,    83,    84,   477,    86,    87,    -1,    -1,
    3383       -1,   483,    -1,    -1,    94,    -1,   488,    -1,    -1,    -1,
    3384       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    3385      970,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,
    3386      120,   121,   122,   123,    -1,    -1,   986,    -1,    -1,    -1,
    3387       -1,    -1,    -1,   525,    -1,    -1,    -1,    -1,    -1,    -1,
    3388       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   541,
    3389       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3390       -1,  1021,    -1,    -1,    -1,    -1,   724,    -1,    -1,    -1,
    3391       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3392      738,    -1,  1042,  1043,    -1,    -1,   578,    -1,    -1,    -1,
    3393       -1,    -1,    -1,    -1,    -1,   587,    -1,    -1,    -1,    -1,
    3394      758,    -1,   594,    -1,    -1,    37,    38,   599,    40,    -1,
    3395       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   610,    -1,
    3396       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3397       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
    3398       72,    -1,  1102,    -1,    76,    -1,    -1,    79,    80,    81,
    3399       82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,   651,
    3400       -1,   819,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3401       -1,    -1,    -1,    -1,   832,    -1,    -1,   109,    -1,   111,
    3402       -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,   121,
    3403      122,   123,    -1,   851,    -1,   687,    -1,    -1,    -1,    -1,
    3404       -1,  1161,    -1,    -1,     3,     4,     5,     6,     7,     8,
    3405        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3406       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3407       -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
    3408       39,    40,    -1,  1203,    -1,    -1,    -1,    -1,    -1,    -1,
    3409      742,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3410      752,   753,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,
    3411       69,    -1,    71,    72,   766,    74,    75,    76,    -1,    -1,
    3412      938,  1241,   154,   155,    83,    84,    -1,    -1,    -1,    -1,
    3413       -1,   783,    -1,   785,    -1,    -1,    -1,   789,    -1,    -1,
    3414       -1,    -1,    -1,    -1,    -1,    -1,   964,    -1,    -1,    -1,
    3415      109,    -1,   111,    -1,    -1,    -1,   188,    -1,    -1,    -1,
    3416      119,    -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,
    3417     1290,  1291,    -1,    -1,   992,    -1,    -1,    -1,    -1,  1299,
    3418       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3419       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3420       30,    31,    32,   855,    -1,    -1,  1024,    -1,    -1,    39,
    3421      862,    -1,    -1,    -1,    -1,    -1,    -1,  1035,    -1,    -1,
    3422       -1,    -1,    -1,   875,    -1,   877,    -1,    -1,    -1,    -1,
    3423       -1,    -1,    -1,    -1,    -1,   267,    -1,    67,    -1,   891,
    3424       -1,    -1,    72,    -1,    74,    75,   898,    -1,    -1,    -1,
    3425       -1,    -1,    -1,    83,    84,    -1,    -1,    -1,   910,    -1,
    3426       -1,   913,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3427       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   931,
    3428       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,
    3429       -1,   323,    -1,    -1,    -1,  1415,    -1,    -1,  1116,   331,
    3430      332,    -1,   334,   335,    -1,    -1,    -1,    -1,    -1,    -1,
    3431       -1,    -1,   344,    -1,    -1,    -1,   348,    -1,    -1,    -1,
    3432       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3433       -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,   370,    -1,
    3434       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3435       -1,    -1,    -1,  1473,    -1,  1475,    -1,    -1,    -1,    -1,
    3436       37,    38,    -1,    40,    -1,   397,    -1,    -1,  1020,   401,
    3437       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3438       -1,    -1,    -1,    -1,    -1,  1203,    -1,    -1,    -1,    66,
    3439     1510,   145,  1512,    -1,    -1,    72,    -1,    74,    75,    76,
    3440      432,   155,    79,    80,    81,    82,    83,    84,    -1,    86,
    3441       87,    -1,    -1,   167,   168,    -1,    -1,    94,    -1,    -1,
    3442     1540,    -1,    -1,   455,  1076,    -1,    -1,    -1,    -1,    -1,
    3443       -1,  1083,   109,    -1,   111,    -1,   113,   114,    -1,    -1,
    3444       -1,   118,   119,   120,   121,   122,   123,    -1,    -1,    -1,
    3445       -1,    -1,    -1,    -1,   486,    -1,    -1,   489,    -1,    -1,
    3446     1112,    -1,    -1,    -1,    -1,  1117,    -1,    -1,    -1,    -1,
    3447       -1,    -1,    -1,  1125,    -1,    -1,    -1,    -1,    -1,    -1,
    3448       -1,  1299,    -1,    -1,   238,    -1,    -1,    -1,    -1,    -1,
    3449       -1,    -1,    -1,    -1,    -1,    -1,    -1,   529,    -1,    -1,
    3450      532,   533,    -1,    -1,  1156,    -1,    -1,    -1,    -1,   263,
    3451       -1,    -1,    -1,    -1,    -1,    -1,  1168,    -1,    -1,  1171,
    3452       -1,  1173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3453       -1,    -1,    -1,    -1,    -1,  1187,  1188,    -1,    -1,    -1,
    3454       -1,    -1,    -1,    -1,    -1,    -1,   578,   579,    -1,    -1,
    3455       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1209,    -1,    -1,
    3456       -1,    -1,    -1,    -1,    -1,   597,   598,    -1,   600,    -1,
    3457       -1,    -1,    -1,    -1,    -1,    -1,    -1,   609,    -1,   611,
    3458      612,    -1,    -1,    -1,  1236,    -1,   618,    -1,    -1,   281,
    3459       -1,   283,   284,    -1,    -1,    -1,   628,   629,    -1,   291,
    3460      292,    -1,   634,    -1,   296,   297,    -1,    -1,    -1,    -1,
    3461       -1,   643,   644,   645,    -1,    -1,   308,    -1,    -1,    -1,
    3462       -1,    -1,    -1,    -1,    -1,   379,    -1,    -1,    -1,    -1,
    3463      662,    -1,    -1,    -1,    -1,   667,   668,    -1,    -1,   671,
    3464      672,    -1,    -1,    -1,    -1,    -1,   678,    -1,    -1,    -1,
    3465       -1,    -1,   344,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3466       -1,    -1,    -1,    -1,   696,   697,   698,    -1,   700,    -1,
    3467       -1,    -1,   704,    -1,    -1,    -1,    -1,    -1,    -1,    37,
    3468       38,  1333,    40,  1335,    -1,    -1,    -1,    -1,   380,    -1,
    3469       -1,    -1,    -1,    -1,    -1,    -1,  1348,    -1,  1350,    -1,
    3470       -1,    -1,    -1,    -1,   736,   737,    -1,    -1,    66,    -1,
    3471       -1,    -1,    -1,    -1,    72,    -1,  1368,    -1,    76,    -1,
    3472       -1,    79,    80,    81,    82,    83,    84,   481,    86,    87,
    3473       -1,    -1,  1384,  1385,    -1,    -1,    94,  1555,    -1,    -1,
    3474      772,   773,    -1,    -1,  1396,   777,   778,  1399,    -1,    -1,
    3475       -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
    3476      118,   119,   120,   121,   122,   123,   520,    -1,    -1,  1421,
    3477       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1430,   533,
    3478       -1,  1433,    -1,  1435,  1436,  1437,   540,   819,    -1,   543,
    3479       -1,    -1,    -1,    -1,    -1,    -1,   828,    -1,    -1,    -1,
    3480      554,   555,   834,   835,    -1,    -1,    -1,   839,    -1,   841,
    3481       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   851,
    3482       -1,    -1,   576,    -1,    -1,  1477,    -1,  1479,    -1,    -1,
    3483     1482,    -1,   586,    -1,    -1,    -1,    -1,    -1,    -1,   593,
    3484       -1,    -1,    -1,    -1,   598,  1497,    -1,    -1,    -1,    -1,
    3485       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3486       -1,    -1,    -1,    -1,    -1,   557,   558,   559,   560,   561,
    3487      562,   563,   564,   565,   566,   567,   568,   569,   570,   571,
    3488      572,   573,   574,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3489       -1,    -1,   924,    -1,   648,    -1,    -1,    -1,    -1,    -1,
    3490      932,    -1,    -1,   657,    -1,    -1,   938,    -1,   600,    -1,
    3491       -1,    -1,    -1,    -1,   946,    -1,    -1,    -1,    -1,    -1,
    3492       -1,    -1,    -1,    -1,    -1,    -1,    -1,   959,   960,    -1,
    3493       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3494       -1,    -1,    -1,   697,    -1,    -1,    -1,    -1,    -1,    -1,
    3495       -1,    -1,    -1,    -1,   986,    -1,    -1,    -1,    -1,    -1,
    3496      992,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3497       19,    20,    21,    22,    23,    24,    25,    26,    27,  1011,
    3498     1012,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,  1021,
    3499       39,    40,    -1,    -1,    -1,  1027,  1028,    -1,  1030,  1031,
    3500     1032,    -1,    -1,    -1,    -1,    -1,    -1,   699,    -1,    -1,
    3501     1042,  1043,    -1,    -1,    -1,    -1,    -1,    -1,    67,   773,
    3502       -1,   775,    -1,    -1,    -1,    74,    75,   781,    -1,   721,
    3503       -1,    -1,    -1,    -1,   788,    -1,    -1,    -1,    -1,    -1,
    3504       -1,    -1,   734,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3505       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3506       -1,    -1,   111,    -1,    -1,    -1,   115,    -1,    -1,    -1,
    3507      119,  1103,  1104,  1105,    -1,    -1,    -1,    -1,   832,   833,
    3508       -1,   835,    -1,    -1,  1116,    -1,    -1,    -1,   780,    -1,
    3509       -1,    -1,    -1,    -1,    -1,    -1,   850,    -1,    -1,    -1,
     3984      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3985      -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    35103986      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35113987      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3512      812,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1161,
    3513       -1,    -1,    -1,    -1,    -1,   827,   890,    -1,    -1,    -1,
    3514      894,    -1,    -1,     0,    -1,    -1,     3,     4,     5,     6,
    3515        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3516       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3517       27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,
    3518       -1,    -1,    39,    40,    -1,    -1,    -1,    -1,    -1,  1221,
    3519       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3520       -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,  1241,
    3521       67,    -1,    69,    -1,    71,    72,   970,    74,    75,    76,
    3522       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    3523       -1,    -1,   986,   987,    -1,    -1,    -1,    -1,    -1,   993,
    3524       -1,    -1,    -1,    -1,    -1,   999,    -1,    -1,  1002,    -1,
    3525     1004,    -1,   109,    -1,   111,    -1,    -1,    -1,  1290,  1291,
    3526       -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3527     1024,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3528       -1,  1035,    -1,    -1,    -1,    -1,   978,    -1,    -1,    -1,
    3529       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3530       -1,    -1,    -1,  1057,    -1,  1059,    -1,    -1,    -1,    -1,
    3531       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1009,    -1,    -1,
    3532     1074,  1075,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1021,
    3533       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3534       -1,  1095,    -1,    -1,     3,     4,     5,     6,     7,     8,
    3535        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3536       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3537     1062,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
    3538       39,    40,    -1,  1415,    -1,    -1,    -1,    -1,  1142,    -1,
    3539       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3540       -1,    -1,    -1,    -1,    -1,    64,    -1,  1161,    67,    -1,
    3541       69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3542       -1,    -1,  1176,  1177,    83,    84,    -1,    -1,    -1,    -1,
    3543       -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
    3544       -1,    -1,  1134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3545      109,    -1,   111,    -1,    -1,    -1,   115,    -1,    -1,    -1,
    3546      119,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3547       -1,    76,    -1,  1505,    79,    80,    81,    82,    83,    84,
    3548       -1,    86,    87,    -1,    -1,    -1,  1178,    -1,    -1,    94,
    3549       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1530,  1531,
    3550     1192,  1193,    -1,  1257,   109,    -1,   111,    -1,    -1,    -1,
    3551       -1,   116,    -1,   118,   119,   120,   121,   122,   123,    -1,
    3552       -1,    -1,    -1,  1555,    -1,     3,     4,     5,     6,     7,
    3553        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3554       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3555       -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,    37,
    3556       38,    39,    40,    41,  1318,    43,  1320,    -1,    46,    47,
    3557       48,    49,    50,    51,    52,    53,    -1,    -1,    -1,    57,
    3558       -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,    67,
    3559       -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
    3560       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3561       -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
    3562       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3563       -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,
    3564      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
    3565      128,    -1,  1406,    -1,   132,    -1,    -1,    -1,    -1,    -1,
     3988      -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,
    35663989       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    35673990      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3568       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3569       33,    -1,    -1,    36,    37,    38,    39,    40,    -1,    -1,
    3570       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3571     1402,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
    3572       -1,    -1,    -1,    66,    67,    -1,    69,  1419,    71,    72,
    3573       -1,    74,    75,    76,  1488,    -1,    79,    80,    81,    82,
    3574       83,    84,    66,    86,    87,    -1,    -1,    -1,    72,    -1,
    3575       -1,    94,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3576       84,    -1,    86,    87,    -1,    -1,   109,    -1,   111,    -1,
    3577       94,    -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,
    3578      123,    -1,    -1,    -1,    -1,   109,  1540,   111,    -1,   132,
    3579      114,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
    3580     1492,  1493,     3,     4,     5,     6,     7,     8,     9,    10,
    3581       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3582       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3583       31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
    3584       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3585       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3586       30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
    3587       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3588       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3589       -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
    3590       -1,    -1,    72,    -1,    74,    75,    -1,    -1,   109,    -1,
    3591      111,    -1,    -1,    83,    84,    -1,    -1,   118,   119,   120,
    3592      121,   122,   123,     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,    -1,    30,
    3595       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3596       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3597       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3598       27,    28,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
    3599       71,    72,    39,    74,    75,    76,    -1,    -1,    79,    80,
    3600       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3601       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3602       67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3603      111,    78,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
    3604      121,   122,   123,     4,     5,     6,     7,     8,     9,    10,
    3605       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3606       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3607       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3608       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3609       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3610       27,    28,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
    3611       71,    72,    39,    74,    75,    76,    -1,    -1,    79,    80,
    3612       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3613       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3614       67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3615      111,    78,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
    3616      121,   122,   123,     4,     5,     6,     7,     8,     9,    10,
    3617       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3618       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3619       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3620       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3621       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3622       30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
    3623       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3624       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3625       -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
    3626       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,
    3627      111,    -1,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
    3628      121,   122,   123,     4,     5,     6,     7,     8,     9,    10,
    3629       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3630       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3631       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3632       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3633       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3634       30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
    3635       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3636       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3637       -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
    3638       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,
    3639      111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
    3640      121,   122,   123,     4,     5,     6,     7,     8,     9,    10,
    3641       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3642       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3643       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3991      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3992      -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,
    36443993      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36453994      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3646       -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
    3647       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3648       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3649       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3650       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3651      111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
    3652      121,   122,   123,     4,     5,     6,     7,     8,     9,    10,
    3653       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3654       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3655       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3995      -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,
     3996      73,    74,     4,     5,     6,     7,     8,     9,    10,    11,
     3997      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3998      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3999      -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,
    36564000      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36574001      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3658       -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
    3659       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3660       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3661       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3662       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3663      111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
    3664      121,   122,   123,     4,     5,     6,     7,     8,     9,    10,
    3665       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3666       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3667       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3668       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3669       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3670       30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
    3671       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3672       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3673       -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
    3674       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,
    3675      111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
    3676      121,   122,   123,     3,     4,     5,     6,     7,     8,     9,
    3677       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3678       20,    21,    22,    23,    24,    25,    26,    27,    -1,   119,
    3679       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3680       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3681       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3682       -1,    30,    31,    32,    33,    34,    35,    67,    -1,    69,
    3683       39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
    3684       -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,
    3685       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3686       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
    3687       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,
    3688        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3689       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3690       23,    24,    25,    26,    27,    28,    -1,    30,    31,    32,
    3691       33,    -1,    -1,    36,    -1,    -1,    39,    -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,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
    3695       -1,    74,    75,    -1,    -1,    78,     3,     4,     5,     6,
    3696        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3697       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3698       27,    -1,    -1,    30,    31,    32,    33,    -1,   111,    36,
    3699       -1,    -1,    39,    -1,    -1,    -1,   119,    -1,    -1,    -1,
    3700       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3701       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3702       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     3,
    3703        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3704       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3705       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3706       -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
    3707       -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3708       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3709       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3710       74,    75,    -1,     4,     5,     6,     7,     8,     9,    10,
    3711       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3712       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3713       31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,
    3714       -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,
    3715       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3716       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3717       71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
    3718       -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,
    3719       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3720       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3721      111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,     4,
    3722        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3723       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3724       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3725       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    10,
    3726       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3727       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3728       31,    32,    67,    -1,    69,    -1,    71,    -1,    39,    74,
    3729       75,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
    3730       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3731       22,    23,    24,    25,    26,    27,    67,    -1,    30,    31,
    3732       32,    -1,    -1,    74,    75,   110,   111,    39,    -1,    -1,
    3733       -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,
    3734       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3735       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,   109,    71,
    3736      111,    -1,    74,    75,    -1,    -1,    -1,    -1,   119,    -1,
    3737       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3738       -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,
    3739       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    3740       -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,     4,     5,
    3741        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3742       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3743       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3744       -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    10,    11,
    3745       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3746       22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
    3747       32,    67,    -1,    69,    -1,    71,    -1,    39,    74,    75,
    3748       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3749       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3750       96,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3751       72,    -1,    74,    75,    76,   111,    78,    -1,    -1,    -1,
    3752       -1,    83,    84,   119,     4,     5,     6,     7,     8,     9,
    3753       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3754       20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
    3755       30,    31,    32,    -1,    -1,    -1,    -1,   119,    -1,    39,
    3756       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3757       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3758       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3759       -1,    71,    -1,    -1,    74,    75,    -1,     4,     5,     6,
    3760        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3761       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3762       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3763       -1,   111,    39,    -1,    -1,    -1,    -1,    -1,    -1,   119,
    3764       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3765       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3766       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
    3767        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3768       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3769       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3770       -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
    3771       -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3772       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3773       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3774       74,    75,    -1,     4,     5,     6,     7,     8,     9,    10,
    3775       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3776       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3777       31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,
    3778       -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,
    3779       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3780       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3781       71,    -1,    -1,    74,    75,    10,    11,    12,    13,    14,
    3782       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3783       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3784       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3785      111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,
    3786       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3787       -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3788       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3789       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3790       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3791       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
    3792       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    10,
    3793       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3794       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3795       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3796       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3797       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3798       30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
    3799       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3800       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3801       -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
    3802       -1,    -1,    72,    -1,    74,    75,    76,    -1,   109,    -1,
    3803      111,   112,    -1,    83,    84,    -1,    -1,   118,   119,   120,
    3804      121,   122,   123,    10,    11,    12,    13,    14,    15,    16,
    3805       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3806       27,   111,    -1,    30,    31,    32,    -1,    -1,    -1,   119,
    3807       37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
    3808       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3809       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
    3810       67,    -1,    -1,    39,    40,    72,    -1,    74,    75,    76,
    3811       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3812       87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3813       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    3814       -1,    -1,   109,   110,   111,    -1,    -1,    -1,    -1,    -1,
    3815       -1,   118,   119,   120,   121,   122,   123,    10,    11,    12,
    3816       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3817       23,    24,    25,    26,    27,   111,    -1,    30,    31,    32,
    3818       -1,    -1,    -1,   119,    37,    38,    39,    40,    -1,    -1,
    3819       -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3820       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3821       25,    26,    27,    66,    67,    30,    31,    32,    -1,    72,
    3822       -1,    74,    75,    76,    39,    -1,    79,    80,    81,    82,
    3823       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3824       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3825       -1,    -1,    67,    -1,    -1,    -1,   109,    -1,   111,    74,
    3826       75,    -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,
    3827      123,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3828       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3829       -1,    30,    31,    32,   109,    -1,   111,    -1,    37,    38,
    3830       39,    40,    -1,    -1,   119,    -1,    -1,    -1,    -1,    10,
    3831       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3832       21,    22,    23,    24,    25,    26,    27,    66,    67,    30,
    3833       31,    32,    -1,    72,    -1,    74,    75,    76,    39,    -1,
    3834       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3835       -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
    3836       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
    3837      109,    -1,   111,    74,    75,    -1,    -1,    -1,    -1,   118,
    3838      119,   120,   121,   122,   123,    10,    11,    12,    13,    14,
    3839       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3840       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3841      111,    -1,    37,    38,    39,    40,    -1,    -1,   119,    -1,
    3842       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3843       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3844       -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3845       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3846       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3848       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3849       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    10,
    3850       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3851       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3852       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3853       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3854       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3855       30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
    3856       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3857       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3858       -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,    -1,
    3859       -1,    -1,    72,    -1,    74,    75,    76,    -1,   109,    -1,
    3860      111,    -1,    -1,    83,    84,    -1,    -1,   118,   119,   120,
    3861      121,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3862       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    3863       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,
    3864       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3865       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3866       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3867       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3868       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3869       30,    31,    32,    -1,    -1,    -1,    -1,    67,    -1,    39,
    3870       -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
    3871       -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,
    3872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3873       -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,   109,
    3874       -1,   111,    -1,    83,    84,    -1,    -1,    -1,    -1,   119,
    3875       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3876       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    3877       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,
    3878       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3879       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3880       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3881       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3882       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3883       30,    31,    32,    -1,    -1,    -1,    -1,    67,    -1,    39,
    3884       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    78,    -1,
    3885       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3886       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3887       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    78,   109,
    3888       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,
    3889       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3890       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    3891       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,
    3892       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3893       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3894       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3895       40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3896       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3897       -1,    30,    31,    32,    -1,    -1,    -1,    67,    -1,    -1,
    3898       39,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
    3899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3900       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3901       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    78,
    3902       -1,   111,    -1,    -1,    -1,   115,    -1,    -1,    -1,   119,
    3903       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3904       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3905       27,    -1,   111,    30,    31,    32,    -1,    -1,    -1,    -1,
    3906      119,    -1,    39,    40,    10,    11,    12,    13,    14,    15,
    3907       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3908       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3909       67,    -1,    -1,    39,    -1,    -1,    -1,    74,    75,    -1,
    3910       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3911       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3912       -1,    67,    30,    31,    32,    -1,    -1,    -1,    74,    75,
    3913       -1,    39,    -1,    -1,   111,    -1,    -1,    -1,   115,    -1,
    3914       -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3915       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3916       -1,    -1,    -1,    -1,    -1,   111,    74,    75,    -1,    -1,
    3917       -1,    -1,    -1,   119,    -1,    10,    11,    12,    13,    14,
    3918       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3919       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3920       -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,    -1,
    3921       -1,   119,    -1,    10,    11,    12,    13,    14,    15,    16,
    3922       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3923       27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,    74,
    3924       75,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
    3925       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3926       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3927       67,    -1,    39,    -1,    -1,    -1,   111,    74,    75,    -1,
    3928       -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,
    3929       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3930       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    3931       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3932       -1,    -1,   119,    -1,    -1,    10,    11,    12,    13,    14,
    3933       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3934       25,    26,    27,    -1,   111,    30,    31,    32,    -1,    -1,
    3935       -1,    -1,   119,    -1,    39,    10,    11,    12,    13,    14,
    3936       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3937       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3938       -1,    -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,
    3939       75,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3940       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3941       27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,    74,
    3942       75,    -1,    39,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3943       -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,
    3944       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3945       67,    -1,    -1,    -1,    -1,    -1,   111,    74,    75,    -1,
    3946       -1,    -1,    -1,    -1,   119,    -1,    10,    11,    12,    13,
    3947       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3948       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3949       -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
    3950       -1,    -1,   119,    -1,    10,    11,    12,    13,    14,    15,
    3951       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3952       26,    27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,
    3953       74,    75,    -1,    39,    -1,    -1,     4,     5,     6,     7,
    3954        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3955       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3956       -1,    67,    30,    31,    32,    -1,    -1,   111,    74,    75,
    3957       -1,    39,    -1,    37,    38,   119,    40,    41,    -1,    43,
    3958       -1,    -1,    46,    47,    48,    49,    50,    51,    52,    53,
    3959       -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    67,
    3960       64,    69,    66,    71,    -1,    -1,    74,    75,    72,    -1,
    3961       -1,    -1,    76,   119,    -1,    79,    80,    81,    82,    83,
    3962       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3963       94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3964       -1,    -1,   110,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3965      114,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
    3966       -1,    -1,    -1,    -1,   128,    -1,    37,    38,   132,    40,
    3967       41,    -1,    43,    -1,    -1,    46,    47,    48,    49,    50,
    3968       51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,
    3969       61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,
    3970       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
    3971       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3972       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3973       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3974      111,    -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,
    3975      121,   122,   123,    -1,    -1,    -1,    -1,   128,    -1,    -1,
    3976       -1,   132,     4,     5,     6,     7,     8,     9,    10,    11,
    3977       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3978       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3979       32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    37,
    3980       38,    -1,    40,    41,    -1,    43,    44,    45,    46,    47,
    3981       48,    49,    50,    51,    52,    53,    -1,    -1,    56,    57,
    3982       -1,    -1,    -1,    61,    62,    67,    64,    69,    66,    71,
    3983       -1,    -1,    74,    75,    72,    -1,    -1,    -1,    76,    -1,
    3984       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3985       -1,    -1,    -1,    -1,    96,    -1,    94,    -1,    -1,    -1,
    3986       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3987       -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,
    3988      118,   119,   120,   121,   122,   123,    -1,    -1,    37,    38,
    3989      128,    40,    41,    -1,    43,    44,    45,    46,    47,    48,
    3990       49,    50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,
    3991       -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,
    3992       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3993       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3994       -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
    3995       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3996      109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,   118,
    3997      119,   120,   121,   122,   123,    -1,    -1,    37,    38,   128,
    3998       40,    41,    -1,    43,    -1,    -1,    46,    47,    48,    49,
    3999       50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
    4000       -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
    4001       -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    4002       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    4003       -1,    -1,    -1,    -1,    94,    37,    38,    -1,    40,    -1,
    4004       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    4005       -1,   111,    -1,    -1,   114,    -1,    -1,    -1,   118,   119,
    4006      120,   121,   122,   123,    66,    -1,    -1,    -1,   128,    -1,
    4007       72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
    4008       82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
    4009       -1,    -1,    94,    37,    38,    -1,    40,    -1,    -1,    -1,
    4010       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
    4011       -1,    -1,    37,    38,    -1,    40,   118,   119,   120,   121,
    4012      122,   123,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
    4013       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    4014       84,    66,    86,    87,    -1,    -1,    -1,    72,    -1,    -1,
    4015       94,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    4016       -1,    86,    87,    -1,    -1,   109,    -1,   111,    -1,    94,
    4017       37,    38,    -1,    40,   118,   119,   120,   121,   122,   123,
    4018       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    37,
    4019       38,    -1,    40,   118,   119,   120,   121,   122,   123,    66,
    4020       -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
    4021       -1,    -1,    79,    80,    81,    82,    83,    84,    66,    86,
    4022       87,    -1,    -1,    -1,    72,    -1,    -1,    94,    76,    -1,
    4023       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    4024       -1,    -1,   109,    -1,   111,    -1,    94,    37,    38,    -1,
    4025       40,   118,   119,   120,   121,   122,   123,    -1,    -1,    -1,
    4026       -1,   109,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
    4027      118,   119,   120,   121,   122,   123,    66,    -1,    -1,    -1,
    4028       -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    4029       80,    81,    82,    83,    84,    66,    86,    87,    -1,    -1,
    4030       -1,    72,    -1,    -1,    94,    76,    -1,    -1,    79,    80,
    4031       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,   109,
    4032       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,   118,   119,
    4033      120,   121,   122,   123,    -1,    -1,    -1,    -1,   109,    -1,
    4034       -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
    4035      121,   122,   123,     3,     4,     5,     6,     7,     8,     9,
    4036       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    4037       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    4038       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    4039       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4040       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4041       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    4042       -1,    71,    -1,    -1,    74,    75,     3,     4,     5,     6,
    4043        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    4044       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4045       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4046       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4047       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4048       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4049       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     4,
    4050        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    4051       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    4052       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    4053       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
    4054       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4055       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4056       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    4057       75
     4002      -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,
     4003      -1,    73,    74
    40584004};
    40594005
     
    40644010       0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    40654011      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    4066       22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    4067       36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    4068       76,    83,    84,   109,   111,   119,   137,   140,   197,   211,
     4012      22,    23,    24,    25,    26,    29,    30,    31,    32,    35,
     4013      38,    39,    63,    66,    68,    70,    71,    73,    74,    75,
     4014      82,    83,   108,   110,   118,   136,   139,   196,   210,   211,
    40694015     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
    4070      222,   223,   224,   225,   226,   227,   228,   230,   231,   232,
    4071      233,   234,   235,   236,   237,   239,   240,   241,   242,   243,
    4072      244,   245,   253,   254,   280,   281,   282,   290,   293,   299,
    4073      300,   302,   304,   305,   311,   316,   320,   321,   322,   323,
    4074      324,   325,   326,   327,   347,   364,   365,   366,   367,    72,
    4075      119,   139,   140,   214,   216,   224,   226,   236,   240,   242,
    4076      281,    82,   109,   309,   310,   311,   309,   309,    72,    74,
    4077       75,    76,   138,   139,   270,   271,   291,   292,    74,    75,
    4078      271,   109,   302,    11,   198,   109,   119,   316,   321,   322,
    4079      323,   325,   326,   327,   112,   134,   111,   217,   224,   226,
    4080      320,   324,   363,   364,   367,   368,   135,   107,   131,   274,
    4081      114,   135,   172,    74,    75,   137,   269,   135,   135,   135,
    4082      116,   135,    74,    75,   109,   119,   306,   315,   316,   317,
    4083      318,   319,   320,   324,   328,   329,   330,   331,   332,   338,
    4084        3,    28,    78,   238,     3,     5,    74,   111,   119,   216,
    4085      227,   231,   234,   243,   282,   320,   324,   367,   214,   216,
    4086      226,   236,   240,   242,   281,   320,   324,    33,   232,   232,
    4087      227,   234,   135,   232,   227,   232,   227,    75,   109,   114,
    4088      271,   282,   114,   271,   232,   227,   116,   135,   135,     0,
    4089      134,   109,   172,   309,   309,   134,   111,   224,   226,   365,
    4090      269,   269,   226,   131,   109,   119,   306,   316,   320,   111,
    4091      119,   367,   303,   229,   311,   109,   287,   109,   109,    51,
    4092      109,    37,    38,    40,    66,    72,    76,    79,    80,    81,
    4093       82,    86,    87,    94,   109,   111,   118,   119,   120,   121,
    4094      122,   123,   136,   140,   141,   142,   143,   148,   149,   150,
     4016     222,   223,   224,   225,   226,   227,   229,   230,   231,   232,
     4017     233,   234,   235,   236,   238,   239,   240,   241,   242,   243,
     4018     244,   252,   253,   279,   280,   281,   289,   292,   298,   299,
     4019     301,   303,   304,   310,   315,   319,   320,   321,   322,   323,
     4020     324,   325,   326,   346,   363,   364,   365,   366,    71,   118,
     4021     138,   139,   213,   215,   223,   225,   235,   239,   241,   280,
     4022      81,   108,   308,   309,   310,   308,   308,    71,    73,    74,
     4023      75,   137,   138,   269,   270,   290,   291,    73,    74,   270,
     4024     108,   301,    11,   197,   108,   118,   315,   320,   321,   322,
     4025     324,   325,   326,   111,   133,   110,   216,   223,   225,   319,
     4026     323,   362,   363,   366,   367,   134,   106,   130,   273,   113,
     4027     134,   171,    73,    74,   136,   268,   134,   134,   134,   115,
     4028     134,    73,    74,   108,   118,   305,   314,   315,   316,   317,
     4029     318,   319,   323,   327,   328,   329,   330,   331,   337,     3,
     4030      27,    77,   237,     3,     5,    73,   110,   118,   215,   226,
     4031     230,   233,   242,   281,   319,   323,   366,   213,   215,   225,
     4032     235,   239,   241,   280,   319,   323,    32,   231,   231,   226,
     4033     233,   134,   231,   226,   231,   226,    74,   108,   113,   270,
     4034     281,   113,   270,   231,   226,   115,   134,   134,     0,   133,
     4035     108,   171,   308,   308,   133,   110,   223,   225,   364,   268,
     4036     268,   225,   130,   108,   118,   305,   315,   319,   110,   118,
     4037     366,   302,   228,   310,   108,   286,   108,   108,    50,   108,
     4038      36,    37,    39,    65,    71,    75,    78,    79,    80,    81,
     4039      85,    86,    93,   108,   110,   117,   118,   119,   120,   121,
     4040     122,   135,   139,   140,   141,   142,   147,   148,   149,   150,
    40954041     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
    4096      161,   163,   165,   224,   273,   289,   363,   368,   226,   110,
    4097      110,   110,   110,   110,   110,   110,    74,    75,   111,   224,
    4098      269,   347,   365,   111,   119,   163,   216,   217,   223,   226,
    4099      230,   231,   236,   239,   240,   242,   259,   260,   264,   265,
    4100      266,   267,   281,   347,   359,   360,   361,   362,   367,   368,
    4101      112,   109,   320,   324,   367,   109,   116,   132,   111,   114,
    4102      119,   163,   275,   275,   115,   134,   116,   132,   109,   116,
    4103      132,   116,   132,   116,   132,   309,   132,   316,   317,   318,
    4104      319,   329,   330,   331,   332,   226,   315,   328,    64,   308,
    4105      111,   309,   346,   347,   309,   309,   172,   134,   109,   309,
    4106      346,   309,   309,   226,   306,   109,   109,   225,   226,   224,
    4107      226,   112,   134,   224,   363,   368,   172,   134,   269,   274,
    4108      216,   231,   320,   324,   172,   134,   291,   226,   236,   132,
    4109      226,   226,   289,    40,   111,   224,   246,   247,   248,   249,
    4110      363,   367,   114,   255,   271,   114,   226,   291,   132,   132,
    4111      302,   134,   139,   268,     3,   135,   206,   207,   221,   223,
    4112      226,   134,   308,   109,   308,   163,   316,   226,   109,   134,
    4113      269,   114,    33,    34,    35,   224,   283,   284,   286,   134,
    4114      129,   131,   288,   134,   227,   233,   234,   269,   312,   313,
    4115      314,   109,   141,   109,   148,   109,   148,   150,   109,   148,
    4116      109,   109,   148,   148,   139,   111,   163,   168,   172,   224,
    4117      272,   363,   112,   134,   150,   150,    82,    85,    86,    87,
    4118      109,   111,   113,   114,    97,    98,    99,   100,   101,   102,
    4119      103,   104,   105,   106,   131,   167,   150,   119,   124,   125,
    4120      121,   122,    88,    89,    90,    91,   126,   127,    92,    93,
    4121      120,   128,   129,    94,    95,   130,   131,   370,   109,   119,
    4122      342,   343,   344,   345,   346,   110,   116,   109,   346,   347,
    4123      109,   346,   347,   134,   109,   224,   365,   112,   134,   111,
    4124      119,   135,   224,   226,   358,   359,   367,   368,   135,   109,
    4125      111,   119,   316,   333,   334,   335,   336,   337,   338,   339,
    4126      340,   341,   347,   348,   349,   350,   351,   352,   353,   119,
    4127      367,   226,   135,   135,   119,   224,   226,   360,   269,   224,
    4128      347,   360,   269,   109,   134,   134,   134,   112,   134,    72,
    4129       80,   111,   113,   140,   271,   275,   276,   277,   278,   279,
    4130      134,   134,   134,   134,   134,   134,   306,   110,   110,   110,
    4131      110,   110,   110,   110,   315,   328,   109,   274,   112,   206,
    4132      134,   306,   168,   273,   168,   273,   306,   111,   206,   308,
    4133      172,   134,   206,   110,   248,   249,   112,   134,   109,   117,
    4134      119,   250,   252,   315,   316,   328,   346,   354,   355,   356,
    4135      357,   115,   247,   116,   132,   116,   132,   271,   246,   116,
    4136      369,   131,   256,   255,   226,   261,   262,   263,   266,   267,
    4137      110,   116,   172,   134,   119,   163,   134,   223,   226,   260,
    4138      359,   367,   300,   301,   109,   119,   333,   110,   116,   370,
    4139      271,   283,   109,   114,   271,   273,   283,   110,   116,   109,
    4140      141,   110,   117,   272,   272,   272,   111,   139,   145,   163,
    4141      273,   272,   112,   134,   110,   116,   110,   109,   119,   354,
    4142      110,   116,   163,   111,   139,   111,   144,   145,   134,   111,
    4143      139,   144,   163,   163,   150,   150,   150,   151,   151,   152,
    4144      152,   153,   153,   153,   153,   154,   154,   155,   156,   157,
    4145      158,   159,   117,   168,   163,   134,   343,   344,   345,   226,
    4146      342,   309,   309,   163,   273,   134,   268,   119,   134,   224,
    4147      347,   360,   226,   230,   112,   134,   112,   367,   112,   109,
    4148      134,   316,   334,   335,   336,   339,   349,   350,   351,   112,
    4149      134,   226,   333,   337,   348,   109,   309,   352,   370,   309,
    4150      309,   370,   109,   309,   352,   309,   309,   309,   309,   347,
    4151      224,   358,   368,   269,   112,   116,   112,   116,   370,   224,
    4152      360,   370,   257,   258,   259,   260,   257,   257,   269,   163,
    4153      134,   111,   271,   117,   116,   369,   275,    80,   111,   117,
    4154      279,    29,   208,   209,   269,   257,   139,   306,   139,   308,
    4155      109,   346,   347,   109,   346,   347,   141,   347,   172,   261,
    4156      110,   110,   110,   110,   112,   172,   206,   172,   114,   132,
    4157      132,   111,   316,   355,   356,   357,   161,   162,   226,   354,
    4158      251,   252,   251,   309,   309,   271,   309,   115,   271,   115,
    4159      162,   369,   135,   135,   139,   221,   135,   135,   257,   109,
    4160      119,   367,   135,   115,   226,   284,   285,   135,   134,   134,
    4161      109,   135,   110,   313,   168,   169,   117,   132,   111,   141,
    4162      199,   200,   201,   110,   116,   110,   134,   117,   110,   110,
    4163      110,   163,   226,   114,   150,   165,   163,   164,   166,   116,
    4164      135,   134,   134,   110,   116,   163,   134,   115,   161,   117,
    4165      261,   110,   110,   110,   342,   261,   110,   257,   224,   360,
    4166      111,   119,   163,   163,   226,   339,   261,   110,   110,   110,
    4167      110,   110,   110,   110,     7,   226,   333,   337,   348,   134,
    4168      134,   370,   134,   134,   110,   135,   135,   135,   135,   274,
    4169      135,   161,   162,   163,   307,   134,   275,   277,   115,   134,
    4170      210,   271,    40,    41,    43,    46,    47,    48,    49,    50,
    4171       51,    52,    53,    57,    61,    62,   111,   128,   139,   169,
    4172      170,   171,   172,   173,   174,   176,   177,   189,   191,   192,
    4173      197,   211,   305,    29,   135,   131,   274,   134,   134,   110,
    4174      135,   172,   246,   112,   110,   110,   110,   354,   250,   256,
    4175      115,   110,   116,   112,   112,   135,   226,   116,   370,   287,
    4176      110,   283,   214,   216,   224,   295,   296,   297,   298,   289,
    4177      110,   110,   117,   162,   109,   110,   117,   116,   139,   163,
    4178      163,   276,   116,   135,   166,   112,   139,   146,   147,   163,
    4179      145,   135,   146,   161,   165,   135,   109,   346,   347,   135,
    4180      135,   134,   135,   135,   135,   163,   110,   135,   109,   346,
    4181      347,   109,   352,   109,   352,   347,   225,     7,   119,   135,
    4182      163,   261,   261,   260,   264,   264,   265,   116,   116,   110,
    4183      110,   112,    96,   123,   135,   135,   146,   275,   163,   116,
    4184      132,   211,   215,   226,   230,   109,   109,   170,   109,   109,
    4185      132,   139,   132,   139,   119,   139,   169,   109,   172,   164,
    4186      164,   112,   143,   117,   132,   135,   134,   135,   210,   110,
    4187      163,   261,   261,   309,   110,   115,   109,   346,   347,   134,
    4188      110,   134,   135,   306,   115,   134,   135,   135,   110,   114,
    4189      199,   112,   162,   132,   199,   201,   110,   116,   135,   369,
    4190      164,   112,   135,    85,   113,   116,   135,   135,   112,   135,
    4191      110,   134,   110,   110,   112,   112,   112,   135,   110,   134,
    4192      134,   134,   163,   163,   135,   112,   135,   135,   135,   135,
    4193      134,   134,   162,   162,   112,   112,   135,   135,   271,   226,
    4194      168,   168,    47,   168,   134,   132,   132,   168,   132,   132,
    4195      168,    58,    59,    60,   193,   194,   195,   132,    63,   132,
    4196      114,   309,   174,   115,   132,   135,   135,   134,    96,   266,
    4197      267,   110,   296,   116,   132,   116,   132,   115,   294,   117,
    4198      141,   110,   110,   117,   166,   112,   115,   112,   111,   147,
    4199      111,   147,   147,   112,   112,   112,   261,   112,   261,   261,
    4200      261,   135,   135,   112,   112,   110,   110,   112,   116,    96,
    4201      260,    96,   135,   112,   112,   110,   110,   109,   110,   169,
    4202      190,   211,   132,   110,   109,   109,   172,   195,    58,    59,
    4203      163,   144,   170,   110,   110,   261,   114,   134,   134,   295,
    4204      141,   202,   109,   132,   202,   135,   117,   134,   134,   135,
    4205      135,   135,   135,   112,   112,   134,   135,   112,   170,    44,
    4206       45,   114,   180,   181,   182,   168,   170,   135,   110,   169,
    4207      114,   182,    96,   134,    96,   134,   109,   109,   132,   115,
    4208      135,   134,   269,   306,   115,   116,   117,   162,   110,   112,
    4209      163,   146,   146,   110,   110,   110,   110,   264,    42,   162,
    4210      178,   179,   307,   117,   134,   170,   180,   110,   132,   170,
    4211      132,   134,   110,   134,   110,   134,    96,   134,    96,   134,
    4212      132,   110,   295,   141,   139,   203,   110,   132,   117,   135,
    4213      135,   170,    96,   116,   117,   135,   204,   205,   211,   132,
    4214      169,   169,   204,   172,   196,   224,   363,   172,   196,   110,
    4215      134,   110,   134,   115,   110,   116,   163,   112,   112,   162,
    4216      178,   181,   183,   184,   134,   132,   181,   185,   186,   135,
    4217      109,   119,   306,   354,   139,   135,   172,   196,   172,   196,
    4218      109,   132,   139,   170,   175,   115,   181,   211,   169,    56,
    4219      175,   188,   115,   181,   110,   226,   110,   135,   135,   289,
    4220      170,   175,   132,   187,   188,   175,   188,   172,   172,   110,
    4221      110,   110,   187,   135,   135,   172,   172,   135,   135
     4042     162,   164,   223,   272,   288,   362,   367,   225,   109,   109,
     4043     109,   109,   109,   109,   109,    73,    74,   110,   223,   268,
     4044     346,   364,   110,   118,   162,   215,   216,   222,   225,   229,
     4045     230,   235,   238,   239,   241,   258,   259,   263,   264,   265,
     4046     266,   280,   346,   358,   359,   360,   361,   366,   367,   111,
     4047     108,   319,   323,   366,   108,   115,   131,   110,   113,   118,
     4048     162,   274,   274,   114,   133,   115,   131,   108,   115,   131,
     4049     115,   131,   115,   131,   308,   131,   315,   316,   317,   318,
     4050     328,   329,   330,   331,   225,   314,   327,    63,   307,   110,
     4051     308,   345,   346,   308,   308,   171,   133,   108,   308,   345,
     4052     308,   308,   225,   305,   108,   108,   224,   225,   223,   225,
     4053     111,   133,   223,   362,   367,   171,   133,   268,   273,   215,
     4054     230,   319,   323,   171,   133,   290,   225,   235,   131,   225,
     4055     225,   288,    39,   110,   223,   245,   246,   247,   248,   362,
     4056     366,   113,   254,   270,   113,   225,   290,   131,   131,   301,
     4057     133,   138,   267,     3,   134,   205,   206,   220,   222,   225,
     4058     133,   307,   108,   307,   162,   315,   225,   108,   133,   268,
     4059     113,    32,    33,    34,   223,   282,   283,   285,   133,   128,
     4060     130,   287,   133,   226,   232,   233,   268,   311,   312,   313,
     4061     108,   140,   108,   147,   108,   147,   149,   108,   147,   108,
     4062     108,   147,   147,   138,   110,   162,   167,   171,   223,   271,
     4063     362,   111,   133,   149,   149,    81,    84,    85,    86,   108,
     4064     110,   112,   113,    96,    97,    98,    99,   100,   101,   102,
     4065     103,   104,   105,   130,   166,   149,   118,   123,   124,   120,
     4066     121,    87,    88,    89,    90,   125,   126,    91,    92,   119,
     4067     127,   128,    93,    94,   129,   130,   369,   108,   118,   341,
     4068     342,   343,   344,   345,   109,   115,   108,   345,   346,   108,
     4069     345,   346,   133,   108,   223,   364,   111,   133,   110,   118,
     4070     134,   223,   225,   357,   358,   366,   367,   134,   108,   110,
     4071     118,   315,   332,   333,   334,   335,   336,   337,   338,   339,
     4072     340,   346,   347,   348,   349,   350,   351,   352,   118,   366,
     4073     225,   134,   134,   118,   223,   225,   359,   268,   223,   346,
     4074     359,   268,   108,   133,   133,   133,   111,   133,    71,    79,
     4075     110,   112,   139,   270,   274,   275,   276,   277,   278,   133,
     4076     133,   133,   133,   133,   133,   305,   109,   109,   109,   109,
     4077     109,   109,   109,   314,   327,   108,   273,   111,   205,   133,
     4078     305,   167,   272,   167,   272,   305,   110,   205,   307,   171,
     4079     133,   205,   109,   247,   248,   111,   133,   108,   116,   118,
     4080     249,   251,   314,   315,   327,   345,   353,   354,   355,   356,
     4081     114,   246,   115,   131,   115,   131,   270,   245,   115,   368,
     4082     130,   255,   254,   225,   260,   261,   262,   265,   266,   109,
     4083     115,   171,   133,   118,   162,   133,   222,   225,   259,   358,
     4084     366,   299,   300,   108,   118,   332,   109,   115,   369,   270,
     4085     282,   108,   113,   270,   272,   282,   109,   115,   108,   140,
     4086     109,   116,   271,   271,   271,   110,   138,   144,   162,   272,
     4087     271,   111,   133,   109,   115,   109,   108,   118,   353,   109,
     4088     115,   162,   110,   138,   110,   143,   144,   133,   110,   138,
     4089     143,   162,   162,   149,   149,   149,   150,   150,   151,   151,
     4090     152,   152,   152,   152,   153,   153,   154,   155,   156,   157,
     4091     158,   116,   167,   162,   133,   342,   343,   344,   225,   341,
     4092     308,   308,   162,   272,   133,   267,   118,   133,   223,   346,
     4093     359,   225,   229,   111,   133,   111,   366,   111,   108,   133,
     4094     315,   333,   334,   335,   338,   348,   349,   350,   111,   133,
     4095     225,   332,   336,   347,   108,   308,   351,   369,   308,   308,
     4096     369,   108,   308,   351,   308,   308,   308,   308,   346,   223,
     4097     357,   367,   268,   111,   115,   111,   115,   369,   223,   359,
     4098     369,   256,   257,   258,   259,   256,   256,   268,   162,   133,
     4099     110,   270,   116,   115,   368,   274,    79,   110,   116,   278,
     4100      28,   207,   208,   268,   256,   138,   305,   138,   307,   108,
     4101     345,   346,   108,   345,   346,   140,   346,   171,   260,   109,
     4102     109,   109,   109,   111,   171,   205,   171,   113,   131,   131,
     4103     110,   315,   354,   355,   356,   160,   161,   225,   353,   250,
     4104     251,   250,   308,   308,   270,   308,   114,   270,   114,   161,
     4105     368,   134,   134,   138,   220,   134,   134,   256,   108,   118,
     4106     366,   134,   114,   225,   283,   284,   134,   133,   133,   108,
     4107     134,   109,   312,   167,   168,   116,   131,   110,   140,   198,
     4108     199,   200,   109,   115,   109,   133,   116,   109,   109,   109,
     4109     162,   225,   113,   149,   164,   162,   163,   165,   115,   134,
     4110     133,   133,   109,   115,   162,   133,   114,   160,   116,   260,
     4111     109,   109,   109,   341,   260,   109,   256,   223,   359,   110,
     4112     118,   162,   162,   225,   338,   260,   109,   109,   109,   109,
     4113     109,   109,   109,     7,   225,   332,   336,   347,   133,   133,
     4114     369,   133,   133,   109,   134,   134,   134,   134,   273,   134,
     4115     160,   161,   162,   306,   133,   274,   276,   114,   133,   209,
     4116     270,    39,    40,    42,    45,    46,    47,    48,    49,    50,
     4117      51,    52,    56,    60,    61,   110,   127,   138,   168,   169,
     4118     170,   171,   172,   173,   175,   176,   188,   190,   191,   196,
     4119     210,   304,    28,   134,   130,   273,   133,   133,   109,   134,
     4120     171,   245,   111,   109,   109,   109,   353,   249,   255,   114,
     4121     109,   115,   111,   111,   134,   225,   115,   369,   286,   109,
     4122     282,   213,   215,   223,   294,   295,   296,   297,   288,   109,
     4123     109,   116,   161,   108,   109,   116,   115,   138,   162,   162,
     4124     275,   115,   134,   165,   111,   138,   145,   146,   162,   144,
     4125     134,   145,   160,   164,   134,   108,   345,   346,   134,   134,
     4126     133,   134,   134,   134,   162,   109,   134,   108,   345,   346,
     4127     108,   351,   108,   351,   346,   224,     7,   118,   134,   162,
     4128     260,   260,   259,   263,   263,   264,   115,   115,   109,   109,
     4129     111,    95,   122,   134,   134,   145,   274,   162,   115,   131,
     4130     210,   214,   225,   229,   108,   108,   169,   108,   108,   131,
     4131     138,   131,   138,   118,   138,   168,   108,   171,   163,   163,
     4132     111,   142,   116,   131,   134,   133,   134,   209,   109,   162,
     4133     260,   260,   308,   109,   114,   108,   345,   346,   133,   109,
     4134     133,   134,   305,   114,   133,   134,   134,   109,   113,   198,
     4135     111,   161,   131,   198,   200,   109,   115,   134,   368,   163,
     4136     111,   134,    84,   112,   115,   134,   134,   111,   134,   109,
     4137     133,   109,   109,   111,   111,   111,   134,   109,   133,   133,
     4138     133,   162,   162,   134,   111,   134,   134,   134,   134,   133,
     4139     133,   161,   161,   111,   111,   134,   134,   270,   225,   167,
     4140     167,    46,   167,   133,   131,   131,   167,   131,   131,   167,
     4141      57,    58,    59,   192,   193,   194,   131,    62,   131,   113,
     4142     308,   173,   114,   131,   134,   134,   133,    95,   265,   266,
     4143     109,   295,   115,   131,   115,   131,   114,   293,   116,   140,
     4144     109,   109,   116,   165,   111,   114,   111,   110,   146,   110,
     4145     146,   146,   111,   111,   111,   260,   111,   260,   260,   260,
     4146     134,   134,   111,   111,   109,   109,   111,   115,    95,   259,
     4147      95,   134,   111,   111,   109,   109,   108,   109,   168,   189,
     4148     210,   131,   109,   108,   108,   171,   194,    57,    58,   162,
     4149     143,   169,   109,   109,   260,   113,   133,   133,   294,   140,
     4150     201,   108,   131,   201,   134,   116,   133,   133,   134,   134,
     4151     134,   134,   111,   111,   133,   134,   111,   169,    43,    44,
     4152     113,   179,   180,   181,   167,   169,   134,   109,   168,   113,
     4153     181,    95,   133,    95,   133,   108,   108,   131,   114,   134,
     4154     133,   268,   305,   114,   115,   116,   161,   109,   111,   162,
     4155     145,   145,   109,   109,   109,   109,   263,    41,   161,   177,
     4156     178,   306,   116,   133,   169,   179,   109,   131,   169,   131,
     4157     133,   109,   133,   109,   133,    95,   133,    95,   133,   131,
     4158     109,   294,   140,   138,   202,   109,   131,   116,   134,   134,
     4159     169,    95,   115,   116,   134,   203,   204,   210,   131,   168,
     4160     168,   203,   171,   195,   223,   362,   171,   195,   109,   133,
     4161     109,   133,   114,   109,   115,   162,   111,   111,   161,   177,
     4162     180,   182,   183,   133,   131,   180,   184,   185,   134,   108,
     4163     118,   305,   353,   138,   134,   171,   195,   171,   195,   108,
     4164     131,   138,   169,   174,   114,   180,   210,   168,    55,   174,
     4165     187,   114,   180,   109,   225,   109,   134,   134,   288,   169,
     4166     174,   131,   186,   187,   174,   187,   171,   171,   109,   109,
     4167     109,   186,   134,   134,   171,   171,   134,   134
    42224168};
    42234169
     
    50565002
    50575003/* Line 1806 of yacc.c  */
    5058 #line 292 "parser.yy"
     5004#line 290 "parser.yy"
    50595005    {
    50605006                        typedefTable.enterScope();
     
    50655011
    50665012/* Line 1806 of yacc.c  */
    5067 #line 298 "parser.yy"
     5013#line 296 "parser.yy"
    50685014    {
    50695015                        typedefTable.leaveScope();
     
    50745020
    50755021/* Line 1806 of yacc.c  */
     5022#line 305 "parser.yy"
     5023    { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
     5024    break;
     5025
     5026  case 5:
     5027
     5028/* Line 1806 of yacc.c  */
     5029#line 306 "parser.yy"
     5030    { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
     5031    break;
     5032
     5033  case 6:
     5034
     5035/* Line 1806 of yacc.c  */
    50765036#line 307 "parser.yy"
    5077     { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
    5078     break;
    5079 
    5080   case 5:
    5081 
    5082 /* Line 1806 of yacc.c  */
    5083 #line 308 "parser.yy"
    5084     { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
    5085     break;
    5086 
    5087   case 6:
    5088 
    5089 /* Line 1806 of yacc.c  */
    5090 #line 309 "parser.yy"
    50915037    { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
    50925038    break;
     
    50955041
    50965042/* Line 1806 of yacc.c  */
    5097 #line 334 "parser.yy"
     5043#line 332 "parser.yy"
    50985044    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
    50995045    break;
     
    51025048
    51035049/* Line 1806 of yacc.c  */
    5104 #line 335 "parser.yy"
     5050#line 333 "parser.yy"
    51055051    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    51065052    break;
    51075053
    51085054  case 18:
     5055
     5056/* Line 1806 of yacc.c  */
     5057#line 340 "parser.yy"
     5058    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5059    break;
     5060
     5061  case 19:
    51095062
    51105063/* Line 1806 of yacc.c  */
     
    51135066    break;
    51145067
    5115   case 19:
     5068  case 20:
    51165069
    51175070/* Line 1806 of yacc.c  */
    51185071#line 344 "parser.yy"
    5119     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    5120     break;
    5121 
    5122   case 20:
     5072    { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5073    break;
     5074
     5075  case 21:
    51235076
    51245077/* Line 1806 of yacc.c  */
    51255078#line 346 "parser.yy"
    5126     { (yyval.en) = (yyvsp[(2) - (3)].en); }
    5127     break;
    5128 
    5129   case 21:
    5130 
    5131 /* Line 1806 of yacc.c  */
    5132 #line 348 "parser.yy"
    51335079    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    51345080    break;
     
    51375083
    51385084/* Line 1806 of yacc.c  */
     5085#line 356 "parser.yy"
     5086    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
     5087    break;
     5088
     5089  case 24:
     5090
     5091/* Line 1806 of yacc.c  */
    51395092#line 358 "parser.yy"
    5140     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    5141     break;
    5142 
    5143   case 24:
    5144 
    5145 /* Line 1806 of yacc.c  */
    5146 #line 360 "parser.yy"
    51475093    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    51485094    break;
     
    51515097
    51525098/* Line 1806 of yacc.c  */
    5153 #line 364 "parser.yy"
     5099#line 362 "parser.yy"
    51545100    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51555101    break;
     
    51585104
    51595105/* Line 1806 of yacc.c  */
    5160 #line 367 "parser.yy"
     5106#line 365 "parser.yy"
    51615107    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51625108    break;
     
    51655111
    51665112/* Line 1806 of yacc.c  */
     5113#line 368 "parser.yy"
     5114    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
     5115    break;
     5116
     5117  case 30:
     5118
     5119/* Line 1806 of yacc.c  */
    51675120#line 370 "parser.yy"
    5168     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    5169     break;
    5170 
    5171   case 30:
     5121    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
     5122    break;
     5123
     5124  case 31:
    51725125
    51735126/* Line 1806 of yacc.c  */
    51745127#line 372 "parser.yy"
    5175     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    5176     break;
    5177 
    5178   case 31:
     5128    { (yyval.en) = 0; }
     5129    break;
     5130
     5131  case 32:
    51795132
    51805133/* Line 1806 of yacc.c  */
    51815134#line 374 "parser.yy"
    5182     { (yyval.en) = 0; }
    5183     break;
    5184 
    5185   case 32:
    5186 
    5187 /* Line 1806 of yacc.c  */
    5188 #line 376 "parser.yy"
    51895135    {
    51905136                        Token fn; fn.str = new std::string( "?{}" ); // location undefined
     
    51965142
    51975143/* Line 1806 of yacc.c  */
    5198 #line 385 "parser.yy"
     5144#line 383 "parser.yy"
    51995145    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    52005146    break;
     
    52035149
    52045150/* Line 1806 of yacc.c  */
    5205 #line 390 "parser.yy"
     5151#line 388 "parser.yy"
    52065152    { (yyval.en) = 0; }
    52075153    break;
     
    52105156
    52115157/* Line 1806 of yacc.c  */
    5212 #line 393 "parser.yy"
     5158#line 391 "parser.yy"
    52135159    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    52145160    break;
     
    52175163
    52185164/* Line 1806 of yacc.c  */
     5165#line 396 "parser.yy"
     5166    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
     5167    break;
     5168
     5169  case 39:
     5170
     5171/* Line 1806 of yacc.c  */
    52195172#line 398 "parser.yy"
    5220     { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    5221     break;
    5222 
    5223   case 39:
    5224 
    5225 /* Line 1806 of yacc.c  */
    5226 #line 400 "parser.yy"
    52275173    { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
    52285174    break;
     
    52315177
    52325178/* Line 1806 of yacc.c  */
    5233 #line 405 "parser.yy"
     5179#line 403 "parser.yy"
    52345180    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    52355181    break;
     
    52385184
    52395185/* Line 1806 of yacc.c  */
    5240 #line 410 "parser.yy"
     5186#line 408 "parser.yy"
    52415187    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    52425188    break;
     
    52455191
    52465192/* Line 1806 of yacc.c  */
     5193#line 412 "parser.yy"
     5194    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5195    break;
     5196
     5197  case 44:
     5198
     5199/* Line 1806 of yacc.c  */
    52475200#line 414 "parser.yy"
    5248     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5249     break;
    5250 
    5251   case 44:
     5201    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5202    break;
     5203
     5204  case 45:
    52525205
    52535206/* Line 1806 of yacc.c  */
    52545207#line 416 "parser.yy"
    5255     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    5256     break;
    5257 
    5258   case 45:
     5208    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5209    break;
     5210
     5211  case 46:
    52595212
    52605213/* Line 1806 of yacc.c  */
    52615214#line 418 "parser.yy"
    5262     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5263     break;
    5264 
    5265   case 46:
    5266 
    5267 /* Line 1806 of yacc.c  */
    5268 #line 420 "parser.yy"
    52695215    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    52705216    break;
    52715217
    52725218  case 48:
     5219
     5220/* Line 1806 of yacc.c  */
     5221#line 426 "parser.yy"
     5222    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5223    break;
     5224
     5225  case 49:
    52735226
    52745227/* Line 1806 of yacc.c  */
     
    52775230    break;
    52785231
    5279   case 49:
     5232  case 50:
    52805233
    52815234/* Line 1806 of yacc.c  */
    52825235#line 430 "parser.yy"
    5283     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    5284     break;
    5285 
    5286   case 50:
     5236    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
     5237    break;
     5238
     5239  case 51:
    52875240
    52885241/* Line 1806 of yacc.c  */
    52895242#line 432 "parser.yy"
    5290     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    5291     break;
    5292 
    5293   case 51:
     5243    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
     5244    break;
     5245
     5246  case 52:
    52945247
    52955248/* Line 1806 of yacc.c  */
    52965249#line 434 "parser.yy"
    5297     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    5298     break;
    5299 
    5300   case 52:
     5250    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     5251    break;
     5252
     5253  case 53:
    53015254
    53025255/* Line 1806 of yacc.c  */
    53035256#line 436 "parser.yy"
    5304     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    5305     break;
    5306 
    5307   case 53:
     5257    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5258    break;
     5259
     5260  case 54:
    53085261
    53095262/* Line 1806 of yacc.c  */
    53105263#line 438 "parser.yy"
    5311     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    5312     break;
    5313 
    5314   case 54:
     5264    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
     5265    break;
     5266
     5267  case 55:
    53155268
    53165269/* Line 1806 of yacc.c  */
    53175270#line 440 "parser.yy"
    5318     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
    5319     break;
    5320 
    5321   case 55:
    5322 
    5323 /* Line 1806 of yacc.c  */
    5324 #line 442 "parser.yy"
    53255271    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
    53265272    break;
     
    53295275
    53305276/* Line 1806 of yacc.c  */
     5277#line 446 "parser.yy"
     5278    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
     5279    break;
     5280
     5281  case 57:
     5282
     5283/* Line 1806 of yacc.c  */
    53315284#line 448 "parser.yy"
    5332     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    5333     break;
    5334 
    5335   case 57:
     5285    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5286    break;
     5287
     5288  case 58:
    53365289
    53375290/* Line 1806 of yacc.c  */
    53385291#line 450 "parser.yy"
    5339     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    5340     break;
    5341 
    5342   case 58:
     5292    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
     5293    break;
     5294
     5295  case 59:
    53435296
    53445297/* Line 1806 of yacc.c  */
    53455298#line 452 "parser.yy"
    5346     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
    5347     break;
    5348 
    5349   case 59:
     5299    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
     5300    break;
     5301
     5302  case 60:
    53505303
    53515304/* Line 1806 of yacc.c  */
    53525305#line 454 "parser.yy"
    5353     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    5354     break;
    5355 
    5356   case 60:
     5306    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5307    break;
     5308
     5309  case 61:
    53575310
    53585311/* Line 1806 of yacc.c  */
    53595312#line 456 "parser.yy"
    5360     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    5361     break;
    5362 
    5363   case 61:
     5313    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
     5314    break;
     5315
     5316  case 62:
    53645317
    53655318/* Line 1806 of yacc.c  */
    53665319#line 458 "parser.yy"
    5367     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    5368     break;
    5369 
    5370   case 62:
     5320    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
     5321    break;
     5322
     5323  case 63:
    53715324
    53725325/* Line 1806 of yacc.c  */
    53735326#line 460 "parser.yy"
    5374     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    5375     break;
    5376 
    5377   case 63:
     5327    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
     5328    break;
     5329
     5330  case 64:
    53785331
    53795332/* Line 1806 of yacc.c  */
    53805333#line 462 "parser.yy"
    5381     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
    5382     break;
    5383 
    5384   case 64:
    5385 
    5386 /* Line 1806 of yacc.c  */
    5387 #line 464 "parser.yy"
    53885334    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); }
    53895335    break;
     
    53925338
    53935339/* Line 1806 of yacc.c  */
     5340#line 466 "parser.yy"
     5341    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
     5342    break;
     5343
     5344  case 66:
     5345
     5346/* Line 1806 of yacc.c  */
     5347#line 467 "parser.yy"
     5348    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
     5349    break;
     5350
     5351  case 67:
     5352
     5353/* Line 1806 of yacc.c  */
    53945354#line 468 "parser.yy"
    5395     { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    5396     break;
    5397 
    5398   case 66:
     5355    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
     5356    break;
     5357
     5358  case 68:
    53995359
    54005360/* Line 1806 of yacc.c  */
    54015361#line 469 "parser.yy"
    5402     { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    5403     break;
    5404 
    5405   case 67:
    5406 
    5407 /* Line 1806 of yacc.c  */
    5408 #line 470 "parser.yy"
    5409     { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    5410     break;
    5411 
    5412   case 68:
    5413 
    5414 /* Line 1806 of yacc.c  */
    5415 #line 471 "parser.yy"
    54165362    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    54175363    break;
    54185364
    54195365  case 70:
     5366
     5367/* Line 1806 of yacc.c  */
     5368#line 475 "parser.yy"
     5369    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5370    break;
     5371
     5372  case 71:
    54205373
    54215374/* Line 1806 of yacc.c  */
     
    54245377    break;
    54255378
    5426   case 71:
    5427 
    5428 /* Line 1806 of yacc.c  */
    5429 #line 479 "parser.yy"
    5430     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    5431     break;
    5432 
    54335379  case 73:
    54345380
    54355381/* Line 1806 of yacc.c  */
     5382#line 483 "parser.yy"
     5383    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5384    break;
     5385
     5386  case 74:
     5387
     5388/* Line 1806 of yacc.c  */
    54365389#line 485 "parser.yy"
    5437     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5438     break;
    5439 
    5440   case 74:
     5390    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5391    break;
     5392
     5393  case 75:
    54415394
    54425395/* Line 1806 of yacc.c  */
    54435396#line 487 "parser.yy"
    5444     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5445     break;
    5446 
    5447   case 75:
    5448 
    5449 /* Line 1806 of yacc.c  */
    5450 #line 489 "parser.yy"
    54515397    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54525398    break;
     
    54555401
    54565402/* Line 1806 of yacc.c  */
     5403#line 493 "parser.yy"
     5404    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5405    break;
     5406
     5407  case 78:
     5408
     5409/* Line 1806 of yacc.c  */
    54575410#line 495 "parser.yy"
    5458     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5459     break;
    5460 
    5461   case 78:
    5462 
    5463 /* Line 1806 of yacc.c  */
    5464 #line 497 "parser.yy"
    54655411    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54665412    break;
     
    54695415
    54705416/* Line 1806 of yacc.c  */
     5417#line 501 "parser.yy"
     5418    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5419    break;
     5420
     5421  case 81:
     5422
     5423/* Line 1806 of yacc.c  */
    54715424#line 503 "parser.yy"
    5472     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5473     break;
    5474 
    5475   case 81:
    5476 
    5477 /* Line 1806 of yacc.c  */
    5478 #line 505 "parser.yy"
    54795425    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54805426    break;
     
    54835429
    54845430/* Line 1806 of yacc.c  */
     5431#line 509 "parser.yy"
     5432    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5433    break;
     5434
     5435  case 84:
     5436
     5437/* Line 1806 of yacc.c  */
    54855438#line 511 "parser.yy"
    5486     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5487     break;
    5488 
    5489   case 84:
     5439    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5440    break;
     5441
     5442  case 85:
    54905443
    54915444/* Line 1806 of yacc.c  */
    54925445#line 513 "parser.yy"
    5493     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5494     break;
    5495 
    5496   case 85:
     5446    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5447    break;
     5448
     5449  case 86:
    54975450
    54985451/* Line 1806 of yacc.c  */
    54995452#line 515 "parser.yy"
    5500     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5501     break;
    5502 
    5503   case 86:
    5504 
    5505 /* Line 1806 of yacc.c  */
    5506 #line 517 "parser.yy"
    55075453    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55085454    break;
     
    55115457
    55125458/* Line 1806 of yacc.c  */
     5459#line 521 "parser.yy"
     5460    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5461    break;
     5462
     5463  case 89:
     5464
     5465/* Line 1806 of yacc.c  */
    55135466#line 523 "parser.yy"
    5514     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5515     break;
    5516 
    5517   case 89:
    5518 
    5519 /* Line 1806 of yacc.c  */
    5520 #line 525 "parser.yy"
    55215467    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55225468    break;
     
    55255471
    55265472/* Line 1806 of yacc.c  */
    5527 #line 531 "parser.yy"
     5473#line 529 "parser.yy"
    55285474    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55295475    break;
     
    55325478
    55335479/* Line 1806 of yacc.c  */
    5534 #line 537 "parser.yy"
     5480#line 535 "parser.yy"
    55355481    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55365482    break;
     
    55395485
    55405486/* Line 1806 of yacc.c  */
    5541 #line 543 "parser.yy"
     5487#line 541 "parser.yy"
    55425488    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55435489    break;
     
    55465492
    55475493/* Line 1806 of yacc.c  */
    5548 #line 549 "parser.yy"
     5494#line 547 "parser.yy"
    55495495    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55505496    break;
     
    55535499
    55545500/* Line 1806 of yacc.c  */
    5555 #line 555 "parser.yy"
     5501#line 553 "parser.yy"
    55565502    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55575503    break;
     
    55605506
    55615507/* Line 1806 of yacc.c  */
     5508#line 559 "parser.yy"
     5509    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5510    break;
     5511
     5512  case 102:
     5513
     5514/* Line 1806 of yacc.c  */
    55625515#line 561 "parser.yy"
     5516    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5517    break;
     5518
     5519  case 103:
     5520
     5521/* Line 1806 of yacc.c  */
     5522#line 563 "parser.yy"
    55635523    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    55645524    break;
    55655525
    5566   case 102:
    5567 
    5568 /* Line 1806 of yacc.c  */
    5569 #line 563 "parser.yy"
    5570     { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5571     break;
    5572 
    5573   case 103:
    5574 
    5575 /* Line 1806 of yacc.c  */
    5576 #line 565 "parser.yy"
    5577     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    5578     break;
    5579 
    55805526  case 106:
    55815527
    55825528/* Line 1806 of yacc.c  */
     5529#line 574 "parser.yy"
     5530    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5531    break;
     5532
     5533  case 107:
     5534
     5535/* Line 1806 of yacc.c  */
    55835536#line 576 "parser.yy"
    5584     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5585     break;
    5586 
    5587   case 107:
     5537    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5538    break;
     5539
     5540  case 108:
    55885541
    55895542/* Line 1806 of yacc.c  */
    55905543#line 578 "parser.yy"
    5591     { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5592     break;
    5593 
    5594   case 108:
    5595 
    5596 /* Line 1806 of yacc.c  */
    5597 #line 580 "parser.yy"
    55985544    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    55995545    break;
     
    56025548
    56035549/* Line 1806 of yacc.c  */
    5604 #line 585 "parser.yy"
     5550#line 583 "parser.yy"
    56055551    { (yyval.en) = new NullExprNode; }
    56065552    break;
     
    56095555
    56105556/* Line 1806 of yacc.c  */
     5557#line 591 "parser.yy"
     5558    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     5559    break;
     5560
     5561  case 112:
     5562
     5563/* Line 1806 of yacc.c  */
    56115564#line 593 "parser.yy"
    5612     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    5613     break;
    5614 
    5615   case 112:
     5565    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
     5566    break;
     5567
     5568  case 113:
    56165569
    56175570/* Line 1806 of yacc.c  */
    56185571#line 595 "parser.yy"
    5619     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    5620     break;
    5621 
    5622   case 113:
     5572    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
     5573    break;
     5574
     5575  case 114:
    56235576
    56245577/* Line 1806 of yacc.c  */
    56255578#line 597 "parser.yy"
    5626     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    5627     break;
    5628 
    5629   case 114:
    5630 
    5631 /* Line 1806 of yacc.c  */
    5632 #line 599 "parser.yy"
    56335579    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    56345580    break;
     
    56375583
    56385584/* Line 1806 of yacc.c  */
    5639 #line 605 "parser.yy"
     5585#line 603 "parser.yy"
    56405586    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    56415587    break;
     
    56445590
    56455591/* Line 1806 of yacc.c  */
     5592#line 607 "parser.yy"
     5593    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
     5594    break;
     5595
     5596  case 118:
     5597
     5598/* Line 1806 of yacc.c  */
     5599#line 608 "parser.yy"
     5600    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
     5601    break;
     5602
     5603  case 119:
     5604
     5605/* Line 1806 of yacc.c  */
    56465606#line 609 "parser.yy"
    5647     { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    5648     break;
    5649 
    5650   case 118:
     5607    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
     5608    break;
     5609
     5610  case 120:
    56515611
    56525612/* Line 1806 of yacc.c  */
    56535613#line 610 "parser.yy"
    5654     { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    5655     break;
    5656 
    5657   case 119:
     5614    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
     5615    break;
     5616
     5617  case 121:
    56585618
    56595619/* Line 1806 of yacc.c  */
    56605620#line 611 "parser.yy"
    5661     { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    5662     break;
    5663 
    5664   case 120:
     5621    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
     5622    break;
     5623
     5624  case 122:
    56655625
    56665626/* Line 1806 of yacc.c  */
    56675627#line 612 "parser.yy"
    5668     { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    5669     break;
    5670 
    5671   case 121:
     5628    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
     5629    break;
     5630
     5631  case 123:
    56725632
    56735633/* Line 1806 of yacc.c  */
    56745634#line 613 "parser.yy"
    5675     { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    5676     break;
    5677 
    5678   case 122:
     5635    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
     5636    break;
     5637
     5638  case 124:
    56795639
    56805640/* Line 1806 of yacc.c  */
    56815641#line 614 "parser.yy"
    5682     { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    5683     break;
    5684 
    5685   case 123:
     5642    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
     5643    break;
     5644
     5645  case 125:
    56865646
    56875647/* Line 1806 of yacc.c  */
    56885648#line 615 "parser.yy"
    5689     { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    5690     break;
    5691 
    5692   case 124:
     5649    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
     5650    break;
     5651
     5652  case 126:
    56935653
    56945654/* Line 1806 of yacc.c  */
    56955655#line 616 "parser.yy"
    5696     { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    5697     break;
    5698 
    5699   case 125:
    5700 
    5701 /* Line 1806 of yacc.c  */
    5702 #line 617 "parser.yy"
    5703     { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    5704     break;
    5705 
    5706   case 126:
    5707 
    5708 /* Line 1806 of yacc.c  */
    5709 #line 618 "parser.yy"
    57105656    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    57115657    break;
     
    57145660
    57155661/* Line 1806 of yacc.c  */
    5716 #line 624 "parser.yy"
     5662#line 622 "parser.yy"
    57175663    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57185664    break;
     
    57215667
    57225668/* Line 1806 of yacc.c  */
    5723 #line 629 "parser.yy"
     5669#line 627 "parser.yy"
    57245670    { (yyval.en) = 0; }
    57255671    break;
     
    57285674
    57295675/* Line 1806 of yacc.c  */
    5730 #line 638 "parser.yy"
     5676#line 636 "parser.yy"
    57315677    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    57325678    break;
     
    57355681
    57365682/* Line 1806 of yacc.c  */
    5737 #line 645 "parser.yy"
     5683#line 643 "parser.yy"
    57385684    {
    57395685                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
     
    57465692
    57475693/* Line 1806 of yacc.c  */
    5748 #line 654 "parser.yy"
     5694#line 652 "parser.yy"
    57495695    {
    57505696                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    57555701
    57565702/* Line 1806 of yacc.c  */
    5757 #line 661 "parser.yy"
     5703#line 659 "parser.yy"
    57585704    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    57595705    break;
     
    57625708
    57635709/* Line 1806 of yacc.c  */
    5764 #line 668 "parser.yy"
     5710#line 666 "parser.yy"
    57655711    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    57665712    break;
     
    57695715
    57705716/* Line 1806 of yacc.c  */
    5771 #line 674 "parser.yy"
     5717#line 672 "parser.yy"
    57725718    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    57735719    break;
     
    57765722
    57775723/* Line 1806 of yacc.c  */
     5724#line 677 "parser.yy"
     5725    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5726    break;
     5727
     5728  case 146:
     5729
     5730/* Line 1806 of yacc.c  */
    57785731#line 679 "parser.yy"
     5732    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
     5733    break;
     5734
     5735  case 147:
     5736
     5737/* Line 1806 of yacc.c  */
     5738#line 681 "parser.yy"
    57795739    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57805740    break;
    57815741
    5782   case 146:
    5783 
    5784 /* Line 1806 of yacc.c  */
    5785 #line 681 "parser.yy"
    5786     { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    5787     break;
    5788 
    5789   case 147:
    5790 
    5791 /* Line 1806 of yacc.c  */
    5792 #line 683 "parser.yy"
    5793     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    5794     break;
    5795 
    57965742  case 150:
    57975743
    57985744/* Line 1806 of yacc.c  */
    5799 #line 690 "parser.yy"
     5745#line 688 "parser.yy"
    58005746    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    58015747    break;
     
    58045750
    58055751/* Line 1806 of yacc.c  */
    5806 #line 695 "parser.yy"
     5752#line 693 "parser.yy"
    58075753    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    58085754    break;
     
    58115757
    58125758/* Line 1806 of yacc.c  */
     5759#line 699 "parser.yy"
     5760    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5761    break;
     5762
     5763  case 153:
     5764
     5765/* Line 1806 of yacc.c  */
    58135766#line 701 "parser.yy"
    5814     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5815     break;
    5816 
    5817   case 153:
     5767    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
     5768    break;
     5769
     5770  case 154:
    58185771
    58195772/* Line 1806 of yacc.c  */
    58205773#line 703 "parser.yy"
    5821     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    5822     break;
    5823 
    5824   case 154:
     5774    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5775    break;
     5776
     5777  case 155:
    58255778
    58265779/* Line 1806 of yacc.c  */
    58275780#line 705 "parser.yy"
    5828     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5829     break;
    5830 
    5831   case 155:
    5832 
    5833 /* Line 1806 of yacc.c  */
    5834 #line 707 "parser.yy"
    58355781    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    58365782    break;
     
    58395785
    58405786/* Line 1806 of yacc.c  */
     5787#line 710 "parser.yy"
     5788    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5789    break;
     5790
     5791  case 157:
     5792
     5793/* Line 1806 of yacc.c  */
    58415794#line 712 "parser.yy"
    5842     { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5843     break;
    5844 
    5845   case 157:
    5846 
    5847 /* Line 1806 of yacc.c  */
    5848 #line 714 "parser.yy"
    58495795    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    58505796    break;
     
    58535799
    58545800/* Line 1806 of yacc.c  */
     5801#line 719 "parser.yy"
     5802    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5803    break;
     5804
     5805  case 159:
     5806
     5807/* Line 1806 of yacc.c  */
    58555808#line 721 "parser.yy"
    5856     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5857     break;
    5858 
    5859   case 159:
    5860 
    5861 /* Line 1806 of yacc.c  */
    5862 #line 723 "parser.yy"
    58635809    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    58645810    break;
     
    58675813
    58685814/* Line 1806 of yacc.c  */
    5869 #line 730 "parser.yy"
     5815#line 728 "parser.yy"
    58705816    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    58715817    break;
     
    58745820
    58755821/* Line 1806 of yacc.c  */
    5876 #line 734 "parser.yy"
     5822#line 732 "parser.yy"
    58775823    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    58785824    break;
     
    58815827
    58825828/* Line 1806 of yacc.c  */
    5883 #line 735 "parser.yy"
     5829#line 733 "parser.yy"
    58845830    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    58855831    break;
     
    58885834
    58895835/* Line 1806 of yacc.c  */
    5890 #line 741 "parser.yy"
     5836#line 739 "parser.yy"
    58915837    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    58925838    break;
     
    58955841
    58965842/* Line 1806 of yacc.c  */
    5897 #line 745 "parser.yy"
     5843#line 743 "parser.yy"
    58985844    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58995845    break;
     
    59025848
    59035849/* Line 1806 of yacc.c  */
    5904 #line 750 "parser.yy"
     5850#line 748 "parser.yy"
    59055851    { (yyval.sn) = 0; }
    59065852    break;
     
    59095855
    59105856/* Line 1806 of yacc.c  */
     5857#line 754 "parser.yy"
     5858    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5859    break;
     5860
     5861  case 171:
     5862
     5863/* Line 1806 of yacc.c  */
    59115864#line 756 "parser.yy"
     5865    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5866    break;
     5867
     5868  case 172:
     5869
     5870/* Line 1806 of yacc.c  */
     5871#line 761 "parser.yy"
     5872    { (yyval.sn) = 0; }
     5873    break;
     5874
     5875  case 174:
     5876
     5877/* Line 1806 of yacc.c  */
     5878#line 767 "parser.yy"
    59125879    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    59135880    break;
    59145881
    5915   case 171:
    5916 
    5917 /* Line 1806 of yacc.c  */
    5918 #line 758 "parser.yy"
     5882  case 175:
     5883
     5884/* Line 1806 of yacc.c  */
     5885#line 769 "parser.yy"
     5886    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
     5887    break;
     5888
     5889  case 176:
     5890
     5891/* Line 1806 of yacc.c  */
     5892#line 771 "parser.yy"
    59195893    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    59205894    break;
    59215895
    5922   case 172:
    5923 
    5924 /* Line 1806 of yacc.c  */
    5925 #line 763 "parser.yy"
     5896  case 177:
     5897
     5898/* Line 1806 of yacc.c  */
     5899#line 773 "parser.yy"
     5900    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
     5901    break;
     5902
     5903  case 178:
     5904
     5905/* Line 1806 of yacc.c  */
     5906#line 778 "parser.yy"
    59265907    { (yyval.sn) = 0; }
    59275908    break;
    59285909
    5929   case 174:
    5930 
    5931 /* Line 1806 of yacc.c  */
    5932 #line 769 "parser.yy"
    5933     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5934     break;
    5935 
    5936   case 175:
    5937 
    5938 /* Line 1806 of yacc.c  */
    5939 #line 771 "parser.yy"
    5940     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    5941     break;
    5942 
    5943   case 176:
    5944 
    5945 /* Line 1806 of yacc.c  */
    5946 #line 773 "parser.yy"
    5947     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    5948     break;
    5949 
    5950   case 177:
    5951 
    5952 /* Line 1806 of yacc.c  */
    5953 #line 775 "parser.yy"
    5954     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
    5955     break;
    5956 
    5957   case 178:
    5958 
    5959 /* Line 1806 of yacc.c  */
    5960 #line 780 "parser.yy"
    5961     { (yyval.sn) = 0; }
    5962     break;
    5963 
    59645910  case 180:
    59655911
    59665912/* Line 1806 of yacc.c  */
    5967 #line 785 "parser.yy"
     5913#line 783 "parser.yy"
    59685914    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    59695915    break;
     
    59725918
    59735919/* Line 1806 of yacc.c  */
    5974 #line 786 "parser.yy"
     5920#line 784 "parser.yy"
    59755921    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    59765922    break;
     
    59795925
    59805926/* Line 1806 of yacc.c  */
     5927#line 789 "parser.yy"
     5928    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5929    break;
     5930
     5931  case 183:
     5932
     5933/* Line 1806 of yacc.c  */
    59815934#line 791 "parser.yy"
    5982     { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5983     break;
    5984 
    5985   case 183:
     5935    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
     5936    break;
     5937
     5938  case 184:
    59865939
    59875940/* Line 1806 of yacc.c  */
    59885941#line 793 "parser.yy"
    5989     { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    5990     break;
    5991 
    5992   case 184:
    5993 
    5994 /* Line 1806 of yacc.c  */
    5995 #line 795 "parser.yy"
    59965942    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    59975943    break;
     
    60005946
    60015947/* Line 1806 of yacc.c  */
     5948#line 798 "parser.yy"
     5949    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5950    break;
     5951
     5952  case 186:
     5953
     5954/* Line 1806 of yacc.c  */
    60025955#line 800 "parser.yy"
    6003     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    6004     break;
    6005 
    6006   case 186:
    6007 
    6008 /* Line 1806 of yacc.c  */
    6009 #line 802 "parser.yy"
    60105956    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    60115957    break;
     
    60145960
    60155961/* Line 1806 of yacc.c  */
    6016 #line 807 "parser.yy"
     5962#line 805 "parser.yy"
    60175963    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    60185964    break;
     
    60215967
    60225968/* Line 1806 of yacc.c  */
    6023 #line 811 "parser.yy"
     5969#line 809 "parser.yy"
    60245970    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    60255971    break;
     
    60285974
    60295975/* Line 1806 of yacc.c  */
    6030 #line 814 "parser.yy"
     5976#line 812 "parser.yy"
    60315977    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    60325978    break;
     
    60355981
    60365982/* Line 1806 of yacc.c  */
    6037 #line 818 "parser.yy"
     5983#line 816 "parser.yy"
    60385984    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    60395985    break;
     
    60425988
    60435989/* Line 1806 of yacc.c  */
    6044 #line 821 "parser.yy"
     5990#line 819 "parser.yy"
    60455991    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    60465992    break;
     
    60495995
    60505996/* Line 1806 of yacc.c  */
     5997#line 823 "parser.yy"
     5998    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
     5999    break;
     6000
     6001  case 193:
     6002
     6003/* Line 1806 of yacc.c  */
    60516004#line 825 "parser.yy"
    6052     { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    6053     break;
    6054 
    6055   case 193:
     6005    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
     6006    break;
     6007
     6008  case 194:
    60566009
    60576010/* Line 1806 of yacc.c  */
    60586011#line 827 "parser.yy"
    6059     { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    6060     break;
    6061 
    6062   case 194:
    6063 
    6064 /* Line 1806 of yacc.c  */
    6065 #line 829 "parser.yy"
    60666012    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    60676013    break;
     
    60706016
    60716017/* Line 1806 of yacc.c  */
     6018#line 831 "parser.yy"
     6019    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
     6020    break;
     6021
     6022  case 196:
     6023
     6024/* Line 1806 of yacc.c  */
    60726025#line 833 "parser.yy"
    6073     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    6074     break;
    6075 
    6076   case 196:
    6077 
    6078 /* Line 1806 of yacc.c  */
    6079 #line 835 "parser.yy"
    60806026    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    60816027    break;
    60826028
    60836029  case 197:
     6030
     6031/* Line 1806 of yacc.c  */
     6032#line 840 "parser.yy"
     6033    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
     6034    break;
     6035
     6036  case 198:
    60846037
    60856038/* Line 1806 of yacc.c  */
     
    60886041    break;
    60896042
    6090   case 198:
     6043  case 199:
    60916044
    60926045/* Line 1806 of yacc.c  */
    60936046#line 844 "parser.yy"
    6094     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6095     break;
    6096 
    6097   case 199:
    6098 
    6099 /* Line 1806 of yacc.c  */
    6100 #line 846 "parser.yy"
    61016047    {
    61026048                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    61086054
    61096055/* Line 1806 of yacc.c  */
     6056#line 855 "parser.yy"
     6057    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
     6058    break;
     6059
     6060  case 202:
     6061
     6062/* Line 1806 of yacc.c  */
    61106063#line 857 "parser.yy"
     6064    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
     6065    break;
     6066
     6067  case 203:
     6068
     6069/* Line 1806 of yacc.c  */
     6070#line 859 "parser.yy"
    61116071    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    61126072    break;
    61136073
    6114   case 202:
    6115 
    6116 /* Line 1806 of yacc.c  */
    6117 #line 859 "parser.yy"
     6074  case 204:
     6075
     6076/* Line 1806 of yacc.c  */
     6077#line 861 "parser.yy"
    61186078    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    61196079    break;
    61206080
    6121   case 203:
    6122 
    6123 /* Line 1806 of yacc.c  */
    6124 #line 861 "parser.yy"
    6125     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    6126     break;
    6127 
    6128   case 204:
    6129 
    6130 /* Line 1806 of yacc.c  */
    6131 #line 863 "parser.yy"
    6132     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    6133     break;
    6134 
    61356081  case 205:
    61366082
    61376083/* Line 1806 of yacc.c  */
     6084#line 866 "parser.yy"
     6085    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
     6086    break;
     6087
     6088  case 206:
     6089
     6090/* Line 1806 of yacc.c  */
    61386091#line 868 "parser.yy"
     6092    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
     6093    break;
     6094
     6095  case 207:
     6096
     6097/* Line 1806 of yacc.c  */
     6098#line 870 "parser.yy"
    61396099    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    61406100    break;
    61416101
    6142   case 206:
    6143 
    6144 /* Line 1806 of yacc.c  */
    6145 #line 870 "parser.yy"
     6102  case 208:
     6103
     6104/* Line 1806 of yacc.c  */
     6105#line 872 "parser.yy"
    61466106    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    61476107    break;
    61486108
    6149   case 207:
    6150 
    6151 /* Line 1806 of yacc.c  */
    6152 #line 872 "parser.yy"
    6153     { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    6154     break;
    6155 
    6156   case 208:
    6157 
    6158 /* Line 1806 of yacc.c  */
    6159 #line 874 "parser.yy"
    6160     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    6161     break;
    6162 
    61636109  case 209:
    61646110
    61656111/* Line 1806 of yacc.c  */
    6166 #line 879 "parser.yy"
     6112#line 877 "parser.yy"
    61676113    {
    61686114                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    61746120
    61756121/* Line 1806 of yacc.c  */
    6176 #line 893 "parser.yy"
     6122#line 891 "parser.yy"
    61776123    {
    61786124                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61846130
    61856131/* Line 1806 of yacc.c  */
     6132#line 896 "parser.yy"
     6133    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6134    break;
     6135
     6136  case 213:
     6137
     6138/* Line 1806 of yacc.c  */
    61866139#line 898 "parser.yy"
    6187     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    6188     break;
    6189 
    6190   case 213:
    6191 
    6192 /* Line 1806 of yacc.c  */
    6193 #line 900 "parser.yy"
    61946140    {
    61956141                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62016147
    62026148/* Line 1806 of yacc.c  */
     6149#line 907 "parser.yy"
     6150    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
     6151    break;
     6152
     6153  case 216:
     6154
     6155/* Line 1806 of yacc.c  */
    62036156#line 909 "parser.yy"
    6204     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    6205     break;
    6206 
    6207   case 216:
     6157    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
     6158    break;
     6159
     6160  case 217:
    62086161
    62096162/* Line 1806 of yacc.c  */
    62106163#line 911 "parser.yy"
    6211     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    6212     break;
    6213 
    6214   case 217:
     6164    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
     6165    break;
     6166
     6167  case 218:
    62156168
    62166169/* Line 1806 of yacc.c  */
    62176170#line 913 "parser.yy"
    6218     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    6219     break;
    6220 
    6221   case 218:
     6171    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
     6172    break;
     6173
     6174  case 219:
    62226175
    62236176/* Line 1806 of yacc.c  */
    62246177#line 915 "parser.yy"
    6225     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    6226     break;
    6227 
    6228   case 219:
    6229 
    6230 /* Line 1806 of yacc.c  */
    6231 #line 917 "parser.yy"
    62326178    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    62336179    break;
     
    62366182
    62376183/* Line 1806 of yacc.c  */
     6184#line 920 "parser.yy"
     6185    { (yyval.flag) = false; }
     6186    break;
     6187
     6188  case 221:
     6189
     6190/* Line 1806 of yacc.c  */
    62386191#line 922 "parser.yy"
    6239     { (yyval.flag) = false; }
    6240     break;
    6241 
    6242   case 221:
    6243 
    6244 /* Line 1806 of yacc.c  */
    6245 #line 924 "parser.yy"
    62466192    { (yyval.flag) = true; }
    62476193    break;
     
    62506196
    62516197/* Line 1806 of yacc.c  */
    6252 #line 929 "parser.yy"
     6198#line 927 "parser.yy"
    62536199    { (yyval.en) = 0; }
    62546200    break;
     
    62576203
    62586204/* Line 1806 of yacc.c  */
    6259 #line 936 "parser.yy"
     6205#line 934 "parser.yy"
    62606206    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    62616207    break;
     
    62646210
    62656211/* Line 1806 of yacc.c  */
     6212#line 939 "parser.yy"
     6213    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
     6214    break;
     6215
     6216  case 227:
     6217
     6218/* Line 1806 of yacc.c  */
    62666219#line 941 "parser.yy"
    6267     { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    6268     break;
    6269 
    6270   case 227:
    6271 
    6272 /* Line 1806 of yacc.c  */
    6273 #line 943 "parser.yy"
    62746220    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    62756221    break;
     
    62786224
    62796225/* Line 1806 of yacc.c  */
     6226#line 946 "parser.yy"
     6227    { (yyval.constant) = 0; }
     6228    break;
     6229
     6230  case 229:
     6231
     6232/* Line 1806 of yacc.c  */
    62806233#line 948 "parser.yy"
    6281     { (yyval.constant) = 0; }
    6282     break;
    6283 
    6284   case 229:
     6234    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
     6235    break;
     6236
     6237  case 230:
    62856238
    62866239/* Line 1806 of yacc.c  */
    62876240#line 950 "parser.yy"
    6288     { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    6289     break;
    6290 
    6291   case 230:
    6292 
    6293 /* Line 1806 of yacc.c  */
    6294 #line 952 "parser.yy"
    62956241    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    62966242    break;
     
    62996245
    63006246/* Line 1806 of yacc.c  */
     6247#line 955 "parser.yy"
     6248    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
     6249    break;
     6250
     6251  case 232:
     6252
     6253/* Line 1806 of yacc.c  */
    63016254#line 957 "parser.yy"
    6302     { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    6303     break;
    6304 
    6305   case 232:
    6306 
    6307 /* Line 1806 of yacc.c  */
    6308 #line 959 "parser.yy"
    63096255    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    63106256    break;
     
    63136259
    63146260/* Line 1806 of yacc.c  */
    6315 #line 966 "parser.yy"
     6261#line 964 "parser.yy"
    63166262    { (yyval.decl) = 0; }
    63176263    break;
     
    63206266
    63216267/* Line 1806 of yacc.c  */
    6322 #line 973 "parser.yy"
     6268#line 971 "parser.yy"
    63236269    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63246270    break;
     
    63276273
    63286274/* Line 1806 of yacc.c  */
    6329 #line 978 "parser.yy"
     6275#line 976 "parser.yy"
    63306276    { (yyval.decl) = 0; }
    63316277    break;
     
    63346280
    63356281/* Line 1806 of yacc.c  */
    6336 #line 985 "parser.yy"
     6282#line 983 "parser.yy"
    63376283    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63386284    break;
     
    63416287
    63426288/* Line 1806 of yacc.c  */
    6343 #line 999 "parser.yy"
     6289#line 997 "parser.yy"
    63446290    {}
    63456291    break;
     
    63486294
    63496295/* Line 1806 of yacc.c  */
    6350 #line 1000 "parser.yy"
     6296#line 998 "parser.yy"
    63516297    {}
    63526298    break;
     
    63556301
    63566302/* Line 1806 of yacc.c  */
    6357 #line 1029 "parser.yy"
     6303#line 1027 "parser.yy"
    63586304    {
    63596305                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6360                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
     6306                        (yyval.decl) = (yyvsp[(1) - (2)].decl);
    63616307                }
    63626308    break;
     
    63656311
    63666312/* Line 1806 of yacc.c  */
    6367 #line 1036 "parser.yy"
     6313#line 1034 "parser.yy"
    63686314    {
    63696315                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6370                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
     6316                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) );
    63716317                }
    63726318    break;
     
    63756321
    63766322/* Line 1806 of yacc.c  */
    6377 #line 1041 "parser.yy"
     6323#line 1039 "parser.yy"
    63786324    {
    63796325                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
    6380                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
     6326                        (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) ) );
    63816327                }
    63826328    break;
     
    63856331
    63866332/* Line 1806 of yacc.c  */
    6387 #line 1051 "parser.yy"
     6333#line 1049 "parser.yy"
    63886334    {
    63896335                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63956341
    63966342/* Line 1806 of yacc.c  */
    6397 #line 1056 "parser.yy"
     6343#line 1054 "parser.yy"
    63986344    {
    63996345                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    64056351
    64066352/* Line 1806 of yacc.c  */
    6407 #line 1061 "parser.yy"
     6353#line 1059 "parser.yy"
    64086354    {
    64096355                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    64156361
    64166362/* Line 1806 of yacc.c  */
    6417 #line 1069 "parser.yy"
     6363#line 1067 "parser.yy"
    64186364    {
    64196365                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64256371
    64266372/* Line 1806 of yacc.c  */
    6427 #line 1074 "parser.yy"
     6373#line 1072 "parser.yy"
    64286374    {
    64296375                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64356381
    64366382/* Line 1806 of yacc.c  */
    6437 #line 1079 "parser.yy"
     6383#line 1077 "parser.yy"
    64386384    {
    64396385                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64456391
    64466392/* Line 1806 of yacc.c  */
    6447 #line 1084 "parser.yy"
     6393#line 1082 "parser.yy"
    64486394    {
    64496395                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64556401
    64566402/* Line 1806 of yacc.c  */
    6457 #line 1089 "parser.yy"
     6403#line 1087 "parser.yy"
    64586404    {
    64596405                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64656411
    64666412/* Line 1806 of yacc.c  */
    6467 #line 1097 "parser.yy"
     6413#line 1095 "parser.yy"
    64686414    {
    64696415                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64746420
    64756421/* Line 1806 of yacc.c  */
    6476 #line 1120 "parser.yy"
     6422#line 1118 "parser.yy"
    64776423    {
    64786424                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64836429
    64846430/* Line 1806 of yacc.c  */
    6485 #line 1124 "parser.yy"
     6431#line 1122 "parser.yy"
    64866432    {
    64876433                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64926438
    64936439/* Line 1806 of yacc.c  */
    6494 #line 1131 "parser.yy"
     6440#line 1129 "parser.yy"
    64956441    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64966442    break;
     
    64996445
    65006446/* Line 1806 of yacc.c  */
    6501 #line 1135 "parser.yy"
     6447#line 1133 "parser.yy"
    65026448    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    65036449    break;
     
    65066452
    65076453/* Line 1806 of yacc.c  */
    6508 #line 1140 "parser.yy"
     6454#line 1138 "parser.yy"
    65096455    {
    65106456                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65166462
    65176463/* Line 1806 of yacc.c  */
    6518 #line 1145 "parser.yy"
     6464#line 1143 "parser.yy"
    65196465    {
    65206466                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65266472
    65276473/* Line 1806 of yacc.c  */
    6528 #line 1150 "parser.yy"
     6474#line 1148 "parser.yy"
    65296475    {
    65306476                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    65366482
    65376483/* Line 1806 of yacc.c  */
    6538 #line 1161 "parser.yy"
     6484#line 1159 "parser.yy"
    65396485    {
    65406486                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65466492
    65476493/* Line 1806 of yacc.c  */
    6548 #line 1166 "parser.yy"
     6494#line 1164 "parser.yy"
    65496495    {
    65506496                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65566502
    65576503/* Line 1806 of yacc.c  */
    6558 #line 1171 "parser.yy"
     6504#line 1169 "parser.yy"
    65596505    {
    65606506                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65666512
    65676513/* Line 1806 of yacc.c  */
    6568 #line 1176 "parser.yy"
     6514#line 1174 "parser.yy"
    65696515    {
    65706516                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65766522
    65776523/* Line 1806 of yacc.c  */
    6578 #line 1181 "parser.yy"
     6524#line 1179 "parser.yy"
    65796525    {
    65806526                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65866532
    65876533/* Line 1806 of yacc.c  */
    6588 #line 1190 "parser.yy"
     6534#line 1188 "parser.yy"
    65896535    {
    65906536                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65966542
    65976543/* Line 1806 of yacc.c  */
    6598 #line 1195 "parser.yy"
     6544#line 1193 "parser.yy"
    65996545    {
    66006546                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    66066552
    66076553/* Line 1806 of yacc.c  */
    6608 #line 1212 "parser.yy"
     6554#line 1210 "parser.yy"
    66096555    {
    66106556                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66166562
    66176563/* Line 1806 of yacc.c  */
    6618 #line 1217 "parser.yy"
     6564#line 1215 "parser.yy"
    66196565    {
    66206566                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66266572
    66276573/* Line 1806 of yacc.c  */
    6628 #line 1239 "parser.yy"
     6574#line 1237 "parser.yy"
    66296575    { (yyval.decl) = 0; }
    66306576    break;
     
    66336579
    66346580/* Line 1806 of yacc.c  */
    6635 #line 1251 "parser.yy"
     6581#line 1249 "parser.yy"
    66366582    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66376583    break;
     
    66406586
    66416587/* Line 1806 of yacc.c  */
     6588#line 1260 "parser.yy"
     6589    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6590    break;
     6591
     6592  case 301:
     6593
     6594/* Line 1806 of yacc.c  */
    66426595#line 1262 "parser.yy"
    6643     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    6644     break;
    6645 
    6646   case 301:
     6596    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6597    break;
     6598
     6599  case 302:
    66476600
    66486601/* Line 1806 of yacc.c  */
    66496602#line 1264 "parser.yy"
    6650     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    6651     break;
    6652 
    6653   case 302:
     6603    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6604    break;
     6605
     6606  case 303:
    66546607
    66556608/* Line 1806 of yacc.c  */
    66566609#line 1266 "parser.yy"
    6657     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6658     break;
    6659 
    6660   case 303:
     6610    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6611    break;
     6612
     6613  case 304:
    66616614
    66626615/* Line 1806 of yacc.c  */
    66636616#line 1268 "parser.yy"
    6664     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6665     break;
    6666 
    6667   case 304:
     6617    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     6618    break;
     6619
     6620  case 305:
    66686621
    66696622/* Line 1806 of yacc.c  */
    66706623#line 1270 "parser.yy"
    6671     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6672     break;
    6673 
    6674   case 305:
    6675 
    6676 /* Line 1806 of yacc.c  */
    6677 #line 1272 "parser.yy"
    66786624    {
    66796625                        typedefTable.enterScope();
     
    66846630
    66856631/* Line 1806 of yacc.c  */
    6686 #line 1276 "parser.yy"
     6632#line 1274 "parser.yy"
    66876633    {
    66886634                        typedefTable.leaveScope();
     
    66946640
    66956641/* Line 1806 of yacc.c  */
     6642#line 1283 "parser.yy"
     6643    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6644    break;
     6645
     6646  case 309:
     6647
     6648/* Line 1806 of yacc.c  */
    66966649#line 1285 "parser.yy"
     6650    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6651    break;
     6652
     6653  case 311:
     6654
     6655/* Line 1806 of yacc.c  */
     6656#line 1296 "parser.yy"
    66976657    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66986658    break;
    66996659
    6700   case 309:
    6701 
    6702 /* Line 1806 of yacc.c  */
    6703 #line 1287 "parser.yy"
     6660  case 313:
     6661
     6662/* Line 1806 of yacc.c  */
     6663#line 1305 "parser.yy"
     6664    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6665    break;
     6666
     6667  case 314:
     6668
     6669/* Line 1806 of yacc.c  */
     6670#line 1307 "parser.yy"
     6671    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6672    break;
     6673
     6674  case 315:
     6675
     6676/* Line 1806 of yacc.c  */
     6677#line 1309 "parser.yy"
     6678    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6679    break;
     6680
     6681  case 316:
     6682
     6683/* Line 1806 of yacc.c  */
     6684#line 1311 "parser.yy"
     6685    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6686    break;
     6687
     6688  case 317:
     6689
     6690/* Line 1806 of yacc.c  */
     6691#line 1313 "parser.yy"
     6692    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     6693    break;
     6694
     6695  case 318:
     6696
     6697/* Line 1806 of yacc.c  */
     6698#line 1315 "parser.yy"
     6699    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6700    break;
     6701
     6702  case 319:
     6703
     6704/* Line 1806 of yacc.c  */
     6705#line 1317 "parser.yy"
     6706    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6707    break;
     6708
     6709  case 320:
     6710
     6711/* Line 1806 of yacc.c  */
     6712#line 1319 "parser.yy"
     6713    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6714    break;
     6715
     6716  case 321:
     6717
     6718/* Line 1806 of yacc.c  */
     6719#line 1324 "parser.yy"
     6720    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6721    break;
     6722
     6723  case 322:
     6724
     6725/* Line 1806 of yacc.c  */
     6726#line 1326 "parser.yy"
     6727    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6728    break;
     6729
     6730  case 323:
     6731
     6732/* Line 1806 of yacc.c  */
     6733#line 1328 "parser.yy"
     6734    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6735    break;
     6736
     6737  case 324:
     6738
     6739/* Line 1806 of yacc.c  */
     6740#line 1330 "parser.yy"
     6741    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6742    break;
     6743
     6744  case 325:
     6745
     6746/* Line 1806 of yacc.c  */
     6747#line 1332 "parser.yy"
     6748    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6749    break;
     6750
     6751  case 326:
     6752
     6753/* Line 1806 of yacc.c  */
     6754#line 1334 "parser.yy"
     6755    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6756    break;
     6757
     6758  case 327:
     6759
     6760/* Line 1806 of yacc.c  */
     6761#line 1336 "parser.yy"
     6762    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6763    break;
     6764
     6765  case 328:
     6766
     6767/* Line 1806 of yacc.c  */
     6768#line 1338 "parser.yy"
     6769    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6770    break;
     6771
     6772  case 329:
     6773
     6774/* Line 1806 of yacc.c  */
     6775#line 1340 "parser.yy"
     6776    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6777    break;
     6778
     6779  case 330:
     6780
     6781/* Line 1806 of yacc.c  */
     6782#line 1342 "parser.yy"
     6783    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6784    break;
     6785
     6786  case 331:
     6787
     6788/* Line 1806 of yacc.c  */
     6789#line 1344 "parser.yy"
     6790    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6791    break;
     6792
     6793  case 332:
     6794
     6795/* Line 1806 of yacc.c  */
     6796#line 1346 "parser.yy"
     6797    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6798    break;
     6799
     6800  case 334:
     6801
     6802/* Line 1806 of yacc.c  */
     6803#line 1353 "parser.yy"
     6804    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6805    break;
     6806
     6807  case 335:
     6808
     6809/* Line 1806 of yacc.c  */
     6810#line 1355 "parser.yy"
     6811    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6812    break;
     6813
     6814  case 336:
     6815
     6816/* Line 1806 of yacc.c  */
     6817#line 1357 "parser.yy"
    67046818    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67056819    break;
    67066820
    6707   case 311:
    6708 
    6709 /* Line 1806 of yacc.c  */
    6710 #line 1298 "parser.yy"
     6821  case 337:
     6822
     6823/* Line 1806 of yacc.c  */
     6824#line 1359 "parser.yy"
     6825    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6826    break;
     6827
     6828  case 339:
     6829
     6830/* Line 1806 of yacc.c  */
     6831#line 1365 "parser.yy"
     6832    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6833    break;
     6834
     6835  case 341:
     6836
     6837/* Line 1806 of yacc.c  */
     6838#line 1372 "parser.yy"
     6839    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6840    break;
     6841
     6842  case 342:
     6843
     6844/* Line 1806 of yacc.c  */
     6845#line 1374 "parser.yy"
    67116846    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67126847    break;
    67136848
    6714   case 313:
    6715 
    6716 /* Line 1806 of yacc.c  */
    6717 #line 1307 "parser.yy"
    6718     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6719     break;
    6720 
    6721   case 314:
    6722 
    6723 /* Line 1806 of yacc.c  */
    6724 #line 1309 "parser.yy"
    6725     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6726     break;
    6727 
    6728   case 315:
    6729 
    6730 /* Line 1806 of yacc.c  */
    6731 #line 1311 "parser.yy"
    6732     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6733     break;
    6734 
    6735   case 316:
    6736 
    6737 /* Line 1806 of yacc.c  */
    6738 #line 1313 "parser.yy"
    6739     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6740     break;
    6741 
    6742   case 317:
    6743 
    6744 /* Line 1806 of yacc.c  */
    6745 #line 1315 "parser.yy"
    6746     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    6747     break;
    6748 
    6749   case 318:
    6750 
    6751 /* Line 1806 of yacc.c  */
    6752 #line 1317 "parser.yy"
    6753     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6754     break;
    6755 
    6756   case 319:
    6757 
    6758 /* Line 1806 of yacc.c  */
    6759 #line 1319 "parser.yy"
    6760     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    6761     break;
    6762 
    6763   case 320:
    6764 
    6765 /* Line 1806 of yacc.c  */
    6766 #line 1321 "parser.yy"
    6767     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6768     break;
    6769 
    6770   case 321:
    6771 
    6772 /* Line 1806 of yacc.c  */
    6773 #line 1326 "parser.yy"
    6774     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6775     break;
    6776 
    6777   case 322:
    6778 
    6779 /* Line 1806 of yacc.c  */
    6780 #line 1328 "parser.yy"
    6781     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6782     break;
    6783 
    6784   case 323:
    6785 
    6786 /* Line 1806 of yacc.c  */
    6787 #line 1330 "parser.yy"
    6788     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6789     break;
    6790 
    6791   case 324:
    6792 
    6793 /* Line 1806 of yacc.c  */
    6794 #line 1332 "parser.yy"
    6795     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6796     break;
    6797 
    6798   case 325:
    6799 
    6800 /* Line 1806 of yacc.c  */
    6801 #line 1334 "parser.yy"
    6802     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6803     break;
    6804 
    6805   case 326:
    6806 
    6807 /* Line 1806 of yacc.c  */
    6808 #line 1336 "parser.yy"
    6809     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6810     break;
    6811 
    6812   case 327:
    6813 
    6814 /* Line 1806 of yacc.c  */
    6815 #line 1338 "parser.yy"
    6816     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6817     break;
    6818 
    6819   case 328:
    6820 
    6821 /* Line 1806 of yacc.c  */
    6822 #line 1340 "parser.yy"
    6823     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6824     break;
    6825 
    6826   case 329:
    6827 
    6828 /* Line 1806 of yacc.c  */
    6829 #line 1342 "parser.yy"
    6830     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6831     break;
    6832 
    6833   case 330:
    6834 
    6835 /* Line 1806 of yacc.c  */
    6836 #line 1344 "parser.yy"
    6837     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6838     break;
    6839 
    6840   case 331:
    6841 
    6842 /* Line 1806 of yacc.c  */
    6843 #line 1346 "parser.yy"
    6844     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    6845     break;
    6846 
    6847   case 332:
    6848 
    6849 /* Line 1806 of yacc.c  */
    6850 #line 1348 "parser.yy"
    6851     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6852     break;
    6853 
    6854   case 333:
    6855 
    6856 /* Line 1806 of yacc.c  */
    6857 #line 1350 "parser.yy"
    6858     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6859     break;
    6860 
    6861   case 335:
    6862 
    6863 /* Line 1806 of yacc.c  */
    6864 #line 1357 "parser.yy"
     6849  case 343:
     6850
     6851/* Line 1806 of yacc.c  */
     6852#line 1376 "parser.yy"
     6853    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6854    break;
     6855
     6856  case 344:
     6857
     6858/* Line 1806 of yacc.c  */
     6859#line 1381 "parser.yy"
     6860    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6861    break;
     6862
     6863  case 345:
     6864
     6865/* Line 1806 of yacc.c  */
     6866#line 1383 "parser.yy"
     6867    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6868    break;
     6869
     6870  case 346:
     6871
     6872/* Line 1806 of yacc.c  */
     6873#line 1385 "parser.yy"
     6874    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6875    break;
     6876
     6877  case 347:
     6878
     6879/* Line 1806 of yacc.c  */
     6880#line 1387 "parser.yy"
     6881    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6882    break;
     6883
     6884  case 349:
     6885
     6886/* Line 1806 of yacc.c  */
     6887#line 1393 "parser.yy"
    68656888    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68666889    break;
    68676890
    6868   case 336:
    6869 
    6870 /* Line 1806 of yacc.c  */
    6871 #line 1359 "parser.yy"
     6891  case 350:
     6892
     6893/* Line 1806 of yacc.c  */
     6894#line 1395 "parser.yy"
    68726895    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68736896    break;
    68746897
    6875   case 337:
    6876 
    6877 /* Line 1806 of yacc.c  */
    6878 #line 1361 "parser.yy"
     6898  case 351:
     6899
     6900/* Line 1806 of yacc.c  */
     6901#line 1397 "parser.yy"
    68796902    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68806903    break;
    68816904
    6882   case 338:
    6883 
    6884 /* Line 1806 of yacc.c  */
    6885 #line 1363 "parser.yy"
    6886     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6887     break;
    6888 
    6889   case 340:
    6890 
    6891 /* Line 1806 of yacc.c  */
    6892 #line 1369 "parser.yy"
    6893     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6894     break;
    6895 
    6896   case 342:
    6897 
    6898 /* Line 1806 of yacc.c  */
    6899 #line 1376 "parser.yy"
     6905  case 353:
     6906
     6907/* Line 1806 of yacc.c  */
     6908#line 1403 "parser.yy"
    69006909    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69016910    break;
    69026911
    6903   case 343:
    6904 
    6905 /* Line 1806 of yacc.c  */
    6906 #line 1378 "parser.yy"
     6912  case 354:
     6913
     6914/* Line 1806 of yacc.c  */
     6915#line 1405 "parser.yy"
    69076916    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69086917    break;
    69096918
    6910   case 344:
    6911 
    6912 /* Line 1806 of yacc.c  */
    6913 #line 1380 "parser.yy"
    6914     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6915     break;
    6916 
    6917   case 345:
    6918 
    6919 /* Line 1806 of yacc.c  */
    6920 #line 1385 "parser.yy"
    6921     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6922     break;
    6923 
    6924   case 346:
    6925 
    6926 /* Line 1806 of yacc.c  */
    6927 #line 1387 "parser.yy"
    6928     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6929     break;
    6930 
    6931   case 347:
    6932 
    6933 /* Line 1806 of yacc.c  */
    6934 #line 1389 "parser.yy"
    6935     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6936     break;
    6937 
    6938   case 348:
    6939 
    6940 /* Line 1806 of yacc.c  */
    6941 #line 1391 "parser.yy"
    6942     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6943     break;
    6944 
    6945   case 350:
    6946 
    6947 /* Line 1806 of yacc.c  */
    6948 #line 1397 "parser.yy"
     6919  case 356:
     6920
     6921/* Line 1806 of yacc.c  */
     6922#line 1411 "parser.yy"
    69496923    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69506924    break;
    69516925
    6952   case 351:
    6953 
    6954 /* Line 1806 of yacc.c  */
    6955 #line 1399 "parser.yy"
     6926  case 357:
     6927
     6928/* Line 1806 of yacc.c  */
     6929#line 1413 "parser.yy"
    69566930    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69576931    break;
    69586932
    6959   case 352:
    6960 
    6961 /* Line 1806 of yacc.c  */
    6962 #line 1401 "parser.yy"
     6933  case 358:
     6934
     6935/* Line 1806 of yacc.c  */
     6936#line 1415 "parser.yy"
    69636937    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69646938    break;
    69656939
    6966   case 354:
    6967 
    6968 /* Line 1806 of yacc.c  */
    6969 #line 1407 "parser.yy"
     6940  case 359:
     6941
     6942/* Line 1806 of yacc.c  */
     6943#line 1420 "parser.yy"
     6944    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6945    break;
     6946
     6947  case 360:
     6948
     6949/* Line 1806 of yacc.c  */
     6950#line 1422 "parser.yy"
     6951    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6952    break;
     6953
     6954  case 361:
     6955
     6956/* Line 1806 of yacc.c  */
     6957#line 1424 "parser.yy"
     6958    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6959    break;
     6960
     6961  case 364:
     6962
     6963/* Line 1806 of yacc.c  */
     6964#line 1434 "parser.yy"
     6965    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
     6966    break;
     6967
     6968  case 365:
     6969
     6970/* Line 1806 of yacc.c  */
     6971#line 1436 "parser.yy"
     6972    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
     6973    break;
     6974
     6975  case 366:
     6976
     6977/* Line 1806 of yacc.c  */
     6978#line 1438 "parser.yy"
     6979    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
     6980    break;
     6981
     6982  case 367:
     6983
     6984/* Line 1806 of yacc.c  */
     6985#line 1440 "parser.yy"
     6986    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
     6987    break;
     6988
     6989  case 368:
     6990
     6991/* Line 1806 of yacc.c  */
     6992#line 1442 "parser.yy"
     6993    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6994    break;
     6995
     6996  case 369:
     6997
     6998/* Line 1806 of yacc.c  */
     6999#line 1447 "parser.yy"
     7000    { (yyval.aggKey) = DeclarationNode::Struct; }
     7001    break;
     7002
     7003  case 370:
     7004
     7005/* Line 1806 of yacc.c  */
     7006#line 1449 "parser.yy"
     7007    { (yyval.aggKey) = DeclarationNode::Union; }
     7008    break;
     7009
     7010  case 371:
     7011
     7012/* Line 1806 of yacc.c  */
     7013#line 1454 "parser.yy"
     7014    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
     7015    break;
     7016
     7017  case 372:
     7018
     7019/* Line 1806 of yacc.c  */
     7020#line 1456 "parser.yy"
     7021    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
     7022    break;
     7023
     7024  case 374:
     7025
     7026/* Line 1806 of yacc.c  */
     7027#line 1462 "parser.yy"
     7028    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7029    break;
     7030
     7031  case 376:
     7032
     7033/* Line 1806 of yacc.c  */
     7034#line 1465 "parser.yy"
     7035    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7036    break;
     7037
     7038  case 378:
     7039
     7040/* Line 1806 of yacc.c  */
     7041#line 1471 "parser.yy"
     7042    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7043    break;
     7044
     7045  case 379:
     7046
     7047/* Line 1806 of yacc.c  */
     7048#line 1473 "parser.yy"
     7049    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7050    break;
     7051
     7052  case 380:
     7053
     7054/* Line 1806 of yacc.c  */
     7055#line 1475 "parser.yy"
     7056    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7057    break;
     7058
     7059  case 381:
     7060
     7061/* Line 1806 of yacc.c  */
     7062#line 1480 "parser.yy"
     7063    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7064    break;
     7065
     7066  case 382:
     7067
     7068/* Line 1806 of yacc.c  */
     7069#line 1482 "parser.yy"
     7070    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7071    break;
     7072
     7073  case 383:
     7074
     7075/* Line 1806 of yacc.c  */
     7076#line 1487 "parser.yy"
     7077    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7078    break;
     7079
     7080  case 384:
     7081
     7082/* Line 1806 of yacc.c  */
     7083#line 1489 "parser.yy"
     7084    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7085    break;
     7086
     7087  case 385:
     7088
     7089/* Line 1806 of yacc.c  */
     7090#line 1492 "parser.yy"
     7091    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7092    break;
     7093
     7094  case 386:
     7095
     7096/* Line 1806 of yacc.c  */
     7097#line 1495 "parser.yy"
     7098    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7099    break;
     7100
     7101  case 388:
     7102
     7103/* Line 1806 of yacc.c  */
     7104#line 1501 "parser.yy"
     7105    { (yyval.en) = 0; }
     7106    break;
     7107
     7108  case 389:
     7109
     7110/* Line 1806 of yacc.c  */
     7111#line 1503 "parser.yy"
     7112    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     7113    break;
     7114
     7115  case 390:
     7116
     7117/* Line 1806 of yacc.c  */
     7118#line 1508 "parser.yy"
     7119    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7120    break;
     7121
     7122  case 392:
     7123
     7124/* Line 1806 of yacc.c  */
     7125#line 1517 "parser.yy"
     7126    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
     7127    break;
     7128
     7129  case 393:
     7130
     7131/* Line 1806 of yacc.c  */
     7132#line 1519 "parser.yy"
     7133    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
     7134    break;
     7135
     7136  case 394:
     7137
     7138/* Line 1806 of yacc.c  */
     7139#line 1521 "parser.yy"
     7140    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
     7141    break;
     7142
     7143  case 395:
     7144
     7145/* Line 1806 of yacc.c  */
     7146#line 1526 "parser.yy"
     7147    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7148    break;
     7149
     7150  case 396:
     7151
     7152/* Line 1806 of yacc.c  */
     7153#line 1528 "parser.yy"
     7154    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7155    break;
     7156
     7157  case 397:
     7158
     7159/* Line 1806 of yacc.c  */
     7160#line 1533 "parser.yy"
     7161    { (yyval.en) = 0; }
     7162    break;
     7163
     7164  case 398:
     7165
     7166/* Line 1806 of yacc.c  */
     7167#line 1535 "parser.yy"
     7168    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7169    break;
     7170
     7171  case 399:
     7172
     7173/* Line 1806 of yacc.c  */
     7174#line 1542 "parser.yy"
     7175    { (yyval.decl) = 0; }
     7176    break;
     7177
     7178  case 403:
     7179
     7180/* Line 1806 of yacc.c  */
     7181#line 1550 "parser.yy"
     7182    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7183    break;
     7184
     7185  case 404:
     7186
     7187/* Line 1806 of yacc.c  */
     7188#line 1552 "parser.yy"
     7189    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7190    break;
     7191
     7192  case 405:
     7193
     7194/* Line 1806 of yacc.c  */
     7195#line 1554 "parser.yy"
     7196    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7197    break;
     7198
     7199  case 407:
     7200
     7201/* Line 1806 of yacc.c  */
     7202#line 1562 "parser.yy"
     7203    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7204    break;
     7205
     7206  case 408:
     7207
     7208/* Line 1806 of yacc.c  */
     7209#line 1564 "parser.yy"
     7210    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7211    break;
     7212
     7213  case 409:
     7214
     7215/* Line 1806 of yacc.c  */
     7216#line 1566 "parser.yy"
     7217    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7218    break;
     7219
     7220  case 411:
     7221
     7222/* Line 1806 of yacc.c  */
     7223#line 1572 "parser.yy"
     7224    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7225    break;
     7226
     7227  case 412:
     7228
     7229/* Line 1806 of yacc.c  */
     7230#line 1577 "parser.yy"
     7231    { (yyval.decl) = 0; }
     7232    break;
     7233
     7234  case 415:
     7235
     7236/* Line 1806 of yacc.c  */
     7237#line 1584 "parser.yy"
     7238    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7239    break;
     7240
     7241  case 418:
     7242
     7243/* Line 1806 of yacc.c  */
     7244#line 1591 "parser.yy"
     7245    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7246    break;
     7247
     7248  case 419:
     7249
     7250/* Line 1806 of yacc.c  */
     7251#line 1593 "parser.yy"
     7252    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7253    break;
     7254
     7255  case 421:
     7256
     7257/* Line 1806 of yacc.c  */
     7258#line 1602 "parser.yy"
     7259    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7260    break;
     7261
     7262  case 422:
     7263
     7264/* Line 1806 of yacc.c  */
     7265#line 1605 "parser.yy"
     7266    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7267    break;
     7268
     7269  case 423:
     7270
     7271/* Line 1806 of yacc.c  */
     7272#line 1607 "parser.yy"
     7273    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     7274    break;
     7275
     7276  case 428:
     7277
     7278/* Line 1806 of yacc.c  */
     7279#line 1617 "parser.yy"
    69707280    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69717281    break;
    69727282
    6973   case 355:
    6974 
    6975 /* Line 1806 of yacc.c  */
    6976 #line 1409 "parser.yy"
    6977     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6978     break;
    6979 
    6980   case 357:
    6981 
    6982 /* Line 1806 of yacc.c  */
    6983 #line 1415 "parser.yy"
    6984     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6985     break;
    6986 
    6987   case 358:
    6988 
    6989 /* Line 1806 of yacc.c  */
    6990 #line 1417 "parser.yy"
    6991     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6992     break;
    6993 
    6994   case 359:
    6995 
    6996 /* Line 1806 of yacc.c  */
    6997 #line 1419 "parser.yy"
    6998     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6999     break;
    7000 
    7001   case 360:
    7002 
    7003 /* Line 1806 of yacc.c  */
    7004 #line 1424 "parser.yy"
    7005     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    7006     break;
    7007 
    7008   case 361:
    7009 
    7010 /* Line 1806 of yacc.c  */
    7011 #line 1426 "parser.yy"
    7012     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7013     break;
    7014 
    7015   case 362:
    7016 
    7017 /* Line 1806 of yacc.c  */
    7018 #line 1428 "parser.yy"
    7019     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7020     break;
    7021 
    7022   case 365:
    7023 
    7024 /* Line 1806 of yacc.c  */
    7025 #line 1438 "parser.yy"
    7026     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    7027     break;
    7028 
    7029   case 366:
    7030 
    7031 /* Line 1806 of yacc.c  */
    7032 #line 1440 "parser.yy"
    7033     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    7034     break;
    7035 
    7036   case 367:
    7037 
    7038 /* Line 1806 of yacc.c  */
    7039 #line 1442 "parser.yy"
    7040     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    7041     break;
    7042 
    7043   case 368:
    7044 
    7045 /* Line 1806 of yacc.c  */
    7046 #line 1444 "parser.yy"
    7047     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    7048     break;
    7049 
    7050   case 369:
    7051 
    7052 /* Line 1806 of yacc.c  */
    7053 #line 1446 "parser.yy"
    7054     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7055     break;
    7056 
    7057   case 370:
    7058 
    7059 /* Line 1806 of yacc.c  */
    7060 #line 1451 "parser.yy"
    7061     { (yyval.aggKey) = DeclarationNode::Struct; }
    7062     break;
    7063 
    7064   case 371:
    7065 
    7066 /* Line 1806 of yacc.c  */
    7067 #line 1453 "parser.yy"
    7068     { (yyval.aggKey) = DeclarationNode::Union; }
    7069     break;
    7070 
    7071   case 372:
    7072 
    7073 /* Line 1806 of yacc.c  */
    7074 #line 1458 "parser.yy"
    7075     { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    7076     break;
    7077 
    7078   case 373:
    7079 
    7080 /* Line 1806 of yacc.c  */
    7081 #line 1460 "parser.yy"
    7082     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    7083     break;
    7084 
    7085   case 375:
    7086 
    7087 /* Line 1806 of yacc.c  */
    7088 #line 1466 "parser.yy"
    7089     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    7090     break;
    7091 
    7092   case 377:
    7093 
    7094 /* Line 1806 of yacc.c  */
    7095 #line 1469 "parser.yy"
    7096     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    7097     break;
    7098 
    7099   case 379:
    7100 
    7101 /* Line 1806 of yacc.c  */
    7102 #line 1475 "parser.yy"
    7103     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    7104     break;
    7105 
    7106   case 380:
    7107 
    7108 /* Line 1806 of yacc.c  */
    7109 #line 1477 "parser.yy"
    7110     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    7111     break;
    7112 
    7113   case 381:
    7114 
    7115 /* Line 1806 of yacc.c  */
    7116 #line 1479 "parser.yy"
    7117     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    7118     break;
    7119 
    7120   case 382:
    7121 
    7122 /* Line 1806 of yacc.c  */
    7123 #line 1484 "parser.yy"
    7124     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7125     break;
    7126 
    7127   case 383:
    7128 
    7129 /* Line 1806 of yacc.c  */
    7130 #line 1486 "parser.yy"
    7131     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    7132     break;
    7133 
    7134   case 384:
    7135 
    7136 /* Line 1806 of yacc.c  */
    7137 #line 1491 "parser.yy"
    7138     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    7139     break;
    7140 
    7141   case 385:
    7142 
    7143 /* Line 1806 of yacc.c  */
    7144 #line 1493 "parser.yy"
    7145     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    7146     break;
    7147 
    7148   case 386:
    7149 
    7150 /* Line 1806 of yacc.c  */
    7151 #line 1496 "parser.yy"
    7152     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    7153     break;
    7154 
    7155   case 387:
    7156 
    7157 /* Line 1806 of yacc.c  */
    7158 #line 1499 "parser.yy"
    7159     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    7160     break;
    7161 
    7162   case 389:
    7163 
    7164 /* Line 1806 of yacc.c  */
    7165 #line 1505 "parser.yy"
    7166     { (yyval.en) = 0; }
    7167     break;
    7168 
    7169   case 390:
    7170 
    7171 /* Line 1806 of yacc.c  */
    7172 #line 1507 "parser.yy"
    7173     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7174     break;
    7175 
    7176   case 391:
    7177 
    7178 /* Line 1806 of yacc.c  */
    7179 #line 1512 "parser.yy"
    7180     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7181     break;
    7182 
    7183   case 393:
    7184 
    7185 /* Line 1806 of yacc.c  */
    7186 #line 1521 "parser.yy"
    7187     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    7188     break;
    7189 
    7190   case 394:
    7191 
    7192 /* Line 1806 of yacc.c  */
    7193 #line 1523 "parser.yy"
    7194     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    7195     break;
    7196 
    7197   case 395:
    7198 
    7199 /* Line 1806 of yacc.c  */
    7200 #line 1525 "parser.yy"
    7201     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    7202     break;
    7203 
    7204   case 396:
    7205 
    7206 /* Line 1806 of yacc.c  */
    7207 #line 1530 "parser.yy"
    7208     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    7209     break;
    7210 
    7211   case 397:
    7212 
    7213 /* Line 1806 of yacc.c  */
    7214 #line 1532 "parser.yy"
    7215     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    7216     break;
    7217 
    7218   case 398:
    7219 
    7220 /* Line 1806 of yacc.c  */
    7221 #line 1537 "parser.yy"
    7222     { (yyval.en) = 0; }
    7223     break;
    7224 
    7225   case 399:
    7226 
    7227 /* Line 1806 of yacc.c  */
    7228 #line 1539 "parser.yy"
    7229     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7230     break;
    7231 
    7232   case 400:
    7233 
    7234 /* Line 1806 of yacc.c  */
    7235 #line 1546 "parser.yy"
    7236     { (yyval.decl) = 0; }
    7237     break;
    7238 
    7239   case 404:
    7240 
    7241 /* Line 1806 of yacc.c  */
    7242 #line 1554 "parser.yy"
    7243     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7244     break;
    7245 
    7246   case 405:
    7247 
    7248 /* Line 1806 of yacc.c  */
    7249 #line 1556 "parser.yy"
    7250     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7251     break;
    7252 
    7253   case 406:
    7254 
    7255 /* Line 1806 of yacc.c  */
    7256 #line 1558 "parser.yy"
    7257     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7258     break;
    7259 
    7260   case 408:
    7261 
    7262 /* Line 1806 of yacc.c  */
    7263 #line 1566 "parser.yy"
    7264     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7265     break;
    7266 
    7267   case 409:
    7268 
    7269 /* Line 1806 of yacc.c  */
    7270 #line 1568 "parser.yy"
    7271     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7272     break;
    7273 
    7274   case 410:
    7275 
    7276 /* Line 1806 of yacc.c  */
    7277 #line 1570 "parser.yy"
    7278     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7279     break;
    7280 
    7281   case 412:
    7282 
    7283 /* Line 1806 of yacc.c  */
    7284 #line 1576 "parser.yy"
    7285     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7286     break;
    7287 
    7288   case 413:
    7289 
    7290 /* Line 1806 of yacc.c  */
    7291 #line 1581 "parser.yy"
    7292     { (yyval.decl) = 0; }
    7293     break;
    7294 
    7295   case 416:
    7296 
    7297 /* Line 1806 of yacc.c  */
    7298 #line 1588 "parser.yy"
    7299     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7300     break;
    7301 
    7302   case 419:
    7303 
    7304 /* Line 1806 of yacc.c  */
    7305 #line 1595 "parser.yy"
    7306     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7307     break;
    7308 
    7309   case 420:
    7310 
    7311 /* Line 1806 of yacc.c  */
    7312 #line 1597 "parser.yy"
    7313     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7314     break;
    7315 
    7316   case 422:
    7317 
    7318 /* Line 1806 of yacc.c  */
    7319 #line 1606 "parser.yy"
    7320     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7321     break;
    7322 
    7323   case 423:
    7324 
    7325 /* Line 1806 of yacc.c  */
    7326 #line 1609 "parser.yy"
    7327     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7328     break;
    7329 
    7330   case 424:
    7331 
    7332 /* Line 1806 of yacc.c  */
    7333 #line 1611 "parser.yy"
    7334     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    7335     break;
    7336 
    7337   case 429:
    7338 
    7339 /* Line 1806 of yacc.c  */
    7340 #line 1621 "parser.yy"
    7341     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7342     break;
    7343 
    7344   case 431:
    7345 
    7346 /* Line 1806 of yacc.c  */
    7347 #line 1627 "parser.yy"
     7283  case 430:
     7284
     7285/* Line 1806 of yacc.c  */
     7286#line 1623 "parser.yy"
    73487287    {
    73497288                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73527291    break;
    73537292
    7354   case 432:
    7355 
    7356 /* Line 1806 of yacc.c  */
    7357 #line 1632 "parser.yy"
     7293  case 431:
     7294
     7295/* Line 1806 of yacc.c  */
     7296#line 1628 "parser.yy"
    73587297    {
    73597298                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73627301    break;
    73637302
     7303  case 433:
     7304
     7305/* Line 1806 of yacc.c  */
     7306#line 1637 "parser.yy"
     7307    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7308    break;
     7309
    73647310  case 434:
    73657311
    73667312/* Line 1806 of yacc.c  */
    7367 #line 1641 "parser.yy"
     7313#line 1646 "parser.yy"
     7314    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7315    break;
     7316
     7317  case 435:
     7318
     7319/* Line 1806 of yacc.c  */
     7320#line 1648 "parser.yy"
     7321    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7322    break;
     7323
     7324  case 447:
     7325
     7326/* Line 1806 of yacc.c  */
     7327#line 1673 "parser.yy"
    73687328    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73697329    break;
    73707330
    7371   case 435:
    7372 
    7373 /* Line 1806 of yacc.c  */
    7374 #line 1650 "parser.yy"
    7375     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7376     break;
    7377 
    7378   case 436:
    7379 
    7380 /* Line 1806 of yacc.c  */
    7381 #line 1652 "parser.yy"
    7382     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    7383     break;
    7384 
    7385   case 448:
    7386 
    7387 /* Line 1806 of yacc.c  */
    7388 #line 1677 "parser.yy"
     7331  case 451:
     7332
     7333/* Line 1806 of yacc.c  */
     7334#line 1681 "parser.yy"
    73897335    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73907336    break;
     
    73937339
    73947340/* Line 1806 of yacc.c  */
    7395 #line 1685 "parser.yy"
    7396     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7341#line 1686 "parser.yy"
     7342    { (yyval.in) = 0; }
    73977343    break;
    73987344
     
    74007346
    74017347/* Line 1806 of yacc.c  */
     7348#line 1688 "parser.yy"
     7349    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7350    break;
     7351
     7352  case 454:
     7353
     7354/* Line 1806 of yacc.c  */
    74027355#line 1690 "parser.yy"
     7356    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7357    break;
     7358
     7359  case 455:
     7360
     7361/* Line 1806 of yacc.c  */
     7362#line 1694 "parser.yy"
     7363    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7364    break;
     7365
     7366  case 456:
     7367
     7368/* Line 1806 of yacc.c  */
     7369#line 1695 "parser.yy"
     7370    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7371    break;
     7372
     7373  case 457:
     7374
     7375/* Line 1806 of yacc.c  */
     7376#line 1700 "parser.yy"
    74037377    { (yyval.in) = 0; }
    74047378    break;
    74057379
    7406   case 454:
    7407 
    7408 /* Line 1806 of yacc.c  */
    7409 #line 1692 "parser.yy"
    7410     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7411     break;
    7412 
    7413   case 455:
    7414 
    7415 /* Line 1806 of yacc.c  */
    7416 #line 1694 "parser.yy"
    7417     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7418     break;
    7419 
    7420   case 456:
    7421 
    7422 /* Line 1806 of yacc.c  */
    7423 #line 1698 "parser.yy"
    7424     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7425     break;
    7426 
    7427   case 457:
    7428 
    7429 /* Line 1806 of yacc.c  */
    7430 #line 1699 "parser.yy"
    7431     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7432     break;
    7433 
    7434   case 458:
    7435 
    7436 /* Line 1806 of yacc.c  */
    7437 #line 1704 "parser.yy"
    7438     { (yyval.in) = 0; }
     7380  case 459:
     7381
     7382/* Line 1806 of yacc.c  */
     7383#line 1702 "parser.yy"
     7384    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74397385    break;
    74407386
     
    74427388
    74437389/* Line 1806 of yacc.c  */
    7444 #line 1706 "parser.yy"
    7445     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7390#line 1703 "parser.yy"
     7391    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    74467392    break;
    74477393
     
    74497395
    74507396/* Line 1806 of yacc.c  */
    7451 #line 1707 "parser.yy"
    7452     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    7453     break;
    7454 
    7455   case 462:
    7456 
    7457 /* Line 1806 of yacc.c  */
    7458 #line 1709 "parser.yy"
     7397#line 1705 "parser.yy"
    74597398    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74607399    break;
    74617400
    7462   case 464:
    7463 
    7464 /* Line 1806 of yacc.c  */
    7465 #line 1725 "parser.yy"
     7401  case 463:
     7402
     7403/* Line 1806 of yacc.c  */
     7404#line 1721 "parser.yy"
    74667405    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    74677406    break;
    74687407
     7408  case 465:
     7409
     7410/* Line 1806 of yacc.c  */
     7411#line 1727 "parser.yy"
     7412    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7413    break;
     7414
    74697415  case 466:
    74707416
    74717417/* Line 1806 of yacc.c  */
    7472 #line 1731 "parser.yy"
    7473     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7418#line 1735 "parser.yy"
     7419    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    74747420    break;
    74757421
     
    74777423
    74787424/* Line 1806 of yacc.c  */
    7479 #line 1739 "parser.yy"
    7480     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
     7425#line 1737 "parser.yy"
     7426    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    74817427    break;
    74827428
     
    74847430
    74857431/* Line 1806 of yacc.c  */
    7486 #line 1741 "parser.yy"
    7487     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
     7432#line 1740 "parser.yy"
     7433    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    74887434    break;
    74897435
     
    74917437
    74927438/* Line 1806 of yacc.c  */
     7439#line 1742 "parser.yy"
     7440    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
     7441    break;
     7442
     7443  case 470:
     7444
     7445/* Line 1806 of yacc.c  */
    74937446#line 1744 "parser.yy"
    7494     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    7495     break;
    7496 
    7497   case 470:
     7447    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
     7448    break;
     7449
     7450  case 471:
    74987451
    74997452/* Line 1806 of yacc.c  */
    75007453#line 1746 "parser.yy"
    7501     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    7502     break;
    7503 
    7504   case 471:
    7505 
    7506 /* Line 1806 of yacc.c  */
    7507 #line 1748 "parser.yy"
    7508     { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    7509     break;
    7510 
    7511   case 472:
    7512 
    7513 /* Line 1806 of yacc.c  */
    7514 #line 1750 "parser.yy"
    75157454    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    75167455    break;
    75177456
     7457  case 473:
     7458
     7459/* Line 1806 of yacc.c  */
     7460#line 1770 "parser.yy"
     7461    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7462    break;
     7463
    75187464  case 474:
    75197465
    75207466/* Line 1806 of yacc.c  */
     7467#line 1772 "parser.yy"
     7468    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7469    break;
     7470
     7471  case 475:
     7472
     7473/* Line 1806 of yacc.c  */
    75217474#line 1774 "parser.yy"
     7475    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7476    break;
     7477
     7478  case 477:
     7479
     7480/* Line 1806 of yacc.c  */
     7481#line 1780 "parser.yy"
    75227482    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75237483    break;
    75247484
    7525   case 475:
    7526 
    7527 /* Line 1806 of yacc.c  */
    7528 #line 1776 "parser.yy"
     7485  case 478:
     7486
     7487/* Line 1806 of yacc.c  */
     7488#line 1782 "parser.yy"
    75297489    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75307490    break;
    75317491
    7532   case 476:
    7533 
    7534 /* Line 1806 of yacc.c  */
    7535 #line 1778 "parser.yy"
    7536     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7537     break;
    7538 
    7539   case 478:
    7540 
    7541 /* Line 1806 of yacc.c  */
    7542 #line 1784 "parser.yy"
    7543     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7544     break;
    7545 
    75467492  case 479:
    75477493
    75487494/* Line 1806 of yacc.c  */
    7549 #line 1786 "parser.yy"
    7550     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7551     break;
    7552 
    7553   case 480:
    7554 
    7555 /* Line 1806 of yacc.c  */
    7556 #line 1791 "parser.yy"
     7495#line 1787 "parser.yy"
    75577496    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75587497    break;
    75597498
     7499  case 481:
     7500
     7501/* Line 1806 of yacc.c  */
     7502#line 1793 "parser.yy"
     7503    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7504    break;
     7505
    75607506  case 482:
    75617507
    75627508/* Line 1806 of yacc.c  */
    7563 #line 1797 "parser.yy"
    7564     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7509#line 1798 "parser.yy"
     7510    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75657511    break;
    75667512
     
    75687514
    75697515/* Line 1806 of yacc.c  */
    7570 #line 1802 "parser.yy"
    7571     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7572     break;
    7573 
    7574   case 484:
    7575 
    7576 /* Line 1806 of yacc.c  */
    7577 #line 1804 "parser.yy"
     7516#line 1800 "parser.yy"
    75787517    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75797518    break;
    75807519
     7520  case 485:
     7521
     7522/* Line 1806 of yacc.c  */
     7523#line 1806 "parser.yy"
     7524    { (yyval.tclass) = DeclarationNode::Type; }
     7525    break;
     7526
    75817527  case 486:
    75827528
    75837529/* Line 1806 of yacc.c  */
     7530#line 1808 "parser.yy"
     7531    { (yyval.tclass) = DeclarationNode::Ftype; }
     7532    break;
     7533
     7534  case 487:
     7535
     7536/* Line 1806 of yacc.c  */
    75847537#line 1810 "parser.yy"
    7585     { (yyval.tclass) = DeclarationNode::Type; }
    7586     break;
    7587 
    7588   case 487:
    7589 
    7590 /* Line 1806 of yacc.c  */
    7591 #line 1812 "parser.yy"
    7592     { (yyval.tclass) = DeclarationNode::Ftype; }
     7538    { (yyval.tclass) = DeclarationNode::Dtype; }
    75937539    break;
    75947540
     
    75967542
    75977543/* Line 1806 of yacc.c  */
    7598 #line 1814 "parser.yy"
    7599     { (yyval.tclass) = DeclarationNode::Dtype; }
     7544#line 1815 "parser.yy"
     7545    { (yyval.decl) = 0; }
    76007546    break;
    76017547
     
    76037549
    76047550/* Line 1806 of yacc.c  */
    7605 #line 1819 "parser.yy"
     7551#line 1817 "parser.yy"
     7552    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
     7553    break;
     7554
     7555  case 490:
     7556
     7557/* Line 1806 of yacc.c  */
     7558#line 1822 "parser.yy"
     7559    {
     7560                        typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
     7561                        (yyval.decl) = DeclarationNode::newContextUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
     7562                }
     7563    break;
     7564
     7565  case 491:
     7566
     7567/* Line 1806 of yacc.c  */
     7568#line 1827 "parser.yy"
     7569    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7570    break;
     7571
     7572  case 492:
     7573
     7574/* Line 1806 of yacc.c  */
     7575#line 1829 "parser.yy"
    76067576    { (yyval.decl) = 0; }
    76077577    break;
    76087578
    7609   case 490:
    7610 
    7611 /* Line 1806 of yacc.c  */
    7612 #line 1821 "parser.yy"
    7613     { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    7614     break;
    7615 
    7616   case 491:
    7617 
    7618 /* Line 1806 of yacc.c  */
    7619 #line 1826 "parser.yy"
    7620     {
    7621                         typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
    7622                         (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
    7623                 }
    7624     break;
    7625 
    7626   case 492:
    7627 
    7628 /* Line 1806 of yacc.c  */
    7629 #line 1831 "parser.yy"
    7630     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    7631     break;
    7632 
    76337579  case 493:
    76347580
    76357581/* Line 1806 of yacc.c  */
    7636 #line 1833 "parser.yy"
    7637     { (yyval.decl) = 0; }
    7638     break;
    7639 
    7640   case 494:
    7641 
    7642 /* Line 1806 of yacc.c  */
    7643 #line 1838 "parser.yy"
     7582#line 1834 "parser.yy"
    76447583    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    76457584    break;
    76467585
     7586  case 495:
     7587
     7588/* Line 1806 of yacc.c  */
     7589#line 1837 "parser.yy"
     7590    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7591    break;
     7592
    76477593  case 496:
    76487594
    76497595/* Line 1806 of yacc.c  */
    7650 #line 1841 "parser.yy"
    7651     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7596#line 1839 "parser.yy"
     7597    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    76527598    break;
    76537599
     
    76557601
    76567602/* Line 1806 of yacc.c  */
    7657 #line 1843 "parser.yy"
    7658     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     7603#line 1844 "parser.yy"
     7604    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76597605    break;
    76607606
     
    76627608
    76637609/* Line 1806 of yacc.c  */
     7610#line 1846 "parser.yy"
     7611    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7612    break;
     7613
     7614  case 499:
     7615
     7616/* Line 1806 of yacc.c  */
    76647617#line 1848 "parser.yy"
    7665     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7666     break;
    7667 
    7668   case 499:
    7669 
    7670 /* Line 1806 of yacc.c  */
    7671 #line 1850 "parser.yy"
    7672     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7618    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76737619    break;
    76747620
     
    76767622
    76777623/* Line 1806 of yacc.c  */
    7678 #line 1852 "parser.yy"
    7679     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     7624#line 1853 "parser.yy"
     7625    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76807626    break;
    76817627
     
    76837629
    76847630/* Line 1806 of yacc.c  */
    7685 #line 1857 "parser.yy"
    7686     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     7631#line 1855 "parser.yy"
     7632    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76877633    break;
    76887634
     
    76907636
    76917637/* Line 1806 of yacc.c  */
    7692 #line 1859 "parser.yy"
    7693     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7694     break;
    7695 
    7696   case 503:
    7697 
    7698 /* Line 1806 of yacc.c  */
    7699 #line 1864 "parser.yy"
     7638#line 1860 "parser.yy"
    77007639    {
    77017640                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    77047643    break;
    77057644
    7706   case 504:
    7707 
    7708 /* Line 1806 of yacc.c  */
    7709 #line 1869 "parser.yy"
     7645  case 503:
     7646
     7647/* Line 1806 of yacc.c  */
     7648#line 1865 "parser.yy"
    77107649    {
    77117650                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    77147653    break;
    77157654
    7716   case 505:
    7717 
    7718 /* Line 1806 of yacc.c  */
    7719 #line 1877 "parser.yy"
     7655  case 504:
     7656
     7657/* Line 1806 of yacc.c  */
     7658#line 1873 "parser.yy"
    77207659    {
    77217660                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
    7722                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
     7661                        (yyval.decl) = DeclarationNode::newContext( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
    77237662                }
    77247663    break;
    77257664
    7726   case 506:
    7727 
    7728 /* Line 1806 of yacc.c  */
    7729 #line 1882 "parser.yy"
     7665  case 505:
     7666
     7667/* Line 1806 of yacc.c  */
     7668#line 1878 "parser.yy"
    77307669    {
    7731                         typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     7670                        typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
    77327671                        typedefTable.enterScope();
    77337672                }
    77347673    break;
    77357674
    7736   case 507:
    7737 
    7738 /* Line 1806 of yacc.c  */
    7739 #line 1887 "parser.yy"
     7675  case 506:
     7676
     7677/* Line 1806 of yacc.c  */
     7678#line 1883 "parser.yy"
    77407679    {
    7741                         typedefTable.leaveTrait();
     7680                        typedefTable.leaveContext();
    77427681                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );
    7743                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
     7682                        (yyval.decl) = DeclarationNode::newContext( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
    77447683                }
    77457684    break;
    77467685
    7747   case 509:
    7748 
    7749 /* Line 1806 of yacc.c  */
    7750 #line 1897 "parser.yy"
     7686  case 508:
     7687
     7688/* Line 1806 of yacc.c  */
     7689#line 1893 "parser.yy"
    77517690    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77527691    break;
    77537692
    7754   case 512:
    7755 
    7756 /* Line 1806 of yacc.c  */
    7757 #line 1907 "parser.yy"
     7693  case 511:
     7694
     7695/* Line 1806 of yacc.c  */
     7696#line 1903 "parser.yy"
    77587697    {
    77597698                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77627701    break;
    77637702
    7764   case 513:
    7765 
    7766 /* Line 1806 of yacc.c  */
    7767 #line 1912 "parser.yy"
     7703  case 512:
     7704
     7705/* Line 1806 of yacc.c  */
     7706#line 1908 "parser.yy"
    77687707    {
    77697708                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77727711    break;
    77737712
    7774   case 514:
    7775 
    7776 /* Line 1806 of yacc.c  */
    7777 #line 1917 "parser.yy"
     7713  case 513:
     7714
     7715/* Line 1806 of yacc.c  */
     7716#line 1913 "parser.yy"
    77787717    {
    77797718                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77827721    break;
    77837722
    7784   case 515:
    7785 
    7786 /* Line 1806 of yacc.c  */
    7787 #line 1925 "parser.yy"
     7723  case 514:
     7724
     7725/* Line 1806 of yacc.c  */
     7726#line 1921 "parser.yy"
    77887727    {
    77897728                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77927731    break;
    77937732
    7794   case 516:
    7795 
    7796 /* Line 1806 of yacc.c  */
    7797 #line 1930 "parser.yy"
     7733  case 515:
     7734
     7735/* Line 1806 of yacc.c  */
     7736#line 1926 "parser.yy"
    77987737    {
    77997738                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    78027741    break;
    78037742
     7743  case 516:
     7744
     7745/* Line 1806 of yacc.c  */
     7746#line 1936 "parser.yy"
     7747    {}
     7748    break;
     7749
    78047750  case 517:
    78057751
    78067752/* Line 1806 of yacc.c  */
    7807 #line 1940 "parser.yy"
    7808     {}
    7809     break;
    7810 
    7811   case 518:
    7812 
    7813 /* Line 1806 of yacc.c  */
    7814 #line 1942 "parser.yy"
     7753#line 1938 "parser.yy"
    78157754    {
    78167755                        if ( theTree ) {
     
    78227761    break;
    78237762
     7763  case 519:
     7764
     7765/* Line 1806 of yacc.c  */
     7766#line 1950 "parser.yy"
     7767    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7768    break;
     7769
    78247770  case 520:
    78257771
    78267772/* Line 1806 of yacc.c  */
    7827 #line 1954 "parser.yy"
    7828     { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    7829     break;
    7830 
    7831   case 521:
    7832 
    7833 /* Line 1806 of yacc.c  */
    7834 #line 1959 "parser.yy"
     7773#line 1955 "parser.yy"
    78357774    { (yyval.decl) = 0; }
    78367775    break;
    78377776
     7777  case 524:
     7778
     7779/* Line 1806 of yacc.c  */
     7780#line 1963 "parser.yy"
     7781    {}
     7782    break;
     7783
    78387784  case 525:
    78397785
    78407786/* Line 1806 of yacc.c  */
    7841 #line 1967 "parser.yy"
    7842     {}
    7843     break;
    7844 
    7845   case 526:
    7846 
    7847 /* Line 1806 of yacc.c  */
    7848 #line 1969 "parser.yy"
     7787#line 1965 "parser.yy"
    78497788    {
    78507789                        linkageStack.push( linkage );
     
    78537792    break;
    78547793
    7855   case 527:
    7856 
    7857 /* Line 1806 of yacc.c  */
    7858 #line 1974 "parser.yy"
     7794  case 526:
     7795
     7796/* Line 1806 of yacc.c  */
     7797#line 1970 "parser.yy"
    78597798    {
    78607799                        linkage = linkageStack.top();
     
    78647803    break;
    78657804
    7866   case 528:
    7867 
    7868 /* Line 1806 of yacc.c  */
    7869 #line 1980 "parser.yy"
     7805  case 527:
     7806
     7807/* Line 1806 of yacc.c  */
     7808#line 1976 "parser.yy"
    78707809    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    78717810    break;
    78727811
    7873   case 530:
    7874 
    7875 /* Line 1806 of yacc.c  */
    7876 #line 1990 "parser.yy"
     7812  case 529:
     7813
     7814/* Line 1806 of yacc.c  */
     7815#line 1986 "parser.yy"
    78777816    {
    78787817                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78827821    break;
    78837822
    7884   case 531:
    7885 
    7886 /* Line 1806 of yacc.c  */
    7887 #line 1996 "parser.yy"
     7823  case 530:
     7824
     7825/* Line 1806 of yacc.c  */
     7826#line 1992 "parser.yy"
    78887827    {
    78897828                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78937832    break;
    78947833
    7895   case 532:
    7896 
    7897 /* Line 1806 of yacc.c  */
    7898 #line 2005 "parser.yy"
     7834  case 531:
     7835
     7836/* Line 1806 of yacc.c  */
     7837#line 2001 "parser.yy"
    78997838    {
    79007839                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79047843    break;
    79057844
    7906   case 533:
    7907 
    7908 /* Line 1806 of yacc.c  */
    7909 #line 2011 "parser.yy"
     7845  case 532:
     7846
     7847/* Line 1806 of yacc.c  */
     7848#line 2007 "parser.yy"
    79107849    {
    79117850                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79157854    break;
    79167855
    7917   case 534:
    7918 
    7919 /* Line 1806 of yacc.c  */
    7920 #line 2017 "parser.yy"
     7856  case 533:
     7857
     7858/* Line 1806 of yacc.c  */
     7859#line 2013 "parser.yy"
    79217860    {
    79227861                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79267865    break;
    79277866
    7928   case 535:
    7929 
    7930 /* Line 1806 of yacc.c  */
    7931 #line 2023 "parser.yy"
     7867  case 534:
     7868
     7869/* Line 1806 of yacc.c  */
     7870#line 2019 "parser.yy"
    79327871    {
    79337872                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79377876    break;
    79387877
    7939   case 536:
    7940 
    7941 /* Line 1806 of yacc.c  */
    7942 #line 2029 "parser.yy"
     7878  case 535:
     7879
     7880/* Line 1806 of yacc.c  */
     7881#line 2025 "parser.yy"
    79437882    {
    79447883                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79487887    break;
    79497888
    7950   case 537:
    7951 
    7952 /* Line 1806 of yacc.c  */
    7953 #line 2037 "parser.yy"
     7889  case 536:
     7890
     7891/* Line 1806 of yacc.c  */
     7892#line 2033 "parser.yy"
    79547893    {
    79557894                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79597898    break;
    79607899
    7961   case 538:
    7962 
    7963 /* Line 1806 of yacc.c  */
    7964 #line 2043 "parser.yy"
     7900  case 537:
     7901
     7902/* Line 1806 of yacc.c  */
     7903#line 2039 "parser.yy"
    79657904    {
    79667905                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79707909    break;
    79717910
    7972   case 539:
    7973 
    7974 /* Line 1806 of yacc.c  */
    7975 #line 2051 "parser.yy"
     7911  case 538:
     7912
     7913/* Line 1806 of yacc.c  */
     7914#line 2047 "parser.yy"
    79767915    {
    79777916                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79817920    break;
    79827921
    7983   case 540:
    7984 
    7985 /* Line 1806 of yacc.c  */
    7986 #line 2057 "parser.yy"
     7922  case 539:
     7923
     7924/* Line 1806 of yacc.c  */
     7925#line 2053 "parser.yy"
    79877926    {
    79887927                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79927931    break;
    79937932
    7994   case 544:
    7995 
    7996 /* Line 1806 of yacc.c  */
    7997 #line 2072 "parser.yy"
     7933  case 543:
     7934
     7935/* Line 1806 of yacc.c  */
     7936#line 2068 "parser.yy"
    79987937    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    79997938    break;
    80007939
    8001   case 547:
    8002 
    8003 /* Line 1806 of yacc.c  */
    8004 #line 2082 "parser.yy"
     7940  case 546:
     7941
     7942/* Line 1806 of yacc.c  */
     7943#line 2078 "parser.yy"
    80057944    { (yyval.decl) = 0; }
    80067945    break;
    80077946
     7947  case 549:
     7948
     7949/* Line 1806 of yacc.c  */
     7950#line 2085 "parser.yy"
     7951    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7952    break;
     7953
    80087954  case 550:
    80097955
    80107956/* Line 1806 of yacc.c  */
    8011 #line 2089 "parser.yy"
    8012     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8013     break;
    8014 
    8015   case 551:
    8016 
    8017 /* Line 1806 of yacc.c  */
    8018 #line 2095 "parser.yy"
     7957#line 2091 "parser.yy"
    80197958    { (yyval.decl) = 0; }
    80207959    break;
    80217960
     7961  case 556:
     7962
     7963/* Line 1806 of yacc.c  */
     7964#line 2106 "parser.yy"
     7965    {}
     7966    break;
     7967
    80227968  case 557:
    80237969
    80247970/* Line 1806 of yacc.c  */
    8025 #line 2110 "parser.yy"
     7971#line 2107 "parser.yy"
    80267972    {}
    80277973    break;
     
    80307976
    80317977/* Line 1806 of yacc.c  */
    8032 #line 2111 "parser.yy"
     7978#line 2108 "parser.yy"
    80337979    {}
    80347980    break;
     
    80377983
    80387984/* Line 1806 of yacc.c  */
    8039 #line 2112 "parser.yy"
     7985#line 2109 "parser.yy"
    80407986    {}
    80417987    break;
     
    80447990
    80457991/* Line 1806 of yacc.c  */
    8046 #line 2113 "parser.yy"
    8047     {}
    8048     break;
    8049 
    8050   case 561:
    8051 
    8052 /* Line 1806 of yacc.c  */
    8053 #line 2148 "parser.yy"
     7992#line 2144 "parser.yy"
    80547993    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80557994    break;
    80567995
     7996  case 562:
     7997
     7998/* Line 1806 of yacc.c  */
     7999#line 2147 "parser.yy"
     8000    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8001    break;
     8002
    80578003  case 563:
    80588004
    80598005/* Line 1806 of yacc.c  */
    8060 #line 2151 "parser.yy"
     8006#line 2149 "parser.yy"
    80618007    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80628008    break;
     
    80658011
    80668012/* Line 1806 of yacc.c  */
    8067 #line 2153 "parser.yy"
    8068     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8069     break;
    8070 
    8071   case 565:
    8072 
    8073 /* Line 1806 of yacc.c  */
    8074 #line 2158 "parser.yy"
     8013#line 2154 "parser.yy"
    80758014    {
    80768015                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80798018    break;
    80808019
     8020  case 565:
     8021
     8022/* Line 1806 of yacc.c  */
     8023#line 2159 "parser.yy"
     8024    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8025    break;
     8026
    80818027  case 566:
    80828028
    80838029/* Line 1806 of yacc.c  */
    8084 #line 2163 "parser.yy"
     8030#line 2164 "parser.yy"
     8031    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8032    break;
     8033
     8034  case 567:
     8035
     8036/* Line 1806 of yacc.c  */
     8037#line 2166 "parser.yy"
     8038    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8039    break;
     8040
     8041  case 568:
     8042
     8043/* Line 1806 of yacc.c  */
     8044#line 2168 "parser.yy"
    80858045    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80868046    break;
    80878047
    8088   case 567:
    8089 
    8090 /* Line 1806 of yacc.c  */
    8091 #line 2168 "parser.yy"
     8048  case 569:
     8049
     8050/* Line 1806 of yacc.c  */
     8051#line 2173 "parser.yy"
     8052    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8053    break;
     8054
     8055  case 570:
     8056
     8057/* Line 1806 of yacc.c  */
     8058#line 2175 "parser.yy"
     8059    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8060    break;
     8061
     8062  case 571:
     8063
     8064/* Line 1806 of yacc.c  */
     8065#line 2177 "parser.yy"
     8066    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8067    break;
     8068
     8069  case 572:
     8070
     8071/* Line 1806 of yacc.c  */
     8072#line 2179 "parser.yy"
     8073    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8074    break;
     8075
     8076  case 573:
     8077
     8078/* Line 1806 of yacc.c  */
     8079#line 2184 "parser.yy"
     8080    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8081    break;
     8082
     8083  case 574:
     8084
     8085/* Line 1806 of yacc.c  */
     8086#line 2186 "parser.yy"
     8087    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8088    break;
     8089
     8090  case 575:
     8091
     8092/* Line 1806 of yacc.c  */
     8093#line 2196 "parser.yy"
     8094    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8095    break;
     8096
     8097  case 577:
     8098
     8099/* Line 1806 of yacc.c  */
     8100#line 2199 "parser.yy"
     8101    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8102    break;
     8103
     8104  case 578:
     8105
     8106/* Line 1806 of yacc.c  */
     8107#line 2204 "parser.yy"
     8108    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8109    break;
     8110
     8111  case 579:
     8112
     8113/* Line 1806 of yacc.c  */
     8114#line 2206 "parser.yy"
     8115    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8116    break;
     8117
     8118  case 580:
     8119
     8120/* Line 1806 of yacc.c  */
     8121#line 2208 "parser.yy"
     8122    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8123    break;
     8124
     8125  case 581:
     8126
     8127/* Line 1806 of yacc.c  */
     8128#line 2213 "parser.yy"
    80928129    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80938130    break;
    80948131
    8095   case 568:
    8096 
    8097 /* Line 1806 of yacc.c  */
    8098 #line 2170 "parser.yy"
     8132  case 582:
     8133
     8134/* Line 1806 of yacc.c  */
     8135#line 2215 "parser.yy"
    80998136    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81008137    break;
    81018138
    8102   case 569:
    8103 
    8104 /* Line 1806 of yacc.c  */
    8105 #line 2172 "parser.yy"
     8139  case 583:
     8140
     8141/* Line 1806 of yacc.c  */
     8142#line 2217 "parser.yy"
    81068143    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81078144    break;
    81088145
    8109   case 570:
    8110 
    8111 /* Line 1806 of yacc.c  */
    8112 #line 2177 "parser.yy"
     8146  case 584:
     8147
     8148/* Line 1806 of yacc.c  */
     8149#line 2222 "parser.yy"
     8150    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8151    break;
     8152
     8153  case 585:
     8154
     8155/* Line 1806 of yacc.c  */
     8156#line 2224 "parser.yy"
     8157    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8158    break;
     8159
     8160  case 586:
     8161
     8162/* Line 1806 of yacc.c  */
     8163#line 2226 "parser.yy"
     8164    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8165    break;
     8166
     8167  case 590:
     8168
     8169/* Line 1806 of yacc.c  */
     8170#line 2241 "parser.yy"
     8171    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8172    break;
     8173
     8174  case 591:
     8175
     8176/* Line 1806 of yacc.c  */
     8177#line 2243 "parser.yy"
     8178    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8179    break;
     8180
     8181  case 592:
     8182
     8183/* Line 1806 of yacc.c  */
     8184#line 2245 "parser.yy"
     8185    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8186    break;
     8187
     8188  case 593:
     8189
     8190/* Line 1806 of yacc.c  */
     8191#line 2250 "parser.yy"
     8192    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8193    break;
     8194
     8195  case 594:
     8196
     8197/* Line 1806 of yacc.c  */
     8198#line 2252 "parser.yy"
     8199    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8200    break;
     8201
     8202  case 595:
     8203
     8204/* Line 1806 of yacc.c  */
     8205#line 2254 "parser.yy"
     8206    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8207    break;
     8208
     8209  case 596:
     8210
     8211/* Line 1806 of yacc.c  */
     8212#line 2259 "parser.yy"
     8213    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8214    break;
     8215
     8216  case 597:
     8217
     8218/* Line 1806 of yacc.c  */
     8219#line 2261 "parser.yy"
     8220    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8221    break;
     8222
     8223  case 598:
     8224
     8225/* Line 1806 of yacc.c  */
     8226#line 2263 "parser.yy"
     8227    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8228    break;
     8229
     8230  case 599:
     8231
     8232/* Line 1806 of yacc.c  */
     8233#line 2278 "parser.yy"
     8234    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8235    break;
     8236
     8237  case 601:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2281 "parser.yy"
     8241    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8242    break;
     8243
     8244  case 602:
     8245
     8246/* Line 1806 of yacc.c  */
     8247#line 2283 "parser.yy"
     8248    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8249    break;
     8250
     8251  case 604:
     8252
     8253/* Line 1806 of yacc.c  */
     8254#line 2289 "parser.yy"
     8255    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8256    break;
     8257
     8258  case 605:
     8259
     8260/* Line 1806 of yacc.c  */
     8261#line 2294 "parser.yy"
     8262    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8263    break;
     8264
     8265  case 606:
     8266
     8267/* Line 1806 of yacc.c  */
     8268#line 2296 "parser.yy"
     8269    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8270    break;
     8271
     8272  case 607:
     8273
     8274/* Line 1806 of yacc.c  */
     8275#line 2298 "parser.yy"
     8276    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8277    break;
     8278
     8279  case 608:
     8280
     8281/* Line 1806 of yacc.c  */
     8282#line 2303 "parser.yy"
    81138283    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    81148284    break;
    81158285
    8116   case 571:
    8117 
    8118 /* Line 1806 of yacc.c  */
    8119 #line 2179 "parser.yy"
     8286  case 609:
     8287
     8288/* Line 1806 of yacc.c  */
     8289#line 2305 "parser.yy"
    81208290    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81218291    break;
    81228292
    8123   case 572:
    8124 
    8125 /* Line 1806 of yacc.c  */
    8126 #line 2181 "parser.yy"
     8293  case 610:
     8294
     8295/* Line 1806 of yacc.c  */
     8296#line 2307 "parser.yy"
    81278297    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81288298    break;
    81298299
    8130   case 573:
    8131 
    8132 /* Line 1806 of yacc.c  */
    8133 #line 2183 "parser.yy"
     8300  case 611:
     8301
     8302/* Line 1806 of yacc.c  */
     8303#line 2309 "parser.yy"
    81348304    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81358305    break;
    81368306
    8137   case 574:
    8138 
    8139 /* Line 1806 of yacc.c  */
    8140 #line 2188 "parser.yy"
     8307  case 612:
     8308
     8309/* Line 1806 of yacc.c  */
     8310#line 2314 "parser.yy"
     8311    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8312    break;
     8313
     8314  case 613:
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2316 "parser.yy"
    81418318    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81428319    break;
    81438320
    8144   case 575:
    8145 
    8146 /* Line 1806 of yacc.c  */
    8147 #line 2190 "parser.yy"
     8321  case 614:
     8322
     8323/* Line 1806 of yacc.c  */
     8324#line 2318 "parser.yy"
    81488325    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81498326    break;
    81508327
    8151   case 576:
    8152 
    8153 /* Line 1806 of yacc.c  */
    8154 #line 2200 "parser.yy"
     8328  case 615:
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2328 "parser.yy"
    81558332    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81568333    break;
    81578334
    8158   case 578:
    8159 
    8160 /* Line 1806 of yacc.c  */
    8161 #line 2203 "parser.yy"
     8335  case 617:
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2331 "parser.yy"
    81628339    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81638340    break;
    81648341
    8165   case 579:
    8166 
    8167 /* Line 1806 of yacc.c  */
    8168 #line 2208 "parser.yy"
     8342  case 618:
     8343
     8344/* Line 1806 of yacc.c  */
     8345#line 2333 "parser.yy"
     8346    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8347    break;
     8348
     8349  case 619:
     8350
     8351/* Line 1806 of yacc.c  */
     8352#line 2338 "parser.yy"
     8353    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8354    break;
     8355
     8356  case 620:
     8357
     8358/* Line 1806 of yacc.c  */
     8359#line 2340 "parser.yy"
     8360    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8361    break;
     8362
     8363  case 621:
     8364
     8365/* Line 1806 of yacc.c  */
     8366#line 2342 "parser.yy"
     8367    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8368    break;
     8369
     8370  case 622:
     8371
     8372/* Line 1806 of yacc.c  */
     8373#line 2347 "parser.yy"
     8374    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8375    break;
     8376
     8377  case 623:
     8378
     8379/* Line 1806 of yacc.c  */
     8380#line 2349 "parser.yy"
     8381    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8382    break;
     8383
     8384  case 624:
     8385
     8386/* Line 1806 of yacc.c  */
     8387#line 2351 "parser.yy"
     8388    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8389    break;
     8390
     8391  case 625:
     8392
     8393/* Line 1806 of yacc.c  */
     8394#line 2353 "parser.yy"
     8395    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8396    break;
     8397
     8398  case 626:
     8399
     8400/* Line 1806 of yacc.c  */
     8401#line 2358 "parser.yy"
    81698402    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81708403    break;
    81718404
    8172   case 580:
    8173 
    8174 /* Line 1806 of yacc.c  */
    8175 #line 2210 "parser.yy"
     8405  case 627:
     8406
     8407/* Line 1806 of yacc.c  */
     8408#line 2360 "parser.yy"
    81768409    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81778410    break;
    81788411
    8179   case 581:
    8180 
    8181 /* Line 1806 of yacc.c  */
    8182 #line 2212 "parser.yy"
     8412  case 628:
     8413
     8414/* Line 1806 of yacc.c  */
     8415#line 2362 "parser.yy"
    81838416    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81848417    break;
    81858418
    8186   case 582:
    8187 
    8188 /* Line 1806 of yacc.c  */
    8189 #line 2217 "parser.yy"
    8190     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8191     break;
    8192 
    8193   case 583:
    8194 
    8195 /* Line 1806 of yacc.c  */
    8196 #line 2219 "parser.yy"
    8197     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8198     break;
    8199 
    8200   case 584:
    8201 
    8202 /* Line 1806 of yacc.c  */
    8203 #line 2221 "parser.yy"
    8204     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8205     break;
    8206 
    8207   case 585:
    8208 
    8209 /* Line 1806 of yacc.c  */
    8210 #line 2226 "parser.yy"
    8211     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8212     break;
    8213 
    8214   case 586:
    8215 
    8216 /* Line 1806 of yacc.c  */
    8217 #line 2228 "parser.yy"
    8218     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8219     break;
    8220 
    8221   case 587:
    8222 
    8223 /* Line 1806 of yacc.c  */
    8224 #line 2230 "parser.yy"
    8225     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8226     break;
    8227 
    8228   case 591:
    8229 
    8230 /* Line 1806 of yacc.c  */
    8231 #line 2245 "parser.yy"
    8232     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8233     break;
    8234 
    8235   case 592:
    8236 
    8237 /* Line 1806 of yacc.c  */
    8238 #line 2247 "parser.yy"
    8239     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8240     break;
    8241 
    8242   case 593:
    8243 
    8244 /* Line 1806 of yacc.c  */
    8245 #line 2249 "parser.yy"
    8246     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8247     break;
    8248 
    8249   case 594:
    8250 
    8251 /* Line 1806 of yacc.c  */
    8252 #line 2254 "parser.yy"
    8253     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8254     break;
    8255 
    8256   case 595:
    8257 
    8258 /* Line 1806 of yacc.c  */
    8259 #line 2256 "parser.yy"
    8260     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8261     break;
    8262 
    8263   case 596:
    8264 
    8265 /* Line 1806 of yacc.c  */
    8266 #line 2258 "parser.yy"
    8267     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8268     break;
    8269 
    8270   case 597:
    8271 
    8272 /* Line 1806 of yacc.c  */
    8273 #line 2263 "parser.yy"
    8274     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8275     break;
    8276 
    8277   case 598:
    8278 
    8279 /* Line 1806 of yacc.c  */
    8280 #line 2265 "parser.yy"
    8281     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8282     break;
    8283 
    8284   case 599:
    8285 
    8286 /* Line 1806 of yacc.c  */
    8287 #line 2267 "parser.yy"
    8288     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8289     break;
    8290 
    8291   case 600:
    8292 
    8293 /* Line 1806 of yacc.c  */
    8294 #line 2282 "parser.yy"
     8419  case 629:
     8420
     8421/* Line 1806 of yacc.c  */
     8422#line 2393 "parser.yy"
    82958423    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82968424    break;
    82978425
    8298   case 602:
    8299 
    8300 /* Line 1806 of yacc.c  */
    8301 #line 2285 "parser.yy"
     8426  case 631:
     8427
     8428/* Line 1806 of yacc.c  */
     8429#line 2396 "parser.yy"
    83028430    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83038431    break;
    83048432
    8305   case 603:
    8306 
    8307 /* Line 1806 of yacc.c  */
    8308 #line 2287 "parser.yy"
     8433  case 632:
     8434
     8435/* Line 1806 of yacc.c  */
     8436#line 2398 "parser.yy"
    83098437    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83108438    break;
    83118439
    8312   case 605:
    8313 
    8314 /* Line 1806 of yacc.c  */
    8315 #line 2293 "parser.yy"
    8316     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8317     break;
    8318 
    8319   case 606:
    8320 
    8321 /* Line 1806 of yacc.c  */
    8322 #line 2298 "parser.yy"
    8323     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8324     break;
    8325 
    8326   case 607:
    8327 
    8328 /* Line 1806 of yacc.c  */
    8329 #line 2300 "parser.yy"
    8330     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8331     break;
    8332 
    8333   case 608:
    8334 
    8335 /* Line 1806 of yacc.c  */
    8336 #line 2302 "parser.yy"
    8337     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8338     break;
    8339 
    8340   case 609:
    8341 
    8342 /* Line 1806 of yacc.c  */
    8343 #line 2307 "parser.yy"
    8344     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8345     break;
    8346 
    8347   case 610:
    8348 
    8349 /* Line 1806 of yacc.c  */
    8350 #line 2309 "parser.yy"
    8351     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8352     break;
    8353 
    8354   case 611:
    8355 
    8356 /* Line 1806 of yacc.c  */
    8357 #line 2311 "parser.yy"
    8358     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8359     break;
    8360 
    8361   case 612:
    8362 
    8363 /* Line 1806 of yacc.c  */
    8364 #line 2313 "parser.yy"
    8365     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8366     break;
    8367 
    8368   case 613:
    8369 
    8370 /* Line 1806 of yacc.c  */
    8371 #line 2318 "parser.yy"
    8372     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8373     break;
    8374 
    8375   case 614:
    8376 
    8377 /* Line 1806 of yacc.c  */
    8378 #line 2320 "parser.yy"
    8379     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8380     break;
    8381 
    8382   case 615:
    8383 
    8384 /* Line 1806 of yacc.c  */
    8385 #line 2322 "parser.yy"
    8386     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8387     break;
    8388 
    8389   case 616:
    8390 
    8391 /* Line 1806 of yacc.c  */
    8392 #line 2332 "parser.yy"
    8393     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8394     break;
    8395 
    8396   case 618:
    8397 
    8398 /* Line 1806 of yacc.c  */
    8399 #line 2335 "parser.yy"
    8400     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8401     break;
    8402 
    8403   case 619:
    8404 
    8405 /* Line 1806 of yacc.c  */
    8406 #line 2337 "parser.yy"
    8407     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8408     break;
    8409 
    8410   case 620:
    8411 
    8412 /* Line 1806 of yacc.c  */
    8413 #line 2342 "parser.yy"
    8414     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8415     break;
    8416 
    8417   case 621:
    8418 
    8419 /* Line 1806 of yacc.c  */
    8420 #line 2344 "parser.yy"
    8421     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8422     break;
    8423 
    8424   case 622:
    8425 
    8426 /* Line 1806 of yacc.c  */
    8427 #line 2346 "parser.yy"
    8428     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8429     break;
    8430 
    8431   case 623:
    8432 
    8433 /* Line 1806 of yacc.c  */
    8434 #line 2351 "parser.yy"
    8435     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8436     break;
    8437 
    8438   case 624:
    8439 
    8440 /* Line 1806 of yacc.c  */
    8441 #line 2353 "parser.yy"
    8442     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8443     break;
    8444 
    8445   case 625:
    8446 
    8447 /* Line 1806 of yacc.c  */
    8448 #line 2355 "parser.yy"
    8449     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8450     break;
    8451 
    8452   case 626:
    8453 
    8454 /* Line 1806 of yacc.c  */
    8455 #line 2357 "parser.yy"
    8456     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8457     break;
    8458 
    8459   case 627:
    8460 
    8461 /* Line 1806 of yacc.c  */
    8462 #line 2362 "parser.yy"
    8463     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8464     break;
    8465 
    8466   case 628:
    8467 
    8468 /* Line 1806 of yacc.c  */
    8469 #line 2364 "parser.yy"
    8470     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8471     break;
    8472 
    8473   case 629:
    8474 
    8475 /* Line 1806 of yacc.c  */
    8476 #line 2366 "parser.yy"
    8477     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8478     break;
    8479 
    8480   case 630:
    8481 
    8482 /* Line 1806 of yacc.c  */
    8483 #line 2397 "parser.yy"
    8484     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8485     break;
    8486 
    8487   case 632:
    8488 
    8489 /* Line 1806 of yacc.c  */
    8490 #line 2400 "parser.yy"
    8491     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8492     break;
    8493 
    84948440  case 633:
    84958441
    84968442/* Line 1806 of yacc.c  */
    8497 #line 2402 "parser.yy"
    8498     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8499     break;
    8500 
    8501   case 634:
    8502 
    8503 /* Line 1806 of yacc.c  */
    8504 #line 2407 "parser.yy"
     8443#line 2403 "parser.yy"
    85058444    {
    85068445                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85098448    break;
    85108449
    8511   case 635:
    8512 
    8513 /* Line 1806 of yacc.c  */
    8514 #line 2412 "parser.yy"
     8450  case 634:
     8451
     8452/* Line 1806 of yacc.c  */
     8453#line 2408 "parser.yy"
    85158454    {
    85168455                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85198458    break;
    85208459
     8460  case 635:
     8461
     8462/* Line 1806 of yacc.c  */
     8463#line 2416 "parser.yy"
     8464    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8465    break;
     8466
    85218467  case 636:
    85228468
    85238469/* Line 1806 of yacc.c  */
     8470#line 2418 "parser.yy"
     8471    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8472    break;
     8473
     8474  case 637:
     8475
     8476/* Line 1806 of yacc.c  */
    85248477#line 2420 "parser.yy"
     8478    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8479    break;
     8480
     8481  case 638:
     8482
     8483/* Line 1806 of yacc.c  */
     8484#line 2425 "parser.yy"
     8485    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8486    break;
     8487
     8488  case 639:
     8489
     8490/* Line 1806 of yacc.c  */
     8491#line 2427 "parser.yy"
     8492    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8493    break;
     8494
     8495  case 640:
     8496
     8497/* Line 1806 of yacc.c  */
     8498#line 2432 "parser.yy"
     8499    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8500    break;
     8501
     8502  case 641:
     8503
     8504/* Line 1806 of yacc.c  */
     8505#line 2434 "parser.yy"
     8506    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8507    break;
     8508
     8509  case 643:
     8510
     8511/* Line 1806 of yacc.c  */
     8512#line 2449 "parser.yy"
     8513    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8514    break;
     8515
     8516  case 644:
     8517
     8518/* Line 1806 of yacc.c  */
     8519#line 2451 "parser.yy"
     8520    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8521    break;
     8522
     8523  case 645:
     8524
     8525/* Line 1806 of yacc.c  */
     8526#line 2456 "parser.yy"
     8527    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8528    break;
     8529
     8530  case 646:
     8531
     8532/* Line 1806 of yacc.c  */
     8533#line 2458 "parser.yy"
     8534    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8535    break;
     8536
     8537  case 647:
     8538
     8539/* Line 1806 of yacc.c  */
     8540#line 2460 "parser.yy"
    85258541    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85268542    break;
    85278543
    8528   case 637:
    8529 
    8530 /* Line 1806 of yacc.c  */
    8531 #line 2422 "parser.yy"
     8544  case 648:
     8545
     8546/* Line 1806 of yacc.c  */
     8547#line 2462 "parser.yy"
    85328548    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85338549    break;
    85348550
    8535   case 638:
    8536 
    8537 /* Line 1806 of yacc.c  */
    8538 #line 2424 "parser.yy"
     8551  case 649:
     8552
     8553/* Line 1806 of yacc.c  */
     8554#line 2464 "parser.yy"
    85398555    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85408556    break;
    85418557
    8542   case 639:
    8543 
    8544 /* Line 1806 of yacc.c  */
    8545 #line 2429 "parser.yy"
     8558  case 651:
     8559
     8560/* Line 1806 of yacc.c  */
     8561#line 2470 "parser.yy"
     8562    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8563    break;
     8564
     8565  case 652:
     8566
     8567/* Line 1806 of yacc.c  */
     8568#line 2472 "parser.yy"
     8569    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8570    break;
     8571
     8572  case 653:
     8573
     8574/* Line 1806 of yacc.c  */
     8575#line 2474 "parser.yy"
     8576    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8577    break;
     8578
     8579  case 654:
     8580
     8581/* Line 1806 of yacc.c  */
     8582#line 2479 "parser.yy"
     8583    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8584    break;
     8585
     8586  case 655:
     8587
     8588/* Line 1806 of yacc.c  */
     8589#line 2481 "parser.yy"
     8590    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8591    break;
     8592
     8593  case 656:
     8594
     8595/* Line 1806 of yacc.c  */
     8596#line 2483 "parser.yy"
     8597    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8598    break;
     8599
     8600  case 657:
     8601
     8602/* Line 1806 of yacc.c  */
     8603#line 2489 "parser.yy"
     8604    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8605    break;
     8606
     8607  case 658:
     8608
     8609/* Line 1806 of yacc.c  */
     8610#line 2491 "parser.yy"
     8611    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8612    break;
     8613
     8614  case 660:
     8615
     8616/* Line 1806 of yacc.c  */
     8617#line 2497 "parser.yy"
     8618    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8619    break;
     8620
     8621  case 661:
     8622
     8623/* Line 1806 of yacc.c  */
     8624#line 2499 "parser.yy"
     8625    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8626    break;
     8627
     8628  case 662:
     8629
     8630/* Line 1806 of yacc.c  */
     8631#line 2501 "parser.yy"
     8632    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8633    break;
     8634
     8635  case 663:
     8636
     8637/* Line 1806 of yacc.c  */
     8638#line 2503 "parser.yy"
     8639    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8640    break;
     8641
     8642  case 665:
     8643
     8644/* Line 1806 of yacc.c  */
     8645#line 2518 "parser.yy"
     8646    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8647    break;
     8648
     8649  case 666:
     8650
     8651/* Line 1806 of yacc.c  */
     8652#line 2520 "parser.yy"
     8653    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8654    break;
     8655
     8656  case 667:
     8657
     8658/* Line 1806 of yacc.c  */
     8659#line 2525 "parser.yy"
     8660    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8661    break;
     8662
     8663  case 668:
     8664
     8665/* Line 1806 of yacc.c  */
     8666#line 2527 "parser.yy"
     8667    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8668    break;
     8669
     8670  case 669:
     8671
     8672/* Line 1806 of yacc.c  */
     8673#line 2529 "parser.yy"
     8674    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8675    break;
     8676
     8677  case 670:
     8678
     8679/* Line 1806 of yacc.c  */
     8680#line 2531 "parser.yy"
     8681    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8682    break;
     8683
     8684  case 671:
     8685
     8686/* Line 1806 of yacc.c  */
     8687#line 2533 "parser.yy"
     8688    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8689    break;
     8690
     8691  case 673:
     8692
     8693/* Line 1806 of yacc.c  */
     8694#line 2539 "parser.yy"
     8695    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8696    break;
     8697
     8698  case 674:
     8699
     8700/* Line 1806 of yacc.c  */
     8701#line 2541 "parser.yy"
     8702    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8703    break;
     8704
     8705  case 675:
     8706
     8707/* Line 1806 of yacc.c  */
     8708#line 2543 "parser.yy"
     8709    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8710    break;
     8711
     8712  case 676:
     8713
     8714/* Line 1806 of yacc.c  */
     8715#line 2548 "parser.yy"
     8716    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8717    break;
     8718
     8719  case 677:
     8720
     8721/* Line 1806 of yacc.c  */
     8722#line 2550 "parser.yy"
     8723    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8724    break;
     8725
     8726  case 678:
     8727
     8728/* Line 1806 of yacc.c  */
     8729#line 2552 "parser.yy"
     8730    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8731    break;
     8732
     8733  case 680:
     8734
     8735/* Line 1806 of yacc.c  */
     8736#line 2559 "parser.yy"
    85468737    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85478738    break;
    85488739
    8549   case 640:
    8550 
    8551 /* Line 1806 of yacc.c  */
    8552 #line 2431 "parser.yy"
     8740  case 682:
     8741
     8742/* Line 1806 of yacc.c  */
     8743#line 2570 "parser.yy"
     8744    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8745    break;
     8746
     8747  case 683:
     8748
     8749/* Line 1806 of yacc.c  */
     8750#line 2573 "parser.yy"
     8751    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8752    break;
     8753
     8754  case 684:
     8755
     8756/* Line 1806 of yacc.c  */
     8757#line 2575 "parser.yy"
     8758    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8759    break;
     8760
     8761  case 685:
     8762
     8763/* Line 1806 of yacc.c  */
     8764#line 2578 "parser.yy"
     8765    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8766    break;
     8767
     8768  case 686:
     8769
     8770/* Line 1806 of yacc.c  */
     8771#line 2580 "parser.yy"
     8772    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8773    break;
     8774
     8775  case 687:
     8776
     8777/* Line 1806 of yacc.c  */
     8778#line 2582 "parser.yy"
     8779    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8780    break;
     8781
     8782  case 689:
     8783
     8784/* Line 1806 of yacc.c  */
     8785#line 2596 "parser.yy"
     8786    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8787    break;
     8788
     8789  case 690:
     8790
     8791/* Line 1806 of yacc.c  */
     8792#line 2598 "parser.yy"
     8793    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8794    break;
     8795
     8796  case 691:
     8797
     8798/* Line 1806 of yacc.c  */
     8799#line 2603 "parser.yy"
     8800    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8801    break;
     8802
     8803  case 692:
     8804
     8805/* Line 1806 of yacc.c  */
     8806#line 2605 "parser.yy"
     8807    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8808    break;
     8809
     8810  case 693:
     8811
     8812/* Line 1806 of yacc.c  */
     8813#line 2607 "parser.yy"
     8814    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8815    break;
     8816
     8817  case 694:
     8818
     8819/* Line 1806 of yacc.c  */
     8820#line 2609 "parser.yy"
     8821    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8822    break;
     8823
     8824  case 695:
     8825
     8826/* Line 1806 of yacc.c  */
     8827#line 2611 "parser.yy"
     8828    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8829    break;
     8830
     8831  case 697:
     8832
     8833/* Line 1806 of yacc.c  */
     8834#line 2617 "parser.yy"
    85538835    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85548836    break;
    85558837
    8556   case 641:
    8557 
    8558 /* Line 1806 of yacc.c  */
    8559 #line 2436 "parser.yy"
    8560     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8561     break;
    8562 
    8563   case 642:
    8564 
    8565 /* Line 1806 of yacc.c  */
    8566 #line 2438 "parser.yy"
     8838  case 698:
     8839
     8840/* Line 1806 of yacc.c  */
     8841#line 2619 "parser.yy"
     8842    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8843    break;
     8844
     8845  case 699:
     8846
     8847/* Line 1806 of yacc.c  */
     8848#line 2621 "parser.yy"
     8849    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8850    break;
     8851
     8852  case 700:
     8853
     8854/* Line 1806 of yacc.c  */
     8855#line 2626 "parser.yy"
    85678856    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85688857    break;
    85698858
    8570   case 644:
    8571 
    8572 /* Line 1806 of yacc.c  */
    8573 #line 2453 "parser.yy"
    8574     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8575     break;
    8576 
    8577   case 645:
    8578 
    8579 /* Line 1806 of yacc.c  */
    8580 #line 2455 "parser.yy"
    8581     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8582     break;
    8583 
    8584   case 646:
    8585 
    8586 /* Line 1806 of yacc.c  */
    8587 #line 2460 "parser.yy"
    8588     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8589     break;
    8590 
    8591   case 647:
    8592 
    8593 /* Line 1806 of yacc.c  */
    8594 #line 2462 "parser.yy"
    8595     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8596     break;
    8597 
    8598   case 648:
    8599 
    8600 /* Line 1806 of yacc.c  */
    8601 #line 2464 "parser.yy"
    8602     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8603     break;
    8604 
    8605   case 649:
    8606 
    8607 /* Line 1806 of yacc.c  */
    8608 #line 2466 "parser.yy"
    8609     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8610     break;
    8611 
    8612   case 650:
    8613 
    8614 /* Line 1806 of yacc.c  */
    8615 #line 2468 "parser.yy"
     8859  case 701:
     8860
     8861/* Line 1806 of yacc.c  */
     8862#line 2628 "parser.yy"
    86168863    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86178864    break;
    86188865
    8619   case 652:
    8620 
    8621 /* Line 1806 of yacc.c  */
    8622 #line 2474 "parser.yy"
    8623     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8624     break;
    8625 
    8626   case 653:
    8627 
    8628 /* Line 1806 of yacc.c  */
    8629 #line 2476 "parser.yy"
    8630     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8631     break;
    8632 
    8633   case 654:
    8634 
    8635 /* Line 1806 of yacc.c  */
    8636 #line 2478 "parser.yy"
    8637     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8638     break;
    8639 
    8640   case 655:
    8641 
    8642 /* Line 1806 of yacc.c  */
    8643 #line 2483 "parser.yy"
    8644     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8645     break;
    8646 
    8647   case 656:
    8648 
    8649 /* Line 1806 of yacc.c  */
    8650 #line 2485 "parser.yy"
    8651     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8652     break;
    8653 
    8654   case 657:
    8655 
    8656 /* Line 1806 of yacc.c  */
    8657 #line 2487 "parser.yy"
    8658     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8659     break;
    8660 
    8661   case 658:
    8662 
    8663 /* Line 1806 of yacc.c  */
    8664 #line 2493 "parser.yy"
    8665     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8666     break;
    8667 
    8668   case 659:
    8669 
    8670 /* Line 1806 of yacc.c  */
    8671 #line 2495 "parser.yy"
    8672     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8673     break;
    8674 
    8675   case 661:
    8676 
    8677 /* Line 1806 of yacc.c  */
    8678 #line 2501 "parser.yy"
    8679     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8680     break;
    8681 
    8682   case 662:
    8683 
    8684 /* Line 1806 of yacc.c  */
    8685 #line 2503 "parser.yy"
    8686     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8687     break;
    8688 
    8689   case 663:
    8690 
    8691 /* Line 1806 of yacc.c  */
    8692 #line 2505 "parser.yy"
    8693     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8694     break;
    8695 
    8696   case 664:
    8697 
    8698 /* Line 1806 of yacc.c  */
    8699 #line 2507 "parser.yy"
    8700     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8701     break;
    8702 
    8703   case 666:
    8704 
    8705 /* Line 1806 of yacc.c  */
    8706 #line 2522 "parser.yy"
    8707     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8708     break;
    8709 
    8710   case 667:
    8711 
    8712 /* Line 1806 of yacc.c  */
    8713 #line 2524 "parser.yy"
    8714     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8715     break;
    8716 
    8717   case 668:
    8718 
    8719 /* Line 1806 of yacc.c  */
    8720 #line 2529 "parser.yy"
    8721     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8722     break;
    8723 
    8724   case 669:
    8725 
    8726 /* Line 1806 of yacc.c  */
    8727 #line 2531 "parser.yy"
    8728     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8729     break;
    8730 
    8731   case 670:
    8732 
    8733 /* Line 1806 of yacc.c  */
    8734 #line 2533 "parser.yy"
    8735     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8736     break;
    8737 
    8738   case 671:
    8739 
    8740 /* Line 1806 of yacc.c  */
    8741 #line 2535 "parser.yy"
    8742     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8743     break;
    8744 
    8745   case 672:
    8746 
    8747 /* Line 1806 of yacc.c  */
    8748 #line 2537 "parser.yy"
    8749     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8750     break;
    8751 
    8752   case 674:
    8753 
    8754 /* Line 1806 of yacc.c  */
    8755 #line 2543 "parser.yy"
    8756     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8757     break;
    8758 
    8759   case 675:
    8760 
    8761 /* Line 1806 of yacc.c  */
    8762 #line 2545 "parser.yy"
    8763     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8764     break;
    8765 
    8766   case 676:
    8767 
    8768 /* Line 1806 of yacc.c  */
    8769 #line 2547 "parser.yy"
    8770     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8771     break;
    8772 
    8773   case 677:
    8774 
    8775 /* Line 1806 of yacc.c  */
    8776 #line 2552 "parser.yy"
    8777     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8778     break;
    8779 
    8780   case 678:
    8781 
    8782 /* Line 1806 of yacc.c  */
    8783 #line 2554 "parser.yy"
    8784     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8785     break;
    8786 
    8787   case 679:
    8788 
    8789 /* Line 1806 of yacc.c  */
    8790 #line 2556 "parser.yy"
    8791     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8792     break;
    8793 
    8794   case 681:
    8795 
    8796 /* Line 1806 of yacc.c  */
    8797 #line 2563 "parser.yy"
    8798     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8799     break;
    8800 
    8801   case 683:
    8802 
    8803 /* Line 1806 of yacc.c  */
    8804 #line 2574 "parser.yy"
    8805     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8806     break;
    8807 
    8808   case 684:
    8809 
    8810 /* Line 1806 of yacc.c  */
    8811 #line 2577 "parser.yy"
    8812     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8813     break;
    8814 
    8815   case 685:
    8816 
    8817 /* Line 1806 of yacc.c  */
    8818 #line 2579 "parser.yy"
    8819     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8820     break;
    8821 
    8822   case 686:
    8823 
    8824 /* Line 1806 of yacc.c  */
    8825 #line 2582 "parser.yy"
    8826     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8827     break;
    8828 
    8829   case 687:
    8830 
    8831 /* Line 1806 of yacc.c  */
    8832 #line 2584 "parser.yy"
    8833     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8834     break;
    8835 
    8836   case 688:
    8837 
    8838 /* Line 1806 of yacc.c  */
    8839 #line 2586 "parser.yy"
    8840     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8841     break;
    8842 
    8843   case 690:
    8844 
    8845 /* Line 1806 of yacc.c  */
    8846 #line 2600 "parser.yy"
    8847     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8848     break;
    8849 
    8850   case 691:
    8851 
    8852 /* Line 1806 of yacc.c  */
    8853 #line 2602 "parser.yy"
    8854     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8855     break;
    8856 
    8857   case 692:
    8858 
    8859 /* Line 1806 of yacc.c  */
    8860 #line 2607 "parser.yy"
    8861     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8862     break;
    8863 
    8864   case 693:
    8865 
    8866 /* Line 1806 of yacc.c  */
    8867 #line 2609 "parser.yy"
    8868     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8869     break;
    8870 
    8871   case 694:
    8872 
    8873 /* Line 1806 of yacc.c  */
    8874 #line 2611 "parser.yy"
    8875     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8876     break;
    8877 
    8878   case 695:
    8879 
    8880 /* Line 1806 of yacc.c  */
    8881 #line 2613 "parser.yy"
    8882     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8883     break;
    8884 
    8885   case 696:
    8886 
    8887 /* Line 1806 of yacc.c  */
    8888 #line 2615 "parser.yy"
    8889     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8890     break;
    8891 
    8892   case 698:
    8893 
    8894 /* Line 1806 of yacc.c  */
    8895 #line 2621 "parser.yy"
    8896     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8897     break;
    8898 
    8899   case 699:
    8900 
    8901 /* Line 1806 of yacc.c  */
    8902 #line 2623 "parser.yy"
    8903     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8904     break;
    8905 
    8906   case 700:
    8907 
    8908 /* Line 1806 of yacc.c  */
    8909 #line 2625 "parser.yy"
    8910     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8911     break;
    8912 
    8913   case 701:
    8914 
    8915 /* Line 1806 of yacc.c  */
    8916 #line 2630 "parser.yy"
    8917     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8918     break;
    8919 
    8920   case 702:
    8921 
    8922 /* Line 1806 of yacc.c  */
    8923 #line 2632 "parser.yy"
    8924     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8925     break;
    8926 
    8927   case 705:
    8928 
    8929 /* Line 1806 of yacc.c  */
    8930 #line 2642 "parser.yy"
     8866  case 704:
     8867
     8868/* Line 1806 of yacc.c  */
     8869#line 2638 "parser.yy"
    89318870    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89328871    break;
    89338872
     8873  case 707:
     8874
     8875/* Line 1806 of yacc.c  */
     8876#line 2648 "parser.yy"
     8877    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8878    break;
     8879
    89348880  case 708:
     8881
     8882/* Line 1806 of yacc.c  */
     8883#line 2650 "parser.yy"
     8884    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8885    break;
     8886
     8887  case 709:
    89358888
    89368889/* Line 1806 of yacc.c  */
     
    89398892    break;
    89408893
    8941   case 709:
     8894  case 710:
    89428895
    89438896/* Line 1806 of yacc.c  */
     
    89468899    break;
    89478900
    8948   case 710:
     8901  case 711:
    89498902
    89508903/* Line 1806 of yacc.c  */
     
    89538906    break;
    89548907
    8955   case 711:
     8908  case 712:
    89568909
    89578910/* Line 1806 of yacc.c  */
     
    89608913    break;
    89618914
    8962   case 712:
    8963 
    8964 /* Line 1806 of yacc.c  */
    8965 #line 2660 "parser.yy"
    8966     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8967     break;
    8968 
    89698915  case 713:
    89708916
    89718917/* Line 1806 of yacc.c  */
    8972 #line 2662 "parser.yy"
    8973     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8918#line 2665 "parser.yy"
     8919    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89748920    break;
    89758921
     
    89778923
    89788924/* Line 1806 of yacc.c  */
     8925#line 2667 "parser.yy"
     8926    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8927    break;
     8928
     8929  case 715:
     8930
     8931/* Line 1806 of yacc.c  */
    89798932#line 2669 "parser.yy"
     8933    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8934    break;
     8935
     8936  case 716:
     8937
     8938/* Line 1806 of yacc.c  */
     8939#line 2671 "parser.yy"
     8940    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8941    break;
     8942
     8943  case 717:
     8944
     8945/* Line 1806 of yacc.c  */
     8946#line 2673 "parser.yy"
     8947    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8948    break;
     8949
     8950  case 718:
     8951
     8952/* Line 1806 of yacc.c  */
     8953#line 2675 "parser.yy"
    89808954    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89818955    break;
    89828956
    8983   case 715:
    8984 
    8985 /* Line 1806 of yacc.c  */
    8986 #line 2671 "parser.yy"
    8987     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8988     break;
    8989 
    8990   case 716:
    8991 
    8992 /* Line 1806 of yacc.c  */
    8993 #line 2673 "parser.yy"
    8994     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8995     break;
    8996 
    8997   case 717:
    8998 
    8999 /* Line 1806 of yacc.c  */
    9000 #line 2675 "parser.yy"
    9001     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9002     break;
    9003 
    9004   case 718:
     8957  case 719:
    90058958
    90068959/* Line 1806 of yacc.c  */
     
    90098962    break;
    90108963
    9011   case 719:
     8964  case 720:
    90128965
    90138966/* Line 1806 of yacc.c  */
    90148967#line 2679 "parser.yy"
    9015     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9016     break;
    9017 
    9018   case 720:
     8968    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8969    break;
     8970
     8971  case 721:
    90198972
    90208973/* Line 1806 of yacc.c  */
    90218974#line 2681 "parser.yy"
     8975    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8976    break;
     8977
     8978  case 722:
     8979
     8980/* Line 1806 of yacc.c  */
     8981#line 2683 "parser.yy"
    90228982    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90238983    break;
    90248984
    9025   case 721:
    9026 
    9027 /* Line 1806 of yacc.c  */
    9028 #line 2683 "parser.yy"
    9029     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9030     break;
    9031 
    9032   case 722:
    9033 
    9034 /* Line 1806 of yacc.c  */
    9035 #line 2685 "parser.yy"
    9036     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9037     break;
    9038 
    90398985  case 723:
    90408986
    90418987/* Line 1806 of yacc.c  */
    9042 #line 2687 "parser.yy"
    9043     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8988#line 2688 "parser.yy"
     8989    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90448990    break;
    90458991
     
    90478993
    90488994/* Line 1806 of yacc.c  */
    9049 #line 2692 "parser.yy"
    9050     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8995#line 2690 "parser.yy"
     8996    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90518997    break;
    90528998
     
    90549000
    90559001/* Line 1806 of yacc.c  */
    9056 #line 2694 "parser.yy"
    9057     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     9002#line 2695 "parser.yy"
     9003    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90589004    break;
    90599005
     
    90619007
    90629008/* Line 1806 of yacc.c  */
    9063 #line 2699 "parser.yy"
    9064     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9065     break;
    9066 
    9067   case 727:
    9068 
    9069 /* Line 1806 of yacc.c  */
    9070 #line 2701 "parser.yy"
     9009#line 2697 "parser.yy"
    90719010    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90729011    break;
    90739012
    9074   case 729:
    9075 
    9076 /* Line 1806 of yacc.c  */
    9077 #line 2728 "parser.yy"
     9013  case 728:
     9014
     9015/* Line 1806 of yacc.c  */
     9016#line 2724 "parser.yy"
    90789017    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90799018    break;
    90809019
     9020  case 732:
     9021
     9022/* Line 1806 of yacc.c  */
     9023#line 2735 "parser.yy"
     9024    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9025    break;
     9026
    90819027  case 733:
     9028
     9029/* Line 1806 of yacc.c  */
     9030#line 2737 "parser.yy"
     9031    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9032    break;
     9033
     9034  case 734:
    90829035
    90839036/* Line 1806 of yacc.c  */
     
    90869039    break;
    90879040
    9088   case 734:
     9041  case 735:
    90899042
    90909043/* Line 1806 of yacc.c  */
     
    90939046    break;
    90949047
    9095   case 735:
     9048  case 736:
    90969049
    90979050/* Line 1806 of yacc.c  */
     
    91009053    break;
    91019054
    9102   case 736:
     9055  case 737:
    91039056
    91049057/* Line 1806 of yacc.c  */
     
    91079060    break;
    91089061
    9109   case 737:
    9110 
    9111 /* Line 1806 of yacc.c  */
    9112 #line 2747 "parser.yy"
    9113     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9114     break;
    9115 
    91169062  case 738:
    91179063
    91189064/* Line 1806 of yacc.c  */
    9119 #line 2749 "parser.yy"
    9120     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9065#line 2752 "parser.yy"
     9066    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91219067    break;
    91229068
     
    91249070
    91259071/* Line 1806 of yacc.c  */
     9072#line 2754 "parser.yy"
     9073    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9074    break;
     9075
     9076  case 740:
     9077
     9078/* Line 1806 of yacc.c  */
    91269079#line 2756 "parser.yy"
     9080    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9081    break;
     9082
     9083  case 741:
     9084
     9085/* Line 1806 of yacc.c  */
     9086#line 2758 "parser.yy"
    91279087    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91289088    break;
    91299089
    9130   case 740:
    9131 
    9132 /* Line 1806 of yacc.c  */
    9133 #line 2758 "parser.yy"
     9090  case 742:
     9091
     9092/* Line 1806 of yacc.c  */
     9093#line 2760 "parser.yy"
    91349094    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91359095    break;
    91369096
    9137   case 741:
    9138 
    9139 /* Line 1806 of yacc.c  */
    9140 #line 2760 "parser.yy"
     9097  case 743:
     9098
     9099/* Line 1806 of yacc.c  */
     9100#line 2762 "parser.yy"
    91419101    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91429102    break;
    91439103
    9144   case 742:
    9145 
    9146 /* Line 1806 of yacc.c  */
    9147 #line 2762 "parser.yy"
    9148     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9149     break;
    9150 
    9151   case 743:
    9152 
    9153 /* Line 1806 of yacc.c  */
    9154 #line 2764 "parser.yy"
    9155     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9156     break;
    9157 
    91589104  case 744:
    91599105
    91609106/* Line 1806 of yacc.c  */
    9161 #line 2766 "parser.yy"
    9162     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9107#line 2767 "parser.yy"
     9108    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91639109    break;
    91649110
     
    91669112
    91679113/* Line 1806 of yacc.c  */
    9168 #line 2771 "parser.yy"
    9169     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9114#line 2772 "parser.yy"
     9115    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    91709116    break;
    91719117
     
    91739119
    91749120/* Line 1806 of yacc.c  */
     9121#line 2774 "parser.yy"
     9122    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9123    break;
     9124
     9125  case 747:
     9126
     9127/* Line 1806 of yacc.c  */
    91759128#line 2776 "parser.yy"
    9176     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    9177     break;
    9178 
    9179   case 747:
    9180 
    9181 /* Line 1806 of yacc.c  */
    9182 #line 2778 "parser.yy"
    91839129    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91849130    break;
    91859131
    9186   case 748:
    9187 
    9188 /* Line 1806 of yacc.c  */
    9189 #line 2780 "parser.yy"
    9190     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9132  case 750:
     9133
     9134/* Line 1806 of yacc.c  */
     9135#line 2800 "parser.yy"
     9136    { (yyval.en) = 0; }
    91919137    break;
    91929138
     
    91949140
    91959141/* Line 1806 of yacc.c  */
    9196 #line 2804 "parser.yy"
    9197     { (yyval.en) = 0; }
    9198     break;
    9199 
    9200   case 752:
    9201 
    9202 /* Line 1806 of yacc.c  */
    9203 #line 2806 "parser.yy"
     9142#line 2802 "parser.yy"
    92049143    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    92059144    break;
     
    92089147
    92099148/* Line 1806 of yacc.c  */
    9210 #line 9211 "Parser/parser.cc"
     9149#line 9150 "Parser/parser.cc"
    92119150      default: break;
    92129151    }
     
    94399378
    94409379/* Line 2067 of yacc.c  */
    9441 #line 2809 "parser.yy"
     9380#line 2805 "parser.yy"
    94429381
    94439382// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.