Changes in / [d58a39a0:a7976d79]


Ignore:
Location:
src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    rd58a39a0 ra7976d79  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Oct  3 18:03:08 2016
    13 // Update Count     : 651
     12// Last Modified On : Mon Sep 26 22:18:40 2016
     13// Update Count     : 640
    1414//
    1515
     
    5656                extension( false ) {
    5757
    58 //      variable.name = nullptr;
    59         variable.tyClass = NoTypeClass;
     58        variable.name = nullptr;
     59        variable.tyClass = DeclarationNode::Otype;
    6060        variable.assertions = nullptr;
    6161
    62 //      attr.name = nullptr;
     62        attr.name = nullptr;
    6363        attr.expr = nullptr;
    6464        attr.type = nullptr;
     
    6666
    6767DeclarationNode::~DeclarationNode() {
    68 //      delete attr.name;
     68        delete attr.name;
    6969        delete attr.expr;
    7070        delete attr.type;
    7171
    72 //      delete variable.name;
     72        delete variable.name;
    7373        delete variable.assertions;
    7474
     
    9191        newnode->linkage = linkage;
    9292
    93 //      newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr;
     93        newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr;
    9494        newnode->variable.tyClass = variable.tyClass;
    9595        newnode->variable.assertions = maybeClone( variable.assertions );
    9696
    97 //      newnode->attr.name = attr.name ? new string( *attr.name ) : nullptr;
     97        newnode->attr.name = attr.name ? new string( *attr.name ) : nullptr;
    9898        newnode->attr.expr = maybeClone( attr.expr );
    9999        newnode->attr.type = maybeClone( attr.type );
     
    114114
    115115        if ( linkage != LinkageSpec::Cforall ) {
    116                 os << LinkageSpec::linkageName( linkage ) << " ";
     116                os << LinkageSpec::toString( linkage ) << " ";
    117117        } // if
    118118
     
    283283        DeclarationNode * newnode = new DeclarationNode;
    284284        newnode->type = nullptr;
    285         assert( ! newnode->name );
    286 //      newnode->variable.name = name;
    287         newnode->name = name;
    288285        newnode->variable.tyClass = tc;
    289         newnode->variable.assertions = nullptr;
     286        newnode->variable.name = name;
    290287        return newnode;
    291288} // DeclarationNode::newTypeParam
     
    378375        DeclarationNode * newnode = new DeclarationNode;
    379376        newnode->type = nullptr;
    380 //      newnode->attr.name = name;
    381         newnode->name = name;
     377        newnode->attr.name = name;
    382378        newnode->attr.expr = expr;
    383379        return newnode;
     
    387383        DeclarationNode * newnode = new DeclarationNode;
    388384        newnode->type = nullptr;
    389 //      newnode->attr.name = name;
    390         newnode->name = name;
     385        newnode->attr.name = name;
    391386        newnode->attr.type = type;
    392387        return newnode;
     
    609604
    610605DeclarationNode * DeclarationNode::addAssertions( DeclarationNode * assertions ) {
    611         if ( variable.tyClass != NoTypeClass ) {
     606        if ( variable.name ) {
    612607                if ( variable.assertions ) {
    613608                        variable.assertions->appendList( assertions );
     
    627622                } // if
    628623                break;
     624          // case TypeData::Variable:
     625          //    if ( variable.assertions ) {
     626          //            variable.assertions->appendList( assertions );
     627          //    } else {
     628          //            variable.assertions = assertions;
     629          //    } // if
     630          //    break;
    629631          default:
    630632                assert( false );
     
    936938        if ( ! error.empty() ) throw SemanticError( error + " in declaration of ", this );
    937939
    938 //      if ( variable.name ) {
    939         if ( variable.tyClass != NoTypeClass ) {
     940        if ( variable.name ) {
    940941                static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype };
    941 //              TypeDecl * ret = new TypeDecl( *variable.name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] );
    942                 TypeDecl * ret = new TypeDecl( *name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] );
     942                TypeDecl * ret = new TypeDecl( *variable.name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] );
    943943                buildList( variable.assertions, ret->get_assertions() );
    944944                return ret;
     
    960960        assert( type );
    961961
    962         if ( attr.expr ) {
    963 //              return new AttrType( buildQualifiers( type ), *attr.name, attr.expr->build() );
    964                 return new AttrType( buildQualifiers( type ), *name, attr.expr->build() );
    965         } else if ( attr.type ) {
    966 //              return new AttrType( buildQualifiers( type ), *attr.name, attr.type->buildType() );
    967                 return new AttrType( buildQualifiers( type ), *name, attr.type->buildType() );
     962        if ( attr.name ) {
     963                AttrType * ret;
     964                if ( attr.expr ) {
     965                        ret = new AttrType( buildQualifiers( type ), *attr.name, attr.expr->build() );
     966                } else {
     967                        assert( attr.type );
     968                        ret = new AttrType( buildQualifiers( type ), *attr.name, attr.type->buildType() );
     969                } // if
     970                return ret;
    968971        } // if
    969972
  • src/Parser/InitializerNode.cc

    rd58a39a0 ra7976d79  
    1010// Created On       : Sat May 16 13:20:24 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Oct  1 23:09:51 2016
    13 // Update Count     : 21
     12// Last Modified On : Mon Aug 15 18:27:02 2016
     13// Update Count     : 20
    1414//
    1515
     
    2323
    2424InitializerNode::InitializerNode( ExpressionNode *_expr, bool aggrp, ExpressionNode *des )
    25                 : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {
     25        : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {
    2626        if ( aggrp )
    2727                kids = dynamic_cast< InitializerNode * >( get_next() );
     
    3232
    3333InitializerNode::InitializerNode( InitializerNode *init, bool aggrp, ExpressionNode *des )
    34                 : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {
     34        : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {
    3535        if ( init != 0 )
    3636                set_last( init );
     
    7979
    8080Initializer *InitializerNode::build() const {
     81        // if ( get_expression() == 0 ) return 0;  // XXX (?)
     82
    8183        if ( aggregate ) {
     84                //assert( next_init() != 0 );
     85
    8286                std::list< Initializer * > initlist;
    8387                buildList< Initializer, InitializerNode >( next_init(), initlist );
  • src/Parser/LinkageSpec.cc

    rd58a39a0 ra7976d79  
    1010// Created On       : Sat May 16 13:22:09 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Oct  2 23:16:21 2016
    13 // Update Count     : 23
     12// Last Modified On : Sun Aug 21 12:32:53 2016
     13// Update Count     : 17
    1414//
    1515
     
    1717#include <string>
    1818#include <cassert>
    19 using namespace std;
    2019
    2120#include "LinkageSpec.h"
    2221#include "Common/SemanticError.h"
    2322
    24 LinkageSpec::Spec LinkageSpec::linkageCheck( const string * spec ) {
    25         unique_ptr<const string> guard( spec ); // allocated by lexer
    26         if ( *spec == "\"Cforall\"" ) {
     23LinkageSpec::Spec LinkageSpec::fromString( const std::string &spec ) {
     24        std::unique_ptr<const std::string> guard(&spec);                // allocated by lexer
     25        if ( spec == "\"Cforall\"" ) {
    2726                return Cforall;
    28         } else if ( *spec == "\"C\"" ) {
     27        } else if ( spec == "\"C\"" ) {
    2928                return C;
    3029        } else {
    31                 throw SemanticError( "Invalid linkage specifier " + *spec );
     30                throw SemanticError( "Invalid linkage specifier " + spec );
    3231        } // if
    3332}
    3433
    35 string LinkageSpec::linkageName( LinkageSpec::Spec linkage ) {
    36         assert( 0 <= linkage && linkage < LinkageSpec::NoOfSpecs );
     34std::string LinkageSpec::toString( LinkageSpec::Spec linkage ) {
     35        assert( linkage >= 0 && linkage < LinkageSpec::NoOfSpecs );
    3736        static const char *linkageKinds[LinkageSpec::NoOfSpecs] = {
    3837                "intrinsic", "Cforall", "C", "automatically generated", "compiler built-in",
     
    4241
    4342bool LinkageSpec::isDecoratable( Spec spec ) {
    44         assert( 0 <= spec && spec < LinkageSpec::NoOfSpecs );
     43        assert( spec >= 0 && spec < LinkageSpec::NoOfSpecs );
    4544        static bool decoratable[LinkageSpec::NoOfSpecs] = {
    4645                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
     
    5150
    5251bool LinkageSpec::isGeneratable( Spec spec ) {
    53         assert( 0 <= spec && spec < LinkageSpec::NoOfSpecs );
     52        assert( spec >= 0 && spec < LinkageSpec::NoOfSpecs );
    5453        static bool generatable[LinkageSpec::NoOfSpecs] = {
    5554                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
  • src/Parser/LinkageSpec.h

    rd58a39a0 ra7976d79  
    1010// Created On       : Sat May 16 13:24:28 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Oct  1 23:03:17 2016
    13 // Update Count     : 11
     12// Last Modified On : Sat Aug 20 19:22:23 2016
     13// Update Count     : 8
    1414//
    1515
     
    2929        };
    3030 
    31         static Spec linkageCheck( const std::string * );
    32         static std::string linkageName( Spec );
     31        static Spec fromString( const std::string & );
     32        static std::string toString( Spec );
    3333 
    3434        static bool isDecoratable( Spec );
  • src/Parser/ParseNode.cc

    rd58a39a0 ra7976d79  
    1010// Created On       : Sat May 16 13:26:29 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Oct  1 23:10:43 2016
    13 // Update Count     : 127
     12// Last Modified On : Wed Aug 17 23:14:16 2016
     13// Update Count     : 126
    1414//
    1515
     
    2020
    2121std::ostream & operator<<( std::ostream & out, const ParseNode * node ) {
    22         node->print( out );
    23         return out;
     22  node->print( out );
     23  return out;
    2424}
    2525
  • src/Parser/ParseNode.h

    rd58a39a0 ra7976d79  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Oct  3 18:03:08 2016
    13 // Update Count     : 636
     12// Last Modified On : Sat Sep 24 11:12:04 2016
     13// Update Count     : 633
    1414//
    1515
     
    198198        enum Signedness { Signed, Unsigned, NoSignedness };
    199199        enum Length { Short, Long, LongLong, NoLength };
    200         enum Aggregate { Struct, Union, Trait, NoAggregate };
    201         enum TypeClass { Otype, Dtype, Ftype, NoTypeClass };
     200        enum Aggregate { Struct, Union, Trait };
     201        enum TypeClass { Otype, Dtype, Ftype };
    202202        enum BuiltinType { Valist };
    203203
     
    287287  public:
    288288        struct Variable_t {
    289 //              const std::string * name;
     289                const std::string * name;
    290290                DeclarationNode::TypeClass tyClass;
    291291                DeclarationNode * assertions;
     
    294294
    295295        struct Attr_t {
    296 //              const std::string * name;
     296                const std::string * name;
    297297                ExpressionNode * expr;
    298298                DeclarationNode * type;
  • src/Parser/TypeData.h

    rd58a39a0 ra7976d79  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Oct  3 12:34:08 2016
    13 // Update Count     : 142
     12// Last Modified On : Sat Sep 24 11:10:38 2016
     13// Update Count     : 141
    1414//
    1515
     
    2323
    2424struct TypeData {
    25         enum Kind { Basic, Pointer, Array, Function, Aggregate, AggregateInst, Enum, EnumConstant, Symbolic,
    26                                 SymbolicInst, Tuple, Typeof, Builtin, Unknown };
     25        enum Kind { Unknown, Basic, Pointer, Array, Function, Aggregate, AggregateInst,
     26                                Enum, EnumConstant, Symbolic, SymbolicInst, Tuple, Typeof, Builtin };
    2727
    2828        struct Aggregate_t {
  • src/Parser/parser.cc

    rd58a39a0 ra7976d79  
    599599#define YYFINAL  250
    600600/* YYLAST -- Last index in YYTABLE.  */
    601 #define YYLAST   10888
     601#define YYLAST   10863
    602602
    603603/* YYNTOKENS -- Number of terminals.  */
    604604#define YYNTOKENS  133
    605605/* YYNNTS -- Number of nonterminals.  */
    606 #define YYNNTS  242
     606#define YYNNTS  241
    607607/* YYNRULES -- Number of rules.  */
    608 #define YYNRULES  754
     608#define YYNRULES  751
    609609/* YYNRULES -- Number of states.  */
    610 #define YYNSTATES  1558
     610#define YYNSTATES  1555
    611611
    612612/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    667667      17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
    668668      38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
    669       82,    90,    93,    96,   104,   109,   111,   115,   116,   118,
    670      120,   124,   126,   130,   138,   142,   150,   152,   154,   156,
    671      158,   160,   163,   166,   169,   172,   175,   178,   183,   186,
    672      191,   198,   200,   205,   210,   212,   214,   216,   218,   220,
    673      222,   224,   229,   234,   236,   240,   244,   248,   250,   254,
    674      258,   260,   264,   268,   270,   274,   278,   282,   286,   288,
    675      292,   296,   298,   302,   304,   308,   310,   314,   316,   320,
    676      322,   326,   328,   334,   339,   345,   347,   349,   353,   356,
    677      357,   359,   361,   363,   365,   367,   369,   371,   373,   375,
    678      377,   379,   381,   383,   386,   392,   399,   407,   409,   413,
    679      415,   419,   420,   422,   424,   426,   428,   430,   432,   434,
    680      436,   438,   445,   450,   453,   461,   463,   467,   469,   472,
    681      474,   477,   479,   482,   485,   491,   499,   505,   515,   521,
    682      531,   533,   537,   539,   541,   545,   549,   552,   554,   557,
    683      560,   561,   563,   566,   570,   571,   573,   576,   580,   584,
    684      589,   590,   592,   594,   597,   603,   611,   618,   625,   630,
    685      634,   639,   642,   646,   649,   653,   657,   661,   665,   671,
    686      675,   679,   684,   686,   692,   699,   705,   712,   722,   733,
    687      743,   754,   757,   759,   762,   765,   768,   770,   777,   786,
    688      797,   810,   825,   826,   828,   829,   831,   833,   837,   842,
    689      850,   851,   853,   857,   859,   863,   865,   867,   869,   873,
    690      875,   877,   879,   883,   884,   886,   890,   895,   897,   901,
    691      903,   905,   909,   913,   917,   921,   925,   928,   932,   939,
    692      943,   947,   952,   954,   957,   960,   964,   970,   979,   987,
    693      995,  1001,  1011,  1014,  1017,  1023,  1027,  1033,  1038,  1042,
    694     1047,  1052,  1060,  1064,  1068,  1072,  1076,  1081,  1088,  1090,
    695     1092,  1094,  1096,  1098,  1100,  1102,  1104,  1105,  1107,  1109,
    696     1112,  1114,  1116,  1118,  1120,  1122,  1124,  1126,  1127,  1133,
    697     1135,  1138,  1142,  1144,  1147,  1149,  1151,  1153,  1155,  1157,
    698     1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,  1177,
    699     1179,  1181,  1183,  1185,  1187,  1189,  1191,  1194,  1197,  1201,
    700     1205,  1207,  1211,  1213,  1216,  1219,  1222,  1227,  1232,  1237,
    701     1242,  1244,  1247,  1250,  1254,  1256,  1259,  1262,  1264,  1267,
    702     1270,  1274,  1276,  1279,  1282,  1284,  1286,  1291,  1294,  1295,
    703     1302,  1310,  1313,  1316,  1319,  1320,  1323,  1326,  1330,  1333,
    704     1337,  1339,  1342,  1346,  1349,  1352,  1357,  1358,  1360,  1363,
    705     1366,  1368,  1369,  1371,  1374,  1377,  1383,  1386,  1387,  1395,
    706     1398,  1403,  1404,  1407,  1408,  1410,  1412,  1414,  1420,  1426,
    707     1432,  1434,  1440,  1446,  1456,  1458,  1464,  1465,  1467,  1469,
    708     1475,  1477,  1479,  1485,  1491,  1493,  1497,  1501,  1506,  1508,
    709     1510,  1512,  1514,  1517,  1519,  1523,  1527,  1529,  1532,  1534,
    710     1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,
    711     1558,  1560,  1563,  1565,  1567,  1569,  1572,  1573,  1576,  1579,
    712     1581,  1586,  1587,  1589,  1592,  1596,  1601,  1604,  1607,  1609,
    713     1612,  1615,  1621,  1627,  1635,  1642,  1644,  1647,  1650,  1654,
    714     1656,  1659,  1662,  1667,  1670,  1675,  1676,  1681,  1684,  1686,
    715     1688,  1690,  1691,  1694,  1700,  1706,  1720,  1722,  1724,  1728,
    716     1732,  1735,  1739,  1743,  1746,  1751,  1753,  1760,  1770,  1771,
    717     1783,  1785,  1789,  1793,  1797,  1799,  1801,  1807,  1810,  1816,
    718     1817,  1819,  1821,  1825,  1826,  1828,  1830,  1832,  1834,  1835,
    719     1842,  1845,  1847,  1850,  1855,  1858,  1862,  1866,  1870,  1875,
    720     1881,  1887,  1893,  1900,  1902,  1904,  1906,  1910,  1911,  1917,
    721     1918,  1920,  1922,  1925,  1932,  1934,  1938,  1939,  1941,  1946,
    722     1948,  1950,  1952,  1954,  1957,  1959,  1962,  1965,  1967,  1971,
    723     1974,  1978,  1982,  1985,  1990,  1995,  1999,  2008,  2012,  2015,
    724     2017,  2020,  2027,  2036,  2040,  2043,  2047,  2051,  2056,  2061,
    725     2065,  2067,  2069,  2071,  2076,  2083,  2087,  2090,  2094,  2098,
    726     2103,  2108,  2112,  2115,  2117,  2120,  2123,  2125,  2129,  2132,
    727     2136,  2140,  2143,  2148,  2153,  2157,  2164,  2173,  2177,  2180,
    728     2182,  2185,  2188,  2191,  2195,  2199,  2202,  2207,  2212,  2216,
    729     2223,  2232,  2236,  2239,  2241,  2244,  2247,  2249,  2251,  2254,
    730     2258,  2262,  2265,  2270,  2277,  2286,  2288,  2291,  2294,  2296,
    731     2299,  2302,  2306,  2310,  2312,  2317,  2322,  2326,  2332,  2341,
    732     2345,  2348,  2352,  2354,  2360,  2366,  2373,  2380,  2382,  2385,
    733     2388,  2390,  2393,  2396,  2400,  2404,  2406,  2411,  2416,  2420,
    734     2426,  2435,  2439,  2441,  2444,  2446,  2449,  2456,  2462,  2469,
    735     2477,  2485,  2487,  2490,  2493,  2495,  2498,  2501,  2505,  2509,
    736     2511,  2516,  2521,  2525,  2534,  2538,  2540,  2542,  2545,  2547,
    737     2549,  2552,  2556,  2559,  2563,  2566,  2570,  2574,  2577,  2582,
    738     2586,  2589,  2593,  2596,  2601,  2605,  2608,  2615,  2622,  2629,
    739     2637,  2639,  2642,  2644,  2646,  2648,  2651,  2655,  2658,  2662,
    740     2665,  2669,  2673,  2678,  2681,  2685,  2690,  2693,  2699,  2705,
    741     2712,  2719,  2720,  2722,  2723
     669      86,    89,    92,   100,   105,   107,   111,   112,   114,   116,
     670     120,   122,   126,   134,   138,   146,   148,   150,   152,   155,
     671     158,   161,   164,   167,   170,   175,   178,   183,   190,   192,
     672     197,   202,   204,   206,   208,   210,   212,   214,   216,   221,
     673     226,   228,   232,   236,   240,   242,   246,   250,   252,   256,
     674     260,   262,   266,   270,   274,   278,   280,   284,   288,   290,
     675     294,   296,   300,   302,   306,   308,   312,   314,   318,   320,
     676     326,   331,   337,   339,   341,   345,   348,   349,   351,   353,
     677     355,   357,   359,   361,   363,   365,   367,   369,   371,   373,
     678     375,   378,   384,   391,   399,   401,   405,   407,   411,   412,
     679     414,   416,   418,   420,   422,   424,   426,   428,   430,   437,
     680     442,   445,   453,   455,   459,   461,   464,   466,   469,   471,
     681     474,   477,   483,   491,   497,   507,   513,   523,   525,   529,
     682     531,   533,   537,   541,   544,   546,   549,   552,   553,   555,
     683     558,   562,   563,   565,   568,   572,   576,   581,   582,   584,
     684     586,   589,   595,   603,   610,   617,   622,   626,   631,   634,
     685     638,   641,   645,   649,   653,   657,   663,   667,   671,   676,
     686     678,   684,   691,   697,   704,   714,   725,   735,   746,   749,
     687     751,   754,   757,   760,   762,   769,   778,   789,   802,   817,
     688     818,   820,   821,   823,   825,   829,   834,   842,   843,   845,
     689     849,   851,   855,   857,   859,   861,   865,   867,   869,   871,
     690     875,   876,   878,   882,   887,   889,   893,   895,   897,   901,
     691     905,   909,   913,   917,   920,   924,   931,   935,   939,   944,
     692     946,   949,   952,   956,   962,   971,   979,   987,   993,  1003,
     693    1006,  1009,  1015,  1019,  1025,  1030,  1034,  1039,  1044,  1052,
     694    1056,  1060,  1064,  1068,  1073,  1080,  1082,  1084,  1086,  1088,
     695    1090,  1092,  1094,  1096,  1097,  1099,  1101,  1104,  1106,  1108,
     696    1110,  1112,  1114,  1116,  1118,  1119,  1125,  1127,  1130,  1134,
     697    1136,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
     698    1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
     699    1177,  1179,  1181,  1183,  1186,  1189,  1193,  1197,  1199,  1203,
     700    1205,  1208,  1211,  1214,  1219,  1224,  1229,  1234,  1236,  1239,
     701    1242,  1246,  1248,  1251,  1254,  1256,  1259,  1262,  1266,  1268,
     702    1271,  1274,  1276,  1278,  1283,  1286,  1287,  1294,  1302,  1305,
     703    1308,  1311,  1312,  1315,  1318,  1322,  1325,  1329,  1331,  1334,
     704    1338,  1341,  1344,  1349,  1350,  1352,  1355,  1358,  1360,  1361,
     705    1363,  1366,  1369,  1375,  1378,  1379,  1387,  1390,  1395,  1396,
     706    1399,  1400,  1402,  1404,  1406,  1412,  1418,  1424,  1426,  1432,
     707    1438,  1448,  1450,  1456,  1457,  1459,  1461,  1467,  1469,  1471,
     708    1477,  1483,  1485,  1489,  1493,  1498,  1500,  1502,  1504,  1506,
     709    1509,  1511,  1515,  1519,  1521,  1524,  1526,  1530,  1532,  1534,
     710    1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1555,
     711    1557,  1559,  1561,  1564,  1565,  1568,  1571,  1573,  1578,  1579,
     712    1581,  1584,  1588,  1593,  1596,  1599,  1601,  1604,  1607,  1613,
     713    1619,  1627,  1634,  1636,  1639,  1642,  1646,  1648,  1651,  1654,
     714    1659,  1662,  1667,  1668,  1673,  1676,  1678,  1680,  1682,  1683,
     715    1686,  1692,  1698,  1712,  1714,  1716,  1720,  1724,  1727,  1731,
     716    1735,  1738,  1743,  1745,  1752,  1762,  1763,  1775,  1777,  1781,
     717    1785,  1789,  1791,  1793,  1799,  1802,  1808,  1809,  1811,  1813,
     718    1817,  1818,  1820,  1822,  1824,  1826,  1827,  1834,  1837,  1839,
     719    1842,  1847,  1850,  1854,  1858,  1862,  1867,  1873,  1879,  1885,
     720    1892,  1894,  1896,  1898,  1902,  1903,  1909,  1910,  1912,  1914,
     721    1917,  1924,  1926,  1930,  1931,  1933,  1938,  1940,  1942,  1944,
     722    1946,  1949,  1951,  1954,  1957,  1959,  1963,  1966,  1970,  1974,
     723    1977,  1982,  1987,  1991,  2000,  2004,  2007,  2009,  2012,  2019,
     724    2028,  2032,  2035,  2039,  2043,  2048,  2053,  2057,  2059,  2061,
     725    2063,  2068,  2075,  2079,  2082,  2086,  2090,  2095,  2100,  2104,
     726    2107,  2109,  2112,  2115,  2117,  2121,  2124,  2128,  2132,  2135,
     727    2140,  2145,  2149,  2156,  2165,  2169,  2172,  2174,  2177,  2180,
     728    2183,  2187,  2191,  2194,  2199,  2204,  2208,  2215,  2224,  2228,
     729    2231,  2233,  2236,  2239,  2241,  2243,  2246,  2250,  2254,  2257,
     730    2262,  2269,  2278,  2280,  2283,  2286,  2288,  2291,  2294,  2298,
     731    2302,  2304,  2309,  2314,  2318,  2324,  2333,  2337,  2340,  2344,
     732    2346,  2352,  2358,  2365,  2372,  2374,  2377,  2380,  2382,  2385,
     733    2388,  2392,  2396,  2398,  2403,  2408,  2412,  2418,  2427,  2431,
     734    2433,  2436,  2438,  2441,  2448,  2454,  2461,  2469,  2477,  2479,
     735    2482,  2485,  2487,  2490,  2493,  2497,  2501,  2503,  2508,  2513,
     736    2517,  2526,  2530,  2532,  2534,  2537,  2539,  2541,  2544,  2548,
     737    2551,  2555,  2558,  2562,  2566,  2569,  2574,  2578,  2581,  2585,
     738    2588,  2593,  2597,  2600,  2607,  2614,  2621,  2629,  2631,  2634,
     739    2636,  2638,  2640,  2643,  2647,  2650,  2654,  2657,  2661,  2665,
     740    2670,  2673,  2677,  2682,  2685,  2691,  2697,  2704,  2711,  2712,
     741    2714,  2715
    742742};
    743743
     
    745745static const yytype_int16 yyrhs[] =
    746746{
    747      303,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
     747     302,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
    748748      -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
    749749      -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,   142,
    750750      -1,    82,    -1,   142,    82,    -1,    72,    -1,   140,    -1,
    751      109,   171,   110,    -1,   109,   175,   110,    -1,   143,    -1,
    752      144,   111,   134,   166,   135,   112,    -1,   144,   109,   145,
     751     109,   170,   110,    -1,   109,   174,   110,    -1,   143,    -1,
     752     144,   111,   134,   165,   135,   112,    -1,   144,   109,   145,
    753753     110,    -1,   144,   113,   139,    -1,   144,   113,   111,   134,
    754      147,   135,   112,    -1,   144,   113,    79,    -1,   144,    85,
    755      139,    -1,   144,    85,   111,   134,   147,   135,   112,    -1,
    756      144,    86,    -1,   144,    87,    -1,   109,   276,   110,   114,
    757      280,   373,   115,    -1,   144,   114,   145,   115,    -1,   146,
    758       -1,   145,   116,   146,    -1,    -1,   166,    -1,   148,    -1,
    759      147,   116,   148,    -1,   149,    -1,   149,   113,   148,    -1,
    760      149,   113,   111,   134,   147,   135,   112,    -1,   149,    85,
    761      148,    -1,   149,    85,   111,   134,   147,   135,   112,    -1,
    762      139,    -1,    79,    -1,   144,    -1,   136,    -1,   141,    -1,
    763       40,   153,    -1,   151,   153,    -1,   152,   153,    -1,    86,
    764      150,    -1,    87,   150,    -1,    37,   150,    -1,    37,   109,
    765      276,   110,    -1,    66,   150,    -1,    66,   109,   276,   110,
    766       -1,    38,   109,   276,   116,   139,   110,    -1,    76,    -1,
    767       76,   109,   146,   110,    -1,    76,   109,   277,   110,    -1,
    768      117,    -1,   118,    -1,   119,    -1,   120,    -1,   121,    -1,
    769      122,    -1,   150,    -1,   109,   276,   110,   153,    -1,   109,
    770      276,   110,   169,    -1,   153,    -1,   154,   117,   153,    -1,
    771      154,   123,   153,    -1,   154,   124,   153,    -1,   154,    -1,
    772      155,   119,   154,    -1,   155,   120,   154,    -1,   155,    -1,
    773      156,    88,   155,    -1,   156,    89,   155,    -1,   156,    -1,
    774      157,   125,   156,    -1,   157,   126,   156,    -1,   157,    90,
    775      156,    -1,   157,    91,   156,    -1,   157,    -1,   158,    92,
    776      157,    -1,   158,    93,   157,    -1,   158,    -1,   159,   118,
    777      158,    -1,   159,    -1,   160,   127,   159,    -1,   160,    -1,
    778      161,   128,   160,    -1,   161,    -1,   162,    94,   161,    -1,
    779      162,    -1,   163,    95,   162,    -1,   163,    -1,   163,   129,
    780      171,   130,   164,    -1,   163,   129,   130,   164,    -1,   163,
    781      129,   171,   130,   169,    -1,   164,    -1,   164,    -1,   150,
    782      168,   166,    -1,   169,   374,    -1,    -1,   166,    -1,   131,
    783       -1,   107,    -1,    97,    -1,    98,    -1,    99,    -1,   100,
    784       -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,
    785       -1,   106,    -1,   111,   112,    -1,   111,   134,   166,   135,
    786      112,    -1,   111,   134,   116,   170,   135,   112,    -1,   111,
    787      134,   166,   116,   170,   135,   112,    -1,   167,    -1,   170,
    788      116,   167,    -1,   166,    -1,   171,   116,   166,    -1,    -1,
    789      171,    -1,   174,    -1,   175,    -1,   179,    -1,   180,    -1,
    790      192,    -1,   194,    -1,   195,    -1,   200,    -1,   127,   144,
    791      114,   145,   115,   132,    -1,    72,   130,   313,   173,    -1,
    792      114,   115,    -1,   114,   134,   134,   211,   176,   135,   115,
    793       -1,   177,    -1,   176,   134,   177,    -1,   214,    -1,    40,
    794      214,    -1,   309,    -1,   173,   135,    -1,   173,    -1,   178,
    795      173,    -1,   172,   132,    -1,    41,   109,   171,   110,   173,
    796       -1,    41,   109,   171,   110,   173,    42,   173,    -1,    43,
    797      109,   171,   110,   185,    -1,    43,   109,   171,   110,   114,
    798      134,   207,   186,   115,    -1,    53,   109,   171,   110,   185,
    799       -1,    53,   109,   171,   110,   114,   134,   207,   188,   115,
    800       -1,   165,    -1,   165,    96,   165,    -1,   311,    -1,   181,
    801       -1,   182,   116,   181,    -1,    44,   182,   130,    -1,    45,
    802      130,    -1,   183,    -1,   184,   183,    -1,   184,   173,    -1,
    803       -1,   187,    -1,   184,   178,    -1,   187,   184,   178,    -1,
    804       -1,   189,    -1,   184,   191,    -1,   184,   178,   190,    -1,
    805      189,   184,   191,    -1,   189,   184,   178,   190,    -1,    -1,
    806      191,    -1,    56,    -1,    56,   132,    -1,    47,   109,   171,
    807      110,   173,    -1,    46,   173,    47,   109,   171,   110,   132,
    808       -1,    48,   109,   134,   193,   110,   173,    -1,   172,   135,
    809      132,   172,   132,   172,    -1,   214,   172,   132,   172,    -1,
    810       51,    72,   132,    -1,    51,   117,   171,   132,    -1,    50,
    811      132,    -1,    50,    72,   132,    -1,    49,   132,    -1,    49,
    812       72,   132,    -1,    52,   172,   132,    -1,    61,   167,   132,
    813       -1,    62,   167,   132,    -1,    62,   167,    63,   166,   132,
    814       -1,    57,   175,   196,    -1,    57,   175,   198,    -1,    57,
    815      175,   196,   198,    -1,   197,    -1,    58,   109,    96,   110,
    816      175,    -1,   197,    58,   109,    96,   110,   175,    -1,    59,
    817      109,    96,   110,   175,    -1,   197,    59,   109,    96,   110,
    818      175,    -1,    58,   109,   134,   134,   199,   135,   110,   175,
    819      135,    -1,   197,    58,   109,   134,   134,   199,   135,   110,
    820      175,   135,    -1,    59,   109,   134,   134,   199,   135,   110,
    821      175,   135,    -1,   197,    59,   109,   134,   134,   199,   135,
    822      110,   175,   135,    -1,    60,   175,    -1,   227,    -1,   227,
    823      310,    -1,   227,   358,    -1,   367,   139,    -1,   367,    -1,
    824       64,   201,   109,   141,   110,   132,    -1,    64,   201,   109,
    825      141,   130,   202,   110,   132,    -1,    64,   201,   109,   141,
    826      130,   202,   130,   202,   110,   132,    -1,    64,   201,   109,
    827      141,   130,   202,   130,   202,   130,   205,   110,   132,    -1,
    828       64,   201,    51,   109,   141,   130,   130,   202,   130,   205,
    829      130,   206,   110,   132,    -1,    -1,    11,    -1,    -1,   203,
    830       -1,   204,    -1,   203,   116,   204,    -1,   141,   109,   165,
    831      110,    -1,   111,   165,   112,   141,   109,   165,   110,    -1,
    832       -1,   141,    -1,   205,   116,   141,    -1,   139,    -1,   206,
    833      116,   139,    -1,   135,    -1,   208,    -1,   214,    -1,   208,
    834      134,   214,    -1,   135,    -1,   210,    -1,   224,    -1,   210,
    835      134,   224,    -1,    -1,   212,    -1,    29,   213,   132,    -1,
    836      212,    29,   213,   132,    -1,   275,    -1,   213,   116,   275,
    837       -1,   215,    -1,   224,    -1,   216,   135,   132,    -1,   221,
    838      135,   132,    -1,   218,   135,   132,    -1,   294,   135,   132,
    839       -1,   297,   135,   132,    -1,   217,   278,    -1,   233,   217,
    840      278,    -1,   216,   135,   116,   134,   273,   278,    -1,   368,
    841      273,   312,    -1,   371,   273,   312,    -1,   229,   371,   273,
    842      312,    -1,   219,    -1,   229,   219,    -1,   233,   219,    -1,
    843      233,   229,   219,    -1,   218,   135,   116,   134,   273,    -1,
    844      111,   112,   273,   109,   134,   261,   135,   110,    -1,   371,
    845      273,   109,   134,   261,   135,   110,    -1,   220,   273,   109,
    846      134,   261,   135,   110,    -1,   111,   134,   263,   135,   112,
    847       -1,   111,   134,   263,   135,   116,   134,   264,   135,   112,
    848       -1,     3,   217,    -1,     3,   219,    -1,   221,   135,   116,
    849      134,   139,    -1,     3,   227,   310,    -1,   222,   135,   116,
    850      134,   310,    -1,   229,     3,   227,   310,    -1,   227,     3,
    851      310,    -1,   227,     3,   229,   310,    -1,     3,   139,   131,
    852      166,    -1,   223,   135,   116,   134,   139,   131,   166,    -1,
    853      225,   135,   132,    -1,   222,   135,   132,    -1,   223,   135,
    854      132,    -1,   241,   135,   132,    -1,   226,   310,   312,   278,
    855       -1,   225,   116,   313,   310,   312,   278,    -1,   237,    -1,
    856      241,    -1,   243,    -1,   284,    -1,   238,    -1,   242,    -1,
    857      244,    -1,   285,    -1,    -1,   229,    -1,   230,    -1,   229,
    858      230,    -1,   231,    -1,   315,    -1,    10,    -1,    12,    -1,
    859       11,    -1,    14,    -1,    67,    -1,    -1,    13,   109,   232,
    860      287,   110,    -1,   234,    -1,   229,   234,    -1,   233,   229,
    861      234,    -1,   235,    -1,   234,   235,    -1,     5,    -1,     7,
    862       -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,    69,
    863       -1,    71,    -1,    16,    -1,    21,    -1,    20,    -1,    18,
    864       -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,    15,
    865       -1,    25,    -1,    26,    -1,    27,    -1,    24,    -1,   238,
    866       -1,   233,   238,    -1,   237,   235,    -1,   237,   235,   229,
    867       -1,   237,   235,   238,    -1,   239,    -1,   228,   240,   228,
    868       -1,   236,    -1,   229,   236,    -1,   239,   230,    -1,   239,
    869      236,    -1,    28,   109,   277,   110,    -1,    28,   109,   171,
    870      110,    -1,    78,   109,   277,   110,    -1,    78,   109,   171,
    871      110,    -1,   242,    -1,   233,   242,    -1,   241,   235,    -1,
    872      241,   235,   229,    -1,   245,    -1,   229,   245,    -1,   242,
    873      230,    -1,   244,    -1,   233,   244,    -1,   243,   235,    -1,
    874      243,   235,   229,    -1,    74,    -1,   229,    74,    -1,   244,
    875      230,    -1,   246,    -1,   257,    -1,   248,   114,   249,   115,
    876       -1,   248,   275,    -1,    -1,   248,   275,   247,   114,   249,
    877      115,    -1,   248,   109,   293,   110,   114,   249,   115,    -1,
    878      248,   286,    -1,    31,   313,    -1,    32,   313,    -1,    -1,
    879      249,   250,    -1,   251,   132,    -1,    40,   251,   132,    -1,
    880      252,   132,    -1,    40,   252,   132,    -1,   367,    -1,   367,
    881      275,    -1,   251,   116,   275,    -1,   251,   116,    -1,   227,
    882      253,    -1,   252,   116,   313,   253,    -1,    -1,   255,    -1,
    883      319,   254,    -1,   332,   254,    -1,   358,    -1,    -1,   255,
    884       -1,   130,   165,    -1,    30,   313,    -1,   256,   114,   259,
    885      373,   115,    -1,   256,   275,    -1,    -1,   256,   275,   258,
    886      114,   259,   373,   115,    -1,   275,   260,    -1,   259,   116,
    887      275,   260,    -1,    -1,   131,   165,    -1,    -1,   262,    -1,
    888      264,    -1,   263,    -1,   263,   135,   116,   134,   264,    -1,
    889      264,   135,   116,   134,    96,    -1,   263,   135,   116,   134,
    890       96,    -1,   268,    -1,   264,   135,   116,   134,   268,    -1,
    891      263,   135,   116,   134,   268,    -1,   263,   135,   116,   134,
    892      264,   135,   116,   134,   268,    -1,   269,    -1,   264,   135,
    893      116,   134,   269,    -1,    -1,   266,    -1,   267,    -1,   267,
    894      135,   116,   134,    96,    -1,   271,    -1,   270,    -1,   267,
    895      135,   116,   134,   271,    -1,   267,   135,   116,   134,   270,
    896       -1,   270,    -1,   363,   273,   374,    -1,   371,   273,   374,
    897       -1,   229,   371,   273,   374,    -1,   219,    -1,   271,    -1,
    898      363,    -1,   371,    -1,   229,   371,    -1,   372,    -1,   226,
    899      337,   374,    -1,   226,   341,   374,    -1,   226,    -1,   226,
    900      352,    -1,   139,    -1,   272,   116,   139,    -1,   137,    -1,
    901       74,    -1,    75,    -1,   138,    -1,    74,    -1,    75,    -1,
    902      139,    -1,    74,    -1,    75,    -1,   367,    -1,   227,    -1,
    903      227,   358,    -1,   367,    -1,   372,    -1,   227,    -1,   227,
    904      346,    -1,    -1,   131,   279,    -1,   107,   279,    -1,   166,
    905       -1,   114,   280,   373,   115,    -1,    -1,   279,    -1,   281,
    906      279,    -1,   280,   116,   279,    -1,   280,   116,   281,   279,
    907       -1,   282,   130,    -1,   275,   130,    -1,   283,    -1,   282,
    908      283,    -1,   113,   275,    -1,   111,   134,   166,   135,   112,
    909       -1,   111,   134,   311,   135,   112,    -1,   111,   134,   165,
    910       96,   165,   135,   112,    -1,   113,   111,   134,   147,   135,
    911      112,    -1,   285,    -1,   233,   285,    -1,   284,   235,    -1,
    912      284,   235,   229,    -1,   286,    -1,   229,   286,    -1,   285,
    913      230,    -1,    75,   109,   293,   110,    -1,   288,   374,    -1,
    914      287,   116,   288,   374,    -1,    -1,   290,   275,   289,   291,
    915       -1,   227,   337,    -1,    33,    -1,    35,    -1,    34,    -1,
    916       -1,   291,   292,    -1,   128,   275,   109,   293,   110,    -1,
    917      128,   114,   134,   299,   115,    -1,   128,   109,   134,   287,
    918      135,   110,   114,   134,   299,   115,   109,   293,   110,    -1,
    919      277,    -1,   166,    -1,   293,   116,   277,    -1,   293,   116,
    920      166,    -1,    33,   295,    -1,   234,    33,   295,    -1,   294,
    921      116,   295,    -1,   296,   291,    -1,   296,   291,   131,   277,
    922       -1,   275,    -1,   274,   109,   134,   287,   135,   110,    -1,
    923       36,   275,   109,   134,   287,   135,   110,   114,   115,    -1,
    924       -1,    36,   275,   109,   134,   287,   135,   110,   114,   298,
    925      299,   115,    -1,   300,    -1,   299,   134,   300,    -1,   301,
    926      135,   132,    -1,   302,   135,   132,    -1,   217,    -1,   219,
    927       -1,   301,   135,   116,   134,   273,    -1,   227,   310,    -1,
    928      302,   135,   116,   134,   310,    -1,    -1,   304,    -1,   306,
    929       -1,   304,   134,   306,    -1,    -1,   304,    -1,   214,    -1,
    930      308,    -1,   200,    -1,    -1,     5,    82,   307,   114,   305,
    931      115,    -1,    40,   306,    -1,   309,    -1,   324,   175,    -1,
    932      328,   134,   209,   175,    -1,   218,   175,    -1,   226,   324,
    933      175,    -1,   229,   324,   175,    -1,   233,   324,   175,    -1,
    934      233,   229,   324,   175,    -1,   226,   328,   134,   209,   175,
    935       -1,   229,   328,   134,   209,   175,    -1,   233,   328,   134,
    936      209,   175,    -1,   233,   229,   328,   134,   209,   175,    -1,
    937      319,    -1,   332,    -1,   324,    -1,   165,   122,   165,    -1,
    938       -1,    64,   109,   142,   110,   313,    -1,    -1,   314,    -1,
    939      315,    -1,   314,   315,    -1,    39,   109,   109,   316,   110,
    940      110,    -1,   317,    -1,   316,   116,   317,    -1,    -1,   318,
    941       -1,   318,   109,   172,   110,    -1,   273,    -1,   235,    -1,
    942      236,    -1,   230,    -1,   320,   313,    -1,   321,    -1,   322,
    943      313,    -1,   323,   313,    -1,   137,    -1,   109,   320,   110,
    944       -1,   151,   319,    -1,   151,   229,   319,    -1,   109,   321,
    945      110,    -1,   320,   350,    -1,   109,   321,   110,   350,    -1,
    946      109,   322,   110,   351,    -1,   109,   322,   110,    -1,   109,
    947      321,   110,   109,   134,   265,   135,   110,    -1,   109,   323,
    948      110,    -1,   325,   313,    -1,   326,    -1,   327,   313,    -1,
    949      320,   109,   134,   265,   135,   110,    -1,   109,   326,   110,
    950      109,   134,   265,   135,   110,    -1,   109,   325,   110,    -1,
    951      151,   324,    -1,   151,   229,   324,    -1,   109,   326,   110,
    952       -1,   109,   326,   110,   350,    -1,   109,   327,   110,   351,
    953       -1,   109,   327,   110,    -1,   329,    -1,   330,    -1,   331,
    954       -1,   320,   109,   272,   110,    -1,   109,   330,   110,   109,
    955      272,   110,    -1,   109,   329,   110,    -1,   151,   328,    -1,
    956      151,   229,   328,    -1,   109,   330,   110,    -1,   109,   330,
    957      110,   350,    -1,   109,   331,   110,   351,    -1,   109,   331,
    958      110,    -1,   333,   313,    -1,   334,    -1,   335,   313,    -1,
    959      336,   313,    -1,   342,    -1,   109,   333,   110,    -1,   151,
    960      332,    -1,   151,   229,   332,    -1,   109,   334,   110,    -1,
    961      333,   350,    -1,   109,   334,   110,   350,    -1,   109,   335,
    962      110,   351,    -1,   109,   335,   110,    -1,   333,   109,   134,
    963      265,   135,   110,    -1,   109,   334,   110,   109,   134,   265,
    964      135,   110,    -1,   109,   336,   110,    -1,   320,   313,    -1,
    965      338,    -1,   339,   313,    -1,   340,   313,    -1,   151,   337,
    966       -1,   151,   229,   337,    -1,   109,   338,   110,    -1,   320,
    967      356,    -1,   109,   338,   110,   350,    -1,   109,   339,   110,
    968      351,    -1,   109,   339,   110,    -1,   320,   109,   134,   265,
    969      135,   110,    -1,   109,   338,   110,   109,   134,   265,   135,
    970      110,    -1,   109,   340,   110,    -1,   342,   313,    -1,   343,
    971       -1,   344,   313,    -1,   345,   313,    -1,    74,    -1,    75,
    972       -1,   151,   341,    -1,   151,   229,   341,    -1,   109,   343,
    973      110,    -1,   342,   356,    -1,   109,   343,   110,   356,    -1,
    974      342,   109,   134,   265,   135,   110,    -1,   109,   343,   110,
    975      109,   134,   265,   135,   110,    -1,   347,    -1,   348,   313,
    976       -1,   349,   313,    -1,   151,    -1,   151,   229,    -1,   151,
    977      346,    -1,   151,   229,   346,    -1,   109,   347,   110,    -1,
    978      350,    -1,   109,   347,   110,   350,    -1,   109,   348,   110,
    979      351,    -1,   109,   348,   110,    -1,   109,   134,   265,   135,
    980      110,    -1,   109,   347,   110,   109,   134,   265,   135,   110,
    981       -1,   109,   349,   110,    -1,   111,   112,    -1,   111,   112,
    982      351,    -1,   351,    -1,   111,   134,   166,   135,   112,    -1,
    983      111,   134,   117,   135,   112,    -1,   351,   111,   134,   166,
    984      135,   112,    -1,   351,   111,   134,   117,   135,   112,    -1,
    985      353,    -1,   354,   313,    -1,   355,   313,    -1,   151,    -1,
    986      151,   229,    -1,   151,   352,    -1,   151,   229,   352,    -1,
    987      109,   353,   110,    -1,   356,    -1,   109,   353,   110,   356,
    988       -1,   109,   354,   110,   351,    -1,   109,   354,   110,    -1,
    989      109,   134,   265,   135,   110,    -1,   109,   353,   110,   109,
    990      134,   265,   135,   110,    -1,   109,   355,   110,    -1,   357,
    991       -1,   357,   351,    -1,   351,    -1,   111,   112,    -1,   111,
    992      134,   229,   117,   135,   112,    -1,   111,   134,   229,   135,
    993      112,    -1,   111,   134,   229,   166,   135,   112,    -1,   111,
    994      134,     7,   228,   166,   135,   112,    -1,   111,   134,   229,
    995        7,   166,   135,   112,    -1,   359,    -1,   360,   313,    -1,
    996      361,   313,    -1,   151,    -1,   151,   229,    -1,   151,   358,
    997       -1,   151,   229,   358,    -1,   109,   359,   110,    -1,   350,
    998       -1,   109,   359,   110,   350,    -1,   109,   360,   110,   351,
    999       -1,   109,   360,   110,    -1,   109,   359,   110,   109,   134,
    1000      265,   135,   110,    -1,   109,   361,   110,    -1,   363,    -1,
    1001      371,    -1,   229,   371,    -1,   364,    -1,   365,    -1,   151,
    1002      227,    -1,   229,   151,   227,    -1,   151,   372,    -1,   229,
    1003      151,   372,    -1,   151,   362,    -1,   229,   151,   362,    -1,
    1004      111,   112,   227,    -1,   366,   227,    -1,   111,   112,   351,
    1005      227,    -1,   366,   351,   227,    -1,   351,   227,    -1,   111,
    1006      112,   364,    -1,   366,   364,    -1,   111,   112,   351,   364,
    1007       -1,   366,   351,   364,    -1,   351,   364,    -1,   111,   134,
    1008      229,   117,   135,   112,    -1,   111,   134,   229,   166,   135,
    1009      112,    -1,   111,   134,   233,   166,   135,   112,    -1,   111,
    1010      134,   233,   229,   166,   135,   112,    -1,   371,    -1,   229,
    1011      371,    -1,   368,    -1,   369,    -1,   370,    -1,   151,   227,
    1012       -1,   229,   151,   227,    -1,   151,   372,    -1,   229,   151,
    1013      372,    -1,   151,   367,    -1,   229,   151,   367,    -1,   111,
    1014      112,   227,    -1,   111,   112,   351,   227,    -1,   351,   227,
    1015       -1,   111,   112,   369,    -1,   111,   112,   351,   369,    -1,
    1016      351,   369,    -1,   111,   134,   264,   135,   112,    -1,   111,
    1017      112,   109,   261,   110,    -1,   371,   109,   134,   261,   135,
    1018      110,    -1,   220,   109,   134,   261,   135,   110,    -1,    -1,
    1019      116,    -1,    -1,   131,   166,    -1
     754     147,   135,   112,    -1,   144,    85,   139,    -1,   144,    85,
     755     111,   134,   147,   135,   112,    -1,   144,    86,    -1,   144,
     756      87,    -1,   109,   275,   110,   114,   279,   372,   115,    -1,
     757     144,   114,   145,   115,    -1,   146,    -1,   145,   116,   146,
     758      -1,    -1,   165,    -1,   148,    -1,   147,   116,   148,    -1,
     759     139,    -1,   139,   113,   148,    -1,   139,   113,   111,   134,
     760     147,   135,   112,    -1,   139,    85,   148,    -1,   139,    85,
     761     111,   134,   147,   135,   112,    -1,   144,    -1,   136,    -1,
     762     141,    -1,    40,   152,    -1,   150,   152,    -1,   151,   152,
     763      -1,    86,   149,    -1,    87,   149,    -1,    37,   149,    -1,
     764      37,   109,   275,   110,    -1,    66,   149,    -1,    66,   109,
     765     275,   110,    -1,    38,   109,   275,   116,   139,   110,    -1,
     766      76,    -1,    76,   109,   146,   110,    -1,    76,   109,   276,
     767     110,    -1,   117,    -1,   118,    -1,   119,    -1,   120,    -1,
     768     121,    -1,   122,    -1,   149,    -1,   109,   275,   110,   152,
     769      -1,   109,   275,   110,   168,    -1,   152,    -1,   153,   117,
     770     152,    -1,   153,   123,   152,    -1,   153,   124,   152,    -1,
     771     153,    -1,   154,   119,   153,    -1,   154,   120,   153,    -1,
     772     154,    -1,   155,    88,   154,    -1,   155,    89,   154,    -1,
     773     155,    -1,   156,   125,   155,    -1,   156,   126,   155,    -1,
     774     156,    90,   155,    -1,   156,    91,   155,    -1,   156,    -1,
     775     157,    92,   156,    -1,   157,    93,   156,    -1,   157,    -1,
     776     158,   118,   157,    -1,   158,    -1,   159,   127,   158,    -1,
     777     159,    -1,   160,   128,   159,    -1,   160,    -1,   161,    94,
     778     160,    -1,   161,    -1,   162,    95,   161,    -1,   162,    -1,
     779     162,   129,   170,   130,   163,    -1,   162,   129,   130,   163,
     780      -1,   162,   129,   170,   130,   168,    -1,   163,    -1,   163,
     781      -1,   149,   167,   165,    -1,   168,   373,    -1,    -1,   165,
     782      -1,   131,    -1,   107,    -1,    97,    -1,    98,    -1,    99,
     783      -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,   104,
     784      -1,   105,    -1,   106,    -1,   111,   112,    -1,   111,   134,
     785     165,   135,   112,    -1,   111,   134,   116,   169,   135,   112,
     786      -1,   111,   134,   165,   116,   169,   135,   112,    -1,   166,
     787      -1,   169,   116,   166,    -1,   165,    -1,   170,   116,   165,
     788      -1,    -1,   170,    -1,   173,    -1,   174,    -1,   178,    -1,
     789     179,    -1,   191,    -1,   193,    -1,   194,    -1,   199,    -1,
     790     127,   144,   114,   145,   115,   132,    -1,    72,   130,   312,
     791     172,    -1,   114,   115,    -1,   114,   134,   134,   210,   175,
     792     135,   115,    -1,   176,    -1,   175,   134,   176,    -1,   213,
     793      -1,    40,   213,    -1,   308,    -1,   172,   135,    -1,   172,
     794      -1,   177,   172,    -1,   171,   132,    -1,    41,   109,   170,
     795     110,   172,    -1,    41,   109,   170,   110,   172,    42,   172,
     796      -1,    43,   109,   170,   110,   184,    -1,    43,   109,   170,
     797     110,   114,   134,   206,   185,   115,    -1,    53,   109,   170,
     798     110,   184,    -1,    53,   109,   170,   110,   114,   134,   206,
     799     187,   115,    -1,   164,    -1,   164,    96,   164,    -1,   310,
     800      -1,   180,    -1,   181,   116,   180,    -1,    44,   181,   130,
     801      -1,    45,   130,    -1,   182,    -1,   183,   182,    -1,   183,
     802     172,    -1,    -1,   186,    -1,   183,   177,    -1,   186,   183,
     803     177,    -1,    -1,   188,    -1,   183,   190,    -1,   183,   177,
     804     189,    -1,   188,   183,   190,    -1,   188,   183,   177,   189,
     805      -1,    -1,   190,    -1,    56,    -1,    56,   132,    -1,    47,
     806     109,   170,   110,   172,    -1,    46,   172,    47,   109,   170,
     807     110,   132,    -1,    48,   109,   134,   192,   110,   172,    -1,
     808     171,   135,   132,   171,   132,   171,    -1,   213,   171,   132,
     809     171,    -1,    51,    72,   132,    -1,    51,   117,   170,   132,
     810      -1,    50,   132,    -1,    50,    72,   132,    -1,    49,   132,
     811      -1,    49,    72,   132,    -1,    52,   171,   132,    -1,    61,
     812     166,   132,    -1,    62,   166,   132,    -1,    62,   166,    63,
     813     165,   132,    -1,    57,   174,   195,    -1,    57,   174,   197,
     814      -1,    57,   174,   195,   197,    -1,   196,    -1,    58,   109,
     815      96,   110,   174,    -1,   196,    58,   109,    96,   110,   174,
     816      -1,    59,   109,    96,   110,   174,    -1,   196,    59,   109,
     817      96,   110,   174,    -1,    58,   109,   134,   134,   198,   135,
     818     110,   174,   135,    -1,   196,    58,   109,   134,   134,   198,
     819     135,   110,   174,   135,    -1,    59,   109,   134,   134,   198,
     820     135,   110,   174,   135,    -1,   196,    59,   109,   134,   134,
     821     198,   135,   110,   174,   135,    -1,    60,   174,    -1,   226,
     822      -1,   226,   309,    -1,   226,   357,    -1,   366,   139,    -1,
     823     366,    -1,    64,   200,   109,   141,   110,   132,    -1,    64,
     824     200,   109,   141,   130,   201,   110,   132,    -1,    64,   200,
     825     109,   141,   130,   201,   130,   201,   110,   132,    -1,    64,
     826     200,   109,   141,   130,   201,   130,   201,   130,   204,   110,
     827     132,    -1,    64,   200,    51,   109,   141,   130,   130,   201,
     828     130,   204,   130,   205,   110,   132,    -1,    -1,    11,    -1,
     829      -1,   202,    -1,   203,    -1,   202,   116,   203,    -1,   141,
     830     109,   164,   110,    -1,   111,   164,   112,   141,   109,   164,
     831     110,    -1,    -1,   141,    -1,   204,   116,   141,    -1,   139,
     832      -1,   205,   116,   139,    -1,   135,    -1,   207,    -1,   213,
     833      -1,   207,   134,   213,    -1,   135,    -1,   209,    -1,   223,
     834      -1,   209,   134,   223,    -1,    -1,   211,    -1,    29,   212,
     835     132,    -1,   211,    29,   212,   132,    -1,   274,    -1,   212,
     836     116,   274,    -1,   214,    -1,   223,    -1,   215,   135,   132,
     837      -1,   220,   135,   132,    -1,   217,   135,   132,    -1,   293,
     838     135,   132,    -1,   296,   135,   132,    -1,   216,   277,    -1,
     839     232,   216,   277,    -1,   215,   135,   116,   134,   272,   277,
     840      -1,   367,   272,   311,    -1,   370,   272,   311,    -1,   228,
     841     370,   272,   311,    -1,   218,    -1,   228,   218,    -1,   232,
     842     218,    -1,   232,   228,   218,    -1,   217,   135,   116,   134,
     843     272,    -1,   111,   112,   272,   109,   134,   260,   135,   110,
     844      -1,   370,   272,   109,   134,   260,   135,   110,    -1,   219,
     845     272,   109,   134,   260,   135,   110,    -1,   111,   134,   262,
     846     135,   112,    -1,   111,   134,   262,   135,   116,   134,   263,
     847     135,   112,    -1,     3,   216,    -1,     3,   218,    -1,   220,
     848     135,   116,   134,   139,    -1,     3,   226,   309,    -1,   221,
     849     135,   116,   134,   309,    -1,   228,     3,   226,   309,    -1,
     850     226,     3,   309,    -1,   226,     3,   228,   309,    -1,     3,
     851     139,   131,   165,    -1,   222,   135,   116,   134,   139,   131,
     852     165,    -1,   224,   135,   132,    -1,   221,   135,   132,    -1,
     853     222,   135,   132,    -1,   240,   135,   132,    -1,   225,   309,
     854     311,   277,    -1,   224,   116,   312,   309,   311,   277,    -1,
     855     236,    -1,   240,    -1,   242,    -1,   283,    -1,   237,    -1,
     856     241,    -1,   243,    -1,   284,    -1,    -1,   228,    -1,   229,
     857      -1,   228,   229,    -1,   230,    -1,   314,    -1,    10,    -1,
     858      12,    -1,    11,    -1,    14,    -1,    67,    -1,    -1,    13,
     859     109,   231,   286,   110,    -1,   233,    -1,   228,   233,    -1,
     860     232,   228,   233,    -1,   234,    -1,   233,   234,    -1,     5,
     861      -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
     862      -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
     863      -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
     864      -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
     865      -1,   237,    -1,   232,   237,    -1,   236,   234,    -1,   236,
     866     234,   228,    -1,   236,   234,   237,    -1,   238,    -1,   227,
     867     239,   227,    -1,   235,    -1,   228,   235,    -1,   238,   229,
     868      -1,   238,   235,    -1,    28,   109,   276,   110,    -1,    28,
     869     109,   170,   110,    -1,    78,   109,   276,   110,    -1,    78,
     870     109,   170,   110,    -1,   241,    -1,   232,   241,    -1,   240,
     871     234,    -1,   240,   234,   228,    -1,   244,    -1,   228,   244,
     872      -1,   241,   229,    -1,   243,    -1,   232,   243,    -1,   242,
     873     234,    -1,   242,   234,   228,    -1,    74,    -1,   228,    74,
     874      -1,   243,   229,    -1,   245,    -1,   256,    -1,   247,   114,
     875     248,   115,    -1,   247,   274,    -1,    -1,   247,   274,   246,
     876     114,   248,   115,    -1,   247,   109,   292,   110,   114,   248,
     877     115,    -1,   247,   285,    -1,    31,   312,    -1,    32,   312,
     878      -1,    -1,   248,   249,    -1,   250,   132,    -1,    40,   250,
     879     132,    -1,   251,   132,    -1,    40,   251,   132,    -1,   366,
     880      -1,   366,   274,    -1,   250,   116,   274,    -1,   250,   116,
     881      -1,   226,   252,    -1,   251,   116,   312,   252,    -1,    -1,
     882     254,    -1,   318,   253,    -1,   331,   253,    -1,   357,    -1,
     883      -1,   254,    -1,   130,   164,    -1,    30,   312,    -1,   255,
     884     114,   258,   372,   115,    -1,   255,   274,    -1,    -1,   255,
     885     274,   257,   114,   258,   372,   115,    -1,   274,   259,    -1,
     886     258,   116,   274,   259,    -1,    -1,   131,   164,    -1,    -1,
     887     261,    -1,   263,    -1,   262,    -1,   262,   135,   116,   134,
     888     263,    -1,   263,   135,   116,   134,    96,    -1,   262,   135,
     889     116,   134,    96,    -1,   267,    -1,   263,   135,   116,   134,
     890     267,    -1,   262,   135,   116,   134,   267,    -1,   262,   135,
     891     116,   134,   263,   135,   116,   134,   267,    -1,   268,    -1,
     892     263,   135,   116,   134,   268,    -1,    -1,   265,    -1,   266,
     893      -1,   266,   135,   116,   134,    96,    -1,   270,    -1,   269,
     894      -1,   266,   135,   116,   134,   270,    -1,   266,   135,   116,
     895     134,   269,    -1,   269,    -1,   362,   272,   373,    -1,   370,
     896     272,   373,    -1,   228,   370,   272,   373,    -1,   218,    -1,
     897     270,    -1,   362,    -1,   370,    -1,   228,   370,    -1,   371,
     898      -1,   225,   336,   373,    -1,   225,   340,   373,    -1,   225,
     899      -1,   225,   351,    -1,   139,    -1,   271,   116,   139,    -1,
     900     137,    -1,    74,    -1,    75,    -1,   138,    -1,    74,    -1,
     901      75,    -1,   139,    -1,    74,    -1,    75,    -1,   366,    -1,
     902     226,    -1,   226,   357,    -1,   366,    -1,   371,    -1,   226,
     903      -1,   226,   345,    -1,    -1,   131,   278,    -1,   107,   278,
     904      -1,   165,    -1,   114,   279,   372,   115,    -1,    -1,   278,
     905      -1,   280,   278,    -1,   279,   116,   278,    -1,   279,   116,
     906     280,   278,    -1,   281,   130,    -1,   274,   130,    -1,   282,
     907      -1,   281,   282,    -1,   113,   274,    -1,   111,   134,   165,
     908     135,   112,    -1,   111,   134,   310,   135,   112,    -1,   111,
     909     134,   164,    96,   164,   135,   112,    -1,   113,   111,   134,
     910     147,   135,   112,    -1,   284,    -1,   232,   284,    -1,   283,
     911     234,    -1,   283,   234,   228,    -1,   285,    -1,   228,   285,
     912      -1,   284,   229,    -1,    75,   109,   292,   110,    -1,   287,
     913     373,    -1,   286,   116,   287,   373,    -1,    -1,   289,   274,
     914     288,   290,    -1,   226,   336,    -1,    33,    -1,    35,    -1,
     915      34,    -1,    -1,   290,   291,    -1,   128,   274,   109,   292,
     916     110,    -1,   128,   114,   134,   298,   115,    -1,   128,   109,
     917     134,   286,   135,   110,   114,   134,   298,   115,   109,   292,
     918     110,    -1,   276,    -1,   165,    -1,   292,   116,   276,    -1,
     919     292,   116,   165,    -1,    33,   294,    -1,   233,    33,   294,
     920      -1,   293,   116,   294,    -1,   295,   290,    -1,   295,   290,
     921     131,   276,    -1,   274,    -1,   273,   109,   134,   286,   135,
     922     110,    -1,    36,   274,   109,   134,   286,   135,   110,   114,
     923     115,    -1,    -1,    36,   274,   109,   134,   286,   135,   110,
     924     114,   297,   298,   115,    -1,   299,    -1,   298,   134,   299,
     925      -1,   300,   135,   132,    -1,   301,   135,   132,    -1,   216,
     926      -1,   218,    -1,   300,   135,   116,   134,   272,    -1,   226,
     927     309,    -1,   301,   135,   116,   134,   309,    -1,    -1,   303,
     928      -1,   305,    -1,   303,   134,   305,    -1,    -1,   303,    -1,
     929     213,    -1,   307,    -1,   199,    -1,    -1,     5,    82,   306,
     930     114,   304,   115,    -1,    40,   305,    -1,   308,    -1,   323,
     931     174,    -1,   327,   134,   208,   174,    -1,   217,   174,    -1,
     932     225,   323,   174,    -1,   228,   323,   174,    -1,   232,   323,
     933     174,    -1,   232,   228,   323,   174,    -1,   225,   327,   134,
     934     208,   174,    -1,   228,   327,   134,   208,   174,    -1,   232,
     935     327,   134,   208,   174,    -1,   232,   228,   327,   134,   208,
     936     174,    -1,   318,    -1,   331,    -1,   323,    -1,   164,   122,
     937     164,    -1,    -1,    64,   109,   142,   110,   312,    -1,    -1,
     938     313,    -1,   314,    -1,   313,   314,    -1,    39,   109,   109,
     939     315,   110,   110,    -1,   316,    -1,   315,   116,   316,    -1,
     940      -1,   317,    -1,   317,   109,   171,   110,    -1,   272,    -1,
     941     234,    -1,   235,    -1,   229,    -1,   319,   312,    -1,   320,
     942      -1,   321,   312,    -1,   322,   312,    -1,   137,    -1,   109,
     943     319,   110,    -1,   150,   318,    -1,   150,   228,   318,    -1,
     944     109,   320,   110,    -1,   319,   349,    -1,   109,   320,   110,
     945     349,    -1,   109,   321,   110,   350,    -1,   109,   321,   110,
     946      -1,   109,   320,   110,   109,   134,   264,   135,   110,    -1,
     947     109,   322,   110,    -1,   324,   312,    -1,   325,    -1,   326,
     948     312,    -1,   319,   109,   134,   264,   135,   110,    -1,   109,
     949     325,   110,   109,   134,   264,   135,   110,    -1,   109,   324,
     950     110,    -1,   150,   323,    -1,   150,   228,   323,    -1,   109,
     951     325,   110,    -1,   109,   325,   110,   349,    -1,   109,   326,
     952     110,   350,    -1,   109,   326,   110,    -1,   328,    -1,   329,
     953      -1,   330,    -1,   319,   109,   271,   110,    -1,   109,   329,
     954     110,   109,   271,   110,    -1,   109,   328,   110,    -1,   150,
     955     327,    -1,   150,   228,   327,    -1,   109,   329,   110,    -1,
     956     109,   329,   110,   349,    -1,   109,   330,   110,   350,    -1,
     957     109,   330,   110,    -1,   332,   312,    -1,   333,    -1,   334,
     958     312,    -1,   335,   312,    -1,   341,    -1,   109,   332,   110,
     959      -1,   150,   331,    -1,   150,   228,   331,    -1,   109,   333,
     960     110,    -1,   332,   349,    -1,   109,   333,   110,   349,    -1,
     961     109,   334,   110,   350,    -1,   109,   334,   110,    -1,   332,
     962     109,   134,   264,   135,   110,    -1,   109,   333,   110,   109,
     963     134,   264,   135,   110,    -1,   109,   335,   110,    -1,   319,
     964     312,    -1,   337,    -1,   338,   312,    -1,   339,   312,    -1,
     965     150,   336,    -1,   150,   228,   336,    -1,   109,   337,   110,
     966      -1,   319,   355,    -1,   109,   337,   110,   349,    -1,   109,
     967     338,   110,   350,    -1,   109,   338,   110,    -1,   319,   109,
     968     134,   264,   135,   110,    -1,   109,   337,   110,   109,   134,
     969     264,   135,   110,    -1,   109,   339,   110,    -1,   341,   312,
     970      -1,   342,    -1,   343,   312,    -1,   344,   312,    -1,    74,
     971      -1,    75,    -1,   150,   340,    -1,   150,   228,   340,    -1,
     972     109,   342,   110,    -1,   341,   355,    -1,   109,   342,   110,
     973     355,    -1,   341,   109,   134,   264,   135,   110,    -1,   109,
     974     342,   110,   109,   134,   264,   135,   110,    -1,   346,    -1,
     975     347,   312,    -1,   348,   312,    -1,   150,    -1,   150,   228,
     976      -1,   150,   345,    -1,   150,   228,   345,    -1,   109,   346,
     977     110,    -1,   349,    -1,   109,   346,   110,   349,    -1,   109,
     978     347,   110,   350,    -1,   109,   347,   110,    -1,   109,   134,
     979     264,   135,   110,    -1,   109,   346,   110,   109,   134,   264,
     980     135,   110,    -1,   109,   348,   110,    -1,   111,   112,    -1,
     981     111,   112,   350,    -1,   350,    -1,   111,   134,   165,   135,
     982     112,    -1,   111,   134,   117,   135,   112,    -1,   350,   111,
     983     134,   165,   135,   112,    -1,   350,   111,   134,   117,   135,
     984     112,    -1,   352,    -1,   353,   312,    -1,   354,   312,    -1,
     985     150,    -1,   150,   228,    -1,   150,   351,    -1,   150,   228,
     986     351,    -1,   109,   352,   110,    -1,   355,    -1,   109,   352,
     987     110,   355,    -1,   109,   353,   110,   350,    -1,   109,   353,
     988     110,    -1,   109,   134,   264,   135,   110,    -1,   109,   352,
     989     110,   109,   134,   264,   135,   110,    -1,   109,   354,   110,
     990      -1,   356,    -1,   356,   350,    -1,   350,    -1,   111,   112,
     991      -1,   111,   134,   228,   117,   135,   112,    -1,   111,   134,
     992     228,   135,   112,    -1,   111,   134,   228,   165,   135,   112,
     993      -1,   111,   134,     7,   227,   165,   135,   112,    -1,   111,
     994     134,   228,     7,   165,   135,   112,    -1,   358,    -1,   359,
     995     312,    -1,   360,   312,    -1,   150,    -1,   150,   228,    -1,
     996     150,   357,    -1,   150,   228,   357,    -1,   109,   358,   110,
     997      -1,   349,    -1,   109,   358,   110,   349,    -1,   109,   359,
     998     110,   350,    -1,   109,   359,   110,    -1,   109,   358,   110,
     999     109,   134,   264,   135,   110,    -1,   109,   360,   110,    -1,
     1000     362,    -1,   370,    -1,   228,   370,    -1,   363,    -1,   364,
     1001      -1,   150,   226,    -1,   228,   150,   226,    -1,   150,   371,
     1002      -1,   228,   150,   371,    -1,   150,   361,    -1,   228,   150,
     1003     361,    -1,   111,   112,   226,    -1,   365,   226,    -1,   111,
     1004     112,   350,   226,    -1,   365,   350,   226,    -1,   350,   226,
     1005      -1,   111,   112,   363,    -1,   365,   363,    -1,   111,   112,
     1006     350,   363,    -1,   365,   350,   363,    -1,   350,   363,    -1,
     1007     111,   134,   228,   117,   135,   112,    -1,   111,   134,   228,
     1008     165,   135,   112,    -1,   111,   134,   232,   165,   135,   112,
     1009      -1,   111,   134,   232,   228,   165,   135,   112,    -1,   370,
     1010      -1,   228,   370,    -1,   367,    -1,   368,    -1,   369,    -1,
     1011     150,   226,    -1,   228,   150,   226,    -1,   150,   371,    -1,
     1012     228,   150,   371,    -1,   150,   366,    -1,   228,   150,   366,
     1013      -1,   111,   112,   226,    -1,   111,   112,   350,   226,    -1,
     1014     350,   226,    -1,   111,   112,   368,    -1,   111,   112,   350,
     1015     368,    -1,   350,   368,    -1,   111,   134,   263,   135,   112,
     1016      -1,   111,   112,   109,   260,   110,    -1,   370,   109,   134,
     1017     260,   135,   110,    -1,   219,   109,   134,   260,   135,   110,
     1018      -1,    -1,   116,    -1,    -1,   131,   165,    -1
    10201019};
    10211020
     
    10231022static const yytype_uint16 yyrline[] =
    10241023{
    1025        0,   302,   302,   306,   313,   314,   315,   319,   320,   321,
    1026      325,   326,   330,   331,   335,   336,   340,   344,   345,   356,
    1027      358,   360,   362,   367,   368,   374,   378,   380,   381,   382,
    1028      384,   385,   387,   389,   391,   400,   401,   407,   408,   412,
    1029      413,   417,   421,   423,   425,   427,   432,   433,   437,   440,
    1030      442,   444,   449,   462,   464,   466,   468,   470,   472,   474,
    1031      476,   478,   480,   482,   489,   490,   496,   497,   498,   499,
    1032      503,   504,   506,   511,   512,   514,   516,   521,   522,   524,
    1033      529,   530,   532,   537,   538,   540,   542,   544,   549,   550,
    1034      552,   557,   558,   563,   564,   569,   570,   575,   576,   581,
    1035      582,   587,   588,   591,   593,   598,   603,   604,   606,   612,
    1036      613,   617,   618,   619,   620,   621,   622,   623,   624,   625,
    1037      626,   627,   628,   634,   636,   638,   640,   645,   646,   651,
    1038      652,   658,   659,   665,   666,   667,   668,   669,   670,   671,
    1039      672,   673,   683,   690,   692,   702,   703,   708,   710,   716,
    1040      718,   722,   723,   728,   733,   736,   738,   740,   750,   752,
    1041      763,   764,   766,   770,   772,   776,   777,   782,   783,   787,
    1042      792,   793,   797,   799,   805,   806,   810,   812,   814,   816,
    1043      822,   823,   827,   829,   834,   836,   838,   843,   845,   850,
    1044      852,   856,   859,   863,   866,   870,   872,   874,   876,   881,
    1045      883,   885,   890,   892,   894,   896,   898,   903,   905,   907,
    1046      909,   914,   926,   927,   932,   934,   939,   943,   945,   947,
    1047      949,   951,   957,   958,   964,   965,   969,   970,   975,   977,
    1048      983,   984,   986,   991,   996,  1006,  1008,  1012,  1013,  1018,
    1049     1020,  1024,  1025,  1029,  1031,  1035,  1036,  1040,  1041,  1045,
    1050     1046,  1061,  1062,  1063,  1064,  1065,  1069,  1074,  1081,  1091,
    1051     1096,  1101,  1109,  1114,  1119,  1124,  1129,  1137,  1159,  1164,
    1052     1171,  1173,  1180,  1185,  1190,  1201,  1206,  1211,  1216,  1221,
    1053     1230,  1235,  1243,  1244,  1245,  1246,  1252,  1257,  1265,  1266,
    1054     1267,  1268,  1272,  1273,  1274,  1275,  1280,  1281,  1290,  1291,
    1055     1296,  1297,  1302,  1304,  1306,  1308,  1310,  1313,  1312,  1324,
    1056     1325,  1327,  1337,  1338,  1343,  1345,  1347,  1349,  1351,  1354,
    1057     1356,  1359,  1364,  1366,  1368,  1370,  1372,  1374,  1376,  1378,
    1058     1380,  1382,  1384,  1386,  1388,  1394,  1395,  1397,  1399,  1401,
    1059     1406,  1407,  1413,  1414,  1416,  1418,  1423,  1425,  1427,  1429,
    1060     1434,  1435,  1437,  1439,  1444,  1445,  1447,  1452,  1453,  1455,
    1061     1457,  1462,  1464,  1466,  1471,  1472,  1476,  1478,  1484,  1483,
    1062     1487,  1489,  1494,  1496,  1502,  1503,  1508,  1509,  1511,  1512,
    1063     1521,  1522,  1524,  1526,  1531,  1533,  1539,  1540,  1542,  1545,
    1064     1548,  1553,  1554,  1559,  1564,  1568,  1570,  1576,  1575,  1582,
    1065     1584,  1590,  1591,  1599,  1600,  1604,  1605,  1606,  1608,  1610,
    1066     1617,  1618,  1620,  1622,  1627,  1628,  1634,  1635,  1639,  1640,
    1067     1645,  1646,  1647,  1649,  1657,  1658,  1660,  1663,  1665,  1669,
    1068     1670,  1671,  1673,  1675,  1679,  1684,  1692,  1693,  1702,  1704,
    1069     1709,  1710,  1711,  1715,  1716,  1717,  1721,  1722,  1723,  1727,
    1070     1728,  1729,  1734,  1735,  1736,  1737,  1743,  1744,  1746,  1751,
    1071     1752,  1757,  1758,  1759,  1760,  1761,  1776,  1777,  1782,  1783,
    1072     1789,  1791,  1794,  1796,  1798,  1821,  1822,  1824,  1826,  1831,
    1073     1832,  1834,  1839,  1844,  1845,  1851,  1850,  1854,  1858,  1860,
    1074     1862,  1868,  1869,  1874,  1879,  1881,  1886,  1888,  1889,  1891,
    1075     1896,  1898,  1900,  1905,  1907,  1912,  1917,  1925,  1931,  1930,
    1076     1944,  1945,  1950,  1951,  1955,  1960,  1965,  1973,  1978,  1989,
    1077     1990,  1995,  1996,  2002,  2003,  2007,  2008,  2009,  2012,  2011,
    1078     2022,  2031,  2037,  2043,  2052,  2058,  2064,  2070,  2076,  2084,
    1079     2090,  2098,  2104,  2113,  2114,  2115,  2119,  2123,  2125,  2130,
    1080     2131,  2135,  2136,  2141,  2147,  2148,  2151,  2153,  2154,  2158,
    1081     2159,  2160,  2161,  2195,  2197,  2198,  2200,  2205,  2210,  2215,
    1082     2217,  2219,  2224,  2226,  2228,  2230,  2235,  2237,  2246,  2248,
    1083     2249,  2254,  2256,  2258,  2263,  2265,  2267,  2272,  2274,  2276,
    1084     2285,  2286,  2287,  2291,  2293,  2295,  2300,  2302,  2304,  2309,
    1085     2311,  2313,  2328,  2330,  2331,  2333,  2338,  2339,  2344,  2346,
    1086     2348,  2353,  2355,  2357,  2359,  2364,  2366,  2368,  2378,  2380,
    1087     2381,  2383,  2388,  2390,  2392,  2397,  2399,  2401,  2403,  2408,
    1088     2410,  2412,  2443,  2445,  2446,  2448,  2453,  2458,  2466,  2468,
    1089     2470,  2475,  2477,  2482,  2484,  2498,  2499,  2501,  2506,  2508,
    1090     2510,  2512,  2514,  2519,  2520,  2522,  2524,  2529,  2531,  2533,
    1091     2539,  2541,  2543,  2547,  2549,  2551,  2553,  2567,  2568,  2570,
    1092     2575,  2577,  2579,  2581,  2583,  2588,  2589,  2591,  2593,  2598,
    1093     2600,  2602,  2608,  2609,  2611,  2620,  2623,  2625,  2628,  2630,
    1094     2632,  2645,  2646,  2648,  2653,  2655,  2657,  2659,  2661,  2666,
    1095     2667,  2669,  2671,  2676,  2678,  2686,  2687,  2688,  2693,  2694,
    1096     2698,  2700,  2702,  2704,  2706,  2708,  2715,  2717,  2719,  2721,
    1097     2723,  2725,  2727,  2729,  2731,  2733,  2738,  2740,  2742,  2747,
    1098     2773,  2774,  2776,  2780,  2781,  2785,  2787,  2789,  2791,  2793,
    1099     2795,  2802,  2804,  2806,  2808,  2810,  2812,  2817,  2822,  2824,
    1100     2826,  2844,  2846,  2851,  2852
     1024       0,   301,   301,   305,   312,   313,   314,   318,   319,   320,
     1025     324,   325,   329,   330,   334,   335,   339,   343,   344,   355,
     1026     357,   359,   361,   366,   367,   373,   377,   379,   380,   382,
     1027     383,   385,   387,   389,   398,   399,   405,   406,   410,   411,
     1028     415,   419,   421,   423,   425,   430,   433,   435,   437,   442,
     1029     455,   457,   459,   461,   463,   465,   467,   469,   471,   473,
     1030     475,   482,   483,   489,   490,   491,   492,   496,   497,   499,
     1031     504,   505,   507,   509,   514,   515,   517,   522,   523,   525,
     1032     530,   531,   533,   535,   537,   542,   543,   545,   550,   551,
     1033     556,   557,   562,   563,   568,   569,   574,   575,   580,   581,
     1034     584,   586,   591,   596,   597,   599,   605,   606,   610,   611,
     1035     612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
     1036     627,   629,   631,   633,   638,   639,   644,   645,   651,   652,
     1037     658,   659,   660,   661,   662,   663,   664,   665,   666,   676,
     1038     683,   685,   695,   696,   701,   703,   709,   711,   715,   716,
     1039     721,   726,   729,   731,   733,   743,   745,   756,   757,   759,
     1040     763,   765,   769,   770,   775,   776,   780,   785,   786,   790,
     1041     792,   798,   799,   803,   805,   807,   809,   815,   816,   820,
     1042     822,   827,   829,   831,   836,   838,   843,   845,   849,   852,
     1043     856,   859,   863,   865,   867,   869,   874,   876,   878,   883,
     1044     885,   887,   889,   891,   896,   898,   900,   902,   907,   919,
     1045     920,   925,   927,   932,   936,   938,   940,   942,   944,   950,
     1046     951,   957,   958,   962,   963,   968,   970,   976,   977,   979,
     1047     984,   989,   999,  1001,  1005,  1006,  1011,  1013,  1017,  1018,
     1048    1022,  1024,  1028,  1029,  1033,  1034,  1038,  1039,  1054,  1055,
     1049    1056,  1057,  1058,  1062,  1067,  1074,  1084,  1089,  1094,  1102,
     1050    1107,  1112,  1117,  1122,  1130,  1152,  1157,  1164,  1166,  1173,
     1051    1178,  1183,  1194,  1199,  1204,  1209,  1214,  1223,  1228,  1236,
     1052    1237,  1238,  1239,  1245,  1250,  1258,  1259,  1260,  1261,  1265,
     1053    1266,  1267,  1268,  1273,  1274,  1283,  1284,  1289,  1290,  1295,
     1054    1297,  1299,  1301,  1303,  1306,  1305,  1317,  1318,  1320,  1330,
     1055    1331,  1336,  1338,  1340,  1342,  1344,  1347,  1349,  1352,  1357,
     1056    1359,  1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,
     1057    1379,  1381,  1387,  1388,  1390,  1392,  1394,  1399,  1400,  1406,
     1058    1407,  1409,  1411,  1416,  1418,  1420,  1422,  1427,  1428,  1430,
     1059    1432,  1437,  1438,  1440,  1445,  1446,  1448,  1450,  1455,  1457,
     1060    1459,  1464,  1465,  1469,  1471,  1477,  1476,  1480,  1482,  1487,
     1061    1489,  1495,  1496,  1501,  1502,  1504,  1505,  1514,  1515,  1517,
     1062    1519,  1524,  1526,  1532,  1533,  1535,  1538,  1541,  1546,  1547,
     1063    1552,  1557,  1561,  1563,  1569,  1568,  1575,  1577,  1583,  1584,
     1064    1592,  1593,  1597,  1598,  1599,  1601,  1603,  1610,  1611,  1613,
     1065    1615,  1620,  1621,  1627,  1628,  1632,  1633,  1638,  1639,  1640,
     1066    1642,  1650,  1651,  1653,  1656,  1658,  1662,  1663,  1664,  1666,
     1067    1668,  1672,  1677,  1685,  1686,  1695,  1697,  1702,  1703,  1704,
     1068    1708,  1709,  1710,  1714,  1715,  1716,  1720,  1721,  1722,  1727,
     1069    1728,  1729,  1730,  1736,  1737,  1739,  1744,  1745,  1750,  1751,
     1070    1752,  1753,  1754,  1769,  1770,  1775,  1776,  1782,  1784,  1787,
     1071    1789,  1791,  1814,  1815,  1817,  1819,  1824,  1825,  1827,  1832,
     1072    1837,  1838,  1844,  1843,  1847,  1851,  1853,  1855,  1861,  1862,
     1073    1867,  1872,  1874,  1879,  1881,  1882,  1884,  1889,  1891,  1893,
     1074    1898,  1900,  1905,  1910,  1918,  1924,  1923,  1937,  1938,  1943,
     1075    1944,  1948,  1953,  1958,  1966,  1971,  1982,  1983,  1988,  1989,
     1076    1995,  1996,  2000,  2001,  2002,  2005,  2004,  2015,  2024,  2030,
     1077    2036,  2045,  2051,  2057,  2063,  2069,  2077,  2083,  2091,  2097,
     1078    2106,  2107,  2108,  2112,  2116,  2118,  2123,  2124,  2128,  2129,
     1079    2134,  2140,  2141,  2144,  2146,  2147,  2151,  2152,  2153,  2154,
     1080    2188,  2190,  2191,  2193,  2198,  2203,  2208,  2210,  2212,  2217,
     1081    2219,  2221,  2223,  2228,  2230,  2239,  2241,  2242,  2247,  2249,
     1082    2251,  2256,  2258,  2260,  2265,  2267,  2269,  2278,  2279,  2280,
     1083    2284,  2286,  2288,  2293,  2295,  2297,  2302,  2304,  2306,  2321,
     1084    2323,  2324,  2326,  2331,  2332,  2337,  2339,  2341,  2346,  2348,
     1085    2350,  2352,  2357,  2359,  2361,  2371,  2373,  2374,  2376,  2381,
     1086    2383,  2385,  2390,  2392,  2394,  2396,  2401,  2403,  2405,  2436,
     1087    2438,  2439,  2441,  2446,  2451,  2459,  2461,  2463,  2468,  2470,
     1088    2475,  2477,  2491,  2492,  2494,  2499,  2501,  2503,  2505,  2507,
     1089    2512,  2513,  2515,  2517,  2522,  2524,  2526,  2532,  2534,  2536,
     1090    2540,  2542,  2544,  2546,  2560,  2561,  2563,  2568,  2570,  2572,
     1091    2574,  2576,  2581,  2582,  2584,  2586,  2591,  2593,  2595,  2601,
     1092    2602,  2604,  2613,  2616,  2618,  2621,  2623,  2625,  2638,  2639,
     1093    2641,  2646,  2648,  2650,  2652,  2654,  2659,  2660,  2662,  2664,
     1094    2669,  2671,  2679,  2680,  2681,  2686,  2687,  2691,  2693,  2695,
     1095    2697,  2699,  2701,  2708,  2710,  2712,  2714,  2716,  2718,  2720,
     1096    2722,  2724,  2726,  2731,  2733,  2735,  2740,  2766,  2767,  2769,
     1097    2773,  2774,  2778,  2780,  2782,  2784,  2786,  2788,  2795,  2797,
     1098    2799,  2801,  2803,  2805,  2810,  2815,  2817,  2819,  2837,  2839,
     1099    2844,  2845
    11011100};
    11021101#endif
     
    11301129  "string_literal", "string_literal_list", "primary_expression",
    11311130  "postfix_expression", "argument_expression_list", "argument_expression",
    1132   "field_list", "field", "field_name", "unary_expression",
    1133   "ptrref_operator", "unary_operator", "cast_expression",
    1134   "multiplicative_expression", "additive_expression", "shift_expression",
    1135   "relational_expression", "equality_expression", "AND_expression",
    1136   "exclusive_OR_expression", "inclusive_OR_expression",
    1137   "logical_AND_expression", "logical_OR_expression",
    1138   "conditional_expression", "constant_expression", "assignment_expression",
    1139   "assignment_expression_opt", "assignment_operator", "tuple",
    1140   "tuple_expression_list", "comma_expression", "comma_expression_opt",
    1141   "statement", "labeled_statement", "compound_statement",
    1142   "block_item_list", "block_item", "statement_list",
    1143   "expression_statement", "selection_statement", "case_value",
    1144   "case_value_list", "case_label", "case_label_list", "case_clause",
    1145   "switch_clause_list_opt", "switch_clause_list", "choose_clause_list_opt",
    1146   "choose_clause_list", "fall_through_opt", "fall_through",
    1147   "iteration_statement", "for_control_expression", "jump_statement",
    1148   "exception_statement", "handler_list", "handler_clause",
    1149   "finally_clause", "exception_declaration", "asm_statement",
    1150   "asm_volatile_opt", "asm_operands_opt", "asm_operands_list",
    1151   "asm_operand", "asm_clobbers_list_opt", "label_list",
    1152   "declaration_list_opt", "declaration_list", "old_declaration_list_opt",
    1153   "old_declaration_list", "local_label_declaration_opt",
    1154   "local_label_declaration_list", "local_label_list", "declaration",
    1155   "new_declaration", "new_variable_declaration", "new_variable_specifier",
     1131  "field_list", "field", "unary_expression", "ptrref_operator",
     1132  "unary_operator", "cast_expression", "multiplicative_expression",
     1133  "additive_expression", "shift_expression", "relational_expression",
     1134  "equality_expression", "AND_expression", "exclusive_OR_expression",
     1135  "inclusive_OR_expression", "logical_AND_expression",
     1136  "logical_OR_expression", "conditional_expression", "constant_expression",
     1137  "assignment_expression", "assignment_expression_opt",
     1138  "assignment_operator", "tuple", "tuple_expression_list",
     1139  "comma_expression", "comma_expression_opt", "statement",
     1140  "labeled_statement", "compound_statement", "block_item_list",
     1141  "block_item", "statement_list", "expression_statement",
     1142  "selection_statement", "case_value", "case_value_list", "case_label",
     1143  "case_label_list", "case_clause", "switch_clause_list_opt",
     1144  "switch_clause_list", "choose_clause_list_opt", "choose_clause_list",
     1145  "fall_through_opt", "fall_through", "iteration_statement",
     1146  "for_control_expression", "jump_statement", "exception_statement",
     1147  "handler_list", "handler_clause", "finally_clause",
     1148  "exception_declaration", "asm_statement", "asm_volatile_opt",
     1149  "asm_operands_opt", "asm_operands_list", "asm_operand",
     1150  "asm_clobbers_list_opt", "label_list", "declaration_list_opt",
     1151  "declaration_list", "old_declaration_list_opt", "old_declaration_list",
     1152  "local_label_declaration_opt", "local_label_declaration_list",
     1153  "local_label_list", "declaration", "new_declaration",
     1154  "new_variable_declaration", "new_variable_specifier",
    11561155  "new_function_declaration", "new_function_specifier",
    11571156  "new_function_return", "new_typedef_declaration", "typedef_declaration",
     
    12431242     138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
    12441243     143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
    1245      144,   144,   144,   144,   144,   145,   145,   146,   146,   147,
    1246      147,   148,   148,   148,   148,   148,   149,   149,   150,   150,
    1247      150,   150,   150,   150,   150,   150,   150,   150,   150,   150,
    1248      150,   150,   150,   150,   151,   151,   152,   152,   152,   152,
    1249      153,   153,   153,   154,   154,   154,   154,   155,   155,   155,
    1250      156,   156,   156,   157,   157,   157,   157,   157,   158,   158,
    1251      158,   159,   159,   160,   160,   161,   161,   162,   162,   163,
    1252      163,   164,   164,   164,   164,   165,   166,   166,   166,   167,
    1253      167,   168,   168,   168,   168,   168,   168,   168,   168,   168,
    1254      168,   168,   168,   169,   169,   169,   169,   170,   170,   171,
    1255      171,   172,   172,   173,   173,   173,   173,   173,   173,   173,
    1256      173,   173,   174,   175,   175,   176,   176,   177,   177,   177,
    1257      177,   178,   178,   179,   180,   180,   180,   180,   180,   180,
    1258      181,   181,   181,   182,   182,   183,   183,   184,   184,   185,
    1259      186,   186,   187,   187,   188,   188,   189,   189,   189,   189,
    1260      190,   190,   191,   191,   192,   192,   192,   193,   193,   194,
    1261      194,   194,   194,   194,   194,   194,   194,   194,   194,   195,
    1262      195,   195,   196,   196,   196,   196,   196,   197,   197,   197,
    1263      197,   198,   199,   199,   199,   199,   199,   200,   200,   200,
    1264      200,   200,   201,   201,   202,   202,   203,   203,   204,   204,
    1265      205,   205,   205,   206,   206,   207,   207,   208,   208,   209,
    1266      209,   210,   210,   211,   211,   212,   212,   213,   213,   214,
    1267      214,   215,   215,   215,   215,   215,   216,   216,   216,   217,
    1268      217,   217,   218,   218,   218,   218,   218,   219,   219,   219,
    1269      220,   220,   221,   221,   221,   222,   222,   222,   222,   222,
    1270      223,   223,   224,   224,   224,   224,   225,   225,   226,   226,
    1271      226,   226,   227,   227,   227,   227,   228,   228,   229,   229,
    1272      230,   230,   231,   231,   231,   231,   231,   232,   231,   233,
    1273      233,   233,   234,   234,   235,   235,   235,   235,   235,   235,
    1274      235,   235,   236,   236,   236,   236,   236,   236,   236,   236,
    1275      236,   236,   236,   236,   236,   237,   237,   237,   237,   237,
    1276      238,   238,   239,   239,   239,   239,   240,   240,   240,   240,
    1277      241,   241,   241,   241,   242,   242,   242,   243,   243,   243,
    1278      243,   244,   244,   244,   245,   245,   246,   246,   247,   246,
    1279      246,   246,   248,   248,   249,   249,   250,   250,   250,   250,
    1280      251,   251,   251,   251,   252,   252,   253,   253,   253,   253,
    1281      253,   254,   254,   255,   256,   257,   257,   258,   257,   259,
    1282      259,   260,   260,   261,   261,   262,   262,   262,   262,   262,
    1283      263,   263,   263,   263,   264,   264,   265,   265,   266,   266,
    1284      267,   267,   267,   267,   268,   268,   268,   268,   268,   269,
    1285      269,   269,   269,   269,   270,   270,   271,   271,   272,   272,
     1244     144,   144,   144,   144,   145,   145,   146,   146,   147,   147,
     1245     148,   148,   148,   148,   148,   149,   149,   149,   149,   149,
     1246     149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
     1247     149,   150,   150,   151,   151,   151,   151,   152,   152,   152,
     1248     153,   153,   153,   153,   154,   154,   154,   155,   155,   155,
     1249     156,   156,   156,   156,   156,   157,   157,   157,   158,   158,
     1250     159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
     1251     163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
     1252     167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
     1253     168,   168,   168,   168,   169,   169,   170,   170,   171,   171,
     1254     172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
     1255     174,   174,   175,   175,   176,   176,   176,   176,   177,   177,
     1256     178,   179,   179,   179,   179,   179,   179,   180,   180,   180,
     1257     181,   181,   182,   182,   183,   183,   184,   185,   185,   186,
     1258     186,   187,   187,   188,   188,   188,   188,   189,   189,   190,
     1259     190,   191,   191,   191,   192,   192,   193,   193,   193,   193,
     1260     193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
     1261     195,   195,   195,   195,   196,   196,   196,   196,   197,   198,
     1262     198,   198,   198,   198,   199,   199,   199,   199,   199,   200,
     1263     200,   201,   201,   202,   202,   203,   203,   204,   204,   204,
     1264     205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
     1265     210,   210,   211,   211,   212,   212,   213,   213,   214,   214,
     1266     214,   214,   214,   215,   215,   215,   216,   216,   216,   217,
     1267     217,   217,   217,   217,   218,   218,   218,   219,   219,   220,
     1268     220,   220,   221,   221,   221,   221,   221,   222,   222,   223,
     1269     223,   223,   223,   224,   224,   225,   225,   225,   225,   226,
     1270     226,   226,   226,   227,   227,   228,   228,   229,   229,   230,
     1271     230,   230,   230,   230,   231,   230,   232,   232,   232,   233,
     1272     233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
     1273     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
     1274     235,   235,   236,   236,   236,   236,   236,   237,   237,   238,
     1275     238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
     1276     240,   241,   241,   241,   242,   242,   242,   242,   243,   243,
     1277     243,   244,   244,   245,   245,   246,   245,   245,   245,   247,
     1278     247,   248,   248,   249,   249,   249,   249,   250,   250,   250,
     1279     250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
     1280     254,   255,   256,   256,   257,   256,   258,   258,   259,   259,
     1281     260,   260,   261,   261,   261,   261,   261,   262,   262,   262,
     1282     262,   263,   263,   264,   264,   265,   265,   266,   266,   266,
     1283     266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
     1284     268,   269,   269,   270,   270,   271,   271,   272,   272,   272,
    12861285     273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
    1287      276,   276,   277,   277,   277,   277,   278,   278,   278,   279,
    1288      279,   280,   280,   280,   280,   280,   281,   281,   282,   282,
    1289      283,   283,   283,   283,   283,   284,   284,   284,   284,   285,
    1290      285,   285,   286,   287,   287,   289,   288,   288,   290,   290,
    1291      290,   291,   291,   292,   292,   292,   293,   293,   293,   293,
    1292      294,   294,   294,   295,   295,   296,   296,   297,   298,   297,
    1293      299,   299,   300,   300,   301,   301,   301,   302,   302,   303,
    1294      303,   304,   304,   305,   305,   306,   306,   306,   307,   306,
    1295      306,   308,   308,   308,   309,   309,   309,   309,   309,   309,
    1296      309,   309,   309,   310,   310,   310,   311,   312,   312,   313,
    1297      313,   314,   314,   315,   316,   316,   317,   317,   317,   318,
    1298      318,   318,   318,   319,   319,   319,   319,   320,   320,   321,
    1299      321,   321,   322,   322,   322,   322,   323,   323,   324,   324,
     1286     276,   276,   276,   277,   277,   277,   278,   278,   279,   279,
     1287     279,   279,   279,   280,   280,   281,   281,   282,   282,   282,
     1288     282,   282,   283,   283,   283,   283,   284,   284,   284,   285,
     1289     286,   286,   288,   287,   287,   289,   289,   289,   290,   290,
     1290     291,   291,   291,   292,   292,   292,   292,   293,   293,   293,
     1291     294,   294,   295,   295,   296,   297,   296,   298,   298,   299,
     1292     299,   300,   300,   300,   301,   301,   302,   302,   303,   303,
     1293     304,   304,   305,   305,   305,   306,   305,   305,   307,   307,
     1294     307,   308,   308,   308,   308,   308,   308,   308,   308,   308,
     1295     309,   309,   309,   310,   311,   311,   312,   312,   313,   313,
     1296     314,   315,   315,   316,   316,   316,   317,   317,   317,   317,
     1297     318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
     1298     321,   321,   321,   322,   322,   323,   323,   323,   324,   324,
    13001299     324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
    13011300     328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
    1302      331,   331,   332,   332,   332,   332,   333,   333,   334,   334,
    1303      334,   335,   335,   335,   335,   336,   336,   336,   337,   337,
    1304      337,   337,   338,   338,   338,   339,   339,   339,   339,   340,
    1305      340,   340,   341,   341,   341,   341,   342,   342,   343,   343,
    1306      343,   344,   344,   345,   345,   346,   346,   346,   347,   347,
    1307      347,   347,   347,   348,   348,   348,   348,   349,   349,   349,
    1308      350,   350,   350,   351,   351,   351,   351,   352,   352,   352,
    1309      353,   353,   353,   353,   353,   354,   354,   354,   354,   355,
    1310      355,   355,   356,   356,   356,   357,   357,   357,   357,   357,
    1311      357,   358,   358,   358,   359,   359,   359,   359,   359,   360,
    1312      360,   360,   360,   361,   361,   362,   362,   362,   363,   363,
    1313      364,   364,   364,   364,   364,   364,   365,   365,   365,   365,
    1314      365,   365,   365,   365,   365,   365,   366,   366,   366,   366,
    1315      367,   367,   367,   368,   368,   369,   369,   369,   369,   369,
    1316      369,   370,   370,   370,   370,   370,   370,   371,   372,   372,
    1317      372,   373,   373,   374,   374
     1301     331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
     1302     334,   334,   335,   335,   335,   336,   336,   336,   336,   337,
     1303     337,   337,   338,   338,   338,   338,   339,   339,   339,   340,
     1304     340,   340,   340,   341,   341,   342,   342,   342,   343,   343,
     1305     344,   344,   345,   345,   345,   346,   346,   346,   346,   346,
     1306     347,   347,   347,   347,   348,   348,   348,   349,   349,   349,
     1307     350,   350,   350,   350,   351,   351,   351,   352,   352,   352,
     1308     352,   352,   353,   353,   353,   353,   354,   354,   354,   355,
     1309     355,   355,   356,   356,   356,   356,   356,   356,   357,   357,
     1310     357,   358,   358,   358,   358,   358,   359,   359,   359,   359,
     1311     360,   360,   361,   361,   361,   362,   362,   363,   363,   363,
     1312     363,   363,   363,   364,   364,   364,   364,   364,   364,   364,
     1313     364,   364,   364,   365,   365,   365,   365,   366,   366,   366,
     1314     367,   367,   368,   368,   368,   368,   368,   368,   369,   369,
     1315     369,   369,   369,   369,   370,   371,   371,   371,   372,   372,
     1316     373,   373
    13181317};
    13191318
     
    13231322       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    13241323       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1325        1,     3,     3,     1,     6,     4,     3,     7,     3,     3,
    1326        7,     2,     2,     7,     4,     1,     3,     0,     1,     1,
    1327        3,     1,     3,     7,     3,     7,     1,     1,     1,     1,
    1328        1,     2,     2,     2,     2,     2,     2,     4,     2,     4,
    1329        6,     1,     4,     4,     1,     1,     1,     1,     1,     1,
    1330        1,     4,     4,     1,     3,     3,     3,     1,     3,     3,
    1331        1,     3,     3,     1,     3,     3,     3,     3,     1,     3,
    1332        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
    1333        3,     1,     5,     4,     5,     1,     1,     3,     2,     0,
     1324       1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
     1325       2,     2,     7,     4,     1,     3,     0,     1,     1,     3,
     1326       1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
     1327       2,     2,     2,     2,     4,     2,     4,     6,     1,     4,
     1328       4,     1,     1,     1,     1,     1,     1,     1,     4,     4,
     1329       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
     1330       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
     1331       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
     1332       4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
    13341333       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1335        1,     1,     1,     2,     5,     6,     7,     1,     3,     1,
    1336        3,     0,     1,     1,     1,     1,     1,     1,     1,     1,
    1337        1,     6,     4,     2,     7,     1,     3,     1,     2,     1,
    1338        2,     1,     2,     2,     5,     7,     5,     9,     5,     9,
    1339        1,     3,     1,     1,     3,     3,     2,     1,     2,     2,
    1340        0,     1,     2,     3,     0,     1,     2,     3,     3,     4,
    1341        0,     1,     1,     2,     5,     7,     6,     6,     4,     3,
    1342        4,     2,     3,     2,     3,     3,     3,     3,     5,     3,
    1343        3,     4,     1,     5,     6,     5,     6,     9,    10,     9,
    1344       10,     2,     1,     2,     2,     2,     1,     6,     8,    10,
    1345       12,    14,     0,     1,     0,     1,     1,     3,     4,     7,
    1346        0,     1,     3,     1,     3,     1,     1,     1,     3,     1,
    1347        1,     1,     3,     0,     1,     3,     4,     1,     3,     1,
    1348        1,     3,     3,     3,     3,     3,     2,     3,     6,     3,
    1349        3,     4,     1,     2,     2,     3,     5,     8,     7,     7,
    1350        5,     9,     2,     2,     5,     3,     5,     4,     3,     4,
    1351        4,     7,     3,     3,     3,     3,     4,     6,     1,     1,
    1352        1,     1,     1,     1,     1,     1,     0,     1,     1,     2,
    1353        1,     1,     1,     1,     1,     1,     1,     0,     5,     1,
    1354        2,     3,     1,     2,     1,     1,     1,     1,     1,     1,
     1334       2,     5,     6,     7,     1,     3,     1,     3,     0,     1,
     1335       1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
     1336       2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
     1337       2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
     1338       1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
     1339       3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
     1340       2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
     1341       2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
     1342       5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
     1343       2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
     1344       1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
     1345       1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
     1346       0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
     1347       3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
     1348       2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
     1349       2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
     1350       3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
     1351       1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
     1352       1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
     1353       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    13551354       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1356        1,     1,     1,     1,     1,     1,     2,     2,     3,     3,
    1357        1,     3,     1,     2,     2,     2,     4,     4,     4,     4,
    1358        1,     2,     2,     3,     1,     2,     2,     1,     2,     2,
    1359        3,     1,     2,     2,     1,     1,     4,     2,     0,     6,
    1360        7,     2,     2,     2,     0,     2,     2,     3,     2,     3,
    1361        1,     2,     3,     2,     2,     4,     0,     1,     2,     2,
    1362        1,     0,     1,     2,     2,     5,     2,     0,     7,     2,
    1363        4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
    1364        1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
    1365        1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
    1366        1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
    1367        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1368        1,     2,     1,     1,     1,     2,     0,     2,     2,     1,
    1369        4,     0,     1,     2,     3,     4,     2,     2,     1,     2,
    1370        2,     5,     5,     7,     6,     1,     2,     2,     3,     1,
    1371        2,     2,     4,     2,     4,     0,     4,     2,     1,     1,
    1372        1,     0,     2,     5,     5,    13,     1,     1,     3,     3,
    1373        2,     3,     3,     2,     4,     1,     6,     9,     0,    11,
    1374        1,     3,     3,     3,     1,     1,     5,     2,     5,     0,
    1375        1,     1,     3,     0,     1,     1,     1,     1,     0,     6,
    1376        2,     1,     2,     4,     2,     3,     3,     3,     4,     5,
    1377        5,     5,     6,     1,     1,     1,     3,     0,     5,     0,
    1378        1,     1,     2,     6,     1,     3,     0,     1,     4,     1,
    1379        1,     1,     1,     2,     1,     2,     2,     1,     3,     2,
    1380        3,     3,     2,     4,     4,     3,     8,     3,     2,     1,
    1381        2,     6,     8,     3,     2,     3,     3,     4,     4,     3,
    1382        1,     1,     1,     4,     6,     3,     2,     3,     3,     4,
    1383        4,     3,     2,     1,     2,     2,     1,     3,     2,     3,
    1384        3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
    1385        2,     2,     2,     3,     3,     2,     4,     4,     3,     6,
    1386        8,     3,     2,     1,     2,     2,     1,     1,     2,     3,
    1387        3,     2,     4,     6,     8,     1,     2,     2,     1,     2,
    1388        2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
    1389        2,     3,     1,     5,     5,     6,     6,     1,     2,     2,
    1390        1,     2,     2,     3,     3,     1,     4,     4,     3,     5,
    1391        8,     3,     1,     2,     1,     2,     6,     5,     6,     7,
    1392        7,     1,     2,     2,     1,     2,     2,     3,     3,     1,
    1393        4,     4,     3,     8,     3,     1,     1,     2,     1,     1,
    1394        2,     3,     2,     3,     2,     3,     3,     2,     4,     3,
    1395        2,     3,     2,     4,     3,     2,     6,     6,     6,     7,
    1396        1,     2,     1,     1,     1,     2,     3,     2,     3,     2,
    1397        3,     3,     4,     2,     3,     4,     2,     5,     5,     6,
    1398        6,     0,     1,     0,     2
     1355       1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
     1356       2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
     1357       3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
     1358       2,     1,     1,     4,     2,     0,     6,     7,     2,     2,
     1359       2,     0,     2,     2,     3,     2,     3,     1,     2,     3,
     1360       2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
     1361       2,     2,     5,     2,     0,     7,     2,     4,     0,     2,
     1362       0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
     1363       9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
     1364       5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
     1365       1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
     1366       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     1367       1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
     1368       2,     3,     4,     2,     2,     1,     2,     2,     5,     5,
     1369       7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
     1370       2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
     1371       5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
     1372       2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
     1373       3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
     1374       0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
     1375       4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
     1376       1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
     1377       6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
     1378       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
     1379       4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
     1380       3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
     1381       4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
     1382       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
     1383       4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
     1384       3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
     1385       1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
     1386       6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
     1387       1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
     1388       5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
     1389       3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
     1390       2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
     1391       2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
     1392       8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
     1393       3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
     1394       4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
     1395       1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
     1396       2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
     1397       0,     2
    13991398};
    14001399
     
    14041403static const yytype_uint16 yydefact[] =
    14051404{
    1406      296,   296,   316,   314,   317,   315,   318,   319,   302,   304,
    1407      303,     0,   305,   330,   322,   327,   325,   326,   324,   323,
    1408      328,   329,   334,   331,   332,   333,   549,   549,   549,     0,
    1409        0,     0,   296,   222,   306,   320,   321,     7,   361,     0,
    1410        8,    14,    15,     0,     2,    64,    65,   567,     9,   296,
    1411      527,   525,   249,     3,   456,     3,   262,     0,     3,     3,
    1412        3,   250,     3,     0,     0,     0,   297,   298,   300,   296,
    1413      309,   312,   342,   288,   335,   340,   289,   350,   290,   357,
    1414      354,   364,     0,     0,   365,   291,   475,   479,     3,     3,
    1415        0,     2,   521,   526,   531,   301,     0,     0,   549,   579,
    1416      549,     2,   590,   591,   592,   296,     0,   733,   734,     0,
    1417       12,     0,    13,   296,   272,   273,     0,   297,   292,   293,
    1418      294,   295,   528,   307,   394,   550,   551,   372,   373,    12,
    1419      447,   448,    11,   443,   446,     0,   505,   500,   491,   447,
    1420      448,     0,     0,   530,   223,     0,   296,     0,     0,     0,
    1421        0,     0,     0,     0,     0,   296,   296,     2,     0,   735,
    1422      297,   584,   596,   739,   732,   730,   737,     0,     0,     0,
    1423      256,     2,     0,   534,   441,   442,   440,     0,     0,     0,
    1424        0,   549,     0,   636,   637,     0,     0,   547,   543,   549,
    1425      564,   549,   549,   545,     2,   544,   549,   603,   549,   549,
    1426      606,     0,     0,     0,   296,   296,   314,   362,     2,   296,
    1427      263,   299,   310,   343,   355,   480,     0,     2,     0,   456,
    1428      264,   297,   336,   351,   358,   476,     0,     2,     0,   313,
    1429      337,   344,   345,     0,   352,   356,   359,   363,   448,   296,
    1430      374,   367,   371,     0,   396,   477,   481,     0,     0,     0,
    1431        1,   296,     2,   532,   578,   580,   296,     2,   743,   297,
    1432      746,   547,   547,     0,   297,     0,     0,   275,   549,   545,
    1433        2,   296,     0,     0,   296,   552,     2,   503,     2,   556,
    1434        0,     0,     0,     0,     0,     0,    19,    61,     4,     5,
    1435        6,    17,     0,     0,   296,     2,    66,    67,    68,    69,
    1436       49,    20,    50,    16,    23,    48,    70,   296,     0,    73,
    1437       77,    80,    83,    88,    91,    93,    95,    97,    99,   101,
    1438      106,   497,   753,   454,   496,     0,   452,   453,     0,   568,
    1439      583,   586,   589,   595,   598,   601,   361,     0,     2,   741,
    1440        0,   296,   744,     2,    64,   296,     3,   428,     0,   436,
    1441      297,   296,   309,   335,   289,   350,   357,     3,     3,   410,
    1442      414,   424,   429,   475,   296,   430,   708,   709,   296,   431,
    1443      433,   296,     2,   585,   597,   731,     2,     2,   251,     2,
    1444      461,     0,   459,   458,   457,   143,     2,     2,   253,     2,
    1445        2,   252,     2,   283,     2,   284,     0,   282,     0,     0,
    1446        0,     0,     0,     0,     0,     0,     0,   569,   608,     0,
    1447      456,     2,   563,   572,   662,   565,   566,   535,   296,     2,
    1448      602,   611,   604,   605,     0,   278,   296,   296,   341,   297,
    1449        0,   297,     0,   296,   736,   740,   738,   536,   296,   547,
    1450      257,   265,   311,     0,     2,   537,   296,   501,   338,   339,
    1451      285,   353,   360,     0,   296,     0,   751,   401,     0,   478,
    1452      502,   254,   255,   522,   296,   438,     0,   296,   239,     0,
    1453        2,   241,     0,   297,     0,   259,     2,   260,   280,     0,
    1454        0,     2,   296,   547,   296,   488,   490,   489,     0,     0,
    1455      753,     0,   296,     0,   296,   492,   296,   562,   560,   561,
    1456      559,     0,   554,   557,     0,     0,   296,    56,   296,    70,
    1457       51,   296,    58,   296,   296,    54,    55,     2,   129,     0,
    1458        0,   450,     0,   449,   730,   123,   296,    18,     0,    31,
    1459       32,    37,     2,     0,    37,   113,   114,   115,   116,   117,
    1460      118,   119,   120,   121,   122,   112,   111,     0,    52,    53,
     1405     293,   293,   313,   311,   314,   312,   315,   316,   299,   301,
     1406     300,     0,   302,   327,   319,   324,   322,   323,   321,   320,
     1407     325,   326,   331,   328,   329,   330,   546,   546,   546,     0,
     1408       0,     0,   293,   219,   303,   317,   318,     7,   358,     0,
     1409       8,    14,    15,     0,     2,    61,    62,   564,     9,   293,
     1410     524,   522,   246,     3,   453,     3,   259,     0,     3,     3,
     1411       3,   247,     3,     0,     0,     0,   294,   295,   297,   293,
     1412     306,   309,   339,   285,   332,   337,   286,   347,   287,   354,
     1413     351,   361,     0,     0,   362,   288,   472,   476,     3,     3,
     1414       0,     2,   518,   523,   528,   298,     0,     0,   546,   576,
     1415     546,     2,   587,   588,   589,   293,     0,   730,   731,     0,
     1416      12,     0,    13,   293,   269,   270,     0,   294,   289,   290,
     1417     291,   292,   525,   304,   391,   547,   548,   369,   370,    12,
     1418     444,   445,    11,   440,   443,     0,   502,   497,   488,   444,
     1419     445,     0,     0,   527,   220,     0,   293,     0,     0,     0,
     1420       0,     0,     0,     0,     0,   293,   293,     2,     0,   732,
     1421     294,   581,   593,   736,   729,   727,   734,     0,     0,     0,
     1422     253,     2,     0,   531,   438,   439,   437,     0,     0,     0,
     1423       0,   546,     0,   633,   634,     0,     0,   544,   540,   546,
     1424     561,   546,   546,   542,     2,   541,   546,   600,   546,   546,
     1425     603,     0,     0,     0,   293,   293,   311,   359,     2,   293,
     1426     260,   296,   307,   340,   352,   477,     0,     2,     0,   453,
     1427     261,   294,   333,   348,   355,   473,     0,     2,     0,   310,
     1428     334,   341,   342,     0,   349,   353,   356,   360,   445,   293,
     1429     371,   364,   368,     0,   393,   474,   478,     0,     0,     0,
     1430       1,   293,     2,   529,   575,   577,   293,     2,   740,   294,
     1431     743,   544,   544,     0,   294,     0,     0,   272,   546,   542,
     1432       2,   293,     0,     0,   293,   549,     2,   500,     2,   553,
     1433       0,     0,     0,     0,     0,     0,    19,    58,     4,     5,
     1434       6,    17,     0,     0,   293,     2,    63,    64,    65,    66,
     1435      46,    20,    47,    16,    23,    45,    67,   293,     0,    70,
     1436      74,    77,    80,    85,    88,    90,    92,    94,    96,    98,
     1437     103,   494,   750,   451,   493,     0,   449,   450,     0,   565,
     1438     580,   583,   586,   592,   595,   598,   358,     0,     2,   738,
     1439       0,   293,   741,     2,    61,   293,     3,   425,     0,   433,
     1440     294,   293,   306,   332,   286,   347,   354,     3,     3,   407,
     1441     411,   421,   426,   472,   293,   427,   705,   706,   293,   428,
     1442     430,   293,     2,   582,   594,   728,     2,     2,   248,     2,
     1443     458,     0,   456,   455,   454,   140,     2,     2,   250,     2,
     1444       2,   249,     2,   280,     2,   281,     0,   279,     0,     0,
     1445       0,     0,     0,     0,     0,     0,     0,   566,   605,     0,
     1446     453,     2,   560,   569,   659,   562,   563,   532,   293,     2,
     1447     599,   608,   601,   602,     0,   275,   293,   293,   338,   294,
     1448       0,   294,     0,   293,   733,   737,   735,   533,   293,   544,
     1449     254,   262,   308,     0,     2,   534,   293,   498,   335,   336,
     1450     282,   350,   357,     0,   293,     0,   748,   398,     0,   475,
     1451     499,   251,   252,   519,   293,   435,     0,   293,   236,     0,
     1452       2,   238,     0,   294,     0,   256,     2,   257,   277,     0,
     1453       0,     2,   293,   544,   293,   485,   487,   486,     0,     0,
     1454     750,     0,   293,     0,   293,   489,   293,   559,   557,   558,
     1455     556,     0,   551,   554,     0,     0,   293,    53,   293,    67,
     1456      48,   293,    55,   293,   293,    51,    52,     2,   126,     0,
     1457       0,   447,     0,   446,   727,   120,   293,    18,     0,    30,
     1458      31,    36,     2,     0,    36,   110,   111,   112,   113,   114,
     1459     115,   116,   117,   118,   119,   109,   108,     0,    49,    50,
    14611460       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    14621461       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1463      108,     2,   648,   455,   645,   549,   549,   653,   482,   296,
    1464        2,   587,   588,     0,   599,   600,     0,     2,   742,   745,
    1465      123,   296,     0,     2,   710,   297,   714,   705,   706,   712,
    1466        0,     2,     2,   670,   549,   753,   619,   549,   549,   753,
    1467      549,   633,   549,   549,   684,   437,   667,   549,   549,   675,
    1468      682,   296,   432,   297,     0,     0,   296,   720,   297,   725,
    1469      753,   717,   296,   722,   753,   296,   296,   296,     0,   123,
    1470        0,    19,     2,     0,    20,     0,   462,   751,     0,     0,
    1471      468,   243,     0,   296,     0,     0,     0,   547,   571,   575,
    1472      577,   607,   610,   614,   617,   570,   609,     0,   286,   660,
    1473        0,   296,   279,     0,     0,     0,     0,   277,     2,     0,
    1474      261,   538,   296,     0,     0,   296,     2,   366,   386,   375,
    1475        0,     0,   380,   374,   752,     0,     0,   399,     0,   297,
    1476        3,   417,     3,   421,   420,   593,     0,   533,   296,    64,
    1477        3,   296,   436,   297,     3,   430,   431,     2,     0,     0,
    1478        0,   487,   308,   296,   483,   485,     3,     2,     2,     0,
    1479      504,     3,     0,   556,   131,     0,     0,   224,     0,     0,
    1480        0,     0,    38,     0,     0,   123,   296,    21,     0,    22,
    1481        0,   694,   699,   451,   691,   549,   549,     0,   109,     3,
    1482        2,    29,     0,    35,     0,    28,     2,    26,     0,   107,
    1483       74,    75,    76,    78,    79,    81,    82,    86,    87,    84,
    1484       85,    89,    90,    92,    94,    96,    98,   100,     0,     0,
    1485      754,   296,     0,     0,     0,   649,   650,   646,   647,   499,
    1486      498,   296,     0,   296,   716,   296,   721,   297,   296,   664,
    1487      296,   296,   707,   663,     2,   296,     0,     0,     0,     0,
    1488        0,     0,     0,     0,   685,     0,   671,   622,   638,   672,
    1489        2,   618,   625,   434,   620,   621,   435,     2,   632,   641,
    1490      634,   635,   668,   669,   683,   711,   715,   713,   753,   270,
    1491        2,   747,     2,   425,   719,   724,   426,     0,   404,     3,
    1492        3,     3,     3,   456,     3,     0,     2,   470,   467,   752,
    1493        0,   463,     2,   466,   469,     0,   296,   244,   266,     3,
    1494      274,   276,     0,   456,     2,   573,   574,     2,   612,   613,
    1495        0,   661,   539,     3,   347,   346,   349,   348,   296,   540,
    1496        0,   541,   374,     0,     0,   296,   296,     0,     0,   694,
    1497      384,   387,   391,   549,   391,   390,   383,   376,   549,   378,
    1498      381,   296,   401,   395,   105,   402,   751,     0,     0,   439,
    1499      242,     0,     0,     3,     2,   670,   432,     0,   529,     0,
    1500      753,   491,     0,   296,   296,   296,     0,   553,   555,   132,
    1501        0,     0,   217,     0,     0,     0,   225,   226,    57,     0,
    1502       59,    62,    63,     0,     2,   130,     0,     0,     0,   695,
    1503      696,   692,   693,   461,    71,    72,   110,   127,     3,   109,
    1504        0,     0,    25,    37,     3,     0,    34,   103,     0,     3,
    1505      652,   656,   659,   651,     3,   594,     3,   718,   723,     2,
    1506       64,   296,     3,     3,   297,     0,     3,   624,   628,   631,
    1507      640,   674,   678,   681,   296,     3,   623,   639,   673,   296,
    1508      296,   427,   296,   296,   748,     0,     0,     0,     0,   258,
    1509        0,   105,     0,     3,     3,     0,   464,     0,   460,     0,
    1510        0,   247,   296,     0,     0,   131,     0,     0,     0,     0,
    1511        0,   131,     0,     0,   109,   109,    19,     2,     0,     0,
    1512        3,   133,   134,     2,   145,   135,   136,   137,   138,   139,
    1513      140,   147,   149,     0,     0,     0,   287,   296,   296,   549,
    1514        0,   542,   296,   377,   379,     0,   393,   695,   388,   392,
    1515      389,   382,   386,   369,   400,     0,   581,     2,   666,   665,
    1516        0,   671,     2,   484,   486,   506,     3,   514,   515,     0,
    1517        2,   510,     3,     3,     0,     0,   558,   224,     0,     0,
    1518        0,   224,     0,     0,   123,   698,   702,   704,   697,   751,
    1519      109,     0,     3,   663,    47,    46,     3,    39,    41,    36,
    1520        0,     3,   102,   104,     0,     2,   654,   655,     0,     0,
    1521      296,     0,     0,     0,     3,   640,     0,     2,   626,   627,
    1522        2,   642,     2,   676,   677,     0,     0,    64,     0,     3,
    1523        3,     3,     3,   412,   411,   415,     2,     2,   750,   749,
    1524      124,     0,     0,     0,     0,     3,   465,     3,     0,   245,
    1525      148,     3,   297,   296,     0,     0,     0,     0,     2,     0,
    1526      193,     0,   191,     0,     0,     0,     0,     0,     0,     0,
    1527      549,   123,     0,   153,   150,   296,     0,     0,   269,   281,
    1528        3,     3,   548,   615,   370,   385,   398,   296,   268,   296,
    1529        0,   517,   494,   296,     0,     0,   493,   508,     0,     0,
    1530        0,   218,     0,   227,    60,     2,   700,   701,     0,   128,
    1531      125,     0,     0,     0,     0,     0,    24,     0,   657,   296,
    1532      582,   267,   726,   727,   728,     0,   679,   296,   296,   296,
    1533        3,     3,     0,   687,     0,     0,     0,     0,   296,   296,
    1534        3,   546,   124,   472,     0,     0,   248,   297,     0,     0,
    1535        0,     0,   296,   194,   192,   189,     0,   195,     0,     0,
    1536        0,     0,   199,   202,   200,   196,     0,   197,   131,    37,
    1537      146,   144,   246,     0,     0,   419,   423,   422,     0,   511,
    1538        2,   512,     2,   513,   507,   296,   230,     0,   228,     0,
    1539      230,   296,    33,   126,    40,    30,     2,    44,     2,    42,
    1540       27,     3,   729,     3,     3,     3,     0,     0,   686,   688,
    1541      629,   643,   271,     2,   409,     3,   408,     0,   474,   471,
    1542      131,     0,     0,   131,     3,     0,   131,   190,     0,     2,
    1543        2,   211,   201,     0,     0,     0,   142,     0,   576,   616,
    1544        2,     0,     0,     2,   231,     0,     0,   219,     0,     3,
    1545        0,     0,     0,     0,     0,     0,   689,   690,   296,     0,
    1546      473,   154,     0,     0,     2,   167,   131,   156,     0,   184,
    1547        0,   131,     0,     2,   158,     0,     2,     0,     2,     2,
    1548        2,   198,    34,   296,   516,   518,   509,     0,     0,     0,
    1549        0,     0,     3,     3,   658,   630,   644,   680,   413,   131,
    1550      160,   163,     0,   162,   166,     3,   169,   168,     0,   131,
    1551      186,   131,     3,     0,   296,     0,   296,     0,     2,     0,
    1552        2,   141,     2,   232,   233,     0,   229,   220,   703,     0,
    1553        0,   155,     0,     0,   165,   235,   170,     2,   237,   185,
    1554        0,   188,   174,   203,     3,   212,   216,   205,     3,     0,
    1555      296,     0,   296,     0,     0,     0,    45,    43,   161,   164,
    1556      131,     0,   171,   296,   131,   131,     0,   175,     0,     0,
    1557      694,   213,   214,   215,     0,   204,     3,   206,     3,   296,
    1558      221,   234,   151,   172,   157,   131,   238,   187,   182,   180,
    1559      176,   159,   131,     0,   695,     0,     0,     0,     0,   152,
    1560      173,   183,   177,   181,   180,   178,     3,     3,     0,     0,
    1561      495,   179,   207,   209,     3,     3,   208,   210
     1462     105,     2,   645,   452,   642,   546,   546,   650,   479,   293,
     1463       2,   584,   585,     0,   596,   597,     0,     2,   739,   742,
     1464     120,   293,     0,     2,   707,   294,   711,   702,   703,   709,
     1465       0,     2,     2,   667,   546,   750,   616,   546,   546,   750,
     1466     546,   630,   546,   546,   681,   434,   664,   546,   546,   672,
     1467     679,   293,   429,   294,     0,     0,   293,   717,   294,   722,
     1468     750,   714,   293,   719,   750,   293,   293,   293,     0,   120,
     1469       0,    19,     2,     0,    20,     0,   459,   748,     0,     0,
     1470     465,   240,     0,   293,     0,     0,     0,   544,   568,   572,
     1471     574,   604,   607,   611,   614,   567,   606,     0,   283,   657,
     1472       0,   293,   276,     0,     0,     0,     0,   274,     2,     0,
     1473     258,   535,   293,     0,     0,   293,     2,   363,   383,   372,
     1474       0,     0,   377,   371,   749,     0,     0,   396,     0,   294,
     1475       3,   414,     3,   418,   417,   590,     0,   530,   293,    61,
     1476       3,   293,   433,   294,     3,   427,   428,     2,     0,     0,
     1477       0,   484,   305,   293,   480,   482,     3,     2,     2,     0,
     1478     501,     3,     0,   553,   128,     0,     0,   221,     0,     0,
     1479       0,     0,    37,     0,     0,   120,   293,    21,     0,    22,
     1480       0,   691,   696,   448,   688,   546,   546,     0,   106,     3,
     1481       2,    28,     0,    34,     0,     2,    26,     0,   104,    71,
     1482      72,    73,    75,    76,    78,    79,    83,    84,    81,    82,
     1483      86,    87,    89,    91,    93,    95,    97,     0,     0,   751,
     1484     293,     0,     0,     0,   646,   647,   643,   644,   496,   495,
     1485     293,     0,   293,   713,   293,   718,   294,   293,   661,   293,
     1486     293,   704,   660,     2,   293,     0,     0,     0,     0,     0,
     1487       0,     0,     0,   682,     0,   668,   619,   635,   669,     2,
     1488     615,   622,   431,   617,   618,   432,     2,   629,   638,   631,
     1489     632,   665,   666,   680,   708,   712,   710,   750,   267,     2,
     1490     744,     2,   422,   716,   721,   423,     0,   401,     3,     3,
     1491       3,     3,   453,     3,     0,     2,   467,   464,   749,     0,
     1492     460,     2,   463,   466,     0,   293,   241,   263,     3,   271,
     1493     273,     0,   453,     2,   570,   571,     2,   609,   610,     0,
     1494     658,   536,     3,   344,   343,   346,   345,   293,   537,     0,
     1495     538,   371,     0,     0,   293,   293,     0,     0,   691,   381,
     1496     384,   388,   546,   388,   387,   380,   373,   546,   375,   378,
     1497     293,   398,   392,   102,   399,   748,     0,     0,   436,   239,
     1498       0,     0,     3,     2,   667,   429,     0,   526,     0,   750,
     1499     488,     0,   293,   293,   293,     0,   550,   552,   129,     0,
     1500       0,   214,     0,     0,     0,   222,   223,    54,     0,    56,
     1501      59,    60,     0,     2,   127,     0,     0,     0,   692,   693,
     1502     689,   690,   458,    68,    69,   107,   124,     3,   106,     0,
     1503       0,    25,    36,     3,     0,    33,   100,     0,     3,   649,
     1504     653,   656,   648,     3,   591,     3,   715,   720,     2,    61,
     1505     293,     3,     3,   294,     0,     3,   621,   625,   628,   637,
     1506     671,   675,   678,   293,     3,   620,   636,   670,   293,   293,
     1507     424,   293,   293,   745,     0,     0,     0,     0,   255,     0,
     1508     102,     0,     3,     3,     0,   461,     0,   457,     0,     0,
     1509     244,   293,     0,     0,   128,     0,     0,     0,     0,     0,
     1510     128,     0,     0,   106,   106,    19,     2,     0,     0,     3,
     1511     130,   131,     2,   142,   132,   133,   134,   135,   136,   137,
     1512     144,   146,     0,     0,     0,   284,   293,   293,   546,     0,
     1513     539,   293,   374,   376,     0,   390,   692,   385,   389,   386,
     1514     379,   383,   366,   397,     0,   578,     2,   663,   662,     0,
     1515     668,     2,   481,   483,   503,     3,   511,   512,     0,     2,
     1516     507,     3,     3,     0,     0,   555,   221,     0,     0,     0,
     1517     221,     0,     0,   120,   695,   699,   701,   694,   748,   106,
     1518       0,     3,   660,    40,     3,    38,    35,     0,     3,    99,
     1519     101,     0,     2,   651,   652,     0,     0,   293,     0,     0,
     1520       0,     3,   637,     0,     2,   623,   624,     2,   639,     2,
     1521     673,   674,     0,     0,    61,     0,     3,     3,     3,     3,
     1522     409,   408,   412,     2,     2,   747,   746,   121,     0,     0,
     1523       0,     0,     3,   462,     3,     0,   242,   145,     3,   294,
     1524     293,     0,     0,     0,     0,     2,     0,   190,     0,   188,
     1525       0,     0,     0,     0,     0,     0,     0,   546,   120,     0,
     1526     150,   147,   293,     0,     0,   266,   278,     3,     3,   545,
     1527     612,   367,   382,   395,   293,   265,   293,     0,   514,   491,
     1528     293,     0,     0,   490,   505,     0,     0,     0,   215,     0,
     1529     224,    57,     2,   697,   698,     0,   125,   122,     0,     0,
     1530       0,     0,     0,    24,     0,   654,   293,   579,   264,   723,
     1531     724,   725,     0,   676,   293,   293,   293,     3,     3,     0,
     1532     684,     0,     0,     0,     0,   293,   293,     3,   543,   121,
     1533     469,     0,     0,   245,   294,     0,     0,     0,     0,   293,
     1534     191,   189,   186,     0,   192,     0,     0,     0,     0,   196,
     1535     199,   197,   193,     0,   194,   128,    36,   143,   141,   243,
     1536       0,     0,   416,   420,   419,     0,   508,     2,   509,     2,
     1537     510,   504,   293,   227,     0,   225,     0,   227,   293,    32,
     1538     123,     2,    43,     2,    41,    39,    29,    27,     3,   726,
     1539       3,     3,     3,     0,     0,   683,   685,   626,   640,   268,
     1540       2,   406,     3,   405,     0,   471,   468,   128,     0,     0,
     1541     128,     3,     0,   128,   187,     0,     2,     2,   208,   198,
     1542       0,     0,     0,   139,     0,   573,   613,     2,     0,     0,
     1543       2,   228,     0,     0,   216,     0,     3,     0,     0,     0,
     1544       0,     0,     0,   686,   687,   293,     0,   470,   151,     0,
     1545       0,     2,   164,   128,   153,     0,   181,     0,   128,     0,
     1546       2,   155,     0,     2,     0,     2,     2,     2,   195,    33,
     1547     293,   513,   515,   506,     0,     0,     0,     0,     0,     3,
     1548       3,   655,   627,   641,   677,   410,   128,   157,   160,     0,
     1549     159,   163,     3,   166,   165,     0,   128,   183,   128,     3,
     1550       0,   293,     0,   293,     0,     2,     0,     2,   138,     2,
     1551     229,   230,     0,   226,   217,   700,     0,     0,   152,     0,
     1552       0,   162,   232,   167,     2,   234,   182,     0,   185,   171,
     1553     200,     3,   209,   213,   202,     3,     0,   293,     0,   293,
     1554       0,     0,     0,    44,    42,   158,   161,   128,     0,   168,
     1555     293,   128,   128,     0,   172,     0,     0,   691,   210,   211,
     1556     212,     0,   201,     3,   203,     3,   293,   218,   231,   148,
     1557     169,   154,   128,   235,   184,   179,   177,   173,   156,   128,
     1558       0,   692,     0,     0,     0,     0,   149,   170,   180,   174,
     1559     178,   177,   175,     3,     3,     0,     0,   492,   176,   204,
     1560     206,     3,     3,   205,   207
    15621561};
    15631562
     
    15651564static const yytype_int16 yydefgoto[] =
    15661565{
    1567       -1,   815,   468,   300,    47,   133,   134,   301,   302,   303,
    1568      304,   305,   762,   763,  1136,  1137,  1138,   306,   381,   308,
    1569      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
    1570      319,   320,  1032,   518,   977,   547,   322,   978,   949,  1059,
    1571     1522,  1061,  1062,  1063,  1064,  1523,  1065,  1066,  1441,  1442,
    1572     1405,  1406,  1407,  1501,  1502,  1506,  1507,  1542,  1543,  1067,
    1573     1365,  1068,  1069,  1302,  1303,  1304,  1484,  1070,   145,   955,
    1574      956,   957,  1385,  1465,  1476,  1477,   469,   470,   876,   877,
    1575     1040,    51,    52,    53,    54,    55,   347,   158,    58,    59,
    1576       60,    61,    62,   349,    64,    65,   264,    67,    68,   274,
    1577      351,   352,    71,    72,    73,   118,    75,   204,   354,   119,
    1578       78,   120,    80,    81,   455,    82,   454,   689,   690,   691,
    1579      910,  1088,   911,    83,    84,   458,   456,   697,   857,   858,
    1580      859,   860,   700,   701,   702,   359,   360,   361,   362,   466,
    1581      340,   135,   136,   522,   324,   170,   646,   647,   648,   649,
    1582      650,    85,   121,    87,   489,   490,   941,   491,   277,   495,
    1583      325,    88,   137,   138,    89,  1325,  1110,  1111,  1112,  1113,
    1584       90,    91,   718,    92,   273,    93,    94,   187,  1034,   680,
    1585      412,   125,    95,   501,   502,   503,   188,   268,   190,   191,
    1586      192,   269,    98,    99,   100,   101,   102,   103,   104,   195,
    1587      196,   197,   198,   199,   827,   606,   607,   608,   609,   200,
    1588      611,   612,   613,   573,   574,   575,   576,   752,   105,   615,
    1589      616,   617,   618,   619,   620,   970,   754,   755,   756,   596,
    1590      365,   366,   367,   368,   326,   164,   107,   108,   109,   370,
    1591      695,   570
     1566      -1,   814,   468,   300,    47,   133,   134,   301,   302,   303,
     1567     304,   305,   762,   763,  1134,  1135,   306,   381,   308,   309,
     1568     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     1569     320,  1031,   518,   976,   547,   322,   977,   948,  1058,  1519,
     1570    1060,  1061,  1062,  1063,  1520,  1064,  1065,  1438,  1439,  1402,
     1571    1403,  1404,  1498,  1499,  1503,  1504,  1539,  1540,  1066,  1362,
     1572    1067,  1068,  1299,  1300,  1301,  1481,  1069,   145,   954,   955,
     1573     956,  1382,  1462,  1473,  1474,   469,   470,   875,   876,  1039,
     1574      51,    52,    53,    54,    55,   347,   158,    58,    59,    60,
     1575      61,    62,   349,    64,    65,   264,    67,    68,   274,   351,
     1576     352,    71,    72,    73,   118,    75,   204,   354,   119,    78,
     1577     120,    80,    81,   455,    82,   454,   689,   690,   691,   909,
     1578    1087,   910,    83,    84,   458,   456,   697,   856,   857,   858,
     1579     859,   700,   701,   702,   359,   360,   361,   362,   466,   340,
     1580     135,   136,   522,   324,   170,   646,   647,   648,   649,   650,
     1581      85,   121,    87,   489,   490,   940,   491,   277,   495,   325,
     1582      88,   137,   138,    89,  1322,  1109,  1110,  1111,  1112,    90,
     1583      91,   718,    92,   273,    93,    94,   187,  1033,   680,   412,
     1584     125,    95,   501,   502,   503,   188,   268,   190,   191,   192,
     1585     269,    98,    99,   100,   101,   102,   103,   104,   195,   196,
     1586     197,   198,   199,   826,   606,   607,   608,   609,   200,   611,
     1587     612,   613,   573,   574,   575,   576,   752,   105,   615,   616,
     1588     617,   618,   619,   620,   969,   754,   755,   756,   596,   365,
     1589     366,   367,   368,   326,   164,   107,   108,   109,   370,   695,
     1590     570
    15921591};
    15931592
    15941593/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15951594   STATE-NUM.  */
    1596 #define YYPACT_NINF -1338
     1595#define YYPACT_NINF -1323
    15971596static const yytype_int16 yypact[] =
    15981597{
    1599     4794,  8872, -1338,   118, -1338, -1338, -1338, -1338, -1338, -1338,
    1600    -1338,   -32, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
    1601    -1338, -1338, -1338, -1338, -1338, -1338,    75,    75,    75,   889,
    1602      761,    17,  6057,   231, -1338, -1338, -1338, -1338, -1338,   166,
    1603    -1338, -1338, -1338,   566,   192, -1338, -1338, -1338, -1338,  4939,
    1604    -1338, -1338, -1338, -1338,   195,   234, -1338,  1148, -1338, -1338,
    1605    -1338, -1338,   170,  2042,   352,    44,  7574, -1338, -1338,  9333,
    1606     1157, -1338, -1338,  1542,   364,  3919,   608,   982,  1542,  1041,
    1607    -1338, -1338,   474,   402, -1338,  1542,  1242, -1338,   273, -1338,
    1608      455,   478, -1338, -1338, -1338, -1338,   354,   234,    75, -1338,
    1609       75, -1338, -1338, -1338, -1338,  9218,  1148, -1338, -1338,  1148,
    1610    -1338,   387, -1338,  9518, -1338, -1338,  2342,  9556, -1338,   992,
    1611      992,   992, -1338, -1338, -1338,    75, -1338, -1338, -1338,   374,
    1612      386,   471, -1338, -1338, -1338,   480, -1338, -1338, -1338, -1338,
    1613    -1338,   525,   539, -1338, -1338,    53,  8841,  1022,    54,   558,
    1614      563,   587,   592,   605,   615,  8759,  7097,   644,   585, -1338,
    1615     9371, -1338, -1338, -1338, -1338,   619, -1338,   349,  4637,  4637,
    1616    -1338,   657,   446, -1338, -1338, -1338, -1338,   651,   453,   454,
    1617      476,    75,   659, -1338, -1338,  2042,  2592,   742, -1338,    57,
    1618    -1338,    75,    75,   234, -1338, -1338,   101, -1338,    75,    75,
    1619    -1338,  3079,   687,   706,   992,  6771, -1338, -1338,   707,  4939,
    1620    -1338, -1338,  1542, -1338, -1338, -1338,   234, -1338,  1148,   195,
    1621    -1338,  7912, -1338,   992,   992,   992,   234, -1338,   889, -1338,
    1622     4555, -1338, -1338,   691,   992, -1338,   992, -1338,   166,  8841,
    1623    -1338,   713, -1338,   761,   725,   992, -1338,   889,   756,   768,
    1624    -1338,  6057,   675, -1338, -1338, -1338,  9300, -1338, -1338,  2361,
    1625    -1338,   742,   105, 10239,  9556,  2342,  3079, -1338,   194, -1338,
    1626    -1338,  9518,  1148,   743,  7605, -1338, -1338,   126, -1338, 10586,
    1627      755,   847, 10372,   832, 10391, 10448, -1338,   839, -1338, -1338,
    1628    -1338, -1338, 10467, 10467,  8615,   824, -1338, -1338, -1338, -1338,
    1629    -1338, -1338, -1338,   901, -1338,   679,  3121,  8954, 10391, -1338,
    1630      507,   418,   680,   295,   694,   894,   852,   888,   930,    66,
    1631    -1338, -1338,   938,   665, -1338,   380, -1338, -1338,  1022, -1338,
    1632    -1338,    12,   949, -1338,   338,   949,   961,   166, -1338, -1338,
    1633      968,  9218, -1338,   983,   984,  9067, -1338, -1338,   776,  1555,
    1634     8330,  6771,  1542, -1338,  1542,   992,   992, -1338, -1338, -1338,
    1635    -1338, -1338, -1338,   992,  9218,  1148, -1338, -1338,  9594,  1098,
    1636    -1338,  8061, -1338, -1338, -1338, -1338, -1338, -1338, -1338,   995,
    1637     5881, 10391, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
    1638    -1338, -1338, -1338, -1338, -1338, -1338,  2342, -1338,   489,   993,
    1639      994,  1000,   732,  1004,  1007,  1008,  2592, -1338, -1338,   969,
    1640      195,  1030, -1338, -1338,  1024, -1338, -1338, -1338,  9300, -1338,
    1641    -1338, -1338, -1338, -1338,  3079, -1338,  8841,  8841, -1338,   992,
    1642     2342,  6890,  1148,  8403, -1338, -1338, -1338, -1338,  9300,   105,
    1643    -1338, -1338,  1542,   234, -1338, -1338,  9300, -1338,  6655, -1338,
    1644    -1338,   992,   992,   465,  8248,  1029,  1028,  1015,  1033,   992,
    1645    -1338, -1338, -1338, -1338,  9742, -1338,   591,  6518, -1338,   234,
    1646     1044, -1338,  2342, 10668, 10296, -1338, -1338, -1338, -1338,   929,
    1647     3079, -1338,  8476,   742,  5771, -1338, -1338, -1338,  1039,   645,
    1648      938,   761,  7605,   809,  9518, -1338,  7605, -1338, -1338, -1338,
    1649    -1338,   688, -1338,  1046,   847,   251,  8615, -1338,  9627, -1338,
    1650    -1338,  8615, -1338,  8728,  8615, -1338, -1338,  1048, -1338,   751,
    1651     1043,   711,  1057, -1338, -1338,  9447,  6740, -1338,   107, -1338,
    1652    -1338, 10239, -1338,   318, 10239, -1338, -1338, -1338, -1338, -1338,
    1653    -1338, -1338, -1338, -1338, -1338, -1338, -1338, 10239, -1338, -1338,
    1654    10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,
    1655    10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,  4422, 10239,
    1656    -1338,   665,  1831, -1338, -1338,    75,    75, -1338, -1338,  8841,
    1657    -1338, -1338,  1024,   675, -1338,  1024, 10315, -1338, -1338, -1338,
    1658     5500,  6740,  1056,  1064, -1338,  9556, -1338, -1338,   619, -1338,
    1659     1065,  1323,  1067,  2196,   209,   938, -1338,    75,    75,   938,
    1660      243, -1338,    75,    75,  1024, -1338, -1338,    75,    75, -1338,
    1661      949,  9665,  1148, 10813,   217,   306,  9665, -1338,  2361, -1338,
    1662      938, -1338,  9218, -1338,   212,  8027,  8027,  8027,  1148, -1338,
    1663     6120,  1053,   995,   535,  1061,  1066, -1338,  1071,  4637,   421,
    1664    -1338,  1166,  1148,  8027,   675,  2342,   675,   742,   394,   949,
    1665    -1338, -1338,   788,   949, -1338, -1338, -1338,   847, -1338,   949,
    1666      234,  9742, -1338,   764,  1087,   806,  1088, -1338,  1089,   234,
    1667    -1338, -1338,  9300,   234,  1090,  9627,  1096, -1338,  1729, -1338,
    1668      527,   550,   761, -1338,   761,  1102, 10391, -1338,   761, 10813,
    1669    -1338, -1338,  1092, -1338, -1338, -1338,   675, -1338, 10741,   984,
    1670    -1338,  8027,   857,  8330, -1338, -1338,   619,  1103,  1112,  1039,
    1671     3523, -1338, -1338,  7605, -1338, -1338,  1097, -1338, -1338,  1121,
    1672    -1338,  1097,  1124, 10586, 10239,  1105,  1104,    94,  1128,  1123,
    1673     1132,  1133, -1338,  1136,  1138,  9485,  6859, -1338, 10239, -1338,
    1674      711,  1914, -1338, -1338, -1338,    75,    75,  6186, 10239,  1134,
    1675    -1338, -1338,   822, -1338, 10239, -1338, -1338, -1338,   715, -1338,
    1676    -1338, -1338, -1338,   507,   507,   418,   418,   680,   680,   680,
    1677      680,   295,   295,   694,   894,   852,   888,   930, 10391,   250,
    1678    -1338,  9742,  1151,  1153,  1158,  1831, -1338, -1338, -1338, -1338,
    1679    -1338,  9742,   827,  8027, -1338,  9218, -1338,  7216,  9180, -1338,
    1680     8061,  7097, -1338, -1338,  1323,  9742,   936,  1159,  1162,  1164,
    1681     1167,  1170,  1175,  1178, -1338,  3437,  2196, -1338, -1338, -1338,
    1682    -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
    1683    -1338, -1338, -1338, -1338,  1024, -1338, -1338, -1338,   938, -1338,
    1684    -1338, -1338, -1338, -1338, -1338, -1338, -1338,  1179, -1338,  1180,
    1685     1181, -1338, -1338,   195,  1134,  6120, -1338, -1338, -1338,  5881,
    1686     1143, -1338, -1338, -1338, -1338,   761,  6348,  1247, -1338, -1338,
    1687    -1338, -1338,  1165,   195, -1338, -1338,  1024, -1338, -1338,  1024,
    1688      230,  1024, -1338, -1338, -1338, -1338, -1338, -1338,  9409, -1338,
    1689      234, -1338, -1338,   554,   555,  9594,  7335,  2114, 10391,  2586,
    1690    -1338, -1338,  1163,    40,  1163, -1338,   761, -1338,    75, -1338,
    1691    -1338,  8985,  1015, -1338, -1338, -1338,  1028,  1185,  1186, -1338,
    1692    -1338,  1189,  1191, -1338,   857,  1994, -1338,   444, -1338,  3523,
    1693      938, -1338,  1195,  7605,  9703,  8841,  1196, -1338, -1338,  1192,
    1694     1200,  1182, -1338, 10391,  1205,   298,  1203, -1338,  1206,   675,
    1695     1206, -1338, -1338,  1206,  1209, -1338,  1214,  1216,  1217,  1914,
    1696    -1338, -1338, -1338,  5881, -1338, -1338, -1338, -1338,  1215, 10239,
    1697     1220,   831, -1338, 10239, -1338,   831, -1338, -1338, 10239, -1338,
    1698      972,   949, -1338, -1338, -1338, -1338, -1338, -1338, -1338,   995,
    1699      984,  9067, -1338, -1338,  7454,  1229, -1338,   975,   949, -1338,
    1700      979,   991,   949, -1338,   992,  3705, -1338, -1338, -1338,  9742,
    1701     9742, -1338,  8403,  8403, -1338,  1226,  1232,  1235,  1240, -1338,
    1702     1244,   564,    43,  1134, -1338,   831, -1338,  4637, -1338, 10239,
    1703      582, -1338,  6621,  1243,  1245, 10182,  1248,  1251,    46,    70,
    1704      103, 10239,  1252,   234, 10239, 10239,  1238,  1257,   333,  1239,
    1705    -1338, -1338, -1338,  1258, -1338, -1338, -1338, -1338, -1338, -1338,
    1706    -1338, -1338, -1338,   761,  1268, 10239, -1338,  9742,  9742,    75,
    1707     1269, -1338,  9098, -1338, -1338,   767, -1338,  2586, -1338, -1338,
    1708    -1338, -1338,  1729, -1338, -1338,  1270, -1338, -1338, -1338, -1338,
    1709     1273,  1994, -1338, -1338,  1256, -1338,  1097, -1338, -1338,  2342,
    1710     1271, -1338, -1338, -1338,   836,  1276, -1338,    94,  1279, 10391,
    1711     1265,    94,    94,  1293,  9447,  1023,   949, -1338, -1338,  1071,
    1712    10239,  1292,  1215,   513, -1338, -1338,  1296, -1338,    -5, -1338,
    1713     1297,  1296, -1338, -1338,  1304, -1338, -1338,  1024,  1306,  1309,
    1714     6978,  1310,  1312,  1313, -1338, -1338,  1316, -1338, -1338,  1024,
    1715    -1338, -1338, -1338, -1338,  1024, 10239, 10239,   984,  1315, -1338,
    1716    -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
    1717    -1338, 10391, 10391,  1317,  1318,  1296, -1338, -1338,   761, -1338,
    1718    -1338, -1338,  7839,  9703, 10239, 10239,  1381, 10239, -1338,  1299,
    1719    -1338,  1303, -1338,  1305, 10239,  1311, 10239,  1014,  1314,    39,
    1720       75,  5221,  1493, -1338, -1338,  6348,  1321,   584, -1338, -1338,
    1721    -1338, -1338, -1338, -1338, -1338, -1338, -1338, 10002, -1338,  8476,
    1722     1328, -1338, -1338,  9703,   589,   606, -1338,  1327,  1325,   847,
    1723     1334, -1338,   331, -1338, -1338, -1338, -1338,  1024,  1332, -1338,
    1724    -1338,  1336,   831,  1339,   320,   457, -1338,  1341, -1338,  9742,
    1725    -1338, -1338, -1338, -1338, -1338,  1345, -1338,  9742,  9742,  9742,
    1726    -1338, -1338,  1351, -1338,  1355,  1358,  1360,   623,  8100,  8215,
    1727    -1338, -1338,   463, -1338,  1361,  1370, -1338,  8549,   841,   866,
    1728     1374,   868,  6487, -1338, -1338, -1338,   616, -1338,   881,  1375,
    1729     1379,   234,  1429,   861, -1338, -1338, 10239, -1338, 10182, 10239,
    1730    -1338, -1338, -1338,  1383,  1384, -1338, -1338, -1338,  1382, -1338,
    1731    -1338, -1338, -1338, -1338, -1338,  9703,   847,  1386, -1338,  1366,
    1732      847,  9742, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
    1733    -1338, -1338, -1338, -1338, -1338, -1338,  1389,  1390, -1338, -1338,
    1734    -1338, -1338, -1338, -1338, -1338,  1395, -1338,  1394, -1338, -1338,
    1735    10182,   334, 10239, 10182, -1338,  1398, 10239, -1338,   339,  1415,
    1736     1417, -1338, -1338,  1405,  1406,  1393, -1338,   840, -1338, -1338,
    1737    -1338,  1148,  2342,  1403, -1338,   329, 10391, -1338,   897, -1338,
    1738      831,   831,  1411,  1412,  1416,  1421, -1338, -1338,  8403,  1423,
    1739    -1338,  1485, 10391,  1407, -1338, -1338, 10094, -1338,   898, -1338,
    1740     1410, 10182,  1422, -1338, -1338,  1434, -1338,  1443, -1338,  1459,
    1741     1461, -1338,  1428,  9703, -1338, -1338, -1338,   847,   675,  1452,
    1742     1431,  1455,  1296,  1296, -1338, -1338, -1338, -1338, -1338, 10182,
    1743       81, -1338,   447, -1338, -1338,  7690, -1338, -1338,  1435, 10239,
    1744    -1338, 10239,  7690,   234,  9627,   234,  9627,  1465, -1338,  1466,
    1745    -1338, -1338,  1456, -1338, -1338,   909, -1338, -1338, -1338,  1470,
    1746     1471, -1338, 10391, 10391, -1338, -1338,   880,   254, -1338, -1338,
    1747     1453, -1338,   880, -1338, -1338,  2645,   675, -1338, -1338,   234,
    1748     9627,   234,  9627,  1480,  1458,   675, -1338, -1338, -1338, -1338,
    1749    10094,  1476,   880,  7766, 10239, 10006,  1478,   880,  1486,  2645,
    1750     2922, -1338, -1338, -1338,  1487, -1338, -1338, -1338, -1338,  8841,
    1751    -1338, -1338, -1338,  9873, -1338, 10094, -1338, -1338,  1467,  9785,
    1752    -1338, -1338, 10006,   234,  2922,   234,  1495,  1498,   927, -1338,
    1753     9873, -1338, -1338, -1338,  9785, -1338, -1338, -1338,   234,   234,
    1754    -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338
     1598    7329,  8828, -1323,    37, -1323, -1323, -1323, -1323, -1323, -1323,
     1599   -1323,   109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1600   -1323, -1323, -1323, -1323, -1323, -1323,    85,    85,    85,   873,
     1601     733,   178,  7561,   370, -1323, -1323, -1323, -1323, -1323,   191,
     1602   -1323, -1323, -1323,   614,   225, -1323, -1323, -1323, -1323,  4615,
     1603   -1323, -1323, -1323, -1323,   229,   285, -1323,   934, -1323, -1323,
     1604   -1323, -1323,   435,  1196,   579,   110,  7677, -1323, -1323,  4858,
     1605    1038, -1323, -1323,   580,   596,  6761,  1021,   875,   580,  1103,
     1606   -1323, -1323,  1317,   308, -1323,   580,  1224, -1323,   495, -1323,
     1607     616,   623, -1323, -1323, -1323, -1323,   547,   285,    85, -1323,
     1608      85, -1323, -1323, -1323, -1323,  9174,   934, -1323, -1323,   934,
     1609   -1323,   551, -1323,  9403, -1323, -1323,  1899,  9436, -1323,   844,
     1610     844,   844, -1323, -1323, -1323,    85, -1323, -1323, -1323,   584,
     1611     608,   632, -1323, -1323, -1323,   646, -1323, -1323, -1323, -1323,
     1612   -1323,   664,   687, -1323, -1323,   -28,  8797,  2908,   117,   701,
     1613     717,   726,   771,   786,   799,  8715,  6849,   731,   757, -1323,
     1614    5600, -1323, -1323, -1323, -1323,   804, -1323,   223,  5225,  5225,
     1615   -1323,   802,   365, -1323, -1323, -1323, -1323,   816,   443,   480,
     1616     534,    85,   827, -1323, -1323,  1196,  4341,   868, -1323,    50,
     1617   -1323,    85,    85,   285, -1323, -1323,    61, -1323,    85,    85,
     1618   -1323,  4647,   857,   864,   844,  6523, -1323, -1323,   869,  4615,
     1619   -1323, -1323,   580, -1323, -1323, -1323,   285, -1323,   934,   229,
     1620   -1323,  7868, -1323,   844,   844,   844,   285, -1323,   873, -1323,
     1621    5676, -1323, -1323,   852,   844, -1323,   844, -1323,   191,  8797,
     1622   -1323,   884, -1323,   733,   890,   844, -1323,   873,   888,   892,
     1623   -1323,  7561,   631, -1323, -1323, -1323,  9256, -1323, -1323,  9621,
     1624   -1323,   868,   151, 10214,  9436,  1899,  4647, -1323,    88, -1323,
     1625   -1323,  9403,   934,   891,  7708, -1323, -1323,   347, -1323, 10561,
     1626     922,   956, 10347,   945, 10366, 10423, -1323,   954, -1323, -1323,
     1627   -1323, -1323, 10442, 10442,  8571,   952, -1323, -1323, -1323, -1323,
     1628   -1323, -1323, -1323,   988, -1323,   966,  1946,  8910, 10366, -1323,
     1629     756,   338,   485,   411,   635,   955,   947,   957,   984,   237,
     1630   -1323, -1323,   962,   647, -1323,   302, -1323, -1323,  2908, -1323,
     1631   -1323,   235,   985, -1323,   312,   985,   989,   191, -1323, -1323,
     1632     990,  9174, -1323,   999,  1006,  9023, -1323, -1323,  1335,  2030,
     1633    8286,  6523,   580, -1323,   580,   844,   844, -1323, -1323, -1323,
     1634   -1323, -1323, -1323,   844,  9174,   934, -1323, -1323,  9474,  1575,
     1635   -1323,  8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,
     1636    5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1637   -1323, -1323, -1323, -1323, -1323, -1323,  1899, -1323,   973,   991,
     1638     992,  1012,   978,  1017,  1018,  1020,  4341, -1323, -1323,  1029,
     1639     229,  1031, -1323, -1323,  1033, -1323, -1323, -1323,  9256, -1323,
     1640   -1323, -1323, -1323, -1323,  4647, -1323,  8797,  8797, -1323,   844,
     1641    1899,  6642,   934,  8359, -1323, -1323, -1323, -1323,  9256,   151,
     1642   -1323, -1323,   580,   285, -1323, -1323,  9256, -1323,  5770, -1323,
     1643   -1323,   844,   844,   337,  8204,  1032,  1036,  1023,  1042,   844,
     1644   -1323, -1323, -1323, -1323,  9660, -1323,   367,  6404, -1323,   285,
     1645    1044, -1323,  1899, 10643, 10271, -1323, -1323, -1323, -1323,  1015,
     1646    4647, -1323,  8432,   868,  7445, -1323, -1323, -1323,   843,   436,
     1647     962,   733,  7708,  1341,  9403, -1323,  7708, -1323, -1323, -1323,
     1648   -1323,   508, -1323,  1051,   956,   248,  8571, -1323,  9512, -1323,
     1649   -1323,  8571, -1323,  8684,  8571, -1323, -1323,  1049, -1323,   606,
     1650    1057,   682,  1059, -1323, -1323,  3527,  6492, -1323,   362, -1323,
     1651   -1323, 10214, -1323,   368, 10214, -1323, -1323, -1323, -1323, -1323,
     1652   -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323,
     1653   10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,
     1654   10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,  3593, 10214,
     1655   -1323,   647,  1677, -1323, -1323,    85,    85, -1323, -1323,  8797,
     1656   -1323, -1323,  1033,   631, -1323,  1033, 10290, -1323, -1323, -1323,
     1657    5046,  6492,  1060,  1063, -1323,  9436, -1323, -1323,   804, -1323,
     1658    1067,   750,  1068,  2627,   125,   962, -1323,    85,    85,   962,
     1659     132, -1323,    85,    85,  1033, -1323, -1323,    85,    85, -1323,
     1660     985,  9545,   934, 10788,   532,   656,  9545, -1323,  9621, -1323,
     1661     962, -1323,  9174, -1323,   238,  7983,  7983,  7983,   934, -1323,
     1662    5791,  1047,  1008,   493,  1058,  1061, -1323,  1076,  5225,   528,
     1663   -1323,  1165,   934,  7983,   631,  1899,   631,   868,   430,   985,
     1664   -1323, -1323,   536,   985, -1323, -1323, -1323,   956, -1323,   985,
     1665     285,  9660, -1323,   619,  1086,   633,  1088, -1323,  1087,   285,
     1666   -1323, -1323,  9256,   285,  1089,  9512,  1092, -1323,  1065, -1323,
     1667     538,   552,   733, -1323,   733,  1085, 10366, -1323,   733, 10788,
     1668   -1323, -1323,  1096, -1323, -1323, -1323,   631, -1323, 10716,  1006,
     1669   -1323,  7983,   703,  8286, -1323, -1323,   804,  1095,  1098,   843,
     1670    5016, -1323, -1323,  7708, -1323, -1323,  1091, -1323, -1323,  1102,
     1671   -1323,  1091,  1104, 10561, 10214,  1090,  1093,    94,  1109,  1107,
     1672    1111,  1114, -1323,  1118,  1129,  9365,  6611, -1323, 10214, -1323,
     1673     682,  1717, -1323, -1323, -1323,    85,    85, 10157, 10214,  1125,
     1674   -1323, -1323,   653, -1323, 10214, -1323, -1323,   736, -1323, -1323,
     1675   -1323, -1323,   756,   756,   338,   338,   485,   485,   485,   485,
     1676     411,   411,   635,   955,   947,   957,   984, 10366,   260, -1323,
     1677    9660,  1132,  1136,  1137,  1677, -1323, -1323, -1323, -1323, -1323,
     1678    9660,   708,  7983, -1323,  9174, -1323,  6968,  9136, -1323,  8017,
     1679    6849, -1323, -1323,   750,  9660,  1022,  1140,  1141,  1142,  1143,
     1680    1146,  1149,  1154, -1323,  3715,  2627, -1323, -1323, -1323, -1323,
     1681   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1682   -1323, -1323, -1323,  1033, -1323, -1323, -1323,   962, -1323, -1323,
     1683   -1323, -1323, -1323, -1323, -1323, -1323,  1155, -1323,  1157,  1159,
     1684   -1323, -1323,   229,  1125,  5791, -1323, -1323, -1323,  5958,  1158,
     1685   -1323, -1323, -1323, -1323,   733,  6174,  1248, -1323, -1323, -1323,
     1686   -1323,  1151,   229, -1323, -1323,  1033, -1323, -1323,  1033,    84,
     1687    1033, -1323, -1323, -1323, -1323, -1323, -1323,  9327, -1323,   285,
     1688   -1323, -1323,   559,   562,  9474,  7087,  2137, 10366,  3114, -1323,
     1689   -1323,  1156,    51,  1156, -1323,   733, -1323,    85, -1323, -1323,
     1690    8941,  1023, -1323, -1323, -1323,  1036,  1175,  1171, -1323, -1323,
     1691    1178,  1181, -1323,   703,  1901, -1323,   672, -1323,  5016,   962,
     1692   -1323,  1184,  7708,  9583,  8797,  1185, -1323, -1323,  1180,  1187,
     1693    1170, -1323, 10366,  1197,   326,  1194, -1323,  1202,   631,  1202,
     1694   -1323, -1323,  1202,  1199, -1323,  1208,  1210,  1211,  1717, -1323,
     1695   -1323, -1323,  5958, -1323, -1323, -1323, -1323,  1209, 10214,  1212,
     1696     631, -1323, 10214, -1323,   631, -1323, -1323, 10214, -1323,   558,
     1697     985, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,  1006,
     1698    9023, -1323, -1323,  7206,  1218, -1323,   674,   985, -1323,   813,
     1699     861,   985, -1323,   844,  4029, -1323, -1323, -1323,  9660,  9660,
     1700   -1323,  8359,  8359, -1323,  1215,  1216,  1225,  1230, -1323,  1232,
     1701     685,    82,  1125, -1323,   631, -1323,  5225, -1323, 10214,   564,
     1702   -1323,  6373,  1236,  1240, 10100,  1242,  1243,    70,    79,    96,
     1703   10214,  1244,   285, 10214, 10214,  1227,  1249,   522,  1222, -1323,
     1704   -1323, -1323,  1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1705   -1323, -1323,   733,  1254, 10214, -1323,  9660,  9660,    85,  1257,
     1706   -1323,  9054, -1323, -1323,   752, -1323,  3114, -1323, -1323, -1323,
     1707   -1323,  1065, -1323, -1323,  1255, -1323, -1323, -1323, -1323,  1258,
     1708    1901, -1323, -1323,  1245, -1323,  1091, -1323, -1323,  1899,  1260,
     1709   -1323, -1323, -1323,   713,  1264, -1323,    94,  1269, 10366,  1252,
     1710      94,    94,  1262,  3527,   879,   985, -1323, -1323,  1076, 10214,
     1711    1273,  1209,   358,   204,  1270, -1323, -1323,  1275,  1270, -1323,
     1712   -1323,  1278, -1323, -1323,  1033,  1280,  1284,  6730,  1285,  1290,
     1713    1291, -1323, -1323,  1286, -1323, -1323,  1033, -1323, -1323, -1323,
     1714   -1323,  1033, 10214, 10214,  1006,  1294, -1323, -1323, -1323, -1323,
     1715   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366,
     1716    1300,  1302,  1270, -1323, -1323,   733, -1323, -1323, -1323,  5213,
     1717    9583, 10214, 10214,  1374, 10214, -1323,  1295, -1323,  1296, -1323,
     1718    1297, 10214,  1301, 10214,  1105,  1304,    12,    85,  9289,  1625,
     1719   -1323, -1323,  6174,  1322,   573, -1323, -1323, -1323, -1323, -1323,
     1720   -1323, -1323, -1323, -1323,  9920, -1323,  8432,  1330, -1323, -1323,
     1721    9583,   576,   602, -1323,  1331,  1315,   956,  1337, -1323,   329,
     1722   -1323, -1323, -1323, -1323,  1033,  1339, -1323, -1323,  1320,   486,
     1723     509,   631,  1340, -1323,  1344, -1323,  9660, -1323, -1323, -1323,
     1724   -1323, -1323,  1347, -1323,  9660,  9660,  9660, -1323, -1323,  1348,
     1725   -1323,  1351,  1354,  1355,   716,  8056,  8171, -1323, -1323,   529,
     1726   -1323,  1357,  1362, -1323,  8505,   721,   730,  1358,   761,  3837,
     1727   -1323, -1323, -1323,   605, -1323,   766,  1366,  1367,   285,  1419,
     1728     834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323,
     1729    1370,  1375, -1323, -1323, -1323,  1372, -1323, -1323, -1323, -1323,
     1730   -1323, -1323,  9583,   956,  1379, -1323,  1352,   956,  9660, -1323,
     1731   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1732   -1323, -1323, -1323,  1378,  1382, -1323, -1323, -1323, -1323, -1323,
     1733   -1323, -1323,  1387, -1323,  1386, -1323, -1323, 10100,   289, 10214,
     1734   10100, -1323,  1389, 10214, -1323,   318,  1405,  1406, -1323, -1323,
     1735    1399,  1400,  1380, -1323,   821, -1323, -1323, -1323,   934,  1899,
     1736    1396, -1323,   402, 10366, -1323,   785, -1323,   631,   631,  1407,
     1737    1408,  1413,  1415, -1323, -1323,  8359,  1414, -1323,  1490, 10366,
     1738    1385, -1323, -1323, 10012, -1323,   800, -1323,  1402, 10100,  1403,
     1739   -1323, -1323,  1426, -1323,  1427, -1323,  1445,  1446, -1323,  1411,
     1740    9583, -1323, -1323, -1323,   956,   631,  1434,  1417,  1435,  1270,
     1741    1270, -1323, -1323, -1323, -1323, -1323, 10100,   107, -1323,   433,
     1742   -1323, -1323,  7793, -1323, -1323,  1418, 10214, -1323, 10214,  7793,
     1743     285,  9512,   285,  9512,  1436, -1323,  1442, -1323, -1323,  1440,
     1744   -1323, -1323,   825, -1323, -1323, -1323,  1444,  1449, -1323, 10366,
     1745   10366, -1323, -1323,   909,   211, -1323, -1323,  1425, -1323,   909,
     1746   -1323, -1323,  2166,   631, -1323, -1323,   285,  9512,   285,  9512,
     1747    1453,  1431,   631, -1323, -1323, -1323, -1323, 10012,  1443,   909,
     1748    6091, 10214,  9924,  1452,   909,  1454,  2166,  3344, -1323, -1323,
     1749   -1323,  1458, -1323, -1323, -1323, -1323,  8797, -1323, -1323, -1323,
     1750    9791, -1323, 10012, -1323, -1323,  1438,  9703, -1323, -1323,  9924,
     1751     285,  3344,   285,  1464,  1466,   853, -1323,  9791, -1323, -1323,
     1752   -1323,  9703, -1323, -1323, -1323,   285,   285, -1323, -1323, -1323,
     1753   -1323, -1323, -1323, -1323, -1323
    17551754};
    17561755
     
    17581757static const yytype_int16 yypgoto[] =
    17591758{
    1760    -1338,  4260,  2887, -1338,  1463, -1338,  1198,   661,  -268,   942,
    1761    -1338,   552,  -528,  -471,  -934,  -784, -1338,  4910,     0, -1338,
    1762     -100,   434,   472,   506,   438,  1049,  1050,  1051,  1062,  1055,
    1763    -1338,  1094,  -577,  5180,  -896, -1338,  -712,   636,   -68,  -593,
    1764     -654, -1338,  1469, -1338,   408, -1065, -1338, -1338,   159, -1338,
    1765    -1118,  -880,   265, -1338, -1338, -1338, -1338,    92, -1253, -1338,
    1766    -1338, -1338, -1338, -1338, -1338,   341, -1303,    36, -1338,  -904,
    1767    -1338,   518,   311, -1338,   196, -1338,  -309, -1338, -1338, -1338,
    1768      571,  -749, -1338, -1338,    16,  -930,   172,  1119, -1338, -1338,
    1769    -1338,  -149, -1338,    71,   966,  -196,  1532,  4034, -1338, -1338,
    1770       83,   174,   287,  2700, -1338,  1836, -1338, -1338,    55,  2097,
    1771    -1338,  2401,  2181, -1338, -1338, -1338,  -656, -1338,   962,   964,
    1772      560,   736,  -249, -1338, -1338, -1338,   955,   734,  -456, -1338,
    1773     -116,   -94,   869, -1338, -1338,  -963,  -979,    -2,   913,  1074,
    1774       29, -1338,   719,   357,  -283,  -191,  -146,   681,   789, -1338,
    1775     1010, -1338,  2818,  1589,  -439,   940, -1338, -1338,   720, -1338,
    1776     -237, -1338,   109, -1338, -1338, -1338, -1275,   435, -1338, -1338,
    1777    -1338,  1183, -1338,    32, -1338, -1338,  -845,  -111, -1337,  -112,
    1778     3150, -1338,  3946, -1338,   941, -1338,  -138,  1137,  -181,  -176,
    1779     -174,     7,   -40,   -33,   -28,  1352,    38,    50,    77,  -134,
    1780     -173,  -171,  -166,  -165,  -261,  -504,  -490,  -476,  -565,  -319,
    1781     -523, -1338, -1338,  -525,  1107,  1111,  1115,  -135,  4740,  -582,
    1782     -583,  -534,  -519,  -480, -1338,  -505,  -725,  -715,  -709,  -592,
    1783     -312,  -258, -1338, -1338,   326,    26,   -81, -1338,  3689,   -15,
    1784     -601,  -356
     1759   -1323,  4572,  3263, -1323,   197, -1323,   601,   950,  -251,   910,
     1760   -1323,   521,  -520,  -467,  -853,   -64,  3183,     0, -1323,  -150,
     1761     423,   446,   477,   450,  1016,  1025,  1019,  1026,  1028, -1323,
     1762    -622,  -408,  5012,  -745, -1323,  -735,   604,   472,  -656,   413,
     1763   -1323,  1279, -1323,   374, -1058, -1323, -1323,   126, -1323,  -823,
     1764   -1106,   222, -1323, -1323, -1323, -1323,    58, -1209, -1323, -1323,
     1765   -1323, -1323, -1323, -1323,   301, -1149,    35, -1323,  -933, -1323,
     1766     482,   274, -1323,   159, -1323,  -303, -1323, -1323, -1323,   535,
     1767    -827, -1323, -1323,    15, -1007,    71,    28, -1323, -1323, -1323,
     1768     -21, -1323,   357,  1253,  -198,  1636,  4113, -1323, -1323,    80,
     1769      54,   422,  1473, -1323,  1886, -1323, -1323,   192,  2183, -1323,
     1770    2495,   898, -1323, -1323, -1323,  -638, -1323,   924,   925,   524,
     1771     699,    83, -1323, -1323, -1323,   915,   695,  -339, -1323,  -106,
     1772      34,  1281, -1323, -1323,  -847,  -986,  1046,  1127,  1039,     5,
     1773   -1323,  1536,   481,  -165,  -210,  -124,   651,   758, -1323,   979,
     1774   -1323,  2789,  1548,  -413,   904, -1323, -1323,   689, -1323,  -235,
     1775   -1323,   158, -1323, -1323, -1323, -1257,   401, -1323, -1323, -1323,
     1776    1148, -1323,    21, -1323, -1323,  -858,  -105, -1322,  -129,  2267,
     1777   -1323,  2391, -1323,   906, -1323,  -184,    59,  -180,  -173,  -170,
     1778       7,   -40,   -35,   -33,    60,    -6,    25,    93,  -168,  -164,
     1779    -158,  -147,  -144,  -292,  -471,  -462,  -452,  -551,  -302,  -537,
     1780   -1323, -1323,  -511,  1069,  1072,  1074,  2608,  4844,  -578,  -514,
     1781    -502,  -495,  -500, -1323,  -508,  -724,  -717,  -708,  -590,  -305,
     1782    -195, -1323, -1323,   246,    19,    36, -1323,  3865,   104,  -623,
     1783    -397
    17851784};
    17861785
     
    17881787   positive, shift that token.  If negative, reduce the rule which
    17891788   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1790 #define YYTABLE_NINF -525
     1789#define YYTABLE_NINF -522
    17911790static const yytype_int16 yytable[] =
    17921791{
    1793       49,   113,   453,   149,   399,   267,   768,    97,   428,   400,
    1794      150,   401,   402,   505,   403,   151,   753,   114,   821,   404,
    1795      405,   829,   383,   384,   260,   966,   106,   106,   440,   846,
    1796      610,  1072,    49,   597,   166,   967,    50,   921,   828,    97,
    1797      357,   968,   741,   147,  1175,   975,   870,   796,   407,    49,
    1798     1383,  1141,   408,   726,   413,    76,   161,   731,   106,  1173,
    1799     1174,   421,   358,   186,   143,  1443,   209,   822,    50,    49,
    1800      193,    63,   202,   216,   342,   410,   226,   123,   820,    31,
    1801     1254,   152,   823,    69,   399,   219,   177,    76,   605,   400,
    1802      425,   401,   402,   153,   403,   106,    31,   817,   166,   404,
    1803      405,  1185,  1306,    63,   280,   113,   629,   471,  1255,   670,
    1804      633,   818,  1191,   113,    31,    69,   266,   271,  1199,   925,
    1805      154,   580,   203,   411,   832,   819,   142,  1071,   407,   679,
    1806      839,   327,   408,   413,   724,   261,  1443,   683,   262,  1181,
    1807       31,   950,  1201,   674,   676,   149,   307,   147,  1462,   475,
    1808      477,   411,   150,  1488,   161,   113,   345,   151,  1208,  1209,
    1809      209,   567,   281,   252,   329,  1182,   252,   373,   411,   409,
    1810      715,  1307,    56,   115,    70,  1203,   291,  1472,  1200,   110,
    1811      861,   862,   966,   915,   510,   186,   186,  1516,   577,  1518,
    1812       41,    42,   967,   161,   436,   568,   581,   879,   968,   584,
    1813      122,   266,  1202,  1182,    56,   953,    70,   548,   549,    49,
    1814      419,   730,   411,  1238,   476,   817,   161,  1242,   760,   668,
    1815     1204,   209,  1060,   152,   327,   149,   519,   721,   443,   818,
    1816      743,   821,   150,    31,  1249,   153,   735,   151,   210,   307,
    1817      212,   220,   144,   819,  1018,   548,  1082,   439,    31,   833,
    1818     1175,    49,  1530,   836,   493,   933,   436,   494,    97,   271,
    1819      589,  1017,   154,   413,   271,   266,   266,   421,   665,   471,
    1820      993,   113,   666,   161,   853,   146,  1143,   106,   856,  1545,
    1821      822,   548,    31,   463,   610,   657,   181,    50,  1447,   471,
    1822      342,  1005,   166,  1190,   307,   823,   800,   471,  -236,  -236,
    1823     1175,   483,   168,   481,   155,   411,    76,   307,   500,   597,
    1824      817,    76,   527,   672,   597,  1173,  1174,   357,   830,   677,
    1825      602,   476,    63,   572,   818,  1095,   169,   472,   147,   849,
    1826      599,  1086,   806,   850,    69,   373,   832,   447,   819,   358,
    1827     1079,   113,   665,   569,   413,   345,   666,   996,   171,   603,
    1828      621,   821,   837,   829,   602,   201,   460,   229,   673,   675,
    1829      230,   736,  1191,   234,   626,   236,   748,  -292,   626,  -236,
    1830     1072,   113,   245,   900,   855,   163,  1118,   177,  1402,  1403,
    1831      988,   737,  1447,  1402,  1403,   557,   558,  1447,   714,   247,
    1832      110,  1196,   110,   441,   630,   442,   266,   765,   634,  1134,
    1833      822,    41,    42,    41,    42,   286,   186,  1447,  1120,   846,
    1834      357,   327,   327,   373,  1447,   823,    41,    42,   851,  1175,
    1835      559,   560,   852,    56,   266,    70,   307,   307,  1121,   766,
    1836      266,  1336,   358,   626,   715,  1438,   577,   577,   519,   163,
    1837     1529,  1329,   514,   519,   342,  1427,   519,   583,  1404,   411,
    1838      770,   771,   772,  1413,   113,   250,  1432,  1433,  1205,  1428,
    1839     1540,  1330,   703,   252,  1128,   377,  1071,  1544,  1334,   954,
    1840     1337,  1339,   266,    76,   110,   357,   139,   140,  -520,   327,
    1841      266,   378,   626,   -10,    49,    41,    42,   373,   720,   472,
    1842      578,    97,  1021,    76,   113,  -444,   579,   358,   327,   229,
    1843      789,    76,   871,   884,  1106,   411,   307,   610,   113,   472,
    1844      106,   307,  1139,   307,   307,  1191,   243,   472,   263,  1018,
    1845       50,   751,  1191,   885,   212,   113,   345,   888,  1248,   110,
    1846     1161,  1163,   872,   471,   643,   435,  1134,   553,   554,    76,
    1847       41,    42,  1240,  1366,   881,   883,   110,   998,   139,   238,
    1848      912,   873,   806,   712,   914,    63,   851,    41,    42,   930,
    1849     1102,  1060,   387,  1473,   327,  1016,   498,    69,  1338,   390,
    1850      392,   572,   572,  1191,  -471,   684,  -471,  1474,   388,   307,
    1851     -445,   579,  1128,   239,  1103,   391,   393,   915,   240,   276,
    1852      626,   345,   394,  -471,   715,   621,  1500,   435,   252,   329,
    1853      411,   603,  1505,   603,  1280,  1281,   847,   110,   395,   139,
    1854      140,   599,     2,   206,     4,     5,     6,     7,    41,    42,
    1855      523,   626,  1525,  -124,   550,  -124,   626,  1532,   621,  -124,
    1856      551,   552,   626,   163,   278,   626,   626,   626,    37,   229,
    1857      806,   234,    40,   916,  -124,  -124,   866,   212,   279,    41,
    1858       42,   848,   714,   626,  1376,   266,    56,   974,    70,   917,
    1859      577,    48,   112,  1089,   342,  1089,   918,   863,   330,   703,
    1860      916,   918,  1029,   331,   808,    43,  -106,    35,  1016,    36,
    1861     -106,   878,   919,    45,    46,   113,  1083,  1084,   909,   597,
    1862      112,   112,  1076,    48,   372,   357,  1478,   332,  1188,  1364,
    1863     1188,   705,   333,  1478,    48,  1320,  1401,   706,  1114,  1409,
    1864       48,   626,   935,   621,  1189,   334,  1312,   358,    48,   720,
    1865      720,  1321,  1322,  1036,    48,   335,   399,    48,   376,   229,
    1866       48,   400,   748,   401,   402,  1352,   403,    76,  1323,  1353,
    1867       -3,   404,   405,   112,   112,   113,   345,   110,  1367,   141,
    1868      751,   751,  1446,   472,  1526,   722,   371,  1450,    41,    42,
    1869      389,   723,   500,    76,   528,   529,   530,    48,   555,   556,
    1870       48,   407,   385,  1412,   571,   408,   411,    48,   413,   472,
    1871      692,  1377,    45,    46,   966,  1471,   561,   562,   531,   703,
    1872      532,   397,   533,   534,   967,   572,   426,   442,   732,   703,
    1873      968,   241,   244,   626,   733,   626,   409,  1001,    48,  1429,
    1874      626,   345,   714,   703,   603,   427,    48,   712,  1165,   432,
    1875      750,    48,   411,   450,   342,  1440,   603,  -368,    45,    46,
    1876      986,   983,   523,   110,   523,   139,   140,   523,   715,  -397,
    1877      523,   419,   661,   411,    41,    42,    48,    48,    37,   954,
    1878      174,   175,    40,   954,   954,  1146,  1480,   484,  1481,    41,
    1879       42,   747,    48,   738,   504,   739,   806,   748,   740,  1539,
    1880       48,   744,  1158,   212,   894,  1539,   307,   329,   411,    48,
    1881      748,   110,    48,   139,   140,   372,  1539,   212,   461,   112,
    1882     1539,  1186,    41,    42,   808,  1498,  1440,   887,   626,   411,
    1883      462,   548,   106,   110,   112,   113,   345,   909,   112,   909,
    1884     1134,  1527,    48,   112,    41,    42,   896,   715,   727,  1373,
    1885     1374,   113,   748,   728,  1402,  1403,    48,    48,  1172,   291,
    1886      327,    76,   982,    48,   935,   935,   525,   995,   983,   720,
    1887       48,   508,   510,   706,   113,   307,  1236,    63,   513,   665,
    1888      413,  1360,   579,   666,   912,  1422,   983,   748,   914,    69,
    1889     1107,   129,   457,   130,   131,   132,   934,   116,   602,   751,
    1890      106,  1327,    41,    42,    45,    46,  1361,   712,  1363,   564,
    1891     1512,   212,   748,   527,   748,  -293,   847,   773,   774,    48,
    1892     1246,  1368,     8,     9,    10,    11,    12,   748,  1231,   781,
    1893      782,   345,     8,     9,    10,    11,    12,  1430,  1448,    48,
    1894       48,   692,   563,  1427,   748,   159,   565,   703,   703,  1494,
    1895      498,    31,   626,   626,   566,  1495,    48,   775,   776,  1128,
    1896       48,    31,     8,     9,    10,    11,    12,  1550,   481,   329,
    1897      411,   644,   307,   579,  -294,   830,   329,   602,    56,    34,
    1898       70,     8,     9,    10,    11,    12,   714,    48,  1384,    34,
    1899      338,    31,  1384,   777,   778,   779,   780,    48,   106,   569,
    1900     -441,   258,  1299,  1300,  1301,   703,   703,   587,   667,   159,
    1901       31,  1145,   113,   411,  1157,    48,   411,   909,  1160,    34,
    1902      602,    48,   909,    48,    37,   590,    -3,    76,    40,   645,
    1903     1162,   935,   602,   658,   659,    41,    42,   639,    34,   266,
    1904      660,    37,   323,   472,   662,    40,  1108,   663,   664,    57,
    1905       57,   339,    41,    42,   626,  1193,  1288,  1289,   112,  1291,
    1906      342,    43,  1245,    48,   411,   257,  1296,    96,  1298,    45,
    1907       46,    48,   669,   693,   694,    48,   696,   698,   719,    48,
    1908      345,    57,   112,   749,   112,   734,    45,    46,  -240,  1463,
    1909      745,     2,   206,     4,     5,     6,     7,   757,   809,    96,
    1910       37,   430,   174,   175,    40,   434,   810,   813,   442,   824,
    1911      148,    41,    42,   -12,  1355,    57,    96,   869,    57,   112,
    1912      228,   -13,   271,   113,   112,   875,   868,   895,   897,   111,
    1913      189,   898,  -418,    96,   902,   323,    96,   376,   905,   219,
    1914      725,   113,   729,   723,    56,   307,    70,   923,  -524,   106,
    1915       37,   712,   174,   175,    40,  1316,    35,   938,    36,   626,
    1916      945,    41,    42,   113,   947,   951,   952,   434,   958,   959,
    1917      488,   106,   960,   961,   112,  -295,   962,   692,   963,  1107,
    1918      979,    48,     8,     9,    10,    11,    12,   703,  1038,   106,
    1919      521,   990,    48,   991,    48,   703,   703,   703,   992,  1007,
    1920       76,  1425,  1008,   159,  1009,   348,  1073,  1010,   626,   626,
    1921     1011,    31,  1538,    48,    96,  1012,    63,   271,  1013,  1024,
    1922     -406,  -405,   307,   908,  1408,  1096,  1075,    96,    69,    48,
    1923      712,  1098,  1097,  1099,   112,  1105,  1115,   588,   748,    34,
    1924     1116,   594,  1117,    48,  1119,   112,    48,   112,   106,  1122,
    1925      973,  1124,   398,   189,  1125,   113,  1126,  1127,   399,   703,
    1926      627,  1130,  1133,   400,   631,   401,   402,   339,   403,  1155,
    1927       57,  1107,  1176,   404,   405,  1178,    96,    76,  1177,    48,
    1928     1179,   106,  1194,   112,  1195,   112,  1180,  1197,    96,   112,
    1929     1198,  1206,   867,   472,   210,   220,   212,   112,  1210,  1211,
    1930       57,  1213,   407,    -3,  1511,  1193,   408,   704,  1218,  1223,
    1931       48,    48,   266,  1228,   493,  1226,  1232,    56,    96,    70,
    1932     1237,  1239,   323,   323,    48,    37,   665,  1241,   626,    40,
    1933      666,   162,   479,  1244,  1250,  1108,    41,    42,   692,  1256,
    1934     1424,   920,  1252,   922,  1258,   194,  1260,   457,   217,  1261,
    1935      688,   227,  1262,   113,  1263,  1264,  1266,  1273,  1290,  1282,
    1936     1283,  1293,   814,   116,   602,  1294,  1311,  1295,  1318,  1107,
    1937       45,    46,  1324,  1297,  1328,   113,  1305,  1332,  1333,   106,
    1938      465,  1335,   113,  1340,   113,  1326,   113,  1342,   488,   441,
    1939      323,   442,   488,  1348,    56,    96,    70,  1349,  1350,   149,
    1940     1351,   106,   521,  1358,   521,    48,   150,   521,   106,   323,
    1941      521,   151,  1359,  1362,  1369,  1510,   604,    48,  1370,  1301,
    1942      113,   339,   113,  1378,  1379,  1386,  1380,  1108,  1387,   162,
    1943       76,  1396,  1397,   113,   327,  -407,  1400,    76,  1411,  1510,
    1944     1510,  1415,   374,  1417,  1419,  1420,   472,   161,  1426,   307,
    1945      176,  1434,  1435,   472,   173,  1421,  1436,  1439,  1193,   106,
    1946      644,  1437,    66,   117,  1510,  1193,   112,  1444,   162,  1353,
    1947      893,   373,  1449,   189,  1453,   323,     2,   206,     4,     5,
    1948        6,     7,   348,  1455,  1451,  1457,   804,  1459,    76,    48,
    1949     1461,   162,  1466,  1467,    66,  1468,   253,  1479,    48,   176,
    1950       48,  1493,   176,   444,   472,  1489,  1491,   112,   528,   529,
    1951      530,   160,  1496,  1497,   704,  1504,  1193,   845,   645,  1519,
    1952     1520,  1524,   594,  1531,  1041,  1108,  1533,  1535,   854,  1541,
    1953       48,   221,   531,    57,   532,  1548,   533,  1309,  1549,   890,
    1954     1212,    35,   783,    36,   784,  1132,   785,    56,   176,    70,
    1955      112,    96,   787,  1310,    56,   604,    70,    37,   786,   183,
    1956      184,    40,  1499,  1414,   644,  1091,  1551,   259,    41,    42,
    1957     1243,  1388,   112,  1372,  1217,   348,   112,   903,  1482,   904,
    1958     1090,   688,  1225,   926,  1129,   215,  1094,   802,  1037,   874,
    1959      989,  1104,   417,   940,   601,   111,   602,   717,  1319,     0,
    1960      994,   242,    45,    46,   948,    56,     0,    70,   792,   328,
    1961      374,   176,   793,     0,  1006,   437,   794,   259,   350,   488,
    1962        0,     0,   645,     0,     0,   445,   112,     0,     0,     0,
    1963        0,     0,     0,     0,   704,     0,   215,     0,     0,     0,
    1964      348,   339,     0,     0,   704,     0,     0,     0,   406,     0,
    1965        0,     0,     0,     0,     0,     0,   761,     0,   704,     0,
    1966        0,   767,     0,   424,   112,   176,   429,   431,   816,     0,
    1967      604,   160,   176,     0,     0,     0,     0,     0,    48,   215,
    1968        0,     0,     0,    48,   348,   348,   348,     0,   374,     0,
    1969        0,     0,   448,   520,     0,     0,   451,     0,   452,     0,
    1970       48,   997,   348,     0,     0,     0,   804,   459,     0,     0,
    1971     1486,   465,  1486,    66,     0,     0,     0,     0,   473,     0,
    1972      924,     0,  1041,     0,     0,     0,     0,     0,   480,     0,
    1973        0,    37,     0,   183,   184,    40,   431,     0,     0,     0,
    1974      215,   176,    41,    42,     0,     0,  1486,     0,  1486,     0,
    1975        0,     0,     0,     0,     0,   913,     0,     0,   176,     0,
    1976      348,     0,   176,     0,     0,     0,    74,     0,   907,     0,
    1977      411,     8,     9,    10,    11,    12,    45,    46,   215,   112,
    1978        0,     0,   880,   215,   882,     0,   816,   604,     0,   908,
    1979        0,     0,     0,     0,   804,     0,     0,     0,    74,     0,
    1980       31,   339,    48,   259,     0,     0,     0,   595,     0,     0,
    1981        0,     0,   987,   623,     0,     0,     0,   688,  1170,  1171,
    1982        0,     0,     0,     0,     0,   176,   628,     0,    34,     0,
    1983      628,     0,     0,   259,   929,   222,     0,  1286,     0,   488,
    1984     1109,   323,   681,   112,     0,   112,   112,     0,     0,     0,
    1985        0,     0,   348,     0,     8,     9,    10,    11,    12,     0,
    1986      348,     0,   704,   704,     0,     0,     0,     0,   707,   215,
    1987      571,     0,   411,     0,     0,     0,  1220,  1221,    45,    46,
    1988      473,   816,     0,    31,     0,     0,     0,     0,     0,  1031,
    1989        0,     0,     0,   604,     0,   350,     0,   845,     0,     0,
    1990      473,     0,     0,     0,     0,   520,     0,     0,   473,     0,
    1991      520,    34,     0,   520,     0,     0,     0,     0,     0,     0,
    1992      704,   704,   353,     0,     0,    57,   699,     0,     0,   431,
    1993        0,     0,   924,     0,     8,     9,    10,    11,    12,     0,
    1994        0,     0,     0,     0,   713,     0,    66,     0,     0,     0,
    1995      215,     0,     0,   750,   431,   411,     0,     0,   431,     0,
    1996        0,    45,    46,    31,     0,     0,     0,     0,     0,     0,
    1997        0,     0,    48,    48,  1085,     0,   913,   924,   688,     0,
    1998        0,   112,   112,   176,     0,     0,     0,   259,   350,     0,
    1999        0,    34,   215,    57,     0,     0,   449,     0,     0,     0,
    2000        0,     0,     0,     0,     0,     0,   604,     0,     0,     0,
    2001        0,     0,  1142,     0,     0,   176,     0,    74,     0,   112,
    2002      804,     0,    74,     0,     0,     0,     0,    77,     0,     0,
    2003        0,   176,     0,   934,   795,   602,     0,     0,     0,     0,
    2004        0,    45,    46,     0,    37,   176,   183,   184,    40,     0,
    2005        0,     0,   628,   807,     0,    41,    42,     0,  1341,    77,
    2006        0,     0,     0,  1031,     0,   826,  1343,  1344,  1345,   892,
    2007     1317,   348,   348,     0,     0,     0,    48,   112,   899,     0,
    2008        0,   185,   901,   595,     0,     0,   112,  1123,   595,    45,
    2009       46,    57,     0,     0,   628,     0,   223,   350,   350,   350,
    2010       48,    48,   704,     0,     0,     0,     0,   339,     0,  1135,
    2011      704,   704,   704,  1135,   215,   350,    37,   222,   183,   184,
    2012       40,     0,     0,     0,     0,    48,   176,    41,    42,  1109,
    2013     1389,     0,     0,   699,     0,     0,     8,     9,    10,    11,
    2014       12,     0,   215,   924,   473,     0,     0,   215,     0,     0,
    2015        0,     0,     0,   907,   913,   411,     0,     0,     0,   913,
    2016        0,    45,    46,  1135,     0,    31,     0,     0,     0,     0,
    2017      473,     0,     0,   350,   704,     0,     0,   214,     0,     0,
    2018        0,     0,   939,   355,    74,   431,     0,     0,     0,     0,
    2019        0,     0,     0,    34,     0,     0,     0,     0,    37,   353,
    2020      183,   184,    40,     0,    74,   924,   924,   259,   713,    41,
    2021       42,     0,    74,   969,     0,     0,     0,     0,   215,     0,
    2022        0,  1109,     0,     0,     0,     0,     0,     0,   214,     0,
    2023      353,     0,   215,     0,     0,   601,     0,   602,     0,     0,
    2024        0,    57,    57,    45,    46,     0,     0,     0,   353,     0,
    2025       74,     0,     0,   699,     0,     0,     0,     0,     0,     0,
    2026        0,     0,     0,   699,    57,   350,     0,   628,     0,     0,
    2027     1004,   214,   628,   807,     0,     0,     0,   699,    77,     0,
    2028        0,     0,    57,    77,     0,     0,     0,  1015,     0,     0,
    2029        0,   176,   353,     0,     0,     0,     0,     0,     0,  1081,
    2030        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2031       17,    18,    19,    20,    21,    22,    23,    24,    25,  1109,
    2032        0,    26,    27,    28,     0,     0,   215,   348,   348,     0,
    2033       31,    79,   214,     0,     0,     0,    57,     0,    66,     0,
    2034        0,    57,     0,     0,    37,     0,   183,   184,    40,     0,
    2035     1485,     0,  1485,     0,     0,    41,    42,   353,    34,     0,
    2036      628,     0,     0,    79,     0,   207,    39,   259,   713,     0,
    2037      214,  1087,     0,     0,    57,   214,     0,     0,   223,     0,
    2038     1135,   265,  1135,  1135,     0,     0,  1485,     0,  1485,    45,
    2039       46,     0,     0,     0,     0,     0,     0,  1101,     0,     0,
    2040      224,   353,   353,   353,     0,   431,   117,     0,    45,    46,
    2041      924,     0,     0,     0,     0,   323,     0,     0,     0,   353,
    2042        0,     0,     0,     0,     0,     0,   924,     0,     0,     0,
    2043        0,     0,     0,     0,     0,     0,     0,   353,     0,     0,
    2044        0,     0,     0,     0,     0,    77,     0,   348,    74,     0,
    2045        0,     0,  1207,     0,     0,     0,     0,     0,     0,     0,
    2046      355,   214,     0,   595,     0,    77,     0,     0,     0,     0,
    2047        0,     0,    57,    77,    74,     0,   429,   353,     0,     0,
    2048        0,   699,   699,     0,   350,   350,     0,   356,     0,     0,
    2049        0,   355,     0,     0,    57,     0,   924,   924,     0,     0,
    2050        0,    57,     0,     0,  1192,     0,     0,     0,     0,   355,
    2051        0,    77,   353,     0,     0,     0,     0,     0,  1135,  1135,
    2052        0,     0,     0,   215,     0,     0,     8,     9,    10,    11,
    2053       12,     0,     8,     9,    10,    11,    12,     0,     0,   699,
    2054      699,     0,   214,     0,     0,     0,     0,     0,     0,     0,
    2055        0,     0,    57,   355,     0,    31,  1464,   353,     0,     0,
    2056        0,    31,     0,     0,     0,     0,     0,   353,     0,   353,
    2057        0,     0,     0,     0,   222,     0,   479,   353,     0,     0,
    2058        0,   353,    79,    34,   214,     0,   628,    79,    37,    34,
    2059      183,   184,    40,     0,    37,     0,   183,   184,    40,    41,
    2060       42,     0,     0,     0,   176,    41,    42,     0,     0,     0,
    2061        0,     0,   713,     0,  1513,     0,     0,     0,   355,     0,
    2062        0,     0,     0,  1521,     0,   907,     0,   411,     0,     0,
    2063        0,   185,     0,    45,    46,     0,     0,     0,     0,    45,
    2064       46,     0,    74,     0,     0,     0,     0,    37,     0,   183,
    2065      184,    40,     0,     0,     0,  1287,     0,     0,    41,    42,
    2066        0,     0,   355,   355,   355,     0,     0,     0,     0,     0,
    2067        0,     0,   353,   259,     0,     0,     0,    66,     0,     0,
    2068      355,     0,   224,     0,  1509,     0,   411,     0,     0,   699,
    2069        0,   713,    45,    46,     0,   117,   213,     0,   355,     0,
    2070     1371,     0,     0,     0,     0,   232,   214,     0,     0,    77,
    2071        0,   215,     0,     0,     0,     0,     0,     0,     0,     0,
    2072        0,   699,     0,     0,     0,     0,     0,     0,     0,   699,
    2073      699,   699,     0,     0,   214,    77,     0,     0,   355,   214,
    2074      350,   350,     0,     0,     0,     0,     0,   213,    86,    79,
    2075        0,     0,     0,     0,  1192,     0,     0,     0,     0,     0,
    2076        0,     0,     0,     0,   356,     0,     0,     0,     0,    79,
    2077        0,     0,     0,   355,   176,     0,     0,    79,     0,     0,
    2078       86,     0,     0,     0,     0,   353,   353,   117,   353,   353,
    2079      213,     0,     0,   699,     0,   356,     0,     0,     0,     0,
    2080        0,     0,     0,     0,     0,     0,   215,     0,    74,     0,
    2081      214,     0,     0,   356,     0,    79,     0,   225,   355,     0,
    2082        0,     0,     0,     0,   214,     0,     0,     0,   355,     0,
    2083      355,     0,     0,     0,     0,   223,     0,     0,   355,     0,
    2084        0,     0,   355,   353,   353,     0,     0,     0,     0,     0,
    2085        0,   213,  1483,     0,  1487,     0,     0,   356,     0,     0,
    2086      350,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2087      167,     0,   172,     0,     0,   178,   179,   180,     0,   182,
    2088        0,     0,     0,     0,     0,   117,     0,     0,  1515,   213,
    2089     1517,    31,     0,   233,   213,     0,     0,     0,     0,     0,
    2090        0,     0,     0,    77,   363,   248,   249,  1192,     0,   499,
    2091        0,     0,     0,     0,  1192,     0,   353,     0,   214,    34,
    2092        0,     0,   356,     0,    37,     0,   183,   184,    40,     0,
    2093        0,     0,  1546,   355,  1547,    41,    42,     0,     0,     0,
    2094        0,     0,     0,     0,     0,     0,     0,  1554,  1555,     0,
    2095        0,     0,     0,     0,     0,     0,     0,     0,     0,   222,
    2096        0,  1509,     0,   411,     0,  1192,   356,   356,   356,    45,
    2097       46,     0,  1534,     0,     0,     0,     0,     0,     0,     0,
    2098      213,    74,     0,     0,   356,     0,     0,     0,     0,     0,
    2099        0,     0,     0,   353,     0,   353,     0,     0,     0,    86,
    2100        0,     0,   356,     0,    86,     0,     0,     0,     0,     0,
    2101        0,     0,     0,    79,     0,     0,     0,     0,     0,     8,
    2102        9,    10,    11,    12,     0,   353,     0,     0,     0,     0,
    2103        0,     0,     0,   353,   353,   353,     0,     0,     0,    79,
    2104        0,     0,   356,     0,   353,   353,   355,   355,    31,   355,
    2105      355,     0,     0,     0,     0,     0,     0,     0,    74,     0,
    2106        0,   213,     0,     0,     0,     0,     0,     0,     0,    77,
    2107        0,     0,     0,     0,     0,     0,    34,   356,   213,     0,
    2108        0,    37,     0,   183,   184,    40,     0,     0,     0,     0,
    2109        0,     0,    41,    42,     0,     0,     0,   353,     0,   225,
    2110        0,     0,     0,   213,   355,   355,   124,   127,   128,     0,
    2111        0,     0,     0,     0,     0,   214,     0,     0,   265,     0,
    2112        0,     0,   356,     0,     0,     0,    45,    46,     0,     0,
    2113        0,     0,   356,     0,   356,     0,     0,     0,     0,   224,
    2114        0,     0,   356,     0,     0,     0,   356,     0,   535,   536,
    2115      537,   538,   539,   540,   541,   542,   543,   544,   545,     0,
    2116        0,   592,     0,   600,   353,     0,    86,     0,     0,     0,
    2117        0,     0,     0,     0,   624,   625,     0,   355,   254,     0,
    2118      255,   363,   546,     0,     0,     0,    86,     0,     0,     0,
    2119        0,     0,     0,     0,    86,     0,     0,     0,     0,     0,
    2120        0,     0,     0,     0,     0,     0,     0,    79,     0,     0,
    2121        0,    74,   363,     0,     0,     0,     0,     0,    74,     0,
    2122      223,     0,     0,     0,     0,   213,     0,     0,     0,     0,
    2123      363,     0,    86,     0,     0,     0,     0,   356,     0,     0,
    2124        0,     0,    77,     0,     0,     0,     0,     0,     0,     0,
    2125        0,     0,     0,   213,   355,     0,   355,     0,   213,     0,
    2126        0,   396,     0,     0,     0,     0,     0,     0,     0,    74,
    2127        0,   415,   416,     0,   363,     0,   420,     0,   422,   423,
     1792      49,   113,   407,   149,   453,   399,   428,    97,   150,   440,
     1793     151,   267,   400,   753,   767,   401,   114,  1071,   408,   106,
     1794     106,   402,   974,   280,   869,   828,   965,   403,    57,    57,
     1795     505,   845,    49,   966,  1188,    50,  1172,   152,   404,    97,
     1796     597,   405,   967,   147,   383,   384,   741,   610,  1070,    49,
     1797     357,   106,   827,   143,    70,   920,   161,   605,   410,    96,
     1798      57,   795,   177,   186,   819,  1380,   209,    50,   153,    49,
     1799     193,    56,   115,   216,   923,  1303,   226,  1440,   949,   726,
     1800      69,   281,   407,   731,   219,   399,    70,   820,   106,    31,
     1801      31,    96,   400,   724,    57,   401,   425,    57,   408,   821,
     1802      31,   402,   148,    56,   831,   113,   822,   403,    96,   162,
     1803     838,   261,    69,   113,   262,   670,   266,   271,   404,   122,
     1804     212,   405,   189,   194,    31,    96,   217,    31,    96,   227,
     1805     816,  1138,   475,   477,   510,   679,   154,   210,   202,   817,
     1806     220,   260,  1196,   683,  1304,   149,   307,   147,  1440,   818,
     1807     150,  1198,   151,   166,   161,   113,   345,   548,   549,   252,
     1808     209,   411,   411,  1459,    31,   986,   527,   373,  1200,   629,
     1809     419,    31,   411,   633,  1170,  1171,   291,   715,  1178,   152,
     1810     914,  1182,   965,  1235,   348,   186,   186,  1239,   203,   966,
     1811     358,   342,    76,   161,  1078,   548,   721,   481,   967,   411,
     1812     668,   266,  1197,  1469,  1179,   952,    96,   162,   832,    49,
     1813     153,  1199,   835,  1201,  1187,   409,   161,   166,   123,    96,
     1814     374,   209,   665,   439,    76,   149,   252,   329,   443,  1179,
     1815     150,   548,   151,   852,   829,   471,   602,   855,   666,   307,
     1816    1172,   836,  1030,   602,   398,   189,   162,  1017,   816,    57,
     1817     327,    49,  1140,   735,   176,  -233,  -233,   817,    97,   271,
     1818     476,   674,   676,  1081,   271,   266,   266,   818,    96,   162,
     1819     106,   113,   463,   161,  1016,   442,  1004,   483,   154,    57,
     1820      96,   444,  1188,   992,   500,   923,    50,   142,   924,  1249,
     1821    1172,   657,   441,  1527,   307,   163,   665,   860,   861,   820,
     1822     146,   610,  1094,   176,  1485,    70,   176,   307,  1205,  1206,
     1823      96,   821,   666,   436,   878,   831,   597,  1250,   822,   672,
     1824    1542,   597,    56,   572,   479,   677,  -233,   357,   147,   730,
     1825     923,    69,   567,  1399,  1400,   373,   168,   155,  1513,   377,
     1826    1515,   113,   816,   327,   580,   345,   411,   476,   743,   603,
     1827     621,   817,   176,   177,  1071,   378,   828,    63,   736,   163,
     1828     169,   818,  1399,  1400,   626,  1139,   568,  1497,   626,   569,
     1829     630,   113,   932,  1502,   634,   436,   748,   589,   737,   899,
     1830     110,   144,   139,   140,  1246,  1070,   447,    96,   374,    63,
     1831     987,    41,    42,  1522,  1202,   805,   266,   471,  1529,   171,
     1832     769,   770,   771,  1401,   212,   460,   186,   342,   604,  1172,
     1833     845,   166,   578,   373,   799,   176,  1030,   471,   579,   820,
     1834     357,   583,   243,   411,   266,   471,   307,   307,  1170,  1171,
     1835     266,   821,  1410,   626,   110,  1188,  1119,   854,   822,  1326,
     1836     110,   715,  1188,    76,  1526,    41,    42,   684,    76,   599,
     1837    1020,    41,    42,   579,   113,   435,  1120,   553,   554,  1327,
     1838    1127,   348,  1363,   995,  1537,   189,   374,   358,  -121,   176,
     1839    -121,  1541,   266,   760,  -121,   493,   176,   705,   494,   765,
     1840     266,   387,   626,   706,    49,   357,   953,   373,   720,  -121,
     1841    -121,    97,   229,  1188,   113,   230,   923,   388,   234,  1085,
     1842     236,   557,   558,   106,   911,  1245,   307,   245,   113,  1158,
     1843    1160,   307,    57,   307,   307,  1136,   714,   435,  1424,    50,
     1844     913,   751,  1017,   610,   870,   113,   345,   212,   882,  1105,
     1845     327,   327,  1425,  1015,  1429,  1430,   559,   560,    70,   883,
     1846     523,   411,  1102,    96,  1117,   176,   722,   604,  1435,  1470,
     1847     880,   181,   723,   163,   348,    56,   923,   923,   110,   390,
     1848     358,   342,   176,  1471,    69,   110,   176,   139,   140,    41,
     1849      42,   572,   572,   555,   556,   391,    41,    42,  1127,   307,
     1850    1444,   110,   201,   914,     2,   206,     4,     5,     6,     7,
     1851     626,   345,    41,    42,   286,   621,   392,  1331,   327,  -289,
     1852     715,   603,   111,   603,   865,    41,    42,   973,    63,   997,
     1853      76,   247,   393,   472,   805,  1475,   250,   327,   732,   348,
     1854    1333,   626,  1475,  -517,   733,   358,   626,   847,   621,   176,
     1855      76,   514,   626,  1361,   229,   626,   626,   626,    76,   871,
     1856    -468,   643,  -468,   862,   848,   886,  1015,   411,   849,    35,
     1857     394,    36,  1028,   626,   915,   266,   252,   877,   872,  -468,
     1858     815,   471,   604,   348,   348,   348,   395,  1142,   917,   411,
     1859     916,   807,  1075,  1523,  1444,   915,    76,   442,   917,  1444,
     1860    1185,   348,   263,   327,   918,   113,    37,   929,   908,  1185,
     1861      40,  1082,  1317,   -10,  1083,   597,  1186,    41,    42,  1444,
     1862     692,   498,   805,   110,   357,  1309,  1444,  1409,  1318,  1113,
     1863    1237,   626,   934,   621,    41,    42,   747,  -441,  1319,   720,
     1864     720,   748,   748,    43,   407,   846,   399,   561,   562,   893,
     1865     599,    45,    46,   400,  1320,   748,   401,  1364,   500,   348,
     1866     408,  -442,   402,   895,  1035,   113,   345,   912,   403,   748,
     1867     751,   751,   523,   212,   523,   276,   571,   523,   411,   404,
     1868     523,   923,   405,   981,    45,    46,   519,   212,   850,   982,
     1869    1277,  1278,   851,   278,   229,   472,   234,   923,   815,   604,
     1870     714,   342,   965,  1154,   850,   411,  1374,   176,  1101,   966,
     1871    1477,   750,  1478,   411,   572,   472,   279,  -103,   967,    45,
     1872      46,  -103,   626,   472,   626,   110,  1000,   139,   140,   626,
     1873     345,   330,   933,   603,   602,  1162,    41,    42,   994,   176,
     1874      45,    46,    37,  1233,   706,   603,    40,   331,  1349,   579,
     1875     348,  1357,  1350,    41,    42,   176,   332,   748,   348,   712,
     1876    1358,    63,   715,   371,   358,  1524,   748,   923,   923,   176,
     1877     548,   985,   982,   465,     8,     9,    10,    11,    12,   813,
     1878     212,   602,   329,   411,   229,   953,   372,    45,    46,   953,
     1879     953,  1360,   815,   550,    76,   307,  1365,   748,  -290,   551,
     1880     552,   333,   748,    31,   604,     8,     9,    10,    11,    12,
     1881     807,   510,  1370,  1371,   106,  1427,   334,   626,   673,   675,
     1882      76,  1424,   665,    57,   113,   345,   908,   911,   908,   335,
     1883    1445,    34,  1183,   376,    31,    37,   748,   385,   666,    40,
     1884     113,   715,  1157,   913,   602,   389,    41,    42,   805,    70,
     1885     176,   692,   409,   934,   934,  1491,  1419,   982,   720,   714,
     1886     342,  1492,    34,   113,   307,   129,    56,   130,   131,   132,
     1887      48,   112,   719,  1399,  1400,    69,    41,    42,  1106,   397,
     1888      45,    46,   106,  1547,   214,  1084,   426,   912,   751,   579,
     1889    1159,    57,   602,   427,  1509,  1426,   772,   773,   519,   112,
     1890     112,   432,    48,   519,   450,  1324,   519,   738,  1242,   739,
     1891     411,  1437,   740,    48,  1088,   744,  1088,   604,  -365,    48,
     1892     345,   774,   775,  1228,  -394,   484,    37,    48,   174,   175,
     1893      40,   780,   781,    48,  1107,   214,    48,    41,    42,    48,
     1894     461,   626,   626,  1127,   462,     2,   206,     4,     5,     6,
     1895       7,   504,   112,   112,   776,   777,   778,   779,   291,   472,
     1896     788,   307,     2,   206,     4,     5,     6,     7,   327,   348,
     1897     348,   528,   529,   530,   508,  1169,    48,   442,   214,    48,
     1898     106,  1495,  1437,   513,   525,   472,    48,    76,   111,    57,
     1899     527,   228,  1381,   563,   564,   531,  1381,   532,   566,   533,
     1900     534,   113,   252,   329,   411,   565,   908,   419,   661,   411,
     1901      35,   908,    36,   569,   176,    70,   338,    48,  -438,   587,
     1902     934,   658,   659,   712,   846,    48,  -291,    35,   266,    36,
     1903      48,   590,    56,     8,     9,    10,    11,    12,    -3,   214,
     1904     639,  1190,   660,   626,   481,   329,   411,   662,   663,   761,
     1905     664,   829,   329,   602,   766,    48,    48,    37,   667,   183,
     1906     184,    40,    31,   669,   257,   912,   693,   345,    41,    42,
     1907     912,    48,   694,    -3,   696,   498,   698,   214,  -237,    48,
     1908     734,   745,   214,  1296,  1297,  1298,   692,   749,    48,   757,
     1909      34,    48,   808,  1460,   906,   809,   411,   -12,   112,   812,
     1910     823,   714,    45,    46,   465,  1332,  1334,  1335,   -13,   271,
     1911     113,   867,   868,   112,   874,   907,   894,   112,   896,   897,
     1912     922,    48,   112,   901,   904,   219,  -415,   723,   113,   106,
     1913    -521,   944,   307,   937,   946,    48,    48,    57,    57,   957,
     1914     950,   959,    48,   958,   960,   951,   626,  -292,   961,    48,
     1915     113,   106,    63,    76,     8,     9,    10,    11,    12,   962,
     1916      57,   978,   989,   212,   342,  1106,   990,   991,   214,   106,
     1917    1006,  1007,  1008,  1009,   116,   879,  1010,   881,    57,  1011,
     1918     210,   220,   712,    31,  1012,  1023,    70,  -403,    37,  -402,
     1919     183,   184,    40,  1037,  1422,   626,   626,  1072,    48,    41,
     1920      42,  1535,  1074,    56,   271,  1095,   907,  1096,  1059,   307,
     1921    1097,    34,    69,  1098,  1104,  1114,   748,  1115,    48,    48,
     1922    1116,  1107,   159,   348,   348,   185,  1118,   928,   106,  1352,
     1923    1121,  1123,    57,    45,    46,    48,   972,    57,  1124,    48,
     1924    1125,  1126,   113,   407,  1132,  1129,   399,   692,  1152,   214,
     1925     644,  1173,  1174,   400,   173,  1175,   401,  1106,   442,   408,
     1926    1176,   106,   402,    70,  1177,  1191,    48,   665,   403,  1192,
     1927      57,  1194,  1195,  1203,  1210,   441,    48,  1207,   258,   404,
     1928      56,  1208,   405,   666,  1215,    -3,   159,  1220,  1225,  1190,
     1929    1223,   214,  1241,   493,    48,  1229,   253,  1508,  1234,   266,
     1930      48,  1236,    48,  1421,  1238,  1247,  1251,  1253,  1255,   110,
     1931    1257,   139,   238,  1107,  1258,   626,  1263,  1259,   472,   323,
     1932      41,    42,  1260,  1261,    76,   176,  1270,    37,   339,   174,
     1933     175,    40,  1279,   110,  1280,   139,   140,   112,    41,    42,
     1934     113,  1287,    48,   348,    41,    42,   239,  1290,  1291,  1292,
     1935      48,   240,  1330,  1294,    48,  1106,  1302,  1308,    48,   106,
     1936    1315,   112,   113,   112,   372,  1323,  1321,  1325,    57,   113,
     1937     727,   113,  1336,   113,  1329,   728,  1337,  1193,   430,  1339,
     1938    1345,   106,   434,  1346,  1347,  1348,   149,  1359,   106,  1355,
     1939      57,   150,   417,   151,  1356,  1366,  1367,    57,   112,  1298,
     1940    1375,    76,  1507,   112,  1384,  1376,  1377,   113,  1383,   113,
     1941    1393,  1107,   323,   214,  1394,   437,    70,  -404,  1397,  1408,
     1942     113,  1412,  1414,    70,   712,   445,  1507,  1507,  1416,  1417,
     1943     703,  1423,  1418,    56,   161,  1441,   307,  1431,  1432,   106,
     1944      56,   214,  1190,  1433,   434,  1434,   214,   488,    57,  1190,
     1945    1350,  1507,  1436,   112,  1446,  1448,  1450,  1452,   373,   213,
     1946      48,  1454,  1456,  1458,  1463,  1465,  1486,   521,   232,  1464,
     1947    1476,    48,  1488,    48,    70,  1490,  1493,  1501,  1521,  1122,
     1948     159,  1494,  1516,  1517,  1530,   479,   141,  1528,  1532,    63,
     1949    1538,    56,    48,   520,  1545,   176,  1546,   889,  1209,   782,
     1950    1190,  1133,  1131,   712,   784,  1133,  1307,  1411,    48,   783,
     1951     213,   704,   785,   112,   588,   786,  1496,   214,   594,  1548,
     1952    1369,  1385,    48,  1240,   112,    48,   112,  1214,  1479,   902,
     1953     903,   214,  1089,   925,   215,  1222,  1093,   627,   241,   244,
     1954     327,   631,   801,  1128,   339,  1059,  1036,   939,   873,  1103,
     1955     242,  1316,   717,   213,    76,  1133,    66,   117,    48,   947,
     1956     791,    76,   112,   792,   112,   793,   472,    37,   112,   174,
     1957     175,    40,     0,     0,     0,     0,   112,     0,    41,    42,
     1958       0,     0,     0,  1285,  1286,   215,  1288,     0,    66,    48,
     1959      48,     0,     0,  1293,     0,  1295,     0,     0,     0,   323,
     1960     323,     0,     0,    48,   376,   160,     0,     8,     9,    10,
     1961      11,    12,    76,     0,   213,     0,     0,  1483,     0,  1483,
     1962       0,     0,     0,     0,   214,   221,     0,   688,   215,     0,
     1963     528,   529,   530,     0,     0,     0,    31,   703,  1373,     0,
     1964     116,     0,   681,     0,     0,     0,     0,     8,     9,    10,
     1965      11,    12,   213,  1483,   531,  1483,   532,   213,   533,  1306,
     1966       0,   259,     0,     0,    34,   488,     0,   323,   707,   488,
     1967       0,     0,   499,     0,     0,     0,    31,     0,     0,   521,
     1968       0,   521,     0,    48,   521,     0,   323,   521,     0,   215,
     1969    1398,     0,     0,  1406,     0,    48,     0,     0,   339,   457,
     1970       0,     0,     0,   328,    34,   520,   571,     0,   411,     0,
     1971     520,   259,   350,   520,    45,    46,     0,     0,   704,   472,
     1972       0,     0,     0,     0,     0,     0,   472,   215,     0,     0,
     1973       0,     0,   215,     0,     0,     0,  1443,     0,   644,     0,
     1974       0,  1447,   406,   213,   112,     0,   750,     0,   411,     0,
     1975       0,  1405,   323,     0,    45,    46,   703,   424,     0,     0,
     1976     429,   431,     0,   803,     0,   160,   703,    48,     0,  1468,
     1977    1133,  1133,  1133,     0,     0,     0,    48,   472,    48,     0,
     1978     703,     0,     0,     0,     0,   112,   448,     0,     0,     0,
     1979     451,     0,   452,     0,   844,     0,     0,     0,     0,   594,
     1980       0,   459,     0,     0,     0,   853,    74,    66,    48,     0,
     1981       0,     0,   473,     0,     0,     0,     0,     0,   215,     0,
     1982       0,   214,   480,     0,   213,     0,     0,     0,   112,     0,
     1983     431,     8,     9,    10,    11,    12,   645,   704,    74,     0,
     1984       0,   213,   644,     0,     0,     0,     0,   704,     0,     0,
     1985     112,     0,     0,  1536,   112,     0,     0,     0,   688,  1536,
     1986      31,   704,     0,     0,     0,     0,   213,     0,     0,   891,
     1987    1536,     0,   892,     0,  1536,   222,     0,     0,   898,     0,
     1988       0,     0,   900,     0,     0,     0,     0,     0,    34,     0,
     1989       0,    37,     0,   183,   184,    40,   488,   259,     0,   215,
     1990       0,   595,    41,    42,   112,     0,     0,   623,  1133,  1133,
     1991       0,     0,     0,     0,     0,     0,     0,     0,   339,     0,
     1992     628,     0,     0,     0,   628,     0,     0,   259,   265,     0,
     1993     933,     0,   602,     0,     0,     0,    45,    46,    45,    46,
     1994       0,   215,   112,     0,     0,     0,  1461,   725,     0,   729,
     1995       0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
     1996       0,    48,   353,   535,   536,   537,   538,   539,   540,   541,
     1997     542,   543,   544,   545,   473,     0,     0,   996,    48,     0,
     1998       0,     0,   803,     0,   703,   703,     0,     0,   213,   350,
     1999       0,   988,     0,     0,   473,     0,     0,   546,     0,     0,
     2000       0,   993,   473,     0,  1510,     0,     0,   214,     0,     0,
     2001       0,     0,     0,  1518,     0,  1005,   213,     0,     0,     0,
     2002     699,   213,    37,   431,   183,   184,    40,     0,     0,     0,
     2003       0,     0,     0,    41,    42,     0,   449,     0,   713,     0,
     2004      66,     0,   703,   703,     0,     0,     0,     0,   431,     0,
     2005       0,     0,   431,     0,     0,   112,     0,    74,     0,   601,
     2006       0,   602,    74,   215,     0,   704,   704,    45,    46,     0,
     2007     803,     0,     0,     0,     0,     0,     0,   339,    48,     0,
     2008       0,   259,   350,     0,     0,     0,     0,     0,     0,     0,
     2009       0,   215,   213,   688,     0,     0,   215,     0,  1080,   866,
     2010       0,     0,   214,    77,     0,     0,   213,     0,     0,     0,
     2011       0,     0,     0,     0,     0,   488,  1108,   323,     0,   112,
     2012     112,   112,     0,   704,   704,     0,   499,     0,   794,    37,
     2013       0,   183,   184,    40,     0,    77,     0,     0,     0,     0,
     2014      41,    42,     0,     0,     0,     0,   628,   806,   919,     0,
     2015     921,     0,     0,     0,   457,     0,     0,   222,    37,   825,
     2016     183,   184,    40,     0,     0,     0,   906,   215,   411,    41,
     2017      42,     0,   223,   844,    45,    46,     0,   595,     0,     0,
     2018       0,   215,   595,     0,     0,     0,     0,     0,   628,     0,
     2019    1313,   350,   350,   350,     0,  1506,     0,   411,     0,   213,
     2020       0,     0,     0,    45,    46,     0,     0,     0,     0,   350,
     2021       0,     0,     0,   124,   127,   128,     0,     0,     0,  1167,
     2022    1168,     0,   703,     0,    74,     0,     0,   699,     0,     0,
     2023     703,   703,   703,     0,     0,     0,     0,     0,   473,   353,
     2024       0,     0,     0,     0,    74,     0,     0,     0,    48,    48,
     2025       0,  1204,    74,     0,   688,     0,     0,   112,   112,   355,
     2026       0,     0,     0,     0,   473,     0,     0,   350,     0,     0,
     2027     353,  1314,     0,     0,   215,     0,   938,  1217,  1218,   431,
     2028       0,     0,     0,     0,     0,   254,     0,   255,   353,     0,
     2029      74,     0,     0,     0,   703,   112,   803,     0,     0,     0,
     2030       0,   259,   713,   704,     0,     0,     0,   968,     0,     0,
     2031       0,   704,   704,   704,     0,     0,     0,     0,     0,     0,
     2032       0,     0,     0,     0,   645,     0,     0,     0,     0,     0,
     2033    1040,     0,   353,     0,     0,     0,     0,   126,   126,   126,
     2034       0,     0,     0,     0,     0,     0,   699,     0,     0,     0,
     2035       0,     0,    48,   112,    77,     0,   699,     0,   350,    77,
     2036     628,     0,   112,  1003,     0,   628,   806,     0,   396,     0,
     2037     699,  1090,     0,     0,     0,   704,    48,    48,   415,   416,
     2038    1014,   339,     0,   420,     0,   422,   423,     0,     0,     0,
     2039       0,     0,     0,     0,     0,     0,   213,   353,     0,     0,
     2040       0,    48,     0,  1108,     0,     0,     0,     0,     0,   126,
     2041       0,   126,     0,     0,     0,    79,     0,     0,     0,     0,
     2042       0,     0,     0,     0,     0,     0,     0,     0,   645,     0,
     2043       0,    66,     0,     0,     0,     0,   275,     0,     0,     0,
     2044       0,   353,   353,   353,     0,     0,     0,    79,     0,     0,
     2045       0,     0,     0,   628,   223,     0,     0,  1338,     0,   353,
     2046     259,   713,     0,     0,  1086,  1340,  1341,  1342,     0,     0,
     2047       0,   215,     0,     0,     0,     0,     0,   353,     0,     0,
     2048       0,     0,     0,     0,   224,     0,     0,     0,    74,     0,
     2049    1100,     0,   126,     0,     0,  1108,     0,  1368,   431,   117,
     2050     126,     0,   126,   126,     0,     0,     0,   126,     0,   126,
     2051     126,     0,     0,     0,    74,     0,     0,   353,     0,     0,
     2052       0,    77,     0,     0,     0,     0,     0,     0,  1040,  1386,
    21282053       0,     0,     0,     0,     0,     0,   355,     0,     0,     0,
    2129        0,     0,     0,     0,   355,   355,   355,     0,     0,     0,
    2130        0,     0,     0,   214,     0,   355,   355,     0,     0,     0,
    2131        0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
    2132        0,     0,     0,     0,     0,     0,     0,     0,     0,   213,
     2054       0,    77,     0,     0,     0,     0,     0,     0,     0,    77,
     2055       0,     0,   353,     0,     0,     0,   595,     8,     9,    10,
     2056      11,    12,     0,     0,     0,     0,     0,   355,     0,   429,
     2057       0,   356,     0,     0,   699,   699,     0,   350,   350,   126,
     2058       0,     0,   213,     0,     0,   355,    31,    77,     0,     0,
     2059       0,     0,     0,  1108,     0,     0,   353,  1189,     0,     0,
     2060       0,     0,     0,     0,     0,     0,   353,     0,   353,     0,
     2061       0,     0,     0,   222,    34,     0,   353,     0,     0,    37,
     2062     353,   183,   184,    40,  1482,     0,  1482,     0,     0,   355,
     2063      41,    42,   699,   699,     0,     0,     0,     0,     0,     0,
     2064       0,  1283,     0,     0,     0,     0,     0,     0,     0,  1480,
     2065       0,  1484,     0,     0,     0,     0,   601,   215,   602,     0,
     2066    1482,     0,  1482,     0,    45,    46,    79,     0,     0,     0,
     2067       0,    79,     0,     0,     0,     0,     0,   213,     0,   628,
     2068       0,    74,     0,     0,     0,  1512,     0,  1514,     0,   323,
     2069       0,     0,     0,     0,   355,     0,     0,     0,     0,     0,
     2070       0,     0,     0,   713,     0,     0,     0,     0,     0,    86,
     2071       0,   353,     0,     0,     0,     0,     0,   413,     0,     0,
     2072       0,     0,     0,     0,   421,     0,     0,     0,     0,  1543,
     2073       0,  1544,     0,     0,     0,     0,     0,     0,   355,   355,
     2074     355,    86,     0,     0,  1551,  1552,  1284,     0,     0,     0,
     2075       0,     0,   215,     0,     0,     0,   355,     0,     0,     0,
     2076       0,     0,   796,   797,   259,     0,   224,     0,    66,     0,
     2077       0,     0,     0,     0,   355,     0,     0,     0,   225,     0,
     2078     699,     0,   713,     0,     0,    77,   117,     0,     0,     0,
     2079       0,   830,     0,     0,   833,   834,   413,   837,     0,   839,
     2080     840,     0,     0,     0,   841,   842,     0,     0,     0,     0,
     2081       0,    77,   699,     0,   355,     0,     0,     0,     0,     0,
     2082     699,   699,   699,     0,   353,   353,     0,   353,   353,     0,
     2083       0,   350,   350,    79,     0,     0,     0,     0,     8,     9,
     2084      10,    11,    12,     0,     0,  1189,     0,    74,   356,   355,
     2085       0,   577,     0,    79,     0,     0,     0,     0,     0,   581,
     2086       0,    79,   584,     0,     0,   363,     0,    31,     0,     0,
     2087       0,     0,     0,     0,     0,     0,     0,     0,   117,   356,
     2088       0,     0,   353,   353,   699,     0,   126,   126,     0,     0,
     2089       0,     0,     0,   355,     0,    34,     0,   356,     0,    79,
     2090      37,     0,     0,   355,    40,   355,     0,     0,     0,     0,
     2091     223,    41,    42,   355,     0,   126,     0,   355,   126,   126,
     2092       0,   126,     0,   126,   126,     0,   413,     0,   126,   126,
     2093     421,     0,     0,     0,     0,     0,     0,    43,     0,     0,
     2094       0,   356,   970,   971,     0,    45,    46,     0,     0,     0,
     2095       0,   350,     0,   353,     0,     0,     0,     0,     0,     0,
     2096      86,     0,     0,     0,     0,    86,     0,     0,     0,     0,
     2097       0,     0,     0,     0,     0,     0,   117,     0,    77,     0,
     2098       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2099       0,     0,     0,     0,     0,     0,   222,     0,  1189,     0,
     2100       0,     0,     0,     0,     0,  1189,   356,   413,   355,     0,
     2101       0,     0,     0,     0,     0,     0,     0,     0,    74,     0,
     2102       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2103     353,     0,   353,     0,     0,     0,     0,     0,     0,     0,
     2104       0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
     2105     356,   356,   356,     0,     0,     0,  1189,     0,     0,     0,
     2106     225,     0,   353,  1531,     0,     0,   126,   126,   356,     0,
     2107     353,   353,   353,    31,     0,     0,     0,     0,     0,     0,
     2108       0,   353,   353,     0,     0,     0,   356,     0,     0,     0,
     2109       0,     0,     0,     0,     0,    74,     0,    79,     0,   577,
     2110     577,    34,     0,     0,  1091,     0,    37,     0,   183,   184,
     2111      40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
     2112       0,   355,   355,    79,   355,   355,   356,    86,     0,     0,
     2113       0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
     2114       0,     0,   363,   906,    77,   411,     0,    86,     0,     0,
     2115       0,    45,    46,     0,     0,    86,     0,     0,     0,     0,
     2116       0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2117       0,     0,     0,   363,     0,     0,     0,     0,     0,   355,
     2118     355,     0,     0,     0,     0,     0,   884,     0,     0,     0,
     2119     887,   363,     0,    86,     0,     0,     0,     0,     0,     0,
     2120       0,   353,     0,     0,     0,   356,     0,     0,     0,     0,
     2121       0,     0,     0,     0,     0,   356,     0,   356,     0,     0,
     2122       0,     0,   224,   126,     0,   356,     0,     0,   126,   356,
     2123       0,     0,     0,     0,     0,   363,   167,     0,   172,     0,
     2124       0,   178,   179,   180,     0,   182,     0,     0,    74,     0,
     2125     355,     0,     0,     0,     0,    74,     0,     0,     0,   233,
     2126       0,     0,     0,     0,     0,  1219,     0,     0,     0,     0,
     2127       0,   248,   249,     0,     8,     9,    10,    11,    12,     0,
     2128       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2129      79,     0,     0,   223,     0,     0,     0,     0,     0,     0,
     2130     363,     0,     0,    31,     0,     0,    74,     0,     0,     0,
     2131       0,     0,     0,     0,     0,    77,     0,     0,     0,     0,
     2132     356,     0,   577,     0,     0,     0,     0,   355,     0,   355,
     2133       0,    34,     0,     0,     0,     0,    37,     0,   183,   184,
     2134      40,     0,     0,     0,   363,   363,   363,    41,    42,     0,
     2135       0,     0,     0,     0,     0,     0,     0,     0,     0,   355,
     2136       0,     0,   363,     0,     0,     0,     0,   355,   355,   355,
     2137       0,     0,     0,  1506,     0,   411,     0,     0,   355,   355,
     2138     363,    45,    46,     0,     0,   507,     0,   509,   512,   126,
     2139       0,    86,    77,     0,  1305,   515,   516,     0,     0,     0,
     2140       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2141     509,   509,     0,     0,     0,     0,     0,    86,     0,     0,
     2142     363,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2143       0,   355,     0,   356,   356,     0,   356,   356,     0,     0,
     2144     413,     0,     0,     0,     0,     0,     0,     0,   509,     0,
     2145       0,     0,     0,     0,     0,   363,    79,     8,     9,    10,
     2146      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2147      21,    22,    23,    24,    25,  -293,     0,    26,    27,    28,
     2148       0,     0,     0,     0,   509,     0,    31,     0,     0,     0,
     2149       0,   356,   356,     0,     0,     0,     0,     0,   355,   363,
    21332150       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
    2134        0,     0,     0,   213,     0,     0,     0,     0,     0,     0,
    2135      356,   356,     0,   356,   356,     0,     0,     0,   355,     0,
    2136        0,     0,     0,   499,     0,     0,     0,     0,     0,     0,
    2137        0,     0,     0,    79,  1014,     0,     0,     8,     9,    10,
    2138       11,    12,     0,   363,   363,   363,     0,     0,     0,     0,
    2139        0,     0,     0,     0,     0,     0,     0,     0,   214,     0,
    2140        0,   363,     0,     0,   282,   283,    31,   284,   356,   356,
    2141        0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
    2142        0,     0,     0,     0,     0,   355,     0,     0,     0,     0,
    2143       86,     0,     0,   285,    34,     0,     0,   213,     0,   286,
    2144        0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    2145       41,    42,     0,   292,   293,     0,    86,     0,     0,   363,
    2146        0,     0,     0,     8,     9,    10,    11,    12,     0,     0,
    2147        0,     0,    77,     0,     0,     0,   294,     0,   379,    77,
    2148        0,   356,     0,     0,   344,    46,   296,   297,   298,   299,
    2149        0,     0,    31,     0,   363,     0,     0,     0,     0,     0,
     2151       0,   363,     0,     0,    34,     0,   225,  1143,   126,   363,
     2152       0,    38,    39,   363,     0,  -293,     0,   592,     0,   600,
     2153       0,     0,     0,     0,  1155,     0,     0,     0,     0,     0,
     2154     624,   625,     0,     0,     0,    77,     0,     0,     0,     0,
     2155     282,   283,    77,   284,     0,     0,   635,     0,   338,     0,
     2156       0,     0,   356,     0,    45,    46,     0,     0,     0,     0,
     2157       0,     0,     0,     0,     0,     0,     0,     0,     0,   285,
     2158       0,     0,     0,     0,    86,   286,     0,     0,     0,   287,
     2159       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2160     293,     0,     0,    77,     0,   224,     0,     0,     0,     0,
     2161       0,     0,   413,     0,   363,     0,     0,     0,     0,     0,
     2162       0,     0,   294,     0,   379,     0,     0,    79,     0,     0,
     2163      45,    46,   296,   297,   298,   299,     0,     0,     0,   356,
     2164       0,   356,  1013,   787,     0,     8,     9,    10,    11,    12,
     2165       0,     0,  1243,   509,   509,   509,   509,   509,   509,   509,
     2166     509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
     2167     509,   356,   282,   283,    31,   284,     0,     0,     0,   356,
     2168     356,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2169     356,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2170       0,   285,    34,     0,    79,     0,     0,   286,     0,     0,
     2171       0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2172       0,   292,   293,     0,     0,     0,     0,   363,   363,     0,
     2173     363,   363,     0,     0,     0,     0,     0,     0,     0,     0,
     2174       0,     0,     0,   356,   294,     0,   379,     0,     0,     0,
     2175      86,     0,   344,    46,   296,   297,   298,   299,     0,     0,
     2176       1,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2177      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2178      21,    22,    23,    24,    25,   363,   363,    26,    27,    28,
     2179      29,     0,     0,    30,   282,   283,    31,   284,     0,   509,
    21502180       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2151        0,     0,     0,     0,     0,     0,     0,   927,     0,   928,
    2152       34,     0,     0,     0,   224,    37,   931,   932,     0,    40,
    2153       77,   937,     0,     0,     0,     0,    41,    42,     0,   363,
    2154        0,     0,     0,   942,     0,     0,    79,     0,   946,   363,
    2155        0,   363,     0,     0,     0,     0,   225,     0,   356,   363,
    2156      356,     0,   719,   363,     0,     0,     0,     0,     0,     0,
    2157       45,    46,     0,     0,     0,     0,   980,     0,     0,     0,
     2181     356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2182       0,     0,     0,   285,    34,     0,    35,     0,    36,   286,
     2183       0,    38,    39,   287,   165,     0,   288,   289,   290,   291,
     2184      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2185       0,   218,     0,     0,     0,     0,   363,    79,     0,     0,
     2186     509,     0,     0,     0,    79,     0,   294,     0,  1056,     0,
     2187       0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
     2188       0,     0,     0,   926,     0,   927,     0,     0,     0,  -128,
     2189     509,     0,   930,   931,     0,     0,     0,   936,   165,   225,
     2190       0,     0,   272,     0,     0,     0,     0,     0,     0,   941,
     2191       0,     0,     0,     0,   945,    79,     0,     0,     0,     0,
     2192       0,    86,     0,     0,     0,     0,     0,     0,     0,     0,
     2193       0,   165,     0,   363,     0,   363,     0,     0,     0,     0,
     2194       0,   369,   979,     0,     0,   375,     0,     0,     0,     0,
     2195       0,     0,     0,     0,     0,     0,  1163,     0,     0,     8,
     2196       9,    10,    11,    12,     0,   363,     0,     0,     0,     0,
     2197       0,     0,     0,   363,   363,   363,     0,     0,     0,     0,
     2198       0,     0,     0,     0,   363,   363,   282,   283,    31,   284,
     2199       0,     0,     0,     0,   165,     0,     0,     0,    86,     0,
     2200       0,     0,     0,     0,     0,     0,   218,     0,     0,     0,
     2201     509,     0,     0,     0,     0,   285,    34,     0,     0,     0,
     2202       0,   286,     0,     0,   165,   287,     0,     0,   288,   289,
     2203     290,   291,    41,    42,     0,   292,   293,   363,     0,     0,
     2204       0,  1024,  1025,  1026,  1027,     0,  1029,     0,     0,   375,
     2205       0,     0,     0,     0,     0,   509,   165,     0,   294,     0,
     2206     379,  1073,     0,     0,     0,     0,  1164,    46,   296,   297,
     2207     298,   299,     0,     0,     0,  1079,     0,     0,     0,   524,
    21582208       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2159      356,     0,     0,     0,     0,     0,     0,     0,   356,   356,
    2160      356,     0,     0,     0,     0,     0,     0,     0,     0,   356,
    2161      356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2162        0,     0,     0,    79,    86,     0,     0,     0,     0,     0,
    2163        0,     0,     0,     0,   213,     0,     0,     0,     0,     0,
    2164        0,     0,  1166,     0,     0,     8,     9,    10,    11,    12,
    2165        0,     0,     0,     0,   363,   797,   798,     0,     0,     0,
    2166        0,     0,   356,     0,     0,     0,     0,     0,   165,     0,
    2167        0,     0,   282,   283,    31,   284,  1025,  1026,  1027,  1028,
    2168        0,  1030,     0,     0,   831,   218,     0,   834,   835,     0,
    2169      838,     0,   840,   841,     0,     0,  1074,   842,   843,     0,
    2170        0,   285,    34,     0,     0,     0,     0,   286,     0,     0,
    2171     1080,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2172        0,   292,   293,     0,     0,     0,     0,     0,     0,   356,
    2173        0,     0,   165,     0,     0,     0,   272,     0,     0,     0,
    2174        0,     0,     0,     0,   294,     0,   379,     0,     0,     0,
    2175     1100,     0,  1167,    46,   296,   297,   298,   299,     0,     0,
    2176        0,     0,     0,     0,     0,   165,     0,   363,   363,     0,
    2177      363,   363,     0,     0,     0,   369,    79,     0,     0,   375,
    2178        0,     0,     0,    79,     0,     0,     0,     0,     0,     0,
    2179       86,     0,     0,     0,     0,  1131,     0,     0,     0,     0,
    2180        0,  1140,     0,     0,     0,     0,  1144,     0,     0,     0,
    2181        0,  1148,     0,  1149,     0,     0,     0,  1151,     0,  1152,
    2182     1153,     0,   213,  1156,     0,   363,   363,     0,   165,     0,
    2183        0,     0,  1168,     0,    79,   971,   972,     0,     0,     0,
    2184      218,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2185     1183,  1184,     0,     0,     0,     0,     0,     0,   165,     8,
    2186        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2187       19,    20,    21,    22,    23,    24,    25,  1214,     0,     0,
    2188     1216,     0,     0,   375,     0,     0,     0,     0,    31,     0,
    2189      165,     0,     0,     0,     0,     0,     0,     0,   363,     0,
    2190        0,     0,   126,   126,   126,     0,     0,     0,     0,     0,
    2191        0,     0,     0,   524,     0,     0,    34,   213,     0,     0,
    2192        0,     0,     0,  1230,     0,     0,   165,     0,     0,  1234,
    2193     1235,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2194        0,   225,     0,     0,     0,     0,     0,     0,     0,  1251,
    2195        0,     0,     0,  1253,     0,     0,     0,     0,  1257,     0,
    2196        0,     0,     0,    86,   598,     0,     0,     0,     0,   622,
    2197        0,  1265,     0,     0,   126,   363,   126,   363,     0,     0,
    2198        0,     0,     0,     0,  1272,     0,  1274,  1275,  1276,  1277,
    2199        0,     0,     0,     0,     0,     0,     0,     0,  1092,     0,
    2200        0,   275,  1284,     0,  1285,     0,     0,   363,   172,     0,
    2201        0,     0,     0,     0,     0,   363,   363,   363,     0,     0,
    2202        0,     0,     0,     0,     0,     0,   363,   363,     0,     0,
    2203      211,     0,     0,     0,     0,     0,     0,  1313,  1314,   231,
    2204       86,   235,     0,   237,     0,   165,   165,     0,     0,     0,
    2205      246,     0,   369,     0,     0,     0,     0,   126,     0,     0,
    2206        0,     0,     0,     0,     0,   126,     0,   126,   126,     0,
    2207        0,     0,   126,   524,   126,   126,     0,     0,     0,   363,
    2208        0,   211,     0,   235,   237,   246,     0,  1346,  1347,     0,
    2209        0,     0,     0,     0,     0,     0,     0,  1357,     0,     0,
    2210        0,   716,     0,     0,     0,     0,     0,     0,     0,     0,
    2211        0,     0,     0,   165,     0,     0,     0,     0,     0,     0,
    2212        0,     0,     0,     0,   211,   524,     0,   524,     0,     0,
    2213      524,     0,   165,   524,     0,     0,     0,     0,     0,     0,
    2214        0,     0,     0,     0,   126,   369,   363,     0,     0,     0,
    2215        0,     0,     0,     0,     0,     0,     0,     0,  1392,  1222,
    2216     1393,  1394,  1395,     0,     0,     0,     0,     0,     0,     0,
    2217        0,     0,  1399,     0,     0,     0,     0,     0,     0,     0,
    2218        0,  1410,     0,     0,     0,   211,     0,   235,   237,   246,
    2219        0,     0,     0,    86,     0,     0,     0,     0,   165,     0,
    2220       86,     0,     0,     0,     0,     0,  1431,     0,     0,     0,
    2221      369,     0,     0,     0,   812,     0,     0,     0,     0,     0,
    2222        0,     0,     0,   211,     0,     0,     0,     0,   211,     0,
    2223        0,     0,     0,     0,   156,     0,     0,     0,     0,     0,
    2224      598,     0,     0,   497,     0,   598,     0,     0,     0,  1469,
    2225     1470,    86,     0,     0,   369,   369,   369,     0,     0,     0,
    2226        0,     0,  1475,     0,     0,     0,     0,     0,     0,  1475,
    2227        0,     0,   369,     0,     0,     0,     0,     0,     0,     0,
    2228        0,   251,     0,     0,     0,     0,     0,     0,     0,     0,
    2229     1308,   256,   211,     0,     0,     0,     0,     0,     0,     0,
    2230        0,  1508,     0,     0,   524,  1514,     0,     0,     0,     0,
    2231        0,     0,     0,     0,   211,     0,     0,     0,     0,   235,
    2232      237,     0,     0,     0,     0,     0,     0,   246,     0,     0,
    2233      369,     0,   936,  1536,     0,  1537,     0,     0,     0,     0,
    2234        0,     0,     0,     0,     0,     0,     0,   156,     0,     0,
     2209     509,     0,   165,     0,     0,     0,     0,     0,     0,   211,
     2210       0,     0,     0,   509,   363,     0,     0,     0,   231,     0,
     2211     235,     0,   237,     0,     0,  1099,     0,     0,     0,   246,
    22352212       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2236        0,   386,     0,  1552,  1553,   716,     0,     0,     0,     0,
    2237      211,  1556,  1557,     0,     0,     0,     0,     0,     0,     0,
    2238        0,     0,     0,     0,   418,     0,     0,     0,   211,   282,
    2239      283,     0,   284,   211,     0,   211,     0,     0,   433,     0,
    2240        0,     0,     0,     0,     0,     0,     0,   438,     0,     0,
    2241        0,     0,   211,     0,     0,   211,   211,   446,   285,     0,
    2242        0,     0,   369,   211,   286,     0,   622,     0,   287,     0,
    2243      369,   288,   289,   290,   291,    41,    42,   211,   292,   293,
    2244        0,     0,   464,     0,   211,     0,     0,   474,     0,     0,
    2245        0,   126,   126,     0,     0,     0,     0,     0,     0,     0,
    2246      482,   294,     0,   379,     0,     0,   492,     0,   496,    45,
    2247       46,   296,   297,   298,   299,     0,     0,     0,     0,     0,
    2248      126,     0,   788,   126,   126,   526,   126,     0,   126,   126,
    2249        0,     0,     0,   126,   126,     8,     9,    10,    11,    12,
     2213     598,     0,     0,     0,     0,   622,     0,     0,     0,     0,
     2214       0,     0,     0,     0,   509,     0,     0,     0,     0,     0,
     2215     211,    86,   235,   237,   246,     0,     0,     0,    86,     0,
     2216    1130,     0,     0,     0,     0,     0,  1137,     0,     0,     0,
     2217       0,  1141,     0,     0,     0,     0,  1145,     0,  1146,     0,
     2218       0,     0,  1148,     0,  1149,  1150,     0,     0,  1153,     0,
     2219       0,     0,     0,   211,     0,     0,     0,  1165,     0,     0,
     2220       0,     0,     0,     0,     0,     0,     0,     0,     0,    86,
     2221       0,   165,   165,     0,     0,  1180,  1181,     0,   369,     0,
     2222       0,   509,     0,     0,     0,     0,     0,     0,     0,     0,
     2223       0,     0,     0,     0,     0,     0,     0,     0,     0,   524,
     2224       0,     0,  1211,     0,     0,  1213,     0,     0,     0,     0,
     2225       0,     0,     0,     0,   211,     0,   235,   237,   246,     0,
     2226       0,     0,     0,     0,     0,     0,     0,   716,     0,     0,
     2227       0,     8,     9,    10,    11,    12,     0,     0,     0,   165,
     2228       0,   509,   509,     0,     0,     0,     0,     0,  1227,     0,
     2229       0,   524,   211,   524,  1231,  1232,   524,   211,   165,   524,
     2230      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2231       0,   369,   497,     0,  1248,     0,     0,  1252,     0,     0,
     2232       0,  1254,     0,     0,     0,     0,     0,     0,    34,     0,
     2233       0,     0,     0,    37,  1262,   183,   184,    40,     0,     0,
     2234       0,     0,     0,     0,    41,    42,     0,  1269,     0,  1271,
     2235    1272,  1273,  1274,     0,     0,     0,     0,     0,     0,     0,
     2236       0,   211,     0,     0,   165,  1281,     0,  1282,     0,     0,
     2237     185,   172,     0,     0,     0,     0,   369,     0,    45,    46,
     2238     811,     0,     0,   211,     0,     0,     0,     0,   235,   237,
     2239       0,     0,     0,     0,     0,     0,   246,     0,     0,     0,
     2240    1310,  1311,     0,     0,     0,     0,   598,     0,     0,     0,
     2241       0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
     2242     369,   369,   369,     0,     0,     0,     0,     0,     0,     0,
     2243       0,     0,     0,     0,     0,     0,     0,     0,   369,   211,
     2244       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2245    1343,  1344,     0,     0,     0,     0,     0,   211,     0,     0,
     2246    1354,     0,   211,     0,   211,     0,     0,     0,     0,     0,
     2247     524,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2248       0,   211,     0,     0,   211,   211,   509,     0,     0,     0,
     2249       0,     0,   211,     0,     0,     0,   369,     0,   935,     0,
     2250       0,     0,   509,     0,     0,     0,   211,     0,     0,     0,
     2251       0,     0,     0,   211,     0,     0,     0,     0,     0,     0,
     2252       0,  1389,     0,  1390,  1391,  1392,     0,     0,     0,     0,
     2253       0,   716,     0,     0,     0,  1396,   156,     0,     0,     0,
     2254       0,     0,     0,     0,  1407,     8,     9,    10,    11,    12,
    22502255      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2251       23,    24,    25,  -296,     0,     0,     0,     0,     0,     0,
    2252        0,     0,     0,     0,    31,   716,     0,     0,   586,     0,
    2253        0,     0,     0,   591,     0,     0,     0,     0,     0,     0,
    2254      524,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2255        0,     0,    34,     0,     0,     0,     0,     0,     0,   211,
    2256        0,     0,   636,  -296,   165,     0,   637,   638,     0,   640,
    2257        0,     0,     0,     0,     0,     0,   651,   652,     0,   653,
    2258      654,     0,   655,     0,   656,     0,     0,   211,     0,     0,
    2259        0,     0,   211,     0,     0,     0,     0,     0,     0,     0,
    2260        0,   586,     0,     0,   282,   283,     0,   284,     0,   671,
     2256      23,    24,    25,     0,     0,    26,    27,    28,     0,  1428,
     2257       0,     0,   509,   509,    31,     0,     0,     8,     9,    10,
     2258      11,    12,     0,   251,     0,     0,     0,   369,     0,     0,
     2259       0,   622,     0,   256,     0,   369,     0,     0,     0,     0,
     2260       0,     0,    34,     0,     0,     0,    31,    37,     0,    38,
     2261      39,    40,  1466,  1467,     0,     0,     0,     0,    41,    42,
     2262       0,     0,     0,     0,     0,  1472,     0,     0,   211,     0,
     2263       0,     0,  1472,     0,    34,     0,     0,     0,     0,    37,
     2264       0,   183,   184,    40,    43,     0,   157,     0,     0,   156,
     2265      41,    42,    45,    46,     0,     0,   211,     0,     0,     0,
     2266       0,   211,     0,   386,  1505,     0,     0,     0,  1511,     0,
     2267       0,     0,     0,     0,     0,     0,   265,     0,     0,     0,
     2268       0,     0,     0,     0,    45,    46,   418,     0,     0,     0,
     2269     716,     0,     0,     0,     0,     0,  1533,     0,  1534,     0,
     2270     433,     0,     0,     0,     0,   524,     0,     0,     0,   438,
     2271       0,     0,     0,     0,     0,     0,     0,     0,     0,   446,
     2272       0,     0,     0,     0,     0,     0,  1549,  1550,     0,   165,
     2273       0,     0,   211,     0,  1553,  1554,     0,     0,     0,     0,
     2274       0,     0,     0,     0,   464,     0,   211,     0,     0,   474,
    22612275       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2262      598,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2263        0,   126,   126,   285,   682,     0,     0,     0,     0,   286,
    2264        0,   369,   369,   287,     0,     0,   288,   289,   290,   291,
    2265       41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    2266      708,     0,     0,   211,     0,     0,   711,     0,     0,     0,
    2267        0,   464,     0,     0,     0,     0,   294,   211,   379,     0,
    2268        0,   380,     0,     0,    45,    46,   296,   297,   298,   299,
    2269        0,     0,     0,     0,     0,     0,     0,   497,     0,     0,
    2270        0,   524,     0,     0,     0,     0,     0,   746,     0,     0,
     2276       0,     0,   482,     0,     0,     0,   497,     0,   492,     0,
     2277     496,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2278       0,     0,     0,     0,     0,   598,     0,   526,     8,     9,
     2279      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2280      20,    21,    22,    23,    24,    25,   369,   369,    26,    27,
     2281      28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
     2282       0,     0,     0,     0,     0,     0,     0,   211,     0,     0,
     2283     586,     0,     0,     0,     0,   591,     0,     0,     0,   211,
     2284       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2285      37,     0,    38,    39,    40,     0,     0,     0,   211,     0,
     2286       0,    41,    42,     0,   636,     0,   524,     0,   637,   638,
     2287       0,   640,     0,     0,     0,     0,     0,     0,   651,   652,
     2288       0,   653,   654,     0,   655,     0,   656,    43,     0,    44,
     2289       0,     0,     0,     0,     0,    45,    46,     0,     0,     0,
     2290       0,     0,     0,   586,     0,     0,     0,     0,     0,     0,
     2291       0,   671,     0,     0,     0,     0,     0,     0,     0,   341,
     2292     364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2293       0,     0,   716,     0,     0,     0,   682,     0,     0,     0,
     2294       0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     2295      12,     0,     0,   414,     0,     0,     0,     0,     0,     0,
     2296     414,     0,   708,     0,     0,     0,     0,     0,   711,     0,
     2297       0,   211,     0,   464,   218,    31,     8,     9,    10,    11,
     2298      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2299      22,    23,    24,    25,  -293,     0,    26,    27,    28,     0,
     2300       0,   211,     0,    34,     0,    31,     0,     0,    37,   746,
     2301       0,   716,    40,     0,     0,     0,     0,     0,     0,    41,
     2302      42,     0,     0,     0,   764,     0,     0,     0,     0,     0,
     2303       0,     0,   414,    34,     0,     0,   211,     0,    37,     0,
     2304     336,   337,    40,     0,  -293,   719,     0,   211,     0,    41,
     2305      42,     0,     0,    45,    46,     0,     0,     0,     0,     0,
     2306     369,   369,     0,   790,     0,     0,     0,     0,     0,   218,
     2307       0,     0,   800,     0,     0,   635,     0,   338,   321,   802,
     2308       0,     0,     0,    45,    46,   810,     0,   414,   346,     0,
     2309       0,     0,     0,     0,   824,   414,   582,     0,   414,   585,
     2310     382,   382,     0,     0,     0,     0,     0,     0,     0,   364,
     2311       0,     0,     0,   614,     0,     0,     0,     0,     0,   211,
    22712312       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2272        0,     0,   764,     0,  -519,     0,     0,     1,     2,     3,
     2313       0,     0,   632,   211,   864,   341,   205,     2,   206,     4,
     2314       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2315      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2316      25,     0,   414,    26,    27,    28,   414,     0,     0,     0,
     2317     810,   321,    31,     0,     0,     0,     0,     0,   905,     0,
     2318     369,     0,   282,   283,     0,   284,     0,     0,     0,     0,
     2319       0,     0,     0,     0,     0,   478,     0,   364,     0,     0,
     2320      34,     0,    35,     0,    36,     0,     0,   207,    39,   251,
     2321       0,   285,     0,     0,     0,     0,     0,   286,     0,   942,
     2322     943,   287,   211,     0,   288,   289,   290,   291,    41,    42,
     2323       0,   292,   293,     0,     0,     0,   524,     0,   524,     0,
     2324       0,     0,     0,   414,   208,     0,   364,     0,     0,     0,
     2325      45,    46,   980,     0,   294,     0,   379,   984,     0,   380,
     2326       0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
     2327       0,     0,   524,     0,   524,     0,     0,     0,     0,     0,
     2328       0,     0,     0,     0,     0,   414,     0,     0,     0,   341,
     2329     364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2330       0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
     2331       0,     0,   382,     0,     0,     0,     0,   211,     0,     0,
     2332       0,  1018,     0,     0,     0,     0,     0,     0,  1019,     0,
     2333       0,     0,     0,     0,     0,   414,   414,     0,     0,     0,
     2334       0,  1021,     0,  1022,     0,     0,     0,     0,     0,     0,
     2335       0,     0,     0,     0,   804,   364,     0,  1034,     0,     0,
     2336       0,     0,     0,  1038,     0,   614,     0,   614,   614,     0,
     2337       0,     0,     0,     0,   614,  1076,     0,     0,  1077,     0,
     2338       0,     0,     0,     0,   843,   364,     0,     0,     0,     0,
     2339     364,     0,     0,     0,     0,     0,     0,     0,     0,   364,
     2340     364,   364,     0,     0,     0,     0,   710,     0,     0,     0,
     2341       0,     0,     0,     0,     0,     0,     0,   364,     0,     0,
     2342       0,     0,   414,   885,     0,     0,   414,   888,     0,     0,
     2343       0,     0,     0,   890,     0,     0,     0,     0,     0,     0,
     2344       0,     0,     0,     0,     0,   742,     0,     0,     0,     0,
     2345       0,     0,   414,     0,     0,   591,     0,     0,   759,     0,
     2346       0,     0,     0,   742,     0,     0,   742,     0,     0,     0,
     2347       0,     0,     0,     0,     0,   364,   614,     0,     0,   768,
     2348       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2349    1147,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2350       0,   789,     0,     0,     0,     0,     0,     0,     0,   341,
     2351     364,   798,     0,     0,   414,   414,     0,     0,   346,     0,
     2352       0,     0,     0,   759,     0,     0,     0,     0,     0,     0,
     2353       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2354      18,    19,    20,    21,    22,    23,    24,    25,   526,     0,
     2355      26,    27,    28,     0,  1212,     0,     0,     0,   414,    31,
     2356       0,     0,     0,     0,   211,     0,   364,     0,     0,     0,
     2357       0,     0,   863,   804,   364,     0,     0,   614,     0,   614,
     2358     382,     0,     0,     0,     0,     0,     0,    34,  1224,   614,
     2359       0,     0,    37,  1226,   207,    39,    40,     0,     0,     0,
     2360       0,  1230,     0,    41,    42,     0,     8,     9,    10,    11,
     2361      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2362      22,    23,    24,    25,  -293,     0,     0,     0,     0,    43,
     2363       0,   270,     0,     0,  1256,    31,     0,    45,    46,     0,
     2364       0,     0,     0,     0,     0,     0,  1264,     0,     0,  1265,
     2365       0,  1266,     0,     0,     0,     0,     0,     0,     0,     0,
     2366       0,   804,     0,    34,     0,  1275,  1276,     0,   341,   364,
     2367     414,     0,   414,     0,  -293,     0,   414,     0,   759,     0,
     2368     964,     0,     0,     0,     0,     0,     0,  1289,     0,     0,
     2369     975,     0,     0,     0,     0,     0,   983,   614,   614,     0,
     2370       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2371      18,    19,    20,    21,    22,    23,    24,    25,  -294,     0,
     2372       0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
     2373       0,     0,   414,     0,  1328,     0,     0,     0,  1001,  1002,
     2374       0,     0,   346,     0,     0,     0,     0,     0,   282,   283,
     2375       0,   284,     0,   414,  1144,     0,   346,    34,     0,     0,
     2376       0,     0,     0,     0,   364,     0,     0,     0,  -294,     0,
     2377     414,  1156,     0,   614,   614,  1161,     0,   285,     0,     0,
     2378       0,     0,     0,   286,     0,   364,   364,   287,     0,     0,
     2379     288,   289,   290,   291,    41,    42,  1032,   292,   293,     0,
     2380     382,     0,     0,     0,     0,     0,     0,     0,     0,  1378,
     2381       0,  1379,     0,     0,     0,     0,     0,     0,     0,     0,
     2382     294,     0,   379,  1387,     0,  1388,     0,   758,    45,    46,
     2383     296,   297,   298,   299,     0,     0,     0,   346,     0,     0,
     2384       0,     0,  1395,     0,     0,     0,     0,     0,   414,     0,
     2385     414,     0,     0,     0,     0,   414,     0,     0,  1413,  1415,
     2386       0,     0,     0,     0,   614,     0,     0,     0,     0,  1420,
     2387       0,     0,  1230,     0,     0,     0,   321,     0,     0,     0,
     2388       0,     0,     0,     0,     0,     0,     0,   804,   414,  1244,
     2389       0,     0,     0,  1442,     0,     0,     0,     0,     0,     0,
     2390       0,     0,  1449,     0,   382,  1451,     0,  1453,  1455,  1457,
     2391     975,   364,     0,     0,   742,   282,   283,     0,   284,     0,
     2392       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2393       0,     0,     0,     0,     0,  1151,     0,     0,     0,     0,
     2394       0,     0,     0,     0,   285,     0,  1166,  1487,     0,  1489,
     2395     641,  1230,   139,   140,   287,     0,     0,   288,   289,   290,
     2396     291,    41,    42,     0,   292,   293,  1500,     0,   382,     0,
     2397    1184,     0,   341,     0,     0,     0,     0,     0,     0,     0,
     2398       0,     0,     0,     0,     0,   975,   975,   294,     0,   642,
     2399     364,   643,   380,     0,     0,    45,    46,   296,   297,   298,
     2400     299,     0,     0,     0,     0,     0,  1216,     0,     0,     0,
     2401       0,     0,     0,     0,     1,     2,   206,     4,     5,     6,
     2402       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2403      17,    18,    19,    20,    21,    22,    23,    24,    25,   364,
     2404     364,    26,    27,    28,    29,     0,     0,    30,     0,     0,
     2405      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2406       0,   975,     0,     0,     0,     0,     0,     0,     0,     0,
     2407       0,     0,     0,     0,     0,     0,     0,     0,    34,   863,
     2408      35,     0,    36,     0,     0,    38,    39,     0,     0,     0,
     2409       0,     0,     0,     0,  1267,  1268,     0,     1,     2,   206,
    22732410       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    22742411      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2275       24,    25,     0,     0,    26,    27,    28,    29,     0,   211,
    2276       30,   791,     0,    31,    32,     0,     0,     0,     0,   716,
    2277      801,   211,     0,     0,     0,     0,     0,   803,     0,     0,
    2278        0,     0,     0,   811,     0,     0,     0,     0,    33,   126,
    2279      211,    34,   825,    35,   126,    36,    37,     0,    38,    39,
    2280       40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
    2281        0,   218,     0,     0,     0,     0,     0,     0,     0,     0,
    2282        0,     0,     0,     0,     0,   341,   364,     0,     0,     0,
    2283        0,     0,   865,    43,     0,    44,     0,     0,     0,     0,
    2284        0,    45,    46,     0,     0,     0,     0,     0,   716,     0,
    2285        0,     0,     0,     0,     0,     0,     0,     0,     0,   414,
    2286        0,     0,     0,     0,     0,     0,   414,     0,   811,     0,
    2287        0,     0,     0,     0,     0,     0,   906,     0,     0,     8,
    2288        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2289       19,    20,    21,    22,    23,    24,    25,   369,   369,    26,
    2290       27,    28,     0,   211,     0,     0,   218,   251,    31,     0,
    2291        0,     0,     0,     0,     0,     0,     0,   943,   944,     0,
     2412      24,    25,    44,     0,    26,    27,    28,    29,    45,    46,
     2413      30,   282,   283,    31,  1041,  1042,     0,  1043,     0,     0,
     2414    1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,
     2415       0,  1052,     0,     0,     0,  1053,  1054,     0,    33,   364,
     2416     285,    34,     0,    35,     0,    36,  1055,     0,    38,    39,
     2417     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2418     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    22922419       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2293        0,     0,     0,   211,     0,     0,    34,     0,   414,     0,
    2294        0,    37,     0,    38,    39,    40,     0,     0,     0,     0,
    2295      981,     0,    41,    42,     0,   126,   985,     0,     0,     0,
    2296        0,     0,     0,     0,     0,     0,     0,     0,   211,     0,
    2297        0,     0,     0,     0,     0,     0,     0,     0,    43,   211,
    2298      157,     0,     0,     0,     0,     0,    45,    46,     0,     0,
    2299        0,     0,     0,   414,     0,     0,     0,     0,     0,     0,
    2300        0,   414,   582,     0,   414,   585,     0,     0,     0,     0,
    2301        0,     0,     0,     0,     0,   364,     0,   369,     0,   614,
    2302     1019,     0,     0,     0,     0,     0,     0,  1020,     0,     0,
    2303        0,     0,     0,     0,     0,     0,     0,     0,   632,     0,
    2304     1022,   341,  1023,     0,     0,     0,     0,     0,     0,     0,
    2305        0,   211,     0,     0,     0,     0,  1035,     0,     0,     0,
    2306        0,     0,  1039,     0,     0,   211,     0,     0,   414,     0,
    2307        0,     0,   414,   524,  1077,   524,     0,  1078,     0,     0,
    2308        0,     0,     0,     0,     0,     0,   126,     0,     0,     0,
     2420       0,     0,     0,   294,     0,  1056,     0,     0,   171,     0,
     2421       0,    45,    46,   296,   297,   298,   299,     0,     0,     0,
     2422       0,  1057,     0,     0,     0,     0,  -128,     0,     0,     0,
     2423       0,     0,     0,     0,     0,  1372,     0,     0,   742,     0,
     2424       0,     0,     0,     0,     0,     0,   414,     0,     0,     0,
    23092425       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2310        0,     0,     0,   364,     0,     0,     0,     0,     0,   524,
    2311        0,   524,     0,     0,     0,     0,     0,     0,     0,     0,
    2312        0,     0,   507,     0,   509,   512,     0,     0,     0,     0,
    2313        0,     0,   515,   516,     0,     0,     0,     0,   165,     0,
    2314        0,     0,     0,     0,     0,     0,     0,   509,   509,   414,
    2315        0,     0,   364,     0,   591,     0,   211,     0,     0,     0,
    2316        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2317       17,    18,    19,    20,    21,    22,    23,    24,    25,  -296,
    2318        0,    26,    27,    28,     0,   509,     0,     0,     0,  1150,
    2319       31,   414,     0,     0,     0,   341,   364,     0,     0,     0,
    23202426       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2321        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2322        0,   509,     0,    37,     0,   336,   337,    40,     0,  -296,
    2323        0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
    2324        0,   414,   414,     0,     0,     0,     0,   526,     0,     0,
    2325        0,   211,     0,  1215,     0,     0,   321,     0,     0,     0,
    2326      805,   364,   338,     0,     0,     0,   346,     0,    45,    46,
    2327        0,   614,     0,   614,   614,     0,     0,     0,   382,   382,
    2328      614,     0,     0,     0,     0,     0,     0,  1227,     0,     0,
    2329      844,   364,  1229,     0,     0,     0,   364,     0,     0,     0,
    2330     1233,     0,     0,     0,     0,   364,   364,   364,     0,     0,
     2427     414,   414,     0,     0,     0,     0,     0,     0,     0,     0,
    23312428       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2332        0,     0,     0,   364,     0,     0,     0,     0,   414,   886,
    2333        0,     0,   414,   889,     0,  1259,     0,     0,     0,   891,
    2334        0,     0,     0,     0,     0,     0,     0,  1267,     0,   321,
    2335     1268,     0,  1269,     0,     0,     0,     0,     0,   414,     0,
    2336        0,     0,     0,     0,     0,     0,  1278,  1279,     0,     0,
    2337        0,     0,     0,   478,     0,     0,     0,     0,     0,     0,
    2338        0,   364,   614,     0,     0,     0,     0,     0,  1292,     0,
    2339      509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
    2340      509,   509,   509,   509,   509,   509,   509,   509,     0,     0,
    2341        0,     0,     0,     0,     0,   341,   364,     0,     0,     0,
    2342      414,   414,     0,     0,     0,     0,     0,     0,     0,     0,
    2343        0,     0,     0,     0,     0,  1331,     0,     0,     0,     0,
    2344        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2345       18,    19,    20,    21,    22,    23,    24,    25,  -296,     0,
    2346       26,    27,    28,     0,     0,   414,     0,     0,     0,    31,
    2347        0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
    2348      805,   364,     0,     0,   614,     0,   614,     0,     0,     0,
    2349      382,     0,     0,     0,     0,     0,   614,    34,   211,     0,
    2350        0,     0,    37,     0,   336,   337,    40,     0,  -296,     0,
    2351     1381,     0,  1382,    41,    42,     0,     0,     0,     0,     0,
    2352        0,     0,     0,     0,     0,     0,  1390,     0,  1391,     0,
    2353        0,     0,     0,     0,     0,     0,   509,     0,     0,   635,
    2354        0,   338,     0,  1398,     0,     0,     0,    45,    46,     0,
    2355        0,     0,     0,     0,     0,     0,     0,     0,     0,  1416,
    2356     1418,     0,     0,     0,     0,     0,     0,     0,   805,     0,
    2357     1423,     0,     0,  1233,     0,   341,   364,   414,     0,   414,
    2358        0,     0,     0,   414,   710,     0,     0,     0,     0,     0,
    2359        0,     0,     0,     0,  1445,     0,     0,   509,     0,     0,
    2360        0,     0,     0,  1452,   614,   614,  1454,     0,  1456,  1458,
    2361     1460,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2362        0,     0,     0,   742,     0,     0,     0,     0,   509,     0,
    2363        0,     0,     0,     0,     0,     0,   759,     0,     0,   414,
    2364        0,   742,     0,     0,   742,     0,     0,     0,  1490,     0,
    2365     1492,     0,  1233,     0,     0,     0,     0,   769,     0,     0,
    2366      414,  1147,     0,     0,     0,     0,     0,  1503,     0,     0,
    2367        0,   364,     0,     0,     0,     0,     0,   414,  1159,   790,
    2368      614,   614,  1164,     0,     0,     0,     0,     0,     0,   799,
    2369        0,     0,   364,   364,     0,     0,   346,     0,     0,     0,
    2370        0,   759,     0,     0,     1,     2,     3,     4,     5,     6,
     2429       0,     0,     0,     0,     0,   414,     1,     2,   206,     4,
     2430       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2431      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2432      25,     0,     0,    26,    27,    28,    29,     0,     0,    30,
     2433     282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
     2434      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2435      24,    25,     0,     0,    26,    27,    28,     0,     0,   285,
     2436      34,     0,    35,    31,    36,   286,     0,    38,    39,   287,
     2437       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2438     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2439       0,    34,     0,     0,     0,     0,   110,     0,    38,    39,
     2440       0,     0,   294,     0,    44,     0,     0,    41,    42,     0,
     2441      45,    46,   296,   297,   298,   299,     2,   206,     4,     5,
     2442       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2443      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2444       0,     0,    26,    27,    28,     0,     0,     0,   321,   282,
     2445     283,    31,   284,     8,     9,    10,    11,    12,    13,    14,
     2446      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2447      25,     0,     0,    26,    27,    28,     0,     0,   285,    34,
     2448       0,    35,    31,    36,   286,     0,    38,    39,   287,     0,
     2449       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
     2450       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2451      34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
     2452       0,   294,     0,   343,     0,     0,     0,     0,   758,   344,
     2453      46,   296,   297,   298,   299,     2,   206,     4,     5,     6,
    23712454       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    23722455      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2373        0,    26,    27,    28,    29,     0,     0,    30,     0,     0,
    2374       31,    32,     0,     0,     0,     0,     0,     0,   509,     0,
    2375      864,     0,     0,     0,     0,   414,     0,   414,   382,     0,
    2376        0,     0,   414,     0,     0,    33,     0,     0,    34,     0,
    2377       35,   614,    36,    37,     0,    38,    39,    40,     0,     0,
    2378        0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
    2379        0,     0,     0,   509,   805,   414,  1247,     0,     0,     0,
    2380        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2381       43,     0,    44,     0,     0,     0,  -523,     0,    45,    46,
    2382      364,     0,     0,     0,     0,     0,     0,     0,   509,     0,
    2383        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2384        0,   509,     0,     0,     0,     0,     0,     0,   282,   283,
    2385        0,   284,     0,     0,     0,     0,   759,     0,   965,     0,
    2386        0,     0,     0,     0,     0,     0,     0,     0,   976,     0,
    2387        0,     0,     0,     0,   984,     0,     0,   285,     0,     0,
    2388        0,   341,   509,   641,     0,   139,   140,   287,     0,     0,
    2389      288,   289,   290,   291,    41,    42,     0,   292,   293,   364,
    2390        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2391        0,     0,     0,     0,     0,     0,     0,  1002,  1003,     0,
    2392      294,   346,   642,     0,   643,   380,     0,     0,    45,    46,
    2393      296,   297,   298,   299,     0,   346,     0,     0,     0,     0,
    2394        0,     0,     0,     0,     0,     0,     0,     0,   364,   364,
    2395        0,     0,     0,     0,     0,     0,     0,     0,     0,   509,
    2396        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2397        0,     0,     0,     0,     0,  1033,     0,     0,     0,   382,
    2398        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2399        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
    2400       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2401       21,    22,    23,    24,    25,     0,   346,    26,    27,    28,
    2402       29,   509,   509,    30,     0,     0,    31,    32,     0,     0,
    2403        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2404        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2405        0,    33,     0,     0,    34,   321,    35,     0,    36,    37,
    2406        0,    38,    39,    40,     0,     0,     0,     0,   364,     0,
    2407       41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
    2408        0,     0,     0,   382,     0,     0,     0,   282,   283,   976,
    2409      284,     0,     0,   742,     0,     0,    43,     0,    44,     0,
    2410        0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
    2411        0,     0,     0,     0,  1154,     0,   285,     0,     0,     0,
    2412        0,     0,   286,     0,     0,  1169,   287,     0,     0,   288,
    2413      289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    2414        0,     0,     0,     0,     0,     0,     0,   382,     0,  1187,
    2415        0,     0,     0,   282,   283,   414,   284,     0,     0,   294,
    2416        0,   379,     0,     0,   976,   976,   758,    45,    46,   296,
    2417      297,   298,   299,     0,     0,     0,     0,     0,     0,   414,
    2418      414,     0,   285,     0,     0,  1219,     0,     0,   286,     0,
    2419        0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    2420       42,     0,   292,   293,   414,     0,     0,     0,     0,     0,
    2421        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2422        0,     0,     0,     0,     0,   294,   509,   379,     0,     0,
    2423      973,     0,     0,    45,    46,   296,   297,   298,   299,     0,
    2424      976,     0,   509,     0,     0,     0,     0,     0,     0,     0,
    2425        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2426      864,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2427        0,     0,     0,     0,     0,  1270,  1271,     0,     0,     0,
    2428        0,     1,     2,   206,     4,     5,     6,     7,     8,     9,
    2429       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2430       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2431       28,    29,   509,   509,    30,   282,   283,    31,  1042,  1043,
    2432        0,  1044,     0,     0,  1045,  1046,  1047,  1048,  1049,  1050,
    2433     1051,  1052,     0,     0,     0,  1053,     0,     0,     0,  1054,
    2434     1055,     0,    33,     0,   285,    34,     0,    35,     0,    36,
    2435     1056,     0,    38,    39,   287,     0,     0,   288,   289,   290,
    2436      291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    2437        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2438        0,     0,     0,     0,     0,     0,     0,   294,     0,  1057,
    2439        0,     0,   171,     0,     0,    45,    46,   296,   297,   298,
    2440      299,     0,     0,     0,     0,  1058,     0,     0,     0,     0,
    2441     -131,     0,     0,     0,     0,     0,  1375,     0,     0,   742,
    2442        1,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    2443       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2444       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2445       29,     0,     0,    30,   282,   283,    31,   284,     8,     9,
    2446       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2447       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2448       28,     0,     0,   285,    34,     0,    35,    31,    36,   286,
    2449        0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
    2450       41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    2451        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2452      110,     0,    38,    39,     0,     0,   294,     0,  1057,     0,
    2453        0,    41,    42,     0,    45,    46,   296,   297,   298,   299,
    2454        0,     0,     0,     0,     0,     0,     0,     0,     0,  -131,
    2455        0,     0,     0,     0,     1,     2,   206,     4,     5,     6,
    2456        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2457       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2458        0,    26,    27,    28,    29,     0,     0,    30,   282,   283,
    2459       31,   284,     0,     0,     0,     8,     9,    10,    11,    12,
    2460       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2461       23,    24,    25,  -297,     0,     0,     0,   285,    34,     0,
    2462       35,     0,    36,   286,    31,    38,    39,   287,     0,   321,
     2456       0,    26,    27,    28,     0,     0,     0,     0,   282,   283,
     2457      31,   284,     8,     9,    10,    11,    12,    13,    14,    15,
     2458      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2459       0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
     2460      35,    31,    36,   286,     0,    38,    39,   287,     0,     0,
    24632461     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    2464        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2465        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
    2466      294,     0,    44,  -297,     0,     0,     0,     0,    45,    46,
     2462       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2463       0,     0,     0,     0,     0,     0,   207,    39,     0,     0,
     2464     294,     0,   963,     0,     0,     0,     0,   758,   344,    46,
    24672465     296,   297,   298,   299,     2,   206,     4,     5,     6,     7,
    24682466       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     
    24712469     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    24722470      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2473        0,    26,    27,    28,     0,     0,   285,    34,     0,    35,
     2471       0,     0,     0,     0,     0,     0,   285,    34,     0,    35,
    24742472      31,    36,   286,     0,    38,    39,   287,     0,     0,   288,
    24752473     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    24762474       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2477        0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
    2478        0,   343,     0,     0,     0,     0,   758,   344,    46,   296,
     2475       0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
     2476       0,   963,     0,     0,     0,     0,   758,    45,    46,   296,
    24792477     297,   298,   299,     2,   206,     4,     5,     6,     7,     8,
    24802478       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    24812479      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    24822480      27,    28,     0,     0,     0,     0,   282,   283,    31,   284,
    2483        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2484       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2485       26,    27,    28,     0,     0,   285,    34,     0,    35,    31,
     2481       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2482       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2483       0,     0,     0,     0,     0,   285,    34,     0,    35,     0,
    24862484      36,   286,     0,    38,    39,   287,     0,     0,   288,   289,
    24872485     290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
    2488        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
    2489        0,     0,     0,     0,   207,    39,     0,     0,   294,     0,
    2490      964,     0,     0,     0,     0,   758,   344,    46,   296,   297,
     2486       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2487       0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
     2488     343,     0,     0,     0,     0,     0,   344,    46,   296,   297,
    24912489     298,   299,     2,   206,     4,     5,     6,     7,     8,     9,
    24922490      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     
    24962494       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24972495       0,     0,     0,     0,   285,    34,     0,    35,     0,    36,
    2498      286,     0,    38,    39,   287,     0,     0,   288,   289,   290,
     2496     286,     0,   207,    39,   287,     0,     0,   288,   289,   290,
    24992497     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    25002498       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2501        0,     0,     0,     0,     0,     0,     0,   294,     0,   964,
    2502        0,     0,     0,     0,   758,    45,    46,   296,   297,   298,
     2499       0,     0,     0,     0,     0,     0,     0,   294,     0,   998,
     2500       0,     0,     0,     0,     0,   999,    46,   296,   297,   298,
    25032501     299,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    25042502      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     
    25112509      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    25122510       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2513        0,     0,     0,     0,     0,     0,   294,     0,   343,     0,
     2511       0,     0,     0,     0,     0,     0,   294,     0,   963,     0,
    25142512       0,     0,     0,     0,   344,    46,   296,   297,   298,   299,
    25152513       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     
    25232521      42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
    25242522       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2525        0,     0,     0,     0,     0,   294,     0,   999,     0,     0,
    2526        0,     0,     0,  1000,    46,   296,   297,   298,   299,     2,
     2523       0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
     2524       0,     0,     0,    45,    46,   296,   297,   298,   299,  -516,
     2525       0,     0,     1,     2,     3,     4,     5,     6,     7,     8,
     2526       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2527      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2528      27,    28,    29,     0,     0,    30,     0,     0,    31,    32,
     2529       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2530       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2531       0,     0,     0,    33,     0,     0,    34,     0,    35,     0,
     2532      36,    37,     0,    38,    39,    40,     0,     0,     0,     0,
     2533       0,     0,    41,    42,     0,     0,     0,     0,     0,     0,
     2534       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2535       0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
     2536      44,     0,     0,     0,     0,     0,    45,    46,     1,     2,
     2537       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2538      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2539      23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
     2540       0,    30,     0,     0,    31,    32,     0,     0,     0,     0,
     2541       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2542       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2543       0,     0,    34,     0,    35,     0,    36,    37,     0,    38,
     2544      39,    40,     0,     0,     0,     0,     0,     0,    41,    42,
     2545       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2546       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2547       0,     0,     0,     0,    43,     0,    44,     0,     0,     0,
     2548    -520,     0,    45,    46,     1,     2,     3,     4,     5,     6,
     2549       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2550      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2551       0,    26,    27,    28,    29,     0,     0,    30,     0,     0,
     2552      31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
     2553       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2554       0,     0,     0,     0,     0,    33,     0,     0,    34,     0,
     2555      35,     0,    36,    37,     0,    38,    39,    40,     0,     0,
     2556       0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
     2557       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2558       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2559      43,     0,    44,     0,     0,     0,     0,     0,    45,    46,
     2560     205,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2561      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2562      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2563       0,     0,     0,     0,     0,     0,    31,     0,     8,     9,
     2564      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2565      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2566      28,   485,   486,   487,    34,     0,    35,    31,    36,    37,
     2567       0,   207,    39,    40,     0,     0,     0,     0,     0,     0,
     2568      41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
     2569       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2570       0,     0,    38,    39,     0,     0,    43,     0,   208,     0,
     2571       0,     0,     0,     0,    45,    46,     1,     2,   206,     4,
     2572       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2573      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2574      25,  -293,     0,    26,    27,    28,    29,     0,     0,    30,
     2575       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
     2576       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2577       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2578      34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
     2579       0,  -293,     2,   206,     4,     5,     6,     7,     8,     9,
     2580      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2581      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2582      28,     0,     0,     0,    44,     0,     0,    31,     0,     0,
     2583      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2584       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2585       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
     2586      37,     0,   207,    39,    40,     0,     0,     0,     0,     0,
     2587       0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
     2588       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2589       0,     0,     0,     0,     0,     0,     0,    43,     0,   208,
     2590       0,     0,     0,     0,     0,    45,    46,     2,   206,     4,
     2591       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2592      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2593      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2594       0,     0,    31,     0,     0,     0,     0,     8,     9,    10,
     2595      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2596      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2597      34,     0,    35,     0,    36,     0,    31,    38,    39,     0,
     2598       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2599      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2600      22,    23,    24,    25,    34,     0,    26,    27,    28,     0,
     2601       0,    38,    39,  -400,   678,    31,     0,     0,     0,     0,
     2602      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2603       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2604       0,     0,     0,    34,     0,    35,   635,    36,   338,     0,
     2605      38,    39,     0,     0,    45,    46,     0,     0,     0,     0,
     2606       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2607       0,     0,  1351,     0,     0,     0,     0,     0,     0,     0,
     2608       0,     0,     0,     0,     0,     0,     0,   678,     0,     0,
     2609       0,     0,     0,    45,    46,     2,   206,     4,     5,     6,
     2610       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2611      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2612       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
     2613      31,     0,     0,     0,     8,     9,    10,    11,    12,    13,
     2614      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2615      24,    25,     0,     0,    26,    27,    28,     0,    34,     0,
     2616      35,     0,    36,    31,   685,    38,    39,     0,     0,     0,
     2617       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2618       0,     0,     0,     0,     0,     0,     0,  1353,     0,     0,
     2619       0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
     2620       0,     0,   678,     0,     0,     0,     0,     0,    45,    46,
     2621       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2622      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2623      22,    23,    24,    25,     0,   686,    26,    27,    28,   687,
     2624       0,    45,    46,     0,     0,    31,     0,     0,     0,     0,
     2625       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2626       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2627       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2628     207,    39,     0,     2,   206,     4,     5,     6,     7,     8,
     2629       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2630      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2631      27,    28,     0,     0,     0,     0,     0,   270,    31,     0,
     2632       0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
     2633       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2634       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2635      36,     0,     0,    38,    39,     0,     2,   206,     4,     5,
     2636       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2637      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2638       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2639     678,    31,     0,     0,     0,     0,    45,    46,     0,     0,
     2640       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2641       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2642       0,    35,     0,    36,     0,     0,    38,    39,     0,     2,
    25272643     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    25282644      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    25292645      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2530        0,     0,   282,   283,    31,   284,     0,     0,     0,     0,
     2646       0,     0,     0,   593,    31,     0,     0,     0,     0,    45,
     2647      46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2648       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2649       0,     0,    34,     0,    35,     0,    36,     0,     0,   207,
     2650      39,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2651      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2652       0,    26,    27,    28,     0,     0,     0,     0,   282,   283,
     2653      31,   284,     0,     0,     0,     0,   208,     0,     0,     0,
     2654       0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
     2655       0,     0,     0,     0,     0,     0,     0,   285,    34,     0,
     2656       0,     0,     0,   286,     0,    38,    39,   287,     0,     0,
     2657     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    25312658       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25322659       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2533        0,   285,    34,     0,    35,     0,    36,   286,     0,    38,
    2534       39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2535        0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    2536        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2537        0,     0,     0,     0,   294,     0,   964,     0,     0,     0,
    2538        0,     0,   344,    46,   296,   297,   298,   299,     2,   206,
    2539        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2660     294,     0,   517,     0,     0,   171,     0,     0,    45,    46,
     2661     296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
    25402662      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    25412663      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2542        0,   282,   283,    31,   284,     0,     0,     0,     0,     0,
    2543        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2544        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2545      285,    34,     0,    35,     0,    36,   286,     0,   207,    39,
     2664       0,   282,   283,    31,   284,     8,     9,    10,    11,    12,
     2665      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2666      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2667     285,    34,     0,     0,    31,     0,   286,     0,    38,    39,
    25462668     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    25472669     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2548        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2549        0,     0,     0,   294,     0,   379,     0,     0,     0,     0,
    2550        0,    45,    46,   296,   297,   298,   299,   205,     2,   206,
    2551        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2552       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2553       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2554        0,     0,     0,    31,     0,     8,     9,    10,    11,    12,
    2555       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2556       23,    24,    25,     0,     0,    26,    27,    28,   485,   486,
    2557      487,    34,     0,    35,    31,    36,    37,     0,   207,    39,
    2558       40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
    2559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2560        0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2561       39,     0,     0,    43,     0,   208,     0,     0,     0,     0,
    2562        0,    45,    46,     1,     2,   206,     4,     5,     6,     7,
    2563        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2564       18,    19,    20,    21,    22,    23,    24,    25,  -296,     0,
    2565       26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
    2566        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2567        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2569        0,    36,     0,     0,    38,    39,     0,     0,  -296,     1,
    2570        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    2571       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2572       22,    23,    24,    25,     0,     0,    26,    27,    28,    29,
    2573        0,    44,    30,     0,     0,    31,     0,    45,    46,     0,
    2574        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2575        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2576        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2577       38,    39,   205,     2,   206,     4,     5,     6,     7,     8,
    2578        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2579       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2580       27,    28,     0,     0,     0,     0,     0,    44,    31,     0,
    2581        0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    2582        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2583        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2584       36,     0,     0,   207,    39,     0,     2,   206,     4,     5,
    2585        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2586       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2587        0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2588      208,    31,     0,     0,     0,     0,    45,    46,     0,     0,
    2589        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2590        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2591        0,    35,     0,    36,    37,     0,   207,    39,    40,     0,
    2592        0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
    2593        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2594        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2595        0,    43,     0,   208,     0,     0,     0,     0,     0,    45,
    2596       46,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2670       0,     0,    34,     0,     0,     0,     0,    37,     0,   336,
     2671     337,    40,     0,   294,   -36,   295,     0,     0,    41,    42,
     2672       0,    45,    46,   296,   297,   298,   299,     8,     9,    10,
    25972673      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2598       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2599        0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
    2600        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2601       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2602        0,    26,    27,    28,    34,     0,    35,     0,    36,     0,
    2603       31,    38,    39,     0,     2,   206,     4,     5,     6,     7,
    2604        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2605       18,    19,    20,    21,    22,    23,    24,    25,    34,     0,
    2606       26,    27,    28,     0,     0,    38,    39,  -403,   678,    31,
    2607        0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
    2608        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2609        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2610      635,    36,   338,     0,    38,    39,     0,     0,    45,    46,
    2611        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2612        0,     0,     0,     0,     0,     0,  1354,     0,     0,     0,
    2613        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2614        0,   678,     0,     0,     0,     0,     0,    45,    46,     2,
    2615      206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2616       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2617       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2618        0,     0,     0,     0,    31,     0,     0,     0,     8,     9,
     2674      21,    22,    23,    24,    25,     0,   338,    26,    27,    28,
     2675       0,     0,    45,    46,   282,   283,    31,   284,     8,     9,
    26192676      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    26202677      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2621       28,     0,    34,     0,    35,     0,    36,    31,   685,    38,
    2622       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2623        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2624        0,  1356,     0,     0,     0,    34,     0,     0,     0,     0,
    2625        0,     0,    38,    39,     0,     0,   678,     0,     0,     0,
    2626        0,     0,    45,    46,     2,   206,     4,     5,     6,     7,
    2627        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2628       18,    19,    20,    21,    22,    23,    24,    25,     0,   686,
    2629       26,    27,    28,   687,     0,    45,    46,     0,     0,    31,
    2630        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2631        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2632        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2633        0,    36,     0,     0,   207,    39,     0,     2,   206,     4,
    2634        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2635       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2636       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2637        0,   270,    31,     0,     0,     0,     0,    45,    46,     0,
    2638        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2639        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2640       34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
    2641        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    2642       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2643       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2644        0,     0,     0,     0,   678,    31,     0,     0,     0,     0,
    2645       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    2646        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2647        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2648       38,    39,     0,     2,   206,     4,     5,     6,     7,     8,
    2649        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2650       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2651       27,    28,     0,     0,     0,     0,     0,   593,    31,     0,
    2652        0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    2653        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2654        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2655       36,     0,     0,   207,    39,     8,     9,    10,    11,    12,
    2656       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2657       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2658        0,     0,   282,   283,    31,   284,     0,     0,     0,     0,
    2659      208,     0,     0,     0,     0,     0,    45,    46,     0,     0,
    2660        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2661        0,   285,    34,     0,     0,     0,     0,   286,     0,    38,
    2662       39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2663        0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    2664        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2665        0,     0,     0,     0,   294,     0,   517,     0,     0,   171,
    2666        0,     0,    45,    46,   296,   297,   298,   299,     8,     9,
    2667       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2668       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2669       28,     0,     0,     0,     0,   282,   283,    31,   284,     8,
    2670        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2671       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2672       27,    28,     0,     0,   285,    34,     0,     0,    31,     0,
    2673      286,     0,    38,    39,   287,     0,     0,   288,   289,   290,
    2674      291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    2675        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
    2676        0,    37,     0,   336,   337,    40,     0,   294,   -37,   295,
    2677        0,     0,    41,    42,     0,    45,    46,   296,   297,   298,
    2678      299,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2679       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2680      338,    26,    27,    28,     0,     0,    45,    46,   282,   283,
    2681       31,   284,     8,     9,    10,    11,    12,    13,    14,    15,
    2682       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2683        0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
    2684        0,    31,     0,   286,     0,    38,    39,   287,     0,     0,
    2685      288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    2686        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2687        0,     0,     0,     0,   110,     0,    38,    39,     0,     0,
    2688      294,     0,   295,     0,     0,    41,    42,     0,    45,    46,
    2689      296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
    2690       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2691       24,    25,     0,    44,    26,    27,    28,     0,     0,    45,
    2692       46,   282,   283,    31,   284,     8,     9,    10,    11,    12,
    2693       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2694       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2695      285,    34,     0,     0,    31,   685,   286,     0,    38,    39,
    2696      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2697      292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2698        0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2699       39,     0,     0,   294,     0,   157,     0,     0,     0,     0,
    2700        0,    45,    46,   296,   297,   298,   299,     8,     9,    10,
    2701       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2702       21,    22,    23,    24,    25,     0,   686,    26,    27,    28,
    2703     1093,     0,    45,    46,   282,   283,    31,   284,     8,     9,
    2704       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2705       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2706       28,     0,     0,   285,    34,     0,     0,    31,   685,   286,
     2678      28,     0,     0,   285,    34,     0,     0,    31,     0,   286,
    27072679       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
    27082680      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    27092681       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2710        0,     0,    38,    39,     0,     0,   294,     0,   593,     0,
    2711        0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
     2682     110,     0,    38,    39,     0,     0,   294,     0,   295,     0,
     2683       0,    41,    42,     0,    45,    46,   296,   297,   298,   299,
    27122684       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2713       18,    19,    20,    21,    22,    23,    24,    25,     0,   686,
    2714       26,    27,    28,  1224,     0,    45,    46,   282,   283,    31,
    2715      284,     0,     0,     0,     0,     0,     0,     0,     8,     9,
    2716       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2717       20,    21,    22,    23,    24,    25,   285,    34,    26,    27,
    2718       28,     0,   286,     0,    38,    39,   287,    31,     0,   288,
     2685      18,    19,    20,    21,    22,    23,    24,    25,     0,    44,
     2686      26,    27,    28,     0,     0,    45,    46,   282,   283,    31,
     2687     284,     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,     0,     0,   285,    34,     0,     0,
     2690      31,   685,   286,     0,    38,    39,   287,     0,     0,   288,
    27192691     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2692       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2693       0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
     2694       0,   157,     0,     0,     0,     0,     0,    45,    46,   296,
     2695     297,   298,   299,     8,     9,    10,    11,    12,    13,    14,
     2696      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2697      25,     0,   686,    26,    27,    28,  1092,     0,    45,    46,
     2698     282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
     2699      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2700      24,    25,     0,     0,    26,    27,    28,     0,     0,   285,
     2701      34,     0,     0,    31,   685,   286,     0,    38,    39,   287,
     2702       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2703     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2704       0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
     2705       0,     0,   294,     0,   593,     0,     0,     0,     0,     0,
     2706      45,    46,   296,   297,   298,   299,     8,     9,    10,    11,
     2707      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2708      22,    23,    24,    25,     0,   686,    26,    27,    28,  1221,
     2709       0,    45,    46,   282,   283,    31,   284,     0,     0,     0,
     2710       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
     2711      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2712      24,    25,   285,    34,    26,    27,    28,     0,   286,     0,
     2713      38,    39,   287,    31,     0,   288,   289,   290,   291,    41,
     2714      42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
    27202715       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2721        0,     0,     0,     0,     0,    34,     0,     0,     0,   294,
    2722        0,   379,    38,    39,     0,     0,     0,    45,    46,   296,
    2723      297,   298,   299,   467,     2,   206,     4,     5,     6,     7,
    2724        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2725       18,    19,    20,    21,    22,    23,    24,    25,     0,   257,
    2726       26,    27,    28,     0,     0,    45,    46,     0,     0,    31,
    2727        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2716       0,    34,     0,     0,     0,   294,     0,   379,    38,    39,
     2717       0,     0,     0,    45,    46,   296,   297,   298,   299,   467,
     2718       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2719      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2720      22,    23,    24,    25,     0,   257,    26,    27,    28,     0,
     2721       0,    45,    46,     0,     0,    31,     0,     0,     0,     8,
     2722       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2723      19,    20,    21,    22,    23,    24,    25,  -293,     0,    26,
     2724      27,    28,     0,    34,     0,    35,     0,    36,    31,     0,
     2725      38,    39,     0,     0,     0,     0,     0,     8,     9,    10,
     2726      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2727      21,    22,    23,    24,    25,     0,    34,    26,    27,    28,
     2728       0,    37,     0,   336,   337,    40,    31,  -293,     0,     0,
     2729      -3,     0,    41,    42,     0,     8,     9,    10,    11,    12,
     2730      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2731      23,    24,    25,  -293,    34,    26,    27,    28,     0,    37,
     2732     338,   336,   337,    40,    31,     0,    45,    46,     0,     0,
     2733      41,    42,     0,     8,     9,    10,    11,    12,    13,    14,
    27282734      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2729       25,     0,     0,    26,    27,    28,     0,    34,     0,    35,
    2730        0,    36,    31,     0,    38,    39,     0,     0,     0,     0,
    2731        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2732       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2733       34,    26,    27,    28,     0,    37,     0,    38,    39,    40,
    2734       31,     0,     0,     0,    -3,     0,    41,    42,     0,     8,
    2735        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2736       19,    20,    21,    22,    23,    24,    25,     0,    34,    26,
    2737       27,    28,    43,    37,    44,   207,    39,    40,    31,     0,
    2738       45,    46,     0,     0,    41,    42,     0,     8,     9,    10,
    2739       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2740       21,    22,    23,    24,    25,  -296,    34,    26,    27,    28,
    2741       43,    37,   270,   336,   337,    40,    31,     0,    45,    46,
    2742        0,     0,    41,    42,     0,     8,     9,    10,    11,    12,
    2743       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2744       23,    24,    25,  -296,    34,    26,    27,    28,   635,     0,
    2745      338,    38,    39,     0,    31,  -296,    45,    46,     8,     9,
    2746       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2747       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2748       28,     0,    34,     0,     0,     0,   635,    31,   338,    38,
    2749       39,     0,     0,  -296,    45,    46,     8,     9,    10,    11,
     2735      25,     0,    34,    26,    27,    28,   635,     0,   338,    38,
     2736      39,     0,    31,  -293,    45,    46,     8,     9,    10,    11,
    27502737      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2751       22,    23,    24,    25,     0,    34,    26,    27,    28,     0,
    2752        0,     0,    38,    39,     0,    31,   338,     0,     0,     0,
     2738      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2739      34,     0,     0,     0,     0,    31,   338,    38,    39,     0,
    27532740       0,     0,    45,    46,     8,     9,    10,    11,    12,    13,
    27542741      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2755       24,    25,     0,    34,    26,    27,    28,     0,     0,   157,
    2756      207,    39,     0,    31,     0,    45,    46,     8,     9,    10,
    2757       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2758       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2759        0,    34,     0,     0,     0,     0,    31,   270,    38,    39,
    2760        0,     0,     0,    45,    46,     8,     9,    10,    11,    12,
     2742      24,    25,     0,    34,    26,    27,    28,     0,     0,     0,
     2743     207,    39,     0,    31,   157,     0,     0,     0,     0,     0,
     2744      45,    46,     8,     9,    10,    11,    12,    13,    14,    15,
     2745      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2746       0,    34,    26,    27,    28,     0,     0,   270,    38,    39,
     2747       0,    31,     0,    45,    46,     8,     9,    10,    11,    12,
    27612748      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2762       23,    24,    25,     0,    34,    26,    27,    28,     0,     0,
    2763        0,    38,    39,     0,    31,   338,     0,     0,     0,     0,
     2749      23,    24,    25,     0,     0,    26,    27,    28,     0,    34,
     2750       0,     0,     0,     0,    31,   338,    38,    39,     0,     0,
    27642751       0,    45,    46,     8,     9,    10,    11,    12,    13,    14,
    27652752      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2766       25,     0,    34,    26,    27,    28,     0,     0,   686,    38,
    2767       39,     0,    31,     0,    45,    46,     2,   206,     4,     5,
    2768        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2769       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2770       34,     0,    26,    27,    28,     0,   593,    38,    39,     0,
    2771        0,    31,    45,    46,     0,     0,     0,     0,     0,     0,
     2753      25,     0,    34,    26,    27,    28,     0,     0,     0,    38,
     2754      39,     0,    31,   686,     0,     0,     0,     0,     0,    45,
     2755      46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2756      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2757      34,    26,    27,    28,     0,     0,   593,    38,    39,     0,
     2758      31,     0,    45,    46,     2,   206,     4,     5,     6,     7,
     2759       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2760      18,    19,    20,    21,    22,    23,    24,    25,    34,     0,
     2761      26,    27,    28,     0,    44,   207,    39,     0,     0,    31,
     2762      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    27722763       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2773        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2774        0,    35,     0,    36,    44,     0,    38,    39,     0,     0,
    2775       45,    46,   282,   283,     0,   284,  1043,     0,  1044,     0,
    2776        0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,
    2777        0,  1528,  1053,     0,     0,     0,  1054,  1055,     0,    33,
    2778        0,   285,  -416,     0,     0,     0,     0,  1056,     0,     0,
    2779        0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2780        0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    2781        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2782        0,     0,     0,     0,   294,     0,   379,     0,     0,   171,
    2783        0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
    2784      282,   283,  1058,   284,  1043,     0,  1044,  -131,     0,  1045,
    2785     1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,     0,     0,
    2786     1053,     0,     0,     0,  1054,  1055,     0,    33,     0,   285,
    2787        0,     0,     0,     0,     0,  1056,     0,     0,     0,   287,
     2764       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2765       0,    36,     0,     0,    38,    39,     0,     0,    45,    46,
     2766     282,   283,     0,   284,  1042,     0,  1043,     0,     0,  1044,
     2767    1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,  1525,
     2768    1052,     0,     0,     0,  1053,  1054,     0,    33,     0,   285,
     2769    -413,     0,     0,     0,     0,  1055,     0,     0,     0,   287,
    27882770       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    27892771     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27902772       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27912773       0,     0,   294,     0,   379,     0,     0,   171,     0,     0,
    2792       45,    46,   296,   297,   298,   299,     0,     0,     0,     0,
    2793     1058,     0,     0,     0,     0,  -131,     2,   206,     4,     5,
    2794        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2795       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2796        0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2797        0,    31,     0,   282,   283,     0,   284,  1043,     0,  1044,
    2798     1402,  1403,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,
    2799        0,     0,  1528,  1053,     0,     0,     0,  1054,  1055,    34,
    2800       33,    35,   285,    36,     0,     0,    38,    39,  1056,     0,
    2801        0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    2802       42,     0,   292,   293,     0,     0,     0,     0,  1315,     0,
     2774      45,    46,   296,   297,   298,   299,     0,     0,   282,   283,
     2775    1057,   284,  1042,     0,  1043,  -128,     0,  1044,  1045,  1046,
     2776    1047,  1048,  1049,  1050,  1051,     0,     0,     0,  1052,     0,
     2777       0,     0,  1053,  1054,     0,    33,     0,   285,     0,     0,
     2778       0,     0,     0,  1055,     0,     0,     0,   287,     0,     0,
     2779     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    28032780       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2804        0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
    2805      171,     0,     0,    45,    46,   296,   297,   298,   299,     0,
    2806        0,   282,   283,  1058,   284,  1043,     0,  1044,  1402,  1403,
    2807     1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,     0,
    2808        0,  1053,     0,     0,     0,  1054,  1055,     0,    33,     0,
    2809      285,     0,     0,     0,     0,     0,  1056,     0,     0,     0,
     2781       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2782     294,     0,   379,     0,     0,   171,     0,     0,    45,    46,
     2783     296,   297,   298,   299,     0,     0,     0,     0,  1057,     0,
     2784       0,     0,     0,  -128,     2,   206,     4,     5,     6,     7,
     2785       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2786      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2787      26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
     2788       0,   282,   283,     0,   284,  1042,     0,  1043,  1399,  1400,
     2789    1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,
     2790    1525,  1052,     0,     0,     0,  1053,  1054,    34,    33,    35,
     2791     285,    36,     0,     0,    38,    39,  1055,     0,     0,     0,
    28102792     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2811      292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2793     292,   293,     0,     0,     0,     0,  1312,     0,     0,     0,
    28122794       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28132795       0,     0,     0,   294,     0,   379,     0,     0,   171,     0,
    28142796       0,    45,    46,   296,   297,   298,   299,     0,     0,   282,
    2815      283,  1058,   284,  1043,     0,  1044,     0,     0,  1045,  1046,
    2816     1047,  1048,  1049,  1050,  1051,  1052,     0,     0,     0,  1053,
    2817        0,     0,     0,  1054,  1055,     0,    33,     0,   285,     0,
    2818        0,     0,     0,     0,  1056,     0,     0,     0,   287,     0,
     2797     283,  1057,   284,  1042,     0,  1043,  1399,  1400,  1044,  1045,
     2798    1046,  1047,  1048,  1049,  1050,  1051,     0,     0,     0,  1052,
     2799       0,     0,     0,  1053,  1054,     0,    33,     0,   285,     0,
     2800       0,     0,     0,     0,  1055,     0,     0,     0,   287,     0,
    28192801       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
    2820        0,     0,     0,     0,     0,     0,   282,   283,     0,   284,
     2802       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28212803       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28222804       0,   294,     0,   379,     0,     0,   171,     0,     0,    45,
    2823       46,   296,   297,   298,   299,   285,     0,     0,     0,  1058,
    2824        0,   286,     0,     0,     0,   287,     0,     0,   288,   289,
    2825      290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
    2826        0,     0,     0,   282,   283,     0,   284,     0,     0,     0,
    2827        0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
    2828      379,     0,   282,   283,     0,   284,    45,    46,   296,   297,
    2829      298,   299,   285,     0,     0,     0,     0,     0,   286,     0,
     2805      46,   296,   297,   298,   299,     0,     0,   282,   283,  1057,
     2806     284,  1042,     0,  1043,     0,     0,  1044,  1045,  1046,  1047,
     2807    1048,  1049,  1050,  1051,     0,     0,     0,  1052,     0,     0,
     2808       0,  1053,  1054,     0,    33,     0,   285,     0,     0,     0,
     2809       0,     0,  1055,     0,     0,     0,   287,     0,     0,   288,
     2810     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2811       0,     0,     0,     0,   282,   283,     0,   284,     0,     0,
     2812       0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
     2813       0,   379,     0,     0,   171,     0,     0,    45,    46,   296,
     2814     297,   298,   299,   285,     0,     0,     0,  1057,     0,   286,
     2815       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
     2816      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2817       0,   282,   283,     0,   284,     0,     0,     0,     0,     0,
     2818       0,     0,     0,     0,     0,     0,   294,     0,   379,     0,
     2819       0,   972,     0,     0,    45,    46,   296,   297,   298,   299,
     2820     285,     0,     0,     0,     0,     0,   286,     0,     0,     0,
     2821     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2822     292,   293,     0,     0,     0,     0,     0,     0,   282,   283,
     2823       0,   284,     0,     0,     0,     0,     0,     0,     0,     0,
     2824       0,     0,     0,   294,     0,   379,     0,   282,   283,     0,
     2825     284,    45,    46,   296,   297,   298,   299,   285,     0,     0,
     2826       0,     0,     0,   286,     0,     0,     0,   287,     0,     0,
     2827     288,   289,   290,   291,    41,    42,   285,   292,   293,     0,
     2828       0,     0,   286,     0,     0,     0,   287,     0,     0,   288,
     2829     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2830     294,     0,   379,     0,   282,   283,     0,   284,   709,    46,
     2831     296,   297,   298,   299,     0,     0,     0,     0,     0,   294,
     2832       0,   379,     0,   282,   283,     0,   284,   344,    46,   296,
     2833     297,   298,   299,   285,     0,     0,     0,     0,     0,   286,
     2834       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
     2835      41,    42,   285,   292,   293,     0,     0,     0,   286,     0,
    28302836       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    2831       42,   285,   292,   293,     0,     0,     0,   286,     0,     0,
    2832        0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2833        0,   292,   293,     0,     0,   294,     0,   379,     0,   282,
    2834      283,     0,   284,   709,    46,   296,   297,   298,   299,     0,
    2835        0,     0,     0,     0,   294,     0,   379,     0,   282,   283,
    2836        0,   284,   344,    46,   296,   297,   298,   299,   285,     0,
    2837        0,     0,     0,     0,   286,     0,     0,     0,   287,     0,
    2838        0,   288,   289,   290,   291,    41,    42,   285,   292,   293,
    2839        0,     0,     0,   286,     0,     0,     0,   287,     0,     0,
    2840      288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    2841        0,   506,     0,     0,     0,   282,   283,     0,   284,    45,
    2842       46,   296,   297,   298,   299,     0,     0,     0,     0,     0,
    2843      294,     0,     0,     0,   282,   283,     0,   284,    45,    46,
    2844      296,   297,   298,   299,   285,     0,     0,     0,     0,     0,
    2845      286,     0,     0,     0,   287,     0,     0,   288,   289,   290,
    2846      291,    41,    42,   285,   292,   293,     0,     0,     0,   286,
    2847        0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    2848       41,    42,     0,   292,   293,     0,     0,   511,     0,     0,
    2849        0,     0,     0,     0,     0,    45,    46,   296,   297,   298,
    2850      299,     0,     0,     0,     0,     0,   514,     0,     0,     0,
    2851        0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
     2837      42,     0,   292,   293,     0,     0,   506,     0,     0,     0,
     2838     282,   283,     0,   284,    45,    46,   296,   297,   298,   299,
     2839       0,     0,     0,     0,     0,   294,     0,     0,     0,   282,
     2840     283,     0,   284,    45,    46,   296,   297,   298,   299,   285,
     2841       0,     0,     0,     0,     0,   286,     0,     0,     0,   287,
     2842       0,     0,   288,   289,   290,   291,    41,    42,   285,   292,
     2843     293,     0,     0,     0,   286,     0,     0,     0,   287,     0,
     2844       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
     2845       0,     0,   511,     0,     0,     0,     0,     0,     0,     0,
     2846      45,    46,   296,   297,   298,   299,     0,     0,     0,     0,
     2847       0,   514,     0,     0,     0,     0,     0,     0,     0,    45,
     2848      46,   296,   297,   298,   299,     2,   206,     4,     5,     6,
     2849       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2850      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2851       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2852      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2853       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2854       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2855      35,     0,    36,    37,     0,   174,   175,    40,     0,     0,
     2856       0,     0,     0,     0,    41,    42,   205,     2,   206,     4,
     2857       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2858      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2859      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2860       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
     2861       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2862       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2863      34,     0,    35,     0,    36,     0,     0,   207,    39,   467,
    28522864       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    28532865      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2854       22,    23,    24,    25,     0,     0,     0,     0,     0,     0,
     2866      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    28552867       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
    28562868       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28572869       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2858        0,     0,     0,    34,     0,    35,     0,    36,    37,     0,
    2859      174,   175,    40,     0,     0,     0,     0,     0,     0,    41,
    2860       42,   205,     2,   206,     4,     5,     6,     7,     8,     9,
     2870       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2871      38,    39,     2,   206,     4,     5,     6,     7,     8,     9,
    28612872      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    28622873      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     
    28652876       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28662877       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2867        0,     0,   207,    39,   467,     2,   206,     4,     5,     6,
    2868        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2869       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2870        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2871       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2872        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2873        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2874       35,     0,    36,     0,     0,    38,    39,     2,   206,     4,
    2875        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2876       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2877       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2878        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2879        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2880        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2881       34,     0,    35,     0,    36,     0,     0,   207,    39
     2878       0,     0,   207,    39
    28822879};
    28832880
    28842881#define yypact_value_is_default(yystate) \
    2885   ((yystate) == (-1338))
     2882  ((yystate) == (-1323))
    28862883
    28872884#define yytable_value_is_error(yytable_value) \
     
    28902887static const yytype_int16 yycheck[] =
    28912888{
    2892        0,     1,   239,    43,   185,   116,   534,     0,   204,   185,
    2893       43,   185,   185,   281,   185,    43,   521,     1,   601,   185,
    2894      185,   603,   168,   169,   105,   750,     0,     1,   219,   621,
    2895      349,   876,    32,   345,    49,   750,     0,   693,   603,    32,
    2896      156,   750,   513,    43,  1023,   757,   647,   572,   186,    49,
    2897     1325,   985,   186,   492,   189,     0,    49,   496,    32,  1022,
    2898     1023,   196,   156,    63,    32,  1402,    66,   601,    32,    69,
    2899       63,     0,    28,    66,   155,   187,    69,   109,   601,    39,
    2900       85,    43,   601,     0,   265,    69,    57,    32,   349,   265,
    2901      201,   265,   265,    43,   265,    69,    39,   601,   113,   265,
    2902      265,  1035,    63,    32,    51,   105,   364,   256,   113,   418,
    2903      368,   601,  1042,   113,    39,    32,   116,   117,    72,   696,
    2904       43,   109,    78,   111,   604,   601,   109,   876,   266,   438,
    2905      610,   146,   266,   268,   490,   106,  1473,   446,   109,    96,
    2906       39,   734,    72,   426,   427,   185,   146,   147,  1423,   261,
    2907      262,   111,   185,  1456,   147,   155,   156,   185,  1054,  1055,
    2908      160,    95,   109,   109,   110,   122,   109,   160,   111,    64,
    2909      482,   132,     0,     1,     0,    72,    82,    96,   132,    72,
    2910      636,   637,   907,   688,   284,   185,   186,  1490,   323,  1492,
    2911       83,    84,   907,   186,   209,   129,   331,   653,   907,   334,
    2912       82,   201,   132,   122,    32,   111,    32,   307,   308,   209,
    2913      109,   494,   111,  1117,   109,   719,   209,  1121,   111,   410,
    2914      117,   221,   876,   185,   239,   265,   294,   488,   221,   719,
    2915      513,   814,   265,    39,  1130,   185,   504,   265,    66,   239,
    2916       66,    69,    11,   719,   826,   345,   902,   218,    39,   605,
    2917     1229,   251,  1505,   609,   128,   711,   271,   131,   251,   259,
    2918      341,   826,   185,   398,   264,   265,   266,   402,   406,   418,
    2919      795,   271,   406,   266,   630,   109,   988,   251,   634,  1532,
    2920      814,   381,    39,   251,   603,   396,   116,   251,  1406,   438,
    2921      371,   814,   307,  1042,   294,   814,   579,   446,    44,    45,
    2922     1279,   272,   107,   109,   112,   111,   251,   307,   279,   621,
    2923      814,   256,    82,   424,   626,  1278,  1279,   433,   109,   430,
    2924      111,   109,   251,   323,   814,   926,   131,   256,   328,   112,
    2925      345,   908,   590,   116,   251,   328,   816,   228,   814,   433,
    2926      110,   341,   480,   131,   479,   345,   480,   803,   114,   349,
    2927      350,   934,   109,   935,   111,     3,   247,    70,   426,   427,
    2928       73,   110,  1292,    76,   364,    78,   116,     3,   368,   115,
    2929     1215,   371,    85,   682,   632,    49,   953,   348,    44,    45,
    2930      130,   130,  1500,    44,    45,    90,    91,  1505,   482,   116,
    2931       72,  1045,    72,   221,   365,   221,   396,    79,   369,    79,
    2932      934,    83,    84,    83,    84,    72,   406,  1525,   110,  1001,
    2933      526,   426,   427,   406,  1532,   934,    83,    84,   112,  1398,
    2934      125,   126,   116,   251,   424,   251,   426,   427,   130,   111,
    2935      430,   111,   526,   433,   746,  1398,   571,   572,   506,   113,
    2936     1505,   110,   109,   511,   525,   116,   514,   109,   114,   111,
    2937      550,   551,   552,   114,   454,     0,  1390,  1391,  1051,   130,
    2938     1525,   130,   464,   109,   969,   116,  1215,  1532,  1252,   737,
    2939     1254,  1255,   472,   418,    72,   591,    74,    75,     0,   494,
    2940      480,   132,   482,   109,   484,    83,    84,   480,   488,   418,
    2941      110,   484,   848,   438,   494,   109,   116,   591,   513,   212,
    2942      568,   446,   648,   109,   943,   111,   506,   826,   508,   438,
    2943      484,   511,   983,   513,   514,  1445,   114,   446,   131,  1101,
    2944      484,   521,  1452,   658,   350,   525,   526,   662,  1129,    72,
    2945     1010,  1011,   111,   682,   113,   209,    79,   119,   120,   484,
    2946       83,    84,  1119,  1292,   655,   657,    72,   805,    74,    75,
    2947      688,   130,   810,   482,   688,   484,   112,    83,    84,   708,
    2948      116,  1215,   116,   116,   579,   826,   279,   484,   111,   116,
    2949      116,   571,   572,  1503,   111,   110,   113,   130,   132,   579,
    2950      109,   116,  1087,   109,   940,   132,   132,  1092,   114,   109,
    2951      590,   591,   116,   130,   906,   595,  1476,   271,   109,   110,
    2952      111,   601,  1482,   603,  1181,  1182,   621,    72,   132,    74,
    2953       75,   626,     4,     5,     6,     7,     8,     9,    83,    84,
    2954      294,   621,  1502,   110,   117,   112,   626,  1507,   628,   116,
    2955      123,   124,   632,   307,   109,   635,   636,   637,    72,   352,
    2956      898,   354,    76,   116,   131,   132,   111,   473,   109,    83,
    2957       84,   622,   746,   653,  1308,   655,   484,   757,   484,   132,
    2958      795,     0,     1,   912,   745,   914,   116,   638,   110,   671,
    2959      116,   116,   863,   110,   591,   109,   112,    69,   939,    71,
    2960      116,   652,   132,   117,   118,   685,   132,   132,   688,  1001,
    2961       29,    30,   883,    32,   109,   811,  1445,   110,   116,  1292,
    2962      116,   110,   110,  1452,    43,   116,  1360,   116,   945,  1363,
    2963       49,   711,   712,   713,   132,   110,   132,   811,    57,   719,
    2964      720,   132,   116,   869,    63,   110,   907,    66,   109,   442,
    2965       69,   907,   116,   907,   907,   112,   907,   682,   132,   116,
    2966      132,   907,   907,    82,    83,   745,   746,    72,   132,    30,
    2967      750,   751,  1406,   682,  1503,   110,   112,  1411,    83,    84,
    2968      109,   116,   733,   708,    85,    86,    87,   106,    88,    89,
    2969      109,   909,   115,  1366,   109,   909,   111,   116,   913,   708,
    2970      454,  1309,   117,   118,  1509,  1439,    92,    93,   109,   791,
    2971      111,   132,   113,   114,  1509,   795,   109,   623,   110,   801,
    2972     1509,    82,    83,   803,   116,   805,    64,   807,   147,  1386,
    2973      810,   811,   906,   815,   814,   109,   155,   746,  1014,   112,
    2974      109,   160,   111,   132,   905,  1402,   826,   114,   117,   118,
    2975      115,   116,   506,    72,   508,    74,    75,   511,  1150,   114,
    2976      514,   109,   110,   111,    83,    84,   185,   186,    72,  1117,
    2977       74,    75,    76,  1121,  1122,   990,  1449,   114,  1451,    83,
    2978       84,   110,   201,   506,   109,   508,  1124,   116,   511,  1523,
    2979      209,   514,  1007,   699,   110,  1529,   876,   110,   111,   218,
    2980      116,    72,   221,    74,    75,   109,  1540,   713,   132,   228,
    2981     1544,  1037,    83,    84,   811,  1472,  1473,   109,   898,   111,
    2982      132,  1001,   876,    72,   243,   905,   906,   907,   247,   909,
    2983       79,  1504,   251,   252,    83,    84,   110,  1229,   109,    58,
    2984       59,   921,   116,   114,    44,    45,   265,   266,  1022,    82,
    2985      945,   876,   110,   272,   934,   935,   112,   110,   116,   939,
    2986      279,   109,  1042,   116,   944,   945,   110,   876,   109,  1087,
    2987     1085,   110,   116,  1087,  1092,   115,   116,   116,  1092,   876,
    2988      944,    72,   243,    74,    75,    76,   109,     1,   111,   969,
    2989      944,  1239,    83,    84,   117,   118,   110,   906,   110,   127,
    2990     1485,   807,   116,    82,   116,     3,  1001,   553,   554,   328,
    2991     1125,   110,    10,    11,    12,    13,    14,   116,  1109,   561,
    2992      562,  1001,    10,    11,    12,    13,    14,   110,   110,   348,
    2993      349,   685,   118,   116,   116,    49,   128,  1019,  1020,   110,
    2994      733,    39,  1022,  1023,    94,   116,   365,   555,   556,  1534,
    2995      369,    39,    10,    11,    12,    13,    14,   110,   109,   110,
    2996      111,   380,  1042,   116,     3,   109,   110,   111,   876,    67,
    2997      876,    10,    11,    12,    13,    14,  1150,   396,  1326,    67,
    2998      111,    39,  1330,   557,   558,   559,   560,   406,  1042,   131,
    2999      109,   105,    58,    59,    60,  1077,  1078,   109,   109,   113,
    3000       39,   109,  1082,   111,   109,   424,   111,  1087,   109,    67,
    3001      111,   430,  1092,   432,    72,   112,   112,  1042,    76,   380,
    3002      109,  1101,   111,   110,   110,    83,    84,   112,    67,  1109,
    3003      110,    72,   146,  1042,   110,    76,   944,   110,   110,     0,
    3004        1,   155,    83,    84,  1124,  1042,  1194,  1195,   467,  1197,
    3005     1211,   109,   109,   472,   111,   111,  1204,     0,  1206,   117,
    3006      118,   480,   112,   114,   116,   484,   131,   114,   109,   488,
    3007     1150,    32,   491,   110,   493,   109,   117,   118,   114,  1427,
    3008      112,     4,     5,     6,     7,     8,     9,   110,   112,    32,
    3009       72,   205,    74,    75,    76,   209,   112,   112,  1004,   112,
    3010       43,    83,    84,   130,  1278,    66,    49,   116,    69,   528,
    3011       33,   130,  1192,  1193,   533,    29,   130,   110,   110,     1,
    3012       63,   112,   110,    66,   114,   239,    69,   109,   112,  1193,
    3013      491,  1211,   493,   116,  1042,  1215,  1042,   115,   115,  1193,
    3014       72,  1150,    74,    75,    76,  1227,    69,   115,    71,  1229,
    3015      109,    83,    84,  1233,   110,   130,   132,   271,   110,   116,
    3016      274,  1215,   110,   110,   583,     3,   110,   921,   110,  1233,
    3017      116,   590,    10,    11,    12,    13,    14,  1259,   115,  1233,
    3018      294,   110,   601,   110,   603,  1267,  1268,  1269,   110,   110,
    3019     1215,  1382,   110,   307,   110,   156,    29,   110,  1278,  1279,
    3020      110,    39,  1519,   622,   147,   110,  1215,  1287,   110,   110,
    3021      110,   110,  1292,   130,  1362,   110,   131,   160,  1215,   638,
    3022     1229,   112,   116,   112,   643,   110,   110,   341,   116,    67,
    3023      110,   345,   130,   652,   109,   654,   655,   656,  1292,   116,
    3024      114,   112,   185,   186,   110,  1325,   110,   110,  1509,  1331,
    3025      364,   116,   112,  1509,   368,  1509,  1509,   371,  1509,   110,
    3026      221,  1325,   116,  1509,  1509,   110,   209,  1292,   116,   688,
    3027      110,  1325,   109,   692,   109,   694,   112,   109,   221,   698,
    3028      109,   109,   643,  1292,  1192,  1193,  1192,   706,   130,   112,
    3029      251,   132,  1510,   115,  1485,  1292,  1510,   464,   110,   110,
    3030      719,   720,  1382,   110,   128,   115,   115,  1215,   251,  1215,
    3031      114,   112,   426,   427,   733,    72,  1534,   132,  1398,    76,
    3032     1534,    49,   265,   110,   112,  1233,    83,    84,  1082,   112,
    3033     1381,   692,   116,   694,   110,    63,   110,   698,    66,   110,
    3034      454,    69,   112,  1423,   112,   112,   110,   112,    47,   112,
    3035      112,   132,   109,   467,   111,   132,   115,   132,   110,  1423,
    3036      117,   118,   115,   132,   110,  1445,   132,   115,   112,  1423,
    3037      252,   112,  1452,   112,  1454,   130,  1456,   112,   492,  1287,
    3038      494,  1287,   496,   112,  1292,   328,  1292,   112,   110,  1509,
    3039      110,  1445,   506,   112,   508,   814,  1509,   511,  1452,   513,
    3040      514,  1509,   112,   109,   109,  1485,   349,   826,   109,    60,
    3041     1490,   525,  1492,   110,   110,   109,   114,  1325,   132,   147,
    3042     1445,   112,   112,  1503,  1519,   110,   112,  1452,   110,  1509,
    3043     1510,    96,   160,    96,   109,   109,  1445,  1510,   115,  1519,
    3044       57,   110,   110,  1452,    55,   132,   110,    42,  1445,  1503,
    3045      869,   110,     0,     1,  1534,  1452,   875,   130,   186,   116,
    3046      671,  1534,   132,   406,   110,   579,     4,     5,     6,     7,
    3047        8,     9,   433,   110,   132,    96,   590,    96,  1503,   898,
    3048      132,   209,   110,   132,    32,   110,    97,   132,   907,   106,
    3049      909,   115,   109,   221,  1503,   110,   110,   916,    85,    86,
    3050       87,    49,   112,   112,   671,   132,  1503,   621,   869,   109,
    3051      132,   115,   626,   115,   875,  1423,   110,   110,   632,   132,
    3052      939,    69,   109,   484,   111,   110,   113,   114,   110,   667,
    3053     1058,    69,   563,    71,   564,   979,   565,  1445,   155,  1445,
    3054      959,   484,   567,  1215,  1452,   488,  1452,    72,   566,    74,
    3055       75,    76,  1473,  1368,   973,   916,  1544,   105,    83,    84,
    3056     1122,  1330,   981,  1302,  1073,   526,   985,   685,  1452,   685,
    3057      914,   685,  1092,   698,   973,    66,   922,   583,   869,   649,
    3058      791,   941,   193,   723,   109,   467,   111,   484,  1233,    -1,
    3059      801,    82,   117,   118,   733,  1503,    -1,  1503,   571,   147,
    3060      328,   218,   571,    -1,   815,   216,   571,   155,   156,   723,
    3061       -1,    -1,   973,    -1,    -1,   226,  1035,    -1,    -1,    -1,
    3062       -1,    -1,    -1,    -1,   791,    -1,   117,    -1,    -1,    -1,
    3063      591,   745,    -1,    -1,   801,    -1,    -1,    -1,   186,    -1,
    3064       -1,    -1,    -1,    -1,    -1,    -1,   528,    -1,   815,    -1,
    3065       -1,   533,    -1,   201,  1073,   272,   204,   205,   601,    -1,
    3066      603,   209,   279,    -1,    -1,    -1,    -1,    -1,  1087,   160,
    3067       -1,    -1,    -1,  1092,   635,   636,   637,    -1,   406,    -1,
    3068       -1,    -1,   230,   294,    -1,    -1,   234,    -1,   236,    -1,
    3069     1109,   805,   653,    -1,    -1,    -1,   810,   245,    -1,    -1,
    3070     1454,   583,  1456,   251,    -1,    -1,    -1,    -1,   256,    -1,
    3071      696,    -1,  1073,    -1,    -1,    -1,    -1,    -1,   266,    -1,
    3072       -1,    72,    -1,    74,    75,    76,   274,    -1,    -1,    -1,
    3073      221,   348,    83,    84,    -1,    -1,  1490,    -1,  1492,    -1,
    3074       -1,    -1,    -1,    -1,    -1,   688,    -1,    -1,   365,    -1,
    3075      711,    -1,   369,    -1,    -1,    -1,     0,    -1,   109,    -1,
    3076      111,    10,    11,    12,    13,    14,   117,   118,   259,  1188,
    3077       -1,    -1,   654,   264,   656,    -1,   719,   720,    -1,   130,
    3078       -1,    -1,    -1,    -1,   898,    -1,    -1,    -1,    32,    -1,
    3079       39,   905,  1211,   341,    -1,    -1,    -1,   345,    -1,    -1,
    3080       -1,    -1,   788,   351,    -1,    -1,    -1,   921,  1019,  1020,
    3081       -1,    -1,    -1,    -1,    -1,   432,   364,    -1,    67,    -1,
    3082      368,    -1,    -1,   371,   706,    69,    -1,  1188,    -1,   943,
    3083      944,   945,   443,  1252,    -1,  1254,  1255,    -1,    -1,    -1,
    3084       -1,    -1,   803,    -1,    10,    11,    12,    13,    14,    -1,
    3085      811,    -1,  1019,  1020,    -1,    -1,    -1,    -1,   469,   350,
    3086      109,    -1,   111,    -1,    -1,    -1,  1077,  1078,   117,   118,
    3087      418,   814,    -1,    39,    -1,    -1,    -1,    -1,    -1,   865,
    3088       -1,    -1,    -1,   826,    -1,   433,    -1,  1001,    -1,    -1,
    3089      438,    -1,    -1,    -1,    -1,   506,    -1,    -1,   446,    -1,
    3090      511,    67,    -1,   514,    -1,    -1,    -1,    -1,    -1,    -1,
    3091     1077,  1078,   156,    -1,    -1,   876,   464,    -1,    -1,   467,
    3092       -1,    -1,   908,    -1,    10,    11,    12,    13,    14,    -1,
    3093       -1,    -1,    -1,    -1,   482,    -1,   484,    -1,    -1,    -1,
    3094      431,    -1,    -1,   109,   492,   111,    -1,    -1,   496,    -1,
    3095       -1,   117,   118,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    3096       -1,    -1,  1381,  1382,   907,    -1,   909,   953,  1082,    -1,
    3097       -1,  1390,  1391,   590,    -1,    -1,    -1,   525,   526,    -1,
    3098       -1,    67,   473,   944,    -1,    -1,   230,    -1,    -1,    -1,
    3099       -1,    -1,    -1,    -1,    -1,    -1,   939,    -1,    -1,    -1,
    3100       -1,    -1,   988,    -1,    -1,   622,    -1,   251,    -1,  1428,
    3101     1124,    -1,   256,    -1,    -1,    -1,    -1,     0,    -1,    -1,
    3102       -1,   638,    -1,   109,   572,   111,    -1,    -1,    -1,    -1,
    3103       -1,   117,   118,    -1,    72,   652,    74,    75,    76,    -1,
    3104       -1,    -1,   590,   591,    -1,    83,    84,    -1,  1259,    32,
    3105       -1,    -1,    -1,  1039,    -1,   603,  1267,  1268,  1269,   670,
    3106     1227,  1022,  1023,    -1,    -1,    -1,  1485,  1486,   679,    -1,
    3107       -1,   109,   683,   621,    -1,    -1,  1495,   959,   626,   117,
    3108      118,  1042,    -1,    -1,   632,    -1,    69,   635,   636,   637,
    3109     1509,  1510,  1259,    -1,    -1,    -1,    -1,  1211,    -1,   981,
    3110     1267,  1268,  1269,   985,   595,   653,    72,   351,    74,    75,
    3111       76,    -1,    -1,    -1,    -1,  1534,   733,    83,    84,  1233,
    3112     1331,    -1,    -1,   671,    -1,    -1,    10,    11,    12,    13,
    3113       14,    -1,   623,  1119,   682,    -1,    -1,   628,    -1,    -1,
    3114       -1,    -1,    -1,   109,  1087,   111,    -1,    -1,    -1,  1092,
    3115       -1,   117,   118,  1035,    -1,    39,    -1,    -1,    -1,    -1,
    3116      708,    -1,    -1,   711,  1331,    -1,    -1,    66,    -1,    -1,
    3117       -1,    -1,   720,   156,   418,   723,    -1,    -1,    -1,    -1,
    3118       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,   433,
    3119       74,    75,    76,    -1,   438,  1181,  1182,   745,   746,    83,
    3120       84,    -1,   446,   751,    -1,    -1,    -1,    -1,   699,    -1,
    3121       -1,  1325,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,
    3122      464,    -1,   713,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3123       -1,  1192,  1193,   117,   118,    -1,    -1,    -1,   482,    -1,
    3124      484,    -1,    -1,   791,    -1,    -1,    -1,    -1,    -1,    -1,
    3125       -1,    -1,    -1,   801,  1215,   803,    -1,   805,    -1,    -1,
    3126      808,   160,   810,   811,    -1,    -1,    -1,   815,   251,    -1,
    3127       -1,    -1,  1233,   256,    -1,    -1,    -1,   825,    -1,    -1,
    3128       -1,   898,   526,    -1,    -1,    -1,    -1,    -1,    -1,   900,
    3129       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3130       19,    20,    21,    22,    23,    24,    25,    26,    27,  1423,
    3131       -1,    30,    31,    32,    -1,    -1,   807,  1278,  1279,    -1,
    3132       39,     0,   221,    -1,    -1,    -1,  1287,    -1,   876,    -1,
    3133       -1,  1292,    -1,    -1,    72,    -1,    74,    75,    76,    -1,
    3134     1454,    -1,  1456,    -1,    -1,    83,    84,   591,    67,    -1,
    3135      898,    -1,    -1,    32,    -1,    74,    75,   905,   906,    -1,
    3136      259,   909,    -1,    -1,  1325,   264,    -1,    -1,   351,    -1,
    3137     1252,   109,  1254,  1255,    -1,    -1,  1490,    -1,  1492,   117,
    3138      118,    -1,    -1,    -1,    -1,    -1,    -1,   935,    -1,    -1,
    3139       69,   635,   636,   637,    -1,   943,   944,    -1,   117,   118,
    3140     1386,    -1,    -1,    -1,    -1,  1519,    -1,    -1,    -1,   653,
    3141       -1,    -1,    -1,    -1,    -1,    -1,  1402,    -1,    -1,    -1,
    3142       -1,    -1,    -1,    -1,    -1,    -1,    -1,   671,    -1,    -1,
    3143       -1,    -1,    -1,    -1,    -1,   418,    -1,  1398,   682,    -1,
    3144       -1,    -1,  1053,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3145      433,   350,    -1,  1001,    -1,   438,    -1,    -1,    -1,    -1,
    3146       -1,    -1,  1423,   446,   708,    -1,  1014,   711,    -1,    -1,
    3147       -1,  1019,  1020,    -1,  1022,  1023,    -1,   156,    -1,    -1,
    3148       -1,   464,    -1,    -1,  1445,    -1,  1472,  1473,    -1,    -1,
    3149       -1,  1452,    -1,    -1,  1042,    -1,    -1,    -1,    -1,   482,
    3150       -1,   484,   746,    -1,    -1,    -1,    -1,    -1,  1390,  1391,
    3151       -1,    -1,    -1,  1004,    -1,    -1,    10,    11,    12,    13,
    3152       14,    -1,    10,    11,    12,    13,    14,    -1,    -1,  1077,
    3153     1078,    -1,   431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3154       -1,    -1,  1503,   526,    -1,    39,  1428,   791,    -1,    -1,
    3155       -1,    39,    -1,    -1,    -1,    -1,    -1,   801,    -1,   803,
    3156       -1,    -1,    -1,    -1,   808,    -1,  1509,   811,    -1,    -1,
    3157       -1,   815,   251,    67,   473,    -1,  1124,   256,    72,    67,
    3158       74,    75,    76,    -1,    72,    -1,    74,    75,    76,    83,
    3159       84,    -1,    -1,    -1,  1211,    83,    84,    -1,    -1,    -1,
    3160       -1,    -1,  1150,    -1,  1486,    -1,    -1,    -1,   591,    -1,
    3161       -1,    -1,    -1,  1495,    -1,   109,    -1,   111,    -1,    -1,
    3162       -1,   109,    -1,   117,   118,    -1,    -1,    -1,    -1,   117,
    3163      118,    -1,   876,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3164       75,    76,    -1,    -1,    -1,  1193,    -1,    -1,    83,    84,
    3165       -1,    -1,   635,   636,   637,    -1,    -1,    -1,    -1,    -1,
    3166       -1,    -1,   906,  1211,    -1,    -1,    -1,  1215,    -1,    -1,
    3167      653,    -1,   351,    -1,   109,    -1,   111,    -1,    -1,  1227,
    3168       -1,  1229,   117,   118,    -1,  1233,    66,    -1,   671,    -1,
    3169     1301,    -1,    -1,    -1,    -1,    75,   595,    -1,    -1,   682,
    3170       -1,  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3171       -1,  1259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1267,
    3172     1268,  1269,    -1,    -1,   623,   708,    -1,    -1,   711,   628,
    3173     1278,  1279,    -1,    -1,    -1,    -1,    -1,   117,     0,   418,
    3174       -1,    -1,    -1,    -1,  1292,    -1,    -1,    -1,    -1,    -1,
    3175       -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,   438,
    3176       -1,    -1,    -1,   746,  1381,    -1,    -1,   446,    -1,    -1,
    3177       32,    -1,    -1,    -1,    -1,  1019,  1020,  1325,  1022,  1023,
    3178      160,    -1,    -1,  1331,    -1,   464,    -1,    -1,    -1,    -1,
    3179       -1,    -1,    -1,    -1,    -1,    -1,  1287,    -1,  1042,    -1,
    3180      699,    -1,    -1,   482,    -1,   484,    -1,    69,   791,    -1,
    3181       -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,   801,    -1,
    3182      803,    -1,    -1,    -1,    -1,   808,    -1,    -1,   811,    -1,
    3183       -1,    -1,   815,  1077,  1078,    -1,    -1,    -1,    -1,    -1,
    3184       -1,   221,  1453,    -1,  1455,    -1,    -1,   526,    -1,    -1,
    3185     1398,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3186       53,    -1,    55,    -1,    -1,    58,    59,    60,    -1,    62,
    3187       -1,    -1,    -1,    -1,    -1,  1423,    -1,    -1,  1489,   259,
    3188     1491,    39,    -1,    76,   264,    -1,    -1,    -1,    -1,    -1,
    3189       -1,    -1,    -1,   876,   156,    88,    89,  1445,    -1,   279,
    3190       -1,    -1,    -1,    -1,  1452,    -1,  1150,    -1,   807,    67,
    3191       -1,    -1,   591,    -1,    72,    -1,    74,    75,    76,    -1,
    3192       -1,    -1,  1533,   906,  1535,    83,    84,    -1,    -1,    -1,
    3193       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1548,  1549,    -1,
    3194       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1193,
    3195       -1,   109,    -1,   111,    -1,  1503,   635,   636,   637,   117,
    3196      118,    -1,  1510,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3197      350,  1215,    -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,
    3198       -1,    -1,    -1,  1227,    -1,  1229,    -1,    -1,    -1,   251,
    3199       -1,    -1,   671,    -1,   256,    -1,    -1,    -1,    -1,    -1,
    3200       -1,    -1,    -1,   682,    -1,    -1,    -1,    -1,    -1,    10,
    3201       11,    12,    13,    14,    -1,  1259,    -1,    -1,    -1,    -1,
    3202       -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,    -1,   708,
    3203       -1,    -1,   711,    -1,  1278,  1279,  1019,  1020,    39,  1022,
    3204     1023,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1292,    -1,
    3205       -1,   431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1042,
    3206       -1,    -1,    -1,    -1,    -1,    -1,    67,   746,   448,    -1,
    3207       -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
    3208       -1,    -1,    83,    84,    -1,    -1,    -1,  1331,    -1,   351,
    3209       -1,    -1,    -1,   473,  1077,  1078,    26,    27,    28,    -1,
    3210       -1,    -1,    -1,    -1,    -1,  1004,    -1,    -1,   109,    -1,
    3211       -1,    -1,   791,    -1,    -1,    -1,   117,   118,    -1,    -1,
    3212       -1,    -1,   801,    -1,   803,    -1,    -1,    -1,    -1,   808,
    3213       -1,    -1,   811,    -1,    -1,    -1,   815,    -1,    97,    98,
    3214       99,   100,   101,   102,   103,   104,   105,   106,   107,    -1,
    3215       -1,   344,    -1,   346,  1398,    -1,   418,    -1,    -1,    -1,
    3216       -1,    -1,    -1,    -1,   357,   358,    -1,  1150,    98,    -1,
    3217      100,   433,   131,    -1,    -1,    -1,   438,    -1,    -1,    -1,
    3218       -1,    -1,    -1,    -1,   446,    -1,    -1,    -1,    -1,    -1,
    3219       -1,    -1,    -1,    -1,    -1,    -1,    -1,   876,    -1,    -1,
    3220       -1,  1445,   464,    -1,    -1,    -1,    -1,    -1,  1452,    -1,
    3221     1193,    -1,    -1,    -1,    -1,   595,    -1,    -1,    -1,    -1,
    3222      482,    -1,   484,    -1,    -1,    -1,    -1,   906,    -1,    -1,
    3223       -1,    -1,  1215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3224       -1,    -1,    -1,   623,  1227,    -1,  1229,    -1,   628,    -1,
    3225       -1,   181,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1503,
    3226       -1,   191,   192,    -1,   526,    -1,   196,    -1,   198,   199,
    3227       -1,    -1,    -1,    -1,    -1,    -1,  1259,    -1,    -1,    -1,
    3228       -1,    -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,    -1,
    3229       -1,    -1,    -1,  1192,    -1,  1278,  1279,    -1,    -1,    -1,
    3230       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1292,
    3231       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   699,
    3232       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   591,
    3233       -1,    -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,
    3234     1019,  1020,    -1,  1022,  1023,    -1,    -1,    -1,  1331,    -1,
    3235       -1,    -1,    -1,   733,    -1,    -1,    -1,    -1,    -1,    -1,
    3236       -1,    -1,    -1,  1042,     7,    -1,    -1,    10,    11,    12,
    3237       13,    14,    -1,   635,   636,   637,    -1,    -1,    -1,    -1,
    3238       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1287,    -1,
    3239       -1,   653,    -1,    -1,    37,    38,    39,    40,  1077,  1078,
    3240       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   671,
    3241       -1,    -1,    -1,    -1,    -1,  1398,    -1,    -1,    -1,    -1,
    3242      682,    -1,    -1,    66,    67,    -1,    -1,   807,    -1,    72,
    3243       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3244       83,    84,    -1,    86,    87,    -1,   708,    -1,    -1,   711,
    3245       -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,
    3246       -1,    -1,  1445,    -1,    -1,    -1,   109,    -1,   111,  1452,
    3247       -1,  1150,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3248       -1,    -1,    39,    -1,   746,    -1,    -1,    -1,    -1,    -1,
     2889       0,     1,   186,    43,   239,   185,   204,     0,    43,   219,
     2890      43,   116,   185,   521,   534,   185,     1,   875,   186,     0,
     2891       1,   185,   757,    51,   647,   603,   750,   185,     0,     1,
     2892     281,   621,    32,   750,  1041,     0,  1022,    43,   185,    32,
     2893     345,   185,   750,    43,   168,   169,   513,   349,   875,    49,
     2894     156,    32,   603,    32,     0,   693,    49,   349,   187,     0,
     2895      32,   572,    57,    63,   601,  1322,    66,    32,    43,    69,
     2896      63,     0,     1,    66,   696,    63,    69,  1399,   734,   492,
     2897       0,   109,   266,   496,    69,   265,    32,   601,    69,    39,
     2898      39,    32,   265,   490,    66,   265,   201,    69,   266,   601,
     2899      39,   265,    43,    32,   604,   105,   601,   265,    49,    49,
     2900     610,   106,    32,   113,   109,   418,   116,   117,   265,    82,
     2901      66,   265,    63,    63,    39,    66,    66,    39,    69,    69,
     2902     601,   984,   261,   262,   284,   438,    43,    66,    28,   601,
     2903      69,   105,    72,   446,   132,   185,   146,   147,  1470,   601,
     2904     185,    72,   185,    49,   147,   155,   156,   307,   308,   109,
     2905     160,   111,   111,  1420,    39,   787,    82,   160,    72,   364,
     2906     109,    39,   111,   368,  1021,  1022,    82,   482,    96,   185,
     2907     688,  1034,   906,  1116,   156,   185,   186,  1120,    78,   906,
     2908     156,   155,     0,   186,   110,   345,   488,   109,   906,   111,
     2909     410,   201,   132,    96,   122,   111,   147,   147,   605,   209,
     2910     185,   132,   609,   117,  1041,    64,   209,   113,   109,   160,
     2911     160,   221,   406,   218,    32,   265,   109,   110,   221,   122,
     2912     265,   381,   265,   630,   109,   256,   111,   634,   406,   239,
     2913    1226,   109,   864,   111,   185,   186,   186,   825,   719,   221,
     2914     146,   251,   987,   504,    57,    44,    45,   719,   251,   259,
     2915     109,   426,   427,   901,   264,   265,   266,   719,   209,   209,
     2916     251,   271,   251,   266,   825,   221,   813,   272,   185,   251,
     2917     221,   221,  1289,   794,   279,   907,   251,   109,   696,    85,
     2918    1276,   396,   221,  1502,   294,    49,   480,   636,   637,   813,
     2919     109,   603,   925,   106,  1453,   251,   109,   307,  1053,  1054,
     2920     251,   813,   480,   209,   653,   815,   621,   113,   813,   424,
     2921    1529,   626,   251,   323,   265,   430,   115,   433,   328,   494,
     2922     952,   251,    95,    44,    45,   328,   107,   112,  1487,   116,
     2923    1489,   341,   813,   239,   109,   345,   111,   109,   513,   349,
     2924     350,   813,   155,   348,  1212,   132,   934,     0,   110,   113,
     2925     131,   813,    44,    45,   364,   987,   129,  1473,   368,   131,
     2926     365,   371,   711,  1479,   369,   271,   116,   341,   130,   682,
     2927      72,    11,    74,    75,  1129,  1212,   228,   328,   328,    32,
     2928     130,    83,    84,  1499,  1050,   590,   396,   418,  1504,   114,
     2929     550,   551,   552,   114,   350,   247,   406,   371,   349,  1395,
     2930    1000,   307,   110,   406,   579,   218,  1038,   438,   116,   933,
     2931     526,   109,   114,   111,   424,   446,   426,   427,  1275,  1276,
     2932     430,   933,   114,   433,    72,  1442,   110,   632,   933,   110,
     2933      72,   746,  1449,   251,  1502,    83,    84,   110,   256,   345,
     2934     847,    83,    84,   116,   454,   209,   130,   119,   120,   130,
     2935     968,   433,  1289,   802,  1522,   406,   406,   433,   110,   272,
     2936     112,  1529,   472,   111,   116,   128,   279,   110,   131,   111,
     2937     480,   116,   482,   116,   484,   591,   737,   480,   488,   131,
     2938     132,   484,    70,  1500,   494,    73,  1118,   132,    76,   907,
     2939      78,    90,    91,   484,   688,  1128,   506,    85,   508,  1009,
     2940    1010,   511,   484,   513,   514,   982,   482,   271,   116,   484,
     2941     688,   521,  1100,   825,   648,   525,   526,   473,   657,   942,
     2942     426,   427,   130,   825,  1387,  1388,   125,   126,   484,   109,
     2943     294,   111,   939,   484,   952,   348,   110,   488,  1395,   116,
     2944     655,   116,   116,   307,   526,   484,  1178,  1179,    72,   116,
     2945     526,   525,   365,   130,   484,    72,   369,    74,    75,    83,
     2946      84,   571,   572,    88,    89,   132,    83,    84,  1086,   579,
     2947    1403,    72,     3,  1091,     4,     5,     6,     7,     8,     9,
     2948     590,   591,    83,    84,    72,   595,   116,   111,   494,     3,
     2949     905,   601,     1,   603,   111,    83,    84,   757,   251,   804,
     2950     418,   116,   132,   256,   809,  1442,     0,   513,   110,   591,
     2951     111,   621,  1449,     0,   116,   591,   626,   622,   628,   432,
     2952     438,   109,   632,  1289,   212,   635,   636,   637,   446,   111,
     2953     111,   113,   113,   638,   112,   109,   938,   111,   116,    69,
     2954     116,    71,   862,   653,   116,   655,   109,   652,   130,   130,
     2955     601,   682,   603,   635,   636,   637,   132,   109,   116,   111,
     2956     132,   591,   882,  1500,  1497,   116,   484,   623,   116,  1502,
     2957     116,   653,   131,   579,   132,   685,    72,   708,   688,   116,
     2958      76,   132,   116,   109,   132,  1000,   132,    83,    84,  1522,
     2959     454,   279,   897,    72,   810,   132,  1529,  1363,   132,   944,
     2960    1118,   711,   712,   713,    83,    84,   110,   109,   116,   719,
     2961     720,   116,   116,   109,   908,   621,   906,    92,    93,   110,
     2962     626,   117,   118,   906,   132,   116,   906,   132,   733,   711,
     2963     908,   109,   906,   110,   868,   745,   746,   688,   906,   116,
     2964     750,   751,   506,   699,   508,   109,   109,   511,   111,   906,
     2965     514,  1383,   906,   110,   117,   118,   294,   713,   112,   116,
     2966    1178,  1179,   116,   109,   352,   418,   354,  1399,   719,   720,
     2967     746,   745,  1506,   109,   112,   111,  1306,   590,   116,  1506,
     2968    1446,   109,  1448,   111,   794,   438,   109,   112,  1506,   117,
     2969     118,   116,   802,   446,   804,    72,   806,    74,    75,   809,
     2970     810,   110,   109,   813,   111,  1013,    83,    84,   110,   622,
     2971     117,   118,    72,   110,   116,   825,    76,   110,   112,   116,
     2972     802,   110,   116,    83,    84,   638,   110,   116,   810,   482,
     2973     110,   484,  1147,   112,   810,  1501,   116,  1469,  1470,   652,
     2974    1000,   115,   116,   252,    10,    11,    12,    13,    14,   109,
     2975     806,   111,   110,   111,   442,  1116,   109,   117,   118,  1120,
     2976    1121,   110,   813,   117,   682,   875,   110,   116,     3,   123,
     2977     124,   110,   116,    39,   825,    10,    11,    12,    13,    14,
     2978     810,  1041,    58,    59,   875,   110,   110,   897,   426,   427,
     2979     708,   116,  1086,   875,   904,   905,   906,  1091,   908,   110,
     2980     110,    67,  1036,   109,    39,    72,   116,   115,  1086,    76,
     2981     920,  1226,   109,  1091,   111,   109,    83,    84,  1123,   875,
     2982     733,   685,    64,   933,   934,   110,   115,   116,   938,   905,
     2983     904,   116,    67,   943,   944,    72,   875,    74,    75,    76,
     2984       0,     1,   109,    44,    45,   875,    83,    84,   943,   132,
     2985     117,   118,   943,   110,    66,   906,   109,   908,   968,   116,
     2986     109,   943,   111,   109,  1482,  1383,   553,   554,   506,    29,
     2987      30,   112,    32,   511,   132,  1236,   514,   506,   109,   508,
     2988     111,  1399,   511,    43,   911,   514,   913,   938,   114,    49,
     2989    1000,   555,   556,  1108,   114,   114,    72,    57,    74,    75,
     2990      76,   561,   562,    63,   943,   117,    66,    83,    84,    69,
     2991     132,  1021,  1022,  1531,   132,     4,     5,     6,     7,     8,
     2992       9,   109,    82,    83,   557,   558,   559,   560,    82,   682,
     2993     568,  1041,     4,     5,     6,     7,     8,     9,   944,  1021,
     2994    1022,    85,    86,    87,   109,  1021,   106,  1003,   160,   109,
     2995    1041,  1469,  1470,   109,   112,   708,   116,   875,   467,  1041,
     2996      82,    33,  1323,   118,   127,   109,  1327,   111,    94,   113,
     2997     114,  1081,   109,   110,   111,   128,  1086,   109,   110,   111,
     2998      69,  1091,    71,   131,   897,  1041,   111,   147,   109,   109,
     2999    1100,   110,   110,   746,  1000,   155,     3,    69,  1108,    71,
     3000     160,   112,  1041,    10,    11,    12,    13,    14,   112,   221,
     3001     112,  1041,   110,  1123,   109,   110,   111,   110,   110,   528,
     3002     110,   109,   110,   111,   533,   185,   186,    72,   109,    74,
     3003      75,    76,    39,   112,   111,  1086,   114,  1147,    83,    84,
     3004    1091,   201,   116,   132,   131,   733,   114,   259,   114,   209,
     3005     109,   112,   264,    58,    59,    60,   920,   110,   218,   110,
     3006      67,   221,   112,  1424,   109,   112,   111,   130,   228,   112,
     3007     112,  1147,   117,   118,   583,  1249,  1250,  1251,   130,  1189,
     3008    1190,   130,   116,   243,    29,   130,   110,   247,   110,   112,
     3009     115,   251,   252,   114,   112,  1190,   110,   116,  1208,  1190,
     3010     115,   109,  1212,   115,   110,   265,   266,  1189,  1190,   110,
     3011     130,   110,   272,   116,   110,   132,  1226,     3,   110,   279,
     3012    1230,  1212,   875,  1041,    10,    11,    12,    13,    14,   110,
     3013    1212,   116,   110,  1189,  1208,  1230,   110,   110,   350,  1230,
     3014     110,   110,   110,   110,     1,   654,   110,   656,  1230,   110,
     3015    1189,  1190,   905,    39,   110,   110,  1212,   110,    72,   110,
     3016      74,    75,    76,   115,  1379,  1275,  1276,    29,   328,    83,
     3017      84,  1516,   131,  1212,  1284,   110,   130,   116,   875,  1289,
     3018     112,    67,  1212,   112,   110,   110,   116,   110,   348,   349,
     3019     130,  1230,    49,  1275,  1276,   109,   109,   706,  1289,  1275,
     3020     116,   112,  1284,   117,   118,   365,   114,  1289,   110,   369,
     3021     110,   110,  1322,  1507,   112,   116,  1506,  1081,   110,   431,
     3022     380,   116,   116,  1506,    55,   110,  1506,  1322,  1284,  1507,
     3023     110,  1322,  1506,  1289,   112,   109,   396,  1531,  1506,   109,
     3024    1322,   109,   109,   109,   132,  1284,   406,   130,   105,  1506,
     3025    1289,   112,  1506,  1531,   110,   115,   113,   110,   110,  1289,
     3026     115,   473,   110,   128,   424,   115,    97,  1482,   114,  1379,
     3027     430,   112,   432,  1378,   132,   112,   116,   112,   110,    72,
     3028     110,    74,    75,  1322,   110,  1395,   110,   112,  1041,   146,
     3029      83,    84,   112,   112,  1212,  1208,   112,    72,   155,    74,
     3030      75,    76,   112,    72,   112,    74,    75,   467,    83,    84,
     3031    1420,    47,   472,  1395,    83,    84,   109,   132,   132,   132,
     3032     480,   114,   112,   132,   484,  1420,   132,   115,   488,  1420,
     3033     110,   491,  1442,   493,   109,   130,   115,   110,  1420,  1449,
     3034     109,  1451,   112,  1453,   115,   114,   112,  1044,   205,   112,
     3035     112,  1442,   209,   112,   110,   110,  1506,   109,  1449,   112,
     3036    1442,  1506,   193,  1506,   112,   109,   109,  1449,   528,    60,
     3037     110,  1289,  1482,   533,   132,   110,   114,  1487,   109,  1489,
     3038     112,  1420,   239,   595,   112,   216,  1442,   110,   112,   110,
     3039    1500,    96,    96,  1449,  1147,   226,  1506,  1507,   109,   109,
     3040     464,   115,   132,  1442,  1507,   130,  1516,   110,   110,  1500,
     3041    1449,   623,  1442,   110,   271,   110,   628,   274,  1500,  1449,
     3042     116,  1531,    42,   583,   132,   132,   110,   110,  1531,    66,
     3043     590,    96,    96,   132,   110,   110,   110,   294,    75,   132,
     3044     132,   601,   110,   603,  1500,   115,   112,   132,   115,   958,
     3045     307,   112,   109,   132,   110,  1506,    30,   115,   110,  1212,
     3046     132,  1500,   622,   294,   110,  1378,   110,   667,  1057,   563,
     3047    1500,   980,   978,  1226,   565,   984,  1212,  1365,   638,   564,
     3048     117,   464,   566,   643,   341,   567,  1470,   699,   345,  1541,
     3049    1299,  1327,   652,  1121,   654,   655,   656,  1072,  1449,   685,
     3050     685,   713,   913,   698,    66,  1091,   921,   364,    82,    83,
     3051    1516,   368,   583,   972,   371,  1212,   868,   723,   649,   940,
     3052      82,  1230,   484,   160,  1442,  1034,     0,     1,   688,   733,
     3053     571,  1449,   692,   571,   694,   571,  1289,    72,   698,    74,
     3054      75,    76,    -1,    -1,    -1,    -1,   706,    -1,    83,    84,
     3055      -1,    -1,    -1,  1191,  1192,   117,  1194,    -1,    32,   719,
     3056     720,    -1,    -1,  1201,    -1,  1203,    -1,    -1,    -1,   426,
     3057     427,    -1,    -1,   733,   109,    49,    -1,    10,    11,    12,
     3058      13,    14,  1500,    -1,   221,    -1,    -1,  1451,    -1,  1453,
     3059      -1,    -1,    -1,    -1,   806,    69,    -1,   454,   160,    -1,
     3060      85,    86,    87,    -1,    -1,    -1,    39,   671,  1305,    -1,
     3061     467,    -1,   443,    -1,    -1,    -1,    -1,    10,    11,    12,
     3062      13,    14,   259,  1487,   109,  1489,   111,   264,   113,   114,
     3063      -1,   105,    -1,    -1,    67,   492,    -1,   494,   469,   496,
     3064      -1,    -1,   279,    -1,    -1,    -1,    39,    -1,    -1,   506,
     3065      -1,   508,    -1,   813,   511,    -1,   513,   514,    -1,   221,
     3066    1357,    -1,    -1,  1360,    -1,   825,    -1,    -1,   525,   243,
     3067      -1,    -1,    -1,   147,    67,   506,   109,    -1,   111,    -1,
     3068     511,   155,   156,   514,   117,   118,    -1,    -1,   671,  1442,
     3069      -1,    -1,    -1,    -1,    -1,    -1,  1449,   259,    -1,    -1,
     3070      -1,    -1,   264,    -1,    -1,    -1,  1403,    -1,   868,    -1,
     3071      -1,  1408,   186,   350,   874,    -1,   109,    -1,   111,    -1,
     3072      -1,  1359,   579,    -1,   117,   118,   790,   201,    -1,    -1,
     3073     204,   205,    -1,   590,    -1,   209,   800,   897,    -1,  1436,
     3074    1249,  1250,  1251,    -1,    -1,    -1,   906,  1500,   908,    -1,
     3075     814,    -1,    -1,    -1,    -1,   915,   230,    -1,    -1,    -1,
     3076     234,    -1,   236,    -1,   621,    -1,    -1,    -1,    -1,   626,
     3077      -1,   245,    -1,    -1,    -1,   632,     0,   251,   938,    -1,
     3078      -1,    -1,   256,    -1,    -1,    -1,    -1,    -1,   350,    -1,
     3079      -1,  1003,   266,    -1,   431,    -1,    -1,    -1,   958,    -1,
     3080     274,    10,    11,    12,    13,    14,   380,   790,    32,    -1,
     3081      -1,   448,   972,    -1,    -1,    -1,    -1,   800,    -1,    -1,
     3082     980,    -1,    -1,  1520,   984,    -1,    -1,    -1,   685,  1526,
     3083      39,   814,    -1,    -1,    -1,    -1,   473,    -1,    -1,   670,
     3084    1537,    -1,   671,    -1,  1541,    69,    -1,    -1,   679,    -1,
     3085      -1,    -1,   683,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3086      -1,    72,    -1,    74,    75,    76,   723,   341,    -1,   431,
     3087      -1,   345,    83,    84,  1034,    -1,    -1,   351,  1387,  1388,
     3088      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,    -1,
     3089     364,    -1,    -1,    -1,   368,    -1,    -1,   371,   109,    -1,
     3090     109,    -1,   111,    -1,    -1,    -1,   117,   118,   117,   118,
     3091      -1,   473,  1072,    -1,    -1,    -1,  1425,   491,    -1,   493,
     3092      -1,    -1,    -1,    -1,    -1,    -1,  1086,    -1,    -1,    -1,
     3093      -1,  1091,   156,    97,    98,    99,   100,   101,   102,   103,
     3094     104,   105,   106,   107,   418,    -1,    -1,   804,  1108,    -1,
     3095      -1,    -1,   809,    -1,  1018,  1019,    -1,    -1,   595,   433,
     3096      -1,   790,    -1,    -1,   438,    -1,    -1,   131,    -1,    -1,
     3097      -1,   800,   446,    -1,  1483,    -1,    -1,  1189,    -1,    -1,
     3098      -1,    -1,    -1,  1492,    -1,   814,   623,    -1,    -1,    -1,
     3099     464,   628,    72,   467,    74,    75,    76,    -1,    -1,    -1,
     3100      -1,    -1,    -1,    83,    84,    -1,   230,    -1,   482,    -1,
     3101     484,    -1,  1076,  1077,    -1,    -1,    -1,    -1,   492,    -1,
     3102      -1,    -1,   496,    -1,    -1,  1185,    -1,   251,    -1,   109,
     3103      -1,   111,   256,   595,    -1,  1018,  1019,   117,   118,    -1,
     3104     897,    -1,    -1,    -1,    -1,    -1,    -1,   904,  1208,    -1,
     3105      -1,   525,   526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3106      -1,   623,   699,   920,    -1,    -1,   628,    -1,   899,   643,
     3107      -1,    -1,  1284,     0,    -1,    -1,   713,    -1,    -1,    -1,
     3108      -1,    -1,    -1,    -1,    -1,   942,   943,   944,    -1,  1249,
     3109    1250,  1251,    -1,  1076,  1077,    -1,   733,    -1,   572,    72,
     3110      -1,    74,    75,    76,    -1,    32,    -1,    -1,    -1,    -1,
     3111      83,    84,    -1,    -1,    -1,    -1,   590,   591,   692,    -1,
     3112     694,    -1,    -1,    -1,   698,    -1,    -1,   351,    72,   603,
     3113      74,    75,    76,    -1,    -1,    -1,   109,   699,   111,    83,
     3114      84,    -1,    69,  1000,   117,   118,    -1,   621,    -1,    -1,
     3115      -1,   713,   626,    -1,    -1,    -1,    -1,    -1,   632,    -1,
     3116    1224,   635,   636,   637,    -1,   109,    -1,   111,    -1,   806,
     3117      -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,   653,
     3118      -1,    -1,    -1,    26,    27,    28,    -1,    -1,    -1,  1018,
     3119    1019,    -1,  1256,    -1,   418,    -1,    -1,   671,    -1,    -1,
     3120    1264,  1265,  1266,    -1,    -1,    -1,    -1,    -1,   682,   433,
     3121      -1,    -1,    -1,    -1,   438,    -1,    -1,    -1,  1378,  1379,
     3122      -1,  1052,   446,    -1,  1081,    -1,    -1,  1387,  1388,   156,
     3123      -1,    -1,    -1,    -1,   708,    -1,    -1,   711,    -1,    -1,
     3124     464,  1224,    -1,    -1,   806,    -1,   720,  1076,  1077,   723,
     3125      -1,    -1,    -1,    -1,    -1,    98,    -1,   100,   482,    -1,
     3126     484,    -1,    -1,    -1,  1328,  1425,  1123,    -1,    -1,    -1,
     3127      -1,   745,   746,  1256,    -1,    -1,    -1,   751,    -1,    -1,
     3128      -1,  1264,  1265,  1266,    -1,    -1,    -1,    -1,    -1,    -1,
     3129      -1,    -1,    -1,    -1,   868,    -1,    -1,    -1,    -1,    -1,
     3130     874,    -1,   526,    -1,    -1,    -1,    -1,    26,    27,    28,
     3131      -1,    -1,    -1,    -1,    -1,    -1,   790,    -1,    -1,    -1,
     3132      -1,    -1,  1482,  1483,   251,    -1,   800,    -1,   802,   256,
     3133     804,    -1,  1492,   807,    -1,   809,   810,    -1,   181,    -1,
     3134     814,   915,    -1,    -1,    -1,  1328,  1506,  1507,   191,   192,
     3135     824,  1208,    -1,   196,    -1,   198,   199,    -1,    -1,    -1,
     3136      -1,    -1,    -1,    -1,    -1,    -1,  1003,   591,    -1,    -1,
     3137      -1,  1531,    -1,  1230,    -1,    -1,    -1,    -1,    -1,    98,
     3138      -1,   100,    -1,    -1,    -1,     0,    -1,    -1,    -1,    -1,
     3139      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   972,    -1,
     3140      -1,   875,    -1,    -1,    -1,    -1,   125,    -1,    -1,    -1,
     3141      -1,   635,   636,   637,    -1,    -1,    -1,    32,    -1,    -1,
     3142      -1,    -1,    -1,   897,   351,    -1,    -1,  1256,    -1,   653,
     3143     904,   905,    -1,    -1,   908,  1264,  1265,  1266,    -1,    -1,
     3144      -1,  1003,    -1,    -1,    -1,    -1,    -1,   671,    -1,    -1,
     3145      -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,   682,    -1,
     3146     934,    -1,   181,    -1,    -1,  1322,    -1,  1298,   942,   943,
     3147     189,    -1,   191,   192,    -1,    -1,    -1,   196,    -1,   198,
     3148     199,    -1,    -1,    -1,   708,    -1,    -1,   711,    -1,    -1,
     3149      -1,   418,    -1,    -1,    -1,    -1,    -1,    -1,  1072,  1328,
     3150      -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     3151      -1,   438,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   446,
     3152      -1,    -1,   746,    -1,    -1,    -1,  1000,    10,    11,    12,
     3153      13,    14,    -1,    -1,    -1,    -1,    -1,   464,    -1,  1013,
     3154      -1,   156,    -1,    -1,  1018,  1019,    -1,  1021,  1022,   268,
     3155      -1,    -1,  1189,    -1,    -1,   482,    39,   484,    -1,    -1,
     3156      -1,    -1,    -1,  1420,    -1,    -1,   790,  1041,    -1,    -1,
     3157      -1,    -1,    -1,    -1,    -1,    -1,   800,    -1,   802,    -1,
     3158      -1,    -1,    -1,   807,    67,    -1,   810,    -1,    -1,    72,
     3159     814,    74,    75,    76,  1451,    -1,  1453,    -1,    -1,   526,
     3160      83,    84,  1076,  1077,    -1,    -1,    -1,    -1,    -1,    -1,
     3161      -1,  1185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1450,
     3162      -1,  1452,    -1,    -1,    -1,    -1,   109,  1189,   111,    -1,
     3163    1487,    -1,  1489,    -1,   117,   118,   251,    -1,    -1,    -1,
     3164      -1,   256,    -1,    -1,    -1,    -1,    -1,  1284,    -1,  1123,
     3165      -1,   875,    -1,    -1,    -1,  1486,    -1,  1488,    -1,  1516,
     3166      -1,    -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,
     3167      -1,    -1,    -1,  1147,    -1,    -1,    -1,    -1,    -1,     0,
     3168      -1,   905,    -1,    -1,    -1,    -1,    -1,   189,    -1,    -1,
     3169      -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,  1530,
     3170      -1,  1532,    -1,    -1,    -1,    -1,    -1,    -1,   635,   636,
     3171     637,    32,    -1,    -1,  1545,  1546,  1190,    -1,    -1,    -1,
     3172      -1,    -1,  1284,    -1,    -1,    -1,   653,    -1,    -1,    -1,
     3173      -1,    -1,   575,   576,  1208,    -1,   351,    -1,  1212,    -1,
     3174      -1,    -1,    -1,    -1,   671,    -1,    -1,    -1,    69,    -1,
     3175    1224,    -1,  1226,    -1,    -1,   682,  1230,    -1,    -1,    -1,
     3176      -1,   604,    -1,    -1,   607,   608,   268,   610,    -1,   612,
     3177     613,    -1,    -1,    -1,   617,   618,    -1,    -1,    -1,    -1,
     3178      -1,   708,  1256,    -1,   711,    -1,    -1,    -1,    -1,    -1,
     3179    1264,  1265,  1266,    -1,  1018,  1019,    -1,  1021,  1022,    -1,
     3180      -1,  1275,  1276,   418,    -1,    -1,    -1,    -1,    10,    11,
     3181      12,    13,    14,    -1,    -1,  1289,    -1,  1041,   433,   746,
     3182      -1,   323,    -1,   438,    -1,    -1,    -1,    -1,    -1,   331,
     3183      -1,   446,   334,    -1,    -1,   156,    -1,    39,    -1,    -1,
     3184      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1322,   464,
     3185      -1,    -1,  1076,  1077,  1328,    -1,   575,   576,    -1,    -1,
     3186      -1,    -1,    -1,   790,    -1,    67,    -1,   482,    -1,   484,
     3187      72,    -1,    -1,   800,    76,   802,    -1,    -1,    -1,    -1,
     3188     807,    83,    84,   810,    -1,   604,    -1,   814,   607,   608,
     3189      -1,   610,    -1,   612,   613,    -1,   398,    -1,   617,   618,
     3190     402,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
     3191      -1,   526,   755,   756,    -1,   117,   118,    -1,    -1,    -1,
     3192      -1,  1395,    -1,  1147,    -1,    -1,    -1,    -1,    -1,    -1,
     3193     251,    -1,    -1,    -1,    -1,   256,    -1,    -1,    -1,    -1,
     3194      -1,    -1,    -1,    -1,    -1,    -1,  1420,    -1,   875,    -1,
    32493195      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3250       -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,   702,
    3251       67,    -1,    -1,    -1,  1193,    72,   709,   710,    -1,    76,
    3252     1503,   714,    -1,    -1,    -1,    -1,    83,    84,    -1,   791,
    3253       -1,    -1,    -1,   726,    -1,    -1,  1215,    -1,   731,   801,
    3254       -1,   803,    -1,    -1,    -1,    -1,   808,    -1,  1227,   811,
    3255     1229,    -1,   109,   815,    -1,    -1,    -1,    -1,    -1,    -1,
    3256      117,   118,    -1,    -1,    -1,    -1,   759,    -1,    -1,    -1,
     3196      -1,    -1,    -1,    -1,    -1,    -1,  1190,    -1,  1442,    -1,
     3197      -1,    -1,    -1,    -1,    -1,  1449,   591,   479,   905,    -1,
     3198      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1212,    -1,
    32573199      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3258     1259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1267,  1268,
    3259     1269,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1278,
    3260     1279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3261       -1,    -1,    -1,  1292,   876,    -1,    -1,    -1,    -1,    -1,
    3262       -1,    -1,    -1,    -1,  1004,    -1,    -1,    -1,    -1,    -1,
    3263       -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
    3264       -1,    -1,    -1,    -1,   906,   575,   576,    -1,    -1,    -1,
    3265       -1,    -1,  1331,    -1,    -1,    -1,    -1,    -1,    49,    -1,
    3266       -1,    -1,    37,    38,    39,    40,   859,   860,   861,   862,
    3267       -1,   864,    -1,    -1,   604,    66,    -1,   607,   608,    -1,
    3268      610,    -1,   612,   613,    -1,    -1,   879,   617,   618,    -1,
    3269       -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3270      893,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3271       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,  1398,
    3272       -1,    -1,   113,    -1,    -1,    -1,   117,    -1,    -1,    -1,
    3273       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3274      933,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3275       -1,    -1,    -1,    -1,    -1,   146,    -1,  1019,  1020,    -1,
    3276     1022,  1023,    -1,    -1,    -1,   156,  1445,    -1,    -1,   160,
    3277       -1,    -1,    -1,  1452,    -1,    -1,    -1,    -1,    -1,    -1,
    3278     1042,    -1,    -1,    -1,    -1,   978,    -1,    -1,    -1,    -1,
    3279       -1,   984,    -1,    -1,    -1,    -1,   989,    -1,    -1,    -1,
    3280       -1,   994,    -1,   996,    -1,    -1,    -1,  1000,    -1,  1002,
    3281     1003,    -1,  1192,  1006,    -1,  1077,  1078,    -1,   209,    -1,
    3282       -1,    -1,  1015,    -1,  1503,   755,   756,    -1,    -1,    -1,
    3283      221,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3284     1033,  1034,    -1,    -1,    -1,    -1,    -1,    -1,   239,    10,
    3285       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3286       21,    22,    23,    24,    25,    26,    27,  1060,    -1,    -1,
    3287     1063,    -1,    -1,   264,    -1,    -1,    -1,    -1,    39,    -1,
    3288      271,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1150,    -1,
    3289       -1,    -1,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,
    3290       -1,    -1,    -1,   294,    -1,    -1,    67,  1287,    -1,    -1,
    3291       -1,    -1,    -1,  1106,    -1,    -1,   307,    -1,    -1,  1112,
    3292     1113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3293       -1,  1193,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1132,
    3294       -1,    -1,    -1,  1136,    -1,    -1,    -1,    -1,  1141,    -1,
    3295       -1,    -1,    -1,  1215,   345,    -1,    -1,    -1,    -1,   350,
    3296       -1,  1154,    -1,    -1,    98,  1227,   100,  1229,    -1,    -1,
    3297       -1,    -1,    -1,    -1,  1167,    -1,  1169,  1170,  1171,  1172,
    3298       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
    3299       -1,   125,  1185,    -1,  1187,    -1,    -1,  1259,  1191,    -1,
    3300       -1,    -1,    -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,
    3301       -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,    -1,    -1,
    3302       66,    -1,    -1,    -1,    -1,    -1,    -1,  1220,  1221,    75,
    3303     1292,    77,    -1,    79,    -1,   426,   427,    -1,    -1,    -1,
    3304       86,    -1,   433,    -1,    -1,    -1,    -1,   181,    -1,    -1,
    3305       -1,    -1,    -1,    -1,    -1,   189,    -1,   191,   192,    -1,
    3306       -1,    -1,   196,   454,   198,   199,    -1,    -1,    -1,  1331,
    3307       -1,   117,    -1,   119,   120,   121,    -1,  1270,  1271,    -1,
    3308       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1280,    -1,    -1,
    3309       -1,   482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3310       -1,    -1,    -1,   494,    -1,    -1,    -1,    -1,    -1,    -1,
    3311       -1,    -1,    -1,    -1,   160,   506,    -1,   508,    -1,    -1,
    3312      511,    -1,   513,   514,    -1,    -1,    -1,    -1,    -1,    -1,
    3313       -1,    -1,    -1,    -1,   268,   526,  1398,    -1,    -1,    -1,
    3314       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1341,  1079,
    3315     1343,  1344,  1345,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3316       -1,    -1,  1355,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3317       -1,  1364,    -1,    -1,    -1,   221,    -1,   223,   224,   225,
    3318       -1,    -1,    -1,  1445,    -1,    -1,    -1,    -1,   579,    -1,
    3319     1452,    -1,    -1,    -1,    -1,    -1,  1389,    -1,    -1,    -1,
    3320      591,    -1,    -1,    -1,   595,    -1,    -1,    -1,    -1,    -1,
    3321       -1,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,    -1,
    3322       -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,
    3323      621,    -1,    -1,   279,    -1,   626,    -1,    -1,    -1,  1432,
    3324     1433,  1503,    -1,    -1,   635,   636,   637,    -1,    -1,    -1,
    3325       -1,    -1,  1445,    -1,    -1,    -1,    -1,    -1,    -1,  1452,
    3326       -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3327       -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3328     1210,   101,   328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3329       -1,  1484,    -1,    -1,   685,  1488,    -1,    -1,    -1,    -1,
    3330       -1,    -1,    -1,    -1,   350,    -1,    -1,    -1,    -1,   355,
    3331      356,    -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,
    3332      711,    -1,   713,  1516,    -1,  1518,    -1,    -1,    -1,    -1,
    3333       -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,    -1,
     3200    1224,    -1,  1226,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3201      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,
     3202     635,   636,   637,    -1,    -1,    -1,  1500,    -1,    -1,    -1,
     3203     351,    -1,  1256,  1507,    -1,    -1,   755,   756,   653,    -1,
     3204    1264,  1265,  1266,    39,    -1,    -1,    -1,    -1,    -1,    -1,
     3205      -1,  1275,  1276,    -1,    -1,    -1,   671,    -1,    -1,    -1,
     3206      -1,    -1,    -1,    -1,    -1,  1289,    -1,   682,    -1,   571,
     3207     572,    67,    -1,    -1,   917,    -1,    72,    -1,    74,    75,
     3208      76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
     3209      -1,  1018,  1019,   708,  1021,  1022,   711,   418,    -1,    -1,
     3210      -1,    -1,    -1,    -1,  1328,    -1,    -1,    -1,    -1,    -1,
     3211      -1,    -1,   433,   109,  1041,   111,    -1,   438,    -1,    -1,
     3212      -1,   117,   118,    -1,    -1,   446,    -1,    -1,    -1,    -1,
     3213      -1,   746,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3214      -1,    -1,    -1,   464,    -1,    -1,    -1,    -1,    -1,  1076,
     3215    1077,    -1,    -1,    -1,    -1,    -1,   658,    -1,    -1,    -1,
     3216     662,   482,    -1,   484,    -1,    -1,    -1,    -1,    -1,    -1,
     3217      -1,  1395,    -1,    -1,    -1,   790,    -1,    -1,    -1,    -1,
     3218      -1,    -1,    -1,    -1,    -1,   800,    -1,   802,    -1,    -1,
     3219      -1,    -1,   807,   912,    -1,   810,    -1,    -1,   917,   814,
     3220      -1,    -1,    -1,    -1,    -1,   526,    53,    -1,    55,    -1,
     3221      -1,    58,    59,    60,    -1,    62,    -1,    -1,  1442,    -1,
     3222    1147,    -1,    -1,    -1,    -1,  1449,    -1,    -1,    -1,    76,
     3223      -1,    -1,    -1,    -1,    -1,  1078,    -1,    -1,    -1,    -1,
     3224      -1,    88,    89,    -1,    10,    11,    12,    13,    14,    -1,
    33343225      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3335       -1,   171,    -1,  1546,  1547,   746,    -1,    -1,    -1,    -1,
    3336      406,  1554,  1555,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3337       -1,    -1,    -1,    -1,   194,    -1,    -1,    -1,   424,    37,
    3338       38,    -1,    40,   429,    -1,   431,    -1,    -1,   208,    -1,
    3339       -1,    -1,    -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,
    3340       -1,    -1,   448,    -1,    -1,   451,   452,   227,    66,    -1,
    3341       -1,    -1,   803,   459,    72,    -1,   807,    -1,    76,    -1,
    3342      811,    79,    80,    81,    82,    83,    84,   473,    86,    87,
    3343       -1,    -1,   252,    -1,   480,    -1,    -1,   257,    -1,    -1,
    3344       -1,   575,   576,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3345      270,   109,    -1,   111,    -1,    -1,   276,    -1,   278,   117,
    3346      118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
    3347      604,    -1,   130,   607,   608,   295,   610,    -1,   612,   613,
    3348       -1,    -1,    -1,   617,   618,    10,    11,    12,    13,    14,
     3226     875,    -1,    -1,  1190,    -1,    -1,    -1,    -1,    -1,    -1,
     3227     591,    -1,    -1,    39,    -1,    -1,  1500,    -1,    -1,    -1,
     3228      -1,    -1,    -1,    -1,    -1,  1212,    -1,    -1,    -1,    -1,
     3229     905,    -1,   794,    -1,    -1,    -1,    -1,  1224,    -1,  1226,
     3230      -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
     3231      76,    -1,    -1,    -1,   635,   636,   637,    83,    84,    -1,
     3232      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1256,
     3233      -1,    -1,   653,    -1,    -1,    -1,    -1,  1264,  1265,  1266,
     3234      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,  1275,  1276,
     3235     671,   117,   118,    -1,    -1,   282,    -1,   284,   285,  1078,
     3236      -1,   682,  1289,    -1,  1207,   292,   293,    -1,    -1,    -1,
     3237      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3238     307,   308,    -1,    -1,    -1,    -1,    -1,   708,    -1,    -1,
     3239     711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3240      -1,  1328,    -1,  1018,  1019,    -1,  1021,  1022,    -1,    -1,
     3241     912,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,    -1,
     3242      -1,    -1,    -1,    -1,    -1,   746,  1041,    10,    11,    12,
     3243      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3244      23,    24,    25,    26,    27,    28,    -1,    30,    31,    32,
     3245      -1,    -1,    -1,    -1,   381,    -1,    39,    -1,    -1,    -1,
     3246      -1,  1076,  1077,    -1,    -1,    -1,    -1,    -1,  1395,   790,
     3247      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   800,
     3248      -1,   802,    -1,    -1,    67,    -1,   807,   989,  1207,   810,
     3249      -1,    74,    75,   814,    -1,    78,    -1,   344,    -1,   346,
     3250      -1,    -1,    -1,    -1,  1006,    -1,    -1,    -1,    -1,    -1,
     3251     357,   358,    -1,    -1,    -1,  1442,    -1,    -1,    -1,    -1,
     3252      37,    38,  1449,    40,    -1,    -1,   109,    -1,   111,    -1,
     3253      -1,    -1,  1147,    -1,   117,   118,    -1,    -1,    -1,    -1,
     3254      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3255      -1,    -1,    -1,    -1,   875,    72,    -1,    -1,    -1,    76,
     3256      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3257      87,    -1,    -1,  1500,    -1,  1190,    -1,    -1,    -1,    -1,
     3258      -1,    -1,  1084,    -1,   905,    -1,    -1,    -1,    -1,    -1,
     3259      -1,    -1,   109,    -1,   111,    -1,    -1,  1212,    -1,    -1,
     3260     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,  1224,
     3261      -1,  1226,     7,   130,    -1,    10,    11,    12,    13,    14,
     3262      -1,    -1,  1124,   550,   551,   552,   553,   554,   555,   556,
     3263     557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
     3264     567,  1256,    37,    38,    39,    40,    -1,    -1,    -1,  1264,
     3265    1265,  1266,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3266    1275,  1276,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3267      -1,    66,    67,    -1,  1289,    -1,    -1,    72,    -1,    -1,
     3268      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3269      -1,    86,    87,    -1,    -1,    -1,    -1,  1018,  1019,    -1,
     3270    1021,  1022,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3271      -1,    -1,    -1,  1328,   109,    -1,   111,    -1,    -1,    -1,
     3272    1041,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3273       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3274      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3275      23,    24,    25,    26,    27,  1076,  1077,    30,    31,    32,
     3276      33,    -1,    -1,    36,    37,    38,    39,    40,    -1,   696,
     3277      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3278    1395,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3279      -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,
     3280      -1,    74,    75,    76,    49,    -1,    79,    80,    81,    82,
     3281      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3282      -1,    66,    -1,    -1,    -1,    -1,  1147,  1442,    -1,    -1,
     3283     757,    -1,    -1,    -1,  1449,    -1,   109,    -1,   111,    -1,
     3284      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3285      -1,    -1,    -1,   700,    -1,   702,    -1,    -1,    -1,   132,
     3286     787,    -1,   709,   710,    -1,    -1,    -1,   714,   113,  1190,
     3287      -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,   726,
     3288      -1,    -1,    -1,    -1,   731,  1500,    -1,    -1,    -1,    -1,
     3289      -1,  1212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3290      -1,   146,    -1,  1224,    -1,  1226,    -1,    -1,    -1,    -1,
     3291      -1,   156,   759,    -1,    -1,   160,    -1,    -1,    -1,    -1,
     3292      -1,    -1,    -1,    -1,    -1,    -1,     7,    -1,    -1,    10,
     3293      11,    12,    13,    14,    -1,  1256,    -1,    -1,    -1,    -1,
     3294      -1,    -1,    -1,  1264,  1265,  1266,    -1,    -1,    -1,    -1,
     3295      -1,    -1,    -1,    -1,  1275,  1276,    37,    38,    39,    40,
     3296      -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,  1289,    -1,
     3297      -1,    -1,    -1,    -1,    -1,    -1,   221,    -1,    -1,    -1,
     3298     907,    -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,
     3299      -1,    72,    -1,    -1,   239,    76,    -1,    -1,    79,    80,
     3300      81,    82,    83,    84,    -1,    86,    87,  1328,    -1,    -1,
     3301      -1,   858,   859,   860,   861,    -1,   863,    -1,    -1,   264,
     3302      -1,    -1,    -1,    -1,    -1,   952,   271,    -1,   109,    -1,
     3303     111,   878,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
     3304     121,   122,    -1,    -1,    -1,   892,    -1,    -1,    -1,   294,
     3305      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3306     987,    -1,   307,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3307      -1,    -1,    -1,  1000,  1395,    -1,    -1,    -1,    75,    -1,
     3308      77,    -1,    79,    -1,    -1,   932,    -1,    -1,    -1,    86,
     3309      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3310     345,    -1,    -1,    -1,    -1,   350,    -1,    -1,    -1,    -1,
     3311      -1,    -1,    -1,    -1,  1041,    -1,    -1,    -1,    -1,    -1,
     3312     117,  1442,   119,   120,   121,    -1,    -1,    -1,  1449,    -1,
     3313     977,    -1,    -1,    -1,    -1,    -1,   983,    -1,    -1,    -1,
     3314      -1,   988,    -1,    -1,    -1,    -1,   993,    -1,   995,    -1,
     3315      -1,    -1,   999,    -1,  1001,  1002,    -1,    -1,  1005,    -1,
     3316      -1,    -1,    -1,   160,    -1,    -1,    -1,  1014,    -1,    -1,
     3317      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1500,
     3318      -1,   426,   427,    -1,    -1,  1032,  1033,    -1,   433,    -1,
     3319      -1,  1118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3320      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   454,
     3321      -1,    -1,  1059,    -1,    -1,  1062,    -1,    -1,    -1,    -1,
     3322      -1,    -1,    -1,    -1,   221,    -1,   223,   224,   225,    -1,
     3323      -1,    -1,    -1,    -1,    -1,    -1,    -1,   482,    -1,    -1,
     3324      -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,   494,
     3325      -1,  1178,  1179,    -1,    -1,    -1,    -1,    -1,  1105,    -1,
     3326      -1,   506,   259,   508,  1111,  1112,   511,   264,   513,   514,
     3327      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3328      -1,   526,   279,    -1,  1131,    -1,    -1,  1134,    -1,    -1,
     3329      -1,  1138,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3330      -1,    -1,    -1,    72,  1151,    74,    75,    76,    -1,    -1,
     3331      -1,    -1,    -1,    -1,    83,    84,    -1,  1164,    -1,  1166,
     3332    1167,  1168,  1169,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3333      -1,   328,    -1,    -1,   579,  1182,    -1,  1184,    -1,    -1,
     3334     109,  1188,    -1,    -1,    -1,    -1,   591,    -1,   117,   118,
     3335     595,    -1,    -1,   350,    -1,    -1,    -1,    -1,   355,   356,
     3336      -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,    -1,
     3337    1217,  1218,    -1,    -1,    -1,    -1,   621,    -1,    -1,    -1,
     3338      -1,   626,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3339     635,   636,   637,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3340      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   653,   406,
     3341      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3342    1267,  1268,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,
     3343    1277,    -1,   429,    -1,   431,    -1,    -1,    -1,    -1,    -1,
     3344     685,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3345      -1,   448,    -1,    -1,   451,   452,  1383,    -1,    -1,    -1,
     3346      -1,    -1,   459,    -1,    -1,    -1,   711,    -1,   713,    -1,
     3347      -1,    -1,  1399,    -1,    -1,    -1,   473,    -1,    -1,    -1,
     3348      -1,    -1,    -1,   480,    -1,    -1,    -1,    -1,    -1,    -1,
     3349      -1,  1338,    -1,  1340,  1341,  1342,    -1,    -1,    -1,    -1,
     3350      -1,   746,    -1,    -1,    -1,  1352,    44,    -1,    -1,    -1,
     3351      -1,    -1,    -1,    -1,  1361,    10,    11,    12,    13,    14,
    33493352      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3350       25,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,
    3351       -1,    -1,    -1,    -1,    39,   906,    -1,    -1,   338,    -1,
    3352       -1,    -1,    -1,   343,    -1,    -1,    -1,    -1,    -1,    -1,
    3353      921,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3354       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,   595,
    3355       -1,    -1,   372,    78,   945,    -1,   376,   377,    -1,   379,
    3356       -1,    -1,    -1,    -1,    -1,    -1,   386,   387,    -1,   389,
    3357      390,    -1,   392,    -1,   394,    -1,    -1,   623,    -1,    -1,
    3358       -1,    -1,   628,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3359       -1,   411,    -1,    -1,    37,    38,    -1,    40,    -1,   419,
     3353      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,  1386,
     3354      -1,    -1,  1469,  1470,    39,    -1,    -1,    10,    11,    12,
     3355      13,    14,    -1,    91,    -1,    -1,    -1,   802,    -1,    -1,
     3356      -1,   806,    -1,   101,    -1,   810,    -1,    -1,    -1,    -1,
     3357      -1,    -1,    67,    -1,    -1,    -1,    39,    72,    -1,    74,
     3358      75,    76,  1429,  1430,    -1,    -1,    -1,    -1,    83,    84,
     3359      -1,    -1,    -1,    -1,    -1,  1442,    -1,    -1,   595,    -1,
     3360      -1,    -1,  1449,    -1,    67,    -1,    -1,    -1,    -1,    72,
     3361      -1,    74,    75,    76,   109,    -1,   111,    -1,    -1,   157,
     3362      83,    84,   117,   118,    -1,    -1,   623,    -1,    -1,    -1,
     3363      -1,   628,    -1,   171,  1481,    -1,    -1,    -1,  1485,    -1,
     3364      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     3365      -1,    -1,    -1,    -1,   117,   118,   194,    -1,    -1,    -1,
     3366     905,    -1,    -1,    -1,    -1,    -1,  1513,    -1,  1515,    -1,
     3367     208,    -1,    -1,    -1,    -1,   920,    -1,    -1,    -1,   217,
     3368      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   227,
     3369      -1,    -1,    -1,    -1,    -1,    -1,  1543,  1544,    -1,   944,
     3370      -1,    -1,   699,    -1,  1551,  1552,    -1,    -1,    -1,    -1,
     3371      -1,    -1,    -1,    -1,   252,    -1,   713,    -1,    -1,   257,
    33603372      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3361     1001,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3362       -1,   755,   756,    66,   444,    -1,    -1,    -1,    -1,    72,
    3363       -1,  1022,  1023,    76,    -1,    -1,    79,    80,    81,    82,
    3364       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3365      470,    -1,    -1,   699,    -1,    -1,   476,    -1,    -1,    -1,
    3366       -1,   481,    -1,    -1,    -1,    -1,   109,   713,   111,    -1,
    3367       -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3368       -1,    -1,    -1,    -1,    -1,    -1,    -1,   733,    -1,    -1,
    3369       -1,  1082,    -1,    -1,    -1,    -1,    -1,   517,    -1,    -1,
     3373      -1,    -1,   270,    -1,    -1,    -1,   733,    -1,   276,    -1,
     3374     278,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3375      -1,    -1,    -1,    -1,    -1,  1000,    -1,   295,    10,    11,
     3376      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3377      22,    23,    24,    25,    26,    27,  1021,  1022,    30,    31,
     3378      32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
     3379      -1,    -1,    -1,    -1,    -1,    -1,    -1,   794,    -1,    -1,
     3380     338,    -1,    -1,    -1,    -1,   343,    -1,    -1,    -1,   806,
     3381      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3382      72,    -1,    74,    75,    76,    -1,    -1,    -1,   825,    -1,
     3383      -1,    83,    84,    -1,   372,    -1,  1081,    -1,   376,   377,
     3384      -1,   379,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,
     3385      -1,   389,   390,    -1,   392,    -1,   394,   109,    -1,   111,
     3386      -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,
     3387      -1,    -1,    -1,   411,    -1,    -1,    -1,    -1,    -1,    -1,
     3388      -1,   419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
     3389     156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3390      -1,    -1,  1147,    -1,    -1,    -1,   444,    -1,    -1,    -1,
     3391      -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3392      14,    -1,    -1,   189,    -1,    -1,    -1,    -1,    -1,    -1,
     3393     196,    -1,   470,    -1,    -1,    -1,    -1,    -1,   476,    -1,
     3394      -1,   938,    -1,   481,  1189,    39,    10,    11,    12,    13,
     3395      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3396      24,    25,    26,    27,    28,    -1,    30,    31,    32,    -1,
     3397      -1,   968,    -1,    67,    -1,    39,    -1,    -1,    72,   517,
     3398      -1,  1226,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
     3399      84,    -1,    -1,    -1,   532,    -1,    -1,    -1,    -1,    -1,
     3400      -1,    -1,   268,    67,    -1,    -1,  1003,    -1,    72,    -1,
     3401      74,    75,    76,    -1,    78,   109,    -1,  1014,    -1,    83,
     3402      84,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
     3403    1275,  1276,    -1,   571,    -1,    -1,    -1,    -1,    -1,  1284,
     3404      -1,    -1,   580,    -1,    -1,   109,    -1,   111,   146,   587,
     3405      -1,    -1,    -1,   117,   118,   593,    -1,   323,   156,    -1,
     3406      -1,    -1,    -1,    -1,   602,   331,   332,    -1,   334,   335,
     3407     168,   169,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
     3408      -1,    -1,    -1,   349,    -1,    -1,    -1,    -1,    -1,  1086,
    33703409      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3371       -1,    -1,   532,    -1,     0,    -1,    -1,     3,     4,     5,
     3410      -1,    -1,   368,  1100,   642,   371,     3,     4,     5,     6,
     3411       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3412      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3413      27,    -1,   398,    30,    31,    32,   402,    -1,    -1,    -1,
     3414     678,   239,    39,    -1,    -1,    -1,    -1,    -1,   686,    -1,
     3415    1395,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
     3416      -1,    -1,    -1,    -1,    -1,   263,    -1,   433,    -1,    -1,
     3417      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,   717,
     3418      -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,   727,
     3419     728,    76,  1189,    -1,    79,    80,    81,    82,    83,    84,
     3420      -1,    86,    87,    -1,    -1,    -1,  1451,    -1,  1453,    -1,
     3421      -1,    -1,    -1,   479,   111,    -1,   482,    -1,    -1,    -1,
     3422     117,   118,   760,    -1,   109,    -1,   111,   765,    -1,   114,
     3423      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3424      -1,    -1,  1487,    -1,  1489,    -1,    -1,    -1,    -1,    -1,
     3425      -1,    -1,    -1,    -1,    -1,   521,    -1,    -1,    -1,   525,
     3426     526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3427      -1,  1516,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3428      -1,    -1,   380,    -1,    -1,    -1,    -1,  1284,    -1,    -1,
     3429      -1,   829,    -1,    -1,    -1,    -1,    -1,    -1,   836,    -1,
     3430      -1,    -1,    -1,    -1,    -1,   571,   572,    -1,    -1,    -1,
     3431      -1,   849,    -1,   851,    -1,    -1,    -1,    -1,    -1,    -1,
     3432      -1,    -1,    -1,    -1,   590,   591,    -1,   865,    -1,    -1,
     3433      -1,    -1,    -1,   871,    -1,   601,    -1,   603,   604,    -1,
     3434      -1,    -1,    -1,    -1,   610,   883,    -1,    -1,   886,    -1,
     3435      -1,    -1,    -1,    -1,   620,   621,    -1,    -1,    -1,    -1,
     3436     626,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   635,
     3437     636,   637,    -1,    -1,    -1,    -1,   474,    -1,    -1,    -1,
     3438      -1,    -1,    -1,    -1,    -1,    -1,    -1,   653,    -1,    -1,
     3439      -1,    -1,   658,   659,    -1,    -1,   662,   663,    -1,    -1,
     3440      -1,    -1,    -1,   669,    -1,    -1,    -1,    -1,    -1,    -1,
     3441      -1,    -1,    -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,
     3442      -1,    -1,   688,    -1,    -1,   963,    -1,    -1,   526,    -1,
     3443      -1,    -1,    -1,   531,    -1,    -1,   534,    -1,    -1,    -1,
     3444      -1,    -1,    -1,    -1,    -1,   711,   712,    -1,    -1,   547,
     3445      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3446     998,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3447      -1,   569,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,
     3448     746,   579,    -1,    -1,   750,   751,    -1,    -1,   586,    -1,
     3449      -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,
     3450      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3451      20,    21,    22,    23,    24,    25,    26,    27,  1056,    -1,
     3452      30,    31,    32,    -1,  1062,    -1,    -1,    -1,   794,    39,
     3453      -1,    -1,    -1,    -1,  1531,    -1,   802,    -1,    -1,    -1,
     3454      -1,    -1,   640,   809,   810,    -1,    -1,   813,    -1,   815,
     3455     648,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1096,   825,
     3456      -1,    -1,    72,  1101,    74,    75,    76,    -1,    -1,    -1,
     3457      -1,  1109,    -1,    83,    84,    -1,    10,    11,    12,    13,
     3458      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3459      24,    25,    26,    27,    28,    -1,    -1,    -1,    -1,   109,
     3460      -1,   111,    -1,    -1,  1142,    39,    -1,   117,   118,    -1,
     3461      -1,    -1,    -1,    -1,    -1,    -1,  1154,    -1,    -1,  1157,
     3462      -1,  1159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3463      -1,   897,    -1,    67,    -1,  1173,  1174,    -1,   904,   905,
     3464     906,    -1,   908,    -1,    78,    -1,   912,    -1,   746,    -1,
     3465     748,    -1,    -1,    -1,    -1,    -1,    -1,  1195,    -1,    -1,
     3466     758,    -1,    -1,    -1,    -1,    -1,   764,   933,   934,    -1,
     3467      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3468      20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
     3469      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,
     3470      -1,    -1,   968,    -1,  1242,    -1,    -1,    -1,   806,   807,
     3471      -1,    -1,   810,    -1,    -1,    -1,    -1,    -1,    37,    38,
     3472      -1,    40,    -1,   989,   990,    -1,   824,    67,    -1,    -1,
     3473      -1,    -1,    -1,    -1,  1000,    -1,    -1,    -1,    78,    -1,
     3474    1006,  1007,    -1,  1009,  1010,  1011,    -1,    66,    -1,    -1,
     3475      -1,    -1,    -1,    72,    -1,  1021,  1022,    76,    -1,    -1,
     3476      79,    80,    81,    82,    83,    84,   864,    86,    87,    -1,
     3477     868,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1317,
     3478      -1,  1319,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3479     109,    -1,   111,  1331,    -1,  1333,    -1,   116,   117,   118,
     3480     119,   120,   121,   122,    -1,    -1,    -1,   905,    -1,    -1,
     3481      -1,    -1,  1350,    -1,    -1,    -1,    -1,    -1,  1084,    -1,
     3482    1086,    -1,    -1,    -1,    -1,  1091,    -1,    -1,  1366,  1367,
     3483      -1,    -1,    -1,    -1,  1100,    -1,    -1,    -1,    -1,  1377,
     3484      -1,    -1,  1380,    -1,    -1,    -1,   944,    -1,    -1,    -1,
     3485      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1123,  1124,  1125,
     3486      -1,    -1,    -1,  1401,    -1,    -1,    -1,    -1,    -1,    -1,
     3487      -1,    -1,  1410,    -1,   972,  1413,    -1,  1415,  1416,  1417,
     3488     978,  1147,    -1,    -1,   982,    37,    38,    -1,    40,    -1,
     3489      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3490      -1,    -1,    -1,    -1,    -1,  1003,    -1,    -1,    -1,    -1,
     3491      -1,    -1,    -1,    -1,    66,    -1,  1014,  1455,    -1,  1457,
     3492      72,  1459,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3493      82,    83,    84,    -1,    86,    87,  1474,    -1,  1036,    -1,
     3494    1038,    -1,  1208,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3495      -1,    -1,    -1,    -1,    -1,  1053,  1054,   109,    -1,   111,
     3496    1226,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
     3497     122,    -1,    -1,    -1,    -1,    -1,  1074,    -1,    -1,    -1,
     3498      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3499       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3500      19,    20,    21,    22,    23,    24,    25,    26,    27,  1275,
     3501    1276,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
     3502      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3503      -1,  1129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3504      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1147,
     3505      69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,
     3506      -1,    -1,    -1,    -1,  1162,  1163,    -1,     3,     4,     5,
    33723507       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    33733508      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3374       26,    27,    -1,    -1,    30,    31,    32,    33,    -1,   795,
    3375       36,   571,    -1,    39,    40,    -1,    -1,    -1,    -1,  1150,
    3376      580,   807,    -1,    -1,    -1,    -1,    -1,   587,    -1,    -1,
    3377       -1,    -1,    -1,   593,    -1,    -1,    -1,    -1,    64,   913,
    3378      826,    67,   602,    69,   918,    71,    72,    -1,    74,    75,
    3379       76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
    3380       -1,  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3381       -1,    -1,    -1,    -1,    -1,   155,   156,    -1,    -1,    -1,
    3382       -1,    -1,   642,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3383       -1,   117,   118,    -1,    -1,    -1,    -1,    -1,  1229,    -1,
    3384       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   189,
    3385       -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,   678,    -1,
    3386       -1,    -1,    -1,    -1,    -1,    -1,   686,    -1,    -1,    10,
    3387       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3388       21,    22,    23,    24,    25,    26,    27,  1278,  1279,    30,
    3389       31,    32,    -1,   939,    -1,    -1,  1287,   717,    39,    -1,
    3390       -1,    -1,    -1,    -1,    -1,    -1,    -1,   727,   728,    -1,
     3509      26,    27,   111,    -1,    30,    31,    32,    33,   117,   118,
     3510      36,    37,    38,    39,    40,    41,    -1,    43,    -1,    -1,
     3511      46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
     3512      -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,  1395,
     3513      66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
     3514      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3515      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    33913516      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3392       -1,    -1,    -1,   969,    -1,    -1,    67,    -1,   268,    -1,
    3393       -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
    3394      760,    -1,    83,    84,    -1,  1079,   766,    -1,    -1,    -1,
    3395       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1004,    -1,
    3396       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,  1015,
    3397      111,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
    3398       -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,
    3399       -1,   331,   332,    -1,   334,   335,    -1,    -1,    -1,    -1,
    3400       -1,    -1,    -1,    -1,    -1,   345,    -1,  1398,    -1,   349,
    3401      830,    -1,    -1,    -1,    -1,    -1,    -1,   837,    -1,    -1,
    3402       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
    3403      850,   371,   852,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3404       -1,  1087,    -1,    -1,    -1,    -1,   866,    -1,    -1,    -1,
    3405       -1,    -1,   872,    -1,    -1,  1101,    -1,    -1,   398,    -1,
    3406       -1,    -1,   402,  1454,   884,  1456,    -1,   887,    -1,    -1,
    3407       -1,    -1,    -1,    -1,    -1,    -1,  1210,    -1,    -1,    -1,
     3517      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
     3518      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3519      -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,
     3520      -1,    -1,    -1,    -1,    -1,  1303,    -1,    -1,  1306,    -1,
     3521      -1,    -1,    -1,    -1,    -1,    -1,  1482,    -1,    -1,    -1,
    34083522      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3409       -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,    -1,  1490,
    3410       -1,  1492,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3411       -1,    -1,   282,    -1,   284,   285,    -1,    -1,    -1,    -1,
    3412       -1,    -1,   292,   293,    -1,    -1,    -1,    -1,  1519,    -1,
    3413       -1,    -1,    -1,    -1,    -1,    -1,    -1,   307,   308,   479,
    3414       -1,    -1,   482,    -1,   964,    -1,  1192,    -1,    -1,    -1,
    3415       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3416       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3417       -1,    30,    31,    32,    -1,   345,    -1,    -1,    -1,   999,
    3418       39,   521,    -1,    -1,    -1,   525,   526,    -1,    -1,    -1,
    34193523      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3420       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3421       -1,   381,    -1,    72,    -1,    74,    75,    76,    -1,    78,
    3422       -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
    3423       -1,   571,   572,    -1,    -1,    -1,    -1,  1057,    -1,    -1,
    3424       -1,  1287,    -1,  1063,    -1,    -1,   146,    -1,    -1,    -1,
    3425      590,   591,   111,    -1,    -1,    -1,   156,    -1,   117,   118,
    3426       -1,   601,    -1,   603,   604,    -1,    -1,    -1,   168,   169,
    3427      610,    -1,    -1,    -1,    -1,    -1,    -1,  1097,    -1,    -1,
    3428      620,   621,  1102,    -1,    -1,    -1,   626,    -1,    -1,    -1,
    3429     1110,    -1,    -1,    -1,    -1,   635,   636,   637,    -1,    -1,
     3524    1506,  1507,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34303525      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3431       -1,    -1,    -1,   653,    -1,    -1,    -1,    -1,   658,   659,
    3432       -1,    -1,   662,   663,    -1,  1145,    -1,    -1,    -1,   669,
    3433       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1157,    -1,   239,
    3434     1160,    -1,  1162,    -1,    -1,    -1,    -1,    -1,   688,    -1,
    3435       -1,    -1,    -1,    -1,    -1,    -1,  1176,  1177,    -1,    -1,
    3436       -1,    -1,    -1,   263,    -1,    -1,    -1,    -1,    -1,    -1,
    3437       -1,   711,   712,    -1,    -1,    -1,    -1,    -1,  1198,    -1,
    3438      550,   551,   552,   553,   554,   555,   556,   557,   558,   559,
    3439      560,   561,   562,   563,   564,   565,   566,   567,    -1,    -1,
    3440       -1,    -1,    -1,    -1,    -1,   745,   746,    -1,    -1,    -1,
    3441      750,   751,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3442       -1,    -1,    -1,    -1,    -1,  1245,    -1,    -1,    -1,    -1,
    3443       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3444       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3445       30,    31,    32,    -1,    -1,   795,    -1,    -1,    -1,    39,
    3446       -1,    -1,    -1,   803,    -1,    -1,    -1,    -1,    -1,    -1,
    3447      810,   811,    -1,    -1,   814,    -1,   816,    -1,    -1,    -1,
    3448      380,    -1,    -1,    -1,    -1,    -1,   826,    67,  1534,    -1,
    3449       -1,    -1,    72,    -1,    74,    75,    76,    -1,    78,    -1,
    3450     1320,    -1,  1322,    83,    84,    -1,    -1,    -1,    -1,    -1,
    3451       -1,    -1,    -1,    -1,    -1,    -1,  1336,    -1,  1338,    -1,
    3452       -1,    -1,    -1,    -1,    -1,    -1,   696,    -1,    -1,   109,
    3453       -1,   111,    -1,  1353,    -1,    -1,    -1,   117,   118,    -1,
    3454       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1369,
    3455     1370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   898,    -1,
    3456     1380,    -1,    -1,  1383,    -1,   905,   906,   907,    -1,   909,
    3457       -1,    -1,    -1,   913,   474,    -1,    -1,    -1,    -1,    -1,
    3458       -1,    -1,    -1,    -1,  1404,    -1,    -1,   757,    -1,    -1,
    3459       -1,    -1,    -1,  1413,   934,   935,  1416,    -1,  1418,  1419,
    3460     1420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3461       -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,   788,    -1,
    3462       -1,    -1,    -1,    -1,    -1,    -1,   526,    -1,    -1,   969,
    3463       -1,   531,    -1,    -1,   534,    -1,    -1,    -1,  1458,    -1,
    3464     1460,    -1,  1462,    -1,    -1,    -1,    -1,   547,    -1,    -1,
    3465      990,   991,    -1,    -1,    -1,    -1,    -1,  1477,    -1,    -1,
    3466       -1,  1001,    -1,    -1,    -1,    -1,    -1,  1007,  1008,   569,
    3467     1010,  1011,  1012,    -1,    -1,    -1,    -1,    -1,    -1,   579,
    3468       -1,    -1,  1022,  1023,    -1,    -1,   586,    -1,    -1,    -1,
    3469       -1,   591,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3526      -1,    -1,    -1,    -1,    -1,  1531,     3,     4,     5,     6,
     3527       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3528      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3529      27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,
     3530      37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
     3531      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3532      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
     3533      67,    -1,    69,    39,    71,    72,    -1,    74,    75,    76,
     3534      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3535      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3536      -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
     3537      -1,    -1,   109,    -1,   111,    -1,    -1,    83,    84,    -1,
     3538     117,   118,   119,   120,   121,   122,     4,     5,     6,     7,
     3539       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3540      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3541      -1,    -1,    30,    31,    32,    -1,    -1,    -1,  1516,    37,
     3542      38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
     3543      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3544      27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,
     3545      -1,    69,    39,    71,    72,    -1,    74,    75,    76,    -1,
     3546      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3547      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3548      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3549      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,   117,
     3550     118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
    34703551       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    34713552      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3472       -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
    3473       39,    40,    -1,    -1,    -1,    -1,    -1,    -1,   908,    -1,
    3474      640,    -1,    -1,    -1,    -1,  1085,    -1,  1087,   648,    -1,
    3475       -1,    -1,  1092,    -1,    -1,    64,    -1,    -1,    67,    -1,
    3476       69,  1101,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3477       -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
    3478       -1,    -1,    -1,   953,  1124,  1125,  1126,    -1,    -1,    -1,
    3479       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3480      109,    -1,   111,    -1,    -1,    -1,   115,    -1,   117,   118,
    3481     1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   988,    -1,
    3482       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3483       -1,  1001,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
    3484       -1,    40,    -1,    -1,    -1,    -1,   746,    -1,   748,    -1,
    3485       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   758,    -1,
    3486       -1,    -1,    -1,    -1,   764,    -1,    -1,    66,    -1,    -1,
    3487       -1,  1211,  1042,    72,    -1,    74,    75,    76,    -1,    -1,
    3488       79,    80,    81,    82,    83,    84,    -1,    86,    87,  1229,
    3489       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3490       -1,    -1,    -1,    -1,    -1,    -1,    -1,   807,   808,    -1,
    3491      109,   811,   111,    -1,   113,   114,    -1,    -1,   117,   118,
    3492      119,   120,   121,   122,    -1,   825,    -1,    -1,    -1,    -1,
    3493       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,
    3494       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1119,
    3495       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3496       -1,    -1,    -1,    -1,    -1,   865,    -1,    -1,    -1,   869,
    3497       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3498        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3499       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3500       23,    24,    25,    26,    27,    -1,   906,    30,    31,    32,
    3501       33,  1181,  1182,    36,    -1,    -1,    39,    40,    -1,    -1,
    3502       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3503       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3504       -1,    64,    -1,    -1,    67,   945,    69,    -1,    71,    72,
    3505       -1,    74,    75,    76,    -1,    -1,    -1,    -1,  1398,    -1,
    3506       83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3507       -1,    -1,    -1,   973,    -1,    -1,    -1,    37,    38,   979,
    3508       40,    -1,    -1,   983,    -1,    -1,   109,    -1,   111,    -1,
    3509       -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
    3510       -1,    -1,    -1,    -1,  1004,    -1,    66,    -1,    -1,    -1,
    3511       -1,    -1,    72,    -1,    -1,  1015,    76,    -1,    -1,    79,
    3512       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    3513       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1037,    -1,  1039,
    3514       -1,    -1,    -1,    37,    38,  1485,    40,    -1,    -1,   109,
    3515       -1,   111,    -1,    -1,  1054,  1055,   116,   117,   118,   119,
    3516      120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,  1509,
    3517     1510,    -1,    66,    -1,    -1,  1075,    -1,    -1,    72,    -1,
    3518       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3519       84,    -1,    86,    87,  1534,    -1,    -1,    -1,    -1,    -1,
    3520       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3521       -1,    -1,    -1,    -1,    -1,   109,  1386,   111,    -1,    -1,
    3522      114,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
    3523     1130,    -1,  1402,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3524       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3525     1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3526       -1,    -1,    -1,    -1,    -1,  1165,  1166,    -1,    -1,    -1,
    3527       -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3528       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3529       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3530       32,    33,  1472,  1473,    36,    37,    38,    39,    40,    41,
    3531       -1,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    3532       52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,
    3533       62,    -1,    64,    -1,    66,    67,    -1,    69,    -1,    71,
    3534       72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
    3535       82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
    3536       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3537       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
    3538       -1,    -1,   114,    -1,    -1,   117,   118,   119,   120,   121,
    3539      122,    -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,
    3540      132,    -1,    -1,    -1,    -1,    -1,  1306,    -1,    -1,  1309,
    3541        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3542       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3543       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3544       33,    -1,    -1,    36,    37,    38,    39,    40,    10,    11,
    3545       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3546       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3547       32,    -1,    -1,    66,    67,    -1,    69,    39,    71,    72,
    3548       -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3549       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3550       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3551       72,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
    3552       -1,    83,    84,    -1,   117,   118,   119,   120,   121,   122,
    3553       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,
    3554       -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
    3555        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3556       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3557       -1,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
    3558       39,    40,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3559       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3560       25,    26,    27,    28,    -1,    -1,    -1,    66,    67,    -1,
    3561       69,    -1,    71,    72,    39,    74,    75,    76,    -1,  1519,
     3553      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
     3554      39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
     3555      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3556      -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
     3557      69,    39,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    35623558      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3563       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3564       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3565      109,    -1,   111,    78,    -1,    -1,    -1,    -1,   117,   118,
     3559      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3560      -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
     3561     109,    -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,
    35663562     119,   120,   121,   122,     4,     5,     6,     7,     8,     9,
    35673563      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     
    35703566      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    35713567      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3572       -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    69,
     3568      -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,
    35733569      39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    35743570      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    35753571      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3576       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
     3572      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    35773573      -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,
    35783574     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
     
    35803576      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    35813577      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3582       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3583       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3584       30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
     3578      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3579      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3580      -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
    35853581      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    35863582      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3587       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3588       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,
    3589      111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
     3583      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3584      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3585     111,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
    35903586     121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
    35913587      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     
    35993595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36003596      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
    3601       -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,   121,
     3597      -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
    36023598     122,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    36033599      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     
    36233619      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36243620      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3625       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     4,
     3621      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     0,
     3622      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3623      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3624      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3625      31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,    40,
     3626      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3627      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3628      -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    69,    -1,
     3629      71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
     3630      -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,
     3631      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3632      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3633     111,    -1,    -1,    -1,    -1,    -1,   117,   118,     3,     4,
    36263634       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    36273635      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3628       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3629       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3636      25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
     3637      -1,    36,    -1,    -1,    39,    40,    -1,    -1,    -1,    -1,
     3638      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3639      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,
     3640      -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     3641      75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,
    36303642      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36313643      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3632       -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3633       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3634       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3644      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3645     115,    -1,   117,   118,     3,     4,     5,     6,     7,     8,
     3646       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3647      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3648      -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
     3649      39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36353650      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3636       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3637       -1,    -1,   117,   118,   119,   120,   121,   122,     4,     5,
    3638        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3639       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3640       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3641       -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,
     3651      -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,
     3652      69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
     3653      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
    36423654      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36433655      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3644       66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
    3645       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3646       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3647       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3648       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3649       -1,   117,   118,   119,   120,   121,   122,     3,     4,     5,
    3650        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3651       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3652       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3653       -1,    -1,    -1,    39,    -1,    10,    11,    12,    13,    14,
    3654       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3655       25,    26,    27,    -1,    -1,    30,    31,    32,    33,    34,
    3656       35,    67,    -1,    69,    39,    71,    72,    -1,    74,    75,
    3657       76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
    3658       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3659       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3660       75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3661       -1,   117,   118,     3,     4,     5,     6,     7,     8,     9,
    3662       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3663       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3664       30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
     3656     109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3657       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3658      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3659      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3660      -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    10,    11,
     3661      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3662      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3663      32,    33,    34,    35,    67,    -1,    69,    39,    71,    72,
     3664      -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
     3665      83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3666      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3667      -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3668      -1,    -1,    -1,    -1,   117,   118,     3,     4,     5,     6,
     3669       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3670      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3671      27,    28,    -1,    30,    31,    32,    33,    -1,    -1,    36,
     3672      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36653673      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36663674      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3667       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3668       -1,    71,    -1,    -1,    74,    75,    -1,    -1,    78,     3,
     3675      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3676      -1,    78,     4,     5,     6,     7,     8,     9,    10,    11,
     3677      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3678      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3679      32,    -1,    -1,    -1,   111,    -1,    -1,    39,    -1,    -1,
     3680     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3681      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3682      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
     3683      72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,
     3684      -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3685      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3686      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3687      -1,    -1,    -1,    -1,    -1,   117,   118,     4,     5,     6,
     3688       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3689      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3690      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3691      -1,    -1,    39,    -1,    -1,    -1,    -1,    10,    11,    12,
     3692      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3693      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3694      67,    -1,    69,    -1,    71,    -1,    39,    74,    75,    -1,
    36693695       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    36703696      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3671       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    33,
    3672       -1,   111,    36,    -1,    -1,    39,    -1,   117,   118,    -1,
     3697      24,    25,    26,    27,    67,    -1,    30,    31,    32,    -1,
     3698      -1,    74,    75,   110,   111,    39,    -1,    -1,    -1,    -1,
     3699     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3700      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3701      -1,    -1,    -1,    67,    -1,    69,   109,    71,   111,    -1,
     3702      74,    75,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
     3703      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3704      -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3705      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3706      -1,    -1,    -1,   117,   118,     4,     5,     6,     7,     8,
     3707       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3708      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3709      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     3710      39,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3711      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3712      26,    27,    -1,    -1,    30,    31,    32,    -1,    67,    -1,
     3713      69,    -1,    71,    39,    40,    74,    75,    -1,    -1,    -1,
     3714      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3715      -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,
     3716      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
     3717      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3718       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3719      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3720      24,    25,    26,    27,    -1,   111,    30,    31,    32,   115,
     3721      -1,   117,   118,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    36733722      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36743723      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36753724      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3676       74,    75,     3,     4,     5,     6,     7,     8,     9,    10,
     3725      74,    75,    -1,     4,     5,     6,     7,     8,     9,    10,
    36773726      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    36783727      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     
    36883737      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36893738      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3690       -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
    3691       -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
    3692       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3694       -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
    3695      118,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3696       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3697       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3698       -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
    3699       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3700       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3701       -1,    30,    31,    32,    67,    -1,    69,    -1,    71,    -1,
    3702       39,    74,    75,    -1,     4,     5,     6,     7,     8,     9,
    3703       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3704       20,    21,    22,    23,    24,    25,    26,    27,    67,    -1,
    3705       30,    31,    32,    -1,    -1,    74,    75,   110,   111,    39,
    3706       -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
    3707       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3708       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3709      109,    71,   111,    -1,    74,    75,    -1,    -1,   117,   118,
    3710       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3711       -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
    3712       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3713       -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,     4,
     3739      -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,     4,
    37143740       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    37153741      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37163742      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3717       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    10,    11,
    3718       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3719       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3720       32,    -1,    67,    -1,    69,    -1,    71,    39,    40,    74,
    3721       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3743      -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,   117,
     3744     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37223745      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3723       -1,    96,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3724       -1,    -1,    74,    75,    -1,    -1,   111,    -1,    -1,    -1,
    3725       -1,    -1,   117,   118,     4,     5,     6,     7,     8,     9,
    3726       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3727       20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
    3728       30,    31,    32,   115,    -1,   117,   118,    -1,    -1,    39,
     3746      -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
     3747      75,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3748      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3749      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
     3750      39,    40,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3751      -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3752      -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,
     3753      -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3754      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    37293755      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37303756      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3731       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3732       -1,    71,    -1,    -1,    74,    75,    -1,     4,     5,     6,
    3733        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3734       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3735       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3736       -1,   111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,
    3737       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3738       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3739       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
    3740        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3741       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3742       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3743       -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
    3744      117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3745       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3746       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3747       74,    75,    -1,     4,     5,     6,     7,     8,     9,    10,
    3748       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3749       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3750       31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,
    3751       -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
    3752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3753       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3754       71,    -1,    -1,    74,    75,    10,    11,    12,    13,    14,
     3757     109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,
     3758     119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
     3759      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3760      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     3761      -1,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    37553762      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37563763      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3757       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3758      111,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
    3759       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3760       -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3761       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3762       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3763       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3764       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
    3765       -1,    -1,   117,   118,   119,   120,   121,   122,    10,    11,
    3766       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3767       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3768       32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    10,
    3769       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3770       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3771       31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,    -1,
    3772       72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
    3773       82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
    3774       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
    3775       -1,    72,    -1,    74,    75,    76,    -1,   109,   110,   111,
    3776       -1,    -1,    83,    84,    -1,   117,   118,   119,   120,   121,
    3777      122,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3778       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3779      111,    30,    31,    32,    -1,    -1,   117,   118,    37,    38,
    3780       39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
    3781       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3782       -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
    3783       -1,    39,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3784       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3785       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3786       -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,    -1,
    3787      109,    -1,   111,    -1,    -1,    83,    84,    -1,   117,   118,
    3788      119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
    3789       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3790       26,    27,    -1,   111,    30,    31,    32,    -1,    -1,   117,
    3791      118,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    3792       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3793       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3794       66,    67,    -1,    -1,    39,    40,    72,    -1,    74,    75,
     3764      66,    67,    -1,    -1,    39,    -1,    72,    -1,    74,    75,
    37953765      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    37963766      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3797       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3798       75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3767      -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3768      75,    76,    -1,   109,   110,   111,    -1,    -1,    83,    84,
    37993769      -1,   117,   118,   119,   120,   121,   122,    10,    11,    12,
    38003770      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    38013771      23,    24,    25,    26,    27,    -1,   111,    30,    31,    32,
    3802      115,    -1,   117,   118,    37,    38,    39,    40,    10,    11,
     3772      -1,    -1,   117,   118,    37,    38,    39,    40,    10,    11,
    38033773      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    38043774      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3805       32,    -1,    -1,    66,    67,    -1,    -1,    39,    40,    72,
     3775      32,    -1,    -1,    66,    67,    -1,    -1,    39,    -1,    72,
    38063776      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    38073777      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    38083778      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3809       -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
    3810       -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3779      72,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3780      -1,    83,    84,    -1,   117,   118,   119,   120,   121,   122,
    38113781      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    38123782      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
    3813       30,    31,    32,   115,    -1,   117,   118,    37,    38,    39,
    3814       40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
    3815       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3816       22,    23,    24,    25,    26,    27,    66,    67,    30,    31,
    3817       32,    -1,    72,    -1,    74,    75,    76,    39,    -1,    79,
     3783      30,    31,    32,    -1,    -1,   117,   118,    37,    38,    39,
     3784      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3785      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3786      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,
     3787      39,    40,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    38183788      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3789      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3790      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
     3791      -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
     3792     120,   121,   122,    10,    11,    12,    13,    14,    15,    16,
     3793      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3794      27,    -1,   111,    30,    31,    32,   115,    -1,   117,   118,
     3795      37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
     3796      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3797      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
     3798      67,    -1,    -1,    39,    40,    72,    -1,    74,    75,    76,
     3799      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3800      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3801      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
     3802      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3803     117,   118,   119,   120,   121,   122,    10,    11,    12,    13,
     3804      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3805      24,    25,    26,    27,    -1,   111,    30,    31,    32,   115,
     3806      -1,   117,   118,    37,    38,    39,    40,    -1,    -1,    -1,
     3807      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3808      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3809      26,    27,    66,    67,    30,    31,    32,    -1,    72,    -1,
     3810      74,    75,    76,    39,    -1,    79,    80,    81,    82,    83,
     3811      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    38193812      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3820       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,   109,
    3821       -1,   111,    74,    75,    -1,    -1,    -1,   117,   118,   119,
    3822      120,   121,   122,     3,     4,     5,     6,     7,     8,     9,
    3823       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3824       20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
    3825       30,    31,    32,    -1,    -1,   117,   118,    -1,    -1,    39,
    3826       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3813      -1,    67,    -1,    -1,    -1,   109,    -1,   111,    74,    75,
     3814      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     3,
     3815       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3816      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3817      24,    25,    26,    27,    -1,   111,    30,    31,    32,    -1,
     3818      -1,   117,   118,    -1,    -1,    39,    -1,    -1,    -1,    10,
     3819      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3820      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
     3821      31,    32,    -1,    67,    -1,    69,    -1,    71,    39,    -1,
     3822      74,    75,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
     3823      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3824      23,    24,    25,    26,    27,    -1,    67,    30,    31,    32,
     3825      -1,    72,    -1,    74,    75,    76,    39,    78,    -1,    -1,
     3826     114,    -1,    83,    84,    -1,    10,    11,    12,    13,    14,
     3827      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3828      25,    26,    27,    28,    67,    30,    31,    32,    -1,    72,
     3829     111,    74,    75,    76,    39,    -1,   117,   118,    -1,    -1,
     3830      83,    84,    -1,    10,    11,    12,    13,    14,    15,    16,
    38273831      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3828       27,    -1,    -1,    30,    31,    32,    -1,    67,    -1,    69,
    3829       -1,    71,    39,    -1,    74,    75,    -1,    -1,    -1,    -1,
    3830       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3831       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3832       67,    30,    31,    32,    -1,    72,    -1,    74,    75,    76,
    3833       39,    -1,    -1,    -1,   114,    -1,    83,    84,    -1,    10,
    3834       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3835       21,    22,    23,    24,    25,    26,    27,    -1,    67,    30,
    3836       31,    32,   109,    72,   111,    74,    75,    76,    39,    -1,
    3837      117,   118,    -1,    -1,    83,    84,    -1,    10,    11,    12,
    3838       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3839       23,    24,    25,    26,    27,    28,    67,    30,    31,    32,
    3840      109,    72,   111,    74,    75,    76,    39,    -1,   117,   118,
    3841       -1,    -1,    83,    84,    -1,    10,    11,    12,    13,    14,
    3842       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3843       25,    26,    27,    28,    67,    30,    31,    32,   109,    -1,
    3844      111,    74,    75,    -1,    39,    78,   117,   118,    10,    11,
    3845       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3846       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3847       32,    -1,    67,    -1,    -1,    -1,   109,    39,   111,    74,
    3848       75,    -1,    -1,    78,   117,   118,    10,    11,    12,    13,
     3832      27,    -1,    67,    30,    31,    32,   109,    -1,   111,    74,
     3833      75,    -1,    39,    78,   117,   118,    10,    11,    12,    13,
    38493834      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3850       24,    25,    26,    27,    -1,    67,    30,    31,    32,    -1,
    3851       -1,    -1,    74,    75,    -1,    39,   111,    -1,    -1,    -1,
     3835      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3836      67,    -1,    -1,    -1,    -1,    39,   111,    74,    75,    -1,
    38523837      -1,    -1,   117,   118,    10,    11,    12,    13,    14,    15,
    38533838      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3854       26,    27,    -1,    67,    30,    31,    32,    -1,    -1,   111,
    3855       74,    75,    -1,    39,    -1,   117,   118,    10,    11,    12,
    3856       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3857       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3858       -1,    67,    -1,    -1,    -1,    -1,    39,   111,    74,    75,
    3859       -1,    -1,    -1,   117,   118,    10,    11,    12,    13,    14,
     3839      26,    27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,
     3840      74,    75,    -1,    39,   111,    -1,    -1,    -1,    -1,    -1,
     3841     117,   118,    10,    11,    12,    13,    14,    15,    16,    17,
     3842      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3843      -1,    67,    30,    31,    32,    -1,    -1,   111,    74,    75,
     3844      -1,    39,    -1,   117,   118,    10,    11,    12,    13,    14,
    38603845      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3861       25,    26,    27,    -1,    67,    30,    31,    32,    -1,    -1,
    3862       -1,    74,    75,    -1,    39,   111,    -1,    -1,    -1,    -1,
     3846      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    67,
     3847      -1,    -1,    -1,    -1,    39,   111,    74,    75,    -1,    -1,
    38633848      -1,   117,   118,    10,    11,    12,    13,    14,    15,    16,
    38643849      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3865       27,    -1,    67,    30,    31,    32,    -1,    -1,   111,    74,
    3866       75,    -1,    39,    -1,   117,   118,     4,     5,     6,     7,
    3867        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3868       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3869       67,    -1,    30,    31,    32,    -1,   111,    74,    75,    -1,
    3870       -1,    39,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3850      27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,    74,
     3851      75,    -1,    39,   111,    -1,    -1,    -1,    -1,    -1,   117,
     3852     118,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3853      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3854      67,    30,    31,    32,    -1,    -1,   111,    74,    75,    -1,
     3855      39,    -1,   117,   118,     4,     5,     6,     7,     8,     9,
     3856      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3857      20,    21,    22,    23,    24,    25,    26,    27,    67,    -1,
     3858      30,    31,    32,    -1,   111,    74,    75,    -1,    -1,    39,
     3859     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38713860      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3873       -1,    69,    -1,    71,   111,    -1,    74,    75,    -1,    -1,
    3874      117,   118,    37,    38,    -1,    40,    41,    -1,    43,    -1,
    3875       -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    3876       -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
    3877       -1,    66,   110,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3878       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3879       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3881       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
    3882       -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3883       37,    38,   127,    40,    41,    -1,    43,   132,    -1,    46,
    3884       47,    48,    49,    50,    51,    52,    53,    -1,    -1,    -1,
     3861      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3862      -1,    71,    -1,    -1,    74,    75,    -1,    -1,   117,   118,
     3863      37,    38,    -1,    40,    41,    -1,    43,    -1,    -1,    46,
     3864      47,    48,    49,    50,    51,    52,    53,    -1,    -1,    56,
    38853865      57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,
    3886       -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3866     110,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
    38873867      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    38883868      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38893869      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38903870      -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
    3891      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
    3892      127,    -1,    -1,    -1,    -1,   132,     4,     5,     6,     7,
    3893        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3894       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3895       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3896       -1,    39,    -1,    37,    38,    -1,    40,    41,    -1,    43,
    3897       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
    3898       -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    67,
    3899       64,    69,    66,    71,    -1,    -1,    74,    75,    72,    -1,
    3900       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3901       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    96,    -1,
     3871     117,   118,   119,   120,   121,   122,    -1,    -1,    37,    38,
     3872     127,    40,    41,    -1,    43,   132,    -1,    46,    47,    48,
     3873      49,    50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,
     3874      -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,
     3875      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3876      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    39023877      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3903       -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3904      114,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
    3905       -1,    37,    38,   127,    40,    41,    -1,    43,    44,    45,
     3878      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3879     109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,
     3880     119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,    -1,
     3881      -1,    -1,    -1,   132,     4,     5,     6,     7,     8,     9,
     3882      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3883      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3884      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
     3885      -1,    37,    38,    -1,    40,    41,    -1,    43,    44,    45,
    39063886      46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    3907       -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,
    3908       66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
     3887      56,    57,    -1,    -1,    -1,    61,    62,    67,    64,    69,
     3888      66,    71,    -1,    -1,    74,    75,    72,    -1,    -1,    -1,
    39093889      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3910       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3890      86,    87,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
    39113891      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39123892      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
    39133893      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    37,
    3914       38,   127,    40,    41,    -1,    43,    -1,    -1,    46,    47,
     3894      38,   127,    40,    41,    -1,    43,    44,    45,    46,    47,
    39153895      48,    49,    50,    51,    52,    53,    -1,    -1,    -1,    57,
    39163896      -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,
    39173897      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    39183898      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3919       -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
     3899      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39203900      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39213901      -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,
    3922      118,   119,   120,   121,   122,    66,    -1,    -1,    -1,   127,
    3923       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
    3924       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3925       -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
    3926       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3927      111,    -1,    37,    38,    -1,    40,   117,   118,   119,   120,
    3928      121,   122,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     3902     118,   119,   120,   121,   122,    -1,    -1,    37,    38,   127,
     3903      40,    41,    -1,    43,    -1,    -1,    46,    47,    48,    49,
     3904      50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
     3905      -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
     3906      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3907      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3908      -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
     3909      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3910      -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,   119,
     3911     120,   121,   122,    66,    -1,    -1,    -1,   127,    -1,    72,
     3912      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3913      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3914      -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
     3915      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     3916      -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3917      66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
     3918      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3919      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
     3920      -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3921      -1,    -1,    -1,   109,    -1,   111,    -1,    37,    38,    -1,
     3922      40,   117,   118,   119,   120,   121,   122,    66,    -1,    -1,
     3923      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3924      79,    80,    81,    82,    83,    84,    66,    86,    87,    -1,
     3925      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3926      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3927     109,    -1,   111,    -1,    37,    38,    -1,    40,   117,   118,
     3928     119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,   109,
     3929      -1,   111,    -1,    37,    38,    -1,    40,   117,   118,   119,
     3930     120,   121,   122,    66,    -1,    -1,    -1,    -1,    -1,    72,
     3931      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3932      83,    84,    66,    86,    87,    -1,    -1,    -1,    72,    -1,
    39293933      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3930       84,    66,    86,    87,    -1,    -1,    -1,    72,    -1,    -1,
    3931       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3932       -1,    86,    87,    -1,    -1,   109,    -1,   111,    -1,    37,
    3933       38,    -1,    40,   117,   118,   119,   120,   121,   122,    -1,
    3934       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    37,    38,
    3935       -1,    40,   117,   118,   119,   120,   121,   122,    66,    -1,
    3936       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    3937       -1,    79,    80,    81,    82,    83,    84,    66,    86,    87,
    3938       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3939       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3940       -1,   109,    -1,    -1,    -1,    37,    38,    -1,    40,   117,
    3941      118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
    3942      109,    -1,    -1,    -1,    37,    38,    -1,    40,   117,   118,
    3943      119,   120,   121,   122,    66,    -1,    -1,    -1,    -1,    -1,
    3944       72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
    3945       82,    83,    84,    66,    86,    87,    -1,    -1,    -1,    72,
    3946       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3947       83,    84,    -1,    86,    87,    -1,    -1,   109,    -1,    -1,
    3948       -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
    3949      122,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
    3950       -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3934      84,    -1,    86,    87,    -1,    -1,   109,    -1,    -1,    -1,
     3935      37,    38,    -1,    40,   117,   118,   119,   120,   121,   122,
     3936      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    37,
     3937      38,    -1,    40,   117,   118,   119,   120,   121,   122,    66,
     3938      -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3939      -1,    -1,    79,    80,    81,    82,    83,    84,    66,    86,
     3940      87,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
     3941      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3942      -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3943     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
     3944      -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3945     118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
     3946       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3947      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3948      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3949      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3950      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3951      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3952      69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
     3953      -1,    -1,    -1,    -1,    83,    84,     3,     4,     5,     6,
     3954       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3955      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3956      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3957      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3958      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3959      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3960      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     3,
    39513961       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    39523962      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3953       24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,
     3963      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    39543964      -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    39553965      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39563966      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3957       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
    3958       74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    3959       84,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3967      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     3968      74,    75,     4,     5,     6,     7,     8,     9,    10,    11,
    39603969      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    39613970      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     
    39643973      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39653974      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3966       -1,    -1,    74,    75,     3,     4,     5,     6,     7,     8,
    3967        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3968       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3969       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3970       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3971       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3972       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3973       69,    -1,    71,    -1,    -1,    74,    75,     4,     5,     6,
    3974        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3975       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3976       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3977       -1,    -1,    39,    -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       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75
     3975      -1,    -1,    74,    75
    39813976};
    39823977
     
    39893984      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    39903985      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    3991       76,    83,    84,   109,   111,   117,   118,   137,   140,   151,
    3992      200,   214,   215,   216,   217,   218,   219,   220,   221,   222,
    3993      223,   224,   225,   226,   227,   228,   229,   230,   231,   233,
    3994      234,   235,   236,   237,   238,   239,   241,   242,   243,   244,
    3995      245,   246,   248,   256,   257,   284,   285,   286,   294,   297,
    3996      303,   304,   306,   308,   309,   315,   320,   324,   325,   326,
    3997      327,   328,   329,   330,   331,   351,   368,   369,   370,   371,
    3998       72,   139,   140,   151,   217,   219,   227,   229,   238,   242,
    3999      244,   285,    82,   109,   313,   314,   315,   313,   313,    72,
    4000       74,    75,    76,   138,   139,   274,   275,   295,   296,    74,
    4001       75,   275,   109,   306,    11,   201,   109,   151,   320,   325,
    4002      326,   327,   329,   330,   331,   112,   134,   111,   220,   227,
    4003      229,   324,   328,   367,   368,   371,   372,   135,   107,   131,
    4004      278,   114,   135,   175,    74,    75,   137,   273,   135,   135,
    4005      135,   116,   135,    74,    75,   109,   151,   310,   319,   320,
    4006      321,   322,   323,   324,   328,   332,   333,   334,   335,   336,
    4007      342,     3,    28,    78,   240,     3,     5,    74,   111,   151,
    4008      219,   230,   234,   236,   245,   286,   324,   328,   371,   217,
    4009      219,   229,   238,   242,   244,   285,   324,   328,    33,   235,
    4010      235,   230,   236,   135,   235,   230,   235,   230,    75,   109,
    4011      114,   275,   286,   114,   275,   235,   230,   116,   135,   135,
    4012        0,   134,   109,   175,   313,   313,   134,   111,   227,   229,
    4013      369,   273,   273,   131,   229,   109,   151,   310,   320,   324,
    4014      111,   151,   371,   307,   232,   315,   109,   291,   109,   109,
     3986      76,    83,    84,   109,   111,   117,   118,   137,   140,   150,
     3987     199,   213,   214,   215,   216,   217,   218,   219,   220,   221,
     3988     222,   223,   224,   225,   226,   227,   228,   229,   230,   232,
     3989     233,   234,   235,   236,   237,   238,   240,   241,   242,   243,
     3990     244,   245,   247,   255,   256,   283,   284,   285,   293,   296,
     3991     302,   303,   305,   307,   308,   314,   319,   323,   324,   325,
     3992     326,   327,   328,   329,   330,   350,   367,   368,   369,   370,
     3993      72,   139,   140,   150,   216,   218,   226,   228,   237,   241,
     3994     243,   284,    82,   109,   312,   313,   314,   312,   312,    72,
     3995      74,    75,    76,   138,   139,   273,   274,   294,   295,    74,
     3996      75,   274,   109,   305,    11,   200,   109,   150,   319,   324,
     3997     325,   326,   328,   329,   330,   112,   134,   111,   219,   226,
     3998     228,   323,   327,   366,   367,   370,   371,   135,   107,   131,
     3999     277,   114,   135,   174,    74,    75,   137,   272,   135,   135,
     4000     135,   116,   135,    74,    75,   109,   150,   309,   318,   319,
     4001     320,   321,   322,   323,   327,   331,   332,   333,   334,   335,
     4002     341,     3,    28,    78,   239,     3,     5,    74,   111,   150,
     4003     218,   229,   233,   235,   244,   285,   323,   327,   370,   216,
     4004     218,   228,   237,   241,   243,   284,   323,   327,    33,   234,
     4005     234,   229,   235,   135,   234,   229,   234,   229,    75,   109,
     4006     114,   274,   285,   114,   274,   234,   229,   116,   135,   135,
     4007       0,   134,   109,   174,   312,   312,   134,   111,   226,   228,
     4008     368,   272,   272,   131,   228,   109,   150,   309,   319,   323,
     4009     111,   150,   370,   306,   231,   314,   109,   290,   109,   109,
    40154010      51,   109,    37,    38,    40,    66,    72,    76,    79,    80,
    40164011      81,    82,    86,    87,   109,   111,   119,   120,   121,   122,
    4017      136,   140,   141,   142,   143,   144,   150,   151,   152,   153,
    4018      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
    4019      164,   166,   169,   227,   277,   293,   367,   372,   229,   110,
    4020      110,   110,   110,   110,   110,   110,    74,    75,   111,   227,
    4021      273,   351,   369,   111,   117,   151,   166,   219,   220,   226,
    4022      229,   233,   234,   238,   241,   242,   244,   263,   264,   268,
    4023      269,   270,   271,   285,   351,   363,   364,   365,   366,   371,
    4024      372,   112,   109,   324,   328,   371,   109,   116,   132,   111,
    4025      114,   151,   166,   279,   279,   115,   134,   116,   132,   109,
    4026      116,   132,   116,   132,   116,   132,   313,   132,   320,   321,
    4027      322,   323,   333,   334,   335,   336,   229,   319,   332,    64,
    4028      312,   111,   313,   350,   351,   313,   313,   175,   134,   109,
    4029      313,   350,   313,   313,   229,   310,   109,   109,   228,   229,
    4030      227,   229,   112,   134,   227,   367,   372,   175,   134,   273,
    4031      278,   219,   234,   324,   328,   175,   134,   295,   229,   238,
    4032      132,   229,   229,   293,   249,   247,   259,   275,   258,   229,
    4033      295,   132,   132,   306,   134,   139,   272,     3,   135,   209,
    4034      210,   224,   226,   229,   134,   312,   109,   312,   166,   320,
    4035      229,   109,   134,   273,   114,    33,    34,    35,   227,   287,
    4036      288,   290,   134,   128,   131,   292,   134,   230,   235,   236,
    4037      273,   316,   317,   318,   109,   141,   109,   150,   109,   150,
    4038      153,   109,   150,   109,   109,   150,   150,   111,   166,   171,
    4039      175,   227,   276,   367,   371,   112,   134,    82,    85,    86,
     4012     136,   140,   141,   142,   143,   144,   149,   150,   151,   152,
     4013     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
     4014     163,   165,   168,   226,   276,   292,   366,   371,   228,   110,
     4015     110,   110,   110,   110,   110,   110,    74,    75,   111,   226,
     4016     272,   350,   368,   111,   117,   150,   165,   218,   219,   225,
     4017     228,   232,   233,   237,   240,   241,   243,   262,   263,   267,
     4018     268,   269,   270,   284,   350,   362,   363,   364,   365,   370,
     4019     371,   112,   109,   323,   327,   370,   109,   116,   132,   111,
     4020     114,   150,   165,   278,   278,   115,   134,   116,   132,   109,
     4021     116,   132,   116,   132,   116,   132,   312,   132,   319,   320,
     4022     321,   322,   332,   333,   334,   335,   228,   318,   331,    64,
     4023     311,   111,   312,   349,   350,   312,   312,   174,   134,   109,
     4024     312,   349,   312,   312,   228,   309,   109,   109,   227,   228,
     4025     226,   228,   112,   134,   226,   366,   371,   174,   134,   272,
     4026     277,   218,   233,   323,   327,   174,   134,   294,   228,   237,
     4027     132,   228,   228,   292,   248,   246,   258,   274,   257,   228,
     4028     294,   132,   132,   305,   134,   139,   271,     3,   135,   208,
     4029     209,   223,   225,   228,   134,   311,   109,   311,   165,   319,
     4030     228,   109,   134,   272,   114,    33,    34,    35,   226,   286,
     4031     287,   289,   134,   128,   131,   291,   134,   229,   234,   235,
     4032     272,   315,   316,   317,   109,   141,   109,   149,   109,   149,
     4033     152,   109,   149,   109,   109,   149,   149,   111,   165,   170,
     4034     174,   226,   275,   366,   370,   112,   134,    82,    85,    86,
    40404035      87,   109,   111,   113,   114,    97,    98,    99,   100,   101,
    4041      102,   103,   104,   105,   106,   107,   131,   168,   153,   153,
     4036     102,   103,   104,   105,   106,   107,   131,   167,   152,   152,
    40424037     117,   123,   124,   119,   120,    88,    89,    90,    91,   125,
    40434038     126,    92,    93,   118,   127,   128,    94,    95,   129,   131,
    4044      374,   109,   151,   346,   347,   348,   349,   350,   110,   116,
    4045      109,   350,   351,   109,   350,   351,   134,   109,   227,   369,
    4046      112,   134,   135,   111,   227,   229,   362,   363,   371,   372,
    4047      135,   109,   111,   151,   320,   337,   338,   339,   340,   341,
    4048      342,   343,   344,   345,   351,   352,   353,   354,   355,   356,
    4049      357,   151,   371,   229,   135,   135,   151,   227,   229,   364,
    4050      273,   227,   351,   364,   273,   109,   134,   134,   134,   112,
    4051      134,    72,   111,   113,   140,   275,   279,   280,   281,   282,
    4052      283,   134,   134,   134,   134,   134,   134,   310,   110,   110,
    4053      110,   110,   110,   110,   110,   319,   332,   109,   278,   112,
    4054      209,   134,   310,   171,   277,   171,   277,   310,   111,   209,
    4055      312,   175,   134,   209,   110,    40,   111,   115,   227,   250,
    4056      251,   252,   367,   114,   116,   373,   131,   260,   114,   229,
    4057      265,   266,   267,   270,   271,   110,   116,   175,   134,   117,
    4058      166,   134,   226,   229,   264,   363,   371,   304,   305,   109,
    4059      151,   337,   110,   116,   374,   275,   287,   109,   114,   275,
    4060      277,   287,   110,   116,   109,   141,   110,   130,   276,   276,
    4061      276,   146,   166,   277,   276,   112,   134,   110,   116,   110,
    4062      109,   151,   350,   358,   359,   360,   361,   110,   116,   166,
    4063      111,   139,   145,   146,   134,    79,   111,   139,   145,   166,
    4064      153,   153,   153,   154,   154,   155,   155,   156,   156,   156,
    4065      156,   157,   157,   158,   159,   160,   161,   162,   130,   171,
    4066      166,   134,   347,   348,   349,   229,   346,   313,   313,   166,
    4067      277,   134,   272,   134,   227,   351,   364,   229,   233,   112,
    4068      112,   134,   371,   112,   109,   134,   320,   338,   339,   340,
    4069      343,   353,   354,   355,   112,   134,   229,   337,   341,   352,
    4070      109,   313,   356,   374,   313,   313,   374,   109,   313,   356,
    4071      313,   313,   313,   313,   351,   227,   362,   372,   273,   112,
    4072      116,   112,   116,   374,   227,   364,   374,   261,   262,   263,
    4073      264,   261,   261,   273,   166,   134,   111,   275,   130,   116,
    4074      373,   279,   111,   130,   283,    29,   211,   212,   273,   261,
    4075      139,   310,   139,   312,   109,   350,   351,   109,   350,   351,
    4076      142,   351,   175,   265,   110,   110,   110,   110,   112,   175,
    4077      209,   175,   114,   251,   252,   112,   134,   109,   130,   151,
    4078      253,   255,   319,   320,   332,   358,   116,   132,   116,   132,
    4079      275,   249,   275,   115,   164,   165,   259,   135,   135,   139,
    4080      224,   135,   135,   261,   109,   151,   371,   135,   115,   229,
    4081      288,   289,   135,   134,   134,   109,   135,   110,   317,   171,
    4082      172,   130,   132,   111,   141,   202,   203,   204,   110,   116,
    4083      110,   110,   110,   110,   111,   166,   359,   360,   361,   229,
    4084      358,   313,   313,   114,   153,   169,   166,   167,   170,   116,
    4085      135,   134,   110,   116,   166,   134,   115,   164,   130,   265,
    4086      110,   110,   110,   346,   265,   110,   261,   227,   364,   111,
    4087      117,   151,   166,   166,   229,   343,   265,   110,   110,   110,
    4088      110,   110,   110,   110,     7,   229,   337,   341,   352,   134,
    4089      134,   374,   134,   134,   110,   135,   135,   135,   135,   278,
    4090      135,   164,   165,   166,   311,   134,   279,   281,   115,   134,
    4091      213,   275,    40,    41,    43,    46,    47,    48,    49,    50,
    4092       51,    52,    53,    57,    61,    62,    72,   111,   127,   172,
    4093      173,   174,   175,   176,   177,   179,   180,   192,   194,   195,
    4094      200,   214,   309,    29,   135,   131,   278,   134,   134,   110,
    4095      135,   175,   249,   132,   132,   320,   165,   229,   254,   255,
    4096      254,   275,   313,   115,   260,   373,   110,   116,   112,   112,
    4097      135,   229,   116,   374,   291,   110,   287,   217,   219,   227,
    4098      299,   300,   301,   302,   293,   110,   110,   130,   165,   109,
    4099      110,   130,   116,   139,   112,   110,   110,   110,   358,   280,
    4100      116,   135,   170,   112,    79,   139,   147,   148,   149,   146,
    4101      135,   147,   164,   169,   135,   109,   350,   351,   135,   135,
    4102      134,   135,   135,   135,   166,   110,   135,   109,   350,   351,
    4103      109,   356,   109,   356,   351,   228,     7,   117,   135,   166,
    4104      265,   265,   264,   268,   268,   269,   116,   116,   110,   110,
    4105      112,    96,   122,   135,   135,   147,   279,   166,   116,   132,
    4106      214,   218,   229,   233,   109,   109,   173,   109,   109,    72,
    4107      132,    72,   132,    72,   117,   172,   109,   175,   167,   167,
    4108      130,   112,   144,   132,   135,   134,   135,   213,   110,   166,
    4109      265,   265,   313,   110,   115,   253,   115,   134,   110,   134,
    4110      135,   310,   115,   134,   135,   135,   110,   114,   202,   112,
    4111      165,   132,   202,   204,   110,   109,   350,   351,   373,   167,
    4112      112,   135,   116,   135,    85,   113,   112,   135,   110,   134,
    4113      110,   110,   112,   112,   112,   135,   110,   134,   134,   134,
    4114      166,   166,   135,   112,   135,   135,   135,   135,   134,   134,
    4115      165,   165,   112,   112,   135,   135,   275,   229,   171,   171,
    4116       47,   171,   134,   132,   132,   132,   171,   132,   171,    58,
    4117       59,    60,   196,   197,   198,   132,    63,   132,   313,   114,
    4118      177,   115,   132,   135,   135,    96,   270,   271,   110,   300,
    4119      116,   132,   116,   132,   115,   298,   130,   141,   110,   110,
    4120      130,   134,   115,   112,   148,   112,   111,   148,   111,   148,
    4121      112,   265,   112,   265,   265,   265,   135,   135,   112,   112,
    4122      110,   110,   112,   116,    96,   264,    96,   135,   112,   112,
    4123      110,   110,   109,   110,   172,   193,   214,   132,   110,   109,
    4124      109,   175,   198,    58,    59,   166,   173,   145,   110,   110,
    4125      114,   134,   134,   299,   141,   205,   109,   132,   205,   265,
    4126      134,   134,   135,   135,   135,   135,   112,   112,   134,   135,
    4127      112,   173,    44,    45,   114,   183,   184,   185,   171,   173,
    4128      135,   110,   172,   114,   185,    96,   134,    96,   134,   109,
    4129      109,   132,   115,   134,   273,   310,   115,   116,   130,   165,
    4130      110,   135,   147,   147,   110,   110,   110,   110,   268,    42,
    4131      165,   181,   182,   311,   130,   134,   173,   183,   110,   132,
    4132      173,   132,   134,   110,   134,   110,   134,    96,   134,    96,
    4133      134,   132,   299,   141,   139,   206,   110,   132,   110,   135,
    4134      135,   173,    96,   116,   130,   135,   207,   208,   214,   132,
    4135      172,   172,   207,   175,   199,   227,   367,   175,   199,   110,
    4136      134,   110,   134,   115,   110,   116,   112,   112,   165,   181,
    4137      184,   186,   187,   134,   132,   184,   188,   189,   135,   109,
    4138      151,   310,   358,   139,   135,   175,   199,   175,   199,   109,
    4139      132,   139,   173,   178,   115,   184,   214,   172,    56,   178,
    4140      191,   115,   184,   110,   229,   110,   135,   135,   293,   173,
    4141      178,   132,   190,   191,   178,   191,   175,   175,   110,   110,
    4142      110,   190,   135,   135,   175,   175,   135,   135
     4039     373,   109,   150,   345,   346,   347,   348,   349,   110,   116,
     4040     109,   349,   350,   109,   349,   350,   134,   109,   226,   368,
     4041     112,   134,   135,   111,   226,   228,   361,   362,   370,   371,
     4042     135,   109,   111,   150,   319,   336,   337,   338,   339,   340,
     4043     341,   342,   343,   344,   350,   351,   352,   353,   354,   355,
     4044     356,   150,   370,   228,   135,   135,   150,   226,   228,   363,
     4045     272,   226,   350,   363,   272,   109,   134,   134,   134,   112,
     4046     134,    72,   111,   113,   140,   274,   278,   279,   280,   281,
     4047     282,   134,   134,   134,   134,   134,   134,   309,   110,   110,
     4048     110,   110,   110,   110,   110,   318,   331,   109,   277,   112,
     4049     208,   134,   309,   170,   276,   170,   276,   309,   111,   208,
     4050     311,   174,   134,   208,   110,    40,   111,   115,   226,   249,
     4051     250,   251,   366,   114,   116,   372,   131,   259,   114,   228,
     4052     264,   265,   266,   269,   270,   110,   116,   174,   134,   117,
     4053     165,   134,   225,   228,   263,   362,   370,   303,   304,   109,
     4054     150,   336,   110,   116,   373,   274,   286,   109,   114,   274,
     4055     276,   286,   110,   116,   109,   141,   110,   130,   275,   275,
     4056     275,   146,   165,   276,   275,   112,   134,   110,   116,   110,
     4057     109,   150,   349,   357,   358,   359,   360,   110,   116,   165,
     4058     111,   139,   145,   146,   134,   111,   139,   145,   165,   152,
     4059     152,   152,   153,   153,   154,   154,   155,   155,   155,   155,
     4060     156,   156,   157,   158,   159,   160,   161,   130,   170,   165,
     4061     134,   346,   347,   348,   228,   345,   312,   312,   165,   276,
     4062     134,   271,   134,   226,   350,   363,   228,   232,   112,   112,
     4063     134,   370,   112,   109,   134,   319,   337,   338,   339,   342,
     4064     352,   353,   354,   112,   134,   228,   336,   340,   351,   109,
     4065     312,   355,   373,   312,   312,   373,   109,   312,   355,   312,
     4066     312,   312,   312,   350,   226,   361,   371,   272,   112,   116,
     4067     112,   116,   373,   226,   363,   373,   260,   261,   262,   263,
     4068     260,   260,   272,   165,   134,   111,   274,   130,   116,   372,
     4069     278,   111,   130,   282,    29,   210,   211,   272,   260,   139,
     4070     309,   139,   311,   109,   349,   350,   109,   349,   350,   142,
     4071     350,   174,   264,   110,   110,   110,   110,   112,   174,   208,
     4072     174,   114,   250,   251,   112,   134,   109,   130,   150,   252,
     4073     254,   318,   319,   331,   357,   116,   132,   116,   132,   274,
     4074     248,   274,   115,   163,   164,   258,   135,   135,   139,   223,
     4075     135,   135,   260,   109,   150,   370,   135,   115,   228,   287,
     4076     288,   135,   134,   134,   109,   135,   110,   316,   170,   171,
     4077     130,   132,   111,   141,   201,   202,   203,   110,   116,   110,
     4078     110,   110,   110,   111,   165,   358,   359,   360,   228,   357,
     4079     312,   312,   114,   152,   168,   165,   166,   169,   116,   135,
     4080     134,   110,   116,   165,   134,   115,   163,   130,   264,   110,
     4081     110,   110,   345,   264,   110,   260,   226,   363,   111,   117,
     4082     150,   165,   165,   228,   342,   264,   110,   110,   110,   110,
     4083     110,   110,   110,     7,   228,   336,   340,   351,   134,   134,
     4084     373,   134,   134,   110,   135,   135,   135,   135,   277,   135,
     4085     163,   164,   165,   310,   134,   278,   280,   115,   134,   212,
     4086     274,    40,    41,    43,    46,    47,    48,    49,    50,    51,
     4087      52,    53,    57,    61,    62,    72,   111,   127,   171,   172,
     4088     173,   174,   175,   176,   178,   179,   191,   193,   194,   199,
     4089     213,   308,    29,   135,   131,   277,   134,   134,   110,   135,
     4090     174,   248,   132,   132,   319,   164,   228,   253,   254,   253,
     4091     274,   312,   115,   259,   372,   110,   116,   112,   112,   135,
     4092     228,   116,   373,   290,   110,   286,   216,   218,   226,   298,
     4093     299,   300,   301,   292,   110,   110,   130,   164,   109,   110,
     4094     130,   116,   139,   112,   110,   110,   110,   357,   279,   116,
     4095     135,   169,   112,   139,   147,   148,   146,   135,   147,   163,
     4096     168,   135,   109,   349,   350,   135,   135,   134,   135,   135,
     4097     135,   165,   110,   135,   109,   349,   350,   109,   355,   109,
     4098     355,   350,   227,     7,   117,   135,   165,   264,   264,   263,
     4099     267,   267,   268,   116,   116,   110,   110,   112,    96,   122,
     4100     135,   135,   147,   278,   165,   116,   132,   213,   217,   228,
     4101     232,   109,   109,   172,   109,   109,    72,   132,    72,   132,
     4102      72,   117,   171,   109,   174,   166,   166,   130,   112,   144,
     4103     132,   135,   134,   135,   212,   110,   165,   264,   264,   312,
     4104     110,   115,   252,   115,   134,   110,   134,   135,   309,   115,
     4105     134,   135,   135,   110,   114,   201,   112,   164,   132,   201,
     4106     203,   110,   109,   349,   350,   372,   166,   112,   135,    85,
     4107     113,   116,   135,   112,   135,   110,   134,   110,   110,   112,
     4108     112,   112,   135,   110,   134,   134,   134,   165,   165,   135,
     4109     112,   135,   135,   135,   135,   134,   134,   164,   164,   112,
     4110     112,   135,   135,   274,   228,   170,   170,    47,   170,   134,
     4111     132,   132,   132,   170,   132,   170,    58,    59,    60,   195,
     4112     196,   197,   132,    63,   132,   312,   114,   176,   115,   132,
     4113     135,   135,    96,   269,   270,   110,   299,   116,   132,   116,
     4114     132,   115,   297,   130,   141,   110,   110,   130,   134,   115,
     4115     112,   111,   148,   111,   148,   148,   112,   112,   264,   112,
     4116     264,   264,   264,   135,   135,   112,   112,   110,   110,   112,
     4117     116,    96,   263,    96,   135,   112,   112,   110,   110,   109,
     4118     110,   171,   192,   213,   132,   110,   109,   109,   174,   197,
     4119      58,    59,   165,   172,   145,   110,   110,   114,   134,   134,
     4120     298,   141,   204,   109,   132,   204,   264,   134,   134,   135,
     4121     135,   135,   135,   112,   112,   134,   135,   112,   172,    44,
     4122      45,   114,   182,   183,   184,   170,   172,   135,   110,   171,
     4123     114,   184,    96,   134,    96,   134,   109,   109,   132,   115,
     4124     134,   272,   309,   115,   116,   130,   164,   110,   135,   147,
     4125     147,   110,   110,   110,   110,   267,    42,   164,   180,   181,
     4126     310,   130,   134,   172,   182,   110,   132,   172,   132,   134,
     4127     110,   134,   110,   134,    96,   134,    96,   134,   132,   298,
     4128     141,   139,   205,   110,   132,   110,   135,   135,   172,    96,
     4129     116,   130,   135,   206,   207,   213,   132,   171,   171,   206,
     4130     174,   198,   226,   366,   174,   198,   110,   134,   110,   134,
     4131     115,   110,   116,   112,   112,   164,   180,   183,   185,   186,
     4132     134,   132,   183,   187,   188,   135,   109,   150,   309,   357,
     4133     139,   135,   174,   198,   174,   198,   109,   132,   139,   172,
     4134     177,   115,   183,   213,   171,    56,   177,   190,   115,   183,
     4135     110,   228,   110,   135,   135,   292,   172,   177,   132,   189,
     4136     190,   177,   190,   174,   174,   110,   110,   110,   189,   135,
     4137     135,   174,   174,   135,   135
    41434138};
    41444139
     
    49774972
    49784973/* Line 1806 of yacc.c  */
    4979 #line 302 "parser.yy"
     4974#line 301 "parser.yy"
    49804975    { typedefTable.enterScope(); }
    49814976    break;
     
    49844979
    49854980/* Line 1806 of yacc.c  */
    4986 #line 306 "parser.yy"
     4981#line 305 "parser.yy"
    49874982    { typedefTable.leaveScope(); }
    49884983    break;
     
    49914986
    49924987/* Line 1806 of yacc.c  */
     4988#line 312 "parser.yy"
     4989    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
     4990    break;
     4991
     4992  case 5:
     4993
     4994/* Line 1806 of yacc.c  */
    49934995#line 313 "parser.yy"
    4994     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    4995     break;
    4996 
    4997   case 5:
     4996    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     4997    break;
     4998
     4999  case 6:
    49985000
    49995001/* Line 1806 of yacc.c  */
    50005002#line 314 "parser.yy"
    5001     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    5002     break;
    5003 
    5004   case 6:
    5005 
    5006 /* Line 1806 of yacc.c  */
    5007 #line 315 "parser.yy"
    50085003    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    50095004    break;
     
    50125007
    50135008/* Line 1806 of yacc.c  */
    5014 #line 340 "parser.yy"
     5009#line 339 "parser.yy"
    50155010    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    50165011    break;
     
    50195014
    50205015/* Line 1806 of yacc.c  */
    5021 #line 344 "parser.yy"
     5016#line 343 "parser.yy"
    50225017    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    50235018    break;
     
    50265021
    50275022/* Line 1806 of yacc.c  */
    5028 #line 346 "parser.yy"
     5023#line 345 "parser.yy"
    50295024    {
    50305025                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    50375032
    50385033/* Line 1806 of yacc.c  */
    5039 #line 357 "parser.yy"
     5034#line 356 "parser.yy"
    50405035    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50415036    break;
     
    50445039
    50455040/* Line 1806 of yacc.c  */
    5046 #line 359 "parser.yy"
     5041#line 358 "parser.yy"
    50475042    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50485043    break;
     
    50515046
    50525047/* Line 1806 of yacc.c  */
    5053 #line 361 "parser.yy"
     5048#line 360 "parser.yy"
    50545049    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    50555050    break;
     
    50585053
    50595054/* Line 1806 of yacc.c  */
    5060 #line 363 "parser.yy"
     5055#line 362 "parser.yy"
    50615056    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    50625057    break;
     
    50655060
    50665061/* Line 1806 of yacc.c  */
    5067 #line 373 "parser.yy"
     5062#line 372 "parser.yy"
    50685063    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    50695064    break;
     
    50725067
    50735068/* Line 1806 of yacc.c  */
    5074 #line 375 "parser.yy"
     5069#line 374 "parser.yy"
    50755070    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    50765071    break;
     
    50795074
    50805075/* Line 1806 of yacc.c  */
    5081 #line 379 "parser.yy"
     5076#line 378 "parser.yy"
    50825077    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50835078    break;
    50845079
    5085   case 29:
    5086 
    5087 /* Line 1806 of yacc.c  */
    5088 #line 383 "parser.yy"
     5080  case 28:
     5081
     5082/* Line 1806 of yacc.c  */
     5083#line 381 "parser.yy"
    50895084    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50905085    break;
    50915086
     5087  case 30:
     5088
     5089/* Line 1806 of yacc.c  */
     5090#line 384 "parser.yy"
     5091    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
     5092    break;
     5093
    50925094  case 31:
    50935095
    50945096/* Line 1806 of yacc.c  */
    50955097#line 386 "parser.yy"
    5096     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
     5098    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    50975099    break;
    50985100
     
    51015103/* Line 1806 of yacc.c  */
    51025104#line 388 "parser.yy"
    5103     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
     5105    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    51045106    break;
    51055107
     
    51085110/* Line 1806 of yacc.c  */
    51095111#line 390 "parser.yy"
    5110     { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    5111     break;
    5112 
    5113   case 34:
    5114 
    5115 /* Line 1806 of yacc.c  */
    5116 #line 392 "parser.yy"
    51175112    {
    51185113                        Token fn;
     
    51225117    break;
    51235118
     5119  case 35:
     5120
     5121/* Line 1806 of yacc.c  */
     5122#line 400 "parser.yy"
     5123    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     5124    break;
     5125
    51245126  case 36:
    51255127
    51265128/* Line 1806 of yacc.c  */
    5127 #line 402 "parser.yy"
    5128     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    5129     break;
    5130 
    5131   case 37:
    5132 
    5133 /* Line 1806 of yacc.c  */
    5134 #line 407 "parser.yy"
     5129#line 405 "parser.yy"
    51355130    { (yyval.en) = 0; }
    51365131    break;
    51375132
     5133  case 39:
     5134
     5135/* Line 1806 of yacc.c  */
     5136#line 411 "parser.yy"
     5137    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5138    break;
     5139
    51385140  case 40:
    51395141
    51405142/* Line 1806 of yacc.c  */
    5141 #line 413 "parser.yy"
    5142     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5143#line 416 "parser.yy"
     5144    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    51435145    break;
    51445146
     
    51475149/* Line 1806 of yacc.c  */
    51485150#line 420 "parser.yy"
    5149     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5151    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51505152    break;
    51515153
     
    51545156/* Line 1806 of yacc.c  */
    51555157#line 422 "parser.yy"
    5156     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
     5158    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51575159    break;
    51585160
     
    51615163/* Line 1806 of yacc.c  */
    51625164#line 424 "parser.yy"
    5163     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
     5165    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51645166    break;
    51655167
     
    51685170/* Line 1806 of yacc.c  */
    51695171#line 426 "parser.yy"
    5170     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    5171     break;
    5172 
    5173   case 45:
    5174 
    5175 /* Line 1806 of yacc.c  */
    5176 #line 428 "parser.yy"
    51775172    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51785173    break;
    51795174
     5175  case 46:
     5176
     5177/* Line 1806 of yacc.c  */
     5178#line 434 "parser.yy"
     5179    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5180    break;
     5181
     5182  case 47:
     5183
     5184/* Line 1806 of yacc.c  */
     5185#line 436 "parser.yy"
     5186    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     5187    break;
     5188
     5189  case 48:
     5190
     5191/* Line 1806 of yacc.c  */
     5192#line 438 "parser.yy"
     5193    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     5194    break;
     5195
    51805196  case 49:
    51815197
    51825198/* Line 1806 of yacc.c  */
    5183 #line 441 "parser.yy"
    5184     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5185     break;
    5186 
    5187   case 50:
    5188 
    5189 /* Line 1806 of yacc.c  */
    51905199#line 443 "parser.yy"
    5191     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    5192     break;
    5193 
    5194   case 51:
    5195 
    5196 /* Line 1806 of yacc.c  */
    5197 #line 445 "parser.yy"
    5198     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    5199     break;
    5200 
    5201   case 52:
    5202 
    5203 /* Line 1806 of yacc.c  */
    5204 #line 450 "parser.yy"
    52055200    {
    52065201                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52175212    break;
    52185213
     5214  case 50:
     5215
     5216/* Line 1806 of yacc.c  */
     5217#line 456 "parser.yy"
     5218    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     5219    break;
     5220
     5221  case 51:
     5222
     5223/* Line 1806 of yacc.c  */
     5224#line 458 "parser.yy"
     5225    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     5226    break;
     5227
     5228  case 52:
     5229
     5230/* Line 1806 of yacc.c  */
     5231#line 460 "parser.yy"
     5232    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     5233    break;
     5234
    52195235  case 53:
    52205236
    52215237/* Line 1806 of yacc.c  */
    5222 #line 463 "parser.yy"
    5223     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     5238#line 462 "parser.yy"
     5239    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52245240    break;
    52255241
     
    52275243
    52285244/* Line 1806 of yacc.c  */
    5229 #line 465 "parser.yy"
    5230     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     5245#line 464 "parser.yy"
     5246    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52315247    break;
    52325248
     
    52345250
    52355251/* Line 1806 of yacc.c  */
    5236 #line 467 "parser.yy"
    5237     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     5252#line 466 "parser.yy"
     5253    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52385254    break;
    52395255
     
    52415257
    52425258/* Line 1806 of yacc.c  */
    5243 #line 469 "parser.yy"
    5244     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5259#line 468 "parser.yy"
     5260    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52455261    break;
    52465262
     
    52485264
    52495265/* Line 1806 of yacc.c  */
    5250 #line 471 "parser.yy"
    5251     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5266#line 470 "parser.yy"
     5267    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    52525268    break;
    52535269
     
    52555271
    52565272/* Line 1806 of yacc.c  */
    5257 #line 473 "parser.yy"
    5258     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5273#line 472 "parser.yy"
     5274    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    52595275    break;
    52605276
     
    52625278
    52635279/* Line 1806 of yacc.c  */
    5264 #line 475 "parser.yy"
    5265     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5280#line 474 "parser.yy"
     5281    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    52665282    break;
    52675283
     
    52695285
    52705286/* Line 1806 of yacc.c  */
    5271 #line 477 "parser.yy"
    5272     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     5287#line 476 "parser.yy"
     5288    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    52735289    break;
    52745290
     
    52765292
    52775293/* Line 1806 of yacc.c  */
    5278 #line 479 "parser.yy"
    5279     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
     5294#line 482 "parser.yy"
     5295    { (yyval.op) = OperKinds::PointTo; }
    52805296    break;
    52815297
     
    52835299
    52845300/* Line 1806 of yacc.c  */
    5285 #line 481 "parser.yy"
    5286     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     5301#line 483 "parser.yy"
     5302    { (yyval.op) = OperKinds::AddressOf; }
    52875303    break;
    52885304
     
    52905306
    52915307/* Line 1806 of yacc.c  */
    5292 #line 483 "parser.yy"
    5293     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     5308#line 489 "parser.yy"
     5309    { (yyval.op) = OperKinds::UnPlus; }
    52945310    break;
    52955311
     
    52975313
    52985314/* Line 1806 of yacc.c  */
    5299 #line 489 "parser.yy"
    5300     { (yyval.op) = OperKinds::PointTo; }
     5315#line 490 "parser.yy"
     5316    { (yyval.op) = OperKinds::UnMinus; }
    53015317    break;
    53025318
     
    53045320
    53055321/* Line 1806 of yacc.c  */
    5306 #line 490 "parser.yy"
    5307     { (yyval.op) = OperKinds::AddressOf; }
     5322#line 491 "parser.yy"
     5323    { (yyval.op) = OperKinds::Neg; }
    53085324    break;
    53095325
     
    53115327
    53125328/* Line 1806 of yacc.c  */
    5313 #line 496 "parser.yy"
    5314     { (yyval.op) = OperKinds::UnPlus; }
    5315     break;
    5316 
    5317   case 67:
    5318 
    5319 /* Line 1806 of yacc.c  */
    5320 #line 497 "parser.yy"
    5321     { (yyval.op) = OperKinds::UnMinus; }
     5329#line 492 "parser.yy"
     5330    { (yyval.op) = OperKinds::BitNeg; }
    53225331    break;
    53235332
     
    53265335/* Line 1806 of yacc.c  */
    53275336#line 498 "parser.yy"
    5328     { (yyval.op) = OperKinds::Neg; }
     5337    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53295338    break;
    53305339
     
    53325341
    53335342/* Line 1806 of yacc.c  */
    5334 #line 499 "parser.yy"
    5335     { (yyval.op) = OperKinds::BitNeg; }
     5343#line 500 "parser.yy"
     5344    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53365345    break;
    53375346
     
    53395348
    53405349/* Line 1806 of yacc.c  */
    5341 #line 505 "parser.yy"
    5342     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     5350#line 506 "parser.yy"
     5351    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53435352    break;
    53445353
     
    53465355
    53475356/* Line 1806 of yacc.c  */
    5348 #line 507 "parser.yy"
    5349     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    5350     break;
    5351 
    5352   case 74:
    5353 
    5354 /* Line 1806 of yacc.c  */
    5355 #line 513 "parser.yy"
    5356     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5357#line 508 "parser.yy"
     5358    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5359    break;
     5360
     5361  case 73:
     5362
     5363/* Line 1806 of yacc.c  */
     5364#line 510 "parser.yy"
     5365    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53575366    break;
    53585367
     
    53605369
    53615370/* Line 1806 of yacc.c  */
    5362 #line 515 "parser.yy"
    5363     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5371#line 516 "parser.yy"
     5372    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53645373    break;
    53655374
     
    53675376
    53685377/* Line 1806 of yacc.c  */
    5369 #line 517 "parser.yy"
    5370     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5378#line 518 "parser.yy"
     5379    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53715380    break;
    53725381
     
    53745383
    53755384/* Line 1806 of yacc.c  */
    5376 #line 523 "parser.yy"
    5377     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5385#line 524 "parser.yy"
     5386    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53785387    break;
    53795388
     
    53815390
    53825391/* Line 1806 of yacc.c  */
    5383 #line 525 "parser.yy"
    5384     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5392#line 526 "parser.yy"
     5393    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53855394    break;
    53865395
     
    53885397
    53895398/* Line 1806 of yacc.c  */
    5390 #line 531 "parser.yy"
    5391     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5399#line 532 "parser.yy"
     5400    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53925401    break;
    53935402
     
    53955404
    53965405/* Line 1806 of yacc.c  */
    5397 #line 533 "parser.yy"
    5398     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5406#line 534 "parser.yy"
     5407    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5408    break;
     5409
     5410  case 83:
     5411
     5412/* Line 1806 of yacc.c  */
     5413#line 536 "parser.yy"
     5414    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53995415    break;
    54005416
     
    54025418
    54035419/* Line 1806 of yacc.c  */
    5404 #line 539 "parser.yy"
    5405     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5406     break;
    5407 
    5408   case 85:
    5409 
    5410 /* Line 1806 of yacc.c  */
    5411 #line 541 "parser.yy"
    5412     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5420#line 538 "parser.yy"
     5421    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54135422    break;
    54145423
     
    54165425
    54175426/* Line 1806 of yacc.c  */
    5418 #line 543 "parser.yy"
    5419     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5427#line 544 "parser.yy"
     5428    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54205429    break;
    54215430
     
    54235432
    54245433/* Line 1806 of yacc.c  */
    5425 #line 545 "parser.yy"
    5426     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5434#line 546 "parser.yy"
     5435    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54275436    break;
    54285437
     
    54305439
    54315440/* Line 1806 of yacc.c  */
    5432 #line 551 "parser.yy"
    5433     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5434     break;
    5435 
    5436   case 90:
    5437 
    5438 /* Line 1806 of yacc.c  */
    5439 #line 553 "parser.yy"
    5440     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5441     break;
    5442 
    5443   case 92:
    5444 
    5445 /* Line 1806 of yacc.c  */
    5446 #line 559 "parser.yy"
     5441#line 552 "parser.yy"
    54475442    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54485443    break;
    54495444
    5450   case 94:
    5451 
    5452 /* Line 1806 of yacc.c  */
    5453 #line 565 "parser.yy"
     5445  case 91:
     5446
     5447/* Line 1806 of yacc.c  */
     5448#line 558 "parser.yy"
    54545449    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54555450    break;
    54565451
    5457   case 96:
    5458 
    5459 /* Line 1806 of yacc.c  */
    5460 #line 571 "parser.yy"
     5452  case 93:
     5453
     5454/* Line 1806 of yacc.c  */
     5455#line 564 "parser.yy"
    54615456    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54625457    break;
    54635458
    5464   case 98:
    5465 
    5466 /* Line 1806 of yacc.c  */
    5467 #line 577 "parser.yy"
     5459  case 95:
     5460
     5461/* Line 1806 of yacc.c  */
     5462#line 570 "parser.yy"
    54685463    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    54695464    break;
    54705465
     5466  case 97:
     5467
     5468/* Line 1806 of yacc.c  */
     5469#line 576 "parser.yy"
     5470    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     5471    break;
     5472
     5473  case 99:
     5474
     5475/* Line 1806 of yacc.c  */
     5476#line 582 "parser.yy"
     5477    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     5478    break;
     5479
    54715480  case 100:
    54725481
    54735482/* Line 1806 of yacc.c  */
    5474 #line 583 "parser.yy"
    5475     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    5476     break;
    5477 
    5478   case 102:
    5479 
    5480 /* Line 1806 of yacc.c  */
    5481 #line 589 "parser.yy"
     5483#line 585 "parser.yy"
     5484    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     5485    break;
     5486
     5487  case 101:
     5488
     5489/* Line 1806 of yacc.c  */
     5490#line 587 "parser.yy"
    54825491    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54835492    break;
    54845493
    5485   case 103:
    5486 
    5487 /* Line 1806 of yacc.c  */
    5488 #line 592 "parser.yy"
    5489     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    5490     break;
    5491 
    54925494  case 104:
    54935495
    54945496/* Line 1806 of yacc.c  */
    5495 #line 594 "parser.yy"
    5496     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    5497     break;
    5498 
    5499   case 107:
     5497#line 598 "parser.yy"
     5498    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5499    break;
     5500
     5501  case 105:
     5502
     5503/* Line 1806 of yacc.c  */
     5504#line 600 "parser.yy"
     5505    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
     5506    break;
     5507
     5508  case 106:
    55005509
    55015510/* Line 1806 of yacc.c  */
    55025511#line 605 "parser.yy"
    5503     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5512    { (yyval.en) = nullptr; }
    55045513    break;
    55055514
     
    55075516
    55085517/* Line 1806 of yacc.c  */
    5509 #line 607 "parser.yy"
    5510     { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
     5518#line 610 "parser.yy"
     5519    { (yyval.op) = OperKinds::Assign; }
    55115520    break;
    55125521
     
    55145523
    55155524/* Line 1806 of yacc.c  */
     5525#line 611 "parser.yy"
     5526    { (yyval.op) = OperKinds::AtAssn; }
     5527    break;
     5528
     5529  case 110:
     5530
     5531/* Line 1806 of yacc.c  */
    55165532#line 612 "parser.yy"
    5517     { (yyval.en) = nullptr; }
     5533    { (yyval.op) = OperKinds::MulAssn; }
    55185534    break;
    55195535
     
    55215537
    55225538/* Line 1806 of yacc.c  */
     5539#line 613 "parser.yy"
     5540    { (yyval.op) = OperKinds::DivAssn; }
     5541    break;
     5542
     5543  case 112:
     5544
     5545/* Line 1806 of yacc.c  */
     5546#line 614 "parser.yy"
     5547    { (yyval.op) = OperKinds::ModAssn; }
     5548    break;
     5549
     5550  case 113:
     5551
     5552/* Line 1806 of yacc.c  */
     5553#line 615 "parser.yy"
     5554    { (yyval.op) = OperKinds::PlusAssn; }
     5555    break;
     5556
     5557  case 114:
     5558
     5559/* Line 1806 of yacc.c  */
     5560#line 616 "parser.yy"
     5561    { (yyval.op) = OperKinds::MinusAssn; }
     5562    break;
     5563
     5564  case 115:
     5565
     5566/* Line 1806 of yacc.c  */
    55235567#line 617 "parser.yy"
    5524     { (yyval.op) = OperKinds::Assign; }
    5525     break;
    5526 
    5527   case 112:
     5568    { (yyval.op) = OperKinds::LSAssn; }
     5569    break;
     5570
     5571  case 116:
    55285572
    55295573/* Line 1806 of yacc.c  */
    55305574#line 618 "parser.yy"
    5531     { (yyval.op) = OperKinds::AtAssn; }
    5532     break;
    5533 
    5534   case 113:
     5575    { (yyval.op) = OperKinds::RSAssn; }
     5576    break;
     5577
     5578  case 117:
    55355579
    55365580/* Line 1806 of yacc.c  */
    55375581#line 619 "parser.yy"
    5538     { (yyval.op) = OperKinds::MulAssn; }
    5539     break;
    5540 
    5541   case 114:
     5582    { (yyval.op) = OperKinds::AndAssn; }
     5583    break;
     5584
     5585  case 118:
    55425586
    55435587/* Line 1806 of yacc.c  */
    55445588#line 620 "parser.yy"
    5545     { (yyval.op) = OperKinds::DivAssn; }
    5546     break;
    5547 
    5548   case 115:
     5589    { (yyval.op) = OperKinds::ERAssn; }
     5590    break;
     5591
     5592  case 119:
    55495593
    55505594/* Line 1806 of yacc.c  */
    55515595#line 621 "parser.yy"
    5552     { (yyval.op) = OperKinds::ModAssn; }
    5553     break;
    5554 
    5555   case 116:
    5556 
    5557 /* Line 1806 of yacc.c  */
    5558 #line 622 "parser.yy"
    5559     { (yyval.op) = OperKinds::PlusAssn; }
    5560     break;
    5561 
    5562   case 117:
    5563 
    5564 /* Line 1806 of yacc.c  */
    5565 #line 623 "parser.yy"
    5566     { (yyval.op) = OperKinds::MinusAssn; }
    5567     break;
    5568 
    5569   case 118:
    5570 
    5571 /* Line 1806 of yacc.c  */
    5572 #line 624 "parser.yy"
    5573     { (yyval.op) = OperKinds::LSAssn; }
    5574     break;
    5575 
    5576   case 119:
    5577 
    5578 /* Line 1806 of yacc.c  */
    5579 #line 625 "parser.yy"
    5580     { (yyval.op) = OperKinds::RSAssn; }
     5596    { (yyval.op) = OperKinds::OrAssn; }
    55815597    break;
    55825598
     
    55845600
    55855601/* Line 1806 of yacc.c  */
    5586 #line 626 "parser.yy"
    5587     { (yyval.op) = OperKinds::AndAssn; }
     5602#line 628 "parser.yy"
     5603    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    55885604    break;
    55895605
     
    55915607
    55925608/* Line 1806 of yacc.c  */
    5593 #line 627 "parser.yy"
    5594     { (yyval.op) = OperKinds::ERAssn; }
     5609#line 630 "parser.yy"
     5610    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    55955611    break;
    55965612
     
    55985614
    55995615/* Line 1806 of yacc.c  */
    5600 #line 628 "parser.yy"
    5601     { (yyval.op) = OperKinds::OrAssn; }
     5616#line 632 "parser.yy"
     5617    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    56025618    break;
    56035619
     
    56055621
    56065622/* Line 1806 of yacc.c  */
    5607 #line 635 "parser.yy"
    5608     { (yyval.en) = new ExpressionNode( build_tuple() ); }
    5609     break;
    5610 
    5611   case 124:
    5612 
    5613 /* Line 1806 of yacc.c  */
    5614 #line 637 "parser.yy"
    5615     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     5623#line 634 "parser.yy"
     5624    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    56165625    break;
    56175626
     
    56195628
    56205629/* Line 1806 of yacc.c  */
    5621 #line 639 "parser.yy"
    5622     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    5623     break;
    5624 
    5625   case 126:
    5626 
    5627 /* Line 1806 of yacc.c  */
    5628 #line 641 "parser.yy"
    5629     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     5630#line 640 "parser.yy"
     5631    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5632    break;
     5633
     5634  case 127:
     5635
     5636/* Line 1806 of yacc.c  */
     5637#line 646 "parser.yy"
     5638    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56305639    break;
    56315640
     
    56335642
    56345643/* Line 1806 of yacc.c  */
    5635 #line 647 "parser.yy"
    5636     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    5637     break;
    5638 
    5639   case 130:
    5640 
    5641 /* Line 1806 of yacc.c  */
    5642 #line 653 "parser.yy"
    5643     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5644     break;
    5645 
    5646   case 131:
    5647 
    5648 /* Line 1806 of yacc.c  */
    5649 #line 658 "parser.yy"
     5644#line 651 "parser.yy"
    56505645    { (yyval.en) = 0; }
    56515646    break;
    56525647
    5653   case 135:
     5648  case 132:
     5649
     5650/* Line 1806 of yacc.c  */
     5651#line 660 "parser.yy"
     5652    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     5653    break;
     5654
     5655  case 138:
    56545656
    56555657/* Line 1806 of yacc.c  */
    56565658#line 667 "parser.yy"
    5657     { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    5658     break;
    5659 
    5660   case 141:
    5661 
    5662 /* Line 1806 of yacc.c  */
    5663 #line 674 "parser.yy"
    56645659    {
    56655660                        Token fn;
     
    56695664    break;
    56705665
    5671   case 142:
    5672 
    5673 /* Line 1806 of yacc.c  */
    5674 #line 684 "parser.yy"
     5666  case 139:
     5667
     5668/* Line 1806 of yacc.c  */
     5669#line 677 "parser.yy"
    56755670    {
    56765671                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56785673    break;
    56795674
     5675  case 140:
     5676
     5677/* Line 1806 of yacc.c  */
     5678#line 684 "parser.yy"
     5679    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5680    break;
     5681
     5682  case 141:
     5683
     5684/* Line 1806 of yacc.c  */
     5685#line 691 "parser.yy"
     5686    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     5687    break;
     5688
    56805689  case 143:
    56815690
    56825691/* Line 1806 of yacc.c  */
    5683 #line 691 "parser.yy"
    5684     { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5692#line 697 "parser.yy"
     5693    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56855694    break;
    56865695
     
    56885697
    56895698/* Line 1806 of yacc.c  */
    5690 #line 698 "parser.yy"
    5691     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    5692     break;
    5693 
    5694   case 146:
     5699#line 702 "parser.yy"
     5700    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5701    break;
     5702
     5703  case 145:
    56955704
    56965705/* Line 1806 of yacc.c  */
    56975706#line 704 "parser.yy"
    5698     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    5699     break;
    5700 
    5701   case 147:
    5702 
    5703 /* Line 1806 of yacc.c  */
    5704 #line 709 "parser.yy"
    5705     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    5706     break;
    5707 
    5708   case 148:
    5709 
    5710 /* Line 1806 of yacc.c  */
    5711 #line 711 "parser.yy"
    57125707    {   // mark all fields in list
    57135708                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    57175712    break;
    57185713
     5714  case 146:
     5715
     5716/* Line 1806 of yacc.c  */
     5717#line 710 "parser.yy"
     5718    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5719    break;
     5720
    57195721  case 149:
    57205722
    57215723/* Line 1806 of yacc.c  */
    57225724#line 717 "parser.yy"
    5723     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5725    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5726    break;
     5727
     5728  case 150:
     5729
     5730/* Line 1806 of yacc.c  */
     5731#line 722 "parser.yy"
     5732    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5733    break;
     5734
     5735  case 151:
     5736
     5737/* Line 1806 of yacc.c  */
     5738#line 728 "parser.yy"
     5739    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    57245740    break;
    57255741
     
    57275743
    57285744/* Line 1806 of yacc.c  */
    5729 #line 724 "parser.yy"
    5730     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5745#line 730 "parser.yy"
     5746    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    57315747    break;
    57325748
     
    57345750
    57355751/* Line 1806 of yacc.c  */
    5736 #line 729 "parser.yy"
    5737     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5752#line 732 "parser.yy"
     5753    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57385754    break;
    57395755
     
    57415757
    57425758/* Line 1806 of yacc.c  */
    5743 #line 735 "parser.yy"
    5744     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    5745     break;
    5746 
    5747   case 155:
    5748 
    5749 /* Line 1806 of yacc.c  */
    5750 #line 737 "parser.yy"
    5751     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    5752     break;
    5753 
    5754   case 156:
    5755 
    5756 /* Line 1806 of yacc.c  */
    5757 #line 739 "parser.yy"
    5758     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5759     break;
    5760 
    5761   case 157:
    5762 
    5763 /* Line 1806 of yacc.c  */
    5764 #line 741 "parser.yy"
     5759#line 734 "parser.yy"
    57655760    {
    57665761                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57745769    break;
    57755770
    5776   case 158:
    5777 
    5778 /* Line 1806 of yacc.c  */
    5779 #line 751 "parser.yy"
     5771  case 155:
     5772
     5773/* Line 1806 of yacc.c  */
     5774#line 744 "parser.yy"
    57805775    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57815776    break;
    57825777
    5783   case 159:
    5784 
    5785 /* Line 1806 of yacc.c  */
    5786 #line 753 "parser.yy"
     5778  case 156:
     5779
     5780/* Line 1806 of yacc.c  */
     5781#line 746 "parser.yy"
    57875782    {
    57885783                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57915786    break;
    57925787
     5788  case 157:
     5789
     5790/* Line 1806 of yacc.c  */
     5791#line 756 "parser.yy"
     5792    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5793    break;
     5794
     5795  case 158:
     5796
     5797/* Line 1806 of yacc.c  */
     5798#line 758 "parser.yy"
     5799    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5800    break;
     5801
    57935802  case 160:
    57945803
    57955804/* Line 1806 of yacc.c  */
    57965805#line 763 "parser.yy"
    5797     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5806    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    57985807    break;
    57995808
     
    58025811/* Line 1806 of yacc.c  */
    58035812#line 765 "parser.yy"
    5804     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5813    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5814    break;
     5815
     5816  case 162:
     5817
     5818/* Line 1806 of yacc.c  */
     5819#line 769 "parser.yy"
     5820    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    58055821    break;
    58065822
     
    58095825/* Line 1806 of yacc.c  */
    58105826#line 770 "parser.yy"
    5811     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    5812     break;
    5813 
    5814   case 164:
    5815 
    5816 /* Line 1806 of yacc.c  */
    5817 #line 772 "parser.yy"
    5818     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5827    { (yyval.sn) = new StatementNode( build_default() ); }
    58195828    break;
    58205829
     
    58235832/* Line 1806 of yacc.c  */
    58245833#line 776 "parser.yy"
    5825     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5834    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    58265835    break;
    58275836
     
    58295838
    58305839/* Line 1806 of yacc.c  */
    5831 #line 777 "parser.yy"
    5832     { (yyval.sn) = new StatementNode( build_default() ); }
    5833     break;
    5834 
    5835   case 168:
    5836 
    5837 /* Line 1806 of yacc.c  */
    5838 #line 783 "parser.yy"
    5839     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5840#line 780 "parser.yy"
     5841    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5842    break;
     5843
     5844  case 167:
     5845
     5846/* Line 1806 of yacc.c  */
     5847#line 785 "parser.yy"
     5848    { (yyval.sn) = 0; }
    58405849    break;
    58415850
     
    58435852
    58445853/* Line 1806 of yacc.c  */
    5845 #line 787 "parser.yy"
     5854#line 791 "parser.yy"
    58465855    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58475856    break;
     
    58505859
    58515860/* Line 1806 of yacc.c  */
    5852 #line 792 "parser.yy"
     5861#line 793 "parser.yy"
     5862    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5863    break;
     5864
     5865  case 171:
     5866
     5867/* Line 1806 of yacc.c  */
     5868#line 798 "parser.yy"
    58535869    { (yyval.sn) = 0; }
    58545870    break;
    58555871
    5856   case 172:
    5857 
    5858 /* Line 1806 of yacc.c  */
    5859 #line 798 "parser.yy"
    5860     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    5861     break;
    5862 
    58635872  case 173:
    58645873
    58655874/* Line 1806 of yacc.c  */
    5866 #line 800 "parser.yy"
    5867     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5875#line 804 "parser.yy"
     5876    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58685877    break;
    58695878
     
    58715880
    58725881/* Line 1806 of yacc.c  */
    5873 #line 805 "parser.yy"
     5882#line 806 "parser.yy"
     5883    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5884    break;
     5885
     5886  case 175:
     5887
     5888/* Line 1806 of yacc.c  */
     5889#line 808 "parser.yy"
     5890    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5891    break;
     5892
     5893  case 176:
     5894
     5895/* Line 1806 of yacc.c  */
     5896#line 810 "parser.yy"
     5897    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
     5898    break;
     5899
     5900  case 177:
     5901
     5902/* Line 1806 of yacc.c  */
     5903#line 815 "parser.yy"
     5904    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5905    break;
     5906
     5907  case 179:
     5908
     5909/* Line 1806 of yacc.c  */
     5910#line 821 "parser.yy"
    58745911    { (yyval.sn) = 0; }
    58755912    break;
    58765913
    5877   case 176:
    5878 
    5879 /* Line 1806 of yacc.c  */
    5880 #line 811 "parser.yy"
    5881     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5882     break;
    5883 
    5884   case 177:
    5885 
    5886 /* Line 1806 of yacc.c  */
    5887 #line 813 "parser.yy"
    5888     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    5889     break;
    5890 
    5891   case 178:
    5892 
    5893 /* Line 1806 of yacc.c  */
    5894 #line 815 "parser.yy"
    5895     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    5896     break;
    5897 
    5898   case 179:
    5899 
    5900 /* Line 1806 of yacc.c  */
    5901 #line 817 "parser.yy"
    5902     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    5903     break;
    5904 
    59055914  case 180:
    59065915
    59075916/* Line 1806 of yacc.c  */
    5908 #line 822 "parser.yy"
     5917#line 823 "parser.yy"
     5918    { (yyval.sn) = 0; }
     5919    break;
     5920
     5921  case 181:
     5922
     5923/* Line 1806 of yacc.c  */
     5924#line 828 "parser.yy"
     5925    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5926    break;
     5927
     5928  case 182:
     5929
     5930/* Line 1806 of yacc.c  */
     5931#line 830 "parser.yy"
     5932    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
     5933    break;
     5934
     5935  case 183:
     5936
     5937/* Line 1806 of yacc.c  */
     5938#line 832 "parser.yy"
     5939    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     5940    break;
     5941
     5942  case 184:
     5943
     5944/* Line 1806 of yacc.c  */
     5945#line 837 "parser.yy"
     5946    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5947    break;
     5948
     5949  case 185:
     5950
     5951/* Line 1806 of yacc.c  */
     5952#line 839 "parser.yy"
     5953    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5954    break;
     5955
     5956  case 186:
     5957
     5958/* Line 1806 of yacc.c  */
     5959#line 844 "parser.yy"
     5960    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     5961    break;
     5962
     5963  case 187:
     5964
     5965/* Line 1806 of yacc.c  */
     5966#line 848 "parser.yy"
     5967    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5968    break;
     5969
     5970  case 188:
     5971
     5972/* Line 1806 of yacc.c  */
     5973#line 851 "parser.yy"
     5974    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     5975    break;
     5976
     5977  case 189:
     5978
     5979/* Line 1806 of yacc.c  */
     5980#line 855 "parser.yy"
     5981    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     5982    break;
     5983
     5984  case 190:
     5985
     5986/* Line 1806 of yacc.c  */
     5987#line 858 "parser.yy"
    59095988    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59105989    break;
    59115990
    5912   case 182:
    5913 
    5914 /* Line 1806 of yacc.c  */
    5915 #line 828 "parser.yy"
    5916     { (yyval.sn) = 0; }
    5917     break;
    5918 
    5919   case 183:
    5920 
    5921 /* Line 1806 of yacc.c  */
    5922 #line 830 "parser.yy"
    5923     { (yyval.sn) = 0; }
    5924     break;
    5925 
    5926   case 184:
    5927 
    5928 /* Line 1806 of yacc.c  */
    5929 #line 835 "parser.yy"
    5930     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5931     break;
    5932 
    5933   case 185:
    5934 
    5935 /* Line 1806 of yacc.c  */
    5936 #line 837 "parser.yy"
    5937     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    5938     break;
    5939 
    5940   case 186:
    5941 
    5942 /* Line 1806 of yacc.c  */
    5943 #line 839 "parser.yy"
    5944     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    5945     break;
    5946 
    5947   case 187:
    5948 
    5949 /* Line 1806 of yacc.c  */
    5950 #line 844 "parser.yy"
    5951     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    5952     break;
    5953 
    5954   case 188:
    5955 
    5956 /* Line 1806 of yacc.c  */
    5957 #line 846 "parser.yy"
    5958     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5959     break;
    5960 
    5961   case 189:
    5962 
    5963 /* Line 1806 of yacc.c  */
    5964 #line 851 "parser.yy"
    5965     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    5966     break;
    5967 
    5968   case 190:
    5969 
    5970 /* Line 1806 of yacc.c  */
    5971 #line 855 "parser.yy"
    5972     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    5973     break;
    5974 
    59755991  case 191:
    59765992
    59775993/* Line 1806 of yacc.c  */
    5978 #line 858 "parser.yy"
    5979     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     5994#line 862 "parser.yy"
     5995    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    59805996    break;
    59815997
     
    59835999
    59846000/* Line 1806 of yacc.c  */
    5985 #line 862 "parser.yy"
    5986     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     6001#line 864 "parser.yy"
     6002    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    59876003    break;
    59886004
     
    59906006
    59916007/* Line 1806 of yacc.c  */
    5992 #line 865 "parser.yy"
    5993     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     6008#line 866 "parser.yy"
     6009    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    59946010    break;
    59956011
     
    59976013
    59986014/* Line 1806 of yacc.c  */
    5999 #line 869 "parser.yy"
    6000     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     6015#line 868 "parser.yy"
     6016    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60016017    break;
    60026018
     
    60046020
    60056021/* Line 1806 of yacc.c  */
    6006 #line 871 "parser.yy"
    6007     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     6022#line 870 "parser.yy"
     6023    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60086024    break;
    60096025
     
    60116027
    60126028/* Line 1806 of yacc.c  */
    6013 #line 873 "parser.yy"
    6014     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6029#line 875 "parser.yy"
     6030    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    60156031    break;
    60166032
     
    60186034
    60196035/* Line 1806 of yacc.c  */
    6020 #line 875 "parser.yy"
    6021     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6036#line 877 "parser.yy"
     6037    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    60226038    break;
    60236039
     
    60256041
    60266042/* Line 1806 of yacc.c  */
    6027 #line 877 "parser.yy"
    6028     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    6029     break;
    6030 
    6031   case 199:
    6032 
    6033 /* Line 1806 of yacc.c  */
    6034 #line 882 "parser.yy"
    6035     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     6043#line 879 "parser.yy"
     6044    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    60366045    break;
    60376046
     
    60396048
    60406049/* Line 1806 of yacc.c  */
    6041 #line 884 "parser.yy"
    6042     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     6050#line 886 "parser.yy"
     6051    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60436052    break;
    60446053
     
    60466055
    60476056/* Line 1806 of yacc.c  */
    6048 #line 886 "parser.yy"
    6049     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     6057#line 888 "parser.yy"
     6058    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6059    break;
     6060
     6061  case 202:
     6062
     6063/* Line 1806 of yacc.c  */
     6064#line 890 "parser.yy"
     6065    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60506066    break;
    60516067
     
    60536069
    60546070/* Line 1806 of yacc.c  */
    6055 #line 893 "parser.yy"
    6056     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6071#line 892 "parser.yy"
     6072    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60576073    break;
    60586074
     
    60606076
    60616077/* Line 1806 of yacc.c  */
    6062 #line 895 "parser.yy"
    6063     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6078#line 897 "parser.yy"
     6079    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60646080    break;
    60656081
     
    60676083
    60686084/* Line 1806 of yacc.c  */
    6069 #line 897 "parser.yy"
    6070     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6085#line 899 "parser.yy"
     6086    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    60716087    break;
    60726088
     
    60746090
    60756091/* Line 1806 of yacc.c  */
    6076 #line 899 "parser.yy"
    6077     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6092#line 901 "parser.yy"
     6093    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60786094    break;
    60796095
     
    60816097
    60826098/* Line 1806 of yacc.c  */
    6083 #line 904 "parser.yy"
    6084     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6099#line 903 "parser.yy"
     6100    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    60856101    break;
    60866102
     
    60886104
    60896105/* Line 1806 of yacc.c  */
    6090 #line 906 "parser.yy"
    6091     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    6092     break;
    6093 
    6094   case 209:
    6095 
    6096 /* Line 1806 of yacc.c  */
    60976106#line 908 "parser.yy"
    6098     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    6099     break;
    6100 
    6101   case 210:
    6102 
    6103 /* Line 1806 of yacc.c  */
    6104 #line 910 "parser.yy"
    6105     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    6106     break;
    6107 
    6108   case 211:
    6109 
    6110 /* Line 1806 of yacc.c  */
    6111 #line 915 "parser.yy"
    61126107    {
    61136108                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    61156110    break;
    61166111
    6117   case 213:
    6118 
    6119 /* Line 1806 of yacc.c  */
    6120 #line 928 "parser.yy"
     6112  case 210:
     6113
     6114/* Line 1806 of yacc.c  */
     6115#line 921 "parser.yy"
    61216116    {
    61226117                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61256120    break;
    61266121
    6127   case 214:
    6128 
    6129 /* Line 1806 of yacc.c  */
    6130 #line 933 "parser.yy"
     6122  case 211:
     6123
     6124/* Line 1806 of yacc.c  */
     6125#line 926 "parser.yy"
    61316126    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61326127    break;
    61336128
    6134   case 215:
    6135 
    6136 /* Line 1806 of yacc.c  */
    6137 #line 935 "parser.yy"
     6129  case 212:
     6130
     6131/* Line 1806 of yacc.c  */
     6132#line 928 "parser.yy"
    61386133    {
    61396134                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61426137    break;
    61436138
     6139  case 214:
     6140
     6141/* Line 1806 of yacc.c  */
     6142#line 937 "parser.yy"
     6143    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     6144    break;
     6145
     6146  case 215:
     6147
     6148/* Line 1806 of yacc.c  */
     6149#line 939 "parser.yy"
     6150    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     6151    break;
     6152
     6153  case 216:
     6154
     6155/* Line 1806 of yacc.c  */
     6156#line 941 "parser.yy"
     6157    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     6158    break;
     6159
    61446160  case 217:
    61456161
    61466162/* Line 1806 of yacc.c  */
    6147 #line 944 "parser.yy"
    6148     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     6163#line 943 "parser.yy"
     6164    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
    61496165    break;
    61506166
     
    61526168
    61536169/* Line 1806 of yacc.c  */
    6154 #line 946 "parser.yy"
    6155     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     6170#line 945 "parser.yy"
     6171    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
    61566172    break;
    61576173
     
    61596175
    61606176/* Line 1806 of yacc.c  */
    6161 #line 948 "parser.yy"
    6162     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     6177#line 950 "parser.yy"
     6178    { (yyval.flag) = false; }
    61636179    break;
    61646180
     
    61666182
    61676183/* Line 1806 of yacc.c  */
    6168 #line 950 "parser.yy"
    6169     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
     6184#line 952 "parser.yy"
     6185    { (yyval.flag) = true; }
    61706186    break;
    61716187
     
    61736189
    61746190/* Line 1806 of yacc.c  */
    6175 #line 952 "parser.yy"
    6176     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
    6177     break;
    6178 
    6179   case 222:
    6180 
    6181 /* Line 1806 of yacc.c  */
    61826191#line 957 "parser.yy"
    6183     { (yyval.flag) = false; }
    6184     break;
    6185 
    6186   case 223:
    6187 
    6188 /* Line 1806 of yacc.c  */
    6189 #line 959 "parser.yy"
    6190     { (yyval.flag) = true; }
     6192    { (yyval.en) = 0; }
    61916193    break;
    61926194
     
    61956197/* Line 1806 of yacc.c  */
    61966198#line 964 "parser.yy"
     6199    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     6200    break;
     6201
     6202  case 225:
     6203
     6204/* Line 1806 of yacc.c  */
     6205#line 969 "parser.yy"
     6206    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     6207    break;
     6208
     6209  case 226:
     6210
     6211/* Line 1806 of yacc.c  */
     6212#line 971 "parser.yy"
     6213    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     6214    break;
     6215
     6216  case 227:
     6217
     6218/* Line 1806 of yacc.c  */
     6219#line 976 "parser.yy"
    61976220    { (yyval.en) = 0; }
    61986221    break;
    61996222
    6200   case 227:
    6201 
    6202 /* Line 1806 of yacc.c  */
    6203 #line 971 "parser.yy"
    6204     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    6205     break;
    6206 
    62076223  case 228:
    62086224
    62096225/* Line 1806 of yacc.c  */
    6210 #line 976 "parser.yy"
    6211     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     6226#line 978 "parser.yy"
     6227    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62126228    break;
    62136229
     
    62156231
    62166232/* Line 1806 of yacc.c  */
    6217 #line 978 "parser.yy"
    6218     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     6233#line 980 "parser.yy"
     6234    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62196235    break;
    62206236
     
    62226238
    62236239/* Line 1806 of yacc.c  */
    6224 #line 983 "parser.yy"
    6225     { (yyval.en) = 0; }
    6226     break;
    6227 
    6228   case 231:
    6229 
    6230 /* Line 1806 of yacc.c  */
    62316240#line 985 "parser.yy"
    6232     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    6233     break;
    6234 
    6235   case 232:
    6236 
    6237 /* Line 1806 of yacc.c  */
    6238 #line 987 "parser.yy"
    6239     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    6240     break;
    6241 
    6242   case 233:
    6243 
    6244 /* Line 1806 of yacc.c  */
    6245 #line 992 "parser.yy"
    62466241    {
    62476242                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    62506245    break;
    62516246
    6252   case 234:
    6253 
    6254 /* Line 1806 of yacc.c  */
    6255 #line 997 "parser.yy"
     6247  case 231:
     6248
     6249/* Line 1806 of yacc.c  */
     6250#line 990 "parser.yy"
    62566251    {
    62576252                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    62606255    break;
    62616256
     6257  case 232:
     6258
     6259/* Line 1806 of yacc.c  */
     6260#line 1000 "parser.yy"
     6261    { (yyval.decl) = 0; }
     6262    break;
     6263
    62626264  case 235:
    62636265
    62646266/* Line 1806 of yacc.c  */
    62656267#line 1007 "parser.yy"
     6268    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6269    break;
     6270
     6271  case 236:
     6272
     6273/* Line 1806 of yacc.c  */
     6274#line 1012 "parser.yy"
    62666275    { (yyval.decl) = 0; }
    62676276    break;
    62686277
    6269   case 238:
    6270 
    6271 /* Line 1806 of yacc.c  */
    6272 #line 1014 "parser.yy"
     6278  case 239:
     6279
     6280/* Line 1806 of yacc.c  */
     6281#line 1019 "parser.yy"
    62736282    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62746283    break;
    62756284
    6276   case 239:
    6277 
    6278 /* Line 1806 of yacc.c  */
    6279 #line 1019 "parser.yy"
    6280     { (yyval.decl) = 0; }
    6281     break;
    6282 
    6283   case 242:
    6284 
    6285 /* Line 1806 of yacc.c  */
    6286 #line 1026 "parser.yy"
    6287     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6288     break;
    6289 
    6290   case 247:
    6291 
    6292 /* Line 1806 of yacc.c  */
    6293 #line 1040 "parser.yy"
     6285  case 244:
     6286
     6287/* Line 1806 of yacc.c  */
     6288#line 1033 "parser.yy"
    62946289    {}
    62956290    break;
    62966291
    6297   case 248:
    6298 
    6299 /* Line 1806 of yacc.c  */
    6300 #line 1041 "parser.yy"
     6292  case 245:
     6293
     6294/* Line 1806 of yacc.c  */
     6295#line 1034 "parser.yy"
    63016296    {}
    63026297    break;
    63036298
    6304   case 256:
    6305 
    6306 /* Line 1806 of yacc.c  */
    6307 #line 1070 "parser.yy"
     6299  case 253:
     6300
     6301/* Line 1806 of yacc.c  */
     6302#line 1063 "parser.yy"
    63086303    {
    63096304                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63126307    break;
    63136308
    6314   case 257:
    6315 
    6316 /* Line 1806 of yacc.c  */
    6317 #line 1077 "parser.yy"
     6309  case 254:
     6310
     6311/* Line 1806 of yacc.c  */
     6312#line 1070 "parser.yy"
    63186313    {
    63196314                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63226317    break;
    63236318
    6324   case 258:
    6325 
    6326 /* Line 1806 of yacc.c  */
    6327 #line 1082 "parser.yy"
     6319  case 255:
     6320
     6321/* Line 1806 of yacc.c  */
     6322#line 1075 "parser.yy"
    63286323    {
    63296324                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63326327    break;
    63336328
    6334   case 259:
    6335 
    6336 /* Line 1806 of yacc.c  */
    6337 #line 1092 "parser.yy"
     6329  case 256:
     6330
     6331/* Line 1806 of yacc.c  */
     6332#line 1085 "parser.yy"
    63386333    {
    63396334                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63426337    break;
    63436338
    6344   case 260:
    6345 
    6346 /* Line 1806 of yacc.c  */
    6347 #line 1097 "parser.yy"
     6339  case 257:
     6340
     6341/* Line 1806 of yacc.c  */
     6342#line 1090 "parser.yy"
    63486343    {
    63496344                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63526347    break;
    63536348
    6354   case 261:
    6355 
    6356 /* Line 1806 of yacc.c  */
    6357 #line 1102 "parser.yy"
     6349  case 258:
     6350
     6351/* Line 1806 of yacc.c  */
     6352#line 1095 "parser.yy"
    63586353    {
    63596354                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63626357    break;
    63636358
    6364   case 262:
    6365 
    6366 /* Line 1806 of yacc.c  */
    6367 #line 1110 "parser.yy"
     6359  case 259:
     6360
     6361/* Line 1806 of yacc.c  */
     6362#line 1103 "parser.yy"
    63686363    {
    63696364                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63726367    break;
    63736368
    6374   case 263:
    6375 
    6376 /* Line 1806 of yacc.c  */
    6377 #line 1115 "parser.yy"
     6369  case 260:
     6370
     6371/* Line 1806 of yacc.c  */
     6372#line 1108 "parser.yy"
    63786373    {
    63796374                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63826377    break;
    63836378
    6384   case 264:
    6385 
    6386 /* Line 1806 of yacc.c  */
    6387 #line 1120 "parser.yy"
     6379  case 261:
     6380
     6381/* Line 1806 of yacc.c  */
     6382#line 1113 "parser.yy"
    63886383    {
    63896384                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63926387    break;
    63936388
    6394   case 265:
    6395 
    6396 /* Line 1806 of yacc.c  */
    6397 #line 1125 "parser.yy"
     6389  case 262:
     6390
     6391/* Line 1806 of yacc.c  */
     6392#line 1118 "parser.yy"
    63986393    {
    63996394                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64026397    break;
    64036398
    6404   case 266:
    6405 
    6406 /* Line 1806 of yacc.c  */
    6407 #line 1130 "parser.yy"
     6399  case 263:
     6400
     6401/* Line 1806 of yacc.c  */
     6402#line 1123 "parser.yy"
    64086403    {
    64096404                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64126407    break;
    64136408
    6414   case 267:
    6415 
    6416 /* Line 1806 of yacc.c  */
    6417 #line 1138 "parser.yy"
     6409  case 264:
     6410
     6411/* Line 1806 of yacc.c  */
     6412#line 1131 "parser.yy"
    64186413    {
    64196414                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64216416    break;
    64226417
    6423   case 268:
    6424 
    6425 /* Line 1806 of yacc.c  */
    6426 #line 1161 "parser.yy"
     6418  case 265:
     6419
     6420/* Line 1806 of yacc.c  */
     6421#line 1154 "parser.yy"
    64276422    {
    64286423                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64306425    break;
    64316426
    6432   case 269:
    6433 
    6434 /* Line 1806 of yacc.c  */
    6435 #line 1165 "parser.yy"
     6427  case 266:
     6428
     6429/* Line 1806 of yacc.c  */
     6430#line 1158 "parser.yy"
    64366431    {
    64376432                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64396434    break;
    64406435
    6441   case 270:
    6442 
    6443 /* Line 1806 of yacc.c  */
    6444 #line 1172 "parser.yy"
     6436  case 267:
     6437
     6438/* Line 1806 of yacc.c  */
     6439#line 1165 "parser.yy"
    64456440    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64466441    break;
    64476442
    6448   case 271:
    6449 
    6450 /* Line 1806 of yacc.c  */
    6451 #line 1176 "parser.yy"
     6443  case 268:
     6444
     6445/* Line 1806 of yacc.c  */
     6446#line 1169 "parser.yy"
    64526447    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64536448    break;
    64546449
    6455   case 272:
    6456 
    6457 /* Line 1806 of yacc.c  */
    6458 #line 1181 "parser.yy"
     6450  case 269:
     6451
     6452/* Line 1806 of yacc.c  */
     6453#line 1174 "parser.yy"
    64596454    {
    64606455                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64636458    break;
    64646459
    6465   case 273:
    6466 
    6467 /* Line 1806 of yacc.c  */
    6468 #line 1186 "parser.yy"
     6460  case 270:
     6461
     6462/* Line 1806 of yacc.c  */
     6463#line 1179 "parser.yy"
    64696464    {
    64706465                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64736468    break;
    64746469
    6475   case 274:
    6476 
    6477 /* Line 1806 of yacc.c  */
    6478 #line 1191 "parser.yy"
     6470  case 271:
     6471
     6472/* Line 1806 of yacc.c  */
     6473#line 1184 "parser.yy"
    64796474    {
    64806475                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64836478    break;
    64846479
    6485   case 275:
    6486 
    6487 /* Line 1806 of yacc.c  */
    6488 #line 1202 "parser.yy"
     6480  case 272:
     6481
     6482/* Line 1806 of yacc.c  */
     6483#line 1195 "parser.yy"
    64896484    {
    64906485                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64936488    break;
    64946489
    6495   case 276:
    6496 
    6497 /* Line 1806 of yacc.c  */
    6498 #line 1207 "parser.yy"
     6490  case 273:
     6491
     6492/* Line 1806 of yacc.c  */
     6493#line 1200 "parser.yy"
    64996494    {
    65006495                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65036498    break;
    65046499
    6505   case 277:
    6506 
    6507 /* Line 1806 of yacc.c  */
    6508 #line 1212 "parser.yy"
     6500  case 274:
     6501
     6502/* Line 1806 of yacc.c  */
     6503#line 1205 "parser.yy"
    65096504    {
    65106505                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65136508    break;
    65146509
    6515   case 278:
    6516 
    6517 /* Line 1806 of yacc.c  */
    6518 #line 1217 "parser.yy"
     6510  case 275:
     6511
     6512/* Line 1806 of yacc.c  */
     6513#line 1210 "parser.yy"
    65196514    {
    65206515                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65236518    break;
    65246519
    6525   case 279:
    6526 
    6527 /* Line 1806 of yacc.c  */
    6528 #line 1222 "parser.yy"
     6520  case 276:
     6521
     6522/* Line 1806 of yacc.c  */
     6523#line 1215 "parser.yy"
    65296524    {
    65306525                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65336528    break;
    65346529
    6535   case 280:
    6536 
    6537 /* Line 1806 of yacc.c  */
    6538 #line 1231 "parser.yy"
     6530  case 277:
     6531
     6532/* Line 1806 of yacc.c  */
     6533#line 1224 "parser.yy"
    65396534    {
    65406535                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65436538    break;
    65446539
    6545   case 281:
    6546 
    6547 /* Line 1806 of yacc.c  */
    6548 #line 1236 "parser.yy"
     6540  case 278:
     6541
     6542/* Line 1806 of yacc.c  */
     6543#line 1229 "parser.yy"
    65496544    {
    65506545                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65536548    break;
    65546549
    6555   case 286:
    6556 
    6557 /* Line 1806 of yacc.c  */
    6558 #line 1253 "parser.yy"
     6550  case 283:
     6551
     6552/* Line 1806 of yacc.c  */
     6553#line 1246 "parser.yy"
    65596554    {
    65606555                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65636558    break;
    65646559
    6565   case 287:
    6566 
    6567 /* Line 1806 of yacc.c  */
    6568 #line 1258 "parser.yy"
     6560  case 284:
     6561
     6562/* Line 1806 of yacc.c  */
     6563#line 1251 "parser.yy"
    65696564    {
    65706565                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65736568    break;
    65746569
     6570  case 293:
     6571
     6572/* Line 1806 of yacc.c  */
     6573#line 1273 "parser.yy"
     6574    { (yyval.decl) = 0; }
     6575    break;
     6576
    65756577  case 296:
    65766578
    65776579/* Line 1806 of yacc.c  */
    6578 #line 1280 "parser.yy"
    6579     { (yyval.decl) = 0; }
     6580#line 1285 "parser.yy"
     6581    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65806582    break;
    65816583
     
    65836585
    65846586/* Line 1806 of yacc.c  */
    6585 #line 1292 "parser.yy"
    6586     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6587#line 1296 "parser.yy"
     6588    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6589    break;
     6590
     6591  case 300:
     6592
     6593/* Line 1806 of yacc.c  */
     6594#line 1298 "parser.yy"
     6595    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6596    break;
     6597
     6598  case 301:
     6599
     6600/* Line 1806 of yacc.c  */
     6601#line 1300 "parser.yy"
     6602    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    65876603    break;
    65886604
     
    65906606
    65916607/* Line 1806 of yacc.c  */
    6592 #line 1303 "parser.yy"
    6593     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6608#line 1302 "parser.yy"
     6609    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    65946610    break;
    65956611
     
    65976613
    65986614/* Line 1806 of yacc.c  */
    6599 #line 1305 "parser.yy"
    6600     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6615#line 1304 "parser.yy"
     6616    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66016617    break;
    66026618
     
    66046620
    66056621/* Line 1806 of yacc.c  */
    6606 #line 1307 "parser.yy"
    6607     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6608     break;
    6609 
    6610   case 305:
    6611 
    6612 /* Line 1806 of yacc.c  */
    6613 #line 1309 "parser.yy"
    6614     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6615     break;
    6616 
    6617   case 306:
    6618 
    6619 /* Line 1806 of yacc.c  */
    6620 #line 1311 "parser.yy"
    6621     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6622     break;
    6623 
    6624   case 307:
    6625 
    6626 /* Line 1806 of yacc.c  */
    6627 #line 1313 "parser.yy"
     6622#line 1306 "parser.yy"
    66286623    {
    66296624                        typedefTable.enterScope();
     
    66316626    break;
    66326627
    6633   case 308:
    6634 
    6635 /* Line 1806 of yacc.c  */
    6636 #line 1317 "parser.yy"
     6628  case 305:
     6629
     6630/* Line 1806 of yacc.c  */
     6631#line 1310 "parser.yy"
    66376632    {
    66386633                        typedefTable.leaveScope();
     
    66416636    break;
    66426637
     6638  case 307:
     6639
     6640/* Line 1806 of yacc.c  */
     6641#line 1319 "parser.yy"
     6642    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6643    break;
     6644
     6645  case 308:
     6646
     6647/* Line 1806 of yacc.c  */
     6648#line 1321 "parser.yy"
     6649    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6650    break;
     6651
    66436652  case 310:
    66446653
    66456654/* Line 1806 of yacc.c  */
    6646 #line 1326 "parser.yy"
     6655#line 1332 "parser.yy"
    66476656    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66486657    break;
     
    66516660
    66526661/* Line 1806 of yacc.c  */
    6653 #line 1328 "parser.yy"
     6662#line 1337 "parser.yy"
     6663    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6664    break;
     6665
     6666  case 312:
     6667
     6668/* Line 1806 of yacc.c  */
     6669#line 1339 "parser.yy"
     6670    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6671    break;
     6672
     6673  case 313:
     6674
     6675/* Line 1806 of yacc.c  */
     6676#line 1341 "parser.yy"
     6677    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6678    break;
     6679
     6680  case 314:
     6681
     6682/* Line 1806 of yacc.c  */
     6683#line 1343 "parser.yy"
     6684    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6685    break;
     6686
     6687  case 315:
     6688
     6689/* Line 1806 of yacc.c  */
     6690#line 1346 "parser.yy"
     6691    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     6692    break;
     6693
     6694  case 316:
     6695
     6696/* Line 1806 of yacc.c  */
     6697#line 1348 "parser.yy"
     6698    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6699    break;
     6700
     6701  case 317:
     6702
     6703/* Line 1806 of yacc.c  */
     6704#line 1351 "parser.yy"
     6705    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     6706    break;
     6707
     6708  case 318:
     6709
     6710/* Line 1806 of yacc.c  */
     6711#line 1353 "parser.yy"
     6712    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6713    break;
     6714
     6715  case 319:
     6716
     6717/* Line 1806 of yacc.c  */
     6718#line 1358 "parser.yy"
     6719    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6720    break;
     6721
     6722  case 320:
     6723
     6724/* Line 1806 of yacc.c  */
     6725#line 1360 "parser.yy"
     6726    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6727    break;
     6728
     6729  case 321:
     6730
     6731/* Line 1806 of yacc.c  */
     6732#line 1362 "parser.yy"
     6733    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6734    break;
     6735
     6736  case 322:
     6737
     6738/* Line 1806 of yacc.c  */
     6739#line 1364 "parser.yy"
     6740    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6741    break;
     6742
     6743  case 323:
     6744
     6745/* Line 1806 of yacc.c  */
     6746#line 1366 "parser.yy"
     6747    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     6748    break;
     6749
     6750  case 324:
     6751
     6752/* Line 1806 of yacc.c  */
     6753#line 1368 "parser.yy"
     6754    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     6755    break;
     6756
     6757  case 325:
     6758
     6759/* Line 1806 of yacc.c  */
     6760#line 1370 "parser.yy"
     6761    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     6762    break;
     6763
     6764  case 326:
     6765
     6766/* Line 1806 of yacc.c  */
     6767#line 1372 "parser.yy"
     6768    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     6769    break;
     6770
     6771  case 327:
     6772
     6773/* Line 1806 of yacc.c  */
     6774#line 1374 "parser.yy"
     6775    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6776    break;
     6777
     6778  case 328:
     6779
     6780/* Line 1806 of yacc.c  */
     6781#line 1376 "parser.yy"
     6782    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6783    break;
     6784
     6785  case 329:
     6786
     6787/* Line 1806 of yacc.c  */
     6788#line 1378 "parser.yy"
     6789    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     6790    break;
     6791
     6792  case 330:
     6793
     6794/* Line 1806 of yacc.c  */
     6795#line 1380 "parser.yy"
     6796    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     6797    break;
     6798
     6799  case 331:
     6800
     6801/* Line 1806 of yacc.c  */
     6802#line 1382 "parser.yy"
     6803    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6804    break;
     6805
     6806  case 333:
     6807
     6808/* Line 1806 of yacc.c  */
     6809#line 1389 "parser.yy"
     6810    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6811    break;
     6812
     6813  case 334:
     6814
     6815/* Line 1806 of yacc.c  */
     6816#line 1391 "parser.yy"
     6817    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6818    break;
     6819
     6820  case 335:
     6821
     6822/* Line 1806 of yacc.c  */
     6823#line 1393 "parser.yy"
    66546824    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66556825    break;
    66566826
    6657   case 313:
    6658 
    6659 /* Line 1806 of yacc.c  */
    6660 #line 1339 "parser.yy"
     6827  case 336:
     6828
     6829/* Line 1806 of yacc.c  */
     6830#line 1395 "parser.yy"
     6831    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6832    break;
     6833
     6834  case 338:
     6835
     6836/* Line 1806 of yacc.c  */
     6837#line 1401 "parser.yy"
     6838    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6839    break;
     6840
     6841  case 340:
     6842
     6843/* Line 1806 of yacc.c  */
     6844#line 1408 "parser.yy"
     6845    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6846    break;
     6847
     6848  case 341:
     6849
     6850/* Line 1806 of yacc.c  */
     6851#line 1410 "parser.yy"
    66616852    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66626853    break;
    66636854
    6664   case 314:
    6665 
    6666 /* Line 1806 of yacc.c  */
    6667 #line 1344 "parser.yy"
    6668     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6669     break;
    6670 
    6671   case 315:
    6672 
    6673 /* Line 1806 of yacc.c  */
    6674 #line 1346 "parser.yy"
    6675     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6676     break;
    6677 
    6678   case 316:
    6679 
    6680 /* Line 1806 of yacc.c  */
    6681 #line 1348 "parser.yy"
    6682     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6683     break;
    6684 
    6685   case 317:
    6686 
    6687 /* Line 1806 of yacc.c  */
    6688 #line 1350 "parser.yy"
    6689     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6690     break;
    6691 
    6692   case 318:
    6693 
    6694 /* Line 1806 of yacc.c  */
    6695 #line 1353 "parser.yy"
    6696     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    6697     break;
    6698 
    6699   case 319:
    6700 
    6701 /* Line 1806 of yacc.c  */
    6702 #line 1355 "parser.yy"
    6703     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6704     break;
    6705 
    6706   case 320:
    6707 
    6708 /* Line 1806 of yacc.c  */
    6709 #line 1358 "parser.yy"
    6710     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    6711     break;
    6712 
    6713   case 321:
    6714 
    6715 /* Line 1806 of yacc.c  */
    6716 #line 1360 "parser.yy"
    6717     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6718     break;
    6719 
    6720   case 322:
    6721 
    6722 /* Line 1806 of yacc.c  */
    6723 #line 1365 "parser.yy"
    6724     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6725     break;
    6726 
    6727   case 323:
    6728 
    6729 /* Line 1806 of yacc.c  */
    6730 #line 1367 "parser.yy"
    6731     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6732     break;
    6733 
    6734   case 324:
    6735 
    6736 /* Line 1806 of yacc.c  */
    6737 #line 1369 "parser.yy"
    6738     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6739     break;
    6740 
    6741   case 325:
    6742 
    6743 /* Line 1806 of yacc.c  */
    6744 #line 1371 "parser.yy"
    6745     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6746     break;
    6747 
    6748   case 326:
    6749 
    6750 /* Line 1806 of yacc.c  */
    6751 #line 1373 "parser.yy"
    6752     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    6753     break;
    6754 
    6755   case 327:
    6756 
    6757 /* Line 1806 of yacc.c  */
    6758 #line 1375 "parser.yy"
    6759     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    6760     break;
    6761 
    6762   case 328:
    6763 
    6764 /* Line 1806 of yacc.c  */
    6765 #line 1377 "parser.yy"
    6766     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    6767     break;
    6768 
    6769   case 329:
    6770 
    6771 /* Line 1806 of yacc.c  */
    6772 #line 1379 "parser.yy"
    6773     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    6774     break;
    6775 
    6776   case 330:
    6777 
    6778 /* Line 1806 of yacc.c  */
    6779 #line 1381 "parser.yy"
    6780     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6781     break;
    6782 
    6783   case 331:
    6784 
    6785 /* Line 1806 of yacc.c  */
    6786 #line 1383 "parser.yy"
    6787     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6788     break;
    6789 
    6790   case 332:
    6791 
    6792 /* Line 1806 of yacc.c  */
    6793 #line 1385 "parser.yy"
    6794     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    6795     break;
    6796 
    6797   case 333:
    6798 
    6799 /* Line 1806 of yacc.c  */
    6800 #line 1387 "parser.yy"
    6801     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    6802     break;
    6803 
    6804   case 334:
    6805 
    6806 /* Line 1806 of yacc.c  */
    6807 #line 1389 "parser.yy"
    6808     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6809     break;
    6810 
    6811   case 336:
    6812 
    6813 /* Line 1806 of yacc.c  */
    6814 #line 1396 "parser.yy"
     6855  case 342:
     6856
     6857/* Line 1806 of yacc.c  */
     6858#line 1412 "parser.yy"
     6859    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6860    break;
     6861
     6862  case 343:
     6863
     6864/* Line 1806 of yacc.c  */
     6865#line 1417 "parser.yy"
     6866    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6867    break;
     6868
     6869  case 344:
     6870
     6871/* Line 1806 of yacc.c  */
     6872#line 1419 "parser.yy"
     6873    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6874    break;
     6875
     6876  case 345:
     6877
     6878/* Line 1806 of yacc.c  */
     6879#line 1421 "parser.yy"
     6880    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6881    break;
     6882
     6883  case 346:
     6884
     6885/* Line 1806 of yacc.c  */
     6886#line 1423 "parser.yy"
     6887    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6888    break;
     6889
     6890  case 348:
     6891
     6892/* Line 1806 of yacc.c  */
     6893#line 1429 "parser.yy"
    68156894    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68166895    break;
    68176896
    6818   case 337:
    6819 
    6820 /* Line 1806 of yacc.c  */
    6821 #line 1398 "parser.yy"
     6897  case 349:
     6898
     6899/* Line 1806 of yacc.c  */
     6900#line 1431 "parser.yy"
    68226901    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68236902    break;
    68246903
    6825   case 338:
    6826 
    6827 /* Line 1806 of yacc.c  */
    6828 #line 1400 "parser.yy"
     6904  case 350:
     6905
     6906/* Line 1806 of yacc.c  */
     6907#line 1433 "parser.yy"
    68296908    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68306909    break;
    68316910
    6832   case 339:
    6833 
    6834 /* Line 1806 of yacc.c  */
    6835 #line 1402 "parser.yy"
    6836     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6837     break;
    6838 
    6839   case 341:
    6840 
    6841 /* Line 1806 of yacc.c  */
    6842 #line 1408 "parser.yy"
    6843     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6844     break;
    6845 
    6846   case 343:
    6847 
    6848 /* Line 1806 of yacc.c  */
    6849 #line 1415 "parser.yy"
     6911  case 352:
     6912
     6913/* Line 1806 of yacc.c  */
     6914#line 1439 "parser.yy"
    68506915    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68516916    break;
    68526917
    6853   case 344:
    6854 
    6855 /* Line 1806 of yacc.c  */
    6856 #line 1417 "parser.yy"
     6918  case 353:
     6919
     6920/* Line 1806 of yacc.c  */
     6921#line 1441 "parser.yy"
    68576922    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68586923    break;
    68596924
    6860   case 345:
    6861 
    6862 /* Line 1806 of yacc.c  */
    6863 #line 1419 "parser.yy"
    6864     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6865     break;
    6866 
    6867   case 346:
    6868 
    6869 /* Line 1806 of yacc.c  */
    6870 #line 1424 "parser.yy"
    6871     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6872     break;
    6873 
    6874   case 347:
    6875 
    6876 /* Line 1806 of yacc.c  */
    6877 #line 1426 "parser.yy"
    6878     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6879     break;
    6880 
    6881   case 348:
    6882 
    6883 /* Line 1806 of yacc.c  */
    6884 #line 1428 "parser.yy"
    6885     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6886     break;
    6887 
    6888   case 349:
    6889 
    6890 /* Line 1806 of yacc.c  */
    6891 #line 1430 "parser.yy"
    6892     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6893     break;
    6894 
    6895   case 351:
    6896 
    6897 /* Line 1806 of yacc.c  */
    6898 #line 1436 "parser.yy"
     6925  case 355:
     6926
     6927/* Line 1806 of yacc.c  */
     6928#line 1447 "parser.yy"
    68996929    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69006930    break;
    69016931
    6902   case 352:
    6903 
    6904 /* Line 1806 of yacc.c  */
    6905 #line 1438 "parser.yy"
     6932  case 356:
     6933
     6934/* Line 1806 of yacc.c  */
     6935#line 1449 "parser.yy"
    69066936    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69076937    break;
    69086938
    6909   case 353:
    6910 
    6911 /* Line 1806 of yacc.c  */
    6912 #line 1440 "parser.yy"
     6939  case 357:
     6940
     6941/* Line 1806 of yacc.c  */
     6942#line 1451 "parser.yy"
    69136943    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69146944    break;
    69156945
    6916   case 355:
    6917 
    6918 /* Line 1806 of yacc.c  */
    6919 #line 1446 "parser.yy"
    6920     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6921     break;
    6922 
    6923   case 356:
    6924 
    6925 /* Line 1806 of yacc.c  */
    6926 #line 1448 "parser.yy"
     6946  case 358:
     6947
     6948/* Line 1806 of yacc.c  */
     6949#line 1456 "parser.yy"
     6950    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6951    break;
     6952
     6953  case 359:
     6954
     6955/* Line 1806 of yacc.c  */
     6956#line 1458 "parser.yy"
     6957    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6958    break;
     6959
     6960  case 360:
     6961
     6962/* Line 1806 of yacc.c  */
     6963#line 1460 "parser.yy"
    69276964    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69286965    break;
    69296966
    6930   case 358:
    6931 
    6932 /* Line 1806 of yacc.c  */
    6933 #line 1454 "parser.yy"
    6934     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6935     break;
    6936 
    6937   case 359:
    6938 
    6939 /* Line 1806 of yacc.c  */
    6940 #line 1456 "parser.yy"
    6941     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6942     break;
    6943 
    6944   case 360:
    6945 
    6946 /* Line 1806 of yacc.c  */
    6947 #line 1458 "parser.yy"
    6948     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6949     break;
    6950 
    6951   case 361:
    6952 
    6953 /* Line 1806 of yacc.c  */
    6954 #line 1463 "parser.yy"
    6955     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    6956     break;
    6957 
    6958   case 362:
    6959 
    6960 /* Line 1806 of yacc.c  */
    6961 #line 1465 "parser.yy"
    6962     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6963     break;
    6964 
    69656967  case 363:
    69666968
    69676969/* Line 1806 of yacc.c  */
    6968 #line 1467 "parser.yy"
    6969     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6970     break;
    6971 
    6972   case 366:
    6973 
    6974 /* Line 1806 of yacc.c  */
    6975 #line 1477 "parser.yy"
     6970#line 1470 "parser.yy"
    69766971    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    69776972    break;
    69786973
    6979   case 367:
    6980 
    6981 /* Line 1806 of yacc.c  */
    6982 #line 1479 "parser.yy"
     6974  case 364:
     6975
     6976/* Line 1806 of yacc.c  */
     6977#line 1472 "parser.yy"
    69836978    {
    69846979                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    69876982    break;
    69886983
     6984  case 365:
     6985
     6986/* Line 1806 of yacc.c  */
     6987#line 1477 "parser.yy"
     6988    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6989    break;
     6990
     6991  case 366:
     6992
     6993/* Line 1806 of yacc.c  */
     6994#line 1479 "parser.yy"
     6995    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     6996    break;
     6997
     6998  case 367:
     6999
     7000/* Line 1806 of yacc.c  */
     7001#line 1481 "parser.yy"
     7002    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     7003    break;
     7004
    69897005  case 368:
    69907006
    69917007/* Line 1806 of yacc.c  */
    6992 #line 1484 "parser.yy"
    6993     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7008#line 1483 "parser.yy"
     7009    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69947010    break;
    69957011
     
    69977013
    69987014/* Line 1806 of yacc.c  */
    6999 #line 1486 "parser.yy"
    7000     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     7015#line 1488 "parser.yy"
     7016    { (yyval.aggKey) = DeclarationNode::Struct; }
    70017017    break;
    70027018
     
    70047020
    70057021/* Line 1806 of yacc.c  */
    7006 #line 1488 "parser.yy"
    7007     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     7022#line 1490 "parser.yy"
     7023    { (yyval.aggKey) = DeclarationNode::Union; }
    70087024    break;
    70097025
     
    70117027
    70127028/* Line 1806 of yacc.c  */
    7013 #line 1490 "parser.yy"
    7014     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7029#line 1495 "parser.yy"
     7030    { (yyval.decl) = 0; }
    70157031    break;
    70167032
     
    70187034
    70197035/* Line 1806 of yacc.c  */
    7020 #line 1495 "parser.yy"
    7021     { (yyval.aggKey) = DeclarationNode::Struct; }
    7022     break;
    7023 
    7024   case 373:
    7025 
    7026 /* Line 1806 of yacc.c  */
    70277036#line 1497 "parser.yy"
    7028     { (yyval.aggKey) = DeclarationNode::Union; }
     7037    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70297038    break;
    70307039
     
    70327041
    70337042/* Line 1806 of yacc.c  */
    7034 #line 1502 "parser.yy"
    7035     { (yyval.decl) = 0; }
    7036     break;
    7037 
    7038   case 375:
    7039 
    7040 /* Line 1806 of yacc.c  */
    7041 #line 1504 "parser.yy"
    7042     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    7043     break;
    7044 
    7045   case 377:
    7046 
    7047 /* Line 1806 of yacc.c  */
    7048 #line 1510 "parser.yy"
     7043#line 1503 "parser.yy"
    70497044    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70507045    break;
    70517046
    7052   case 379:
    7053 
    7054 /* Line 1806 of yacc.c  */
    7055 #line 1513 "parser.yy"
     7047  case 376:
     7048
     7049/* Line 1806 of yacc.c  */
     7050#line 1506 "parser.yy"
    70567051    {   // mark all fields in list
    70577052                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    70617056    break;
    70627057
     7058  case 378:
     7059
     7060/* Line 1806 of yacc.c  */
     7061#line 1516 "parser.yy"
     7062    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7063    break;
     7064
     7065  case 379:
     7066
     7067/* Line 1806 of yacc.c  */
     7068#line 1518 "parser.yy"
     7069    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7070    break;
     7071
     7072  case 380:
     7073
     7074/* Line 1806 of yacc.c  */
     7075#line 1520 "parser.yy"
     7076    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7077    break;
     7078
    70637079  case 381:
    70647080
    70657081/* Line 1806 of yacc.c  */
    7066 #line 1523 "parser.yy"
    7067     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7082#line 1525 "parser.yy"
     7083    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70687084    break;
    70697085
     
    70717087
    70727088/* Line 1806 of yacc.c  */
    7073 #line 1525 "parser.yy"
    7074     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7089#line 1527 "parser.yy"
     7090    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70757091    break;
    70767092
     
    70787094
    70797095/* Line 1806 of yacc.c  */
    7080 #line 1527 "parser.yy"
    7081     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7096#line 1532 "parser.yy"
     7097    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70827098    break;
    70837099
     
    70857101
    70867102/* Line 1806 of yacc.c  */
    7087 #line 1532 "parser.yy"
    7088     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7103#line 1534 "parser.yy"
     7104    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70897105    break;
    70907106
     
    70927108
    70937109/* Line 1806 of yacc.c  */
    7094 #line 1534 "parser.yy"
    7095     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7110#line 1537 "parser.yy"
     7111    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70967112    break;
    70977113
     
    70997115
    71007116/* Line 1806 of yacc.c  */
    7101 #line 1539 "parser.yy"
    7102     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    7103     break;
    7104 
    7105   case 387:
    7106 
    7107 /* Line 1806 of yacc.c  */
    7108 #line 1541 "parser.yy"
    7109     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7117#line 1540 "parser.yy"
     7118    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71107119    break;
    71117120
     
    71137122
    71147123/* Line 1806 of yacc.c  */
    7115 #line 1544 "parser.yy"
    7116     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7124#line 1546 "parser.yy"
     7125    { (yyval.en) = 0; }
    71177126    break;
    71187127
     
    71207129
    71217130/* Line 1806 of yacc.c  */
    7122 #line 1547 "parser.yy"
    7123     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    7124     break;
    7125 
    7126   case 391:
     7131#line 1548 "parser.yy"
     7132    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     7133    break;
     7134
     7135  case 390:
    71277136
    71287137/* Line 1806 of yacc.c  */
    71297138#line 1553 "parser.yy"
    7130     { (yyval.en) = 0; }
     7139    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71317140    break;
    71327141
     
    71347143
    71357144/* Line 1806 of yacc.c  */
    7136 #line 1555 "parser.yy"
    7137     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     7145#line 1562 "parser.yy"
     7146    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    71387147    break;
    71397148
     
    71417150
    71427151/* Line 1806 of yacc.c  */
    7143 #line 1560 "parser.yy"
    7144     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7145     break;
    7146 
    7147   case 395:
    7148 
    7149 /* Line 1806 of yacc.c  */
    7150 #line 1569 "parser.yy"
    7151     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    7152     break;
    7153 
    7154   case 396:
    7155 
    7156 /* Line 1806 of yacc.c  */
    7157 #line 1571 "parser.yy"
     7152#line 1564 "parser.yy"
    71587153    {
    71597154                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71627157    break;
    71637158
     7159  case 394:
     7160
     7161/* Line 1806 of yacc.c  */
     7162#line 1569 "parser.yy"
     7163    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7164    break;
     7165
     7166  case 395:
     7167
     7168/* Line 1806 of yacc.c  */
     7169#line 1571 "parser.yy"
     7170    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7171    break;
     7172
     7173  case 396:
     7174
     7175/* Line 1806 of yacc.c  */
     7176#line 1576 "parser.yy"
     7177    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7178    break;
     7179
    71647180  case 397:
    71657181
    71667182/* Line 1806 of yacc.c  */
    7167 #line 1576 "parser.yy"
    7168     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7183#line 1578 "parser.yy"
     7184    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71697185    break;
    71707186
     
    71727188
    71737189/* Line 1806 of yacc.c  */
    7174 #line 1578 "parser.yy"
    7175     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7190#line 1583 "parser.yy"
     7191    { (yyval.en) = 0; }
    71767192    break;
    71777193
     
    71797195
    71807196/* Line 1806 of yacc.c  */
    7181 #line 1583 "parser.yy"
    7182     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7197#line 1585 "parser.yy"
     7198    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71837199    break;
    71847200
     
    71867202
    71877203/* Line 1806 of yacc.c  */
    7188 #line 1585 "parser.yy"
    7189     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    7190     break;
    7191 
    7192   case 401:
    7193 
    7194 /* Line 1806 of yacc.c  */
    7195 #line 1590 "parser.yy"
    7196     { (yyval.en) = 0; }
    7197     break;
    7198 
    7199   case 402:
    7200 
    7201 /* Line 1806 of yacc.c  */
    72027204#line 1592 "parser.yy"
    7203     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7204     break;
    7205 
    7206   case 403:
    7207 
    7208 /* Line 1806 of yacc.c  */
    7209 #line 1599 "parser.yy"
    72107205    { (yyval.decl) = 0; }
    72117206    break;
    72127207
    7213   case 407:
    7214 
    7215 /* Line 1806 of yacc.c  */
    7216 #line 1607 "parser.yy"
     7208  case 404:
     7209
     7210/* Line 1806 of yacc.c  */
     7211#line 1600 "parser.yy"
    72177212    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72187213    break;
    72197214
     7215  case 405:
     7216
     7217/* Line 1806 of yacc.c  */
     7218#line 1602 "parser.yy"
     7219    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7220    break;
     7221
     7222  case 406:
     7223
     7224/* Line 1806 of yacc.c  */
     7225#line 1604 "parser.yy"
     7226    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7227    break;
     7228
    72207229  case 408:
    72217230
    72227231/* Line 1806 of yacc.c  */
    7223 #line 1609 "parser.yy"
     7232#line 1612 "parser.yy"
     7233    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7234    break;
     7235
     7236  case 409:
     7237
     7238/* Line 1806 of yacc.c  */
     7239#line 1614 "parser.yy"
     7240    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7241    break;
     7242
     7243  case 410:
     7244
     7245/* Line 1806 of yacc.c  */
     7246#line 1616 "parser.yy"
     7247    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7248    break;
     7249
     7250  case 412:
     7251
     7252/* Line 1806 of yacc.c  */
     7253#line 1622 "parser.yy"
     7254    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7255    break;
     7256
     7257  case 413:
     7258
     7259/* Line 1806 of yacc.c  */
     7260#line 1627 "parser.yy"
     7261    { (yyval.decl) = 0; }
     7262    break;
     7263
     7264  case 416:
     7265
     7266/* Line 1806 of yacc.c  */
     7267#line 1634 "parser.yy"
    72247268    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72257269    break;
    72267270
    7227   case 409:
    7228 
    7229 /* Line 1806 of yacc.c  */
    7230 #line 1611 "parser.yy"
    7231     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7232     break;
    7233 
    7234   case 411:
    7235 
    7236 /* Line 1806 of yacc.c  */
    7237 #line 1619 "parser.yy"
     7271  case 419:
     7272
     7273/* Line 1806 of yacc.c  */
     7274#line 1641 "parser.yy"
    72387275    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72397276    break;
    72407277
    7241   case 412:
    7242 
    7243 /* Line 1806 of yacc.c  */
    7244 #line 1621 "parser.yy"
     7278  case 420:
     7279
     7280/* Line 1806 of yacc.c  */
     7281#line 1643 "parser.yy"
    72457282    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72467283    break;
    72477284
    7248   case 413:
    7249 
    7250 /* Line 1806 of yacc.c  */
    7251 #line 1623 "parser.yy"
    7252     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7253     break;
    7254 
    7255   case 415:
    7256 
    7257 /* Line 1806 of yacc.c  */
    7258 #line 1629 "parser.yy"
    7259     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7260     break;
    7261 
    7262   case 416:
    7263 
    7264 /* Line 1806 of yacc.c  */
    7265 #line 1634 "parser.yy"
    7266     { (yyval.decl) = 0; }
    7267     break;
    7268 
    7269   case 419:
    7270 
    7271 /* Line 1806 of yacc.c  */
    7272 #line 1641 "parser.yy"
    7273     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7274     break;
    7275 
    72767285  case 422:
    72777286
    72787287/* Line 1806 of yacc.c  */
    7279 #line 1648 "parser.yy"
    7280     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7288#line 1652 "parser.yy"
     7289    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72817290    break;
    72827291
     
    72847293
    72857294/* Line 1806 of yacc.c  */
    7286 #line 1650 "parser.yy"
    7287     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7288     break;
    7289 
    7290   case 425:
    7291 
    7292 /* Line 1806 of yacc.c  */
    7293 #line 1659 "parser.yy"
     7295#line 1655 "parser.yy"
    72947296    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72957297    break;
    72967298
    7297   case 426:
    7298 
    7299 /* Line 1806 of yacc.c  */
    7300 #line 1662 "parser.yy"
    7301     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7302     break;
    7303 
    7304   case 427:
    7305 
    7306 /* Line 1806 of yacc.c  */
    7307 #line 1664 "parser.yy"
     7299  case 424:
     7300
     7301/* Line 1806 of yacc.c  */
     7302#line 1657 "parser.yy"
    73087303    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73097304    break;
    73107305
    7311   case 432:
    7312 
    7313 /* Line 1806 of yacc.c  */
    7314 #line 1674 "parser.yy"
     7306  case 429:
     7307
     7308/* Line 1806 of yacc.c  */
     7309#line 1667 "parser.yy"
    73157310    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73167311    break;
    73177312
    7318   case 434:
    7319 
    7320 /* Line 1806 of yacc.c  */
    7321 #line 1680 "parser.yy"
     7313  case 431:
     7314
     7315/* Line 1806 of yacc.c  */
     7316#line 1673 "parser.yy"
    73227317    {
    73237318                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73267321    break;
    73277322
    7328   case 435:
    7329 
    7330 /* Line 1806 of yacc.c  */
    7331 #line 1685 "parser.yy"
     7323  case 432:
     7324
     7325/* Line 1806 of yacc.c  */
     7326#line 1678 "parser.yy"
    73327327    {
    73337328                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73367331    break;
    73377332
    7338   case 437:
    7339 
    7340 /* Line 1806 of yacc.c  */
    7341 #line 1694 "parser.yy"
     7333  case 434:
     7334
     7335/* Line 1806 of yacc.c  */
     7336#line 1687 "parser.yy"
    73427337    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73437338    break;
    73447339
    7345   case 438:
    7346 
    7347 /* Line 1806 of yacc.c  */
    7348 #line 1703 "parser.yy"
     7340  case 435:
     7341
     7342/* Line 1806 of yacc.c  */
     7343#line 1696 "parser.yy"
    73497344    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73507345    break;
    73517346
    7352   case 439:
    7353 
    7354 /* Line 1806 of yacc.c  */
    7355 #line 1705 "parser.yy"
     7347  case 436:
     7348
     7349/* Line 1806 of yacc.c  */
     7350#line 1698 "parser.yy"
    73567351    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73577352    break;
    73587353
    7359   case 451:
    7360 
    7361 /* Line 1806 of yacc.c  */
    7362 #line 1730 "parser.yy"
     7354  case 448:
     7355
     7356/* Line 1806 of yacc.c  */
     7357#line 1723 "parser.yy"
    73637358    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73647359    break;
    73657360
     7361  case 452:
     7362
     7363/* Line 1806 of yacc.c  */
     7364#line 1731 "parser.yy"
     7365    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7366    break;
     7367
     7368  case 453:
     7369
     7370/* Line 1806 of yacc.c  */
     7371#line 1736 "parser.yy"
     7372    { (yyval.in) = 0; }
     7373    break;
     7374
     7375  case 454:
     7376
     7377/* Line 1806 of yacc.c  */
     7378#line 1738 "parser.yy"
     7379    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7380    break;
     7381
    73667382  case 455:
    73677383
    73687384/* Line 1806 of yacc.c  */
    7369 #line 1738 "parser.yy"
    7370     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7385#line 1740 "parser.yy"
     7386    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    73717387    break;
    73727388
     
    73747390
    73757391/* Line 1806 of yacc.c  */
    7376 #line 1743 "parser.yy"
     7392#line 1744 "parser.yy"
     7393    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7394    break;
     7395
     7396  case 457:
     7397
     7398/* Line 1806 of yacc.c  */
     7399#line 1745 "parser.yy"
     7400    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7401    break;
     7402
     7403  case 458:
     7404
     7405/* Line 1806 of yacc.c  */
     7406#line 1750 "parser.yy"
    73777407    { (yyval.in) = 0; }
    73787408    break;
    73797409
    7380   case 457:
    7381 
    7382 /* Line 1806 of yacc.c  */
    7383 #line 1745 "parser.yy"
    7384     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7385     break;
    7386 
    7387   case 458:
    7388 
    7389 /* Line 1806 of yacc.c  */
    7390 #line 1747 "parser.yy"
    7391     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7392     break;
    7393 
    7394   case 459:
    7395 
    7396 /* Line 1806 of yacc.c  */
    7397 #line 1751 "parser.yy"
    7398     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7399     break;
    7400 
    74017410  case 460:
    74027411
    74037412/* Line 1806 of yacc.c  */
    74047413#line 1752 "parser.yy"
    7405     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7414    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74067415    break;
    74077416
     
    74097418
    74107419/* Line 1806 of yacc.c  */
    7411 #line 1757 "parser.yy"
    7412     { (yyval.in) = 0; }
    7413     break;
    7414 
    7415   case 463:
    7416 
    7417 /* Line 1806 of yacc.c  */
    7418 #line 1759 "parser.yy"
    7419     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7420#line 1753 "parser.yy"
     7421    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     7422    break;
     7423
     7424  case 462:
     7425
     7426/* Line 1806 of yacc.c  */
     7427#line 1755 "parser.yy"
     7428    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74207429    break;
    74217430
     
    74237432
    74247433/* Line 1806 of yacc.c  */
    7425 #line 1760 "parser.yy"
    7426     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    7427     break;
    7428 
    7429   case 465:
    7430 
    7431 /* Line 1806 of yacc.c  */
    7432 #line 1762 "parser.yy"
    7433     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7434#line 1771 "parser.yy"
     7435    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     7436    break;
     7437
     7438  case 466:
     7439
     7440/* Line 1806 of yacc.c  */
     7441#line 1777 "parser.yy"
     7442    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    74347443    break;
    74357444
     
    74377446
    74387447/* Line 1806 of yacc.c  */
    7439 #line 1778 "parser.yy"
    7440     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     7448#line 1783 "parser.yy"
     7449    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     7450    break;
     7451
     7452  case 468:
     7453
     7454/* Line 1806 of yacc.c  */
     7455#line 1786 "parser.yy"
     7456    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74417457    break;
    74427458
     
    74447460
    74457461/* Line 1806 of yacc.c  */
    7446 #line 1784 "parser.yy"
    7447     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     7462#line 1788 "parser.yy"
     7463    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74487464    break;
    74497465
     
    74527468/* Line 1806 of yacc.c  */
    74537469#line 1790 "parser.yy"
    7454     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     7470    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    74557471    break;
    74567472
     
    74587474
    74597475/* Line 1806 of yacc.c  */
    7460 #line 1793 "parser.yy"
    7461     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7462     break;
    7463 
    7464   case 472:
    7465 
    7466 /* Line 1806 of yacc.c  */
    7467 #line 1795 "parser.yy"
    7468     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7476#line 1792 "parser.yy"
     7477    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    74697478    break;
    74707479
     
    74727481
    74737482/* Line 1806 of yacc.c  */
    7474 #line 1797 "parser.yy"
    7475     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     7483#line 1816 "parser.yy"
     7484    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74767485    break;
    74777486
     
    74797488
    74807489/* Line 1806 of yacc.c  */
    7481 #line 1799 "parser.yy"
    7482     { (yyval.en) = (yyvsp[(4) - (6)].en); }
    7483     break;
    7484 
    7485   case 476:
    7486 
    7487 /* Line 1806 of yacc.c  */
    7488 #line 1823 "parser.yy"
     7490#line 1818 "parser.yy"
     7491    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7492    break;
     7493
     7494  case 475:
     7495
     7496/* Line 1806 of yacc.c  */
     7497#line 1820 "parser.yy"
     7498    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7499    break;
     7500
     7501  case 477:
     7502
     7503/* Line 1806 of yacc.c  */
     7504#line 1826 "parser.yy"
    74897505    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74907506    break;
    74917507
    7492   case 477:
    7493 
    7494 /* Line 1806 of yacc.c  */
    7495 #line 1825 "parser.yy"
     7508  case 478:
     7509
     7510/* Line 1806 of yacc.c  */
     7511#line 1828 "parser.yy"
    74967512    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74977513    break;
    74987514
    7499   case 478:
    7500 
    7501 /* Line 1806 of yacc.c  */
    7502 #line 1827 "parser.yy"
    7503     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7504     break;
    7505 
    7506   case 480:
     7515  case 479:
    75077516
    75087517/* Line 1806 of yacc.c  */
    75097518#line 1833 "parser.yy"
    7510     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7519    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75117520    break;
    75127521
     
    75147523
    75157524/* Line 1806 of yacc.c  */
    7516 #line 1835 "parser.yy"
    7517     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7525#line 1839 "parser.yy"
     7526    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75187527    break;
    75197528
     
    75217530
    75227531/* Line 1806 of yacc.c  */
    7523 #line 1840 "parser.yy"
    7524     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    7525     break;
    7526 
    7527   case 484:
     7532#line 1844 "parser.yy"
     7533    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7534    break;
     7535
     7536  case 483:
    75287537
    75297538/* Line 1806 of yacc.c  */
    75307539#line 1846 "parser.yy"
    7531     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7540    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75327541    break;
    75337542
     
    75357544
    75367545/* Line 1806 of yacc.c  */
    7537 #line 1851 "parser.yy"
    7538     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7546#line 1852 "parser.yy"
     7547    { (yyval.tclass) = DeclarationNode::Otype; }
    75397548    break;
    75407549
     
    75427551
    75437552/* Line 1806 of yacc.c  */
    7544 #line 1853 "parser.yy"
    7545     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7553#line 1854 "parser.yy"
     7554    { (yyval.tclass) = DeclarationNode::Ftype; }
     7555    break;
     7556
     7557  case 487:
     7558
     7559/* Line 1806 of yacc.c  */
     7560#line 1856 "parser.yy"
     7561    { (yyval.tclass) = DeclarationNode::Dtype; }
    75467562    break;
    75477563
     
    75497565
    75507566/* Line 1806 of yacc.c  */
    7551 #line 1859 "parser.yy"
    7552     { (yyval.tclass) = DeclarationNode::Otype; }
     7567#line 1861 "parser.yy"
     7568    { (yyval.decl) = 0; }
    75537569    break;
    75547570
     
    75567572
    75577573/* Line 1806 of yacc.c  */
    7558 #line 1861 "parser.yy"
    7559     { (yyval.tclass) = DeclarationNode::Ftype; }
     7574#line 1863 "parser.yy"
     7575    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    75607576    break;
    75617577
     
    75637579
    75647580/* Line 1806 of yacc.c  */
    7565 #line 1863 "parser.yy"
    7566     { (yyval.tclass) = DeclarationNode::Dtype; }
    7567     break;
    7568 
    7569   case 491:
    7570 
    7571 /* Line 1806 of yacc.c  */
    75727581#line 1868 "parser.yy"
    7573     { (yyval.decl) = 0; }
    7574     break;
    7575 
    7576   case 492:
    7577 
    7578 /* Line 1806 of yacc.c  */
    7579 #line 1870 "parser.yy"
    7580     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    7581     break;
    7582 
    7583   case 493:
    7584 
    7585 /* Line 1806 of yacc.c  */
    7586 #line 1875 "parser.yy"
    75877582    {
    75887583                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    75917586    break;
    75927587
    7593   case 494:
     7588  case 491:
     7589
     7590/* Line 1806 of yacc.c  */
     7591#line 1873 "parser.yy"
     7592    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7593    break;
     7594
     7595  case 492:
     7596
     7597/* Line 1806 of yacc.c  */
     7598#line 1875 "parser.yy"
     7599    { (yyval.decl) = 0; }
     7600    break;
     7601
     7602  case 493:
    75947603
    75957604/* Line 1806 of yacc.c  */
    75967605#line 1880 "parser.yy"
    7597     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7606    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    75987607    break;
    75997608
     
    76017610
    76027611/* Line 1806 of yacc.c  */
    7603 #line 1882 "parser.yy"
    7604     { (yyval.decl) = 0; }
     7612#line 1883 "parser.yy"
     7613    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    76057614    break;
    76067615
     
    76087617
    76097618/* Line 1806 of yacc.c  */
    7610 #line 1887 "parser.yy"
    7611     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     7619#line 1885 "parser.yy"
     7620    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     7621    break;
     7622
     7623  case 497:
     7624
     7625/* Line 1806 of yacc.c  */
     7626#line 1890 "parser.yy"
     7627    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76127628    break;
    76137629
     
    76157631
    76167632/* Line 1806 of yacc.c  */
    7617 #line 1890 "parser.yy"
    7618     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7633#line 1892 "parser.yy"
     7634    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76197635    break;
    76207636
     
    76227638
    76237639/* Line 1806 of yacc.c  */
    7624 #line 1892 "parser.yy"
    7625     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     7640#line 1894 "parser.yy"
     7641    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76267642    break;
    76277643
     
    76297645
    76307646/* Line 1806 of yacc.c  */
    7631 #line 1897 "parser.yy"
    7632     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7647#line 1899 "parser.yy"
     7648    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76337649    break;
    76347650
     
    76367652
    76377653/* Line 1806 of yacc.c  */
    7638 #line 1899 "parser.yy"
    7639     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7654#line 1901 "parser.yy"
     7655    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76407656    break;
    76417657
     
    76437659
    76447660/* Line 1806 of yacc.c  */
    7645 #line 1901 "parser.yy"
    7646     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    7647     break;
    7648 
    7649   case 503:
    7650 
    7651 /* Line 1806 of yacc.c  */
    76527661#line 1906 "parser.yy"
    7653     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7654     break;
    7655 
    7656   case 504:
    7657 
    7658 /* Line 1806 of yacc.c  */
    7659 #line 1908 "parser.yy"
    7660     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7661     break;
    7662 
    7663   case 505:
    7664 
    7665 /* Line 1806 of yacc.c  */
    7666 #line 1913 "parser.yy"
    76677662    {
    76687663                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76717666    break;
    76727667
    7673   case 506:
    7674 
    7675 /* Line 1806 of yacc.c  */
    7676 #line 1918 "parser.yy"
     7668  case 503:
     7669
     7670/* Line 1806 of yacc.c  */
     7671#line 1911 "parser.yy"
    76777672    {
    76787673                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76817676    break;
    76827677
    7683   case 507:
    7684 
    7685 /* Line 1806 of yacc.c  */
    7686 #line 1926 "parser.yy"
     7678  case 504:
     7679
     7680/* Line 1806 of yacc.c  */
     7681#line 1919 "parser.yy"
    76877682    {
    76887683                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76917686    break;
    76927687
    7693   case 508:
    7694 
    7695 /* Line 1806 of yacc.c  */
    7696 #line 1931 "parser.yy"
     7688  case 505:
     7689
     7690/* Line 1806 of yacc.c  */
     7691#line 1924 "parser.yy"
    76977692    {
    76987693                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    77017696    break;
    77027697
    7703   case 509:
    7704 
    7705 /* Line 1806 of yacc.c  */
    7706 #line 1936 "parser.yy"
     7698  case 506:
     7699
     7700/* Line 1806 of yacc.c  */
     7701#line 1929 "parser.yy"
    77077702    {
    77087703                        typedefTable.leaveTrait();
     
    77127707    break;
    77137708
     7709  case 508:
     7710
     7711/* Line 1806 of yacc.c  */
     7712#line 1939 "parser.yy"
     7713    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     7714    break;
     7715
    77147716  case 511:
    77157717
    77167718/* Line 1806 of yacc.c  */
    7717 #line 1946 "parser.yy"
    7718     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    7719     break;
    7720 
    7721   case 514:
    7722 
    7723 /* Line 1806 of yacc.c  */
    7724 #line 1956 "parser.yy"
     7719#line 1949 "parser.yy"
    77257720    {
    77267721                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77297724    break;
    77307725
    7731   case 515:
    7732 
    7733 /* Line 1806 of yacc.c  */
    7734 #line 1961 "parser.yy"
     7726  case 512:
     7727
     7728/* Line 1806 of yacc.c  */
     7729#line 1954 "parser.yy"
    77357730    {
    77367731                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77397734    break;
    77407735
    7741   case 516:
    7742 
    7743 /* Line 1806 of yacc.c  */
    7744 #line 1966 "parser.yy"
     7736  case 513:
     7737
     7738/* Line 1806 of yacc.c  */
     7739#line 1959 "parser.yy"
    77457740    {
    77467741                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77497744    break;
    77507745
    7751   case 517:
    7752 
    7753 /* Line 1806 of yacc.c  */
    7754 #line 1974 "parser.yy"
     7746  case 514:
     7747
     7748/* Line 1806 of yacc.c  */
     7749#line 1967 "parser.yy"
    77557750    {
    77567751                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77597754    break;
    77607755
    7761   case 518:
    7762 
    7763 /* Line 1806 of yacc.c  */
    7764 #line 1979 "parser.yy"
     7756  case 515:
     7757
     7758/* Line 1806 of yacc.c  */
     7759#line 1972 "parser.yy"
    77657760    {
    77667761                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77697764    break;
    77707765
     7766  case 516:
     7767
     7768/* Line 1806 of yacc.c  */
     7769#line 1982 "parser.yy"
     7770    {}
     7771    break;
     7772
     7773  case 517:
     7774
     7775/* Line 1806 of yacc.c  */
     7776#line 1984 "parser.yy"
     7777    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
     7778    break;
     7779
    77717780  case 519:
    77727781
    77737782/* Line 1806 of yacc.c  */
    7774 #line 1989 "parser.yy"
     7783#line 1990 "parser.yy"
     7784    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7785    break;
     7786
     7787  case 520:
     7788
     7789/* Line 1806 of yacc.c  */
     7790#line 1995 "parser.yy"
     7791    { (yyval.decl) = 0; }
     7792    break;
     7793
     7794  case 524:
     7795
     7796/* Line 1806 of yacc.c  */
     7797#line 2003 "parser.yy"
    77757798    {}
    77767799    break;
    77777800
    7778   case 520:
    7779 
    7780 /* Line 1806 of yacc.c  */
    7781 #line 1991 "parser.yy"
    7782     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    7783     break;
    7784 
    7785   case 522:
    7786 
    7787 /* Line 1806 of yacc.c  */
    7788 #line 1997 "parser.yy"
    7789     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    7790     break;
    7791 
    7792   case 523:
    7793 
    7794 /* Line 1806 of yacc.c  */
    7795 #line 2002 "parser.yy"
    7796     { (yyval.decl) = 0; }
    7797     break;
    7798 
    7799   case 527:
    7800 
    7801 /* Line 1806 of yacc.c  */
    7802 #line 2010 "parser.yy"
    7803     {}
    7804     break;
    7805 
    7806   case 528:
    7807 
    7808 /* Line 1806 of yacc.c  */
    7809 #line 2012 "parser.yy"
     7801  case 525:
     7802
     7803/* Line 1806 of yacc.c  */
     7804#line 2005 "parser.yy"
    78107805    {
    78117806                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    7812                         linkage = LinkageSpec::linkageCheck( (yyvsp[(2) - (2)].tok) );
     7807                        linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );
    78137808                }
    78147809    break;
    78157810
    7816   case 529:
    7817 
    7818 /* Line 1806 of yacc.c  */
    7819 #line 2017 "parser.yy"
     7811  case 526:
     7812
     7813/* Line 1806 of yacc.c  */
     7814#line 2010 "parser.yy"
    78207815    {
    78217816                        linkage = linkageStack.top();
     
    78257820    break;
    78267821
    7827   case 530:
    7828 
    7829 /* Line 1806 of yacc.c  */
    7830 #line 2023 "parser.yy"
     7822  case 527:
     7823
     7824/* Line 1806 of yacc.c  */
     7825#line 2016 "parser.yy"
    78317826    {   // mark all fields in list
    78327827                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    78367831    break;
    78377832
    7838   case 532:
    7839 
    7840 /* Line 1806 of yacc.c  */
    7841 #line 2038 "parser.yy"
     7833  case 529:
     7834
     7835/* Line 1806 of yacc.c  */
     7836#line 2031 "parser.yy"
    78427837    {
    78437838                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78477842    break;
    78487843
    7849   case 533:
    7850 
    7851 /* Line 1806 of yacc.c  */
    7852 #line 2044 "parser.yy"
     7844  case 530:
     7845
     7846/* Line 1806 of yacc.c  */
     7847#line 2037 "parser.yy"
    78537848    {
    78547849                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78587853    break;
    78597854
    7860   case 534:
    7861 
    7862 /* Line 1806 of yacc.c  */
    7863 #line 2053 "parser.yy"
     7855  case 531:
     7856
     7857/* Line 1806 of yacc.c  */
     7858#line 2046 "parser.yy"
    78647859    {
    78657860                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78697864    break;
    78707865
    7871   case 535:
    7872 
    7873 /* Line 1806 of yacc.c  */
    7874 #line 2059 "parser.yy"
     7866  case 532:
     7867
     7868/* Line 1806 of yacc.c  */
     7869#line 2052 "parser.yy"
    78757870    {
    78767871                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78807875    break;
    78817876
    7882   case 536:
    7883 
    7884 /* Line 1806 of yacc.c  */
    7885 #line 2065 "parser.yy"
     7877  case 533:
     7878
     7879/* Line 1806 of yacc.c  */
     7880#line 2058 "parser.yy"
    78867881    {
    78877882                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78917886    break;
    78927887
    7893   case 537:
    7894 
    7895 /* Line 1806 of yacc.c  */
    7896 #line 2071 "parser.yy"
     7888  case 534:
     7889
     7890/* Line 1806 of yacc.c  */
     7891#line 2064 "parser.yy"
    78977892    {
    78987893                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79027897    break;
    79037898
    7904   case 538:
    7905 
    7906 /* Line 1806 of yacc.c  */
    7907 #line 2077 "parser.yy"
     7899  case 535:
     7900
     7901/* Line 1806 of yacc.c  */
     7902#line 2070 "parser.yy"
    79087903    {
    79097904                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79137908    break;
    79147909
    7915   case 539:
    7916 
    7917 /* Line 1806 of yacc.c  */
    7918 #line 2085 "parser.yy"
     7910  case 536:
     7911
     7912/* Line 1806 of yacc.c  */
     7913#line 2078 "parser.yy"
    79197914    {
    79207915                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79247919    break;
    79257920
    7926   case 540:
    7927 
    7928 /* Line 1806 of yacc.c  */
    7929 #line 2091 "parser.yy"
     7921  case 537:
     7922
     7923/* Line 1806 of yacc.c  */
     7924#line 2084 "parser.yy"
    79307925    {
    79317926                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79357930    break;
    79367931
    7937   case 541:
    7938 
    7939 /* Line 1806 of yacc.c  */
    7940 #line 2099 "parser.yy"
     7932  case 538:
     7933
     7934/* Line 1806 of yacc.c  */
     7935#line 2092 "parser.yy"
    79417936    {
    79427937                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79467941    break;
    79477942
    7948   case 542:
    7949 
    7950 /* Line 1806 of yacc.c  */
    7951 #line 2105 "parser.yy"
     7943  case 539:
     7944
     7945/* Line 1806 of yacc.c  */
     7946#line 2098 "parser.yy"
    79527947    {
    79537948                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79577952    break;
    79587953
     7954  case 543:
     7955
     7956/* Line 1806 of yacc.c  */
     7957#line 2113 "parser.yy"
     7958    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     7959    break;
     7960
     7961  case 545:
     7962
     7963/* Line 1806 of yacc.c  */
     7964#line 2118 "parser.yy"
     7965    { delete (yyvsp[(3) - (5)].str); }
     7966    break;
     7967
    79597968  case 546:
    79607969
    79617970/* Line 1806 of yacc.c  */
    7962 #line 2120 "parser.yy"
    7963     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    7964     break;
    7965 
    7966   case 548:
    7967 
    7968 /* Line 1806 of yacc.c  */
    7969 #line 2125 "parser.yy"
    7970     { delete (yyvsp[(3) - (5)].str); }
     7971#line 2123 "parser.yy"
     7972    { (yyval.decl) = 0; }
    79717973    break;
    79727974
     
    79757977/* Line 1806 of yacc.c  */
    79767978#line 2130 "parser.yy"
     7979    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7980    break;
     7981
     7982  case 550:
     7983
     7984/* Line 1806 of yacc.c  */
     7985#line 2136 "parser.yy"
    79777986    { (yyval.decl) = 0; }
    79787987    break;
    79797988
    7980   case 552:
    7981 
    7982 /* Line 1806 of yacc.c  */
    7983 #line 2137 "parser.yy"
    7984     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7985     break;
    7986 
    7987   case 553:
    7988 
    7989 /* Line 1806 of yacc.c  */
    7990 #line 2143 "parser.yy"
    7991     { (yyval.decl) = 0; }
     7989  case 555:
     7990
     7991/* Line 1806 of yacc.c  */
     7992#line 2147 "parser.yy"
     7993    { delete (yyvsp[(3) - (4)].en); }
     7994    break;
     7995
     7996  case 556:
     7997
     7998/* Line 1806 of yacc.c  */
     7999#line 2151 "parser.yy"
     8000    { delete (yyvsp[(1) - (1)].tok); }
     8001    break;
     8002
     8003  case 557:
     8004
     8005/* Line 1806 of yacc.c  */
     8006#line 2152 "parser.yy"
     8007    { delete (yyvsp[(1) - (1)].decl); }
    79928008    break;
    79938009
     
    79958011
    79968012/* Line 1806 of yacc.c  */
     8013#line 2153 "parser.yy"
     8014    { delete (yyvsp[(1) - (1)].decl); }
     8015    break;
     8016
     8017  case 559:
     8018
     8019/* Line 1806 of yacc.c  */
    79978020#line 2154 "parser.yy"
    7998     { delete (yyvsp[(3) - (4)].en); }
    7999     break;
    8000 
    8001   case 559:
    8002 
    8003 /* Line 1806 of yacc.c  */
    8004 #line 2158 "parser.yy"
    8005     { delete (yyvsp[(1) - (1)].tok); }
     8021    { delete (yyvsp[(1) - (1)].decl); }
    80068022    break;
    80078023
     
    80098025
    80108026/* Line 1806 of yacc.c  */
    8011 #line 2159 "parser.yy"
    8012     { delete (yyvsp[(1) - (1)].decl); }
    8013     break;
    8014 
    8015   case 561:
    8016 
    8017 /* Line 1806 of yacc.c  */
    8018 #line 2160 "parser.yy"
    8019     { delete (yyvsp[(1) - (1)].decl); }
     8027#line 2189 "parser.yy"
     8028    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80208029    break;
    80218030
     
    80238032
    80248033/* Line 1806 of yacc.c  */
    8025 #line 2161 "parser.yy"
    8026     { delete (yyvsp[(1) - (1)].decl); }
     8034#line 2192 "parser.yy"
     8035    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80278036    break;
    80288037
     
    80308039
    80318040/* Line 1806 of yacc.c  */
    8032 #line 2196 "parser.yy"
     8041#line 2194 "parser.yy"
    80338042    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80348043    break;
    80358044
    8036   case 565:
     8045  case 564:
    80378046
    80388047/* Line 1806 of yacc.c  */
    80398048#line 2199 "parser.yy"
    8040     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8041     break;
    8042 
    8043   case 566:
    8044 
    8045 /* Line 1806 of yacc.c  */
    8046 #line 2201 "parser.yy"
    8047     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8048     break;
    8049 
    8050   case 567:
    8051 
    8052 /* Line 1806 of yacc.c  */
    8053 #line 2206 "parser.yy"
    80548049    {
    80558050                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80588053    break;
    80598054
     8055  case 565:
     8056
     8057/* Line 1806 of yacc.c  */
     8058#line 2204 "parser.yy"
     8059    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8060    break;
     8061
     8062  case 566:
     8063
     8064/* Line 1806 of yacc.c  */
     8065#line 2209 "parser.yy"
     8066    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8067    break;
     8068
     8069  case 567:
     8070
     8071/* Line 1806 of yacc.c  */
     8072#line 2211 "parser.yy"
     8073    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8074    break;
     8075
    80608076  case 568:
    80618077
    80628078/* Line 1806 of yacc.c  */
    8063 #line 2211 "parser.yy"
     8079#line 2213 "parser.yy"
    80648080    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80658081    break;
     
    80688084
    80698085/* Line 1806 of yacc.c  */
    8070 #line 2216 "parser.yy"
    8071     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8086#line 2218 "parser.yy"
     8087    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80728088    break;
    80738089
     
    80758091
    80768092/* Line 1806 of yacc.c  */
    8077 #line 2218 "parser.yy"
    8078     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8093#line 2220 "parser.yy"
     8094    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80798095    break;
    80808096
     
    80828098
    80838099/* Line 1806 of yacc.c  */
    8084 #line 2220 "parser.yy"
     8100#line 2222 "parser.yy"
     8101    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8102    break;
     8103
     8104  case 572:
     8105
     8106/* Line 1806 of yacc.c  */
     8107#line 2224 "parser.yy"
    80858108    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80868109    break;
    80878110
    8088   case 572:
    8089 
    8090 /* Line 1806 of yacc.c  */
    8091 #line 2225 "parser.yy"
    8092     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8093     break;
    8094 
    80958111  case 573:
    80968112
    80978113/* Line 1806 of yacc.c  */
    8098 #line 2227 "parser.yy"
    8099     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8114#line 2229 "parser.yy"
     8115    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81008116    break;
    81018117
    81028118  case 574:
    8103 
    8104 /* Line 1806 of yacc.c  */
    8105 #line 2229 "parser.yy"
    8106     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8107     break;
    8108 
    8109   case 575:
    81108119
    81118120/* Line 1806 of yacc.c  */
     
    81148123    break;
    81158124
    8116   case 576:
    8117 
    8118 /* Line 1806 of yacc.c  */
    8119 #line 2236 "parser.yy"
     8125  case 575:
     8126
     8127/* Line 1806 of yacc.c  */
     8128#line 2240 "parser.yy"
     8129    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8130    break;
     8131
     8132  case 577:
     8133
     8134/* Line 1806 of yacc.c  */
     8135#line 2243 "parser.yy"
     8136    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8137    break;
     8138
     8139  case 578:
     8140
     8141/* Line 1806 of yacc.c  */
     8142#line 2248 "parser.yy"
     8143    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8144    break;
     8145
     8146  case 579:
     8147
     8148/* Line 1806 of yacc.c  */
     8149#line 2250 "parser.yy"
    81208150    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81218151    break;
    81228152
    8123   case 577:
    8124 
    8125 /* Line 1806 of yacc.c  */
    8126 #line 2238 "parser.yy"
     8153  case 580:
     8154
     8155/* Line 1806 of yacc.c  */
     8156#line 2252 "parser.yy"
    81278157    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81288158    break;
    81298159
    8130   case 578:
    8131 
    8132 /* Line 1806 of yacc.c  */
    8133 #line 2247 "parser.yy"
     8160  case 581:
     8161
     8162/* Line 1806 of yacc.c  */
     8163#line 2257 "parser.yy"
     8164    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8165    break;
     8166
     8167  case 582:
     8168
     8169/* Line 1806 of yacc.c  */
     8170#line 2259 "parser.yy"
     8171    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8172    break;
     8173
     8174  case 583:
     8175
     8176/* Line 1806 of yacc.c  */
     8177#line 2261 "parser.yy"
     8178    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8179    break;
     8180
     8181  case 584:
     8182
     8183/* Line 1806 of yacc.c  */
     8184#line 2266 "parser.yy"
     8185    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8186    break;
     8187
     8188  case 585:
     8189
     8190/* Line 1806 of yacc.c  */
     8191#line 2268 "parser.yy"
     8192    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8193    break;
     8194
     8195  case 586:
     8196
     8197/* Line 1806 of yacc.c  */
     8198#line 2270 "parser.yy"
     8199    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8200    break;
     8201
     8202  case 590:
     8203
     8204/* Line 1806 of yacc.c  */
     8205#line 2285 "parser.yy"
     8206    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8207    break;
     8208
     8209  case 591:
     8210
     8211/* Line 1806 of yacc.c  */
     8212#line 2287 "parser.yy"
     8213    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8214    break;
     8215
     8216  case 592:
     8217
     8218/* Line 1806 of yacc.c  */
     8219#line 2289 "parser.yy"
     8220    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8221    break;
     8222
     8223  case 593:
     8224
     8225/* Line 1806 of yacc.c  */
     8226#line 2294 "parser.yy"
     8227    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8228    break;
     8229
     8230  case 594:
     8231
     8232/* Line 1806 of yacc.c  */
     8233#line 2296 "parser.yy"
     8234    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8235    break;
     8236
     8237  case 595:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2298 "parser.yy"
     8241    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8242    break;
     8243
     8244  case 596:
     8245
     8246/* Line 1806 of yacc.c  */
     8247#line 2303 "parser.yy"
     8248    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8249    break;
     8250
     8251  case 597:
     8252
     8253/* Line 1806 of yacc.c  */
     8254#line 2305 "parser.yy"
     8255    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8256    break;
     8257
     8258  case 598:
     8259
     8260/* Line 1806 of yacc.c  */
     8261#line 2307 "parser.yy"
     8262    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8263    break;
     8264
     8265  case 599:
     8266
     8267/* Line 1806 of yacc.c  */
     8268#line 2322 "parser.yy"
    81348269    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81358270    break;
    81368271
    8137   case 580:
    8138 
    8139 /* Line 1806 of yacc.c  */
    8140 #line 2250 "parser.yy"
     8272  case 601:
     8273
     8274/* Line 1806 of yacc.c  */
     8275#line 2325 "parser.yy"
    81418276    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81428277    break;
    81438278
    8144   case 581:
    8145 
    8146 /* Line 1806 of yacc.c  */
    8147 #line 2255 "parser.yy"
     8279  case 602:
     8280
     8281/* Line 1806 of yacc.c  */
     8282#line 2327 "parser.yy"
     8283    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8284    break;
     8285
     8286  case 604:
     8287
     8288/* Line 1806 of yacc.c  */
     8289#line 2333 "parser.yy"
     8290    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8291    break;
     8292
     8293  case 605:
     8294
     8295/* Line 1806 of yacc.c  */
     8296#line 2338 "parser.yy"
     8297    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8298    break;
     8299
     8300  case 606:
     8301
     8302/* Line 1806 of yacc.c  */
     8303#line 2340 "parser.yy"
     8304    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8305    break;
     8306
     8307  case 607:
     8308
     8309/* Line 1806 of yacc.c  */
     8310#line 2342 "parser.yy"
     8311    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8312    break;
     8313
     8314  case 608:
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2347 "parser.yy"
     8318    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8319    break;
     8320
     8321  case 609:
     8322
     8323/* Line 1806 of yacc.c  */
     8324#line 2349 "parser.yy"
     8325    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8326    break;
     8327
     8328  case 610:
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2351 "parser.yy"
     8332    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8333    break;
     8334
     8335  case 611:
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2353 "parser.yy"
     8339    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8340    break;
     8341
     8342  case 612:
     8343
     8344/* Line 1806 of yacc.c  */
     8345#line 2358 "parser.yy"
    81488346    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81498347    break;
    81508348
    8151   case 582:
    8152 
    8153 /* Line 1806 of yacc.c  */
    8154 #line 2257 "parser.yy"
     8349  case 613:
     8350
     8351/* Line 1806 of yacc.c  */
     8352#line 2360 "parser.yy"
    81558353    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81568354    break;
    81578355
    8158   case 583:
    8159 
    8160 /* Line 1806 of yacc.c  */
    8161 #line 2259 "parser.yy"
     8356  case 614:
     8357
     8358/* Line 1806 of yacc.c  */
     8359#line 2362 "parser.yy"
    81628360    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81638361    break;
    81648362
    8165   case 584:
    8166 
    8167 /* Line 1806 of yacc.c  */
    8168 #line 2264 "parser.yy"
     8363  case 615:
     8364
     8365/* Line 1806 of yacc.c  */
     8366#line 2372 "parser.yy"
     8367    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8368    break;
     8369
     8370  case 617:
     8371
     8372/* Line 1806 of yacc.c  */
     8373#line 2375 "parser.yy"
     8374    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8375    break;
     8376
     8377  case 618:
     8378
     8379/* Line 1806 of yacc.c  */
     8380#line 2377 "parser.yy"
     8381    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8382    break;
     8383
     8384  case 619:
     8385
     8386/* Line 1806 of yacc.c  */
     8387#line 2382 "parser.yy"
    81698388    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81708389    break;
    81718390
    8172   case 585:
    8173 
    8174 /* Line 1806 of yacc.c  */
    8175 #line 2266 "parser.yy"
     8391  case 620:
     8392
     8393/* Line 1806 of yacc.c  */
     8394#line 2384 "parser.yy"
    81768395    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81778396    break;
    81788397
    8179   case 586:
    8180 
    8181 /* Line 1806 of yacc.c  */
    8182 #line 2268 "parser.yy"
     8398  case 621:
     8399
     8400/* Line 1806 of yacc.c  */
     8401#line 2386 "parser.yy"
    81838402    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81848403    break;
    81858404
    8186   case 587:
    8187 
    8188 /* Line 1806 of yacc.c  */
    8189 #line 2273 "parser.yy"
     8405  case 622:
     8406
     8407/* Line 1806 of yacc.c  */
     8408#line 2391 "parser.yy"
     8409    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8410    break;
     8411
     8412  case 623:
     8413
     8414/* Line 1806 of yacc.c  */
     8415#line 2393 "parser.yy"
    81908416    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81918417    break;
    81928418
    8193   case 588:
    8194 
    8195 /* Line 1806 of yacc.c  */
    8196 #line 2275 "parser.yy"
     8419  case 624:
     8420
     8421/* Line 1806 of yacc.c  */
     8422#line 2395 "parser.yy"
    81978423    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81988424    break;
    81998425
    8200   case 589:
    8201 
    8202 /* Line 1806 of yacc.c  */
    8203 #line 2277 "parser.yy"
     8426  case 625:
     8427
     8428/* Line 1806 of yacc.c  */
     8429#line 2397 "parser.yy"
    82048430    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82058431    break;
    82068432
    8207   case 593:
    8208 
    8209 /* Line 1806 of yacc.c  */
    8210 #line 2292 "parser.yy"
    8211     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8212     break;
    8213 
    8214   case 594:
    8215 
    8216 /* Line 1806 of yacc.c  */
    8217 #line 2294 "parser.yy"
    8218     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8219     break;
    8220 
    8221   case 595:
    8222 
    8223 /* Line 1806 of yacc.c  */
    8224 #line 2296 "parser.yy"
     8433  case 626:
     8434
     8435/* Line 1806 of yacc.c  */
     8436#line 2402 "parser.yy"
     8437    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8438    break;
     8439
     8440  case 627:
     8441
     8442/* Line 1806 of yacc.c  */
     8443#line 2404 "parser.yy"
     8444    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8445    break;
     8446
     8447  case 628:
     8448
     8449/* Line 1806 of yacc.c  */
     8450#line 2406 "parser.yy"
    82258451    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82268452    break;
    82278453
    8228   case 596:
    8229 
    8230 /* Line 1806 of yacc.c  */
    8231 #line 2301 "parser.yy"
    8232     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8233     break;
    8234 
    8235   case 597:
    8236 
    8237 /* Line 1806 of yacc.c  */
    8238 #line 2303 "parser.yy"
    8239     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8240     break;
    8241 
    8242   case 598:
    8243 
    8244 /* Line 1806 of yacc.c  */
    8245 #line 2305 "parser.yy"
    8246     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8247     break;
    8248 
    8249   case 599:
    8250 
    8251 /* Line 1806 of yacc.c  */
    8252 #line 2310 "parser.yy"
    8253     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8254     break;
    8255 
    8256   case 600:
    8257 
    8258 /* Line 1806 of yacc.c  */
    8259 #line 2312 "parser.yy"
    8260     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8261     break;
    8262 
    8263   case 601:
    8264 
    8265 /* Line 1806 of yacc.c  */
    8266 #line 2314 "parser.yy"
    8267     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8268     break;
    8269 
    8270   case 602:
    8271 
    8272 /* Line 1806 of yacc.c  */
    8273 #line 2329 "parser.yy"
     8454  case 629:
     8455
     8456/* Line 1806 of yacc.c  */
     8457#line 2437 "parser.yy"
    82748458    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82758459    break;
    82768460
    8277   case 604:
    8278 
    8279 /* Line 1806 of yacc.c  */
    8280 #line 2332 "parser.yy"
     8461  case 631:
     8462
     8463/* Line 1806 of yacc.c  */
     8464#line 2440 "parser.yy"
    82818465    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82828466    break;
    82838467
    8284   case 605:
    8285 
    8286 /* Line 1806 of yacc.c  */
    8287 #line 2334 "parser.yy"
     8468  case 632:
     8469
     8470/* Line 1806 of yacc.c  */
     8471#line 2442 "parser.yy"
    82888472    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82898473    break;
    82908474
    8291   case 607:
    8292 
    8293 /* Line 1806 of yacc.c  */
    8294 #line 2340 "parser.yy"
    8295     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8296     break;
    8297 
    8298   case 608:
    8299 
    8300 /* Line 1806 of yacc.c  */
    8301 #line 2345 "parser.yy"
    8302     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8303     break;
    8304 
    8305   case 609:
    8306 
    8307 /* Line 1806 of yacc.c  */
    8308 #line 2347 "parser.yy"
    8309     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8310     break;
    8311 
    8312   case 610:
    8313 
    8314 /* Line 1806 of yacc.c  */
    8315 #line 2349 "parser.yy"
    8316     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8317     break;
    8318 
    8319   case 611:
    8320 
    8321 /* Line 1806 of yacc.c  */
    8322 #line 2354 "parser.yy"
    8323     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8324     break;
    8325 
    8326   case 612:
    8327 
    8328 /* Line 1806 of yacc.c  */
    8329 #line 2356 "parser.yy"
    8330     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8331     break;
    8332 
    8333   case 613:
    8334 
    8335 /* Line 1806 of yacc.c  */
    8336 #line 2358 "parser.yy"
    8337     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8338     break;
    8339 
    8340   case 614:
    8341 
    8342 /* Line 1806 of yacc.c  */
    8343 #line 2360 "parser.yy"
    8344     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8345     break;
    8346 
    8347   case 615:
    8348 
    8349 /* Line 1806 of yacc.c  */
    8350 #line 2365 "parser.yy"
    8351     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8352     break;
    8353 
    8354   case 616:
    8355 
    8356 /* Line 1806 of yacc.c  */
    8357 #line 2367 "parser.yy"
    8358     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8359     break;
    8360 
    8361   case 617:
    8362 
    8363 /* Line 1806 of yacc.c  */
    8364 #line 2369 "parser.yy"
    8365     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8366     break;
    8367 
    8368   case 618:
    8369 
    8370 /* Line 1806 of yacc.c  */
    8371 #line 2379 "parser.yy"
    8372     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8373     break;
    8374 
    8375   case 620:
    8376 
    8377 /* Line 1806 of yacc.c  */
    8378 #line 2382 "parser.yy"
    8379     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8380     break;
    8381 
    8382   case 621:
    8383 
    8384 /* Line 1806 of yacc.c  */
    8385 #line 2384 "parser.yy"
    8386     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8387     break;
    8388 
    8389   case 622:
    8390 
    8391 /* Line 1806 of yacc.c  */
    8392 #line 2389 "parser.yy"
    8393     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8394     break;
    8395 
    8396   case 623:
    8397 
    8398 /* Line 1806 of yacc.c  */
    8399 #line 2391 "parser.yy"
    8400     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8401     break;
    8402 
    8403   case 624:
    8404 
    8405 /* Line 1806 of yacc.c  */
    8406 #line 2393 "parser.yy"
    8407     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8408     break;
    8409 
    8410   case 625:
    8411 
    8412 /* Line 1806 of yacc.c  */
    8413 #line 2398 "parser.yy"
    8414     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8415     break;
    8416 
    8417   case 626:
    8418 
    8419 /* Line 1806 of yacc.c  */
    8420 #line 2400 "parser.yy"
    8421     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8422     break;
    8423 
    8424   case 627:
    8425 
    8426 /* Line 1806 of yacc.c  */
    8427 #line 2402 "parser.yy"
    8428     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8429     break;
    8430 
    8431   case 628:
    8432 
    8433 /* Line 1806 of yacc.c  */
    8434 #line 2404 "parser.yy"
    8435     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8436     break;
    8437 
    8438   case 629:
    8439 
    8440 /* Line 1806 of yacc.c  */
    8441 #line 2409 "parser.yy"
    8442     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8443     break;
    8444 
    8445   case 630:
    8446 
    8447 /* Line 1806 of yacc.c  */
    8448 #line 2411 "parser.yy"
    8449     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8450     break;
    8451 
    8452   case 631:
    8453 
    8454 /* Line 1806 of yacc.c  */
    8455 #line 2413 "parser.yy"
    8456     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8457     break;
    8458 
    8459   case 632:
    8460 
    8461 /* Line 1806 of yacc.c  */
    8462 #line 2444 "parser.yy"
    8463     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8464     break;
    8465 
    8466   case 634:
     8475  case 633:
    84678476
    84688477/* Line 1806 of yacc.c  */
    84698478#line 2447 "parser.yy"
    8470     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8471     break;
    8472 
    8473   case 635:
    8474 
    8475 /* Line 1806 of yacc.c  */
    8476 #line 2449 "parser.yy"
    8477     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8478     break;
    8479 
    8480   case 636:
    8481 
    8482 /* Line 1806 of yacc.c  */
    8483 #line 2454 "parser.yy"
    84848479    {
    84858480                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84888483    break;
    84898484
    8490   case 637:
    8491 
    8492 /* Line 1806 of yacc.c  */
    8493 #line 2459 "parser.yy"
     8485  case 634:
     8486
     8487/* Line 1806 of yacc.c  */
     8488#line 2452 "parser.yy"
    84948489    {
    84958490                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84988493    break;
    84998494
     8495  case 635:
     8496
     8497/* Line 1806 of yacc.c  */
     8498#line 2460 "parser.yy"
     8499    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8500    break;
     8501
     8502  case 636:
     8503
     8504/* Line 1806 of yacc.c  */
     8505#line 2462 "parser.yy"
     8506    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8507    break;
     8508
     8509  case 637:
     8510
     8511/* Line 1806 of yacc.c  */
     8512#line 2464 "parser.yy"
     8513    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8514    break;
     8515
    85008516  case 638:
    85018517
    85028518/* Line 1806 of yacc.c  */
    8503 #line 2467 "parser.yy"
     8519#line 2469 "parser.yy"
     8520    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8521    break;
     8522
     8523  case 639:
     8524
     8525/* Line 1806 of yacc.c  */
     8526#line 2471 "parser.yy"
     8527    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8528    break;
     8529
     8530  case 640:
     8531
     8532/* Line 1806 of yacc.c  */
     8533#line 2476 "parser.yy"
     8534    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8535    break;
     8536
     8537  case 641:
     8538
     8539/* Line 1806 of yacc.c  */
     8540#line 2478 "parser.yy"
     8541    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8542    break;
     8543
     8544  case 643:
     8545
     8546/* Line 1806 of yacc.c  */
     8547#line 2493 "parser.yy"
     8548    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8549    break;
     8550
     8551  case 644:
     8552
     8553/* Line 1806 of yacc.c  */
     8554#line 2495 "parser.yy"
     8555    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8556    break;
     8557
     8558  case 645:
     8559
     8560/* Line 1806 of yacc.c  */
     8561#line 2500 "parser.yy"
     8562    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8563    break;
     8564
     8565  case 646:
     8566
     8567/* Line 1806 of yacc.c  */
     8568#line 2502 "parser.yy"
     8569    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8570    break;
     8571
     8572  case 647:
     8573
     8574/* Line 1806 of yacc.c  */
     8575#line 2504 "parser.yy"
    85048576    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85058577    break;
    85068578
    8507   case 639:
    8508 
    8509 /* Line 1806 of yacc.c  */
    8510 #line 2469 "parser.yy"
     8579  case 648:
     8580
     8581/* Line 1806 of yacc.c  */
     8582#line 2506 "parser.yy"
    85118583    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85128584    break;
    85138585
    8514   case 640:
    8515 
    8516 /* Line 1806 of yacc.c  */
    8517 #line 2471 "parser.yy"
     8586  case 649:
     8587
     8588/* Line 1806 of yacc.c  */
     8589#line 2508 "parser.yy"
    85188590    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85198591    break;
    85208592
    8521   case 641:
    8522 
    8523 /* Line 1806 of yacc.c  */
    8524 #line 2476 "parser.yy"
     8593  case 651:
     8594
     8595/* Line 1806 of yacc.c  */
     8596#line 2514 "parser.yy"
     8597    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8598    break;
     8599
     8600  case 652:
     8601
     8602/* Line 1806 of yacc.c  */
     8603#line 2516 "parser.yy"
     8604    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8605    break;
     8606
     8607  case 653:
     8608
     8609/* Line 1806 of yacc.c  */
     8610#line 2518 "parser.yy"
     8611    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8612    break;
     8613
     8614  case 654:
     8615
     8616/* Line 1806 of yacc.c  */
     8617#line 2523 "parser.yy"
     8618    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     8619    break;
     8620
     8621  case 655:
     8622
     8623/* Line 1806 of yacc.c  */
     8624#line 2525 "parser.yy"
     8625    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8626    break;
     8627
     8628  case 656:
     8629
     8630/* Line 1806 of yacc.c  */
     8631#line 2527 "parser.yy"
     8632    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8633    break;
     8634
     8635  case 657:
     8636
     8637/* Line 1806 of yacc.c  */
     8638#line 2533 "parser.yy"
     8639    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8640    break;
     8641
     8642  case 658:
     8643
     8644/* Line 1806 of yacc.c  */
     8645#line 2535 "parser.yy"
     8646    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8647    break;
     8648
     8649  case 660:
     8650
     8651/* Line 1806 of yacc.c  */
     8652#line 2541 "parser.yy"
     8653    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8654    break;
     8655
     8656  case 661:
     8657
     8658/* Line 1806 of yacc.c  */
     8659#line 2543 "parser.yy"
     8660    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8661    break;
     8662
     8663  case 662:
     8664
     8665/* Line 1806 of yacc.c  */
     8666#line 2545 "parser.yy"
     8667    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8668    break;
     8669
     8670  case 663:
     8671
     8672/* Line 1806 of yacc.c  */
     8673#line 2547 "parser.yy"
     8674    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8675    break;
     8676
     8677  case 665:
     8678
     8679/* Line 1806 of yacc.c  */
     8680#line 2562 "parser.yy"
     8681    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8682    break;
     8683
     8684  case 666:
     8685
     8686/* Line 1806 of yacc.c  */
     8687#line 2564 "parser.yy"
     8688    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8689    break;
     8690
     8691  case 667:
     8692
     8693/* Line 1806 of yacc.c  */
     8694#line 2569 "parser.yy"
     8695    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8696    break;
     8697
     8698  case 668:
     8699
     8700/* Line 1806 of yacc.c  */
     8701#line 2571 "parser.yy"
     8702    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8703    break;
     8704
     8705  case 669:
     8706
     8707/* Line 1806 of yacc.c  */
     8708#line 2573 "parser.yy"
     8709    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8710    break;
     8711
     8712  case 670:
     8713
     8714/* Line 1806 of yacc.c  */
     8715#line 2575 "parser.yy"
     8716    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8717    break;
     8718
     8719  case 671:
     8720
     8721/* Line 1806 of yacc.c  */
     8722#line 2577 "parser.yy"
     8723    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8724    break;
     8725
     8726  case 673:
     8727
     8728/* Line 1806 of yacc.c  */
     8729#line 2583 "parser.yy"
     8730    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8731    break;
     8732
     8733  case 674:
     8734
     8735/* Line 1806 of yacc.c  */
     8736#line 2585 "parser.yy"
     8737    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8738    break;
     8739
     8740  case 675:
     8741
     8742/* Line 1806 of yacc.c  */
     8743#line 2587 "parser.yy"
     8744    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8745    break;
     8746
     8747  case 676:
     8748
     8749/* Line 1806 of yacc.c  */
     8750#line 2592 "parser.yy"
     8751    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     8752    break;
     8753
     8754  case 677:
     8755
     8756/* Line 1806 of yacc.c  */
     8757#line 2594 "parser.yy"
     8758    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8759    break;
     8760
     8761  case 678:
     8762
     8763/* Line 1806 of yacc.c  */
     8764#line 2596 "parser.yy"
     8765    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8766    break;
     8767
     8768  case 680:
     8769
     8770/* Line 1806 of yacc.c  */
     8771#line 2603 "parser.yy"
    85258772    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85268773    break;
    85278774
    8528   case 642:
    8529 
    8530 /* Line 1806 of yacc.c  */
    8531 #line 2478 "parser.yy"
     8775  case 682:
     8776
     8777/* Line 1806 of yacc.c  */
     8778#line 2614 "parser.yy"
     8779    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8780    break;
     8781
     8782  case 683:
     8783
     8784/* Line 1806 of yacc.c  */
     8785#line 2617 "parser.yy"
     8786    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8787    break;
     8788
     8789  case 684:
     8790
     8791/* Line 1806 of yacc.c  */
     8792#line 2619 "parser.yy"
     8793    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8794    break;
     8795
     8796  case 685:
     8797
     8798/* Line 1806 of yacc.c  */
     8799#line 2622 "parser.yy"
     8800    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8801    break;
     8802
     8803  case 686:
     8804
     8805/* Line 1806 of yacc.c  */
     8806#line 2624 "parser.yy"
     8807    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8808    break;
     8809
     8810  case 687:
     8811
     8812/* Line 1806 of yacc.c  */
     8813#line 2626 "parser.yy"
     8814    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8815    break;
     8816
     8817  case 689:
     8818
     8819/* Line 1806 of yacc.c  */
     8820#line 2640 "parser.yy"
     8821    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8822    break;
     8823
     8824  case 690:
     8825
     8826/* Line 1806 of yacc.c  */
     8827#line 2642 "parser.yy"
     8828    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8829    break;
     8830
     8831  case 691:
     8832
     8833/* Line 1806 of yacc.c  */
     8834#line 2647 "parser.yy"
     8835    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8836    break;
     8837
     8838  case 692:
     8839
     8840/* Line 1806 of yacc.c  */
     8841#line 2649 "parser.yy"
     8842    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8843    break;
     8844
     8845  case 693:
     8846
     8847/* Line 1806 of yacc.c  */
     8848#line 2651 "parser.yy"
     8849    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8850    break;
     8851
     8852  case 694:
     8853
     8854/* Line 1806 of yacc.c  */
     8855#line 2653 "parser.yy"
     8856    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8857    break;
     8858
     8859  case 695:
     8860
     8861/* Line 1806 of yacc.c  */
     8862#line 2655 "parser.yy"
     8863    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8864    break;
     8865
     8866  case 697:
     8867
     8868/* Line 1806 of yacc.c  */
     8869#line 2661 "parser.yy"
    85328870    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85338871    break;
    85348872
    8535   case 643:
    8536 
    8537 /* Line 1806 of yacc.c  */
    8538 #line 2483 "parser.yy"
    8539     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8540     break;
    8541 
    8542   case 644:
    8543 
    8544 /* Line 1806 of yacc.c  */
    8545 #line 2485 "parser.yy"
     8873  case 698:
     8874
     8875/* Line 1806 of yacc.c  */
     8876#line 2663 "parser.yy"
     8877    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8878    break;
     8879
     8880  case 699:
     8881
     8882/* Line 1806 of yacc.c  */
     8883#line 2665 "parser.yy"
     8884    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8885    break;
     8886
     8887  case 700:
     8888
     8889/* Line 1806 of yacc.c  */
     8890#line 2670 "parser.yy"
    85468891    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85478892    break;
    85488893
    8549   case 646:
    8550 
    8551 /* Line 1806 of yacc.c  */
    8552 #line 2500 "parser.yy"
    8553     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8554     break;
    8555 
    8556   case 647:
    8557 
    8558 /* Line 1806 of yacc.c  */
    8559 #line 2502 "parser.yy"
    8560     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8561     break;
    8562 
    8563   case 648:
    8564 
    8565 /* Line 1806 of yacc.c  */
    8566 #line 2507 "parser.yy"
    8567     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8568     break;
    8569 
    8570   case 649:
    8571 
    8572 /* Line 1806 of yacc.c  */
    8573 #line 2509 "parser.yy"
    8574     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8575     break;
    8576 
    8577   case 650:
    8578 
    8579 /* Line 1806 of yacc.c  */
    8580 #line 2511 "parser.yy"
    8581     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8582     break;
    8583 
    8584   case 651:
    8585 
    8586 /* Line 1806 of yacc.c  */
    8587 #line 2513 "parser.yy"
    8588     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8589     break;
    8590 
    8591   case 652:
    8592 
    8593 /* Line 1806 of yacc.c  */
    8594 #line 2515 "parser.yy"
    8595     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8596     break;
    8597 
    8598   case 654:
    8599 
    8600 /* Line 1806 of yacc.c  */
    8601 #line 2521 "parser.yy"
    8602     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8603     break;
    8604 
    8605   case 655:
    8606 
    8607 /* Line 1806 of yacc.c  */
    8608 #line 2523 "parser.yy"
    8609     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8610     break;
    8611 
    8612   case 656:
    8613 
    8614 /* Line 1806 of yacc.c  */
    8615 #line 2525 "parser.yy"
    8616     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8617     break;
    8618 
    8619   case 657:
    8620 
    8621 /* Line 1806 of yacc.c  */
    8622 #line 2530 "parser.yy"
    8623     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    8624     break;
    8625 
    8626   case 658:
    8627 
    8628 /* Line 1806 of yacc.c  */
    8629 #line 2532 "parser.yy"
    8630     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8631     break;
    8632 
    8633   case 659:
    8634 
    8635 /* Line 1806 of yacc.c  */
    8636 #line 2534 "parser.yy"
    8637     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8638     break;
    8639 
    8640   case 660:
    8641 
    8642 /* Line 1806 of yacc.c  */
    8643 #line 2540 "parser.yy"
    8644     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8645     break;
    8646 
    8647   case 661:
    8648 
    8649 /* Line 1806 of yacc.c  */
    8650 #line 2542 "parser.yy"
    8651     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8652     break;
    8653 
    8654   case 663:
    8655 
    8656 /* Line 1806 of yacc.c  */
    8657 #line 2548 "parser.yy"
    8658     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8659     break;
    8660 
    8661   case 664:
    8662 
    8663 /* Line 1806 of yacc.c  */
    8664 #line 2550 "parser.yy"
    8665     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8666     break;
    8667 
    8668   case 665:
    8669 
    8670 /* Line 1806 of yacc.c  */
    8671 #line 2552 "parser.yy"
    8672     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8673     break;
    8674 
    8675   case 666:
    8676 
    8677 /* Line 1806 of yacc.c  */
    8678 #line 2554 "parser.yy"
    8679     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8680     break;
    8681 
    8682   case 668:
    8683 
    8684 /* Line 1806 of yacc.c  */
    8685 #line 2569 "parser.yy"
    8686     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8687     break;
    8688 
    8689   case 669:
    8690 
    8691 /* Line 1806 of yacc.c  */
    8692 #line 2571 "parser.yy"
    8693     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8694     break;
    8695 
    8696   case 670:
    8697 
    8698 /* Line 1806 of yacc.c  */
    8699 #line 2576 "parser.yy"
    8700     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8701     break;
    8702 
    8703   case 671:
    8704 
    8705 /* Line 1806 of yacc.c  */
    8706 #line 2578 "parser.yy"
    8707     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8708     break;
    8709 
    8710   case 672:
    8711 
    8712 /* Line 1806 of yacc.c  */
    8713 #line 2580 "parser.yy"
    8714     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8715     break;
    8716 
    8717   case 673:
    8718 
    8719 /* Line 1806 of yacc.c  */
    8720 #line 2582 "parser.yy"
    8721     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8722     break;
    8723 
    8724   case 674:
    8725 
    8726 /* Line 1806 of yacc.c  */
    8727 #line 2584 "parser.yy"
    8728     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8729     break;
    8730 
    8731   case 676:
    8732 
    8733 /* Line 1806 of yacc.c  */
    8734 #line 2590 "parser.yy"
    8735     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8736     break;
    8737 
    8738   case 677:
    8739 
    8740 /* Line 1806 of yacc.c  */
    8741 #line 2592 "parser.yy"
    8742     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8743     break;
    8744 
    8745   case 678:
    8746 
    8747 /* Line 1806 of yacc.c  */
    8748 #line 2594 "parser.yy"
    8749     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8750     break;
    8751 
    8752   case 679:
    8753 
    8754 /* Line 1806 of yacc.c  */
    8755 #line 2599 "parser.yy"
    8756     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    8757     break;
    8758 
    8759   case 680:
    8760 
    8761 /* Line 1806 of yacc.c  */
    8762 #line 2601 "parser.yy"
    8763     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8764     break;
    8765 
    8766   case 681:
    8767 
    8768 /* Line 1806 of yacc.c  */
    8769 #line 2603 "parser.yy"
    8770     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8771     break;
    8772 
    8773   case 683:
    8774 
    8775 /* Line 1806 of yacc.c  */
    8776 #line 2610 "parser.yy"
    8777     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8778     break;
    8779 
    8780   case 685:
    8781 
    8782 /* Line 1806 of yacc.c  */
    8783 #line 2621 "parser.yy"
    8784     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8785     break;
    8786 
    8787   case 686:
    8788 
    8789 /* Line 1806 of yacc.c  */
    8790 #line 2624 "parser.yy"
    8791     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8792     break;
    8793 
    8794   case 687:
    8795 
    8796 /* Line 1806 of yacc.c  */
    8797 #line 2626 "parser.yy"
    8798     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8799     break;
    8800 
    8801   case 688:
    8802 
    8803 /* Line 1806 of yacc.c  */
    8804 #line 2629 "parser.yy"
    8805     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8806     break;
    8807 
    8808   case 689:
    8809 
    8810 /* Line 1806 of yacc.c  */
    8811 #line 2631 "parser.yy"
    8812     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8813     break;
    8814 
    8815   case 690:
    8816 
    8817 /* Line 1806 of yacc.c  */
    8818 #line 2633 "parser.yy"
    8819     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8820     break;
    8821 
    8822   case 692:
    8823 
    8824 /* Line 1806 of yacc.c  */
    8825 #line 2647 "parser.yy"
    8826     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8827     break;
    8828 
    8829   case 693:
    8830 
    8831 /* Line 1806 of yacc.c  */
    8832 #line 2649 "parser.yy"
    8833     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8834     break;
    8835 
    8836   case 694:
    8837 
    8838 /* Line 1806 of yacc.c  */
    8839 #line 2654 "parser.yy"
    8840     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8841     break;
    8842 
    8843   case 695:
    8844 
    8845 /* Line 1806 of yacc.c  */
    8846 #line 2656 "parser.yy"
    8847     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8848     break;
    8849 
    8850   case 696:
    8851 
    8852 /* Line 1806 of yacc.c  */
    8853 #line 2658 "parser.yy"
    8854     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8855     break;
    8856 
    8857   case 697:
    8858 
    8859 /* Line 1806 of yacc.c  */
    8860 #line 2660 "parser.yy"
    8861     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8862     break;
    8863 
    8864   case 698:
    8865 
    8866 /* Line 1806 of yacc.c  */
    8867 #line 2662 "parser.yy"
    8868     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8869     break;
    8870 
    8871   case 700:
    8872 
    8873 /* Line 1806 of yacc.c  */
    8874 #line 2668 "parser.yy"
    8875     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8876     break;
    8877 
    88788894  case 701:
    8879 
    8880 /* Line 1806 of yacc.c  */
    8881 #line 2670 "parser.yy"
    8882     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8883     break;
    8884 
    8885   case 702:
    88868895
    88878896/* Line 1806 of yacc.c  */
     
    88908899    break;
    88918900
    8892   case 703:
    8893 
    8894 /* Line 1806 of yacc.c  */
    8895 #line 2677 "parser.yy"
    8896     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8897     break;
    8898 
    88998901  case 704:
    89008902
    89018903/* Line 1806 of yacc.c  */
    8902 #line 2679 "parser.yy"
    8903     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8904#line 2682 "parser.yy"
     8905    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89048906    break;
    89058907
     
    89078909
    89088910/* Line 1806 of yacc.c  */
    8909 #line 2689 "parser.yy"
     8911#line 2692 "parser.yy"
     8912    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8913    break;
     8914
     8915  case 708:
     8916
     8917/* Line 1806 of yacc.c  */
     8918#line 2694 "parser.yy"
     8919    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8920    break;
     8921
     8922  case 709:
     8923
     8924/* Line 1806 of yacc.c  */
     8925#line 2696 "parser.yy"
     8926    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8927    break;
     8928
     8929  case 710:
     8930
     8931/* Line 1806 of yacc.c  */
     8932#line 2698 "parser.yy"
     8933    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8934    break;
     8935
     8936  case 711:
     8937
     8938/* Line 1806 of yacc.c  */
     8939#line 2700 "parser.yy"
     8940    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8941    break;
     8942
     8943  case 712:
     8944
     8945/* Line 1806 of yacc.c  */
     8946#line 2702 "parser.yy"
     8947    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8948    break;
     8949
     8950  case 713:
     8951
     8952/* Line 1806 of yacc.c  */
     8953#line 2709 "parser.yy"
     8954    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8955    break;
     8956
     8957  case 714:
     8958
     8959/* Line 1806 of yacc.c  */
     8960#line 2711 "parser.yy"
     8961    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8962    break;
     8963
     8964  case 715:
     8965
     8966/* Line 1806 of yacc.c  */
     8967#line 2713 "parser.yy"
     8968    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8969    break;
     8970
     8971  case 716:
     8972
     8973/* Line 1806 of yacc.c  */
     8974#line 2715 "parser.yy"
     8975    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8976    break;
     8977
     8978  case 717:
     8979
     8980/* Line 1806 of yacc.c  */
     8981#line 2717 "parser.yy"
     8982    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8983    break;
     8984
     8985  case 718:
     8986
     8987/* Line 1806 of yacc.c  */
     8988#line 2719 "parser.yy"
     8989    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8990    break;
     8991
     8992  case 719:
     8993
     8994/* Line 1806 of yacc.c  */
     8995#line 2721 "parser.yy"
     8996    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8997    break;
     8998
     8999  case 720:
     9000
     9001/* Line 1806 of yacc.c  */
     9002#line 2723 "parser.yy"
     9003    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9004    break;
     9005
     9006  case 721:
     9007
     9008/* Line 1806 of yacc.c  */
     9009#line 2725 "parser.yy"
     9010    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9011    break;
     9012
     9013  case 722:
     9014
     9015/* Line 1806 of yacc.c  */
     9016#line 2727 "parser.yy"
     9017    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9018    break;
     9019
     9020  case 723:
     9021
     9022/* Line 1806 of yacc.c  */
     9023#line 2732 "parser.yy"
     9024    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     9025    break;
     9026
     9027  case 724:
     9028
     9029/* Line 1806 of yacc.c  */
     9030#line 2734 "parser.yy"
     9031    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     9032    break;
     9033
     9034  case 725:
     9035
     9036/* Line 1806 of yacc.c  */
     9037#line 2739 "parser.yy"
     9038    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     9039    break;
     9040
     9041  case 726:
     9042
     9043/* Line 1806 of yacc.c  */
     9044#line 2741 "parser.yy"
     9045    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     9046    break;
     9047
     9048  case 728:
     9049
     9050/* Line 1806 of yacc.c  */
     9051#line 2768 "parser.yy"
    89109052    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89119053    break;
    89129054
    8913   case 710:
    8914 
    8915 /* Line 1806 of yacc.c  */
    8916 #line 2699 "parser.yy"
     9055  case 732:
     9056
     9057/* Line 1806 of yacc.c  */
     9058#line 2779 "parser.yy"
    89179059    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89189060    break;
    89199061
    8920   case 711:
    8921 
    8922 /* Line 1806 of yacc.c  */
    8923 #line 2701 "parser.yy"
     9062  case 733:
     9063
     9064/* Line 1806 of yacc.c  */
     9065#line 2781 "parser.yy"
    89249066    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89259067    break;
    89269068
    8927   case 712:
    8928 
    8929 /* Line 1806 of yacc.c  */
    8930 #line 2703 "parser.yy"
     9069  case 734:
     9070
     9071/* Line 1806 of yacc.c  */
     9072#line 2783 "parser.yy"
    89319073    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89329074    break;
    89339075
    8934   case 713:
    8935 
    8936 /* Line 1806 of yacc.c  */
    8937 #line 2705 "parser.yy"
     9076  case 735:
     9077
     9078/* Line 1806 of yacc.c  */
     9079#line 2785 "parser.yy"
    89389080    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89399081    break;
    89409082
    8941   case 714:
    8942 
    8943 /* Line 1806 of yacc.c  */
    8944 #line 2707 "parser.yy"
     9083  case 736:
     9084
     9085/* Line 1806 of yacc.c  */
     9086#line 2787 "parser.yy"
    89459087    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89469088    break;
    89479089
    8948   case 715:
    8949 
    8950 /* Line 1806 of yacc.c  */
    8951 #line 2709 "parser.yy"
     9090  case 737:
     9091
     9092/* Line 1806 of yacc.c  */
     9093#line 2789 "parser.yy"
    89529094    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89539095    break;
    89549096
    8955   case 716:
    8956 
    8957 /* Line 1806 of yacc.c  */
    8958 #line 2716 "parser.yy"
    8959     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8960     break;
    8961 
    8962   case 717:
    8963 
    8964 /* Line 1806 of yacc.c  */
    8965 #line 2718 "parser.yy"
     9097  case 738:
     9098
     9099/* Line 1806 of yacc.c  */
     9100#line 2796 "parser.yy"
     9101    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9102    break;
     9103
     9104  case 739:
     9105
     9106/* Line 1806 of yacc.c  */
     9107#line 2798 "parser.yy"
     9108    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9109    break;
     9110
     9111  case 740:
     9112
     9113/* Line 1806 of yacc.c  */
     9114#line 2800 "parser.yy"
    89669115    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89679116    break;
    89689117
    8969   case 718:
    8970 
    8971 /* Line 1806 of yacc.c  */
    8972 #line 2720 "parser.yy"
    8973     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8974     break;
    8975 
    8976   case 719:
    8977 
    8978 /* Line 1806 of yacc.c  */
    8979 #line 2722 "parser.yy"
    8980     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8981     break;
    8982 
    8983   case 720:
    8984 
    8985 /* Line 1806 of yacc.c  */
    8986 #line 2724 "parser.yy"
     9118  case 741:
     9119
     9120/* Line 1806 of yacc.c  */
     9121#line 2802 "parser.yy"
     9122    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9123    break;
     9124
     9125  case 742:
     9126
     9127/* Line 1806 of yacc.c  */
     9128#line 2804 "parser.yy"
     9129    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9130    break;
     9131
     9132  case 743:
     9133
     9134/* Line 1806 of yacc.c  */
     9135#line 2806 "parser.yy"
    89879136    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89889137    break;
    89899138
    8990   case 721:
    8991 
    8992 /* Line 1806 of yacc.c  */
    8993 #line 2726 "parser.yy"
    8994     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8995     break;
    8996 
    8997   case 722:
    8998 
    8999 /* Line 1806 of yacc.c  */
    9000 #line 2728 "parser.yy"
    9001     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9002     break;
    9003 
    9004   case 723:
    9005 
    9006 /* Line 1806 of yacc.c  */
    9007 #line 2730 "parser.yy"
    9008     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9009     break;
    9010 
    9011   case 724:
    9012 
    9013 /* Line 1806 of yacc.c  */
    9014 #line 2732 "parser.yy"
    9015     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9016     break;
    9017 
    9018   case 725:
    9019 
    9020 /* Line 1806 of yacc.c  */
    9021 #line 2734 "parser.yy"
    9022     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9023     break;
    9024 
    9025   case 726:
    9026 
    9027 /* Line 1806 of yacc.c  */
    9028 #line 2739 "parser.yy"
    9029     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    9030     break;
    9031 
    9032   case 727:
    9033 
    9034 /* Line 1806 of yacc.c  */
    9035 #line 2741 "parser.yy"
    9036     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    9037     break;
    9038 
    9039   case 728:
    9040 
    9041 /* Line 1806 of yacc.c  */
    9042 #line 2746 "parser.yy"
    9043     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9044     break;
    9045 
    9046   case 729:
    9047 
    9048 /* Line 1806 of yacc.c  */
    9049 #line 2748 "parser.yy"
    9050     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    9051     break;
    9052 
    9053   case 731:
    9054 
    9055 /* Line 1806 of yacc.c  */
    9056 #line 2775 "parser.yy"
    9057     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    9058     break;
    9059 
    9060   case 735:
    9061 
    9062 /* Line 1806 of yacc.c  */
    9063 #line 2786 "parser.yy"
    9064     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9065     break;
    9066 
    9067   case 736:
    9068 
    9069 /* Line 1806 of yacc.c  */
    9070 #line 2788 "parser.yy"
    9071     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9072     break;
    9073 
    9074   case 737:
    9075 
    9076 /* Line 1806 of yacc.c  */
    9077 #line 2790 "parser.yy"
    9078     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9079     break;
    9080 
    9081   case 738:
    9082 
    9083 /* Line 1806 of yacc.c  */
    9084 #line 2792 "parser.yy"
    9085     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9086     break;
    9087 
    9088   case 739:
    9089 
    9090 /* Line 1806 of yacc.c  */
    9091 #line 2794 "parser.yy"
    9092     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9093     break;
    9094 
    9095   case 740:
    9096 
    9097 /* Line 1806 of yacc.c  */
    9098 #line 2796 "parser.yy"
    9099     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9100     break;
    9101 
    9102   case 741:
    9103 
    9104 /* Line 1806 of yacc.c  */
    9105 #line 2803 "parser.yy"
    9106     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9107     break;
    9108 
    9109   case 742:
    9110 
    9111 /* Line 1806 of yacc.c  */
    9112 #line 2805 "parser.yy"
    9113     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9114     break;
    9115 
    9116   case 743:
    9117 
    9118 /* Line 1806 of yacc.c  */
    9119 #line 2807 "parser.yy"
    9120     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9121     break;
    9122 
    91239139  case 744:
    91249140
    91259141/* Line 1806 of yacc.c  */
    9126 #line 2809 "parser.yy"
    9127     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9142#line 2811 "parser.yy"
     9143    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91289144    break;
    91299145
     
    91319147
    91329148/* Line 1806 of yacc.c  */
    9133 #line 2811 "parser.yy"
    9134     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9149#line 2816 "parser.yy"
     9150    { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    91359151    break;
    91369152
     
    91389154
    91399155/* Line 1806 of yacc.c  */
    9140 #line 2813 "parser.yy"
    9141     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9156#line 2818 "parser.yy"
     9157    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    91429158    break;
    91439159
     
    91459161
    91469162/* Line 1806 of yacc.c  */
    9147 #line 2818 "parser.yy"
    9148     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    9149     break;
    9150 
    9151   case 748:
    9152 
    9153 /* Line 1806 of yacc.c  */
    9154 #line 2823 "parser.yy"
    9155     { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    9156     break;
    9157 
    9158   case 749:
    9159 
    9160 /* Line 1806 of yacc.c  */
    9161 #line 2825 "parser.yy"
     9163#line 2820 "parser.yy"
    91629164    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    91639165    break;
     
    91669168
    91679169/* Line 1806 of yacc.c  */
    9168 #line 2827 "parser.yy"
    9169     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    9170     break;
    9171 
    9172   case 753:
    9173 
    9174 /* Line 1806 of yacc.c  */
    9175 #line 2851 "parser.yy"
     9170#line 2844 "parser.yy"
    91769171    { (yyval.en) = 0; }
    91779172    break;
    91789173
    9179   case 754:
    9180 
    9181 /* Line 1806 of yacc.c  */
    9182 #line 2853 "parser.yy"
     9174  case 751:
     9175
     9176/* Line 1806 of yacc.c  */
     9177#line 2846 "parser.yy"
    91839178    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91849179    break;
     
    91879182
    91889183/* Line 1806 of yacc.c  */
    9189 #line 9190 "Parser/parser.cc"
     9184#line 9185 "Parser/parser.cc"
    91909185      default: break;
    91919186    }
     
    94189413
    94199414/* Line 2067 of yacc.c  */
    9420 #line 2856 "parser.yy"
     9415#line 2849 "parser.yy"
    94219416
    94229417// ----end of grammar----
  • src/Parser/parser.yy

    rd58a39a0 ra7976d79  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Oct  5 14:10:46 2016
    13 // Update Count     : 2002
     12// Last Modified On : Sat Sep 24 12:16:53 2016
     13// Update Count     : 1992
    1414//
    1515
     
    196196%type<decl> field_declaration field_declaration_list field_declarator field_declaring_list
    197197%type<en> field field_list
    198 %type<tok> field_name
    199198
    200199%type<decl> external_function_definition function_definition function_array function_declarator function_no_ptr function_ptr
     
    379378                { $$ = new ExpressionNode( build_fieldSel( $1, build_varref( $3 ) ) ); }
    380379        | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector
    381         | postfix_expression '.' INTEGERconstant
    382380        | postfix_expression ARROW no_attr_identifier
    383381                { $$ = new ExpressionNode( build_pfieldSel( $1, build_varref( $3 ) ) ); }
     
    415413
    416414field:                                                                                                  // CFA, tuple field selector
    417         field_name
     415        no_attr_identifier
     416                { $$ = new ExpressionNode( build_varref( $1 ) ); }
    418417                // ambiguity with .0 so space required after field-selection, e.g.
    419418                //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
    420                 { $$ = new ExpressionNode( build_varref( $1 ) ); }
    421         | field_name '.' field
     419        | no_attr_identifier '.' field
    422420                { $$ = new ExpressionNode( build_fieldSel( $3, build_varref( $1 ) ) ); }
    423         | field_name '.' '[' push field_list pop ']'
     421        | no_attr_identifier '.' '[' push field_list pop ']'
    424422                { $$ = new ExpressionNode( build_fieldSel( $5, build_varref( $1 ) ) ); }
    425         | field_name ARROW field
     423        | no_attr_identifier ARROW field
    426424                { $$ = new ExpressionNode( build_pfieldSel( $3, build_varref( $1 ) ) ); }
    427         | field_name ARROW '[' push field_list pop ']'
     425        | no_attr_identifier ARROW '[' push field_list pop ']'
    428426                { $$ = new ExpressionNode( build_pfieldSel( $5, build_varref( $1 ) ) ); }
    429         ;
    430 
    431 field_name:
    432         no_attr_identifier
    433         | INTEGERconstant
    434427        ;
    435428
     
    20122005                {
    20132006                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    2014                         linkage = LinkageSpec::linkageCheck( $2 );
     2007                        linkage = LinkageSpec::fromString( *$2 );
    20152008                }
    20162009          '{' external_definition_list_opt '}'                          // C++-style linkage specifier
  • src/SynTree/FunctionDecl.cc

    rd58a39a0 ra7976d79  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Oct  1 23:06:32 2016
    13 // Update Count     : 21
     12// Last Modified On : Thu Aug 18 23:50:14 2016
     13// Update Count     : 20
    1414//
    1515
     
    6060        } // if
    6161        if ( get_linkage() != LinkageSpec::Cforall ) {
    62                 os << LinkageSpec::linkageName( get_linkage() ) << " ";
     62                os << LinkageSpec::toString( get_linkage() ) << " ";
    6363        } // if
    6464        if ( get_isInline() ) {
  • src/SynTree/ObjectDecl.cc

    rd58a39a0 ra7976d79  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Oct  1 23:05:56 2016
    13 // Update Count     : 32
     12// Last Modified On : Thu Aug 18 23:50:33 2016
     13// Update Count     : 31
    1414//
    1515
     
    4444
    4545        if ( get_linkage() != LinkageSpec::Cforall ) {
    46                 os << LinkageSpec::linkageName( get_linkage() ) << " ";
     46                os << LinkageSpec::toString( get_linkage() ) << " ";
    4747        } // if
    4848
Note: See TracChangeset for help on using the changeset viewer.