Changeset 51b1202


Ignore:
Timestamp:
Aug 11, 2015, 4:16:03 PM (10 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
a3a17ba
Parents:
99f4165
Message:

move constant/string to unary_expression, temporarily separate asm and local label, introduce DesignatorNode

Location:
src/Parser
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ExpressionNode.cc

    r99f4165 r51b1202  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 30 14:53:23 2015
    13 // Update Count     : 188
     12// Last Modified On : Tue Aug 11 15:13:48 2015
     13// Update Count     : 200
    1414//
    1515
     
    284284        os << "Variable: " << get_name();
    285285        os << endl;
     286}
     287
     288//##############################################################################
     289
     290DesignatorNode::DesignatorNode( ExpressionNode *expr, bool isArrayIndex ) : isArrayIndex( isArrayIndex ) {
     291        set_argName( expr );
     292}
     293
     294DesignatorNode::DesignatorNode( const DesignatorNode &other ) : ExpressionNode( other ), isArrayIndex( other.isArrayIndex ) {
     295}
     296
     297Expression *DesignatorNode::build() const {
     298        if ( isArrayIndex ) {
     299                return new NameExpr( get_name(), maybeBuild< Expression >( get_argName() ) );
     300        } else {
     301                return new NameExpr( get_name(), maybeBuild< Expression >( get_argName() ) );
     302        } // if
     303}
     304
     305void DesignatorNode::printOneLine( std::ostream &os, int indent ) const {
     306        if ( get_argName() ) {
     307                if ( isArrayIndex ) {
     308                        os << "[";
     309                        get_argName()->printOneLine( os, indent );
     310                        os << "]";
     311                } else {
     312                        os << ".";
     313                        get_argName()->printOneLine( os, indent );
     314                }
     315        } // if
     316}
     317
     318void DesignatorNode::print( std::ostream &os, int indent ) const {
     319        if ( get_argName() ) {
     320                if ( isArrayIndex ) {
     321                        os << "[";
     322                        get_argName()->print( os, indent );
     323                        os << "]";
     324                } else {
     325                        os << ".";
     326                        get_argName()->print( os, indent );
     327                }
     328        } // if
    286329}
    287330
  • src/Parser/ParseNode.h

    r99f4165 r51b1202  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 30 15:11:39 2015
    13 // Update Count     : 141
     12// Last Modified On : Tue Aug 11 15:11:29 2015
     13// Update Count     : 145
    1414//
    1515
     
    136136  private:
    137137        bool isLabel;
     138};
     139
     140class DesignatorNode : public ExpressionNode {
     141  public:
     142        DesignatorNode( ExpressionNode *expr, bool isArrayIndex = false );
     143        DesignatorNode( const DesignatorNode &other );
     144
     145        virtual Expression *build() const ;
     146        virtual DesignatorNode *clone() const { return new DesignatorNode( *this ); }
     147
     148        virtual void print( std::ostream &, int indent = 0 ) const;
     149        virtual void printOneLine( std::ostream &, int indent = 0 ) const;
     150  private:
     151        bool isArrayIndex;
    138152};
    139153
  • src/Parser/parser.cc

    r99f4165 r51b1202  
    573573#define YYFINAL  246
    574574/* YYLAST -- Last index in YYTABLE.  */
    575 #define YYLAST   11295
     575#define YYLAST   11329
    576576
    577577/* YYNTOKENS -- Number of terminals.  */
    578578#define YYNTOKENS  125
    579579/* YYNNTS -- Number of nonterminals.  */
    580 #define YYNNTS  237
     580#define YYNNTS  238
    581581/* YYNRULES -- Number of rules.  */
    582 #define YYNRULES  739
     582#define YYNRULES  740
    583583/* YYNRULES -- Number of states.  */
    584 #define YYNSTATES  1527
     584#define YYNSTATES  1530
    585585
    586586/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    639639       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    640640      17,    19,    21,    23,    25,    27,    29,    32,    34,    36,
    641       38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
    642       86,    89,    92,   100,   102,   106,   107,   109,   113,   121,
    643      131,   133,   137,   139,   143,   151,   155,   163,   165,   168,
     641      40,    44,    46,    53,    58,    62,    70,    74,    82,    85,
     642      88,    96,    98,   102,   103,   105,   109,   117,   127,   129,
     643     133,   135,   139,   147,   151,   159,   161,   163,   165,   168,
    644644     171,   174,   177,   180,   183,   186,   191,   193,   198,   203,
    645645     206,   211,   214,   216,   218,   220,   222,   224,   229,   234,
     
    682682    1493,  1495,  1497,  1499,  1501,  1503,  1505,  1507,  1509,  1512,
    683683    1514,  1516,  1518,  1521,  1522,  1525,  1527,  1532,  1534,  1537,
    684     1541,  1546,  1549,  1552,  1554,  1557,  1560,  1566,  1572,  1580,
    685     1587,  1589,  1592,  1595,  1599,  1601,  1604,  1607,  1612,  1615,
    686     1620,  1621,  1626,  1629,  1631,  1633,  1635,  1636,  1639,  1645,
    687     1651,  1665,  1667,  1669,  1673,  1677,  1680,  1684,  1688,  1691,
    688     1696,  1698,  1705,  1715,  1716,  1728,  1730,  1734,  1738,  1742,
    689     1744,  1746,  1752,  1755,  1761,  1762,  1764,  1766,  1770,  1771,
    690     1773,  1775,  1777,  1779,  1780,  1787,  1790,  1792,  1795,  1800,
    691     1803,  1807,  1811,  1815,  1820,  1826,  1832,  1838,  1845,  1847,
    692     1849,  1851,  1855,  1856,  1862,  1863,  1865,  1867,  1870,  1877,
    693     1879,  1883,  1884,  1886,  1891,  1893,  1895,  1897,  1899,  1902,
    694     1904,  1907,  1910,  1912,  1916,  1919,  1923,  1927,  1930,  1935,
    695     1940,  1944,  1953,  1957,  1960,  1962,  1965,  1972,  1981,  1985,
    696     1988,  1992,  1996,  2001,  2006,  2010,  2012,  2014,  2016,  2021,
    697     2028,  2032,  2035,  2039,  2043,  2048,  2053,  2057,  2060,  2062,
    698     2065,  2068,  2070,  2074,  2077,  2081,  2085,  2088,  2093,  2098,
    699     2102,  2109,  2118,  2122,  2125,  2127,  2130,  2133,  2136,  2140,
    700     2144,  2147,  2152,  2157,  2161,  2168,  2177,  2181,  2184,  2186,
    701     2189,  2192,  2194,  2196,  2199,  2203,  2207,  2210,  2215,  2222,
    702     2231,  2233,  2236,  2239,  2241,  2244,  2247,  2251,  2255,  2257,
    703     2262,  2267,  2271,  2277,  2286,  2290,  2293,  2297,  2299,  2305,
    704     2311,  2318,  2325,  2327,  2330,  2333,  2335,  2338,  2341,  2345,
    705     2349,  2351,  2356,  2361,  2365,  2371,  2380,  2384,  2386,  2389,
    706     2391,  2394,  2401,  2407,  2414,  2422,  2430,  2432,  2435,  2438,
    707     2440,  2443,  2446,  2450,  2454,  2456,  2461,  2466,  2470,  2479,
    708     2483,  2485,  2487,  2490,  2492,  2494,  2497,  2501,  2504,  2508,
    709     2511,  2515,  2519,  2522,  2527,  2531,  2534,  2538,  2541,  2546,
    710     2550,  2553,  2560,  2567,  2574,  2582,  2584,  2587,  2589,  2591,
    711     2593,  2596,  2600,  2603,  2607,  2610,  2614,  2618,  2623,  2626,
    712     2630,  2635,  2638,  2644,  2650,  2657,  2664,  2665,  2667,  2668
     684    1541,  1546,  1549,  1552,  1554,  1557,  1559,  1562,  1568,  1574,
     685    1582,  1589,  1591,  1594,  1597,  1601,  1603,  1606,  1609,  1614,
     686    1617,  1622,  1623,  1628,  1631,  1633,  1635,  1637,  1638,  1641,
     687    1647,  1653,  1667,  1669,  1671,  1675,  1679,  1682,  1686,  1690,
     688    1693,  1698,  1700,  1707,  1717,  1718,  1730,  1732,  1736,  1740,
     689    1744,  1746,  1748,  1754,  1757,  1763,  1764,  1766,  1768,  1772,
     690    1773,  1775,  1777,  1779,  1781,  1782,  1789,  1792,  1794,  1797,
     691    1802,  1805,  1809,  1813,  1817,  1822,  1828,  1834,  1840,  1847,
     692    1849,  1851,  1853,  1857,  1858,  1864,  1865,  1867,  1869,  1872,
     693    1879,  1881,  1885,  1886,  1888,  1893,  1895,  1897,  1899,  1901,
     694    1904,  1906,  1909,  1912,  1914,  1918,  1921,  1925,  1929,  1932,
     695    1937,  1942,  1946,  1955,  1959,  1962,  1964,  1967,  1974,  1983,
     696    1987,  1990,  1994,  1998,  2003,  2008,  2012,  2014,  2016,  2018,
     697    2023,  2030,  2034,  2037,  2041,  2045,  2050,  2055,  2059,  2062,
     698    2064,  2067,  2070,  2072,  2076,  2079,  2083,  2087,  2090,  2095,
     699    2100,  2104,  2111,  2120,  2124,  2127,  2129,  2132,  2135,  2138,
     700    2142,  2146,  2149,  2154,  2159,  2163,  2170,  2179,  2183,  2186,
     701    2188,  2191,  2194,  2196,  2198,  2201,  2205,  2209,  2212,  2217,
     702    2224,  2233,  2235,  2238,  2241,  2243,  2246,  2249,  2253,  2257,
     703    2259,  2264,  2269,  2273,  2279,  2288,  2292,  2295,  2299,  2301,
     704    2307,  2313,  2320,  2327,  2329,  2332,  2335,  2337,  2340,  2343,
     705    2347,  2351,  2353,  2358,  2363,  2367,  2373,  2382,  2386,  2388,
     706    2391,  2393,  2396,  2403,  2409,  2416,  2424,  2432,  2434,  2437,
     707    2440,  2442,  2445,  2448,  2452,  2456,  2458,  2463,  2468,  2472,
     708    2481,  2485,  2487,  2489,  2492,  2494,  2496,  2499,  2503,  2506,
     709    2510,  2513,  2517,  2521,  2524,  2529,  2533,  2536,  2540,  2543,
     710    2548,  2552,  2555,  2562,  2569,  2576,  2584,  2586,  2589,  2591,
     711    2593,  2595,  2598,  2602,  2605,  2609,  2612,  2616,  2620,  2625,
     712    2628,  2632,  2637,  2640,  2646,  2652,  2659,  2666,  2667,  2669,
     713    2670
    713714};
    714715
     
    716717static const yytype_int16 yyrhs[] =
    717718{
    718      290,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
     719     291,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
    719720      -1,    65,    -1,    69,    -1,   132,    -1,    65,    -1,    69,
    720721      -1,    65,    -1,    76,    -1,    77,    -1,    75,    -1,   133,
    721       75,    -1,    65,    -1,   132,    -1,   128,    -1,   133,    -1,
    722      101,   160,   102,    -1,   101,   164,   102,    -1,   134,    -1,
    723      135,   103,   126,   155,   127,   104,    -1,   135,   101,   136,
    724      102,    -1,   135,   105,   131,    -1,   135,   105,   103,   126,
    725      138,   127,   104,    -1,   135,    78,   131,    -1,   135,    78,
    726      103,   126,   138,   127,   104,    -1,   135,    79,    -1,   135,
    727       80,    -1,   101,   263,   102,   106,   267,   360,   107,    -1,
    728      137,    -1,   136,   108,   137,    -1,    -1,   155,    -1,   131,
    729      109,   155,    -1,   103,   126,   155,   127,   104,   109,   155,
    730       -1,   103,   126,   155,   108,   158,   127,   104,   109,   155,
    731       -1,   139,    -1,   138,   108,   139,    -1,   131,    -1,   131,
    732      105,   139,    -1,   131,   105,   103,   126,   138,   127,   104,
    733       -1,   131,    78,   139,    -1,   131,    78,   103,   126,   138,
    734      127,   104,    -1,   135,    -1,    79,   140,    -1,    80,   140,
     722      75,    -1,    65,    -1,   132,    -1,   101,   160,   102,    -1,
     723     101,   164,   102,    -1,   134,    -1,   135,   103,   126,   155,
     724     127,   104,    -1,   135,   101,   136,   102,    -1,   135,   105,
     725     131,    -1,   135,   105,   103,   126,   138,   127,   104,    -1,
     726     135,    78,   131,    -1,   135,    78,   103,   126,   138,   127,
     727     104,    -1,   135,    79,    -1,   135,    80,    -1,   101,   264,
     728     102,   106,   268,   361,   107,    -1,   137,    -1,   136,   108,
     729     137,    -1,    -1,   155,    -1,   131,   109,   155,    -1,   103,
     730     126,   155,   127,   104,   109,   155,    -1,   103,   126,   155,
     731     108,   158,   127,   104,   109,   155,    -1,   139,    -1,   138,
     732     108,   139,    -1,   131,    -1,   131,   105,   139,    -1,   131,
     733     105,   103,   126,   138,   127,   104,    -1,   131,    78,   139,
     734      -1,   131,    78,   103,   126,   138,   127,   104,    -1,   135,
     735      -1,   128,    -1,   133,    -1,    79,   140,    -1,    80,   140,
    735736      -1,    38,   142,    -1,   141,   142,    -1,   110,   142,    -1,
    736      111,   142,    -1,    36,   140,    -1,    36,   101,   263,   102,
    737       -1,    69,    -1,    69,   101,   264,   102,    -1,    69,   101,
    738      137,   102,    -1,    59,   140,    -1,    59,   101,   263,   102,
     737     111,   142,    -1,    36,   140,    -1,    36,   101,   264,   102,
     738      -1,    69,    -1,    69,   101,   265,   102,    -1,    69,   101,
     739     137,   102,    -1,    59,   140,    -1,    59,   101,   264,   102,
    739740      -1,    87,   131,    -1,   112,    -1,   113,    -1,   114,    -1,
    740      115,    -1,   140,    -1,   101,   263,   102,   142,    -1,   101,
    741      263,   102,   157,    -1,   142,    -1,   143,   111,   142,    -1,
     741     115,    -1,   140,    -1,   101,   264,   102,   142,    -1,   101,
     742     264,   102,   157,    -1,   142,    -1,   143,   111,   142,    -1,
    742743     143,   116,   142,    -1,   143,   117,   142,    -1,   143,    -1,
    743744     144,   113,   143,    -1,   144,   114,   143,    -1,   144,    -1,
     
    751752     160,   109,   153,    -1,   152,   122,   109,   153,    -1,   152,
    752753     122,   160,   109,   157,    -1,   153,    -1,   153,    -1,   140,
    753      123,   155,    -1,   140,   159,   155,    -1,   157,   361,    -1,
     754     123,   155,    -1,   140,   159,   155,    -1,   157,   362,    -1,
    754755      -1,   155,    -1,   103,   104,    -1,   103,   126,   155,   127,
    755756     104,    -1,   103,   126,   108,   158,   127,   104,    -1,   103,
     
    760761     160,    -1,   163,    -1,   164,    -1,   168,    -1,   169,    -1,
    761762     181,    -1,   183,    -1,   184,    -1,   189,    -1,   131,   109,
    762      300,   162,    -1,   106,   107,    -1,   106,   126,   126,   200,
     763     301,   162,    -1,   106,   107,    -1,   106,   126,   126,   200,
    763764     165,   127,   107,    -1,   166,    -1,   165,   126,   166,    -1,
    764      202,    -1,    38,   202,    -1,   296,    -1,   162,   127,    -1,
     765     203,    -1,    38,   203,    -1,   297,    -1,   162,   127,    -1,
    765766     162,    -1,   167,   162,    -1,   161,   124,    -1,    39,   101,
    766767     160,   102,   162,    -1,    39,   101,   160,   102,   162,    40,
     
    769770     160,   102,   174,    -1,    51,   101,   160,   102,   106,   126,
    770771     196,   177,   107,    -1,   154,    -1,   154,    89,   154,    -1,
    771      298,    -1,   170,    -1,   171,   108,   170,    -1,    42,   171,
     772     299,    -1,   170,    -1,   171,   108,   170,    -1,    42,   171,
    772773     109,    -1,    43,   109,    -1,   172,    -1,   173,   172,    -1,
    773774     173,   162,    -1,    -1,   176,    -1,   173,   167,    -1,   176,
     
    777778      45,   101,   160,   102,   162,    -1,    44,   162,    45,   101,
    778779     160,   102,   124,    -1,    46,   101,   126,   182,   102,   162,
    779       -1,   161,   127,   124,   161,   124,   161,    -1,   202,   161,
     780      -1,   161,   127,   124,   161,   124,   161,    -1,   203,   161,
    780781     124,   161,    -1,    49,   131,   124,    -1,    49,   111,   160,
    781782     124,    -1,    48,   124,    -1,    48,   131,   124,    -1,    47,
     
    786787     101,    89,   102,   164,    -1,    54,   101,   126,   126,   188,
    787788     127,   102,   164,   127,    -1,   186,    54,   101,   126,   126,
    788      188,   127,   102,   164,   127,    -1,    55,   164,    -1,   215,
    789       -1,   215,   297,    -1,   215,   345,    -1,   354,   131,    -1,
    790      354,    -1,    57,   190,   101,   133,   102,   124,    -1,    57,
     789     188,   127,   102,   164,   127,    -1,    55,   164,    -1,   216,
     790      -1,   216,   298,    -1,   216,   346,    -1,   355,   131,    -1,
     791     355,    -1,    57,   190,   101,   133,   102,   124,    -1,    57,
    791792     190,   101,   133,   109,   191,   102,   124,    -1,    57,   190,
    792793     101,   133,   109,   191,   109,   191,   102,   124,    -1,    57,
     
    797798     101,   154,   102,    -1,   103,   154,   104,   133,   101,   154,
    798799     102,    -1,    -1,   133,    -1,   194,   108,   133,    -1,   131,
    799       -1,   195,   108,   131,    -1,   127,    -1,   197,    -1,   202,
    800       -1,   197,   126,   202,    -1,   127,    -1,   199,    -1,   212,
    801       -1,   199,   126,   212,    -1,    -1,   201,    -1,    28,   195,
    802      124,    -1,   201,    28,   195,   124,    -1,   262,    -1,   195,
    803      108,   262,    -1,   203,    -1,   212,    -1,   204,   127,   124,
    804       -1,   209,   127,   124,    -1,   206,   127,   124,    -1,   281,
    805      127,   124,    -1,   284,   127,   124,    -1,   205,   265,    -1,
    806      221,   205,   265,    -1,   204,   127,   108,   126,   260,   265,
    807       -1,   355,   260,   299,    -1,   358,   260,   299,    -1,   217,
    808      358,   260,   299,    -1,   207,    -1,   217,   207,    -1,   221,
    809      207,    -1,   221,   217,   207,    -1,   206,   127,   108,   126,
    810      260,    -1,   103,   104,   260,   101,   126,   248,   127,   102,
    811       -1,   358,   260,   101,   126,   248,   127,   102,    -1,   208,
    812      260,   101,   126,   248,   127,   102,    -1,   103,   126,   250,
    813      127,   104,    -1,   103,   126,   250,   127,   108,   126,   251,
    814      127,   104,    -1,     3,   205,    -1,     3,   207,    -1,   209,
    815      127,   108,   126,   131,    -1,     3,   215,   297,    -1,   210,
    816      127,   108,   126,   297,    -1,   217,     3,   215,   297,    -1,
    817      215,     3,   297,    -1,   215,     3,   217,   297,    -1,     3,
    818      131,   123,   155,    -1,   211,   127,   108,   126,   131,   123,
    819      155,    -1,   213,   127,   124,    -1,   210,   127,   124,    -1,
    820      211,   127,   124,    -1,   230,   127,   124,    -1,   214,   297,
    821      299,   265,    -1,   213,   108,   300,   297,   299,   265,    -1,
    822      226,    -1,   230,    -1,   232,    -1,   271,    -1,   227,    -1,
    823      231,    -1,   233,    -1,   272,    -1,    -1,   217,    -1,   218,
    824       -1,   217,   218,    -1,   219,    -1,   302,    -1,    10,    -1,
     800      -1,   195,   108,   131,    -1,   127,    -1,   197,    -1,   203,
     801      -1,   197,   126,   203,    -1,   127,    -1,   199,    -1,   213,
     802      -1,   199,   126,   213,    -1,    -1,   201,    -1,    28,   202,
     803     124,    -1,   201,    28,   202,   124,    -1,   263,    -1,   202,
     804     108,   263,    -1,   204,    -1,   213,    -1,   205,   127,   124,
     805      -1,   210,   127,   124,    -1,   207,   127,   124,    -1,   282,
     806     127,   124,    -1,   285,   127,   124,    -1,   206,   266,    -1,
     807     222,   206,   266,    -1,   205,   127,   108,   126,   261,   266,
     808      -1,   356,   261,   300,    -1,   359,   261,   300,    -1,   218,
     809     359,   261,   300,    -1,   208,    -1,   218,   208,    -1,   222,
     810     208,    -1,   222,   218,   208,    -1,   207,   127,   108,   126,
     811     261,    -1,   103,   104,   261,   101,   126,   249,   127,   102,
     812      -1,   359,   261,   101,   126,   249,   127,   102,    -1,   209,
     813     261,   101,   126,   249,   127,   102,    -1,   103,   126,   251,
     814     127,   104,    -1,   103,   126,   251,   127,   108,   126,   252,
     815     127,   104,    -1,     3,   206,    -1,     3,   208,    -1,   210,
     816     127,   108,   126,   131,    -1,     3,   216,   298,    -1,   211,
     817     127,   108,   126,   298,    -1,   218,     3,   216,   298,    -1,
     818     216,     3,   298,    -1,   216,     3,   218,   298,    -1,     3,
     819     131,   123,   155,    -1,   212,   127,   108,   126,   131,   123,
     820     155,    -1,   214,   127,   124,    -1,   211,   127,   124,    -1,
     821     212,   127,   124,    -1,   231,   127,   124,    -1,   215,   298,
     822     300,   266,    -1,   214,   108,   301,   298,   300,   266,    -1,
     823     227,    -1,   231,    -1,   233,    -1,   272,    -1,   228,    -1,
     824     232,    -1,   234,    -1,   273,    -1,    -1,   218,    -1,   219,
     825      -1,   218,   219,    -1,   220,    -1,   303,    -1,    10,    -1,
    825826      12,    -1,    11,    -1,    14,    -1,    60,    -1,    -1,    13,
    826      101,   220,   274,   102,    -1,   222,    -1,   217,   222,    -1,
    827      221,   217,   222,    -1,   223,    -1,   222,   223,    -1,   224,
     827     101,   221,   275,   102,    -1,   223,    -1,   218,   223,    -1,
     828     222,   218,   223,    -1,   224,    -1,   223,   224,    -1,   225,
    828829      -1,     5,    -1,     7,    -1,     4,    -1,     6,    -1,     8,
    829830      -1,     9,    -1,    62,    -1,    64,    -1,    16,    -1,    21,
    830831      -1,    20,    -1,    18,    -1,    19,    -1,    17,    -1,    22,
    831832      -1,    23,    -1,    15,    -1,    24,    -1,    25,    -1,    26,
    832       -1,   227,    -1,   221,   227,    -1,   226,   223,    -1,   226,
    833      223,   217,    -1,   226,   223,   227,    -1,   228,    -1,   216,
    834      229,   216,    -1,   225,    -1,   217,   225,    -1,   228,   218,
    835       -1,   228,   225,    -1,    27,   101,   264,   102,    -1,    27,
    836      101,   160,   102,    -1,    71,   101,   264,   102,    -1,    71,
    837      101,   160,   102,    -1,   231,    -1,   221,   231,    -1,   230,
    838      223,    -1,   230,   223,   217,    -1,   234,    -1,   217,   234,
    839       -1,   231,   218,    -1,   233,    -1,   221,   233,    -1,   232,
    840      223,    -1,   232,   223,   217,    -1,    67,    -1,   217,    67,
    841       -1,   233,   218,    -1,   235,    -1,   245,    -1,   236,   106,
    842      237,   107,    -1,   236,   262,    -1,   236,   262,   106,   237,
    843      107,    -1,   236,   101,   280,   102,   106,   237,   107,    -1,
    844      236,   273,    -1,    30,   300,    -1,    31,   300,    -1,   238,
    845       -1,   237,   238,    -1,   239,   124,    -1,    38,   239,   124,
    846       -1,   240,   124,    -1,    38,   240,   124,    -1,   354,    -1,
    847      354,   262,    -1,   239,   108,   262,    -1,   239,   108,    -1,
    848      215,   241,    -1,   240,   108,   300,   241,    -1,    -1,   243,
    849       -1,   306,   242,    -1,   319,   242,    -1,   345,    -1,    -1,
    850      243,    -1,   109,   154,    -1,    29,   300,    -1,   244,   106,
    851      246,   360,   107,    -1,   244,   262,   106,   246,   360,   107,
    852       -1,   244,   262,    -1,   262,   247,    -1,   246,   108,   262,
    853      247,    -1,    -1,   123,   154,    -1,    -1,   249,    -1,   251,
    854       -1,   250,    -1,   250,   127,   108,   126,   251,    -1,   251,
    855      127,   108,   126,    89,    -1,   250,   127,   108,   126,    89,
    856       -1,   255,    -1,   251,   127,   108,   126,   255,    -1,   250,
    857      127,   108,   126,   255,    -1,   250,   127,   108,   126,   251,
    858      127,   108,   126,   255,    -1,   256,    -1,   251,   127,   108,
    859      126,   256,    -1,    -1,   253,    -1,   254,    -1,   254,   127,
    860      108,   126,    89,    -1,   258,    -1,   257,    -1,   254,   127,
    861      108,   126,   258,    -1,   254,   127,   108,   126,   257,    -1,
    862      257,    -1,   350,   260,   361,    -1,   358,   260,   361,    -1,
    863      217,   358,   260,   361,    -1,   207,    -1,   258,    -1,   350,
    864       -1,   358,    -1,   217,   358,    -1,   359,    -1,   214,   324,
    865      361,    -1,   214,   328,   361,    -1,   214,    -1,   214,   339,
    866       -1,   131,    -1,   259,   108,   131,    -1,   129,    -1,    67,
     833      -1,   228,    -1,   222,   228,    -1,   227,   224,    -1,   227,
     834     224,   218,    -1,   227,   224,   228,    -1,   229,    -1,   217,
     835     230,   217,    -1,   226,    -1,   218,   226,    -1,   229,   219,
     836      -1,   229,   226,    -1,    27,   101,   265,   102,    -1,    27,
     837     101,   160,   102,    -1,    71,   101,   265,   102,    -1,    71,
     838     101,   160,   102,    -1,   232,    -1,   222,   232,    -1,   231,
     839     224,    -1,   231,   224,   218,    -1,   235,    -1,   218,   235,
     840      -1,   232,   219,    -1,   234,    -1,   222,   234,    -1,   233,
     841     224,    -1,   233,   224,   218,    -1,    67,    -1,   218,    67,
     842      -1,   234,   219,    -1,   236,    -1,   246,    -1,   237,   106,
     843     238,   107,    -1,   237,   263,    -1,   237,   263,   106,   238,
     844     107,    -1,   237,   101,   281,   102,   106,   238,   107,    -1,
     845     237,   274,    -1,    30,   301,    -1,    31,   301,    -1,   239,
     846      -1,   238,   239,    -1,   240,   124,    -1,    38,   240,   124,
     847      -1,   241,   124,    -1,    38,   241,   124,    -1,   355,    -1,
     848     355,   263,    -1,   240,   108,   263,    -1,   240,   108,    -1,
     849     216,   242,    -1,   241,   108,   301,   242,    -1,    -1,   244,
     850      -1,   307,   243,    -1,   320,   243,    -1,   346,    -1,    -1,
     851     244,    -1,   109,   154,    -1,    29,   301,    -1,   245,   106,
     852     247,   361,   107,    -1,   245,   263,   106,   247,   361,   107,
     853      -1,   245,   263,    -1,   263,   248,    -1,   247,   108,   263,
     854     248,    -1,    -1,   123,   154,    -1,    -1,   250,    -1,   252,
     855      -1,   251,    -1,   251,   127,   108,   126,   252,    -1,   252,
     856     127,   108,   126,    89,    -1,   251,   127,   108,   126,    89,
     857      -1,   256,    -1,   252,   127,   108,   126,   256,    -1,   251,
     858     127,   108,   126,   256,    -1,   251,   127,   108,   126,   252,
     859     127,   108,   126,   256,    -1,   257,    -1,   252,   127,   108,
     860     126,   257,    -1,    -1,   254,    -1,   255,    -1,   255,   127,
     861     108,   126,    89,    -1,   259,    -1,   258,    -1,   255,   127,
     862     108,   126,   259,    -1,   255,   127,   108,   126,   258,    -1,
     863     258,    -1,   351,   261,   362,    -1,   359,   261,   362,    -1,
     864     218,   359,   261,   362,    -1,   208,    -1,   259,    -1,   351,
     865      -1,   359,    -1,   218,   359,    -1,   360,    -1,   215,   325,
     866     362,    -1,   215,   329,   362,    -1,   215,    -1,   215,   340,
     867      -1,   131,    -1,   260,   108,   131,    -1,   129,    -1,    67,
    867868      -1,    68,    -1,   130,    -1,    67,    -1,    68,    -1,   131,
    868       -1,    67,    -1,    68,    -1,   354,    -1,   215,    -1,   215,
    869      345,    -1,   354,    -1,   359,    -1,   215,    -1,   215,   333,
    870       -1,    -1,   123,   266,    -1,   155,    -1,   106,   267,   360,
    871      107,    -1,   266,    -1,   268,   266,    -1,   267,   108,   266,
    872       -1,   267,   108,   268,   266,    -1,   269,   109,    -1,   262,
    873      109,    -1,   270,    -1,   269,   270,    -1,   105,   262,    -1,
    874      103,   126,   155,   127,   104,    -1,   103,   126,   298,   127,
    875      104,    -1,   103,   126,   154,    89,   154,   127,   104,    -1,
    876      105,   103,   126,   138,   127,   104,    -1,   272,    -1,   221,
    877      272,    -1,   271,   223,    -1,   271,   223,   217,    -1,   273,
    878       -1,   217,   273,    -1,   272,   218,    -1,    68,   101,   280,
    879      102,    -1,   275,   361,    -1,   274,   108,   275,   361,    -1,
    880       -1,   277,   262,   276,   278,    -1,   215,   324,    -1,    32,
    881       -1,    34,    -1,    33,    -1,    -1,   278,   279,    -1,   121,
    882      262,   101,   280,   102,    -1,   121,   106,   126,   286,   107,
    883       -1,   121,   101,   126,   274,   127,   102,   106,   126,   286,
    884      107,   101,   280,   102,    -1,   264,    -1,   155,    -1,   280,
    885      108,   264,    -1,   280,   108,   155,    -1,    32,   282,    -1,
    886      222,    32,   282,    -1,   281,   108,   282,    -1,   283,   278,
    887       -1,   283,   278,   123,   264,    -1,   262,    -1,   261,   101,
    888      126,   274,   127,   102,    -1,    35,   262,   101,   126,   274,
    889      127,   102,   106,   107,    -1,    -1,    35,   262,   101,   126,
    890      274,   127,   102,   106,   285,   286,   107,    -1,   287,    -1,
    891      286,   126,   287,    -1,   288,   127,   124,    -1,   289,   127,
    892      124,    -1,   205,    -1,   207,    -1,   288,   127,   108,   126,
    893      260,    -1,   215,   297,    -1,   289,   127,   108,   126,   297,
    894       -1,    -1,   291,    -1,   293,    -1,   291,   126,   293,    -1,
    895       -1,   291,    -1,   202,    -1,   295,    -1,   189,    -1,    -1,
    896        5,    75,   294,   106,   292,   107,    -1,    38,   293,    -1,
    897      296,    -1,   311,   164,    -1,   315,   126,   198,   164,    -1,
    898      206,   164,    -1,   214,   311,   164,    -1,   217,   311,   164,
    899       -1,   221,   311,   164,    -1,   221,   217,   311,   164,    -1,
    900      214,   315,   126,   198,   164,    -1,   217,   315,   126,   198,
    901      164,    -1,   221,   315,   126,   198,   164,    -1,   221,   217,
    902      315,   126,   198,   164,    -1,   306,    -1,   311,    -1,   319,
    903       -1,   154,   115,   154,    -1,    -1,    57,   101,   133,   102,
    904      300,    -1,    -1,   301,    -1,   302,    -1,   301,   302,    -1,
    905       37,   101,   101,   303,   102,   102,    -1,   304,    -1,   303,
    906      108,   304,    -1,    -1,   305,    -1,   305,   101,   161,   102,
    907       -1,   260,    -1,   224,    -1,   225,    -1,   218,    -1,   307,
    908      300,    -1,   308,    -1,   309,   300,    -1,   310,   300,    -1,
    909      129,    -1,   101,   307,   102,    -1,   111,   306,    -1,   111,
    910      217,   306,    -1,   101,   308,   102,    -1,   307,   337,    -1,
    911      101,   308,   102,   337,    -1,   101,   309,   102,   338,    -1,
    912      101,   309,   102,    -1,   101,   308,   102,   101,   126,   252,
    913      127,   102,    -1,   101,   310,   102,    -1,   312,   300,    -1,
    914      313,    -1,   314,   300,    -1,   307,   101,   126,   252,   127,
    915      102,    -1,   101,   313,   102,   101,   126,   252,   127,   102,
    916       -1,   101,   312,   102,    -1,   111,   311,    -1,   111,   217,
    917      311,    -1,   101,   313,   102,    -1,   101,   313,   102,   337,
    918       -1,   101,   314,   102,   338,    -1,   101,   314,   102,    -1,
    919      316,    -1,   317,    -1,   318,    -1,   307,   101,   259,   102,
    920       -1,   101,   317,   102,   101,   259,   102,    -1,   101,   316,
    921      102,    -1,   111,   315,    -1,   111,   217,   315,    -1,   101,
    922      317,   102,    -1,   101,   317,   102,   337,    -1,   101,   318,
    923      102,   338,    -1,   101,   318,   102,    -1,   320,   300,    -1,
    924      321,    -1,   322,   300,    -1,   323,   300,    -1,   329,    -1,
    925      101,   320,   102,    -1,   111,   319,    -1,   111,   217,   319,
    926       -1,   101,   321,   102,    -1,   320,   337,    -1,   101,   321,
    927      102,   337,    -1,   101,   322,   102,   338,    -1,   101,   322,
    928      102,    -1,   320,   101,   126,   252,   127,   102,    -1,   101,
    929      321,   102,   101,   126,   252,   127,   102,    -1,   101,   323,
    930      102,    -1,   307,   300,    -1,   325,    -1,   326,   300,    -1,
    931      327,   300,    -1,   111,   324,    -1,   111,   217,   324,    -1,
    932      101,   325,   102,    -1,   307,   343,    -1,   101,   325,   102,
    933      337,    -1,   101,   326,   102,   338,    -1,   101,   326,   102,
    934       -1,   307,   101,   126,   252,   127,   102,    -1,   101,   325,
    935      102,   101,   126,   252,   127,   102,    -1,   101,   327,   102,
    936       -1,   329,   300,    -1,   330,    -1,   331,   300,    -1,   332,
    937      300,    -1,    67,    -1,    68,    -1,   111,   328,    -1,   111,
    938      217,   328,    -1,   101,   330,   102,    -1,   329,   343,    -1,
    939      101,   330,   102,   343,    -1,   329,   101,   126,   252,   127,
    940      102,    -1,   101,   330,   102,   101,   126,   252,   127,   102,
    941       -1,   334,    -1,   335,   300,    -1,   336,   300,    -1,   111,
    942       -1,   111,   217,    -1,   111,   333,    -1,   111,   217,   333,
    943       -1,   101,   334,   102,    -1,   337,    -1,   101,   334,   102,
    944      337,    -1,   101,   335,   102,   338,    -1,   101,   335,   102,
    945       -1,   101,   126,   252,   127,   102,    -1,   101,   334,   102,
    946      101,   126,   252,   127,   102,    -1,   101,   336,   102,    -1,
    947      103,   104,    -1,   103,   104,   338,    -1,   338,    -1,   103,
    948      126,   155,   127,   104,    -1,   103,   126,   111,   127,   104,
    949       -1,   338,   103,   126,   155,   127,   104,    -1,   338,   103,
    950      126,   111,   127,   104,    -1,   340,    -1,   341,   300,    -1,
    951      342,   300,    -1,   111,    -1,   111,   217,    -1,   111,   339,
    952       -1,   111,   217,   339,    -1,   101,   340,   102,    -1,   343,
    953       -1,   101,   340,   102,   343,    -1,   101,   341,   102,   338,
    954       -1,   101,   341,   102,    -1,   101,   126,   252,   127,   102,
    955       -1,   101,   340,   102,   101,   126,   252,   127,   102,    -1,
    956      101,   342,   102,    -1,   344,    -1,   344,   338,    -1,   338,
    957       -1,   103,   104,    -1,   103,   126,   217,   111,   127,   104,
    958       -1,   103,   126,   217,   127,   104,    -1,   103,   126,   217,
    959      155,   127,   104,    -1,   103,   126,     7,   216,   155,   127,
    960      104,    -1,   103,   126,   217,     7,   155,   127,   104,    -1,
    961      346,    -1,   347,   300,    -1,   348,   300,    -1,   111,    -1,
    962      111,   217,    -1,   111,   345,    -1,   111,   217,   345,    -1,
    963      101,   346,   102,    -1,   337,    -1,   101,   346,   102,   337,
    964       -1,   101,   347,   102,   338,    -1,   101,   347,   102,    -1,
    965      101,   346,   102,   101,   126,   252,   127,   102,    -1,   101,
    966      348,   102,    -1,   350,    -1,   358,    -1,   217,   358,    -1,
    967      351,    -1,   352,    -1,   111,   215,    -1,   217,   111,   215,
    968       -1,   111,   359,    -1,   217,   111,   359,    -1,   111,   349,
    969       -1,   217,   111,   349,    -1,   103,   104,   215,    -1,   353,
    970      215,    -1,   103,   104,   338,   215,    -1,   353,   338,   215,
    971       -1,   338,   215,    -1,   103,   104,   351,    -1,   353,   351,
    972       -1,   103,   104,   338,   351,    -1,   353,   338,   351,    -1,
    973      338,   351,    -1,   103,   126,   217,   111,   127,   104,    -1,
    974      103,   126,   217,   155,   127,   104,    -1,   103,   126,   221,
    975      155,   127,   104,    -1,   103,   126,   221,   217,   155,   127,
    976      104,    -1,   358,    -1,   217,   358,    -1,   355,    -1,   356,
    977       -1,   357,    -1,   111,   215,    -1,   217,   111,   215,    -1,
    978      111,   359,    -1,   217,   111,   359,    -1,   111,   354,    -1,
    979      217,   111,   354,    -1,   103,   104,   215,    -1,   103,   104,
    980      338,   215,    -1,   338,   215,    -1,   103,   104,   356,    -1,
    981      103,   104,   338,   356,    -1,   338,   356,    -1,   103,   126,
    982      251,   127,   104,    -1,   103,   104,   101,   248,   102,    -1,
    983      358,   101,   126,   248,   127,   102,    -1,   208,   101,   126,
    984      248,   127,   102,    -1,    -1,   108,    -1,    -1,   123,   155,
    985       -1
     869      -1,    67,    -1,    68,    -1,   355,    -1,   216,    -1,   216,
     870     346,    -1,   355,    -1,   360,    -1,   216,    -1,   216,   334,
     871      -1,    -1,   123,   267,    -1,   155,    -1,   106,   268,   361,
     872     107,    -1,   267,    -1,   269,   267,    -1,   268,   108,   267,
     873      -1,   268,   108,   269,   267,    -1,   270,   109,    -1,   263,
     874     109,    -1,   271,    -1,   270,   271,    -1,    73,    -1,   105,
     875     263,    -1,   103,   126,   155,   127,   104,    -1,   103,   126,
     876     299,   127,   104,    -1,   103,   126,   154,    89,   154,   127,
     877     104,    -1,   105,   103,   126,   138,   127,   104,    -1,   273,
     878      -1,   222,   273,    -1,   272,   224,    -1,   272,   224,   218,
     879      -1,   274,    -1,   218,   274,    -1,   273,   219,    -1,    68,
     880     101,   281,   102,    -1,   276,   362,    -1,   275,   108,   276,
     881     362,    -1,    -1,   278,   263,   277,   279,    -1,   216,   325,
     882      -1,    32,    -1,    34,    -1,    33,    -1,    -1,   279,   280,
     883      -1,   121,   263,   101,   281,   102,    -1,   121,   106,   126,
     884     287,   107,    -1,   121,   101,   126,   275,   127,   102,   106,
     885     126,   287,   107,   101,   281,   102,    -1,   265,    -1,   155,
     886      -1,   281,   108,   265,    -1,   281,   108,   155,    -1,    32,
     887     283,    -1,   223,    32,   283,    -1,   282,   108,   283,    -1,
     888     284,   279,    -1,   284,   279,   123,   265,    -1,   263,    -1,
     889     262,   101,   126,   275,   127,   102,    -1,    35,   263,   101,
     890     126,   275,   127,   102,   106,   107,    -1,    -1,    35,   263,
     891     101,   126,   275,   127,   102,   106,   286,   287,   107,    -1,
     892     288,    -1,   287,   126,   288,    -1,   289,   127,   124,    -1,
     893     290,   127,   124,    -1,   206,    -1,   208,    -1,   289,   127,
     894     108,   126,   261,    -1,   216,   298,    -1,   290,   127,   108,
     895     126,   298,    -1,    -1,   292,    -1,   294,    -1,   292,   126,
     896     294,    -1,    -1,   292,    -1,   203,    -1,   296,    -1,   189,
     897      -1,    -1,     5,    75,   295,   106,   293,   107,    -1,    38,
     898     294,    -1,   297,    -1,   312,   164,    -1,   316,   126,   198,
     899     164,    -1,   207,   164,    -1,   215,   312,   164,    -1,   218,
     900     312,   164,    -1,   222,   312,   164,    -1,   222,   218,   312,
     901     164,    -1,   215,   316,   126,   198,   164,    -1,   218,   316,
     902     126,   198,   164,    -1,   222,   316,   126,   198,   164,    -1,
     903     222,   218,   316,   126,   198,   164,    -1,   307,    -1,   312,
     904      -1,   320,    -1,   154,   115,   154,    -1,    -1,    57,   101,
     905     133,   102,   301,    -1,    -1,   302,    -1,   303,    -1,   302,
     906     303,    -1,    37,   101,   101,   304,   102,   102,    -1,   305,
     907      -1,   304,   108,   305,    -1,    -1,   306,    -1,   306,   101,
     908     161,   102,    -1,   261,    -1,   225,    -1,   226,    -1,   219,
     909      -1,   308,   301,    -1,   309,    -1,   310,   301,    -1,   311,
     910     301,    -1,   129,    -1,   101,   308,   102,    -1,   111,   307,
     911      -1,   111,   218,   307,    -1,   101,   309,   102,    -1,   308,
     912     338,    -1,   101,   309,   102,   338,    -1,   101,   310,   102,
     913     339,    -1,   101,   310,   102,    -1,   101,   309,   102,   101,
     914     126,   253,   127,   102,    -1,   101,   311,   102,    -1,   313,
     915     301,    -1,   314,    -1,   315,   301,    -1,   308,   101,   126,
     916     253,   127,   102,    -1,   101,   314,   102,   101,   126,   253,
     917     127,   102,    -1,   101,   313,   102,    -1,   111,   312,    -1,
     918     111,   218,   312,    -1,   101,   314,   102,    -1,   101,   314,
     919     102,   338,    -1,   101,   315,   102,   339,    -1,   101,   315,
     920     102,    -1,   317,    -1,   318,    -1,   319,    -1,   308,   101,
     921     260,   102,    -1,   101,   318,   102,   101,   260,   102,    -1,
     922     101,   317,   102,    -1,   111,   316,    -1,   111,   218,   316,
     923      -1,   101,   318,   102,    -1,   101,   318,   102,   338,    -1,
     924     101,   319,   102,   339,    -1,   101,   319,   102,    -1,   321,
     925     301,    -1,   322,    -1,   323,   301,    -1,   324,   301,    -1,
     926     330,    -1,   101,   321,   102,    -1,   111,   320,    -1,   111,
     927     218,   320,    -1,   101,   322,   102,    -1,   321,   338,    -1,
     928     101,   322,   102,   338,    -1,   101,   323,   102,   339,    -1,
     929     101,   323,   102,    -1,   321,   101,   126,   253,   127,   102,
     930      -1,   101,   322,   102,   101,   126,   253,   127,   102,    -1,
     931     101,   324,   102,    -1,   308,   301,    -1,   326,    -1,   327,
     932     301,    -1,   328,   301,    -1,   111,   325,    -1,   111,   218,
     933     325,    -1,   101,   326,   102,    -1,   308,   344,    -1,   101,
     934     326,   102,   338,    -1,   101,   327,   102,   339,    -1,   101,
     935     327,   102,    -1,   308,   101,   126,   253,   127,   102,    -1,
     936     101,   326,   102,   101,   126,   253,   127,   102,    -1,   101,
     937     328,   102,    -1,   330,   301,    -1,   331,    -1,   332,   301,
     938      -1,   333,   301,    -1,    67,    -1,    68,    -1,   111,   329,
     939      -1,   111,   218,   329,    -1,   101,   331,   102,    -1,   330,
     940     344,    -1,   101,   331,   102,   344,    -1,   330,   101,   126,
     941     253,   127,   102,    -1,   101,   331,   102,   101,   126,   253,
     942     127,   102,    -1,   335,    -1,   336,   301,    -1,   337,   301,
     943      -1,   111,    -1,   111,   218,    -1,   111,   334,    -1,   111,
     944     218,   334,    -1,   101,   335,   102,    -1,   338,    -1,   101,
     945     335,   102,   338,    -1,   101,   336,   102,   339,    -1,   101,
     946     336,   102,    -1,   101,   126,   253,   127,   102,    -1,   101,
     947     335,   102,   101,   126,   253,   127,   102,    -1,   101,   337,
     948     102,    -1,   103,   104,    -1,   103,   104,   339,    -1,   339,
     949      -1,   103,   126,   155,   127,   104,    -1,   103,   126,   111,
     950     127,   104,    -1,   339,   103,   126,   155,   127,   104,    -1,
     951     339,   103,   126,   111,   127,   104,    -1,   341,    -1,   342,
     952     301,    -1,   343,   301,    -1,   111,    -1,   111,   218,    -1,
     953     111,   340,    -1,   111,   218,   340,    -1,   101,   341,   102,
     954      -1,   344,    -1,   101,   341,   102,   344,    -1,   101,   342,
     955     102,   339,    -1,   101,   342,   102,    -1,   101,   126,   253,
     956     127,   102,    -1,   101,   341,   102,   101,   126,   253,   127,
     957     102,    -1,   101,   343,   102,    -1,   345,    -1,   345,   339,
     958      -1,   339,    -1,   103,   104,    -1,   103,   126,   218,   111,
     959     127,   104,    -1,   103,   126,   218,   127,   104,    -1,   103,
     960     126,   218,   155,   127,   104,    -1,   103,   126,     7,   217,
     961     155,   127,   104,    -1,   103,   126,   218,     7,   155,   127,
     962     104,    -1,   347,    -1,   348,   301,    -1,   349,   301,    -1,
     963     111,    -1,   111,   218,    -1,   111,   346,    -1,   111,   218,
     964     346,    -1,   101,   347,   102,    -1,   338,    -1,   101,   347,
     965     102,   338,    -1,   101,   348,   102,   339,    -1,   101,   348,
     966     102,    -1,   101,   347,   102,   101,   126,   253,   127,   102,
     967      -1,   101,   349,   102,    -1,   351,    -1,   359,    -1,   218,
     968     359,    -1,   352,    -1,   353,    -1,   111,   216,    -1,   218,
     969     111,   216,    -1,   111,   360,    -1,   218,   111,   360,    -1,
     970     111,   350,    -1,   218,   111,   350,    -1,   103,   104,   216,
     971      -1,   354,   216,    -1,   103,   104,   339,   216,    -1,   354,
     972     339,   216,    -1,   339,   216,    -1,   103,   104,   352,    -1,
     973     354,   352,    -1,   103,   104,   339,   352,    -1,   354,   339,
     974     352,    -1,   339,   352,    -1,   103,   126,   218,   111,   127,
     975     104,    -1,   103,   126,   218,   155,   127,   104,    -1,   103,
     976     126,   222,   155,   127,   104,    -1,   103,   126,   222,   218,
     977     155,   127,   104,    -1,   359,    -1,   218,   359,    -1,   356,
     978      -1,   357,    -1,   358,    -1,   111,   216,    -1,   218,   111,
     979     216,    -1,   111,   360,    -1,   218,   111,   360,    -1,   111,
     980     355,    -1,   218,   111,   355,    -1,   103,   104,   216,    -1,
     981     103,   104,   339,   216,    -1,   339,   216,    -1,   103,   104,
     982     357,    -1,   103,   104,   339,   357,    -1,   339,   357,    -1,
     983     103,   126,   252,   127,   104,    -1,   103,   104,   101,   249,
     984     102,    -1,   359,   101,   126,   249,   127,   102,    -1,   209,
     985     101,   126,   249,   127,   102,    -1,    -1,   108,    -1,    -1,
     986     123,   155,    -1
    986987};
    987988
     
    991992       0,   288,   288,   294,   303,   304,   305,   309,   310,   311,
    992993     315,   316,   320,   324,   325,   329,   330,   336,   338,   340,
    993      342,   344,   346,   351,   352,   358,   360,   362,   363,   365,
    994      366,   368,   371,   376,   377,   383,   384,   385,   390,   392,
    995      397,   398,   402,   404,   406,   408,   410,   415,   416,   418,
    996      420,   422,   424,   426,   432,   434,   436,   438,   440,   442,
    997      444,   446,   451,   452,   453,   454,   458,   459,   461,   466,
    998      467,   469,   471,   476,   477,   479,   484,   485,   487,   492,
    999      493,   495,   497,   499,   504,   505,   507,   512,   513,   518,
    1000      519,   524,   525,   530,   531,   536,   537,   542,   543,   545,
    1001      547,   552,   557,   558,   560,   562,   568,   569,   575,   577,
    1002      579,   581,   586,   587,   592,   593,   594,   595,   596,   597,
    1003      598,   599,   600,   601,   605,   606,   612,   613,   619,   620,
    1004      621,   622,   623,   624,   625,   626,   630,   637,   639,   649,
    1005      650,   655,   657,   659,   661,   665,   666,   671,   676,   679,
    1006      681,   683,   688,   690,   698,   699,   701,   705,   706,   711,
    1007      712,   717,   718,   722,   727,   728,   732,   734,   740,   741,
    1008      745,   747,   749,   751,   757,   758,   762,   763,   767,   769,
    1009      771,   776,   778,   783,   785,   789,   792,   796,   799,   803,
    1010      805,   807,   812,   814,   816,   825,   827,   829,   834,   836,
    1011      841,   854,   855,   860,   862,   867,   871,   873,   875,   877,
    1012      879,   885,   886,   892,   893,   897,   898,   903,   905,   911,
    1013      912,   914,   919,   921,   928,   930,   934,   935,   940,   942,
    1014      946,   947,   951,   953,   957,   958,   962,   963,   967,   968,
    1015      983,   984,   985,   986,   987,   991,   996,  1003,  1013,  1018,
    1016     1023,  1031,  1036,  1041,  1046,  1051,  1059,  1081,  1086,  1093,
    1017     1095,  1102,  1107,  1112,  1123,  1128,  1133,  1138,  1143,  1152,
    1018     1157,  1165,  1166,  1167,  1168,  1174,  1179,  1187,  1188,  1189,
    1019     1190,  1194,  1195,  1196,  1197,  1202,  1203,  1212,  1213,  1218,
    1020     1219,  1224,  1226,  1228,  1230,  1232,  1235,  1234,  1246,  1247,
    1021     1249,  1259,  1260,  1265,  1269,  1271,  1273,  1275,  1277,  1279,
    1022     1281,  1283,  1288,  1290,  1292,  1294,  1296,  1298,  1300,  1302,
    1023     1304,  1306,  1308,  1310,  1316,  1317,  1319,  1321,  1323,  1328,
    1024     1329,  1335,  1336,  1338,  1340,  1345,  1347,  1349,  1351,  1356,
    1025     1357,  1359,  1361,  1366,  1367,  1369,  1374,  1375,  1377,  1379,
    1026     1384,  1386,  1388,  1393,  1394,  1398,  1400,  1402,  1404,  1406,
    1027     1411,  1413,  1418,  1420,  1425,  1426,  1428,  1429,  1434,  1435,
    1028     1437,  1439,  1444,  1446,  1452,  1453,  1455,  1458,  1461,  1466,
    1029     1467,  1472,  1477,  1481,  1483,  1485,  1490,  1492,  1498,  1499,
    1030     1507,  1508,  1512,  1513,  1514,  1516,  1518,  1525,  1526,  1528,
    1031     1530,  1535,  1536,  1542,  1543,  1547,  1548,  1553,  1554,  1555,
    1032     1557,  1565,  1566,  1568,  1571,  1573,  1577,  1578,  1579,  1581,
    1033     1583,  1587,  1592,  1600,  1601,  1610,  1612,  1617,  1618,  1619,
    1034     1623,  1624,  1625,  1629,  1630,  1631,  1635,  1636,  1637,  1642,
    1035     1643,  1644,  1645,  1651,  1652,  1657,  1658,  1662,  1663,  1664,
    1036     1665,  1680,  1681,  1686,  1687,  1693,  1695,  1698,  1700,  1702,
    1037     1725,  1726,  1728,  1730,  1735,  1736,  1738,  1743,  1748,  1749,
    1038     1755,  1754,  1758,  1762,  1764,  1766,  1772,  1773,  1778,  1783,
    1039     1785,  1790,  1792,  1793,  1795,  1800,  1802,  1804,  1809,  1811,
    1040     1816,  1821,  1829,  1835,  1834,  1848,  1849,  1854,  1855,  1859,
    1041     1864,  1869,  1877,  1882,  1893,  1894,  1905,  1906,  1912,  1913,
    1042     1917,  1918,  1919,  1922,  1921,  1932,  1937,  1942,  1948,  1957,
    1043     1963,  1969,  1975,  1981,  1989,  1995,  2003,  2009,  2018,  2019,
    1044     2020,  2024,  2028,  2030,  2035,  2036,  2040,  2041,  2046,  2052,
    1045     2053,  2056,  2058,  2059,  2063,  2064,  2065,  2066,  2100,  2102,
    1046     2103,  2105,  2110,  2115,  2120,  2122,  2124,  2129,  2131,  2133,
    1047     2135,  2140,  2142,  2152,  2154,  2155,  2160,  2162,  2164,  2169,
    1048     2171,  2173,  2178,  2180,  2182,  2191,  2192,  2193,  2197,  2199,
    1049     2201,  2206,  2208,  2210,  2215,  2217,  2219,  2234,  2236,  2237,
    1050     2239,  2244,  2245,  2250,  2252,  2254,  2259,  2261,  2263,  2265,
    1051     2270,  2272,  2274,  2284,  2286,  2287,  2289,  2294,  2296,  2298,
    1052     2303,  2305,  2307,  2309,  2314,  2316,  2318,  2349,  2351,  2352,
    1053     2354,  2359,  2364,  2372,  2374,  2376,  2381,  2383,  2388,  2390,
    1054     2404,  2405,  2407,  2412,  2414,  2416,  2418,  2420,  2425,  2426,
    1055     2428,  2430,  2435,  2437,  2439,  2445,  2447,  2449,  2453,  2455,
    1056     2457,  2459,  2473,  2474,  2476,  2481,  2483,  2485,  2487,  2489,
    1057     2494,  2495,  2497,  2499,  2504,  2506,  2508,  2514,  2515,  2517,
    1058     2526,  2529,  2531,  2534,  2536,  2538,  2551,  2552,  2554,  2559,
    1059     2561,  2563,  2565,  2567,  2572,  2573,  2575,  2577,  2582,  2584,
    1060     2592,  2593,  2594,  2599,  2600,  2604,  2606,  2608,  2610,  2612,
    1061     2614,  2621,  2623,  2625,  2627,  2629,  2631,  2633,  2635,  2637,
    1062     2639,  2644,  2646,  2648,  2653,  2679,  2680,  2682,  2686,  2687,
    1063     2691,  2693,  2695,  2697,  2699,  2701,  2708,  2710,  2712,  2714,
    1064     2716,  2718,  2723,  2728,  2730,  2732,  2750,  2752,  2757,  2758
     994     342,   347,   348,   354,   356,   358,   359,   361,   362,   364,
     995     367,   372,   373,   379,   380,   381,   386,   388,   393,   394,
     996     398,   400,   402,   404,   406,   411,   414,   416,   418,   420,
     997     422,   424,   426,   428,   434,   436,   438,   440,   442,   444,
     998     446,   448,   453,   454,   455,   456,   460,   461,   463,   468,
     999     469,   471,   473,   478,   479,   481,   486,   487,   489,   494,
     1000     495,   497,   499,   501,   506,   507,   509,   514,   515,   520,
     1001     521,   526,   527,   532,   533,   538,   539,   544,   545,   547,
     1002     549,   554,   559,   560,   562,   564,   570,   571,   577,   579,
     1003     581,   583,   588,   589,   594,   595,   596,   597,   598,   599,
     1004     600,   601,   602,   603,   607,   608,   614,   615,   621,   622,
     1005     623,   624,   625,   626,   627,   628,   632,   639,   641,   651,
     1006     652,   657,   659,   661,   663,   667,   668,   673,   678,   681,
     1007     683,   685,   690,   692,   700,   701,   703,   707,   708,   713,
     1008     714,   719,   720,   724,   729,   730,   734,   736,   742,   743,
     1009     747,   749,   751,   753,   759,   760,   764,   765,   769,   771,
     1010     773,   778,   780,   785,   787,   791,   794,   798,   801,   805,
     1011     807,   809,   814,   816,   818,   827,   829,   831,   836,   838,
     1012     843,   856,   857,   862,   864,   869,   873,   875,   877,   879,
     1013     881,   887,   888,   894,   895,   899,   900,   905,   907,   913,
     1014     914,   916,   921,   923,   930,   932,   936,   937,   942,   944,
     1015     948,   949,   953,   955,   959,   960,   964,   965,   969,   970,
     1016     985,   986,   987,   988,   989,   993,   998,  1005,  1015,  1020,
     1017    1025,  1033,  1038,  1043,  1048,  1053,  1061,  1083,  1088,  1095,
     1018    1097,  1104,  1109,  1114,  1125,  1130,  1135,  1140,  1145,  1154,
     1019    1159,  1167,  1168,  1169,  1170,  1176,  1181,  1189,  1190,  1191,
     1020    1192,  1196,  1197,  1198,  1199,  1204,  1205,  1214,  1215,  1220,
     1021    1221,  1226,  1228,  1230,  1232,  1234,  1237,  1236,  1248,  1249,
     1022    1251,  1261,  1262,  1267,  1271,  1273,  1275,  1277,  1279,  1281,
     1023    1283,  1285,  1290,  1292,  1294,  1296,  1298,  1300,  1302,  1304,
     1024    1306,  1308,  1310,  1312,  1318,  1319,  1321,  1323,  1325,  1330,
     1025    1331,  1337,  1338,  1340,  1342,  1347,  1349,  1351,  1353,  1358,
     1026    1359,  1361,  1363,  1368,  1369,  1371,  1376,  1377,  1379,  1381,
     1027    1386,  1388,  1390,  1395,  1396,  1400,  1402,  1404,  1406,  1408,
     1028    1413,  1415,  1420,  1422,  1427,  1428,  1430,  1431,  1436,  1437,
     1029    1439,  1441,  1446,  1448,  1454,  1455,  1457,  1460,  1463,  1468,
     1030    1469,  1474,  1479,  1483,  1485,  1487,  1492,  1494,  1500,  1501,
     1031    1509,  1510,  1514,  1515,  1516,  1518,  1520,  1527,  1528,  1530,
     1032    1532,  1537,  1538,  1544,  1545,  1549,  1550,  1555,  1556,  1557,
     1033    1559,  1567,  1568,  1570,  1573,  1575,  1579,  1580,  1581,  1583,
     1034    1585,  1589,  1594,  1602,  1603,  1612,  1614,  1619,  1620,  1621,
     1035    1625,  1626,  1627,  1631,  1632,  1633,  1637,  1638,  1639,  1644,
     1036    1645,  1646,  1647,  1653,  1654,  1659,  1660,  1664,  1665,  1666,
     1037    1667,  1682,  1683,  1688,  1689,  1696,  1698,  1700,  1703,  1705,
     1038    1707,  1730,  1731,  1733,  1735,  1740,  1741,  1743,  1748,  1753,
     1039    1754,  1760,  1759,  1763,  1767,  1769,  1771,  1777,  1778,  1783,
     1040    1788,  1790,  1795,  1797,  1798,  1800,  1805,  1807,  1809,  1814,
     1041    1816,  1821,  1826,  1834,  1840,  1839,  1853,  1854,  1859,  1860,
     1042    1864,  1869,  1874,  1882,  1887,  1898,  1899,  1910,  1911,  1917,
     1043    1918,  1922,  1923,  1924,  1927,  1926,  1937,  1942,  1947,  1953,
     1044    1962,  1968,  1974,  1980,  1986,  1994,  2000,  2008,  2014,  2023,
     1045    2024,  2025,  2029,  2033,  2035,  2040,  2041,  2045,  2046,  2051,
     1046    2057,  2058,  2061,  2063,  2064,  2068,  2069,  2070,  2071,  2105,
     1047    2107,  2108,  2110,  2115,  2120,  2125,  2127,  2129,  2134,  2136,
     1048    2138,  2140,  2145,  2147,  2157,  2159,  2160,  2165,  2167,  2169,
     1049    2174,  2176,  2178,  2183,  2185,  2187,  2196,  2197,  2198,  2202,
     1050    2204,  2206,  2211,  2213,  2215,  2220,  2222,  2224,  2239,  2241,
     1051    2242,  2244,  2249,  2250,  2255,  2257,  2259,  2264,  2266,  2268,
     1052    2270,  2275,  2277,  2279,  2289,  2291,  2292,  2294,  2299,  2301,
     1053    2303,  2308,  2310,  2312,  2314,  2319,  2321,  2323,  2354,  2356,
     1054    2357,  2359,  2364,  2369,  2377,  2379,  2381,  2386,  2388,  2393,
     1055    2395,  2409,  2410,  2412,  2417,  2419,  2421,  2423,  2425,  2430,
     1056    2431,  2433,  2435,  2440,  2442,  2444,  2450,  2452,  2454,  2458,
     1057    2460,  2462,  2464,  2478,  2479,  2481,  2486,  2488,  2490,  2492,
     1058    2494,  2499,  2500,  2502,  2504,  2509,  2511,  2513,  2519,  2520,
     1059    2522,  2531,  2534,  2536,  2539,  2541,  2543,  2556,  2557,  2559,
     1060    2564,  2566,  2568,  2570,  2572,  2577,  2578,  2580,  2582,  2587,
     1061    2589,  2597,  2598,  2599,  2604,  2605,  2609,  2611,  2613,  2615,
     1062    2617,  2619,  2626,  2628,  2630,  2632,  2634,  2636,  2638,  2640,
     1063    2642,  2644,  2649,  2651,  2653,  2658,  2684,  2685,  2687,  2691,
     1064    2692,  2696,  2698,  2700,  2702,  2704,  2706,  2713,  2715,  2717,
     1065    2719,  2721,  2723,  2728,  2733,  2735,  2737,  2755,  2757,  2762,
     1066    2763
    10651067};
    10661068#endif
     
    11131115  "asm_operand", "asm_clobbers_list_opt", "label_list",
    11141116  "declaration_list_opt", "declaration_list", "old_declaration_list_opt",
    1115   "old_declaration_list", "label_declaration_opt",
    1116   "label_declaration_list", "declaration", "new_declaration",
    1117   "new_variable_declaration", "new_variable_specifier",
     1117  "old_declaration_list", "local_label_declaration_opt",
     1118  "local_label_declaration_list", "local_label_list", "declaration",
     1119  "new_declaration", "new_variable_declaration", "new_variable_specifier",
    11181120  "new_function_declaration", "new_function_specifier",
    11191121  "new_function_return", "new_typedef_declaration", "typedef_declaration",
     
    12041206       0,   125,   126,   127,   128,   128,   128,   129,   129,   129,
    12051207     130,   130,   131,   132,   132,   133,   133,   134,   134,   134,
    1206      134,   134,   134,   135,   135,   135,   135,   135,   135,   135,
    1207      135,   135,   135,   136,   136,   137,   137,   137,   137,   137,
    1208      138,   138,   139,   139,   139,   139,   139,   140,   140,   140,
     1208     134,   135,   135,   135,   135,   135,   135,   135,   135,   135,
     1209     135,   136,   136,   137,   137,   137,   137,   137,   138,   138,
     1210     139,   139,   139,   139,   139,   140,   140,   140,   140,   140,
    12091211     140,   140,   140,   140,   140,   140,   140,   140,   140,   140,
    12101212     140,   140,   141,   141,   141,   141,   142,   142,   142,   143,
     
    12251227     189,   190,   190,   191,   191,   192,   192,   193,   193,   194,
    12261228     194,   194,   195,   195,   196,   196,   197,   197,   198,   198,
    1227      199,   199,   200,   200,   201,   201,   195,   195,   202,   202,
    1228      203,   203,   203,   203,   203,   204,   204,   204,   205,   205,
    1229      205,   206,   206,   206,   206,   206,   207,   207,   207,   208,
    1230      208,   209,   209,   209,   210,   210,   210,   210,   210,   211,
    1231      211,   212,   212,   212,   212,   213,   213,   214,   214,   214,
    1232      214,   215,   215,   215,   215,   216,   216,   217,   217,   218,
    1233      218,   219,   219,   219,   219,   219,   220,   219,   221,   221,
    1234      221,   222,   222,   223,   224,   224,   224,   224,   224,   224,
    1235      224,   224,   225,   225,   225,   225,   225,   225,   225,   225,
    1236      225,   225,   225,   225,   226,   226,   226,   226,   226,   227,
    1237      227,   228,   228,   228,   228,   229,   229,   229,   229,   230,
    1238      230,   230,   230,   231,   231,   231,   232,   232,   232,   232,
    1239      233,   233,   233,   234,   234,   235,   235,   235,   235,   235,
    1240      236,   236,   237,   237,   238,   238,   238,   238,   239,   239,
    1241      239,   239,   240,   240,   241,   241,   241,   241,   241,   242,
    1242      242,   243,   244,   245,   245,   245,   246,   246,   247,   247,
    1243      248,   248,   249,   249,   249,   249,   249,   250,   250,   250,
    1244      250,   251,   251,   252,   252,   253,   253,   254,   254,   254,
    1245      254,   255,   255,   255,   255,   255,   256,   256,   256,   256,
    1246      256,   257,   257,   258,   258,   259,   259,   260,   260,   260,
    1247      261,   261,   261,   262,   262,   262,   263,   263,   263,   264,
    1248      264,   264,   264,   265,   265,   266,   266,   267,   267,   267,
    1249      267,   268,   268,   269,   269,   270,   270,   270,   270,   270,
    1250      271,   271,   271,   271,   272,   272,   272,   273,   274,   274,
    1251      276,   275,   275,   277,   277,   277,   278,   278,   279,   279,
    1252      279,   280,   280,   280,   280,   281,   281,   281,   282,   282,
    1253      283,   283,   284,   285,   284,   286,   286,   287,   287,   288,
    1254      288,   288,   289,   289,   290,   290,   291,   291,   292,   292,
    1255      293,   293,   293,   294,   293,   293,   295,   295,   295,   296,
    1256      296,   296,   296,   296,   296,   296,   296,   296,   297,   297,
    1257      297,   298,   299,   299,   300,   300,   301,   301,   302,   303,
    1258      303,   304,   304,   304,   305,   305,   305,   305,   306,   306,
    1259      306,   306,   307,   307,   308,   308,   308,   309,   309,   309,
    1260      309,   310,   310,   311,   311,   311,   312,   312,   312,   313,
    1261      313,   313,   314,   314,   314,   315,   315,   315,   316,   316,
    1262      316,   317,   317,   317,   318,   318,   318,   319,   319,   319,
    1263      319,   320,   320,   321,   321,   321,   322,   322,   322,   322,
    1264      323,   323,   323,   324,   324,   324,   324,   325,   325,   325,
    1265      326,   326,   326,   326,   327,   327,   327,   328,   328,   328,
    1266      328,   329,   329,   330,   330,   330,   331,   331,   332,   332,
    1267      333,   333,   333,   334,   334,   334,   334,   334,   335,   335,
    1268      335,   335,   336,   336,   336,   337,   337,   337,   338,   338,
    1269      338,   338,   339,   339,   339,   340,   340,   340,   340,   340,
    1270      341,   341,   341,   341,   342,   342,   342,   343,   343,   343,
    1271      344,   344,   344,   344,   344,   344,   345,   345,   345,   346,
    1272      346,   346,   346,   346,   347,   347,   347,   347,   348,   348,
    1273      349,   349,   349,   350,   350,   351,   351,   351,   351,   351,
    1274      351,   352,   352,   352,   352,   352,   352,   352,   352,   352,
    1275      352,   353,   353,   353,   353,   354,   354,   354,   355,   355,
    1276      356,   356,   356,   356,   356,   356,   357,   357,   357,   357,
    1277      357,   357,   358,   359,   359,   359,   360,   360,   361,   361
     1229     199,   199,   200,   200,   201,   201,   202,   202,   203,   203,
     1230     204,   204,   204,   204,   204,   205,   205,   205,   206,   206,
     1231     206,   207,   207,   207,   207,   207,   208,   208,   208,   209,
     1232     209,   210,   210,   210,   211,   211,   211,   211,   211,   212,
     1233     212,   213,   213,   213,   213,   214,   214,   215,   215,   215,
     1234     215,   216,   216,   216,   216,   217,   217,   218,   218,   219,
     1235     219,   220,   220,   220,   220,   220,   221,   220,   222,   222,
     1236     222,   223,   223,   224,   225,   225,   225,   225,   225,   225,
     1237     225,   225,   226,   226,   226,   226,   226,   226,   226,   226,
     1238     226,   226,   226,   226,   227,   227,   227,   227,   227,   228,
     1239     228,   229,   229,   229,   229,   230,   230,   230,   230,   231,
     1240     231,   231,   231,   232,   232,   232,   233,   233,   233,   233,
     1241     234,   234,   234,   235,   235,   236,   236,   236,   236,   236,
     1242     237,   237,   238,   238,   239,   239,   239,   239,   240,   240,
     1243     240,   240,   241,   241,   242,   242,   242,   242,   242,   243,
     1244     243,   244,   245,   246,   246,   246,   247,   247,   248,   248,
     1245     249,   249,   250,   250,   250,   250,   250,   251,   251,   251,
     1246     251,   252,   252,   253,   253,   254,   254,   255,   255,   255,
     1247     255,   256,   256,   256,   256,   256,   257,   257,   257,   257,
     1248     257,   258,   258,   259,   259,   260,   260,   261,   261,   261,
     1249     262,   262,   262,   263,   263,   263,   264,   264,   264,   265,
     1250     265,   265,   265,   266,   266,   267,   267,   268,   268,   268,
     1251     268,   269,   269,   270,   270,   271,   271,   271,   271,   271,
     1252     271,   272,   272,   272,   272,   273,   273,   273,   274,   275,
     1253     275,   277,   276,   276,   278,   278,   278,   279,   279,   280,
     1254     280,   280,   281,   281,   281,   281,   282,   282,   282,   283,
     1255     283,   284,   284,   285,   286,   285,   287,   287,   288,   288,
     1256     289,   289,   289,   290,   290,   291,   291,   292,   292,   293,
     1257     293,   294,   294,   294,   295,   294,   294,   296,   296,   296,
     1258     297,   297,   297,   297,   297,   297,   297,   297,   297,   298,
     1259     298,   298,   299,   300,   300,   301,   301,   302,   302,   303,
     1260     304,   304,   305,   305,   305,   306,   306,   306,   306,   307,
     1261     307,   307,   307,   308,   308,   309,   309,   309,   310,   310,
     1262     310,   310,   311,   311,   312,   312,   312,   313,   313,   313,
     1263     314,   314,   314,   315,   315,   315,   316,   316,   316,   317,
     1264     317,   317,   318,   318,   318,   319,   319,   319,   320,   320,
     1265     320,   320,   321,   321,   322,   322,   322,   323,   323,   323,
     1266     323,   324,   324,   324,   325,   325,   325,   325,   326,   326,
     1267     326,   327,   327,   327,   327,   328,   328,   328,   329,   329,
     1268     329,   329,   330,   330,   331,   331,   331,   332,   332,   333,
     1269     333,   334,   334,   334,   335,   335,   335,   335,   335,   336,
     1270     336,   336,   336,   337,   337,   337,   338,   338,   338,   339,
     1271     339,   339,   339,   340,   340,   340,   341,   341,   341,   341,
     1272     341,   342,   342,   342,   342,   343,   343,   343,   344,   344,
     1273     344,   345,   345,   345,   345,   345,   345,   346,   346,   346,
     1274     347,   347,   347,   347,   347,   348,   348,   348,   348,   349,
     1275     349,   350,   350,   350,   351,   351,   352,   352,   352,   352,
     1276     352,   352,   353,   353,   353,   353,   353,   353,   353,   353,
     1277     353,   353,   354,   354,   354,   354,   355,   355,   355,   356,
     1278     356,   357,   357,   357,   357,   357,   357,   358,   358,   358,
     1279     358,   358,   358,   359,   360,   360,   360,   361,   361,   362,
     1280     362
    12781281};
    12791282
     
    12821285{
    12831286       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    1284        1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
    1285        1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
    1286        2,     2,     7,     1,     3,     0,     1,     3,     7,     9,
    1287        1,     3,     1,     3,     7,     3,     7,     1,     2,     2,
     1287       1,     1,     1,     1,     1,     1,     2,     1,     1,     3,
     1288       3,     1,     6,     4,     3,     7,     3,     7,     2,     2,
     1289       7,     1,     3,     0,     1,     3,     7,     9,     1,     3,
     1290       1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
    12881291       2,     2,     2,     2,     2,     4,     1,     4,     4,     2,
    12891292       4,     2,     1,     1,     1,     1,     1,     4,     4,     1,
     
    13261329       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    13271330       1,     1,     2,     0,     2,     1,     4,     1,     2,     3,
    1328        4,     2,     2,     1,     2,     2,     5,     5,     7,     6,
    1329        1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
    1330        0,     4,     2,     1,     1,     1,     0,     2,     5,     5,
    1331       13,     1,     1,     3,     3,     2,     3,     3,     2,     4,
    1332        1,     6,     9,     0,    11,     1,     3,     3,     3,     1,
    1333        1,     5,     2,     5,     0,     1,     1,     3,     0,     1,
    1334        1,     1,     1,     0,     6,     2,     1,     2,     4,     2,
    1335        3,     3,     3,     4,     5,     5,     5,     6,     1,     1,
    1336        1,     3,     0,     5,     0,     1,     1,     2,     6,     1,
    1337        3,     0,     1,     4,     1,     1,     1,     1,     2,     1,
     1331       4,     2,     2,     1,     2,     1,     2,     5,     5,     7,
     1332       6,     1,     2,     2,     3,     1,     2,     2,     4,     2,
     1333       4,     0,     4,     2,     1,     1,     1,     0,     2,     5,
     1334       5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
     1335       4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
     1336       1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
     1337       1,     1,     1,     1,     0,     6,     2,     1,     2,     4,
     1338       2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
     1339       1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
     1340       1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
     1341       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
     1342       4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
     1343       2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
     1344       6,     3,     2,     3,     3,     4,     4,     3,     2,     1,
    13381345       2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
    1339        3,     8,     3,     2,     1,     2,     6,     8,     3,     2,
    1340        3,     3,     4,     4,     3,     1,     1,     1,     4,     6,
    1341        3,     2,     3,     3,     4,     4,     3,     2,     1,     2,
    1342        2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
    1343        6,     8,     3,     2,     1,     2,     2,     2,     3,     3,
    1344        2,     4,     4,     3,     6,     8,     3,     2,     1,     2,
    1345        2,     1,     1,     2,     3,     3,     2,     4,     6,     8,
    1346        1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
    1347        4,     3,     5,     8,     3,     2,     3,     1,     5,     5,
    1348        6,     6,     1,     2,     2,     1,     2,     2,     3,     3,
    1349        1,     4,     4,     3,     5,     8,     3,     1,     2,     1,
    1350        2,     6,     5,     6,     7,     7,     1,     2,     2,     1,
    1351        2,     2,     3,     3,     1,     4,     4,     3,     8,     3,
    1352        1,     1,     2,     1,     1,     2,     3,     2,     3,     2,
    1353        3,     3,     2,     4,     3,     2,     3,     2,     4,     3,
    1354        2,     6,     6,     6,     7,     1,     2,     1,     1,     1,
    1355        2,     3,     2,     3,     2,     3,     3,     4,     2,     3,
    1356        4,     2,     5,     5,     6,     6,     0,     1,     0,     2
     1346       3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
     1347       3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1348       2,     2,     1,     1,     2,     3,     3,     2,     4,     6,
     1349       8,     1,     2,     2,     1,     2,     2,     3,     3,     1,
     1350       4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
     1351       5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
     1352       3,     1,     4,     4,     3,     5,     8,     3,     1,     2,
     1353       1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
     1354       1,     2,     2,     3,     3,     1,     4,     4,     3,     8,
     1355       3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
     1356       2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
     1357       3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
     1358       1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
     1359       3,     4,     2,     5,     5,     6,     6,     0,     1,     0,
     1360       2
    13571361};
    13581362
     
    13641368     285,   285,   306,   304,   307,   305,   308,   309,   291,   293,
    13651369     292,     0,   294,   320,   312,   317,   315,   316,   314,   313,
    1366      318,   319,   321,   322,   323,   534,   534,   534,     0,     0,
     1370     318,   319,   321,   322,   323,   535,   535,   535,     0,     0,
    13671371       0,   285,   211,   295,   310,   311,     7,   350,     0,     8,
    1368       13,    14,     0,     2,   285,   552,     9,   512,   510,   238,
     1372      13,    14,     0,     2,   285,   553,     9,   513,   511,   238,
    13691373       3,   443,     3,   251,     0,     3,     3,     3,   239,     3,
    13701374       0,     0,     0,   286,   287,   289,   285,   298,   301,   303,
    13711375     331,   277,   324,   329,   278,   339,   279,   346,   343,   353,
    1372        0,     0,   354,   280,   460,   464,     3,     3,     0,     2,
    1373      506,   511,   516,   290,     0,     0,   534,   564,   534,     2,
    1374      575,   576,   577,   285,     0,   718,   719,     0,    12,   285,
    1375        0,   261,   262,     0,   286,   281,   282,   283,   284,   513,
    1376      296,   382,   535,   536,   360,   361,    12,   434,   435,    11,
    1377      430,   433,     0,   490,   485,   476,   434,   435,     0,     0,
    1378      515,   212,     0,   285,     0,     0,     0,     0,     0,     0,
    1379        0,     0,   285,   285,     2,     0,   720,   286,   569,   581,
    1380      724,   717,   715,   722,     0,     0,   245,     2,     0,   519,
    1381      428,   429,   427,     0,     0,     0,     0,   534,     0,   621,
    1382      622,     0,     0,   532,   528,   534,   549,   534,   534,   529,
    1383        2,   530,   534,   588,   534,   534,   591,     0,     0,     0,
     1376       0,     0,   354,   280,   461,   465,     3,     3,     0,     2,
     1377     507,   512,   517,   290,     0,     0,   535,   565,   535,     2,
     1378     576,   577,   578,   285,     0,   719,   720,     0,    12,   285,
     1379       0,   261,   262,     0,   286,   281,   282,   283,   284,   514,
     1380     296,   382,   536,   537,   360,   361,    12,   434,   435,    11,
     1381     430,   433,     0,   491,   486,   477,   434,   435,     0,     0,
     1382     516,   212,     0,   285,     0,     0,     0,     0,     0,     0,
     1383       0,     0,   285,   285,     2,     0,   721,   286,   570,   582,
     1384     725,   718,   716,   723,     0,     0,   245,     2,     0,   520,
     1385     428,   429,   427,     0,     0,     0,     0,   535,     0,   622,
     1386     623,     0,     0,   533,   529,   535,   550,   535,   535,   530,
     1387       2,   531,   535,   589,   535,   535,   592,     0,     0,     0,
    13841388     285,   285,   304,   351,     2,   285,   252,   288,   299,   332,
    1385      344,   465,     0,     2,     0,   443,   253,   286,   325,   340,
    1386      347,   461,     0,     2,     0,   302,   326,   333,   334,     0,
     1389     344,   466,     0,     2,     0,   443,   253,   286,   325,   340,
     1390     347,   462,     0,     2,     0,   302,   326,   333,   334,     0,
    13871391     341,   345,   348,   352,   435,   285,   285,   356,   359,     0,
    1388      385,   462,   466,     0,     0,     0,     1,   285,     2,   517,
    1389      563,   565,   285,     2,   728,   286,   731,   532,   532,   286,
    1390        0,     0,     0,   264,   534,   529,     2,   285,     0,     0,
    1391      285,   537,     2,   488,     2,   541,     0,     0,     0,     0,
     1392     385,   463,   467,     0,     0,     0,     1,   285,     2,   518,
     1393     564,   566,   285,     2,   729,   286,   732,   533,   533,   286,
     1394       0,     0,     0,   264,   535,   530,     2,   285,     0,     0,
     1395     285,   538,     2,   489,     2,   542,     0,     0,     0,     0,
    13921396       0,    17,    56,     4,     5,     6,    15,     0,     0,     0,
    1393      285,     2,     0,   285,    62,    63,    64,    65,    19,    18,
    1394       20,    23,    47,    66,     0,    69,    73,    76,    79,    84,
    1395       87,    89,    91,    93,    95,    97,   102,   482,   738,   441,
    1396      481,     0,   439,   440,     0,   553,   568,   571,   574,   580,
    1397      583,   586,   350,     0,     2,   726,     0,   285,   729,     2,
     1397     285,     2,     0,   285,    62,    63,    64,    65,    46,    18,
     1398      47,    21,    45,    66,     0,    69,    73,    76,    79,    84,
     1399      87,    89,    91,    93,    95,    97,   102,   483,   739,   441,
     1400     482,     0,   439,   440,     0,   554,   569,   572,   575,   581,
     1401     584,   587,   350,     0,     2,   727,     0,   285,   730,     2,
    13981402     285,     3,   415,     0,   423,   286,   285,   298,   324,   278,
    1399      339,   346,     3,     3,   397,   401,   411,   416,   460,   285,
    1400      417,   693,   694,   285,   418,   420,   285,     2,   570,   582,
    1401      716,     2,     2,   240,     2,     0,     0,   445,   444,   137,
     1403     339,   346,     3,     3,   397,   401,   411,   416,   461,   285,
     1404     417,   694,   695,   285,   418,   420,   285,     2,   571,   583,
     1405     717,     2,     2,   240,     2,     0,     0,   445,   444,   137,
    14021406       2,     2,   242,     2,     2,   241,     2,   272,     2,   273,
    14031407       0,   271,     0,     0,     0,     0,     0,     0,     0,     0,
    1404        0,   554,   593,     0,   443,     2,   548,   557,   647,   550,
    1405      551,   520,   285,     2,   587,   596,   589,   590,     0,   267,
    1406      285,   285,   330,   286,     0,   286,     0,   285,   721,   725,
    1407      723,   521,   285,   532,   246,   254,   300,     0,     2,   522,
    1408      285,   486,   327,   328,   274,   342,   349,     0,   285,     2,
    1409      374,   285,   362,     0,     0,   368,   715,   285,   736,   388,
    1410        0,   463,   487,   243,   244,   507,   285,   425,     0,   285,
     1408       0,   555,   594,     0,   443,     2,   549,   558,   648,   551,
     1409     552,   521,   285,     2,   588,   597,   590,   591,     0,   267,
     1410     285,   285,   330,   286,     0,   286,     0,   285,   722,   726,
     1411     724,   522,   285,   533,   246,   254,   300,     0,     2,   523,
     1412     285,   487,   327,   328,   274,   342,   349,     0,   285,     2,
     1413     374,   285,   362,     0,     0,   368,   716,   285,   737,   388,
     1414       0,   464,   488,   243,   244,   508,   285,   425,     0,   285,
    14111415     228,     0,     2,   230,     0,   286,     0,   248,     2,   249,
    1412      269,     0,     0,     2,   285,   532,   285,   473,   475,   474,
    1413        0,     0,   738,     0,   285,     0,   285,   477,   285,   547,
    1414      545,   546,   544,     0,   539,   542,     0,     0,   285,    54,
     1416     269,     0,     0,     2,   285,   533,   285,   474,   476,   475,
     1417       0,     0,   739,     0,   285,     0,   285,   478,   285,   548,
     1418     546,   547,   545,     0,   540,   543,     0,     0,   285,    54,
    14151419      66,    50,   285,    59,   285,   285,    48,    49,    61,     2,
    14161420     124,     0,     0,   437,     0,   436,   108,   285,    52,    53,
    1417       16,     0,    30,    31,    35,     2,     0,   114,   115,   116,
     1421      16,     0,    28,    29,    33,     2,     0,   114,   115,   116,
    14181422     117,   118,   119,   120,   121,   122,   123,     0,     0,    51,
    14191423       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    14201424       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1421      105,     2,   633,   442,   630,   534,   534,   638,   467,   285,
    1422        2,   572,   573,     0,   584,   585,     0,     2,   727,   730,
    1423      108,   285,     2,   285,     0,   695,   286,   699,   690,   691,
    1424      697,     0,     2,     2,   655,   534,   738,   604,   534,   534,
    1425      738,   534,   618,   534,   534,   669,   424,   652,   534,   534,
    1426      660,   667,   285,   419,   286,     0,     0,   285,   705,   286,
    1427      710,   738,   702,   285,   707,   738,   285,   285,   285,     0,
    1428      108,     0,    17,     2,     0,     0,   447,   736,     0,     0,
    1429      453,   232,     0,   285,     0,     0,     0,   532,   556,   560,
    1430      562,   592,   595,   599,   602,   555,   594,     0,   275,   645,
    1431        0,   285,   268,     0,     0,     0,     0,   266,     2,     0,
    1432      250,   523,   285,     0,     0,     0,     0,   285,   285,     0,
    1433        0,   679,   372,   375,   379,   534,   379,   684,   378,   676,
    1434      534,   534,   355,   363,   371,   364,   534,   366,   369,   285,
    1435      737,     0,     0,   386,   736,   286,     3,   404,     3,   408,
    1436      407,   578,     0,   518,   285,     3,     3,   285,   423,   286,
    1437        3,   417,   418,     2,     0,     0,     0,   472,   297,   285,
    1438      468,   470,     3,     2,     2,     0,   489,     3,     0,   541,
    1439      126,     0,     0,   213,     0,     0,     2,     0,     0,    36,
    1440        0,     0,   108,   285,    21,     0,    22,     0,   679,   438,
    1441        0,   106,     3,     2,    28,     2,     0,    33,     0,     2,
    1442       26,   103,   104,    70,    71,    72,    74,    75,    77,    78,
    1443       82,    83,    80,    81,    85,    86,    88,    90,    92,    94,
    1444       96,     0,     0,   739,   285,     0,     0,     0,   634,   635,
    1445      631,   632,   484,   483,   285,     0,     3,   285,   701,   285,
    1446      706,   286,   285,   285,   285,   649,   692,   648,     2,   285,
    1447        0,     0,     0,     0,     0,     0,     0,     0,   670,     0,
    1448      656,   607,   623,   657,     2,   603,   610,   421,   605,   606,
    1449      422,     2,   617,   626,   619,   620,   653,   654,   668,   696,
    1450      700,   698,   738,   259,     2,   732,     2,   412,   704,   709,
    1451      413,     0,   391,     3,     3,     3,     3,   443,     3,     0,
    1452        2,   455,   452,   737,     0,   448,     2,   451,   454,     0,
    1453      285,   233,   255,     3,   263,   265,     0,   443,     2,   558,
    1454      559,     2,   597,   598,     0,   646,   524,     3,   336,   335,
    1455      338,   337,   285,   525,     0,   526,   285,   365,   367,     2,
    1456        0,     0,     0,     0,   101,   381,   680,   681,   376,   380,
    1457      377,   677,   678,   370,   374,   357,   388,   383,   389,     0,
    1458        0,     0,   426,   231,     0,     0,     3,     2,   655,   419,
    1459        0,   514,     0,   738,   476,     0,   285,   285,   285,     0,
    1460      538,   540,   127,     0,     0,   206,     0,     0,     0,   214,
    1461      215,    55,    60,   285,     0,    58,    57,     0,   125,   680,
    1462        0,    67,    68,   107,   112,     3,   106,     0,     0,     0,
    1463       25,    35,     3,     0,    99,     0,     3,   637,   641,   644,
    1464      636,     3,   579,     3,   703,   708,     2,   285,     3,     3,
    1465      286,     0,     3,   609,   613,   616,   625,   659,   663,   666,
    1466      285,     3,   608,   624,   658,   285,   285,   414,   285,   285,
    1467      733,     0,     0,     0,     0,   247,     0,   101,     0,     3,
    1468        3,     0,   449,     0,   446,     0,   222,     0,   236,   285,
    1469        0,     0,   126,     0,     0,     0,     0,     0,   126,     0,
    1470        0,     0,     2,     0,     0,     3,   128,   129,     2,   139,
    1471      130,   131,   132,   133,   134,   135,   141,   143,     0,     0,
    1472        0,   276,   285,   285,   534,     0,   527,   285,   108,   683,
    1473      687,   689,   682,   373,   387,   384,   566,     2,   651,   650,
    1474        0,   656,     2,   469,   471,   491,     3,   499,   500,     0,
    1475        2,   495,     3,     3,     0,     0,   543,   213,     0,     0,
    1476        0,   213,     0,     3,    37,   736,   106,     0,     3,   648,
    1477       42,     3,    40,     3,    34,     0,     3,    98,   100,     0,
    1478        2,   639,   640,     0,     0,   285,     0,     0,     0,     3,
    1479      625,     0,     2,   611,   612,     2,   627,     2,   661,   662,
    1480        0,     0,     3,     0,     3,     3,     3,     3,   399,   398,
    1481      402,     2,     2,   735,   734,   109,     0,     0,     0,     0,
    1482        3,   450,     3,     0,   234,   142,     3,   286,   285,     0,
    1483        0,     0,     0,     2,   187,     0,   185,     0,     0,     0,
    1484        0,     0,     0,   191,     0,   108,   534,   147,   144,   285,
    1485        0,     0,   258,   270,     3,     3,   533,   600,   358,     2,
    1486      685,   686,   285,   257,   285,     0,   502,   479,   285,     0,
    1487        0,   478,   493,     0,     0,     0,   207,     0,   216,   106,
    1488        0,     0,   113,   110,     0,     0,     0,     0,     0,     0,
    1489       24,     0,   642,   285,   567,   256,   711,   712,   713,     0,
    1490      664,   285,   285,   285,     3,     3,     0,   672,     0,     0,
    1491        0,     0,   285,   285,     3,   531,   109,   457,     0,     0,
    1492      223,   237,   286,     0,     0,     0,     0,   285,   188,   186,
     1425     105,     2,   634,   442,   631,   535,   535,   639,   468,   285,
     1426       2,   573,   574,     0,   585,   586,     0,     2,   728,   731,
     1427     108,   285,     2,   285,     0,   696,   286,   700,   691,   692,
     1428     698,     0,     2,     2,   656,   535,   739,   605,   535,   535,
     1429     739,   535,   619,   535,   535,   670,   424,   653,   535,   535,
     1430     661,   668,   285,   419,   286,     0,     0,   285,   706,   286,
     1431     711,   739,   703,   285,   708,   739,   285,   285,   285,     0,
     1432     108,     0,    17,     5,     2,     0,     0,   447,   737,     0,
     1433       0,   453,   232,     0,   285,     0,     0,     0,   533,   557,
     1434     561,   563,   593,   596,   600,   603,   556,   595,     0,   275,
     1435     646,     0,   285,   268,     0,     0,     0,     0,   266,     2,
     1436       0,   250,   524,   285,     0,     0,     0,     0,   285,   285,
     1437       0,     0,   680,   372,   375,   379,   535,   379,   685,   378,
     1438     677,   535,   535,   355,   363,   371,   364,   535,   366,   369,
     1439     285,   738,     0,     0,   386,   737,   286,     3,   404,     3,
     1440     408,   407,   579,     0,   519,   285,     3,     3,   285,   423,
     1441     286,     3,   417,   418,     2,     0,     0,     0,   473,   297,
     1442     285,   469,   471,     3,     2,     2,     0,   490,     3,     0,
     1443     542,   126,     0,     0,   213,     0,     0,     2,     0,     0,
     1444      34,     0,     0,   108,   285,    19,     0,    20,     0,   680,
     1445     438,     0,   106,     3,     2,    26,     2,     0,    31,     0,
     1446       2,    24,   103,   104,    70,    71,    72,    74,    75,    77,
     1447      78,    82,    83,    80,    81,    85,    86,    88,    90,    92,
     1448      94,    96,     0,     0,   740,   285,     0,     0,     0,   635,
     1449     636,   632,   633,   485,   484,   285,     0,     3,   285,   702,
     1450     285,   707,   286,   285,   285,   285,   650,   693,   649,     2,
     1451     285,     0,     0,     0,     0,     0,     0,     0,     0,   671,
     1452       0,   657,   608,   624,   658,     2,   604,   611,   421,   606,
     1453     607,   422,     2,   618,   627,   620,   621,   654,   655,   669,
     1454     697,   701,   699,   739,   259,     2,   733,     2,   412,   705,
     1455     710,   413,     0,   391,     3,     3,     3,     3,   443,     3,
     1456       0,     2,   456,   452,   738,     0,   448,   455,     2,   451,
     1457     454,     0,   285,   233,   255,     3,   263,   265,     0,   443,
     1458       2,   559,   560,     2,   598,   599,     0,   647,   525,     3,
     1459     336,   335,   338,   337,   285,   526,     0,   527,   285,   365,
     1460     367,     2,     0,     0,     0,     0,   101,   381,   681,   682,
     1461     376,   380,   377,   678,   679,   370,   374,   357,   388,   383,
     1462     389,     0,     0,     0,   426,   231,     0,     0,     3,     2,
     1463     656,   419,     0,   515,     0,   739,   477,     0,   285,   285,
     1464     285,     0,   539,   541,   127,     0,     0,   206,     0,     0,
     1465       0,   214,   215,    55,    60,   285,     0,    58,    57,     0,
     1466     125,   681,     0,    67,    68,   107,   112,     3,   106,     0,
     1467       0,     0,    23,    33,     3,     0,    99,     0,     3,   638,
     1468     642,   645,   637,     3,   580,     3,   704,   709,     2,   285,
     1469       3,     3,   286,     0,     3,   610,   614,   617,   626,   660,
     1470     664,   667,   285,     3,   609,   625,   659,   285,   285,   414,
     1471     285,   285,   734,     0,     0,     0,     0,   247,     0,   101,
     1472       0,     3,     3,     0,   449,     0,   446,     0,     0,   236,
     1473     285,     0,     0,   126,     0,     0,     0,     0,     0,   126,
     1474       0,     0,     0,     2,     0,     0,     3,   128,   129,     2,
     1475     139,   130,   131,   132,   133,   134,   135,   141,   143,     0,
     1476       0,     0,   276,   285,   285,   535,     0,   528,   285,   108,
     1477     684,   688,   690,   683,   373,   387,   384,   567,     2,   652,
     1478     651,     0,   657,     2,   470,   472,   492,     3,   500,   501,
     1479       0,     2,   496,     3,     3,     0,     0,   544,   213,     0,
     1480       0,     0,   213,     0,     3,    35,   737,   106,     0,     3,
     1481     649,    40,     3,    38,     3,    32,     0,     3,    98,   100,
     1482       0,     2,   640,   641,     0,     0,   285,     0,     0,     0,
     1483       3,   626,     0,     2,   612,   613,     2,   628,     2,   662,
     1484     663,     0,     0,     3,     0,     3,     3,     3,     3,   399,
     1485     398,   402,     2,     2,   736,   735,   109,     0,     0,     0,
     1486       0,     3,   450,     3,     0,   234,   142,     3,   286,   285,
     1487       0,     0,     0,     0,     2,   187,     0,   185,     0,     0,
     1488       0,     0,     0,     0,   191,     0,   108,   535,   147,   144,
     1489     285,     0,     0,   258,   270,     3,     3,   534,   601,   358,
     1490       2,   686,   687,   285,   257,   285,     0,   503,   480,   285,
     1491       0,     0,   479,   494,     0,     0,     0,   207,     0,   216,
     1492     106,     0,     0,   113,   110,     0,     0,     0,     0,     0,
     1493       0,    22,     0,   643,   285,   568,   256,   712,   713,   714,
     1494       0,   665,   285,   285,   285,     3,     3,     0,   673,     0,
     1495       0,     0,     0,   285,   285,     3,   532,   457,   458,     0,
     1496       0,   237,   286,     0,     0,     0,     0,   285,   188,   186,
    14931497       0,   183,   189,     0,     0,     0,   192,   195,   193,   190,
    14941498     126,   140,   138,   235,     0,     0,   285,   406,   410,   409,
    1495        0,   496,     2,   497,     2,   498,   492,   285,   219,     0,
    1496      217,     0,   219,     3,   648,    32,   111,     2,    45,     2,
    1497       43,    41,    29,   109,    27,     3,   714,     3,     3,     3,
    1498        0,     0,   671,   673,   614,   628,   260,     2,   396,     3,
    1499      395,     0,   459,   456,   126,     0,     0,   126,     3,     0,
    1500      126,   184,     0,     2,   200,   194,     0,   136,   561,   601,
     1499       0,   497,     2,   498,     2,   499,   493,   285,   219,     0,
     1500     217,     0,   219,     3,   649,    30,   111,     2,    43,     2,
     1501      41,    39,    27,   109,    25,     3,   715,     3,     3,     3,
     1502       0,     0,   672,   674,   615,   629,   260,     2,   396,     3,
     1503     395,     0,   460,   457,   126,     0,     0,   126,     3,     0,
     1504     126,   184,     0,     2,   200,   194,     0,   136,   562,   602,
    15011505       3,     2,     0,     0,     2,   220,     0,     0,   208,     0,
    1502        0,     0,     0,     0,     0,     0,     0,     0,   674,   675,
    1503      285,     0,   458,   148,     0,     0,     2,   161,   126,   150,
     1506       0,     0,     0,     0,     0,     0,     0,     0,   675,   676,
     1507     285,     0,   459,   148,     0,     0,     2,   161,   126,   150,
    15041508       0,   178,     0,   126,     0,     2,   152,     0,     2,     2,
    1505        0,   285,   501,   503,   494,     0,     0,     0,     0,   111,
    1506       38,     3,     3,   643,   615,   629,   665,   400,   126,   154,
     1509       0,   285,   502,   504,   495,     0,     0,     0,     0,   111,
     1510      36,     3,     3,   644,   616,   630,   666,   400,   126,   154,
    15071511     157,     0,   156,   160,     3,   163,   162,     0,   126,   180,
    1508      126,     3,     0,   285,     0,     2,   688,     2,   221,     0,
    1509      218,   209,     0,     0,     0,   149,     0,     0,   159,   224,
    1510      164,     2,   226,   179,     0,   182,   168,   196,     3,   201,
    1511      205,     0,   285,     0,     0,    39,    46,    44,   155,   158,
    1512      126,     0,   165,   285,   126,   126,     0,   169,     0,     0,
    1513      679,   202,   203,   204,   197,     3,   285,   210,   145,   166,
    1514      151,   126,   227,   181,   176,   174,   170,   153,   126,     0,
    1515      680,     0,     0,   146,   167,   177,   171,   175,   174,   172,
    1516        3,     0,   480,   173,   198,     3,   199
     1512     126,     3,     0,   285,     0,     2,   689,     2,   221,   222,
     1513       0,   218,   209,     0,     0,     0,   149,     0,     0,   159,
     1514     224,   164,     2,   226,   179,     0,   182,   168,   196,     3,
     1515     201,   205,     0,   285,     0,     0,     0,    37,    44,    42,
     1516     155,   158,   126,     0,   165,   285,   126,   126,     0,   169,
     1517       0,     0,   680,   202,   203,   204,   197,     3,   285,   210,
     1518     223,   145,   166,   151,   126,   227,   181,   176,   174,   170,
     1519     153,   126,     0,   681,     0,     0,   146,   167,   177,   171,
     1520     175,   174,   172,     3,     0,   481,   173,   198,     3,   199
    15171521};
    15181522
     
    15201524static const yytype_int16 yydefgoto[] =
    15211525{
    1522       -1,   829,   470,   298,    45,   130,   131,   299,   300,   301,
    1523      302,   776,   758,  1131,  1132,   303,   304,   305,   306,   307,
    1524      308,   309,   310,   311,   312,   313,   314,   315,   316,  1038,
    1525      520,   984,   318,   985,   548,   962,  1064,  1498,  1066,  1067,
    1526     1068,  1069,  1499,  1070,  1071,  1430,  1431,  1397,  1398,  1399,
    1527     1481,  1482,  1486,  1487,  1516,  1517,  1072,  1359,  1073,  1074,
    1528     1296,  1297,  1298,  1468,  1075,   142,   968,   969,   970,  1376,
    1529     1047,  1460,  1461,   471,   472,   890,   891,    48,    49,    50,
    1530       51,    52,   342,   155,    55,    56,    57,    58,    59,   344,
    1531       61,    62,   259,    64,    65,   270,   346,   347,    68,    69,
    1532       70,    71,   115,    73,   200,   349,   116,    76,   117,    78,
    1533       79,    80,   451,   452,   453,   454,   692,   928,   693,    81,
    1534       82,   458,   713,   871,   872,   352,   353,   716,   717,   718,
    1535      354,   355,   356,   357,   468,   336,   132,   133,   524,   320,
    1536      166,   646,   647,   648,   649,   650,    83,   118,    85,   491,
    1537      492,   954,   493,   273,   497,   321,    86,   134,   135,    87,
    1538     1317,  1110,  1111,  1112,  1113,    88,    89,   734,    90,   269,
    1539       91,    92,   183,  1040,   680,   406,   122,    93,   503,   504,
    1540      505,   184,   264,   186,   187,   188,   265,    96,    97,    98,
    1541       99,   100,   101,   102,   191,   192,   193,   194,   195,   841,
    1542      607,   608,   609,   610,   196,   612,   613,   614,   573,   574,
    1543      575,   576,   697,   103,   616,   617,   618,   619,   620,   621,
    1544      927,   699,   700,   701,   597,   360,   361,   362,   363,   322,
    1545      161,   105,   106,   107,   365,   711,   570
     1526      -1,   830,   470,   298,    45,   130,   131,   299,   300,   301,
     1527     302,   777,   759,  1132,  1133,   303,   304,   305,   306,   307,
     1528     308,   309,   310,   311,   312,   313,   314,   315,   316,  1040,
     1529     520,   986,   318,   987,   548,   964,  1065,  1501,  1067,  1068,
     1530    1069,  1070,  1502,  1071,  1072,  1430,  1431,  1397,  1398,  1399,
     1531    1483,  1484,  1488,  1489,  1519,  1520,  1073,  1359,  1074,  1075,
     1532    1296,  1297,  1298,  1469,  1076,   142,   970,   971,   972,  1376,
     1533    1450,  1461,  1462,   471,   472,   892,   893,  1048,    48,    49,
     1534      50,    51,    52,   342,   155,    55,    56,    57,    58,    59,
     1535     344,    61,    62,   259,    64,    65,   270,   346,   347,    68,
     1536      69,    70,    71,   115,    73,   200,   349,   116,    76,   117,
     1537      78,    79,    80,   451,   452,   453,   454,   693,   930,   694,
     1538      81,    82,   458,   714,   872,   873,   352,   353,   717,   718,
     1539     719,   354,   355,   356,   357,   468,   336,   132,   133,   524,
     1540     320,   166,   647,   648,   649,   650,   651,    83,   118,    85,
     1541     491,   492,   956,   493,   273,   497,   321,    86,   134,   135,
     1542      87,  1317,  1111,  1112,  1113,  1114,    88,    89,   735,    90,
     1543     269,    91,    92,   183,  1042,   681,   406,   122,    93,   503,
     1544     504,   505,   184,   264,   186,   187,   188,   265,    96,    97,
     1545      98,    99,   100,   101,   102,   191,   192,   193,   194,   195,
     1546     842,   607,   608,   609,   610,   196,   612,   613,   614,   573,
     1547     574,   575,   576,   698,   103,   616,   617,   618,   619,   620,
     1548     621,   929,   700,   701,   702,   597,   360,   361,   362,   363,
     1549     322,   161,   105,   106,   107,   365,   712,   570
    15461550};
    15471551
    15481552/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15491553   STATE-NUM.  */
    1550 #define YYPACT_NINF -1398
     1554#define YYPACT_NINF -1318
    15511555static const yytype_int16 yypact[] =
    15521556{
    1553     6576,  9185, -1398,   -17, -1398, -1398, -1398, -1398, -1398, -1398,
    1554    -1398,    52, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1555    -1398, -1398, -1398, -1398, -1398,    68,    68,    68,   896,   827,
    1556      110,  6794,   119, -1398, -1398, -1398, -1398, -1398,   113, -1398,
    1557    -1398, -1398,   846,    99,  4087, -1398, -1398, -1398, -1398, -1398,
    1558    -1398,   127,   187, -1398,  1172, -1398, -1398, -1398, -1398,   213,
    1559     1319,   377,    73,  6903, -1398, -1398,  8670,  1020, -1398, -1398,
    1560    -1398,  1108,   405,  3263,   735,   755,  1108,  1297, -1398, -1398,
    1561      270,   375, -1398,  1108,  1712, -1398,   310, -1398,   433,   467,
    1562    -1398, -1398, -1398, -1398,   344,   187,    68, -1398,    68, -1398,
    1563    -1398, -1398, -1398,  9421,  1172, -1398, -1398,  1172, -1398,  9480,
    1564      347, -1398, -1398,  1683,  9539, -1398,   566,   566,   566, -1398,
    1565    -1398, -1398,    68, -1398, -1398, -1398,   411,   520,   539, -1398,
    1566    -1398, -1398,   571, -1398, -1398, -1398, -1398, -1398,   586,   589,
    1567    -1398, -1398,    44,  8109,  1146,   170,   593,   601,   620,   627,
    1568      643,   650,  8875,  6124,   653,   671, -1398,  8739, -1398, -1398,
    1569    -1398, -1398,   683, -1398,   200,  4814, -1398,   686,   231, -1398,
    1570    -1398, -1398, -1398,   695,   241,   266,   303,    68,   715, -1398,
    1571    -1398,  1319,  3193,   789, -1398,    79, -1398,    68,    68,   187,
    1572    -1398, -1398,    90, -1398,    68,    68, -1398,  3463,   774,   781,
    1573      566,  7457, -1398, -1398,   708,  4087, -1398, -1398,  1108, -1398,
    1574    -1398, -1398,   187, -1398,  1172,   127, -1398,  7213, -1398,   566,
    1575      566,   566,   187, -1398,   896, -1398,  3674, -1398, -1398,   783,
    1576      566, -1398,   566, -1398,   113,  8109,  9244,   811, -1398,   827,
    1577      836,   566, -1398,   896,   822,   831, -1398,  6794,   895, -1398,
    1578    -1398, -1398,  8540, -1398, -1398, 10011, -1398,   789,    72,  9539,
    1579     5124,  1683,  3463, -1398,    95, -1398, -1398,  9480,  1172,   867,
    1580    11227, -1398, -1398,   335, -1398, 10962,   874,   903,  4451,  4561,
    1581    10793, -1398,   884, -1398, -1398, -1398, -1398, 10850, 10850,   895,
    1582     7791,   900,  4561,  8215, -1398, -1398, -1398, -1398, -1398, -1398,
    1583      935, -1398,   534,  1879,  4561, -1398,   434,   167,   528,   511,
    1584      647,   906,   892,   901,   943,   107, -1398, -1398,   910,   568,
    1585    -1398,   304, -1398, -1398,  1146, -1398, -1398,   379,   936, -1398,
    1586      445,   936,   940,   113, -1398, -1398,   949,  9421, -1398,   954,
    1587     7897, -1398, -1398,  1152,   795,  7537,  7457,  1108, -1398,  1108,
    1588      566,   566, -1398, -1398, -1398, -1398, -1398, -1398,   566,  9598,
    1589     1172, -1398, -1398,  9657,  1548, -1398,  9303, -1398, -1398, -1398,
    1590    -1398, -1398, -1398, -1398,   955,  3974,  4561, -1398, -1398, -1398,
    1591    -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1592     1683, -1398,   659,   951,   958,   961,   828,   965,   973,   974,
    1593     3193, -1398, -1398,   967,   127,   977, -1398, -1398,   975, -1398,
    1594    -1398, -1398,  8540, -1398, -1398, -1398, -1398, -1398,  3463, -1398,
    1595     8109,  8109, -1398,   566,  1683, 10399,  1172,  7602, -1398, -1398,
    1596    -1398, -1398,  8540,    72, -1398, -1398,  1108,   187, -1398, -1398,
    1597     8540, -1398,  5815, -1398, -1398,   566,   566,   400,  9716,   983,
    1598     1482,  4359, -1398,   391,   402,   827, -1398,  9244,   981,   970,
    1599      827,   566, -1398, -1398, -1398, -1398, 10135, -1398,   542,  7349,
    1600    -1398,   187,   984, -1398,  1683, 11037, 10622, -1398, -1398, -1398,
    1601    -1398,   866,  3463, -1398,  7667,   789,  6685, -1398, -1398, -1398,
    1602     1369,   559,   910,   827, 11227,   331,  9480, -1398, 11227, -1398,
    1603    -1398, -1398, -1398,   598, -1398,   993,   903,    83,  7791, -1398,
    1604    -1398, -1398,  7791, -1398,  8003,  7791, -1398, -1398, -1398,   992,
    1605    -1398,   603,   995,   614,   998, -1398,  2814,  5314, -1398, -1398,
    1606    -1398,   102, -1398, -1398, 10679, -1398,   276, -1398, -1398, -1398,
    1607    -1398, -1398, -1398, -1398, -1398, -1398, -1398,  5124,  5124, -1398,
    1608     4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,
    1609     4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,  5021,  5124,
    1610    -1398,   568,   890, -1398, -1398,    68,    68, -1398, -1398,  8109,
    1611    -1398, -1398,   975,   895, -1398,   975, 10736, -1398, -1398, -1398,
    1612     8568,  5314,   997,  8321,  1000, -1398,  9775, -1398, -1398,   683,
    1613    -1398,  1001,  1078,  1002,  2554,   101,   910, -1398,    68,    68,
    1614      910,   137, -1398,    68,    68,   975, -1398, -1398,    68,    68,
    1615    -1398,   936,  9834,  1172, 11168,   212,   299,  9834, -1398, 10070,
    1616    -1398,   910, -1398,  9598, -1398,   130,  4245,  4245,  4245,  1172,
    1617    -1398,  4107,  1009,   955,   371,  1011, -1398,   994,  4814,   625,
    1618    -1398,  1079,  1172,  4245,   895,  1683,   895,   789,   688,   936,
    1619    -1398, -1398,   725,   936, -1398, -1398, -1398,   903, -1398,   936,
    1620      187, 10135, -1398,   673,  1007,   674,  1021, -1398,  1018,   187,
    1621    -1398, -1398,  8540,   187,  1024,   466,   483,  9893,  6236,  1773,
    1622     4561,  2687, -1398, -1398,  1015,    65,  1015, -1398, -1398, -1398,
    1623       68,    68, -1398, -1398,   827, -1398,    68, -1398, -1398,  9005,
    1624      827,  1025,  4561, -1398,   981, 11168, -1398, -1398,  1031, -1398,
    1625    -1398, -1398,   895, -1398, 11103,  4561, -1398,  4245,   697,  7537,
    1626    -1398, -1398,   683,  1034,  1035,  1369,  3328, -1398, -1398, 11227,
    1627    -1398, -1398,  1019, -1398, -1398,  1047, -1398,  1019,  1048, 10962,
    1628     5124,   150,  1027,   125,  1050,  1051,   900,  1053,  1061, -1398,
    1629     1062,  1064,  9064,  5898, -1398,  5124, -1398,   614,  1586, -1398,
    1630     5526,  5124,  1060, -1398, -1398,   955,   709, -1398,  5124, -1398,
    1631    -1398, -1398, -1398, -1398, -1398, -1398,   434,   434,   167,   167,
    1632      528,   528,   528,   528,   511,   511,   647,   906,   892,   901,
    1633      943,  4561,   640, -1398, 10135,  1071,  1072,  1073,   890, -1398,
    1634    -1398, -1398, -1398, -1398, 10135,   711,  4561,  4245, -1398,  9598,
    1635    -1398,  6348,  8427,  9362,  6124, -1398, -1398, -1398,  1078, 10135,
    1636      893,  1074,  1076,  1083,  1086,  1088,  1092,  1093, -1398,  3022,
    1637     2554, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1638    -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,   975, -1398,
    1639    -1398, -1398,   910, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1640    -1398,  1094, -1398,  1095,  1100, -1398, -1398,   127,  1060,  4107,
    1641    -1398, -1398, -1398,  3974,  1096, -1398, -1398, -1398, -1398,   827,
    1642     5662,  1176, -1398, -1398, -1398, -1398,  1082,   127, -1398, -1398,
    1643      975, -1398, -1398,   975,    60,   975, -1398, -1398, -1398, -1398,
    1644    -1398, -1398,  8807, -1398,   187, -1398,  9244, -1398, -1398,  1110,
    1645      753,  1114,  1122,  1124, -1398, -1398,  2687, -1398, -1398, -1398,
    1646    -1398, -1398, -1398, -1398,  1482, -1398,   970, -1398, -1398,  1105,
    1647     1130,  1126, -1398, -1398,  1131,  1139, -1398,   697,  1707, -1398,
    1648      399, -1398,  3328,   910, -1398,  1148, 11227,  9952,  8109,  1150,
    1649    -1398, -1398,  1147,  1154,  1145, -1398,  4561,   131,   259,  1151,
    1650    -1398,  1156,  1156,  5314,  5124, -1398, -1398,  1156, -1398,  1586,
    1651     3974, -1398, -1398, -1398, -1398,  1157,  5124,  1162,   895,  4107,
    1652    -1398, 10679, -1398,   895, -1398,  5124, -1398,   784,   936, -1398,
    1653    -1398, -1398, -1398, -1398, -1398, -1398,   955,  7897, -1398, -1398,
    1654     6460,  1158, -1398,   796,   936, -1398,   807,   817,   936, -1398,
    1655      566,  3298, -1398, -1398, -1398, 10135, 10135, -1398,  7602,  7602,
    1656    -1398,  1160,  1164,  1168,  1173, -1398,  1174,   417,   121,  1060,
    1657    -1398,   895, -1398,  4814, -1398,  5124, -1398,   491, -1398,  5786,
    1658     1179,  1180, 10565,  1185,  1186,    55,    77,   104,  5124,  1187,
    1659      187,  3868,  1190,  1149,  1153, -1398, -1398, -1398,  1182, -1398,
    1660    -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,   827,  1188,
    1661     5124, -1398, 10135, 10135,    68,  1195, -1398,  9126,  8943,   842,
    1662      936, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1663     1199,  1707, -1398, -1398,  1183, -1398,  1019, -1398, -1398,  1683,
    1664     1196, -1398, -1398, -1398,   719,  1210, -1398,   125,  1215,  4561,
    1665     1200,   125,   125,  1212, -1398,   994,  5124,  1221,  1157,   612,
    1666      157,  1218, -1398,  1212, -1398,  1224,  1218, -1398, -1398,  1228,
    1667    -1398, -1398,   975,  1229,  1238,  6011,  1240,  1241,  1242, -1398,
    1668    -1398,  1247, -1398, -1398,   975, -1398, -1398, -1398, -1398,   975,
    1669     5124,  5124,  4561,  1246, -1398, -1398, -1398, -1398, -1398, -1398,
    1670    -1398, -1398, -1398, -1398, -1398, -1398,  4561,  4561,  1248,  1250,
    1671     1218, -1398, -1398,   827, -1398, -1398, -1398,  7148,  9952,  5124,
    1672     5124,  1310,  5124, -1398, -1398,  1234, -1398,  1235,  5124,  1236,
    1673     1237,  5124,   858, -1398,  1243,  8637,    68, -1398, -1398,  5662,
    1674     1255,   500, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
    1675    -1398,   975, 10371, -1398,  7667,  1262, -1398, -1398,  9952,   523,
    1676      540, -1398,  1258,  1233,   903,  1268, -1398,   573, -1398,  5124,
    1677     1272,  1265, -1398, -1398,  1273,   288,   298,   895,  1276,  1281,
    1678    -1398,  1285, -1398, 10135, -1398, -1398, -1398, -1398, -1398,  1286,
    1679    -1398, 10135, 10135, 10135, -1398, -1398,  1287, -1398,  1288,  1292,
    1680     1298,   480,  7321,  7429, -1398, -1398,   700, -1398,  1300,  1303,
    1681    -1398, -1398,  7732,   721,   729,  1308,   741,  5468, -1398, -1398,
    1682      541, -1398, -1398,   745,  1311,   187,  1362,  1364, -1398, -1398,
    1683    10565, -1398, -1398, -1398,  1317,  1326, 10135, -1398, -1398, -1398,
    1684     1315, -1398, -1398, -1398, -1398, -1398, -1398,  9952,   903,   164,
    1685    -1398,  1305,   903,  1157,   370, -1398, -1398, -1398, -1398, -1398,
    1686    -1398, -1398, -1398,  1322, -1398, -1398, -1398, -1398, -1398, -1398,
    1687     1331,  1332, -1398, -1398, -1398, -1398, -1398, -1398, -1398,  1339,
    1688    -1398,  1340, -1398, -1398, 10565,   146,  5124, 10565, -1398,  1341,
    1689     5124, -1398,   203,  1360, -1398, -1398,  1350, -1398, -1398, -1398,
    1690    -1398, -1398,  1172,  1683,  1349,   935,   843,  4561, -1398,   749,
    1691     1353,  5124,   895,   895,  1359,  1361,  1366,  1370, -1398, -1398,
    1692     7602,  1354, -1398,  1424,  4561,  1365, -1398, -1398, 10485, -1398,
    1693      768, -1398,  1351, 10565,  1352, -1398, -1398,  1371, -1398,  1389,
    1694     1379,  9952, -1398, -1398, -1398,   903,   827,  1383,  1363,  1387,
    1695    -1398,  1218,  1218, -1398, -1398, -1398, -1398, -1398, 10565,   207,
    1696    -1398,   872, -1398, -1398,  7012, -1398, -1398,  1375,  5124, -1398,
    1697     5124,  7012,   187,  9716,  1399, -1398, -1398,  1398,   935,   778,
    1698    -1398, -1398,  5124,  1402,  1404, -1398,  4561,  4561, -1398, -1398,
    1699      957,   135, -1398, -1398,  1385, -1398,   957, -1398, -1398,  1825,
    1700      895,   187,  9716,  1409,  1391, -1398, -1398, -1398, -1398, -1398,
    1701    10485,  1411,   957,  7081,  5124, 10405,  1412,   957,  1419,  1825,
    1702     2940, -1398, -1398, -1398, -1398, -1398,  8109, -1398, -1398, 10250,
    1703    -1398, 10485, -1398, -1398,  1400, 10169, -1398, -1398, 10405,   187,
    1704     2940,  1431,   782, -1398, 10250, -1398, -1398, -1398, 10169, -1398,
    1705    -1398,   187, -1398, -1398, -1398, -1398, -1398
     1557    4413,  9104, -1318,    42, -1318, -1318, -1318, -1318, -1318, -1318,
     1558   -1318,   -27, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,
     1559   -1318, -1318, -1318, -1318, -1318,    95,    95,    95,   954,   850,
     1560      71,  5300,   201, -1318, -1318, -1318, -1318, -1318,   123, -1318,
     1561   -1318, -1318,   776,   164,  8401, -1318, -1318, -1318, -1318, -1318,
     1562   -1318,   226,   169, -1318,  1184, -1318, -1318, -1318, -1318,   272,
     1563    1531,   387,    89,  3759, -1318, -1318,  8469,  1998, -1318, -1318,
     1564   -1318,   935,   392,  5420,   741,  1183,   935,  1282, -1318, -1318,
     1565     356,   326, -1318,   935,  1429, -1318,   340, -1318,   453,   463,
     1566   -1318, -1318, -1318, -1318,   370,   169,    95, -1318,    95, -1318,
     1567   -1318, -1318, -1318,  9340,  1184, -1318, -1318,  1184, -1318,  9399,
     1568     389, -1318, -1318,  1617,  9458, -1318,  1087,  1087,  1087, -1318,
     1569   -1318, -1318,    95, -1318, -1318, -1318,   386,   435,   438, -1318,
     1570   -1318, -1318,   498, -1318, -1318, -1318, -1318, -1318,   510,   531,
     1571   -1318, -1318,    34,  7909,  1795,    48,   452,   575,   578,   583,
     1572     588,   593,  8673,  6319,   543,   605, -1318,  8537, -1318, -1318,
     1573   -1318, -1318,   652, -1318,   172,  5550, -1318,   473,   232, -1318,
     1574   -1318, -1318, -1318,   661,   301,   325,   403,    95,   646, -1318,
     1575   -1318,  1531,  2279,   739, -1318,    21, -1318,    95,    95,   169,
     1576   -1318, -1318,    35, -1318,    95,    95, -1318,  2781,   700,   710,
     1577    1087, 10200, -1318, -1318,   717,  8401, -1318, -1318,   935, -1318,
     1578   -1318, -1318,   169, -1318,  1184,   226, -1318,  7011, -1318,  1087,
     1579    1087,  1087,   169, -1318,   954, -1318,  3330, -1318, -1318,   704,
     1580    1087, -1318,  1087, -1318,   123,  7909,  9163,   736, -1318,   850,
     1581     769,  1087, -1318,   954,   737,   747, -1318,  5300,   814, -1318,
     1582   -1318, -1318,  2451, -1318, -1318,  3603, -1318,   739,    61,  9458,
     1583   10457,  1617,  2781, -1318,    68, -1318, -1318,  9399,  1184,   778,
     1584   11233, -1318, -1318,   428, -1318, 10968,   787,   870, 10685, 10742,
     1585   10799, -1318,   824, -1318, -1318, -1318, -1318, 10856, 10856,   814,
     1586    7591,   827, 10742,  8015, -1318, -1318, -1318, -1318, -1318, -1318,
     1587     874, -1318,   901,  2137, 10742, -1318,   237,   407,   632,   476,
     1588     638,   859,   855,   869,   890,   101, -1318, -1318,   877,   616,
     1589   -1318,   336, -1318, -1318,  1795, -1318, -1318,   518,   907, -1318,
     1590     633,   907,   892,   123, -1318, -1318,   914,  9340, -1318,   916,
     1591    7697, -1318, -1318,  1197,   771,  5233, 10200,   935, -1318,   935,
     1592    1087,  1087, -1318, -1318, -1318, -1318, -1318, -1318,  1087,  9517,
     1593    1184, -1318, -1318,  9576,  1658, -1318,  9222, -1318, -1318, -1318,
     1594   -1318, -1318, -1318, -1318,   924,  4543, 10742, -1318, -1318, -1318,
     1595   -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,
     1596    1617, -1318,   676,   942,   945,   946,   690,   947,   948,   958,
     1597    2279, -1318, -1318,   952,   226,   957, -1318, -1318,   959, -1318,
     1598   -1318, -1318,  2451, -1318, -1318, -1318, -1318, -1318,  2781, -1318,
     1599    7909,  7909, -1318,  1087,  1617, 11261,  1184,  7402, -1318, -1318,
     1600   -1318, -1318,  2451,    61, -1318, -1318,   935,   169, -1318, -1318,
     1601    2451, -1318,  5128, -1318, -1318,  1087,  1087,   364,  9635,   960,
     1602    2086,  8865, -1318,   432,   454,   850, -1318,  9163,   955,   944,
     1603     850,  1087, -1318, -1318, -1318, -1318,  9936, -1318,   383,  7322,
     1604   -1318,   169,   962, -1318,  1617, 11043, 10514, -1318, -1318, -1318,
     1605   -1318,   755,  2781, -1318,  7467,   739,  6768, -1318, -1318, -1318,
     1606     885,   414,   877,   850, 11233,   619,  9399, -1318, 11233, -1318,
     1607   -1318, -1318, -1318,   479, -1318,   964,   870,   125,  7591, -1318,
     1608   -1318, -1318,  7591, -1318,  7803,  7591, -1318, -1318, -1318,   969,
     1609   -1318,   544,   972,   640,   974, -1318,  8741,  5983, -1318, -1318,
     1610   -1318,   103, -1318, -1318, 10571, -1318,   112, -1318, -1318, -1318,
     1611   -1318, -1318, -1318, -1318, -1318, -1318, -1318, 10457, 10457, -1318,
     1612   10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742,
     1613   10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10343, 10457,
     1614   -1318,   616,   900, -1318, -1318,    95,    95, -1318, -1318,  7909,
     1615   -1318, -1318,   959,   814, -1318,   959, 10628, -1318, -1318, -1318,
     1616    8333,  5983,   973,  8121,   976, -1318,  9694, -1318, -1318,   652,
     1617   -1318,   978,   378,   980,  1782,   139,   877, -1318,    95,    95,
     1618     877,   166, -1318,    95,    95,   959, -1318, -1318,    95,    95,
     1619   -1318,   907,  9753,  1184, 11174,   137,   273,  9753, -1318,  4101,
     1620   -1318,   877, -1318,  9517, -1318,   278,  7119,  7119,  7119,  1184,
     1621   -1318,  3868,   982,   220,   924,   302,   984, -1318,   977,  5550,
     1622     238, -1318,  1061,  1184,  7119,   814,  1617,   814,   739,   705,
     1623     907, -1318, -1318,   765,   907, -1318, -1318, -1318,   870, -1318,
     1624     907,   169,  9936, -1318,   570,  1000,   655,  1005, -1318,  1004,
     1625     169, -1318, -1318,  2451,   169,  1003,   464,   465,  9812,  6431,
     1626    1947, 10742,  2536, -1318, -1318,  1001,    20,  1001, -1318, -1318,
     1627   -1318,    95,    95, -1318, -1318,   850, -1318,    95, -1318, -1318,
     1628    8924,   850,  1006, 10742, -1318,   955, 11174, -1318, -1318,  1017,
     1629   -1318, -1318, -1318,   814, -1318, 11109, 10742, -1318,  7119,   671,
     1630    5233, -1318, -1318,   652,  1013,  1014,   885,  2927, -1318, -1318,
     1631   11233, -1318, -1318,  1015, -1318, -1318,  1021, -1318,  1015,  1023,
     1632   10968, 10457,   243,  1002,    53,  1025,  1026,   827,  1027,  1028,
     1633   -1318,  1030,  1032,  8983,  6095, -1318, 10457, -1318,   640,  1104,
     1634   -1318, 10400, 10457,  1034, -1318, -1318,   924,   678, -1318, 10457,
     1635   -1318, -1318, -1318, -1318, -1318, -1318, -1318,   237,   237,   407,
     1636     407,   632,   632,   632,   632,   476,   476,   638,   859,   855,
     1637     869,   890, 10742,   716, -1318,  9936,  1038,  1041,  1042,   900,
     1638   -1318, -1318, -1318, -1318, -1318,  9936,   679, 10742,  7119, -1318,
     1639    9517, -1318,  6543,  8227,  9281,  6319, -1318, -1318, -1318,   378,
     1640    9936,   820,  1047,  1051,  1052,  1057,  1058,  1059,  1060, -1318,
     1641    3170,  1782, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,
     1642   -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,   959,
     1643   -1318, -1318, -1318,   877, -1318, -1318, -1318, -1318, -1318, -1318,
     1644   -1318, -1318,  1063, -1318,  1064,  1065, -1318, -1318,   226,  1034,
     1645    3868, -1318, -1318, -1318,  4543,  1066, -1318, -1318, -1318, -1318,
     1646   -1318,   850,  5481,  1140, -1318, -1318, -1318, -1318,  1049,   226,
     1647   -1318, -1318,   959, -1318, -1318,   959,   127,   959, -1318, -1318,
     1648   -1318, -1318, -1318, -1318,  8605, -1318,   169, -1318,  9163, -1318,
     1649   -1318,  1070,   856,  1073,  1076,  1077, -1318, -1318,  2536, -1318,
     1650   -1318, -1318, -1318, -1318, -1318, -1318,  2086, -1318,   944, -1318,
     1651   -1318,  1075,  1078,  1082, -1318, -1318,  1080,  1096, -1318,   671,
     1652    1985, -1318,   514, -1318,  2927,   877, -1318,  1100, 11233,  9871,
     1653    7909,  1102, -1318, -1318,  1098,  1110,  1107, -1318, 10742,    12,
     1654     400,  1114, -1318,  1112,  1112,  5983, 10457, -1318, -1318,  1112,
     1655   -1318,  1104,  4543, -1318, -1318, -1318, -1318,  1115, 10457,  1120,
     1656     814,  3868, -1318, 10571, -1318,   814, -1318, 10457, -1318,   825,
     1657     907, -1318, -1318, -1318, -1318, -1318, -1318, -1318,   924,  7697,
     1658   -1318, -1318,  6655,  1125, -1318,   833,   907, -1318,   845,   852,
     1659     907, -1318,  1087,  4145, -1318, -1318, -1318,  9936,  9936, -1318,
     1660    7402,  7402, -1318,  1123,  1124,  1126,  1133, -1318,  1134,   553,
     1661      38,  1034, -1318,   814, -1318,  5550, -1318, 10457,   466, -1318,
     1662    5871,  1136,  1141,  5631,  1149,  1155,    13,    17,    14, 10457,
     1663    1156,   169,  3019,  1137,  1150,  1143, -1318, -1318, -1318,  1161,
     1664   -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,   850,
     1665    1167, 10457, -1318,  9936,  9936,    95,  1169, -1318,  9045,  8803,
     1666     867,   907, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,
     1667   -1318,  1174,  1985, -1318, -1318,  1158, -1318,  1015, -1318, -1318,
     1668    1617,  1173, -1318, -1318, -1318,   686,  1175, -1318,    53,  1178,
     1669   10742,  1159,    53,    53,  1176, -1318,   977, 10457,  1185,  1115,
     1670     607,   130,  1192, -1318,  1176, -1318,  1198,  1192, -1318, -1318,
     1671    1199, -1318, -1318,   959,  1201,  1203,  6207,  1202,  1205,  1207,
     1672   -1318, -1318,  1210, -1318, -1318,   959, -1318, -1318, -1318, -1318,
     1673     959, 10457, 10457, 10742,  1209, -1318, -1318, -1318, -1318, -1318,
     1674   -1318, -1318, -1318, -1318, -1318, -1318, -1318, 10742, 10742,  1212,
     1675    1219,  1192, -1318, -1318,   850, -1318, -1318, -1318,  4876,  9871,
     1676   10457, 10457,  1262, 10457, -1318, -1318,  1213, -1318,  1214, 10457,
     1677    1216,  1220, 10457,   929, -1318,  1223,  5017,    95, -1318, -1318,
     1678    5481,  1224,   469, -1318, -1318, -1318, -1318, -1318, -1318, -1318,
     1679   -1318, -1318,   959, 10172, -1318,  7467,  1232, -1318, -1318,  9871,
     1680     478,   509, -1318,  1236,  1239,   870,  1248, -1318,   541, -1318,
     1681   10457,  1250,  1245, -1318, -1318,  1251,   128,   133,   814,  1253,
     1682    1254, -1318,  1256, -1318,  9936, -1318, -1318, -1318, -1318, -1318,
     1683    1258, -1318,  9936,  9936,  9936, -1318, -1318,  1260, -1318,  1263,
     1684    1269,  1270,   589,  7186,  7294, -1318, -1318,   351, -1318,  1273,
     1685    1275, -1318,  7532,   721,   742,  1272,   752,  5749, -1318, -1318,
     1686     545, -1318, -1318,   768,  1279,   169,  1330,  1332, -1318, -1318,
     1687    5631, -1318, -1318, -1318,  1285,  1286,  9936, -1318, -1318, -1318,
     1688    1283, -1318, -1318, -1318, -1318, -1318, -1318,  9871,   870,   206,
     1689   -1318,  1268,   870,  1115,   327, -1318, -1318, -1318, -1318, -1318,
     1690   -1318, -1318, -1318,  1284, -1318, -1318, -1318, -1318, -1318, -1318,
     1691    1291,  1294, -1318, -1318, -1318, -1318, -1318, -1318, -1318,  1297,
     1692   -1318,  1296, -1318, -1318,  5631,   124, 10457,  5631, -1318,  1299,
     1693   10457, -1318,   270,  1314, -1318, -1318,  1306, -1318, -1318, -1318,
     1694   -1318, -1318,  1184,  1617,  1301,   874,   879, 10742, -1318,   790,
     1695    1307, 10457,   814,   814,  1308,  1310,  1316,  1317, -1318, -1318,
     1696    7402,  1320, -1318,  1376, 10742,  1313, -1318, -1318, 10286, -1318,
     1697     791, -1318,  1300,  5631,  1305, -1318, -1318,  1323, -1318,  1341,
     1698    1329,  9871, -1318, -1318, -1318,   870,   814,  1334,  1327,  1325,
     1699   -1318,  1192,  1192, -1318, -1318, -1318, -1318, -1318,  5631,   246,
     1700   -1318,   917, -1318, -1318,  6877, -1318, -1318,  1335, 10457, -1318,
     1701   10457,  6877,   169,  9635,  1342, -1318, -1318,  1351,   874, -1318,
     1702     793, -1318, -1318, 10457,  1357,  1359, -1318, 10742, 10742, -1318,
     1703   -1318,   989,    88, -1318, -1318,  1340, -1318,   989, -1318, -1318,
     1704    2035,   814,   169,  9635,  1364,  1345,   814, -1318, -1318, -1318,
     1705   -1318, -1318, 10286,  1369,   989,  6946, 10457, 10206,  1373,   989,
     1706    1380,  2035,  2697, -1318, -1318, -1318, -1318, -1318,  7909, -1318,
     1707   -1318, -1318, 10051, -1318, 10286, -1318, -1318,  1347,  9970, -1318,
     1708   -1318, 10206,   169,  2697,  1383,   794, -1318, 10051, -1318, -1318,
     1709   -1318,  9970, -1318, -1318,   169, -1318, -1318, -1318, -1318, -1318
    17061710};
    17071711
     
    17091713static const yytype_int16 yypgoto[] =
    17101714{
    1711    -1398,  3548,  2440, -1398,   359, -1398,    -1,     2,  -248, -1398,
    1712    -1398, -1398,  -508,  -818,  -239,  4695, -1398,  -128,   484,   490,
    1713      457,   486,   963,   971,   969,   972,   985, -1398,   623,  -468,
    1714     4060,   410,  -704,  -934, -1398,   -64,  -728,  -419, -1398,   165,
    1715    -1398,   330, -1091, -1398, -1398,    84, -1398, -1055,  -804,   178,
    1716    -1398, -1398, -1398, -1398,    24, -1397, -1398, -1398, -1398, -1398,
    1717    -1398, -1398,   248,    76,    53, -1398,  -499, -1398,   438,   233,
    1718    -1038,   115, -1398,  -309, -1398, -1398, -1398,  -878, -1398, -1398,
    1719        5,  -977,    86,  1230, -1398, -1398, -1398,   -65, -1398,    82,
    1720      326,  -195,   939,  3408, -1398, -1398,    54,   724,   990,  -258,
    1721     1989, -1398,   966, -1398, -1398,   112,  1459, -1398,  1633,  1584,
    1722    -1398, -1398,  -421,  -417,  1115,  1120,   628,   875,   262, -1398,
    1723    -1398,  1113,   634,  -519, -1398,   -67,   383,   999, -1398, -1398,
    1724     -990,  -956,  -329,   988,   991,    29, -1398,    -6,    45,   -37,
    1725     -170,  -152,   599,   699, -1398,   929, -1398,  1962,  1701,  -437,
    1726      845, -1398, -1398,   633, -1398,  -232, -1398,    32, -1398, -1398,
    1727    -1398, -1239,   360, -1398, -1398, -1398,  1104, -1398,    38, -1398,
    1728    -1398,  -858,  -106, -1287,  -102,  2356, -1398,  2384, -1398,   852,
    1729    -1398,  -163,    97,  -172,  -171,  -166,     4,   -41,   -34,   -31,
    1730     1423,     0,     9,    37,   -68,  -160,  -157,  -153,  -151,  -324,
    1731     -522,  -480,  -478,  -541,  -297,  -552, -1398, -1398,  -495,  1023,
    1732     1037,  1038,  2410,  4141,  -567,  -561,  -559,  -542,  -556, -1398,
    1733     -425,  -675,  -673,  -671,  -591,    91,  -238, -1398, -1398,   353,
    1734      294,   -76, -1398,  3086,   180,  -588,  -295
     1715   -1318,  3762,  2543, -1318,  1454, -1318,    -1,     2,   -89, -1318,
     1716   -1318, -1318,  -483,  -942,  -282,  4006, -1318,  1670,   483,   485,
     1717     347,   484,   927,   931,   926,   932,   937, -1318,   792,  -594,
     1718    4587,   375,  -691,  -946, -1318,  -112,  -722,  -695, -1318,   412,
     1719   -1318,   304, -1184, -1318, -1318,    54, -1318, -1317,  -763,   149,
     1720   -1318, -1318, -1318, -1318,    -3, -1151, -1318, -1318, -1318, -1318,
     1721   -1318, -1318,   223,    51,    55, -1318,  -364, -1318,   402,   204,
     1722   -1318,    86, -1318,  -320, -1318, -1318, -1318,   450,  -745, -1318,
     1723   -1318,    10,  -865,   258,   180, -1318, -1318, -1318,  -222, -1318,
     1724     126,    49,  -187,   951,  3574, -1318, -1318,   213,   151,   363,
     1725    -251,  2053, -1318,  1304, -1318, -1318,   344,  1615, -1318,  1898,
     1726    1496, -1318, -1318,  -417,  -439,  1083,  1084,   597,   837,   279,
     1727   -1318, -1318,  1086,   598,   -23, -1318,    37,  -463,   807, -1318,
     1728   -1318,  -923,  -977,   142,   669,   965,   280, -1318,   175,   -35,
     1729    -257,  -199,  -156,   555,   651, -1318,   888, -1318,  1925,  1031,
     1730    -460,   803, -1318, -1318,   594, -1318,  -228, -1318,   140, -1318,
     1731   -1318, -1318, -1268,   320, -1318, -1318, -1318,  1067, -1318,     6,
     1732   -1318, -1318,  -851,   -86, -1303,  -124,  2887, -1318,  2837, -1318,
     1733     812, -1318,  -168,   585,  -176,  -173,  -171,     4,   -41,   -39,
     1734     -36,   834,    47,    56,    79,  -167,  -162,  -161,  -159,  -158,
     1735    -273,  -557,  -498,  -458,  -543,  -318,  -539, -1318, -1318,  -499,
     1736     986,   992,   993,  1485,  4182,  -565,  -577,  -550,  -542,  -536,
     1737   -1318,  -384,  -672,  -658,  -654,  -591,  -211,  -316, -1318, -1318,
     1738     152,   299,   -75, -1318,  2880,   592,  -631,  -200
    17351739};
    17361740
     
    17381742   positive, shift that token.  If negative, reduce the rule which
    17391743   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1740 #define YYTABLE_NINF -510
     1744#define YYTABLE_NINF -511
    17411745static const yytype_int16 yytable[] =
    17421746{
    1743      110,   146,    46,   447,    95,   422,   111,   263,   147,   393,
    1744      394,   148,  1076,   378,   921,   395,   922,   500,   923,   401,
    1745      606,   396,   963,   138,   397,   698,   777,   256,   398,   507,
    1746      399,   860,  1077,    46,   703,    95,   709,   843,  1168,  1169,
    1747     1211,   835,   149,   836,    46,   434,    46,   611,   158,   846,
    1748      834,   150,  1128,    47,    66,   853,    46,   742,   119,   884,
    1749      837,   747,    46,   842,   189,    46,   982,   212,    46,   140,
    1750      222,   215,  1186,  1170,   237,   240,   338,   809,  1374,   151,
    1751      831,   404,    60,   173,    47,    66,    53,   112,  1506,   393,
    1752      394,   419,   921,   276,   922,   395,   923,    94,   769,   401,
    1753      198,   396,    30,   670,   397,    30,    46,  1432,   398,    46,
    1754      399,  1519,    74,    60,   402,    46,    30,    53,   875,   876,
    1755      108,   630,   832,   679,   833,   634,   939,    30,    94,   403,
    1756      141,   683,    30,   257,   893,   530,   258,   719,    30,   145,
    1757      146,    94,   108,    74,   199,   277,    46,   147,   158,   206,
    1758      148,   511,   216,   120,    46,   477,   479,   185,   530,    46,
    1759       94,   368,  1084,    94,   528,   529,   737,   108,   405,   108,
    1760     1432,  1185,  1447,   478,    30,  1136,   549,  -225,  -225,  1194,
    1761      248,   149,   405,    46,    46,   752,   158,   473,  1394,  1395,
    1762      150,   413,   753,   405,   402,   567,   483,   740,   405,    46,
    1763      286,  1196,   844,   152,   603,   773,   530,    46,   946,   158,
    1764     1176,   139,   529,   831,   143,  1198,    46,   169,   151,    46,
    1765      146,   437,   925,  1180,   163,   530,   521,   147,   966,   568,
    1766      148,   478,  1119,   459,   668,  1245,  1177,   665,   851,   530,
    1767      603,    94,  -225,   433,   938,  1394,  1395,   467,   529,    46,
    1768      165,    95,  1396,   569,    94,   832,   441,   833,   751,   964,
    1769      249,   589,  1246,    46,    46,  1377,   158,   835,  1170,   836,
    1770       46,   248,   325,  1024,   846,   462,  1011,    46,   392,   185,
    1771      553,   554,  1168,  1169,   657,   465,   837,   694,   518,   163,
    1772      338,  1138,   703,   167,   104,   104,  1456,   485,  1003,  1023,
    1773       47,    66,    94,   435,   502,  1323,   831,   611,   372,  1405,
    1774     1186,   847,   672,  1000,    94,   850,   863,  1170,   677,   665,
    1775      864,   177,  1177,   323,   373,   104,    46,   113,   368,    60,
    1776     1200,  1076,   666,    53,   474,   108,   867,   136,   234,   381,
    1777      870,   108,   719,  1436,    94,    46,    46,   473,   832,   384,
    1778      833,  1077,   820,   108,   411,   382,   673,   675,   481,    74,
    1779      104,  1120,    46,   108,    74,   385,    46,   473,  1121,   645,
    1780      156,   235,   173,   914,   386,   473,   236,   431,  1449,   779,
    1781      197,   843,   696,   674,   676,   430,   835,   439,   836,   631,
    1782      387,  1327,    46,   635,  1505,   869,   108,   160,   136,   137,
    1783     1427,  1329,    46,   865,   368,   837,   578,   866,  -281,  1360,
    1784     1514,   388,   579,   172,   666,   323,   860,  1518,   243,   904,
    1785       46,    94,   783,   784,   785,  1436,    46,   389,    46,   254,
    1786     1436,   598,   743,   246,  1170,   156,   108,   744,   136,   137,
    1787      108,   605,   136,   137,   521,   248,  1436,   430,   521,   708,
    1788      338,   521,    46,  1436,   459,   522,   495,  1186,   496,   746,
    1789     1156,  1158,   160,   172,  1186,   529,   172,  -505,   110,   319,
    1790      260,  1065,  -109,   163,   880,   719,    46,   760,   335,  1381,
    1791      580,   239,   405,  1134,    46,   719,   368,   741,    46,   745,
    1792       95,   500,    46,  -109,   474,  1087,   885,   185,  1118,   704,
    1793      719,  1092,   684,   865,   802,   967,  1186,  1102,   579,   698,
    1794      706,   172,   -10,   757,   474,   705,  1022,   393,   394,  1106,
    1795      600,  -102,   474,   395,    74,  -102,   707,   424,   401,   396,
    1796      774,   428,   397,   757,  1024,   780,   398,  1241,   399,    47,
    1797       66,   104,   813,   611,    74,   550,   583,   695,   405,   895,
    1798      551,   552,    74,   754,  1092,   897,  1462,   755,   429,  1358,
    1799      761,   319,   450,  1462,  1421,  1422,   728,  1027,    60,   873,
    1800      873,   873,    53,   172,   704,   731,     8,     9,    10,    11,
    1801       12,  1005,   467,    94,  1346,   820,   873,   605,  1347,   455,
    1802      917,   706,    46,   428,   557,   558,   490,   529,    74,  1183,
    1803      323,   323,   681,    30,    46,  1502,    46,   918,  1183,   555,
    1804      556,   338,   531,   532,   533,  1184,   523,   473,  1233,   156,
    1805      429,  -431,  1237,   402,  1303,    46,    33,   172,  1022,   559,
    1806      560,  1312,  1404,  1191,   172,   534,   723,   535,   881,   536,
    1807     -432,    46,   981,   525,   721,   822,   160,  1313,  1314,   765,
    1808      722,  1235,   862,   894,    46,   896,  1480,    46,  1103,   943,
    1809      873,   738,  1485,   588,  1315,  1361,   595,   739,   877,   571,
    1810      703,   405,   272,   522,   820,  1321,   323,   522,  1501,   572,
    1811      522,   892,  1322,  1508,   598,   628,   338,   274,   529,   632,
    1812      275,    46,   335,    46,   323,   326,   719,   719,   933,   830,
    1813      748,   605,   172,   327,   936,   764,   749,  1035,  1274,  1275,
    1814     1464,   765,  1465,   598,  -109,   767,  -109,   405,   598,   172,
    1815     -109,   942,   328,   172,    67,   768,  1114,  1081,   886,   329,
    1816      644,  1042,   561,   562,   887,  -109,  -109,    46,    46,     2,
    1817      202,     4,     5,     6,     7,   330,   319,   319,   765,   995,
    1818      873,    46,   331,   719,   719,    67,  1503,   366,  -282,   323,
    1819      248,   325,   405,   665,   474,     8,     9,    10,    11,    12,
    1820      728,   694,   367,   600,   450,   908,   910,   450,   502,   731,
    1821      104,   765,   765,   450,   371,   172,   920,   208,   695,   898,
    1822     1065,   405,    30,   379,    74,   113,   383,    34,   947,    35,
    1823      603,   455,   861,  -456,   455,  -456,   474,   600,   948,  -456,
    1824      455,   990,   426,  1002,   921,    33,   922,   991,   923,   722,
    1825      490,  1231,   319,  1354,   490,  1160,   901,   579,   405,   765,
    1826       46,  1355,   830,   605,   523,   906,    74,   765,   523,   391,
    1827      319,   523,    46,  1357,   913,   728,   403,  1362,   915,   765,
    1828      820,  1418,   335,   765,   731,   325,   405,  1415,   666,    -3,
    1829       36,   525,   179,   180,    39,   525,   696,   730,   525,   967,
    1830     1437,    40,    41,   967,   967,   420,   765,   645,   822,   529,
    1831     1474,  1367,   421,  1048,  1522,  1140,  1183,   405,  1046,  1063,
    1832      579,  1181,   108,  1308,   136,   137,   602,  1152,   603,   405,
    1833        8,     9,    10,    11,    12,   319,   604,   444,  1155,  1417,
    1834      603,    36,  1294,  1295,    46,    39,   818,   457,  1157,   595,
    1835      603,   511,    40,    41,   719,   830,  1429,    30,    46,   413,
    1836      661,   405,   719,   719,   719,  1393,    46,   605,  1401,    63,
    1837      114,   436,   460,  1219,    66,   405,   463,    42,   859,   172,
    1838       33,  1415,  1416,   595,    46,   464,   929,   144,   929,   868,
    1839      108,   126,  1107,   127,   128,   129,    72,   483,   325,   405,
    1840       63,    67,    60,   486,   645,   506,    53,   719,   286,  1435,
    1841     1457,  1458,   172,   157,  1439,   514,  1319,  1130,  1478,  1429,
    1842      757,   571,  1130,   405,   844,   325,   603,    72,   172,  1394,
    1843     1395,   572,    74,  1226,   526,   217,  1328,  1330,  1331,  1455,
    1844      530,   172,   564,   335,   790,   791,   792,   793,   563,   874,
    1845      874,   874,   565,   695,     2,   202,     4,     5,     6,     7,
    1846      566,   695,   218,   569,   529,   450,   874,   786,   787,   334,
    1847     1130,  -428,   255,  1108,  1492,   788,   789,   794,   795,   605,
    1848      587,  1063,   224,   658,  1195,  1197,  1199,   225,   590,   640,
    1849      659,   226,   455,   660,   230,   490,   232,   662,   667,   208,
    1850     1375,   730,  1048,   241,  1375,   663,   664,  1046,   253,  1086,
    1851     1513,   669,    34,   324,    35,  1092,  1513,   687,   335,   710,
    1852     -229,   255,   345,   712,   750,  1513,   762,   766,   598,  1513,
    1853      770,   823,   883,  1188,   825,   827,   838,   889,   172,   909,
    1854      874,    46,     2,   202,     4,     5,     6,     7,   -12,   348,
    1855      882,   400,   912,   911,   690,  1283,  1284,   739,  1286,   338,
    1856      916,   474,   937,  -405,  1290,    53,   418,  1293,   323,   423,
    1857      425,  -509,   951,    36,   157,  1004,   730,    39,   958,   818,
    1858      960,   965,   971,   972,    40,    41,     8,     9,    10,    11,
    1859       12,    74,   974,   975,   976,   442,   977,  1448,   986,   445,
    1860       34,   446,    35,   997,   998,   999,  1013,  1281,  1014,   828,
    1861      461,   603,  1280,    30,   104,  1015,    63,   861,  1016,   604,
    1862     1017,   475,   443,   215,  1018,  1019,  1030,  -393,   225,   208,
    1863      874,   482,  -392,  1044,  1078,  1080,    33,    46,  1063,   425,
    1864       67,    36,  1095,    72,  1088,    39,  1089,    36,    72,   170,
    1865      171,    39,    40,    41,  1090,  1202,  1091,   728,    40,    41,
    1866       54,    54,  1096,  1107,  1097,  1098,   731,    36,   818,   170,
    1867      171,    39,   450,  1099,  1130,  1130,  1130,    42,    40,    41,
    1868     1105,   104,  1115,   367,  1117,   765,  1116,   144,  1206,  1122,
    1869     1150,    54,   980,    66,  1512,  1126,  1129,  1413,  1171,   455,
    1870     1173,   172,  1172,   206,   216,  1174,   255,  1207,  1175,   596,
    1871     1189,  1190,   490,  1109,   319,   624,  1192,  1193,  1201,    -3,
    1872     1212,    60,  1400,    54,  1205,    53,    54,  1217,   629,  1063,
    1873     -283,  1223,   629,  1227,   495,   255,   728,     8,     9,    10,
    1874       11,    12,   218,   924,  1108,   731,  1232,   393,   394,  1234,
    1875     1239,    74,  1107,   395,  1236,  1243,  1247,   401,  1250,   396,
    1876     1252,  1254,   397,   859,    30,   924,   398,   225,   399,   230,
    1877     1255,  1188,  1318,   104,  1256,  1257,  1258,   665,   436,  1260,
    1878     1267,   475,  1276,  1063,  1277,  1285,  1063,    33,  1288,  1289,
    1879     1291,  1292,  1302,  1491,  1310,  1316,   345,  1299,   435,   474,
    1880     1320,   475,  1325,    53,    46,    46,  1324,  1326,    72,   475,
    1881     1332,  1130,  1130,   343,    36,  1333,   179,   180,    39,  1334,
    1882     1336,  1342,  1343,   348,  1344,    40,    41,  1063,    72,    74,
    1883     1345,  1412,  1063,  1108,  1352,   715,    72,  1353,   425,  1356,
    1884     1048,  1167,  1363,   450,   818,  1046,  1107,  1295,  1366,  1368,
    1885      181,  1371,   402,   729,   994,    63,   225,  1063,  1369,  1378,
    1886      182,  1381,   348,   425,    36,  1388,  1389,   425,    39,   208,
    1887      455,  -394,   666,  1403,  1392,    40,    41,    54,   146,  1407,
    1888      348,  1409,    72,   208,   720,   147,  1414,  1419,   148,    75,
    1889     1364,  1423,  1347,  1424,  1428,   255,   345,   159,  1425,  1493,
    1890      735,    46,  1426,  1442,  1433,  1438,  1440,    54,  1444,  1063,
    1891      736,  1446,   104,   190,  1063,  1450,   213,  1451,  1188,   223,
    1892       75,    46,    46,   348,   158,  1188,  1452,  1108,  1063,  1463,
    1893     1063,  1471,  1037,   104,  1063,  1473,  1476,  1063,  1477,  1484,
    1894     1496,   808,    46,  1063,   368,  1497,   474,  1063,  1500,  1507,
    1895       53,  1509,   104,   474,  1515,   219,   796,    53,   730,   629,
    1896      821,   335,   596,  1521,   798,   797,  1242,  1188,   799,  1301,
    1897     1406,  1479,  1523,   840,  1365,   208,    74,    36,  1495,   179,
    1898      180,    39,   800,    74,  1109,  1379,  1466,   348,    40,    41,
    1899     1238,   596,  1093,   685,   172,   474,   596,   159,   686,    53,
    1900     1094,   930,   629,   714,   815,   345,   345,   345,   888,  1125,
    1901      369,   104,  1043,   689,   953,   405,   481,  1104,  1311,   924,
    1902      733,   690,   345,   691,   805,    74,     8,     9,    10,    11,
    1903       12,   961,   348,   348,   348,   159,     0,  1467,   806,   807,
    1904      715,   104,   350,    36,    67,   170,   171,    39,  1137,   348,
    1905        0,   475,     0,    30,    40,    41,   255,   729,   159,     0,
    1906      926,     0,     0,    77,     0,     0,  1494,   348,     0,     0,
    1907      438,     0,     0,  1109,     0,     0,    33,   210,    72,   371,
    1908        0,     0,     0,     0,   348,  1349,     0,   343,     0,   720,
    1909        0,     0,     0,   475,    77,     0,   345,     0,  1037,     0,
    1910      907,     0,     0,     0,  1520,   952,   323,     0,   425,     0,
    1911        0,     0,     0,     0,     0,     0,  1525,   767,     0,   405,
    1912       72,     0,     0,   348,     0,     0,     0,   768,   210,   220,
    1913        0,   255,   729,     0,     0,   104,    75,   979,     0,     0,
    1914        0,    75,     0,     0,     0,  -284,    54,     8,     9,    10,
    1915       11,    12,     8,     9,    10,    11,    12,     0,   104,   348,
    1916        0,   172,     0,     0,   436,   104,     0,  1109,     0,     0,
    1917        0,   210,   924,   715,    30,     0,     0,   369,    36,    30,
    1918      179,   180,    39,   715,     0,     0,   345,   343,   629,    40,
    1919       41,  1010,   629,   821,   211,     0,     0,    33,   715,  1469,
    1920      348,     0,    33,    67,     0,     0,     0,   104,  1021,     0,
    1921      348,   238,     0,   348,   261,     0,   351,     0,   218,     0,
    1922      348,     0,   720,     0,   262,   348,  1470,     0,  1469,   924,
    1923      924,   210,   720,   996,     0,   219,     0,     0,   947,     0,
    1924      603,     0,     0,  1001,     0,   211,     0,   720,   948,     0,
    1925        0,   343,   319,   369,     0,  1470,     0,     0,  1012,    63,
    1926        0,     0,     0,     0,     0,     0,     0,     0,    36,   210,
    1927      179,   180,    39,   210,     0,     0,     0,     0,     0,    40,
    1928       41,   629,     0,     0,     0,     0,    72,     0,   211,     0,
    1929        0,     0,     0,     0,     0,     0,   343,   343,   343,     0,
    1930        0,    75,     0,     0,   689,     0,   405,     0,     0,     0,
    1931       77,     0,     0,   343,   691,    77,   350,  1101,     0,     0,
    1932       36,    75,   179,   180,    39,   425,   114,     0,     0,    75,
    1933        0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
    1934        0,   208,   345,     0,     0,     0,     0,     0,   211,     0,
    1935        0,     0,     0,     0,     0,   350,  1489,     0,   405,   210,
    1936        0,     0,     0,    67,     0,     0,  1490,     0,     0,   348,
    1937        0,     0,     0,   350,     0,    75,   596,     0,     0,     0,
    1938        0,     0,     0,     0,     0,     0,   211,   343,     0,   423,
    1939      211,     0,    84,     0,   715,   715,     0,   345,   345,   537,
    1940      538,   539,   540,   541,   542,   543,   544,   545,   546,   220,
    1941        0,     0,     0,     0,     0,     0,   350,     0,  1187,     0,
    1942        0,   348,   348,    84,   348,   348,     0,     0,     0,     0,
    1943      924,     0,   547,     0,     0,     0,   436,     0,     0,   210,
    1944        0,    67,     0,   720,   720,    72,     0,   924,     0,     0,
    1945        0,   715,   715,     0,  1165,  1166,     0,   629,   221,     0,
     1747     110,   146,    46,   147,    95,   393,   148,   447,   394,   378,
     1748     395,   111,   704,   422,   401,   402,   434,   885,   923,   396,
     1749     397,   731,   398,   399,   500,   836,   611,   263,   256,   965,
     1750     473,   861,   924,    46,   743,    95,   925,   140,   748,   844,
     1751     710,  1078,  1129,   630,    46,   832,    46,   634,   158,  1374,
     1752     113,   778,   837,  1137,  1171,    47,    46,    30,    30,   404,
     1753     838,   843,    46,   835,   189,    46,   699,   212,    46,   847,
     1754     222,   606,    30,   810,   120,   854,   215,   338,   108,   108,
     1755     984,  1436,   108,   276,   941,   393,    47,   530,   394,   149,
     1756     395,  1432,   671,   156,   401,   402,   923,   927,   150,   396,
     1757     397,  1181,   398,   399,   833,    30,    46,  1169,  1170,    46,
     1758     924,   419,   680,  1120,   925,    46,   198,   119,   403,   940,
     1759     684,   151,   248,   405,   405,  1199,    60,  1177,   286,   598,
     1760    -225,  -225,    30,   477,   479,   277,   413,  1195,   405,   770,
     1761     146,  1197,   147,  1447,   834,   148,    46,  1077,   158,   248,
     1762     325,    67,   254,  1178,    46,  1432,   968,    60,   156,    46,
     1763     199,   368,   478,   675,   677,  1436,  1394,  1395,   108,   483,
     1764    1436,   405,   139,   875,   875,   875,    30,   108,   521,   832,
     1765      54,    54,    67,    46,    46,  1187,   158,  1436,   507,   567,
     1766     473,   875,   319,   108,  1436,  -225,   160,  1066,   108,    46,
     1767     530,   335,   530,    30,   138,   669,   774,    46,  1246,   158,
     1768     473,    54,   141,    66,   208,   780,    46,   738,   473,    46,
     1769     146,   437,   147,   568,   143,   148,   731,   753,   149,  1085,
     1770    1396,  1327,   666,   667,   754,  1247,  1329,   150,   833,   747,
     1771     845,   864,   603,    54,    66,   865,    54,   467,  1171,    46,
     1772     424,    95,   836,   465,   428,   237,   240,   761,    53,   112,
     1773     151,   160,   589,    46,    46,   875,   158,   852,   152,   603,
     1774      46,   704,   832,   732,   821,   167,  1026,    46,   834,   837,
     1775     372,   530,   695,   697,   319,   450,   611,   838,   518,    53,
     1776    1013,   338,   741,  -455,  1323,   847,   373,  1171,  1025,   104,
     1777     104,   731,    47,  1508,   658,  1186,  1139,  1377,   674,   676,
     1778    1002,   887,  1394,  1395,   666,   667,   428,   870,   530,   490,
     1779    1517,   206,   814,  -455,   216,  -455,    46,  1521,   368,  -455,
     1780     104,   833,   673,   343,   173,  1457,  1509,  1201,   678,   523,
     1781     381,   888,   156,   645,    74,    46,    46,   889,   550,   165,
     1782    1169,  1170,   966,   551,   552,   875,   382,   429,  1192,  1078,
     1783    1522,  1178,    46,   916,   441,   104,    46,   108,   436,   136,
     1784     137,   834,   836,    60,  1119,    74,  1405,   866,   474,   478,
     1785     177,   867,   598,   462,   257,   844,   588,   258,   455,   595,
     1786     197,   108,    46,   136,   137,  -281,   521,    54,    67,   837,
     1787     521,   569,    46,   521,   368,   881,   848,   838,   628,   384,
     1788     851,   598,   632,  1171,   459,   335,   598,   752,   861,   429,
     1789      46,   108,  1187,   136,   234,   385,    46,    54,    46,  -109,
     1790     225,   868,   239,   386,   226,   871,  1381,   230,   578,   232,
     1791    1421,  1422,   525,    36,   579,   160,   241,    39,   243,   387,
     1792    -109,   338,    46,   246,    40,    41,   803,   235,  -109,  -109,
     1793      66,   473,   236,  -506,   169,  1077,   685,  1427,   110,   319,
     1794     319,   248,   579,   755,  -109,   435,    46,   756,   732,   829,
     1795     762,   603,  1157,  1159,    46,   722,   368,   -10,    46,   604,
     1796      95,   723,    46,   886,   433,  1242,   208,   450,  1107,   500,
     1797     450,  1088,  1121,   945,  1007,    53,   450,   249,   821,  1122,
     1798    1135,   388,   260,   758,   393,  1066,   739,   394,   113,   395,
     1799     553,   554,   740,   611,   401,   402,  1236,   389,   396,   397,
     1800     775,   398,   399,   758,   899,   781,  -431,  1026,   474,  -432,
     1801     705,    47,  1360,   490,  1093,   319,   104,   490,   485,   495,
     1802     646,   496,   699,   732,   326,   502,   706,   523,   474,   557,
     1803     558,   523,   707,   319,   523,  1358,   474,  1168,  1024,  1187,
     1804     897,   225,   705,   707,  1184,   335,  1187,  1184,   708,   906,
     1805     379,   749,   467,  1275,  1276,    94,  1312,   750,   919,   920,
     1806    1185,    74,    46,  1303,   559,   560,    74,  1093,   821,   272,
     1807     455,   411,  1313,   455,    46,  1367,    46,   343,   720,   455,
     1808     729,   274,    60,   338,   876,   877,    94,  1314,   866,   580,
     1809    1187,   405,  1103,   173,   431,    46,   208,   145,   319,    94,
     1810     709,   895,   275,  1315,   439,   459,   163,    67,  1404,   819,
     1811     631,    46,   595,  1321,   635,   185,   765,   366,    94,   704,
     1812    1322,    94,   766,   766,   896,    46,   898,  -102,    46,  1393,
     1813     525,  -102,  1401,  1029,   525,   969,    54,   525,   742,  1361,
     1814     746,   860,   910,   874,   874,   874,   595,   327,   766,  1037,
     1815     328,  1024,   869,   731,   108,   329,   136,   137,   338,  1463,
     1816     330,   874,    46,  1346,    46,   331,  1463,  1347,  1482,    66,
     1817    1082,   163,   522,  1435,  1487,   948,   367,   343,  1439,  -109,
     1818     225,  -109,   230,   555,   556,  -109,  1465,   571,  1466,   405,
     1819     744,  1504,   944,   561,   562,   745,  1511,   572,  1044,    94,
     1820    -109,  -109,  1115,  1456,   583,   323,   405,   335,    46,    46,
     1821    1505,   768,    94,   405,    53,     2,   202,     4,     5,     6,
     1822       7,   769,    46,   371,  1234,  1104,    74,   912,  1238,   450,
     1823     666,   667,   383,   766,  1506,   874,   392,   185,   695,   697,
     1824     391,   343,   949,   821,   603,   436,    74,   248,   325,   405,
     1825     992,  1004,   950,  1417,    74,   104,   993,   723,  1232,   490,
     1826      94,   413,   662,   405,   579,  1005,   403,   430,   598,   225,
     1827    1429,   420,    94,    34,   823,    35,   900,  1516,   405,   474,
     1828    1349,   421,   335,  1516,   720,   729,   343,   343,   343,   923,
     1829     882,   426,  1516,  1354,   766,   997,  1516,   323,   444,   766,
     1830      74,    46,    94,   924,   343,  1161,    36,   925,   179,   180,
     1831      39,    36,   457,    46,  1355,    39,   481,    40,    41,   682,
     1832     766,   474,    40,    41,  1357,   874,   483,   325,   405,   430,
     1833     766,   463,   455,  1480,  1429,    -3,   903,   208,   405,  1006,
     1834    1362,   464,   602,   819,   603,   460,   766,    42,   159,   108,
     1835     935,   208,   604,   724,   486,   163,   938,   144,   506,  1182,
     1836     729,  1064,  1418,  1437,   190,  1475,  1525,   213,  1415,   766,
     1837     223,  1476,   579,   863,   791,   792,   793,   794,   343,    94,
     1838       8,     9,    10,    11,    12,   108,    46,   136,   137,   878,
     1839     522,   845,   325,   603,   522,   514,  1141,   522,   405,   605,
     1840      46,   526,   600,   894,  1153,   732,   405,    30,    46,     2,
     1841     202,     4,     5,     6,     7,   286,  1156,   720,   603,   530,
     1842      36,    63,   114,  1158,    39,   603,    46,   720,   325,   405,
     1843      33,    40,    41,   819,  1328,  1330,  1331,   450,  1220,  1108,
     1844     405,   563,   720,   208,   931,   564,   931,   566,   159,   531,
     1845     532,   533,    63,  1294,  1295,   185,   736,  1415,  1416,  1131,
     1846     565,   369,   758,  -428,  1131,   157,   737,    34,   343,    35,
     1847     569,   571,   534,   405,   535,   343,   536,   490,  1110,   319,
     1848     334,   572,   323,   323,   732,   587,   159,   217,    60,   126,
     1849     590,   127,   128,   129,  1227,  1458,  1459,    74,   640,   969,
     1850     502,  1394,  1395,   969,   969,   696,   787,   788,   823,   159,
     1851     789,   790,  1131,    67,   659,   795,   796,   660,   661,   663,
     1852     664,   438,  1064,   668,   255,  1196,  1198,  1200,   860,   646,
     1853     665,   670,   253,   711,   688,   751,  1049,   713,  -229,    74,
     1854     455,    94,    54,   763,   767,   605,   771,   824,  1283,  1284,
     1855     826,  1286,   828,   908,   839,   884,  1494,  1290,   323,   891,
     1856    1293,   -12,   915,   883,   211,   324,   917,     8,     9,    10,
     1857      11,    12,   911,   255,   345,    66,   323,   913,   914,   918,
     1858     691,   238,    46,   939,     8,     9,    10,    11,    12,  -405,
     1859    -510,   953,   960,   740,    30,   962,   967,   973,   974,  1093,
     1860     977,   338,   978,   400,   979,   721,   976,   450,   819,    54,
     1861     999,    30,   988,  1000,  1001,   211,  1319,    33,   418,  1015,
     1862      53,   423,   425,  1016,  1017,   343,   157,   646,   369,  1018,
     1863    1019,  1020,  1021,   436,    33,  1032,  -393,  -392,  1079,   720,
     1864     720,   323,  1081,  1046,  1089,  1090,   474,   442,  1091,  1092,
     1865    1097,   445,  1096,   446,  1099,   600,  -282,   831,   211,   605,
     1866    1098,   104,   461,     8,     9,    10,    11,    12,    63,   215,
     1867    1100,    67,  1106,   475,  1116,   768,   766,   405,    46,  1064,
     1868     343,   343,  1117,   482,   862,   769,  1118,  1109,   982,   600,
     1869      30,   425,  1123,  1127,  1130,   720,   720,  1151,  1174,  1375,
     1870      54,  1172,  1173,  1375,   369,  1175,    74,  1190,  1176,  1108,
     1871     455,  1206,  1191,    33,  1400,  1131,  1131,  1131,   211,    36,
     1872    1193,   170,   171,    39,  1049,   335,  1194,  1202,   104,  1207,
     1873      40,    41,    36,  1189,   170,   171,    39,  1208,    -3,  1213,
     1874    1515,  1218,   729,    40,    41,   922,  1224,   696,  1110,   495,
     1875    1228,  1233,  1235,  1237,  1240,  -283,   211,  1413,   255,  1244,
     1876     211,   596,     8,     9,    10,    11,    12,   624,   367,  1064,
     1877    1248,  1253,  1251,  1255,    72,  1256,  1257,  1285,    53,  1258,
     1878     629,  1259,  1261,  1268,   629,   393,  1277,   255,   394,    30,
     1879     395,   831,   605,  1278,   401,   402,  1448,  1108,  1087,   396,
     1880     397,  1302,   398,   399,  1310,    72,    60,  1288,  1289,   208,
     1881    1291,   721,    33,  1316,  1292,   666,   667,  1299,  1318,   104,
     1882    1320,   729,  1325,  1064,  1324,  1326,  1064,  1332,  1333,  1281,
     1883    1334,    67,  1336,   475,  1342,  1308,  1110,  1343,    54,    54,
     1884     218,  1344,  1345,  1356,    46,    46,   211,  1352,   345,  1353,
     1885    1363,  1131,  1131,   475,  1493,  1295,  1366,  1368,  1369,  1371,
     1886      54,   475,  1378,  1381,    74,  1388,   720,  1064,  1389,  -394,
     1887    1392,  1403,  1064,  1407,   720,   720,   720,  1409,  1414,    54,
     1888    1423,  1419,  1424,   474,   831,  1449,  1428,   716,  1425,  1426,
     1889     425,  1108,  1433,    66,  1438,  1442,   605,  1064,  1347,  1440,
     1890    1444,  1446,  -284,   436,  1453,   730,  1451,    63,    67,     8,
     1891       9,    10,    11,    12,  1472,   425,   206,   216,   720,   425,
     1892     146,  1452,   147,   343,   343,   148,   211,   348,  1474,  1464,
     1893    1110,  1478,    54,  1479,  1486,  1498,    30,    54,    53,  1499,
     1894    1495,  1518,    46,  1203,   721,  1500,  1503,   255,   345,   909,
     1895    1510,  1064,  1512,   926,   721,  1524,  1064,  1109,   104,    33,
     1896     797,   799,  1470,    46,    46,   798,   158,    54,   800,   721,
     1897    1189,  1064,  1243,  1064,   801,   926,   211,  1064,   172,   104,
     1898    1064,  1406,  1481,   696,  1301,    46,  1064,   368,  1526,  1365,
     1899    1064,   696,  1470,   809,  1497,  1239,  1379,  1467,   104,  1212,
     1900     443,   686,   687,  1094,   932,  1045,  1095,  1126,   890,   605,
     1901     435,   629,   822,   955,   596,    53,   715,   319,   816,  1311,
     1902    1105,    72,   323,   734,    74,   841,    72,   806,   172,   210,
     1903     474,   172,   963,   807,   808,     0,     0,   474,     0,     0,
     1904     343,     0,     0,   596,     0,  1109,     0,     0,   596,     0,
     1905       0,     0,     0,     0,   629,    67,   104,   345,   345,   345,
     1906       0,    54,    67,     0,   996,  1471,    36,     0,   179,   180,
     1907      39,   862,     0,     0,     0,   345,   172,    40,    41,     0,
     1908     210,   474,   998,     0,    54,    75,   104,     0,     0,     0,
     1909       0,    54,  1003,   716,     0,  1471,     0,   211,     0,     0,
     1910       0,    74,   181,     0,   475,     0,    67,  1014,     0,   255,
     1911     730,     0,   182,   928,     0,     0,    75,  1189,     0,     0,
     1912     218,     0,  1412,   210,  1189,   211,     0,     0,     0,     0,
     1913     211,     0,     0,     0,     0,    54,     0,     0,   172,  1109,
     1914     407,     0,  1039,     0,     0,     0,   475,   415,     0,   345,
     1915       0,   219,    36,     0,   179,   180,    39,     0,   954,     0,
     1916       0,   425,    53,    40,    41,     0,   721,   721,  1189,    53,
     1917       0,     0,     0,     0,     0,     0,     0,  1364,     0,     0,
     1918     104,     0,     0,   210,   255,   730,    72,     0,   261,     0,
     1919     981,     0,   172,    36,     0,   170,   171,    39,   262,   172,
     1920       0,   348,     0,   104,    40,    41,    72,     0,     0,     0,
     1921     104,     0,     0,    53,    72,     0,     0,   211,     0,   407,
     1922       0,   210,   721,   721,     0,   210,   716,     0,     0,   371,
     1923     926,   211,     0,     0,     0,     0,   716,     0,   350,   345,
     1924     348,   629,     0,     0,  1012,   629,   822,     0,    74,     0,
     1925       0,   716,     0,     0,   104,    74,     0,     0,   348,  1138,
     1926      72,  1023,     8,     9,    10,    11,    12,   172,     0,     0,
     1927       0,     0,     0,     0,   577,     8,     9,    10,    11,    12,
     1928       0,     0,   581,     0,   172,   584,     0,     0,   172,    30,
     1929       0,     0,     0,     0,     0,     0,     0,     0,     0,    74,
     1930       0,   348,    30,     0,  1166,  1167,     0,     0,     0,  1039,
     1931       0,   210,    33,    63,     0,     0,     0,    36,     0,   179,
     1932     180,    39,     0,   211,  1468,    33,     0,     0,    40,    41,
     1933      36,     0,    75,     0,    39,   629,     0,    75,     0,     0,
     1934       0,    40,    41,     0,     0,     0,     0,   407,     0,     0,
     1935     172,   415,     0,   602,  1496,   603,     0,     0,     0,     0,
     1936    1215,  1216,  1309,   604,     0,   348,    42,     0,    77,     0,
     1937       0,  1102,     0,     0,     0,     0,   144,     0,     0,   425,
     1938     114,     0,   926,     0,     0,     0,     0,     0,     0,     0,
     1939       0,   210,     0,   721,  1523,    84,   345,     0,     0,    77,
     1940       0,   721,   721,   721,     0,     0,  1528,     0,     0,     0,
     1941     348,   348,   348,     0,     0,     0,     0,     0,     0,   511,
     1942       0,     0,     0,     0,     0,     0,    84,     0,   348,     0,
     1943     596,   219,   528,   529,   220,     0,   407,     0,     0,   926,
     1944     926,   210,     0,   423,   549,   721,   348,     0,   716,   716,
     1945       0,   345,   345,     0,     0,     0,     0,    72,     0,     0,
     1946       0,   221,     0,   348,     0,     8,     9,    10,    11,    12,
     1947       0,  1188,     2,   202,     4,     5,     6,     7,     0,     0,
     1948     529,     0,    36,     0,   179,   180,    39,     0,     0,     0,
     1949       0,     0,    30,    40,    41,     0,     0,    75,     0,    72,
     1950     224,     0,   348,     0,   716,   716,     0,     0,     0,     0,
     1951     629,     0,   350,   211,   172,    33,   529,    75,   690,     0,
     1952     405,   351,     0,     0,     0,    75,   577,   577,   692,     0,
     1953      34,  1335,    35,     0,     0,     0,     0,     0,   348,  1337,
     1954    1338,  1339,     0,     0,     0,     0,   481,   172,   358,     0,
     1955       0,   350,     0,     0,     0,     0,   949,     0,   603,     0,
     1956     323,     0,   210,   172,     0,     0,   950,   730,     0,   350,
     1957      36,    75,   179,   180,    39,     0,     0,   172,     0,   348,
     1958       0,    40,    41,  1370,     0,     0,   209,     0,     0,   348,
     1959     210,     0,   348,     0,     0,   210,   228,   218,     0,   348,
     1960       0,     0,     0,     0,   348,     0,  1491,     0,   405,     0,
     1961    1282,     0,   350,     0,   901,    77,  1492,     0,   904,     0,
     1962      77,    36,     0,   179,   180,    39,     0,   255,     0,     0,
     1963       0,    63,    40,    41,     0,     0,     0,   209,     0,   926,
     1964       0,     0,    84,     0,   716,     0,   730,    84,     0,     0,
     1965     114,   407,     0,     0,     0,     0,   926,   690,     0,   405,
     1966       0,     0,     0,     0,     0,   691,    72,   692,     0,     0,
     1967       0,     0,     0,     0,   172,   716,   350,     0,     0,     0,
     1968     209,     0,   210,   716,   716,   716,     0,     0,     0,   211,
     1969     784,   785,   786,     0,   345,   345,   210,   537,   538,   539,
     1970     540,   541,   542,   543,   544,   545,   546,     0,  1188,     0,
     1971       0,     0,     0,     0,   220,     0,     0,     0,     0,   926,
     1972     926,   350,   350,   350,     0,     0,     0,   716,     0,     0,
     1973     547,     0,     0,   529,     0,     0,     0,     0,   114,   350,
     1974     209,   221,     0,     0,     0,     0,     0,     0,     0,   348,
     1975       0,     0,     0,     0,     0,     0,     0,   350,     0,     8,
     1976       9,    10,    11,    12,   577,     0,     0,     0,    75,     0,
     1977       0,     0,     0,     0,   350,     0,     0,     0,   209,     0,
     1978      77,     0,   209,   211,     0,     0,    30,     0,   210,     0,
     1979       0,     0,     0,     0,     0,   351,     0,     0,   501,     0,
     1980      77,   348,   348,     0,   348,   348,     0,    84,    77,    33,
     1981      75,   345,     0,   350,    36,     0,   179,   180,    39,     0,
     1982       0,     0,   358,     0,    72,    40,    41,    84,     0,     0,
     1983       0,     0,   114,     0,   351,    84,     0,     0,   172,     0,
     1984       0,     0,     0,     0,     0,     0,     0,     0,     0,   350,
     1985     181,     0,   351,     0,    77,  1188,     0,   348,   348,     0,
     1986     182,   358,  1188,     0,     0,     0,   529,     0,   209,     0,
     1987       0,     0,     0,     0,     0,     0,     0,   407,     0,   358,
     1988       0,    84,     0,     0,     0,     0,     0,     0,     0,     0,
     1989     350,     0,     0,     0,     0,   351,     0,     0,     0,     0,
     1990     350,     0,     0,   350,     0,     0,  1188,     0,   219,     0,
     1991     350,   983,     0,  1513,     0,   350,     0,     0,     0,     0,
     1992     348,     0,   358,     0,   469,     2,   202,     4,     5,     6,
     1993       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     1994      17,    18,    19,    20,    21,    22,    23,    24,   209,     0,
     1995      25,    26,    27,     0,  1142,     0,     0,   529,    30,   351,
     1996       0,     0,     0,   218,     0,   209,     0,     0,     0,     0,
     1997    1154,     0,     0,     0,     0,     0,     0,    75,   210,     0,
     1998       0,    33,     0,    34,    72,    35,   358,     0,    37,    38,
     1999       0,     0,     0,     0,     0,     0,     0,   348,   209,   348,
     2000       0,     0,     0,     0,   351,   351,   351,     0,     0,     0,
     2001       0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     2002      12,     0,   351,     0,     0,     0,     0,    -3,   348,     0,
     2003       0,   358,   358,   358,     0,     0,   348,   348,   348,     0,
     2004     351,     0,     0,    30,     0,  1221,     0,   348,   348,   358,
     2005       0,    77,     0,     0,     0,     0,     0,   351,     0,     0,
     2006     350,    72,     0,   164,     0,   168,    33,   358,   174,   175,
     2007     176,    36,   178,   179,   180,    39,     0,     0,    84,     0,
     2008     348,     0,    40,    41,   358,     0,     0,   229,     0,     0,
     2009       0,     0,     0,    77,     0,     0,   351,     0,     0,   244,
     2010     245,     0,     0,     0,     0,     0,     0,   690,     0,   405,
     2011       0,     0,   350,   350,     0,   350,   350,   692,     0,   209,
     2012      84,     0,     0,   358,     0,     0,     0,     0,     0,     0,
     2013     172,     0,   351,     0,     0,    75,     0,     0,     0,     0,
     2014       0,     0,     0,     0,     0,     0,     0,   209,     0,   529,
     2015       0,     0,   209,     0,   210,     0,     0,     0,     0,   358,
     2016       0,     0,     0,     0,   348,     0,     0,     0,   350,   350,
     2017       0,     0,     0,   351,     0,     0,     0,     8,     9,    10,
     2018      11,    12,     0,   351,     0,     0,   351,     0,     0,     0,
     2019     511,   220,     0,   351,     0,     0,     0,     0,   351,     0,
     2020     358,     0,     0,     0,    30,     0,     0,     0,    72,     0,
     2021     358,     0,     0,   358,     0,    72,     0,     0,   221,     0,
     2022     358,     0,     0,     0,     0,   358,     0,    33,     0,     0,
     2023       0,   350,    36,     0,   179,   180,    39,     0,     0,   209,
     2024       0,     0,     0,    40,    41,     0,     0,     0,   210,     0,
     2025       0,     0,     0,   209,     0,     0,     0,     0,     0,    72,
     2026      77,     8,     9,    10,    11,    12,     0,     0,  1491,     0,
     2027     405,     0,     0,   501,   219,     0,     0,     0,  1492,     0,
     2028       0,     0,     0,     0,     0,     0,     0,    84,    30,     0,
     2029       0,     0,     0,     0,     0,    75,   172,     0,     0,     0,
     2030       0,     0,     0,   529,     0,     0,     0,     0,   350,     0,
     2031     350,    33,     0,     0,     0,     0,    36,     0,   179,   180,
     2032      39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
     2033       0,     0,   123,   123,   123,     0,     0,     0,     0,   350,
     2034       0,     0,     0,   351,     0,   209,     0,   350,   350,   350,
     2035       0,     0,   261,   594,   601,     0,     0,     0,   350,   350,
     2036       0,     0,   262,     0,     0,   625,   626,     0,     0,     0,
     2037     358,     0,    75,     0,     0,     0,     0,     0,     0,     0,
     2038       0,     0,   121,   124,   125,     0,     0,     0,     0,     0,
     2039       0,   350,     0,     0,   162,   351,   351,     0,   351,   351,
     2040       0,     0,     0,   123,     0,   123,     0,     8,     9,    10,
     2041      11,    12,     0,   214,     0,     0,     0,     0,    77,     0,
     2042       0,     0,   358,   358,     0,   358,   358,     0,     0,   271,
     2043       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
     2044       0,     0,     0,     0,     0,    84,     0,     0,     0,     0,
     2045       0,   351,   351,   250,     0,   251,     0,    33,     0,   162,
     2046       0,     0,    36,     0,   268,     0,    39,     0,     0,     0,
     2047       0,     0,     0,    40,    41,   350,     0,     0,   358,   358,
     2048       0,     0,     0,     0,   123,     0,     0,     0,     0,     0,
     2049       0,     0,   123,   162,   123,   123,     0,     0,   736,   123,
     2050       0,   123,   123,   364,     0,     0,     0,   370,   737,     0,
     2051       0,     0,     0,     0,   351,     0,     0,     0,     0,    75,
     2052       0,     0,     0,     0,     0,   278,    75,   279,     0,     0,
     2053       0,     0,     0,     0,   390,   209,     0,     0,     0,     0,
     2054       0,   358,     0,     0,   409,   410,     0,     0,   280,   414,
     2055       0,   416,   417,     0,   281,   162,     0,   220,   282,     0,
     2056       0,   283,   284,   285,   286,    40,    41,   214,   287,   288,
     2057      75,   123,     0,     0,     0,     0,   289,     0,    77,     0,
     2058       0,     0,     0,     0,   221,   162,   456,     0,     0,     0,
     2059     290,   351,   374,   351,     0,     0,     0,     0,     0,   292,
     2060     376,   294,   295,   296,   297,    84,     0,     0,     0,   370,
     2061       0,     0,     0,  1204,     0,     0,     0,   162,   358,     0,
     2062     358,     0,   351,     0,     0,     0,     0,     0,     0,     0,
     2063     351,   351,   351,     0,     0,     0,     0,     0,     0,     0,
     2064     456,   351,   351,   162,     0,     0,     0,  1022,     0,   358,
     2065       8,     9,    10,    11,    12,    77,     0,   358,   358,   358,
     2066       0,     0,     0,     0,     0,     0,     0,     0,   358,   358,
     2067       0,     0,     0,     0,   351,     0,   278,    30,   279,     0,
     2068       0,     0,    84,     0,     0,     0,     0,     0,     0,     0,
     2069     599,     0,     0,     0,     0,   623,     0,     0,     0,   280,
     2070      33,   358,     0,     0,     0,   281,     0,     0,     0,   282,
     2071       0,   209,   283,   284,   285,   286,    40,    41,     0,   287,
     2072     288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
     2073     942,     0,   943,     0,     0,     0,     0,     0,     0,   946,
     2074     947,   290,     0,   374,   952,     0,     0,     0,     0,     0,
     2075     292,   817,   294,   295,   296,   297,   957,     0,   351,     0,
     2076       0,   961,     0,     0,     0,     0,     0,     0,     0,     0,
     2077     162,   162,     0,     0,     0,     0,     0,   364,     0,     0,
     2078       0,     0,     0,     0,     0,   358,   989,     0,     0,     0,
     2079       0,     0,     0,     0,     0,     0,     0,     0,   456,     0,
     2080       0,   456,    77,     0,     0,   209,     0,   456,     0,    77,
     2081       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2082      18,    19,    20,    21,    22,    23,    24,  -285,     0,    84,
     2083     594,     0,     0,     0,   733,     0,    84,    30,     0,     0,
     2084       0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
     2085       0,     0,     0,    77,     0,     0,     0,     0,   456,     0,
     2086      33,     0,   456,     0,   162,   456,     0,     0,     0,     0,
     2087       0,  -285,     0,     0,     0,     0,     0,   364,     0,     0,
     2088      84,     0,   123,   123,     0,     0,     0,  1033,  1034,  1035,
     2089    1036,     0,  1038,     0,     0,     0,     0,     0,     0,     0,
     2090       0,     0,     0,     0,     0,     0,     0,     0,  1080,     0,
     2091       0,     0,   123,     0,     0,   123,   123,     0,   123,     0,
     2092     123,   123,  1086,     0,     0,   123,   123,     0,     0,   162,
     2093       0,     0,   811,   812,     0,     0,     0,     0,     0,     0,
     2094       0,   364,     0,   599,     0,     0,   827,     0,     0,     0,
    19462095       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1947        0,     0,     0,     0,     0,    77,   211,   343,   348,   348,
    1948      350,     0,   209,     0,   343,     0,     0,     0,     0,   210,
    1949      351,     0,   228,     0,     0,    77,     0,     0,     0,     0,
    1950      720,   720,     0,    77,     0,     0,     0,     0,     0,   924,
    1951      924,  1214,  1215,     0,   729,     0,     0,     0,     0,     0,
    1952        0,     0,     0,     0,     0,   350,   350,   350,     0,   351,
    1953        0,     0,     0,   209,     0,     0,     0,     0,     0,     0,
    1954        0,   348,   350,     0,     0,   358,     0,   351,     0,    77,
    1955       54,     0,     0,     0,     0,     0,   211,  1282,     0,     0,
    1956      350,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1957        0,    75,     0,     0,   255,     0,   209,   350,    63,     0,
    1958        0,     0,     0,     0,   218,     0,     0,     0,    67,     0,
    1959      351,   715,     0,   729,     0,    67,     0,   114,     0,     0,
    1960        0,     0,     0,     0,     0,    72,   211,     0,     0,     0,
    1961      210,     0,     0,    75,     0,     0,   350,    54,   348,     0,
    1962      348,     0,   715,     0,     0,     0,     0,     0,     0,     0,
    1963      715,   715,   715,   343,     0,     0,   209,    67,   210,    84,
    1964     1309,   345,   345,   210,    84,     0,     0,     0,     0,   348,
    1965        0,     0,   350,     0,   351,     0,  1187,   348,   348,   348,
    1966        0,     0,     0,     0,     0,     0,     0,     0,   348,   348,
    1967        0,   720,     0,     0,   209,   715,     0,     0,   209,   720,
    1968      720,   720,  1335,    72,     0,     0,   114,     0,   343,   343,
    1969     1337,  1338,  1339,   350,   501,     0,     0,     0,     0,   351,
    1970      351,   351,   348,   350,     0,     0,   350,     0,     0,    54,
    1971        0,   219,     0,   350,     0,     0,   351,     0,   350,     0,
    1972        0,     0,     0,     0,   720,     0,     0,   211,     0,   210,
    1973        0,     0,     0,     0,   351,  1370,     0,     0,   221,     0,
    1974        0,     0,     0,   210,     0,    77,     0,     0,     0,     0,
    1975        0,   351,     0,     0,     0,   211,     0,     0,     0,   345,
    1976      211,     0,     0,     0,   209,     0,     0,     0,     0,     0,
    1977        0,     0,     0,     0,     0,     0,     0,     0,     0,    75,
    1978      114,     0,     0,     0,     0,     0,   348,    77,     0,     0,
    1979      351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1980        0,     0,     0,  1187,    84,     0,     0,     0,     0,     0,
    1981     1187,   121,   124,   125,     0,     0,     0,     0,     0,   358,
    1982        0,     0,     0,     0,    84,     0,   351,     0,     0,     0,
    1983       72,     0,    84,     0,     0,   210,     0,    72,     0,   123,
    1984      123,   123,     0,     0,   209,     0,   211,    54,    54,     0,
    1985        0,     0,  1187,     0,     0,     0,     0,     0,   358,  1510,
    1986      211,   209,   350,     0,     0,     0,     0,   351,     0,    54,
    1987        0,     0,     0,     0,     0,     0,   358,   351,    84,    72,
    1988      351,     0,   250,     0,   251,   220,     0,   351,    54,     0,
    1989        0,     0,   351,     0,   209,     0,     0,     0,     0,     0,
     2096       0,  1101,   846,     0,     0,   849,   850,     0,   853,     0,
     2097     855,   856,   599,     0,     0,   857,   858,   599,     0,     0,
     2098       0,     0,     0,     0,     0,     0,   364,   364,   364,     0,
    19902099       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1991      123,     0,   123,     0,   350,   350,     0,   350,   350,   358,
    1992      164,     0,   168,     0,     0,   174,   175,   176,     0,   178,
    1993        0,     0,   343,   343,     0,     0,   271,     0,    75,     0,
    1994        0,     0,    54,     0,   229,     0,     0,    54,     0,     0,
    1995        0,     0,   211,    77,     0,     0,   244,   245,     0,     0,
    1996        0,     0,     0,   390,     0,     0,     0,     0,     0,     0,
    1997        0,   350,   350,   409,   410,     0,     0,    54,   414,     0,
    1998      416,   417,     0,   358,     0,     0,     0,     0,     0,     0,
    1999        0,   123,     0,     0,     8,     9,    10,    11,    12,   123,
    2000        0,   123,   123,     0,     0,     0,   123,     0,   123,   123,
    2001        0,     0,     0,     0,     0,   209,     0,     0,     0,     0,
    2002        0,    30,     0,     0,   210,   407,     0,     0,   358,   358,
    2003      358,     0,   415,     0,   350,     0,   351,     0,     0,     0,
    2004        0,     0,     0,   209,    33,   358,     0,     0,   209,    36,
    2005      343,   179,   180,    39,     0,     0,     0,     0,     0,     0,
    2006       40,    41,     0,   358,     0,     0,     0,     0,     0,     0,
    2007        0,    54,     0,     0,    84,     0,     0,   219,   123,     0,
    2008      358,     0,     0,     0,     0,   602,     0,   603,   351,   351,
    2009        0,   351,   351,     0,    54,   604,     0,     0,    75,     0,
    2010        0,    54,     0,     0,   407,     0,     0,     0,     0,     0,
    2011        0,   350,    77,   350,     0,     0,    84,     0,     0,   358,
    2012        0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
    2013       11,    12,     0,     0,   209,     0,     0,     0,     0,     0,
    2014        0,   211,   350,    54,     0,   351,   351,     0,   209,     0,
    2015      350,   350,   350,     0,    30,   358,     0,     0,     0,   577,
    2016        0,   350,   350,     0,     0,     0,     0,   581,   501,     0,
    2017      584,     0,     0,     0,     0,     0,    75,    33,     0,     0,
    2018        0,     0,    36,     0,   179,   180,    39,     0,     0,     0,
    2019        0,     0,     0,    40,    41,   350,   358,     0,     0,     0,
    2020        0,   210,     0,     0,     0,     0,   358,     0,   351,   358,
    2021      594,   601,     0,     0,   221,     0,   358,     0,   689,     0,
    2022      405,   358,   625,   626,     0,     0,     0,     0,   691,     0,
    2023        0,     0,   407,     0,     0,     0,   415,     0,     0,     0,
    2024      209,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2025        0,   220,     0,     0,     8,     9,    10,    11,    12,    13,
    2026       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2027       24,  -285,    77,    25,    26,    27,     0,     0,     0,   350,
    2028        0,    30,    84,     0,     0,   351,     0,   351,     0,     0,
    2029        0,     0,     0,     0,     0,     0,   210,     0,     0,     0,
    2030        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2031        0,    37,    38,     0,     0,  -285,   351,     0,   211,     0,
    2032        0,   407,     0,    75,   351,   351,   351,     0,     0,     0,
    2033       75,     0,     0,     0,     0,   351,   351,     0,     0,     0,
    2034        0,     0,     0,     0,     0,   636,     0,   334,     0,     0,
    2035       77,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    2036        0,   810,   811,     0,     0,   358,     0,     0,     0,   351,
    2037        0,     0,    75,     0,     0,     0,     0,     0,     0,     0,
    2038        8,     9,    10,    11,    12,     0,     0,     0,     0,   123,
    2039      123,   845,     0,     0,   848,   849,     0,   852,     0,   854,
    2040      855,     0,     0,     0,   856,   857,     0,    30,     0,     0,
    2041        0,   577,   577,   211,     0,     0,     0,   358,   358,   123,
    2042      358,   358,   123,   123,     0,   123,     0,   123,   123,   209,
    2043       33,     0,   123,   123,     0,    36,     0,   179,   180,    39,
    2044        0,    84,     0,     0,     0,     0,    40,    41,     0,     0,
    2045        0,     0,     0,   351,     0,     0,     0,     0,     0,  1020,
    2046        0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2047        0,  1489,     0,   405,   358,   358,     0,     0,     0,     0,
    2048        0,  1490,     0,     0,     0,     0,   931,   932,   278,    30,
    2049      279,     0,   934,     0,     0,     0,     0,    77,   899,     0,
    2050        0,     0,   902,     0,    77,     0,     0,     0,     0,   123,
    2051        0,   280,    33,     0,   123,   123,     0,   281,     0,     0,
    2052      123,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2053        0,   287,   288,     0,     0,   407,     0,   358,     0,   289,
    2054        0,     0,     0,     0,     0,     0,    77,     0,     0,     0,
    2055        0,     0,     0,   290,     0,   374,     0,     0,     0,     0,
    2056      162,     0,   292,   816,   294,   295,   296,   297,     0,     0,
    2057        0,     0,     0,     0,     0,     0,     0,     0,     0,   214,
    2058      221,     0,     0,     0,     0,     0,   940,     0,   941,     0,
    2059        0,     0,     0,     0,     0,   944,   945,     0,     0,     0,
    2060      950,    84,     0,     0,     0,     0,   209,     0,     0,     0,
    2061        0,     0,   955,     0,   358,     0,   358,   959,     0,     0,
    2062        0,     0,     0,     0,     0,   162,     0,     0,     0,     0,
    2063      268,     0,     0,     8,     9,    10,    11,    12,     0,     0,
    2064        0,     0,   987,     0,     0,   358,     0,     0,   577,     0,
    2065        0,     0,     0,   358,   358,   358,     0,     0,     0,   162,
    2066       30,     0,     0,     0,   358,   358,     0,     0,     0,   364,
    2067        0,     0,     0,   370,     0,     0,     0,     0,     0,    84,
    2068        0,     0,     0,    33,     0,     0,   594,     0,    36,     0,
    2069      179,   180,    39,     0,     0,     0,     0,     0,   358,    40,
    2070       41,   209,     0,     8,     9,    10,    11,    12,    13,    14,
     2100    1128,     0,     0,   123,   364,     0,     0,  1136,   123,   123,
     2101       0,  1140,     0,     0,   123,     0,  1144,     0,  1145,     0,
     2102       0,     0,  1147,  1148,  1149,     0,     0,  1152,     0,     0,
     2103       0,     0,     0,     0,     0,     0,  1164,     0,     0,   733,
     2104       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2105       0,     0,     0,     0,  1179,  1180,     0,     0,   933,   934,
     2106     456,     0,     0,     0,   936,     0,     0,     0,     0,     0,
     2107       0,     0,     0,     0,     0,     0,     0,     0,   364,  1209,
     2108     951,     0,  1211,     8,     9,    10,    11,    12,    13,    14,
    20712109      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2072        0,   162,     0,     0,   181,     0,     0,     0,     0,     0,
    2073       30,     0,     0,   214,   182,  1161,     0,     0,     8,     9,
    2074       10,    11,    12,  1031,  1032,  1033,  1034,     0,  1036,     0,
    2075        0,   162,   456,    33,     0,     0,     0,     0,     0,     0,
    2076      407,     0,     0,  1079,   278,    30,   279,     0,     8,     9,
    2077       10,    11,    12,     0,     0,   370,     0,  1085,     0,     0,
    2078        0,     0,   358,   162,     0,     0,     0,   280,    33,     0,
    2079        0,     0,     0,   281,     0,    30,     0,   282,     0,     0,
    2080      283,   284,   285,   286,    40,    41,   456,   287,   288,   162,
    2081        0,     0,     0,     0,     0,   289,  1100,     0,    33,     0,
    2082        0,     0,     0,    36,     0,     0,    84,    39,     0,   290,
    2083        0,   374,     0,    84,    40,    41,     0,  1141,   292,  1162,
    2084      294,   295,   296,   297,     0,     0,     0,     0,     0,     0,
    2085        0,     0,     0,  1153,     0,  1127,   599,     0,     0,   735,
    2086        0,   623,  1135,     0,     0,     0,  1139,     0,     0,   736,
    2087     1216,  1143,     0,  1144,     0,    84,     0,  1146,  1147,  1148,
    2088        0,     0,  1151,     0,     0,     0,     0,     0,     0,     0,
    2089        0,  1163,     0,     0,     0,     0,     0,     0,   123,     0,
    2090        0,   207,     0,     8,     9,    10,    11,    12,     0,  1178,
    2091     1179,   227,     0,   231,     0,   233,     0,     0,     0,     0,
    2092        0,     0,   242,     0,     0,     0,     0,     0,     0,  1220,
    2093       30,     0,     0,     0,     0,  1208,   162,   162,  1210,     0,
    2094        0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
    2095        0,     0,   207,    33,   231,   233,   242,     0,    36,     0,
    2096      179,   180,    39,     0,   456,     0,     0,   456,     0,    40,
    2097       41,     0,     0,   456,     0,     0,  1225,     0,     0,     0,
    2098        0,     0,  1229,  1230,     0,     0,     0,     0,     0,     0,
    2099        0,     0,  1300,  1240,   261,   207,     0,     0,  1244,     0,
    2100      732,  1248,     0,  1249,   262,     0,  1251,     0,     0,     0,
    2101        0,     0,   162,     0,     0,     0,     0,     0,     0,  1259,
    2102      123,   153,     0,     0,   456,     0,     0,     0,   456,     0,
    2103      162,   456,  1266,     0,  1268,  1269,  1270,  1271,     0,     0,
    2104        0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
    2105     1278,     0,  1279,     0,     0,   207,   168,   231,   233,   242,
    2106        0,     0,     0,     0,     0,     0,     0,   247,     0,     0,
    2107        0,     0,     0,     0,     0,     0,     0,   252,     0,     0,
    2108        0,     0,     0,     0,  1304,  1305,     0,     0,     0,     0,
    2109        0,     0,     0,   207,     0,   162,     0,   207,     0,     0,
    2110        0,     0,     0,     0,     0,     0,     0,   364,     0,   599,
    2111        0,     0,   826,   499,     8,     9,    10,    11,    12,    13,
    2112       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2113       24,  -285,   153,     0,  1340,  1341,     0,     0,   599,     0,
    2114        0,    30,     0,   599,  1351,   380,     0,     0,     0,     0,
    2115        0,     0,   364,   364,   364,     0,     0,     0,     0,     0,
    2116        0,     0,   207,     0,    33,     0,     0,     0,   412,   364,
    2117        0,     0,     0,     0,     0,  -285,     0,     0,     0,     0,
    2118        0,     0,   427,   207,     0,     0,     0,     0,   231,   233,
    2119        0,   432,     0,  1380,     0,     0,   242,     0,     0,     0,
    2120        0,   440,     0,     0,   732,  1384,     0,  1385,  1386,  1387,
    2121        0,     0,     0,     0,     0,     0,     0,     0,     0,  1391,
    2122        0,     0,     0,     0,     0,   456,   466,     0,  1402,     0,
    2123        0,   476,     0,     0,     0,     0,     0,     0,   207,     0,
    2124     1410,     0,     0,   364,   484,   949,     0,     0,     0,     0,
    2125      494,     0,   498,     0,     0,     0,   207,     0,     0,     0,
    2126        0,   207,     0,   207,     0,     0,     0,     0,     0,   527,
    2127        0,     0,     0,     0,     0,     0,     0,     0,     0,   732,
    2128      207,     0,     0,   207,   207,     0,     0,     0,     0,     0,
    2129        0,  1453,  1454,     0,     0,     0,     0,     0,     0,   207,
    2130        0,     0,     0,     0,  1459,     0,     0,     0,     0,     0,
    2131        0,  1459,   586,   207,     0,     0,     0,   591,     0,     0,
    2132      207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2133        0,     0,     0,   364,   278,     0,   279,   623,  1488,     0,
    2134      364,     0,     0,     0,     0,   637,     0,     0,     0,   638,
    2135      639,     0,   641,     0,     0,     0,     0,   280,   651,   652,
    2136        0,   653,   654,   281,   655,  1511,   656,   282,     0,     0,
     2110       0,     0,    25,    26,    27,     0,     0,   207,     0,     0,
     2111      30,     0,     0,     0,   733,     0,     0,   227,     0,   231,
     2112    1226,   233,     0,     0,     0,     0,  1230,  1231,   242,     0,
     2113       0,     0,     0,    33,     0,     0,     0,  1241,     0,     0,
     2114     203,    38,  1245,     0,     0,  1249,     0,  1250,     0,     0,
     2115    1252,     0,     0,     0,     0,     0,     0,     0,   207,     0,
     2116     231,   233,   242,  1260,     0,     0,     0,     0,   364,     0,
     2117       0,     0,   623,     0,     0,   364,  1267,     0,  1269,  1270,
     2118    1271,  1272,     0,     0,   267,     0,     0,     0,     0,     0,
     2119       0,     0,     0,     0,  1279,     0,  1280,     0,     0,     0,
     2120     168,   207,     0,     0,     0,     0,     0,     0,     0,     0,
     2121       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2122       0,     0,     0,     0,     0,     0,     0,     0,  1304,  1305,
     2123       0,     0,   201,     2,   202,     4,     5,     6,     7,     8,
     2124       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2125      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2126      27,   207,     0,   231,   233,   242,    30,     0,   456,     0,
     2127       0,     0,     0,     0,     0,   153,     0,     0,  1340,  1341,
     2128       0,     0,     0,     0,     0,     0,     0,     0,  1351,    33,
     2129       0,    34,     0,    35,    36,     0,   203,    38,    39,   207,
     2130       0,     0,     0,   207,     0,    40,    41,     0,     0,     0,
     2131     162,     0,     0,     0,     0,     0,     0,     0,     0,   499,
     2132       0,   247,     0,     0,     0,   364,     0,     0,     0,     0,
     2133      42,   252,   204,     0,     0,     0,  1380,     0,     0,     0,
     2134     205,     0,     0,     0,     0,     0,     0,     0,  1384,     0,
     2135    1385,  1386,  1387,     0,     0,     0,     0,     0,     0,   599,
     2136       0,     0,  1391,     0,     0,     0,     0,     0,   207,     0,
     2137       0,  1402,     0,     0,   278,     0,   279,     0,     0,     0,
     2138     364,   364,     0,  1410,     0,     0,   153,     0,     0,   207,
     2139       0,     0,   123,     0,   231,   233,     0,   280,     0,   380,
     2140       0,     0,   242,   281,     0,     0,     0,   282,     0,     0,
    21372141     283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2138        0,     0,     0,   586,     0,   289,     0,     0,     0,     0,
    2139     1524,   671,     0,     0,     0,  1526,     0,     0,     0,   290,
    2140        0,   374,     0,     0,     0,     0,     0,     0,   292,   376,
    2141      294,   295,   296,   297,     0,     0,   682,     0,     0,     0,
    2142        0,     0,  1203,     0,     0,     0,     0,   688,     0,     0,
    2143        0,     0,   456,     0,   207,     0,     0,     0,     0,     0,
    2144      278,     0,   279,     0,     0,     0,     0,     0,     0,     0,
    2145      724,     0,     0,     0,     0,     0,   727,     0,     0,     0,
    2146        0,   466,   207,   280,     0,     0,     0,   207,     0,   642,
    2147        0,   136,   137,   282,   162,     0,   283,   284,   285,   286,
    2148       40,    41,     0,   287,   288,     0,     0,     0,     0,   364,
    2149        0,   289,     0,     0,     0,     0,     0,   763,     0,     0,
    2150        0,     0,     0,     0,     0,   290,     0,   643,     0,   644,
    2151      375,     0,     0,   778,   292,   376,   294,   295,   296,   297,
    2152        0,     0,     0,   599,     0,     0,     0,     8,     9,    10,
     2142       0,     0,   412,     0,     0,   289,     0,     0,     0,     0,
     2143       0,     0,     0,     0,  1454,  1455,   427,     0,   456,   290,
     2144       0,   374,  1217,     0,   207,   432,   772,  1460,   292,   376,
     2145     294,   295,   296,   297,  1460,   440,     0,     0,     0,     0,
     2146       0,     0,   207,     0,     0,     0,     0,   207,     0,   207,
     2147       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2148     466,     0,  1490,     0,     0,   476,   207,     0,     0,   207,
     2149     207,     0,     0,     0,     0,     0,   733,     0,   484,     0,
     2150       0,     0,     0,     0,   494,   207,   498,     0,     0,     0,
     2151    1514,     0,     0,     0,   123,     0,     0,     0,     0,   207,
     2152       0,     0,     0,   527,     0,     0,   207,     0,     0,     0,
     2153       0,     0,     0,     0,     0,     0,  1527,     0,   214,     0,
     2154       0,  1529,     0,     0,     0,     0,     0,     0,     0,     0,
     2155       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2156       0,     0,     0,     0,  1300,     0,   586,     0,     0,     0,
     2157       0,   591,     0,     0,     0,   733,     0,     0,     0,     0,
     2158       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2159      17,    18,    19,    20,    21,    22,    23,    24,     0,   637,
     2160      25,    26,    27,   638,   639,     0,   641,     0,    30,     0,
     2161       0,     0,   652,   653,     0,   654,   655,     0,   656,     0,
     2162     657,     0,  1162,   364,   364,     8,     9,    10,    11,    12,
     2163       0,    33,   214,     0,     0,     0,     0,   586,   203,    38,
     2164     207,     0,     0,     0,     0,   672,     0,     0,     0,     0,
     2165       0,   278,    30,   279,     0,     0,     0,     0,     0,     0,
     2166       0,     0,     0,     0,     0,     0,     0,     0,   207,     0,
     2167     683,     0,     0,   207,   280,    33,     0,     0,     0,     0,
     2168     281,   689,   622,     0,   282,     0,     0,   283,   284,   285,
     2169     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
     2170       0,     0,   289,     0,   725,     0,     0,     0,     0,     0,
     2171     728,     0,     0,     0,     0,   466,   290,     0,   374,     0,
     2172       0,     0,     0,     0,     0,   292,  1163,   294,   295,   296,
     2173     297,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2174     364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2175       0,   764,     0,     0,   509,   510,   513,     0,     0,     0,
     2176     207,     0,     0,   516,   517,     0,     0,   779,   510,   510,
     2177       0,     0,     0,     0,   207,     0,     0,     0,     0,     0,
     2178     510,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2179       0,     0,     0,   456,   499,     0,     0,     0,     0,     0,
     2180       0,     0,     0,   805,   337,   359,     0,     0,     0,     0,
     2181       0,     0,   815,     0,     0,     0,   510,     0,     0,   818,
     2182       0,     0,     0,   456,   825,     0,     0,     0,     0,     0,
     2183       0,     0,     0,     0,     0,   840,     0,   408,     0,     0,
     2184       0,     0,     0,     0,   408,     0,     0,     0,   162,     0,
     2185       0,     0,   510,   207,     0,     0,     0,     0,     0,     0,
     2186       0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
     2187       0,     0,     0,     0,     0,     0,   880,     0,     0,     0,
     2188       0,     0,     0,  -505,     0,   207,     1,     2,     3,     4,
     2189       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2190      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2191       0,   825,    25,    26,    27,    28,   408,     0,    29,     0,
     2192      30,    31,     0,     0,     0,     0,     0,     0,     0,     0,
     2193       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2194      32,     0,     0,    33,     0,    34,     0,    35,    36,     0,
     2195      37,    38,    39,     0,     0,     0,     0,     0,     0,    40,
     2196      41,     0,     0,     0,     0,     0,   247,     0,     0,     0,
     2197       0,   408,   207,     0,     0,     0,   958,   959,     0,   408,
     2198     582,     0,   408,   585,    42,     0,    43,     0,     0,   975,
     2199       0,     0,   359,     0,    44,     0,   615,     0,   207,     0,
     2200       0,     0,     0,     0,     0,     0,   990,     0,   991,     0,
     2201       0,     0,   995,     0,     0,   633,     0,     0,   337,     0,
     2202       0,     0,     0,     0,     0,   207,   510,   510,   510,   510,
     2203     510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
     2204     510,   510,   510,   510,   408,     0,     0,     0,   408,   278,
     2205       0,   279,     0,     0,     0,     0,   207,     0,     0,     0,
     2206       0,     0,     0,     0,     0,     0,     0,   207,     0,   510,
     2207       0,     0,   280,     0,     0,     0,     0,  1027,   642,   359,
     2208     136,   137,   282,     0,  1028,   283,   643,   285,   286,    40,
     2209      41,     0,   287,   288,     0,     0,     0,  1030,     0,  1031,
     2210     289,     0,   408,     0,     0,     0,     0,     0,     0,     0,
     2211       0,     0,     0,  1043,   290,     0,   644,     0,   645,   375,
     2212    1047,     0,     0,   292,   376,   294,   295,   296,   297,     0,
     2213       0,     0,  1083,   408,     0,  1084,   359,     0,     0,     0,
     2214       0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
     2215       0,     0,     0,   591,     0,     0,     0,     0,     0,     0,
     2216       0,     0,     0,     0,     0,     0,     0,   510,     0,     0,
     2217       0,     0,     0,     0,     0,   408,     0,     0,   337,   359,
     2218       0,     0,     0,     0,     0,     0,     0,     0,     0,   510,
     2219       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2220     317,     0,   510,     0,     0,     0,     0,     0,     0,     0,
     2221     341,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2222       0,     0,   377,   408,   408,     0,     0,     0,     0,     0,
     2223       0,     0,   207,     0,     0,     0,     0,     0,     0,     0,
     2224    1146,     0,   820,   359,     0,   359,     0,   510,     0,     0,
     2225       0,     0,     0,     0,   615,     0,   615,   615,     0,     0,
     2226       0,     0,     0,   615,     0,     0,     0,     0,     0,     0,
     2227       0,     0,     0,   859,   359,     0,     0,     0,   510,   359,
     2228       0,     0,     0,     0,     0,     0,     0,     0,   359,   359,
     2229     359,     0,   317,   510,     0,   527,     0,     0,     0,     0,
     2230       0,  1210,     0,     0,     0,     0,   359,     0,     0,     0,
     2231       0,   408,   902,     0,     0,   408,   905,   480,     0,     0,
     2232       0,     0,   907,     0,     0,     0,   207,     0,     0,     0,
     2233    1223,     0,     0,     0,     0,  1225,     0,     0,     0,     0,
     2234     337,   359,   408,  1229,   408,     0,     0,     0,   408,   201,
     2235       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
     2236      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2237      22,    23,    24,  1254,     0,    25,    26,    27,     0,     0,
     2238     359,   615,     0,    30,     0,  1262,     0,     0,  1263,     0,
     2239    1264,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2240       0,     0,     0,     0,  1273,  1274,    33,     0,    34,     0,
     2241      35,     0,     0,   203,    38,   337,   359,     0,     0,     0,
     2242     408,   408,     0,     0,     0,     0,  1287,     0,     0,     0,
     2243       0,     0,   377,     0,     0,     0,     0,     0,     0,     0,
     2244       0,     0,     0,     0,   510,     0,     0,     0,     0,   204,
     2245       0,     0,  1306,     0,     0,     0,     0,   267,     0,     0,
     2246       0,   408,     0,     0,     0,     0,     0,     0,     0,     0,
     2247     359,     0,     0,   510,     0,     0,   820,   359,     0,     0,
     2248       0,   615,     0,   615,     0,   510,     0,     0,     0,     0,
     2249       0,     0,     0,   615,     0,     0,     0,     8,     9,    10,
    21532250      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2154       21,    22,    23,    24,   364,   364,    25,    26,    27,   804,
    2155        0,     0,     0,   207,    30,     0,     0,     0,   814,     0,
    2156        0,     0,     0,     0,     0,   817,     0,   207,     0,     0,
    2157      824,     0,     0,   278,     0,   279,     0,    33,     0,     0,
    2158        0,   839,    36,     0,    37,    38,    39,   499,     0,     0,
    2159        0,     0,     0,    40,    41,     0,   280,     0,     0,     0,
    2160        0,     0,   281,   456,     0,     0,   282,     0,     0,   283,
    2161      284,   285,   286,    40,    41,     0,   287,   288,    42,     0,
    2162      154,   879,     0,     0,   289,     0,     0,     0,    44,     0,
    2163        0,     0,     0,   317,     0,     0,     0,     0,   290,     0,
    2164      374,     0,     0,   341,     0,   771,   207,   292,   376,   294,
    2165      295,   296,   297,     0,     0,   377,   824,     0,     0,   207,
    2166        0,   732,     0,     0,     0,     0,     0,     0,     0,     0,
    2167        0,     0,     0,     0,     0,     0,     0,     0,   207,     2,
     2251      21,    22,    23,    24,  -285,     0,    25,    26,    27,     0,
     2252       0,     0,     0,     0,    30,     0,   510,     0,     0,     0,
     2253       0,     0,     0,   727,     0,     0,     0,     0,     0,     0,
     2254       0,     0,     0,     0,  1372,     0,  1373,    33,     0,     0,
     2255       0,     0,    36,     0,   332,   333,    39,   207,  -285,  1382,
     2256       0,  1383,     0,    40,    41,     0,   820,     0,     0,     0,
     2257       0,   760,     0,     0,   408,     0,     0,     0,     0,  1390,
     2258     408,     0,     0,     0,   773,     0,     0,     0,   408,     0,
     2259     334,   760,     0,     0,     0,  1408,   510,     0,   109,     0,
     2260       0,   615,   615,  1411,   782,   783,  1229,     0,     8,     9,
     2261      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2262      20,    21,    22,    23,    24,  -286,   804,   359,  1434,     0,
     2263       0,     0,     0,   408,     0,    30,   813,  1441,     0,   510,
     2264    1443,  1445,     0,   341,     0,     0,     0,     0,   773,     0,
     2265       0,   408,  1143,   510,   510,     0,     0,     0,    33,     0,
     2266       0,   359,     0,     0,     0,     0,     0,   408,  1155,  -286,
     2267     615,   615,  1160,     0,     0,     0,     0,  1473,     0,  1229,
     2268       0,     0,   359,   359,     0,     0,     0,     0,     0,     0,
     2269       0,     0,     0,     0,  1485,     0,     0,     0,   879,     0,
     2270       0,     0,     0,     0,     0,     0,   377,     2,   202,     4,
     2271       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2272      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2273       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2274      30,   820,   408,  1222,     0,     0,   341,     0,     0,     0,
     2275       0,     0,     0,     0,   615,     0,     0,     0,     0,     0,
     2276       0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
     2277     203,    38,     0,     1,     2,     3,     4,     5,     6,     7,
     2278       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2279      18,    19,    20,    21,    22,    23,    24,     0,   359,    25,
     2280      26,    27,    28,     0,     0,    29,   266,    30,    31,     0,
     2281       0,     0,     0,     0,   622,     0,     0,     0,     0,     0,
     2282       0,   773,     0,   980,     0,     0,     0,    32,     0,   985,
     2283      33,     0,    34,     0,    35,    36,   994,    37,    38,    39,
     2284       0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
     2285       0,     0,     0,   510,     0,     0,     0,     0,   337,     0,
     2286       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2287     510,    42,     0,    43,     0,     0,     0,   359,     0,  1010,
     2288    1011,    44,   341,     0,     0,     0,     0,     0,     0,     0,
     2289       0,     0,     0,     0,     0,     0,     0,   341,     0,     0,
     2290       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2291      18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
     2292       0,     0,     0,     0,     0,   359,   359,    30,     0,     0,
     2293       0,     0,     0,   510,   510,     0,     0,  1041,     0,     0,
     2294       0,   377,     0,     0,     0,     0,     0,     0,     0,     0,
     2295      33,     0,     0,     0,     1,     2,   202,     4,     5,     6,
     2296       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2297      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2298      25,    26,    27,    28,     0,     0,    29,   278,    30,  1050,
     2299    1051,     0,  1052,     0,     0,  1053,  1054,  1055,  1056,  1057,
     2300    1058,  1059,  1060,     0,  1061,     0,     0,  1062,    32,     0,
     2301     280,    33,     0,    34,     0,    35,   642,   317,    37,    38,
     2302     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2303     287,   288,  1124,  1125,     0,     0,     0,     0,   289,   377,
     2304       0,     0,   359,     0,     0,   985,     0,     0,  1134,     0,
     2305     760,     0,   290,     0,  1063,     0,   278,   167,   279,     0,
     2306       0,   292,   293,   294,   295,   296,   297,     0,     0,  1150,
     2307       0,     0,     0,     0,     0,  -126,     0,     0,     0,   280,
     2308    1165,     0,     0,     0,     0,   281,     0,     0,     0,   282,
     2309       0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
     2310     288,     0,   377,     0,  1183,     0,     0,   289,     0,     0,
     2311       0,     0,     0,     0,     0,     0,     0,     0,     0,  1205,
     2312       0,   290,   408,   374,     0,     0,   375,     0,     0,     0,
     2313     292,   376,   294,   295,   296,   297,     0,   278,  1214,   279,
     2314    1051,     0,  1052,   408,   408,  1053,  1054,  1055,  1056,  1057,
     2315    1058,  1059,  1060,     0,  1061,     0,     0,  1062,    32,     0,
     2316     280,     0,     0,     0,     0,   408,   642,     0,     0,     0,
     2317     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2318     287,   288,     0,     0,   985,     0,     0,     0,   289,     0,
     2319       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2320       0,     0,   290,   879,   374,     0,     0,   167,     0,     0,
     2321       0,   292,   376,   294,   295,   296,   297,     0,  1265,  1266,
     2322       0,     0,     1,     2,   202,     4,     5,     6,     7,     8,
     2323       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2324      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2325      27,    28,     0,     0,    29,   278,    30,   279,     0,     0,
     2326       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2327       0,     0,     0,     0,     0,     0,     0,     0,   280,    33,
     2328       0,    34,     0,    35,   281,     0,    37,    38,   282,     0,
     2329       0,   283,   284,   285,   286,    40,    41,   985,   287,   288,
     2330       0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
     2331       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2332     290,     0,  1063,     0,     0,     0,     0,     0,     0,   292,
     2333     293,   294,   295,   296,   297,     0,     0,     0,     0,     0,
     2334       0,     0,     0,  -126,     1,     2,   202,     4,     5,     6,
     2335       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2336      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2337      25,    26,    27,    28,     0,     0,    29,   278,    30,   279,
     2338       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2339       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2340     280,    33,     0,    34,     0,    35,   281,     0,    37,    38,
     2341     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2342     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
     2343       0,     0,     0,     0,     0,     0,     0,     0,  1420,     0,
     2344       0,     0,   290,     0,    43,     0,     0,     0,     0,     0,
     2345       0,   292,   293,   294,   295,   296,   297,     2,   202,     4,
     2346       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2347      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2348       0,     0,    25,    26,    27,     0,     0,     0,     0,   278,
     2349      30,   279,     0,     0,     0,     0,     0,     0,     0,     0,
     2350       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2351    1477,     0,   280,    33,     0,    34,     0,    35,   281,     0,
     2352      37,    38,   282,     0,     0,   283,   284,   285,   286,    40,
     2353      41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
     2354     289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2355       0,     0,     0,     0,   290,   317,   339,     0,     0,     0,
     2356       0,   772,     0,   292,   340,   294,   295,   296,   297,     2,
    21682357     202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    21692358      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2170       23,    24,     0,   214,    25,    26,    27,     0,     0,     0,
    2171        0,   247,    30,     0,     0,     0,     0,     0,     0,     0,
    2172        0,   956,   957,   337,   359,   317,     0,     0,     0,     0,
    2173        0,     0,     0,     0,   973,    33,     0,    34,     0,    35,
    2174      732,     0,    37,    38,     0,     0,     0,     0,     0,     0,
    2175      480,   988,     0,   989,     0,     0,   408,   993,     0,     0,
    2176        0,     0,     0,   408,   207,     0,     0,     0,     0,     0,
    2177        0,     0,     0,     0,     0,     0,     0,  -390,   678,     0,
    2178        0,     0,     0,     0,     0,     0,   627,     0,   364,   364,
    2179      207,     0,     0,     0,     0,     0,     0,     0,   214,     8,
     2359      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2360       0,   278,    30,   279,     0,     0,     0,     0,     0,     0,
     2361       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2362       0,     0,     0,     0,   280,    33,     0,    34,     0,    35,
     2363     281,     0,    37,    38,   282,     0,     0,   283,   284,   285,
     2364     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
     2365       0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
     2366       0,     0,     0,     0,     0,     0,   290,     0,   921,     0,
     2367       0,     0,     0,   772,     0,   292,   340,   294,   295,   296,
     2368     297,     2,   202,     4,     5,     6,     7,     8,     9,    10,
     2369      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2370      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2371       0,     0,     0,   278,    30,   279,     0,     0,     0,     0,
     2372       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2373       0,     0,     0,     0,     0,     0,   280,    33,     0,    34,
     2374       0,    35,   281,     0,    37,    38,   282,     0,     0,   283,
     2375     284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
     2376       0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
     2377       0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
     2378     921,     0,     0,     0,     0,   772,     0,   292,   593,   294,
     2379     295,   296,   297,     2,   202,     4,     5,     6,     7,     8,
    21802380       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2181       19,    20,    21,    22,    23,    24,     0,   207,    25,    26,
    2182       27,     0,  1025,     0,     0,     0,    30,   448,     0,  1026,
    2183        0,     0,     0,     0,     0,   408,     0,     0,     0,     0,
    2184        0,     0,  1028,     0,  1029,     0,     0,     0,   207,    33,
    2185        0,     0,     0,     0,     0,     0,    37,    38,  1041,   207,
    2186        0,     0,     0,     0,  1045,   377,     0,     0,     0,     0,
    2187        0,     0,     0,     0,     0,     0,  1082,     0,     0,  1083,
     2381      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2382      27,     0,     0,     0,     0,   278,    30,   279,     0,     0,
    21882383       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2189      408,     0,   449,     0,     0,     0,   702,   591,   408,   582,
    2190      109,   408,   585,     0,     0,     0,   364,     0,     0,     0,
    2191        0,   359,     0,     0,     0,   615,     0,   278,     0,   279,
     2384       0,     0,     0,     0,     0,     0,     0,     0,   280,    33,
     2385       0,    34,     0,    35,   281,     0,    37,    38,   282,     0,
     2386       0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
     2387       0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
    21922388       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2193        0,     0,     0,     0,   633,     0,     0,   337,     0,   207,
    2194      280,     0,     0,     0,     0,     0,   281,     0,     0,     0,
    2195      282,     0,     0,   283,   284,   285,   286,    40,    41,   456,
    2196      287,   288,     0,   408,     0,     0,   726,   408,   289,     0,
    2197        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2198        0,     0,   508,     0,  1145,     0,     0,     0,   456,     0,
    2199        0,   292,   376,   294,   295,   296,   297,     0,   359,     0,
    2200        0,     0,     0,     0,   759,     0,     0,     0,     0,     0,
    2201        0,     0,   162,     0,     0,     0,     0,   772,     0,     0,
    2202        0,   408,     0,     0,   759,   207,     0,   278,     0,   279,
    2203        0,     0,     0,     0,     0,     0,     0,   781,   782,     0,
    2204      527,     0,     0,     0,     0,     0,  1209,     0,     0,     0,
    2205      280,     0,   408,     0,     0,   359,   281,     0,     0,   803,
    2206      282,     0,     0,   283,   284,   285,   286,    40,    41,   812,
    2207      287,   288,     0,     0,     0,  1222,   341,     0,   289,     0,
    2208     1224,   772,     0,     0,     0,     0,     0,     0,  1228,     0,
    2209        0,     0,   290,     0,   408,     0,     0,   337,   359,     0,
    2210        0,   292,   376,   294,   295,   296,   297,     0,     0,     0,
    2211        0,     0,     0,     0,     0,     0,     0,     0,  1253,     0,
    2212      207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2213     1261,   878,     0,  1262,     0,  1263,     0,     0,   377,     0,
    2214        0,     0,   408,   408,     0,     0,     0,     0,     0,  1272,
    2215     1273,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2216        0,   819,   359,     0,   359,     0,     0,     0,     0,     0,
    2217        0,  1287,     0,   615,     0,   615,   615,     0,   341,     0,
    2218        0,     0,   615,     0,     0,     0,     0,     0,     0,     0,
    2219        0,     0,   858,   359,     0,     0,     0,  1306,   359,     0,
    2220        0,     0,     0,     0,     0,     0,     0,   359,   359,   359,
    2221        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2222        0,     0,     0,     0,   359,     0,     0,     0,     0,   408,
    2223      900,     0,     0,   408,   903,     0,     0,     0,     0,     0,
    2224      905,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2225        0,     0,     0,   772,     0,   978,     0,     0,   337,   359,
    2226      408,   983,   408,     0,     0,     0,   408,     0,   992,     0,
    2227        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2228      278,     0,   279,     0,     0,     0,     0,     0,     0,     0,
    2229     1372,     0,  1373,     0,     0,     0,     0,     0,   359,   615,
    2230        0,     0,     0,   280,     0,  1382,     0,  1383,     0,   281,
    2231        0,  1008,  1009,   282,   341,     0,   283,   284,   285,   286,
    2232       40,    41,     0,   287,   288,  1390,     0,     0,     0,   341,
    2233        0,   289,     0,   337,   359,     0,     0,     0,   408,   408,
    2234        0,  1408,     0,     0,     0,   290,     0,   374,   207,  1411,
    2235      375,     0,  1228,     0,   292,   376,   294,   295,   296,   297,
    2236        0,     0,     0,     0,     0,     0,     0,     0,     0,  1039,
    2237        0,     0,     0,   377,  1434,     0,     0,     0,     0,   408,
    2238        0,     0,     0,  1441,     0,     0,  1443,  1445,   359,     0,
    2239        0,     0,     0,     0,   819,   359,     0,     0,     0,   615,
    2240        0,   615,     0,   509,   510,   513,     0,     0,     0,     0,
    2241        0,   615,   516,   517,     0,     0,     0,   510,   510,     0,
    2242        0,     0,     0,  1472,     0,  1228,     0,     0,     0,   510,
    2243        0,     0,     0,     0,     0,     0,     0,     0,     0,  1483,
    2244        0,     0,     0,     0,     0,     0,     0,     0,   317,     0,
    2245        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2246        0,     0,     0,  1123,  1124,   510,     0,     0,     0,     0,
    2247      377,     0,     0,     0,     0,     0,   983,     0,     0,  1133,
    2248        0,   759,     0,   819,     0,     0,     0,   278,     0,   279,
    2249        0,   408,     0,     0,     0,     0,     0,   408,     0,     0,
    2250     1149,   510,     0,     0,     0,   408,     0,     0,     0,     0,
    2251      280,  1164,     0,     0,     0,     0,   281,     0,   615,   615,
    2252      282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    2253      287,   288,     0,   377,     0,  1182,     0,     0,   289,     0,
    2254        0,     0,     0,     0,   359,     0,     0,     0,     0,     0,
    2255      408,  1204,   290,     0,   374,     0,     0,     0,     0,     0,
    2256      801,   292,   376,   294,   295,   296,   297,     0,   408,  1142,
    2257     1213,     0,     0,     0,     0,     0,     0,     0,   359,     0,
    2258        0,     0,     0,     0,   408,  1154,     0,   615,   615,  1159,
    2259      278,     0,   279,     0,     0,     0,     0,     0,     0,   359,
    2260      359,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2261        0,     0,     0,   280,     0,     0,   983,     0,     0,   281,
    2262        0,     0,     0,   282,     0,     0,   283,   284,   285,   286,
    2263       40,    41,     0,   287,   288,   878,     0,     0,     0,     0,
    2264        0,   289,     0,     0,     0,     0,     0,     0,     0,     0,
    2265     1264,  1265,     0,     0,     0,   290,     0,   374,     0,   819,
    2266      408,  1221,     0,     0,   292,   376,   294,   295,   296,   297,
    2267        0,     0,   615,     0,     0,   510,   510,   510,   510,   510,
    2268      510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
    2269      510,   510,   510,     0,     0,     0,     0,     0,     0,     0,
    2270        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2271        0,     0,     0,     0,     0,     0,   359,     0,   510,     0,
    2272        0,     0,     0,     0,     0,     0,     0,     0,     0,   983,
    2273        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2274        0,     0,     0,     0,     0,     0,     0,     0,     2,   202,
    2275        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2276       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2277       24,     0,     0,    25,    26,    27,   337,     0,     0,     0,
    2278      278,    30,   279,     0,     0,     0,     0,     0,     0,     0,
    2279        0,     0,     0,     0,     0,   359,     0,     0,     0,     0,
    2280        0,     0,     0,   280,    33,     0,    34,     0,    35,   281,
    2281        0,    37,    38,   282,     0,   510,   283,   284,   285,   286,
    2282       40,    41,     0,   287,   288,     0,     0,     0,     0,     0,
    2283        0,   289,     0,     0,     0,     0,     0,   510,     0,     0,
    2284        0,     0,     0,   359,   359,   290,     0,   339,     0,     0,
    2285      510,     0,   771,     0,   292,   340,   294,   295,   296,   297,
    2286        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2287        0,  1420,     0,     0,     0,     0,     0,     0,     0,     0,
    2288        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2289        0,     0,     0,     0,     0,   510,     0,     0,     0,     0,
    2290        0,     1,     2,   202,     4,     5,     6,     7,     8,     9,
    2291       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2292       20,    21,    22,    23,    24,     0,   510,    25,    26,    27,
    2293       28,     0,     0,    29,   278,    30,   279,     0,     0,     0,
    2294        0,   510,  1475,     0,     0,     0,     0,     0,     0,     0,
    2295        0,     0,     0,     0,     0,     0,     0,   280,    33,     0,
    2296       34,   359,    35,   281,     0,    37,    38,   282,     0,     0,
    2297      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2298        0,     0,     0,     0,     0,   289,   317,     0,     0,     0,
    2299        0,     0,   278,     0,   279,     0,     0,     0,     0,   290,
    2300        0,  1062,     0,     0,     0,     0,     0,     0,   292,   293,
    2301      294,   295,   296,   297,     0,   280,     0,     0,     0,     0,
    2302        0,   281,  -126,     0,     0,   282,     0,     0,   283,   284,
    2303      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2304      408,     0,     0,   289,     0,     0,     0,     0,     0,     0,
    2305        0,     0,     0,     0,     0,     0,     0,   290,     0,   374,
    2306      408,   408,   980,     0,     0,     0,   292,   376,   294,   295,
    2307      296,   297,     0,     0,     0,     0,     0,     0,     0,     0,
    2308        0,   408,     0,     0,     0,     0,     0,     0,     0,     0,
    2309        0,   510,     0,     0,     0,     1,     2,   202,     4,     5,
    2310        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2311       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2312      510,    25,    26,    27,    28,     0,     0,    29,   278,    30,
    2313     1049,  1050,   510,  1051,     0,     0,  1052,  1053,  1054,  1055,
    2314     1056,  1057,  1058,  1059,     0,  1060,     0,     0,  1061,    32,
    2315        0,   280,    33,     0,    34,     0,    35,   642,     0,    37,
    2316       38,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2317        0,   287,   288,     0,   510,     0,     0,     0,     0,   289,
    2318        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2319        0,     0,     0,   290,     0,  1062,     0,     0,   167,     0,
    2320        0,     0,   292,   293,   294,   295,   296,   297,     0,     0,
    2321        0,     0,     0,     0,     0,     0,  -126,     0,     0,     1,
    2322        2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    2323       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2324       22,    23,    24,     0,   510,    25,    26,    27,    28,     0,
    2325        0,    29,   278,    30,   279,     8,     9,    10,    11,    12,
    2326       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2327       23,    24,  -286,     0,     0,   280,    33,     0,    34,     0,
    2328       35,   281,    30,    37,    38,   282,     0,   510,   283,   284,
    2329      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2330        0,   510,   510,   289,     0,    33,     0,     0,     0,     0,
    2331        0,     0,     0,     0,     0,     0,  -286,   290,     0,    43,
    2332        0,     0,     0,     0,     0,     0,   292,   293,   294,   295,
    2333      296,   297,     2,   202,     4,     5,     6,     7,     8,     9,
    2334       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2335       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2336        0,     0,     0,     0,   278,    30,   279,     0,     0,     0,
    2337        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2338        0,     0,     0,     0,     0,     0,     0,   280,    33,     0,
    2339       34,     0,    35,   281,     0,    37,    38,   282,     0,     0,
    2340      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2341        0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
    2342        0,     0,     0,     0,     0,     0,     0,     0,     0,   290,
    2343        0,   919,     0,     0,     0,     0,   771,     0,   292,   340,
    2344      294,   295,   296,   297,     0,     2,   202,     4,     5,     6,
     2389     290,     0,   339,     0,     0,     0,     0,     0,     0,   292,
     2390     340,   294,   295,   296,   297,     2,   202,     4,     5,     6,
    23452391       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    23462392      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     
    23482394       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23492395       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2350      280,    33,   510,    34,     0,    35,   281,     0,    37,    38,
    2351      282,     0,     0,   283,   284,   285,   286,    40,    41,   510,
     2396     280,    33,     0,    34,     0,    35,   281,     0,    37,    38,
     2397     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    23522398     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
    23532399       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2354        0,     0,   290,     0,   919,     0,     0,     0,     0,   771,
    2355        0,   292,   593,   294,   295,   296,   297,     0,     2,   202,
    2356        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2357       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2358       24,   510,   510,    25,    26,    27,     0,     0,     0,     0,
    2359      278,    30,   279,     0,     0,     0,     0,     0,     0,     0,
     2400       0,     0,   290,     0,   921,     0,     0,     0,     0,     0,
     2401       0,   292,   340,   294,   295,   296,   297,     2,   202,     4,
     2402       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2403      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2404       0,     0,    25,    26,    27,     0,     0,     0,     0,   278,
     2405      30,   279,     0,     0,     0,     0,     0,     0,     0,     0,
    23602406       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2361        0,     0,     0,   280,    33,     0,    34,     0,    35,   281,
    2362        0,    37,    38,   282,     0,     0,   283,   284,   285,   286,
    2363       40,    41,     0,   287,   288,     0,     0,     0,     0,     0,
    2364        0,   289,     0,     0,     0,     0,     0,     0,     0,     0,
    2365        0,     0,     0,     0,     0,   290,     0,   339,     0,     0,
    2366        0,     0,     0,     0,   292,   340,   294,   295,   296,   297,
     2407       0,     0,   280,    33,     0,    34,     0,    35,   281,     0,
     2408     203,    38,   282,     0,     0,   283,   284,   285,   286,    40,
     2409      41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
     2410     289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2411       0,     0,     0,     0,   290,     0,  1008,     0,     0,     0,
     2412       0,     0,     0,   292,  1009,   294,   295,   296,   297,     2,
     2413     202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2414      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2415      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2416       0,   278,    30,   279,     0,     0,     0,     0,     0,     0,
     2417       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2418       0,     0,     0,     0,   280,    33,     0,    34,     0,    35,
     2419     281,     0,   203,    38,   282,     0,     0,   283,   284,   285,
     2420     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
     2421       0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
     2422       0,     0,     0,     0,     0,     0,   290,     0,   374,     0,
     2423       0,     0,     0,     0,     0,   292,   376,   294,   295,   296,
     2424     297,     1,     2,     3,     4,     5,     6,     7,     8,     9,
     2425      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2426      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2427      28,     0,     0,    29,     0,    30,    31,     0,     0,     0,
     2428       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2429       0,     0,     0,     0,     0,    32,     0,     0,    33,     0,
     2430      34,     0,    35,    36,     0,    37,    38,    39,     0,     0,
     2431       0,     0,     0,     0,    40,    41,     0,     0,     0,     0,
     2432       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2433       0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
     2434       0,    43,     0,     0,     0,  -509,     0,     0,     0,    44,
     2435       1,     2,   202,     4,     5,     6,     7,     8,     9,    10,
     2436      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2437      21,    22,    23,    24,  -285,     0,    25,    26,    27,    28,
     2438       0,     0,    29,     0,    30,     0,     0,     0,     0,     0,
     2439       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2440       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2441       0,    35,     0,     0,    37,    38,     0,     0,  -285,     1,
     2442       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
     2443      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2444      22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
     2445      43,    29,     0,    30,     0,     0,     0,     0,   109,     0,
     2446       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2447       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2448      35,     0,     0,    37,    38,     2,   202,     4,     5,     6,
     2449       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2450      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2451      25,    26,    27,     0,     0,     0,     0,     0,    30,    43,
     2452       0,     0,     0,     0,     0,     0,     0,   109,     0,     0,
     2453       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2454       0,    33,     0,    34,     0,    35,    36,     0,   203,    38,
     2455      39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
     2456       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2457       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2458       0,     0,    42,     0,   204,     0,     0,     0,     0,     0,
     2459       0,     0,   205,     2,   202,     4,     5,     6,     7,     8,
     2460       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2461      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2462      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
     2463       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2464       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2465       0,    34,     0,    35,     0,     0,    37,    38,     0,     0,
    23672466       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    23682467      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    23692468      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2370        0,     0,   278,    30,   279,     0,     0,     0,     0,     0,
     2469       0,  -390,   679,    30,     0,     0,     0,     0,     0,     0,
     2470     627,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2471       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2472      35,     0,     0,    37,    38,     0,     0,     0,     0,     0,
    23712473       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2372        0,     0,     0,     0,     0,   280,    33,     0,    34,     0,
    2373       35,   281,     0,    37,    38,   282,     0,     0,   283,   284,
    2374      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2375        0,     0,     0,   289,     0,     0,     0,     0,     0,     0,
    2376        0,     0,     0,     0,     0,     0,     0,   290,     0,   919,
    2377        0,     0,     0,     0,     0,     0,   292,   340,   294,   295,
    2378      296,   297,     2,   202,     4,     5,     6,     7,     8,     9,
    2379       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2380       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2381        0,     0,     0,     0,   278,    30,   279,     0,     0,     0,
    2382        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2383        0,     0,     0,     0,     0,     0,     0,   280,    33,     0,
    2384       34,     0,    35,   281,     0,   203,    38,   282,     0,     0,
    2385      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2386        0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
    2387        0,     0,     0,     0,     0,     0,     0,     0,     0,   290,
    2388        0,  1006,     0,     0,     0,     0,     0,     0,   292,  1007,
    2389      294,   295,   296,   297,     2,   202,     4,     5,     6,     7,
    2390        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2391       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2392       26,    27,     0,     0,     0,     0,   278,    30,   279,     0,
    2393        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2394        0,     0,     0,     0,     0,     0,     0,     0,     0,   280,
    2395       33,     0,    34,     0,    35,   281,     0,   203,    38,   282,
    2396        0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
    2397      288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
    2398        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2399        0,   290,     0,   374,     0,     0,     0,     0,     0,     0,
    2400      292,   376,   294,   295,   296,   297,  -504,     0,     0,     1,
    2401        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    2402       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2403       22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
    2404        0,    29,     0,    30,    31,     0,     0,     0,     0,     0,
    2405        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2406        0,     0,     0,    32,     0,     0,    33,     0,    34,     0,
    2407       35,    36,     0,    37,    38,    39,     0,     0,     0,     0,
    2408        0,     0,    40,    41,     0,     0,     0,     0,     0,     0,
    2409        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2410        0,     0,     0,     0,     0,     0,     0,    42,     0,    43,
    2411        0,     0,     0,     0,     0,     0,     0,    44,     1,     2,
    2412        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2413       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2414       23,    24,     0,     0,    25,    26,    27,    28,     0,     0,
    2415       29,     0,    30,    31,     0,     0,     0,     0,     0,     0,
    2416        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2417        0,     0,    32,     0,     0,    33,     0,    34,     0,    35,
    2418       36,     0,    37,    38,    39,     0,     0,     0,     0,     0,
    2419        0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
    2420        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2421        0,     0,     0,     0,     0,     0,    42,     0,    43,     0,
    2422        0,     0,  -508,     0,     0,     0,    44,     1,     2,     3,
     2474       0,     0,     0,     0,     0,  1348,     0,     0,     0,     0,
     2475       0,     0,     0,     0,     0,     0,     0,     0,     0,   679,
     2476       0,     0,     0,     0,     0,     0,     0,   627,     2,   202,
    24232477       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    24242478      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2425       24,     0,     0,    25,    26,    27,    28,     0,     0,    29,
    2426        0,    30,    31,     0,     0,     0,     0,     0,     0,     0,
     2479      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2480       0,    30,     8,     9,    10,    11,    12,    13,    14,    15,
     2481      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2482       0,    25,    26,    27,    33,     0,    34,     0,    35,    30,
     2483       0,    37,    38,     0,     0,     0,     0,     0,     0,     0,
    24272484       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2428        0,    32,     0,     0,    33,     0,    34,     0,    35,    36,
    2429        0,    37,    38,    39,     0,     0,     0,     0,     0,     0,
    2430       40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
    2431        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2432        0,     0,     0,     0,     0,    42,     0,    43,     0,     0,
    2433        0,     0,     0,     0,     0,    44,   201,     2,   202,     4,
    2434        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2435       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2436        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2437       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2438        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2439        0,     0,     0,    33,     0,    34,     0,    35,    36,     0,
    2440      203,    38,    39,     0,     0,     0,     0,     0,     0,    40,
    2441       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2442        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2443        0,     0,     0,     0,    42,     0,   204,     0,     0,     0,
    2444        0,     0,     0,     0,   205,     1,     2,   202,     4,     5,
    2445        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2446       16,    17,    18,    19,    20,    21,    22,    23,    24,  -285,
    2447        0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
    2448        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2449        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2450        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2451       38,     0,     0,  -285,     1,     2,   202,     4,     5,     6,
    2452        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2453       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2454       25,    26,    27,    28,     0,    43,    29,     0,    30,     0,
    2455        0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    2456        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2457        0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
    2458        0,   201,     2,   202,     4,     5,     6,     7,     8,     9,
    2459       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2460       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2461        0,     0,     0,     0,    43,    30,     0,     0,     0,     0,
    2462        0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
    2463        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2464       34,     0,    35,     0,     0,   203,    38,     2,   202,     4,
    2465        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2466       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2467        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2468       30,   204,     0,     0,     0,     0,     0,     0,     0,   267,
    2469        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2470        0,     0,     0,    33,     0,    34,     0,    35,    36,     0,
    2471      203,    38,    39,     0,     0,     0,     0,     0,     0,    40,
    2472       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2473        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2474        0,     0,     0,     0,    42,     0,   204,     0,     0,     0,
    2475        0,     0,     0,     0,   205,     2,   202,     4,     5,     6,
    2476        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2477       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2478       25,    26,    27,     0,     0,     0,     0,     0,    30,     8,
    2479        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2480       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2481       27,    33,     0,    34,     0,    35,    30,     0,    37,    38,
    2482        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2483        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2484     1348,     0,     0,     0,   108,     0,    37,    38,     0,     0,
    2485        0,     0,     0,     0,   678,     0,     0,     0,     0,     0,
    2486        0,     0,   627,     2,   202,     4,     5,     6,     7,     8,
    2487        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2488       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2489       27,     0,     0,     0,     0,     0,    30,     8,     9,    10,
    2490       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2491       21,    22,    23,    24,     0,     0,    25,    26,    27,    33,
    2492        0,    34,     0,    35,    30,     0,    37,    38,     0,     0,
    2493        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2494        0,     0,     0,     0,     0,     0,     0,    33,  1350,     0,
    2495        0,     0,     0,     0,    37,    38,     0,     0,     0,     0,
    2496        0,     0,   678,     0,     0,     0,     0,     0,     0,     0,
    2497      627,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    2498       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2499       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2500        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    2501        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2502        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2503        0,    35,     0,     0,   203,    38,     2,   202,     4,     5,
     2485       0,     0,    33,  1350,     0,     0,     0,   108,     0,    37,
     2486      38,     0,     0,     0,     0,     0,     0,   679,     0,     0,
     2487       0,     0,     0,     0,     0,   627,     2,   202,     4,     5,
    25042488       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    25052489      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    25062490       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2507      266,     0,     0,     0,     0,     0,     0,     0,   622,     0,
     2491       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25082492       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25092493       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     
    25112495      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    25122496      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2513        0,     0,     0,     0,    30,   678,     0,     0,     0,     0,
     2497       0,     0,     0,     0,    30,   679,     0,     0,     0,     0,
    25142498       0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
    25152499       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     
    25512535      41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    25522536     289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2553        0,     0,     0,     0,   290,   -35,   756,     0,     0,     0,
     2537       0,     0,     0,     0,   290,   -33,   757,     0,     0,     0,
    25542538       0,     0,     0,   292,   293,   294,   295,   296,   297,     8,
    25552539       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     
    25952579       0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
    25962580     374,     0,     0,     0,     0,     0,     0,   292,   376,   294,
    2597      295,   296,   297,   469,     2,   202,     4,     5,     6,     7,
    2598        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2599       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2600       26,    27,     0,     0,     0,     0,     0,    30,     8,     9,
    2601       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2602       20,    21,    22,    23,    24,  -285,     0,    25,    26,    27,
    2603       33,     0,    34,     0,    35,    30,     0,    37,    38,     0,
     2581     295,   296,   297,     8,     9,    10,    11,    12,    13,    14,
     2582      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2583    -285,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2584      30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26042585       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2605        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2606        0,     0,     0,    36,     0,   332,   333,    39,     0,  -285,
    2607        0,     0,     0,     0,    40,    41,    -3,     8,     9,    10,
    2608       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2609       21,    22,    23,    24,  -285,     0,    25,    26,    27,   636,
    2610        0,   334,     0,     0,    30,     0,     0,     0,     0,   627,
    2611        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2612       18,    19,    20,    21,    22,    23,    24,    33,     0,    25,
    2613       26,    27,    36,     0,   332,   333,    39,    30,  -285,     0,
    2614        0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
     2586       0,     0,     0,    33,     0,     0,     0,     0,    36,     0,
     2587     332,   333,    39,     0,  -285,     0,     0,     0,     0,    40,
     2588      41,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2589      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2590      25,    26,    27,     0,   636,     0,   334,     0,    30,     0,
     2591       0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
    26152592       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2616       33,     0,     0,     0,     0,    36,     0,    37,    38,    39,
    2617      334,     0,     0,     0,     0,     0,    40,    41,   109,     8,
     2593       0,    33,     0,     0,     0,     0,    36,     0,    37,    38,
     2594      39,     0,     0,     0,     0,     0,     0,    40,    41,     8,
    26182595       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26192596      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2620       27,    42,     0,    43,     0,     0,    30,     0,     0,     0,
    2621        0,    44,     0,     0,     0,     0,     0,     0,     0,     0,
     2597      27,     0,    42,     0,   154,     0,    30,     0,     0,     0,
     2598       0,     0,    44,     0,     0,     0,     0,     0,     0,     0,
    26222599       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2623        0,     0,     0,     0,    36,     0,   203,    38,    39,     0,
     2600       0,     0,     0,     0,    36,     0,    37,    38,    39,     0,
    26242601       0,     0,     0,     0,     0,    40,    41,     8,     9,    10,
    26252602      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    26262603      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2627       42,     0,   266,     0,    30,     0,     0,     0,     0,     0,
    2628      205,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2604      42,     0,    43,     0,    30,     0,     0,     0,     0,     0,
     2605      44,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26292606       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    2630        0,     0,    36,     0,   332,   333,    39,     0,     0,     0,
     2607       0,     0,    36,     0,   203,    38,    39,     0,     0,     0,
    26312608       0,     0,     0,    40,    41,     8,     9,    10,    11,    12,
    26322609      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2633       23,    24,     0,     0,    25,    26,    27,     0,   636,     0,
    2634      334,     0,    30,     0,     0,     0,     0,     0,   627,     0,
     2610      23,    24,     0,     0,    25,    26,    27,     0,    42,     0,
     2611     266,     0,    30,     0,     0,     0,     0,     0,   205,     0,
    26352612       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26362613       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     
    26382615       0,    40,    41,     8,     9,    10,    11,    12,    13,    14,
    26392616      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2640     -285,     0,    25,    26,    27,     0,     0,     0,   334,     0,
    2641       30,     0,     0,     0,     0,     0,   109,     0,     0,     0,
     2617       0,     0,    25,    26,    27,     0,   636,     0,   334,     0,
     2618      30,     0,     0,     0,     0,     0,   627,     0,     0,     0,
    26422619       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2620       0,     0,     0,    33,     0,     0,     0,     0,    36,     0,
     2621     332,   333,    39,     0,     0,     0,     0,     0,     0,    40,
     2622      41,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2623      17,    18,    19,    20,    21,    22,    23,    24,  -285,     0,
     2624      25,    26,    27,     0,     0,     0,   334,     0,    30,     0,
     2625       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2626       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2627       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
     2628       0,     0,  -285,     8,     9,    10,    11,    12,    13,    14,
     2629      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2630    -285,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2631      30,     0,   636,     0,   334,     0,     0,     0,     0,     0,
     2632       0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
    26432633       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    26442634      37,    38,     0,     0,  -285,     8,     9,    10,    11,    12,
     
    26502640       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
    26512641      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2652       24,  -285,     0,    25,    26,    27,     0,     0,     0,     0,
    2653        0,    30,     0,     0,     0,     0,     0,     0,   449,     0,
    2654        0,     0,   935,     0,     0,     0,   109,     0,     0,     0,
    2655        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2656        0,    37,    38,     0,     0,  -285,     8,     9,    10,    11,
    2657       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2658       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2659        0,     0,     0,    30,   448,     0,     0,   334,     0,     0,
    2660        0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    2661        0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2662        0,     0,     0,    37,    38,     8,     9,    10,    11,    12,
    2663       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2664       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2665        0,     0,    30,     0,     0,     0,     0,     0,     0,   449,
    2666        0,     0,     0,  1218,     0,     0,     0,   109,     0,     0,
    2667        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2668      108,     0,    37,    38,     8,     9,    10,    11,    12,    13,
    2669       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    26702642      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2671        0,    30,   448,     0,     0,     0,     0,     0,    43,     0,
    2672        0,     0,     0,     0,     0,     0,   109,     0,     0,     0,
     2643       0,    30,   448,     0,     0,     0,     0,     0,   449,     0,
     2644       0,     0,   703,     0,     0,     0,   109,     0,     0,     0,
    26732645       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    26742646       0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
    26752647      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2648    -285,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2649      30,     0,     0,     0,     0,     0,     0,   449,     0,     0,
     2650       0,   937,     0,     0,     0,   109,     0,     0,     0,     0,
     2651       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2652      37,    38,     0,     0,  -285,     8,     9,    10,    11,    12,
     2653      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2654      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2655       0,     0,    30,   448,     0,     0,   334,     0,     0,     0,
     2656       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2657       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2658       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
     2659      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2660      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2661       0,    30,     0,     0,     0,     0,     0,     0,   449,     0,
     2662       0,     0,  1219,     0,     0,     0,   109,     0,     0,     0,
     2663       0,     0,     0,     0,    33,     0,     0,     0,     0,   108,
     2664       0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
     2665      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    26762666       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2677       30,     0,     0,     0,     0,     0,     0,   449,     0,     0,
     2667      30,   448,     0,     0,     0,     0,     0,    43,     0,     0,
    26782668       0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    26792669       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     
    26812671      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    26822672       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2683        0,     0,     0,     0,   636,     0,   334,     0,     0,     0,
     2673       0,     0,     0,     0,     0,     0,   449,     0,     0,     0,
    26842674       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
    26852675       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
     
    26882678      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
    26892679       0,     0,     0,   636,     0,   334,     0,     0,     0,     0,
    2690        0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
     2680       0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    26912681       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
    26922682       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    26932683      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    26942684      26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
    2695        0,     0,     0,     0,   253,     0,     0,     0,     0,     0,
    2696        0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
     2685       0,     0,   636,     0,   334,     0,     0,     0,     0,     0,
     2686       0,     0,   627,     0,     0,     0,     0,     0,     0,     0,
    26972687      33,     0,     0,     0,     0,     0,     0,    37,    38,     8,
    26982688       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26992689      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    27002690      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    2701        0,     0,     0,   154,     0,     0,     0,     0,     0,     0,
     2691       0,     0,     0,   253,     0,     0,     0,     0,     0,     0,
    27022692       0,   109,     0,     0,     0,     0,     0,     0,     0,    33,
    2703        0,     0,     0,     0,     0,     0,   203,    38,     8,     9,
     2693       0,     0,     0,     0,     0,     0,    37,    38,     8,     9,
    27042694      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    27052695      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    27062696       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    2707        0,     0,   266,     0,     0,     0,     0,     0,     0,     0,
    2708      267,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2709        0,     0,     0,     0,     0,    37,    38,     8,     9,    10,
     2697       0,     0,   154,     0,     0,     0,     0,     0,     0,     0,
     2698     109,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2699       0,     0,     0,     0,     0,   203,    38,     8,     9,    10,
    27102700      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    27112701      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    27122702       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    2713        0,   253,     0,     0,     0,     0,     0,     0,     0,   627,
     2703       0,   266,     0,     0,     0,     0,     0,     0,     0,   267,
    27142704       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    27152705       0,     0,     0,     0,    37,    38,     8,     9,    10,    11,
     
    27172707      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    27182708       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2719      334,     0,     0,     0,     0,     0,     0,     0,   627,     0,
     2709     253,     0,     0,     0,     0,     0,     0,     0,   627,     0,
    27202710       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    27212711       0,     0,     0,    37,    38,     8,     9,    10,    11,    12,
    27222712      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    27232713      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2724        0,     0,    30,     0,     0,     0,     0,     0,     0,   449,
    2725        0,     0,     0,     0,     0,     0,     0,   109,     0,     0,
     2714       0,     0,    30,     0,     0,     0,     0,     0,     0,   334,
     2715       0,     0,     0,     0,     0,     0,     0,   627,     0,     0,
    27262716       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2727        0,     0,   203,    38,     8,     9,    10,    11,    12,    13,
     2717       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
    27282718      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    27292719      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2730        0,    30,     0,     0,     0,     0,     0,     0,   266,     0,
    2731        0,     0,     0,     0,     0,     0,   622,     0,     0,     0,
     2720       0,    30,     0,     0,     0,     0,     0,     0,   449,     0,
     2721       0,     0,     0,     0,     0,     0,   109,     0,     0,     0,
    27322722       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2733        0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
     2723       0,   203,    38,     8,     9,    10,    11,    12,    13,    14,
    27342724      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    27352725       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2736       30,     0,     0,     0,     0,     0,     0,   592,     0,     0,
    2737        0,     0,     0,     0,     0,   627,     0,     0,     0,     0,
     2726      30,     0,     0,     0,     0,     0,     0,   266,     0,     0,
     2727       0,     0,     0,     0,     0,   622,     0,     0,     0,     0,
    27382728       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    27392729      37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
    27402730      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    27412731       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2742        0,     0,     0,     0,     0,     0,   334,     0,     0,     0,
    2743        0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2732       0,     0,     0,     0,     0,     0,   592,     0,     0,     0,
     2733       0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
    27442734       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    27452735      38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    27462736      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    27472737      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
    2748        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
     2738       0,     0,     0,     0,     0,   334,     0,     0,     0,     0,
    27492739       0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    2750        0,    33,     0,     0,     0,     0,     0,     0,   203,    38,
    2751        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2752       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2753       26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
    2754        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2755        0,     0,   267,     0,     0,     0,     0,     0,     0,     0,
    2756       33,     0,     0,     0,     0,     0,     0,   203,    38,     2,
    2757      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2758       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2759       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2760        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
    2761        0,   622,     0,     0,     0,     0,     0,     0,     0,     0,
    2762        0,     0,     0,     0,     0,    33,     0,    34,     0,    35,
    2763        0,     0,    37,    38,     0,   278,     0,   279,  1050,     0,
    2764     1051,     0,     0,  1052,  1053,  1054,  1055,  1056,  1057,  1058,
    2765     1059,  1504,  1060,     0,     0,  1061,    32,     0,   280,     0,
    2766        0,     0,     0,     0,   642,     0,     0,  -403,   282,     0,
    2767        0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    2768        0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
    2769        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2770      290,     0,   374,     0,     0,   167,     0,     0,     0,   292,
    2771      376,   294,   295,   296,   297,     0,   278,     0,   279,  1050,
    2772        0,  1051,     0,  -126,  1052,  1053,  1054,  1055,  1056,  1057,
    2773     1058,  1059,     0,  1060,     0,     0,  1061,    32,     0,   280,
    2774        0,     0,     0,     0,     0,   642,     0,     0,     0,   282,
     2740       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
     2741       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
     2742      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2743      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2744       0,     0,     0,    30,    43,     0,     0,     0,     0,     0,
     2745       0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
     2746       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2747      35,     0,     0,    37,    38,     0,   278,     0,   279,  1051,
     2748       0,  1052,     0,     0,  1053,  1054,  1055,  1056,  1057,  1058,
     2749    1059,  1060,  1507,  1061,     0,     0,  1062,    32,     0,   280,
     2750       0,     0,     0,     0,     0,   642,     0,     0,  -403,   282,
    27752751       0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
    27762752     288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
    27772753       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27782754       0,   290,     0,   374,     0,     0,   167,     0,     0,     0,
    2779      292,   376,   294,   295,   296,   297,     0,     0,     0,     0,
    2780        0,     0,     0,     0,  -126,     2,   202,     4,     5,     6,
    2781        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2782       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2783       25,    26,    27,     0,     0,     0,     0,     0,    30,     8,
    2784        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2785       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2786       27,    33,     0,    34,     0,    35,    30,     0,    37,    38,
    2787        0,   278,     0,   279,  1050,     0,  1051,  1394,  1395,  1052,
    2788     1053,  1054,  1055,  1056,  1057,  1058,  1059,  1504,  1060,    33,
    2789     1307,  1061,    32,     0,   280,     0,   203,    38,     0,     0,
    2790      642,     0,     0,     0,   282,     0,     0,   283,   284,   285,
    2791      286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    2792        0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
    2793        0,     0,     0,     0,     0,     0,   290,     0,   374,     0,
    2794        0,   167,     0,     0,     0,   292,   376,   294,   295,   296,
    2795      297,   278,     0,   279,  1050,     0,  1051,  1394,  1395,  1052,
    2796     1053,  1054,  1055,  1056,  1057,  1058,  1059,     0,  1060,     0,
    2797        0,  1061,    32,     0,   280,     0,     0,     0,     0,     0,
    2798      642,     0,     0,     0,   282,     0,     0,   283,   284,   285,
    2799      286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    2800        0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
    2801        0,     0,     0,     0,     0,     0,   290,     0,   374,     0,
    2802        0,   167,     0,     0,     0,   292,   376,   294,   295,   296,
    2803      297,   278,     0,   279,  1050,     0,  1051,     0,     0,  1052,
    2804     1053,  1054,  1055,  1056,  1057,  1058,  1059,     0,  1060,     0,
    2805        0,  1061,    32,     0,   280,     0,     0,     0,     0,     0,
    2806      642,     0,     0,     0,   282,     0,     0,   283,   284,   285,
     2755     292,   376,   294,   295,   296,   297,     0,   278,     0,   279,
     2756    1051,     0,  1052,     0,  -126,  1053,  1054,  1055,  1056,  1057,
     2757    1058,  1059,  1060,     0,  1061,     0,     0,  1062,    32,     0,
     2758     280,     0,     0,     0,     0,     0,   642,     0,     0,     0,
     2759     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2760     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
     2761       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2762       0,     0,   290,     0,   374,     0,     0,   167,     0,     0,
     2763       0,   292,   376,   294,   295,   296,   297,     0,     0,     0,
     2764       0,     0,     0,     0,     0,  -126,     2,   202,     4,     5,
     2765       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2766      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2767       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
     2768       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2769      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2770      26,    27,    33,     0,    34,     0,    35,    30,     0,    37,
     2771      38,     0,   278,     0,   279,  1051,     0,  1052,  1394,  1395,
     2772    1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,  1507,  1061,
     2773      33,  1307,  1062,    32,     0,   280,     0,    37,    38,     0,
     2774       0,   642,     0,     0,     0,   282,     0,     0,   283,   284,
     2775     285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
     2776       0,     0,     0,   289,     0,     0,     0,     0,     0,     0,
     2777       0,     0,     0,     0,     0,     0,     0,   290,     0,   374,
     2778       0,     0,   167,     0,     0,     0,   292,   376,   294,   295,
     2779     296,   297,   278,     0,   279,  1051,     0,  1052,  1394,  1395,
     2780    1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,     0,  1061,
     2781       0,     0,  1062,    32,     0,   280,     0,     0,     0,     0,
     2782       0,   642,     0,     0,     0,   282,     0,     0,   283,   284,
     2783     285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
     2784       0,     0,     0,   289,     0,     0,     0,     0,     0,   278,
     2785       0,   279,     0,     0,     0,     0,     0,   290,     0,   374,
     2786       0,     0,   167,     0,     0,     0,   292,   376,   294,   295,
     2787     296,   297,   280,     0,     0,     0,     0,     0,   281,     0,
     2788       0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
     2789      41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
     2790     289,     0,     0,     0,     0,     0,   278,     0,   279,     0,
     2791       0,     0,     0,     0,   290,     0,   374,     0,     0,     0,
     2792       0,     0,   802,   292,   376,   294,   295,   296,   297,   280,
     2793       0,     0,     0,     0,     0,   281,     0,     0,     0,   282,
     2794       0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
     2795     288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
     2796       0,     0,     0,   278,     0,   279,     0,     0,     0,     0,
     2797       0,   290,     0,   374,     0,     0,   982,     0,     0,     0,
     2798     292,   376,   294,   295,   296,   297,   280,     0,     0,     0,
     2799       0,     0,   281,     0,     0,     0,   282,     0,     0,   283,
     2800     284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
     2801       0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
     2802     278,     0,   279,     0,     0,     0,     0,     0,   290,     0,
     2803     374,     0,     0,     0,     0,     0,     0,   292,   376,   294,
     2804     295,   296,   297,   280,     0,     0,     0,     0,     0,   281,
     2805       0,     0,     0,   282,     0,     0,   283,   284,   285,   286,
     2806      40,    41,     0,   287,   288,     0,     0,     0,     0,     0,
     2807       0,   289,     0,     0,     0,     0,     0,   278,     0,   279,
     2808       0,     0,     0,     0,     0,   290,     0,   374,     0,     0,
     2809       0,     0,     0,     0,   292,   726,   294,   295,   296,   297,
     2810     280,     0,     0,     0,     0,     0,   642,     0,     0,     0,
     2811     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2812     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
     2813       0,     0,     0,     0,   278,     0,   279,     0,     0,     0,
     2814       0,     0,   290,     0,   776,     0,     0,     0,     0,     0,
     2815       0,   292,   376,   294,   295,   296,   297,   280,     0,     0,
     2816       0,     0,     0,   281,     0,     0,     0,   282,     0,     0,
     2817     283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
     2818       0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
     2819       0,   278,     0,   279,     0,     0,     0,     0,     0,   290,
     2820       0,   374,     0,     0,     0,     0,     0,     0,   292,   817,
     2821     294,   295,   296,   297,   280,     0,     0,     0,     0,     0,
     2822     281,     0,     0,     0,   282,     0,     0,   283,   284,   285,
    28072823     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    28082824       0,     0,   289,     0,     0,     0,     0,     0,   278,     0,
    2809      279,     0,     0,     0,     0,     0,   290,     0,   374,     0,
    2810        0,   167,     0,     0,     0,   292,   376,   294,   295,   296,
     2825     279,     0,     0,     0,     0,     0,   508,     0,     0,     0,
     2826       0,     0,     0,     0,     0,   292,   376,   294,   295,   296,
    28112827     297,   280,     0,     0,     0,     0,     0,   281,     0,     0,
    28122828       0,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    28132829       0,   287,   288,     0,     0,     0,     0,     0,     0,   289,
    28142830       0,     0,     0,     0,     0,   278,     0,   279,     0,     0,
    2815        0,     0,     0,   290,     0,   374,     0,     0,     0,     0,
    2816        0,     0,   292,   725,   294,   295,   296,   297,   280,     0,
    2817        0,     0,     0,     0,   642,     0,     0,     0,   282,     0,
     2831       0,     0,     0,   290,     0,     0,     0,     0,     0,     0,
     2832       0,     0,   292,   376,   294,   295,   296,   297,   280,     0,
     2833       0,     0,     0,     0,   281,     0,     0,     0,   282,     0,
    28182834       0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    28192835       0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
    28202836       0,     0,   278,     0,   279,     0,     0,     0,     0,     0,
    2821      290,     0,   775,     0,     0,     0,     0,     0,     0,   292,
     2837     512,     0,     0,     0,     0,     0,     0,     0,     0,   292,
    28222838     376,   294,   295,   296,   297,   280,     0,     0,     0,     0,
    28232839       0,   281,     0,     0,     0,   282,     0,     0,   283,   284,
    28242840     285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2825        0,     0,     0,   289,     0,     0,     0,     0,     0,   278,
    2826        0,   279,     0,     0,     0,     0,     0,   290,     0,   374,
    2827        0,     0,     0,     0,     0,     0,   292,   816,   294,   295,
    2828      296,   297,   280,     0,     0,     0,     0,     0,   281,     0,
    2829        0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
    2830       41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2831      289,     0,     0,     0,     0,     0,   278,     0,   279,     0,
    2832        0,     0,     0,     0,   512,     0,     0,     0,     0,     0,
    2833        0,     0,     0,   292,   376,   294,   295,   296,   297,   280,
    2834        0,     0,     0,     0,     0,   281,     0,     0,     0,   282,
    2835        0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
    2836      288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
     2841       0,     0,     0,   289,     0,     0,     0,     0,     0,     0,
     2842       0,     0,     0,     0,     0,     0,     0,   515,     0,     0,
     2843       0,     0,     0,     0,     0,     0,   292,   376,   294,   295,
     2844     296,   297,     2,   202,     4,     5,     6,     7,     8,     9,
     2845      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2846      20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
     2847       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    28372848       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2838        0,   515,     0,     0,     0,     0,     0,     0,     0,     0,
    2839      292,   376,   294,   295,   296,   297,     2,   202,     4,     5,
    2840        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2841       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2842        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    2843        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2844        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2845        0,     0,    33,     0,    34,     0,    35,    36,     0,   170,
    2846      171,    39,     0,     0,     0,     0,     0,     0,    40,    41,
    2847      201,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    2848       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2849       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2850        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    2851        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2852        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2853        0,    35,     0,     0,   203,    38,   469,     2,   202,     4,
     2849       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2850      34,     0,    35,    36,     0,   170,   171,    39,     0,     0,
     2851       0,     0,     0,     0,    40,    41,   201,     2,   202,     4,
    28542852       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    28552853      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    28582856       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28592857       0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
    2860       37,    38,     2,   202,     4,     5,     6,     7,     8,     9,
    2861       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2862       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2863        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
     2858     203,    38,   469,     2,   202,     4,     5,     6,     7,     8,
     2859       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2860      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2861      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    28642862       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2865        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2866       34,     0,    35,     0,     0,   203,    38,     8,     9,    10,
    2867       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2868       21,    22,    23,    24,     0,     0,    25,    26,    27,   487,
    2869      488,   489,     0,     0,    30,     0,     0,     0,     0,     0,
     2863       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2864       0,    34,     0,    35,     0,     0,    37,    38,     2,   202,
     2865       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2866      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2867      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2868       0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    28702869       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2871        0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    2872        0,     0,     0,     0,    37,    38
     2870       0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
     2871       0,   203,    38,     8,     9,    10,    11,    12,    13,    14,
     2872      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2873       0,     0,    25,    26,    27,   487,   488,   489,     0,     0,
     2874      30,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2875      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2876      25,    26,    27,    33,     0,     0,     0,     0,    30,     0,
     2877      37,    38,     0,     0,     0,     0,     0,     0,     0,     0,
     2878       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2879       0,    33,     0,     0,     0,     0,     0,     0,   203,    38
    28732880};
    28742881
    28752882#define yypact_value_is_default(yystate) \
    2876   ((yystate) == (-1398))
     2883  ((yystate) == (-1318))
    28772884
    28782885#define yytable_value_is_error(yytable_value) \
     
    28812888static const yytype_int16 yycheck[] =
    28822889{
    2883        1,    42,     0,   235,     0,   200,     1,   113,    42,   181,
    2884      181,    42,   890,   165,   689,   181,   689,   275,   689,   182,
    2885      344,   181,   750,    29,   181,   450,   534,   103,   181,   277,
    2886      181,   622,   890,    31,   451,    31,   457,   604,  1028,  1029,
    2887     1078,   602,    42,   602,    42,   215,    44,   344,    44,   605,
    2888      602,    42,   986,     0,     0,   611,    54,   494,    75,   647,
    2889      602,   498,    60,   604,    60,    63,   770,    63,    66,    31,
    2890       66,    66,  1049,  1029,    80,    81,   152,   572,  1317,    42,
    2891      602,   183,     0,    54,    31,    31,     0,     1,  1485,   261,
    2892      261,   197,   767,    49,   767,   261,   767,     0,   523,   262,
    2893       27,   261,    37,   412,   261,    37,   104,  1394,   261,   107,
    2894      261,  1508,     0,    31,   182,   113,    37,    31,   637,   638,
    2895       65,   359,   602,   432,   602,   363,   714,    37,    31,    57,
    2896       11,   440,    37,   104,   653,    75,   107,   466,    37,    42,
    2897      181,    44,    65,    31,    71,   101,   144,   181,   144,    63,
    2898      181,   279,    66,   101,   152,   257,   258,    60,    75,   157,
    2899       63,   157,   102,    66,   292,   293,   490,    65,   103,    65,
    2900     1457,  1049,  1411,   101,    37,   993,   304,    42,    43,   124,
    2901      101,   181,   103,   181,   182,   102,   182,   252,    42,    43,
    2902      181,   101,   109,   103,   262,    88,   101,   492,   103,   197,
    2903       75,   124,   101,   104,   103,   103,    75,   205,   727,   205,
    2904       89,   101,   340,   735,   101,   111,   214,    52,   181,   217,
    2905      261,   217,   690,  1041,    44,    75,   290,   261,   103,   122,
    2906      261,   101,   101,   239,   404,    78,   115,   400,   101,    75,
    2907      103,   144,   107,   214,   712,    42,    43,   248,   376,   247,
    2908      123,   247,   106,   123,   157,   735,   224,   735,   506,   109,
    2909       95,   337,   105,   261,   262,   101,   262,   828,  1224,   828,
    2910      268,   101,   102,   840,   830,   243,   828,   275,   181,   182,
    2911      113,   114,  1272,  1273,   390,   247,   828,   450,   289,   109,
    2912      366,   995,   709,   106,     0,     1,    89,   268,   817,   840,
    2913      247,   247,   205,   217,   275,  1239,   828,   604,   108,   106,
    2914     1287,   606,   418,   808,   217,   610,   104,  1273,   424,   482,
    2915      108,   108,   115,   143,   124,    31,   324,     1,   324,   247,
    2916     1058,  1209,   400,   247,   252,    65,   631,    67,    68,   108,
    2917      635,    65,   671,  1398,   247,   343,   344,   412,   828,   108,
    2918      828,  1209,   590,    65,   189,   124,   420,   421,   261,   247,
    2919       66,   102,   360,    65,   252,   124,   364,   432,   109,   375,
    2920       44,   101,   343,   682,   108,   440,   106,   212,  1416,   103,
    2921        3,   948,   450,   420,   421,   205,   947,   222,   947,   360,
    2922      124,   103,   390,   364,  1485,   633,    65,    44,    67,    68,
    2923     1390,   103,   400,   104,   400,   947,   102,   108,     3,  1287,
    2924     1501,   108,   108,    54,   482,   235,  1007,  1508,   108,   667,
    2925      418,   324,   550,   551,   552,  1480,   424,   124,   426,   103,
    2926     1485,   340,   101,     0,  1390,   109,    65,   106,    67,    68,
    2927       65,   344,    67,    68,   508,   101,  1501,   267,   512,   455,
    2928      526,   515,   450,  1508,   460,   290,   121,  1434,   123,   496,
    2929     1016,  1017,   109,   104,  1441,   593,   107,     0,   469,   143,
    2930      123,   890,   102,   293,   103,   804,   474,   514,   152,   109,
    2931      101,   106,   103,   991,   482,   814,   482,   493,   486,   495,
    2932      486,   749,   490,   123,   412,   916,   648,   400,   966,   108,
    2933      829,   926,   102,   104,   568,   753,  1483,   108,   108,   934,
    2934      108,   152,   101,   514,   432,   124,   840,   689,   689,   956,
    2935      340,   104,   440,   689,   412,   108,   124,   201,   691,   689,
    2936      531,   205,   689,   534,  1101,   536,   689,  1125,   689,   486,
    2937      486,   247,   579,   840,   432,   111,   101,   450,   103,   655,
    2938      116,   117,   440,   508,   979,   657,  1434,   512,   205,  1287,
    2939      515,   235,   236,  1441,  1382,  1383,   484,   862,   486,   636,
    2940      637,   638,   486,   214,   108,   484,    10,    11,    12,    13,
    2941       14,   819,   583,   486,   104,   823,   653,   490,   108,   236,
    2942      124,   108,   590,   267,    83,    84,   270,   725,   486,   108,
    2943      420,   421,   437,    37,   602,  1483,   604,   124,   108,    81,
    2944       82,   687,    78,    79,    80,   124,   290,   682,  1117,   293,
    2945      267,   101,  1121,   691,   124,   623,    60,   268,   952,   118,
    2946      119,   108,  1360,  1052,   275,   101,   471,   103,   644,   105,
    2947      101,   639,   770,   290,   102,   591,   293,   124,   108,   108,
    2948      108,  1119,   623,   654,   652,   656,  1460,   655,   953,   724,
    2949      727,   102,  1466,   337,   124,   124,   340,   108,   639,   101,
    2950     1087,   103,   101,   508,   912,   102,   496,   512,  1482,   111,
    2951      515,   652,   109,  1487,   593,   359,   762,   101,   816,   363,
    2952      101,   689,   366,   691,   514,   102,  1025,  1026,   704,   602,
    2953      102,   604,   343,   102,   710,   102,   108,   877,  1176,  1177,
    2954     1438,   108,  1440,   622,   102,   101,   104,   103,   627,   360,
    2955      108,   722,   102,   364,     0,   111,   958,   897,   103,   102,
    2956      105,   883,    85,    86,   109,   123,   124,   735,   736,     4,
    2957        5,     6,     7,     8,     9,   102,   420,   421,   108,   109,
    2958      817,   749,   102,  1082,  1083,    31,  1484,   104,     3,   579,
    2959      101,   102,   103,   926,   682,    10,    11,    12,    13,    14,
    2960      688,   934,   101,   593,   448,   102,   102,   451,   749,   688,
    2961      486,   108,   108,   457,   101,   426,   689,    63,   691,   101,
    2962     1209,   103,    37,   107,   682,   469,   101,    62,   101,    64,
    2963      103,   448,   622,   103,   451,   105,   724,   627,   111,   109,
    2964      457,   102,   104,   102,  1489,    60,  1489,   108,  1489,   108,
    2965      494,   102,   496,   102,   498,  1020,   101,   108,   103,   108,
    2966      828,   102,   735,   736,   508,   670,   724,   108,   512,   124,
    2967      514,   515,   840,   102,   679,   763,    57,   102,   683,   108,
    2968     1088,   102,   526,   108,   763,   102,   103,   108,   926,   124,
    2969       65,   508,    67,    68,    69,   512,   934,   484,   515,  1117,
    2970      102,    76,    77,  1121,  1122,   101,   108,   883,   824,  1007,
    2971      102,  1300,   101,   889,   102,   101,   108,   103,   889,   890,
    2972      108,  1043,    65,  1222,    67,    68,   101,   101,   103,   103,
    2973       10,    11,    12,    13,    14,   579,   111,   124,   101,  1377,
    2974      103,    65,    54,    55,   912,    69,   590,   106,   101,   593,
    2975      103,  1049,    76,    77,  1253,   828,  1394,    37,   926,   101,
    2976      102,   103,  1261,  1262,  1263,  1354,   934,   840,  1357,     0,
    2977        1,   217,   106,   101,   890,   103,   124,   101,   622,   590,
    2978       60,   108,   109,   627,   952,   124,   694,   111,   696,   633,
    2979       65,    65,   957,    67,    68,    69,     0,   101,   102,   103,
    2980       31,   247,   890,   106,   980,   101,   890,  1306,    75,  1398,
    2981      108,   109,   623,    44,  1403,   101,  1234,   988,  1456,  1457,
    2982      991,   101,   993,   103,   101,   102,   103,    31,   639,    42,
    2983       43,   111,   890,  1109,   104,    66,  1245,  1246,  1247,  1428,
    2984       75,   652,   120,   687,   557,   558,   559,   560,   112,   636,
    2985      637,   638,   121,   926,     4,     5,     6,     7,     8,     9,
    2986       87,   934,    66,   123,  1162,   709,   653,   553,   554,   103,
    2987     1041,   101,   103,   957,  1469,   555,   556,   561,   562,   952,
    2988      101,  1052,    32,   102,  1055,  1056,  1057,    67,   104,   104,
    2989      102,    71,   709,   102,    74,   739,    76,   102,   101,   345,
    2990     1318,   688,  1078,    83,  1322,   102,   102,  1078,   103,   914,
    2991     1499,   104,    62,   144,    64,  1510,  1505,   104,   762,   108,
    2992      106,   152,   153,   123,   101,  1514,   104,   102,  1007,  1518,
    2993      102,   104,   108,  1049,   104,   104,   104,    28,   749,   102,
    2994      727,  1109,     4,     5,     6,     7,     8,     9,   109,   153,
    2995      109,   182,   104,   102,   109,  1189,  1190,   108,  1192,  1205,
    2996      106,  1049,   107,   102,  1198,  1049,   197,  1201,   958,   200,
    2997      201,   107,   107,    65,   205,   819,   763,    69,   101,   823,
    2998      102,   124,   102,   102,    76,    77,    10,    11,    12,    13,
    2999       14,  1049,   109,   102,   102,   226,   102,  1415,   108,   230,
    3000       62,   232,    64,   102,   102,   102,   102,  1183,   102,   101,
    3001      241,   103,  1183,    37,   890,   102,   247,  1007,   102,   111,
    3002      102,   252,   226,  1188,   102,   102,   102,   102,   208,   475,
    3003      817,   262,   102,   107,    28,   123,    60,  1205,  1209,   270,
    3004      486,    65,   107,   247,   104,    69,   102,    65,   252,    67,
    3005       68,    69,    76,    77,   102,  1060,   102,  1145,    76,    77,
    3006        0,     1,   102,  1228,   108,   104,  1145,    65,   912,    67,
    3007       68,    69,   916,   104,  1245,  1246,  1247,   101,    76,    77,
    3008      102,   957,   102,   101,   109,   108,   102,   111,   109,   108,
    3009      102,    31,   106,  1209,  1496,   108,   104,  1373,   108,   916,
    3010      102,   912,   108,  1187,  1188,   102,   337,   124,   104,   340,
    3011      101,   101,   956,   957,   958,   346,   101,   101,   101,   107,
    3012      102,  1209,  1356,    63,   104,  1209,    66,   102,   359,  1300,
    3013        3,   102,   363,   107,   121,   366,  1224,    10,    11,    12,
    3014       13,    14,   346,   690,  1228,  1224,   106,  1489,  1489,   104,
    3015      108,  1209,  1317,  1489,   124,   104,   108,  1490,   104,  1489,
    3016      102,   102,  1489,  1007,    37,   712,  1489,   347,  1489,   349,
    3017      102,  1287,   109,  1049,   104,   104,   104,  1510,   624,   102,
    3018      104,   412,   104,  1354,   104,    45,  1357,    60,   124,   124,
    3019      124,   124,   107,  1469,   102,   107,   427,   124,  1282,  1287,
    3020      102,   432,   107,  1287,  1372,  1373,   104,   104,   412,   440,
    3021      104,  1382,  1383,   153,    65,   104,    67,    68,    69,   104,
    3022      104,   104,   104,   427,   102,    76,    77,  1398,   432,  1287,
    3023      102,  1372,  1403,  1317,   104,   466,   440,   104,   469,   101,
    3024     1416,  1028,   101,  1087,  1088,  1416,  1411,    55,    54,   102,
    3025      101,   106,  1490,   484,   801,   486,   436,  1428,   102,   124,
    3026      111,   109,   466,   494,    65,   104,   104,   498,    69,   715,
    3027     1087,   102,  1510,   102,   104,    76,    77,   217,  1489,    89,
    3028      484,   101,   486,   729,   466,  1489,   107,   104,  1489,     0,
    3029     1295,   102,   108,   102,    40,   526,   527,    44,   102,  1470,
    3030      101,  1469,   102,   102,   109,   124,   124,   247,    89,  1480,
    3031      111,   102,  1188,    60,  1485,   102,    63,   124,  1434,    66,
    3032       31,  1489,  1490,   527,  1490,  1441,   109,  1411,  1499,   124,
    3033     1501,   102,   879,  1209,  1505,   107,   104,  1508,   104,   124,
    3034      101,   572,  1510,  1514,  1510,   124,  1434,  1518,   107,   107,
    3035     1434,   102,  1228,  1441,   124,    66,   563,  1441,  1145,   590,
    3036      591,  1205,   593,   102,   565,   564,  1126,  1483,   566,  1209,
    3037     1362,  1457,  1518,   604,  1296,   821,  1434,    65,  1472,    67,
    3038       68,    69,   567,  1441,  1228,  1322,  1441,   591,    76,    77,
    3039     1122,   622,   934,   448,  1205,  1483,   627,   144,   448,  1483,
    3040      936,   696,   633,   460,   583,   636,   637,   638,   649,   980,
    3041      157,  1287,   883,   101,   739,   103,  1489,   954,  1228,   966,
    3042      486,   109,   653,   111,   571,  1483,    10,    11,    12,    13,
    3043       14,   749,   636,   637,   638,   182,    -1,  1442,   571,   571,
    3044      671,  1317,   153,    65,   890,    67,    68,    69,   995,   653,
    3045       -1,   682,    -1,    37,    76,    77,   687,   688,   205,    -1,
    3046      691,    -1,    -1,     0,    -1,    -1,  1471,   671,    -1,    -1,
    3047      217,    -1,    -1,  1317,    -1,    -1,    60,    63,   682,   101,
    3048       -1,    -1,    -1,    -1,   688,  1272,    -1,   427,    -1,   671,
    3049       -1,    -1,    -1,   724,    31,    -1,   727,    -1,  1045,    -1,
    3050      671,    -1,    -1,    -1,  1509,   736,  1496,    -1,   739,    -1,
    3051       -1,    -1,    -1,    -1,    -1,    -1,  1521,   101,    -1,   103,
    3052      724,    -1,    -1,   727,    -1,    -1,    -1,   111,   114,    66,
    3053       -1,   762,   763,    -1,    -1,  1411,   247,   768,    -1,    -1,
    3054       -1,   252,    -1,    -1,    -1,     3,   486,    10,    11,    12,
    3055       13,    14,    10,    11,    12,    13,    14,    -1,  1434,   763,
    3056       -1,  1372,    -1,    -1,  1010,  1441,    -1,  1411,    -1,    -1,
    3057       -1,   157,  1119,   804,    37,    -1,    -1,   324,    65,    37,
    3058       67,    68,    69,   814,    -1,    -1,   817,   527,   819,    76,
    3059       77,   822,   823,   824,    63,    -1,    -1,    60,   829,  1443,
    3060      804,    -1,    60,  1049,    -1,    -1,    -1,  1483,   839,    -1,
    3061      814,    80,    -1,   817,   101,    -1,   153,    -1,   822,    -1,
    3062      824,    -1,   804,    -1,   111,   829,  1443,    -1,  1472,  1176,
    3063     1177,   217,   814,   804,    -1,   346,    -1,    -1,   101,    -1,
    3064      103,    -1,    -1,   814,    -1,   114,    -1,   829,   111,    -1,
    3065       -1,   591,  1496,   400,    -1,  1472,    -1,    -1,   829,   890,
    3066       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,   255,
    3067       67,    68,    69,   259,    -1,    -1,    -1,    -1,    -1,    76,
    3068       77,   912,    -1,    -1,    -1,    -1,   890,    -1,   157,    -1,
     2890       1,    42,     0,    42,     0,   181,    42,   235,   181,   165,
     2891     181,     1,   451,   200,   182,   182,   215,   648,   690,   181,
     2892     181,   484,   181,   181,   275,   602,   344,   113,   103,   751,
     2893     252,   622,   690,    31,   494,    31,   690,    31,   498,   604,
     2894     457,   892,   988,   359,    42,   602,    44,   363,    44,  1317,
     2895       1,   534,   602,   995,  1031,     0,    54,    37,    37,   183,
     2896     602,   604,    60,   602,    60,    63,   450,    63,    66,   605,
     2897      66,   344,    37,   572,   101,   611,    66,   152,    65,    65,
     2898     771,  1398,    65,    49,   715,   261,    31,    75,   261,    42,
     2899     261,  1394,   412,    44,   262,   262,   768,   691,    42,   261,
     2900     261,  1043,   261,   261,   602,    37,   104,  1030,  1031,   107,
     2901     768,   197,   432,   101,   768,   113,    27,    75,    57,   713,
     2902     440,    42,   101,   103,   103,   111,     0,    89,    75,   340,
     2903      42,    43,    37,   257,   258,   101,   101,   124,   103,   523,
     2904     181,   124,   181,  1411,   602,   181,   144,   892,   144,   101,
     2905     102,     0,   103,   115,   152,  1458,   103,    31,   109,   157,
     2906      71,   157,   101,   420,   421,  1482,    42,    43,    65,   101,
     2907    1487,   103,   101,   636,   637,   638,    37,    65,   290,   736,
     2908       0,     1,    31,   181,   182,  1050,   182,  1504,   277,    88,
     2909     412,   654,   143,    65,  1511,   107,    44,   892,    65,   197,
     2910      75,   152,    75,    37,    29,   404,   103,   205,    78,   205,
     2911     432,    31,    11,     0,    63,   103,   214,   490,   440,   217,
     2912     261,   217,   261,   122,   101,   261,   689,   102,   181,   102,
     2913     106,   103,   400,   400,   109,   105,   103,   181,   736,   496,
     2914     101,   104,   103,    63,    31,   108,    66,   248,  1225,   247,
     2915     201,   247,   829,   247,   205,    80,    81,   514,     0,     1,
     2916     181,   109,   337,   261,   262,   728,   262,   101,   104,   103,
     2917     268,   710,   829,   484,   590,   106,   841,   275,   736,   829,
     2918     108,    75,   450,   450,   235,   236,   604,   829,   289,    31,
     2919     829,   366,   492,    73,  1240,   831,   124,  1274,   841,     0,
     2920       1,   764,   247,  1487,   390,  1050,   997,   101,   420,   421,
     2921     809,    73,    42,    43,   482,   482,   267,   633,    75,   270,
     2922    1504,    63,   579,   103,    66,   105,   324,  1511,   324,   109,
     2923      31,   829,   418,   153,    54,    89,  1487,  1059,   424,   290,
     2924     108,   103,   293,   105,     0,   343,   344,   109,   111,   123,
     2925    1273,  1274,   109,   116,   117,   818,   124,   205,  1053,  1210,
     2926    1511,   115,   360,   683,   224,    66,   364,    65,   217,    67,
     2927      68,   829,   949,   247,   968,    31,   106,   104,   252,   101,
     2928     108,   108,   593,   243,   104,   950,   337,   107,   236,   340,
     2929       3,    65,   390,    67,    68,     3,   508,   217,   247,   949,
     2930     512,   123,   400,   515,   400,   103,   606,   949,   359,   108,
     2931     610,   622,   363,  1390,   239,   366,   627,   506,  1009,   267,
     2932     418,    65,  1287,    67,    68,   124,   424,   247,   426,   102,
     2933      67,   631,   106,   108,    71,   635,   109,    74,   102,    76,
     2934    1382,  1383,   290,    65,   108,   293,    83,    69,   108,   124,
     2935     123,   526,   450,     0,    76,    77,   568,   101,   107,   108,
     2936     247,   683,   106,     0,    52,  1210,   102,  1390,   469,   420,
     2937     421,   101,   108,   508,   123,   217,   474,   512,   689,   101,
     2938     515,   103,  1018,  1019,   482,   102,   482,   101,   486,   111,
     2939     486,   108,   490,   649,   214,  1126,   345,   448,   958,   750,
     2940     451,   918,   102,   725,   820,   247,   457,    95,   824,   109,
     2941     993,   108,   123,   514,   690,  1210,   102,   690,   469,   690,
     2942     113,   114,   108,   841,   692,   692,  1120,   124,   690,   690,
     2943     531,   690,   690,   534,   658,   536,   101,  1102,   412,   101,
     2944     108,   486,  1287,   494,   928,   496,   247,   498,   268,   121,
     2945     375,   123,   936,   764,   102,   275,   124,   508,   432,    83,
     2946      84,   512,   108,   514,   515,  1287,   440,  1030,   841,  1434,
     2947     656,   208,   108,   108,   108,   526,  1441,   108,   124,   668,
     2948     107,   102,   583,  1177,  1178,     0,   108,   108,   124,   124,
     2949     124,   247,   590,   124,   118,   119,   252,   981,   914,   101,
     2950     448,   189,   124,   451,   602,  1300,   604,   427,   466,   457,
     2951     484,   101,   486,   688,   637,   638,    31,   108,   104,   101,
     2952    1485,   103,   108,   343,   212,   623,   475,    42,   579,    44,
     2953     455,   654,   101,   124,   222,   460,    44,   486,  1360,   590,
     2954     360,   639,   593,   102,   364,    60,   102,   104,    63,  1088,
     2955     109,    66,   108,   108,   655,   653,   657,   104,   656,  1354,
     2956     508,   108,  1357,   863,   512,   754,   486,   515,   493,   124,
     2957     495,   622,   102,   636,   637,   638,   627,   102,   108,   878,
     2958     102,   954,   633,  1146,    65,   102,    67,    68,   763,  1434,
     2959     102,   654,   690,   104,   692,   102,  1441,   108,  1461,   486,
     2960     899,   109,   290,  1398,  1467,   728,   101,   527,  1403,   102,
     2961     347,   104,   349,    81,    82,   108,  1438,   101,  1440,   103,
     2962     101,  1484,   723,    85,    86,   106,  1489,   111,   884,   144,
     2963     123,   124,   960,  1428,   101,   143,   103,   688,   736,   737,
     2964    1485,   101,   157,   103,   486,     4,     5,     6,     7,     8,
     2965       9,   111,   750,   101,  1118,   955,   412,   102,  1122,   710,
     2966     928,   928,   101,   108,  1486,   728,   181,   182,   936,   936,
     2967     124,   591,   101,  1089,   103,   624,   432,   101,   102,   103,
     2968     102,   102,   111,  1377,   440,   486,   108,   108,   102,   740,
     2969     205,   101,   102,   103,   108,   818,    57,   205,  1009,   436,
     2970    1394,   101,   217,    62,   591,    64,   101,  1502,   103,   683,
     2971    1273,   101,   763,  1508,   672,   689,   636,   637,   638,  1491,
     2972     645,   104,  1517,   102,   108,   109,  1521,   235,   124,   108,
     2973     486,   829,   247,  1491,   654,  1022,    65,  1491,    67,    68,
     2974      69,    65,   106,   841,   102,    69,   261,    76,    77,   437,
     2975     108,   725,    76,    77,   102,   818,   101,   102,   103,   267,
     2976     108,   124,   710,  1457,  1458,   124,   101,   716,   103,   820,
     2977     102,   124,   101,   824,   103,   106,   108,   101,    44,    65,
     2978     705,   730,   111,   471,   106,   293,   711,   111,   101,  1045,
     2979     764,   892,   102,   102,    60,   102,   102,    63,   108,   108,
     2980      66,   108,   108,   623,   557,   558,   559,   560,   728,   324,
     2981      10,    11,    12,    13,    14,    65,   914,    67,    68,   639,
     2982     508,   101,   102,   103,   512,   101,   101,   515,   103,   344,
     2983     928,   104,   340,   653,   101,  1146,   103,    37,   936,     4,
     2984       5,     6,     7,     8,     9,    75,   101,   805,   103,    75,
     2985      65,     0,     1,   101,    69,   103,   954,   815,   102,   103,
     2986      60,    76,    77,   914,  1246,  1247,  1248,   918,   101,   959,
     2987     103,   112,   830,   822,   695,   120,   697,    87,   144,    78,
     2988      79,    80,    31,    54,    55,   400,   101,   108,   109,   990,
     2989     121,   157,   993,   101,   995,    44,   111,    62,   818,    64,
     2990     123,   101,   101,   103,   103,   825,   105,   958,   959,   960,
     2991     103,   111,   420,   421,  1225,   101,   182,    66,   892,    65,
     2992     104,    67,    68,    69,  1110,   108,   109,   683,   104,  1118,
     2993     750,    42,    43,  1122,  1123,   450,   553,   554,   825,   205,
     2994     555,   556,  1043,   892,   102,   561,   562,   102,   102,   102,
     2995     102,   217,  1053,   101,   103,  1056,  1057,  1058,  1009,   884,
     2996     102,   104,   103,   108,   104,   101,   891,   123,   106,   725,
     2997     918,   486,   892,   104,   102,   490,   102,   104,  1190,  1191,
     2998     104,  1193,   104,   671,   104,   108,  1470,  1199,   496,    28,
     2999    1202,   109,   680,   109,    63,   144,   684,    10,    11,    12,
     3000      13,    14,   102,   152,   153,   892,   514,   102,   104,   106,
     3001     109,    80,  1110,   107,    10,    11,    12,    13,    14,   102,
     3002     107,   107,   101,   108,    37,   102,   124,   102,   102,  1513,
     3003     102,  1206,   102,   182,   102,   466,   109,  1088,  1089,   959,
     3004     102,    37,   108,   102,   102,   114,  1235,    60,   197,   102,
     3005     892,   200,   201,   102,   102,   975,   205,   982,   324,   102,
     3006     102,   102,   102,  1012,    60,   102,   102,   102,    28,  1027,
     3007    1028,   579,   123,   107,   104,   102,  1050,   226,   102,   102,
     3008     102,   230,   107,   232,   104,   593,     3,   602,   157,   604,
     3009     108,   892,   241,    10,    11,    12,    13,    14,   247,  1189,
     3010     104,  1050,   102,   252,   102,   101,   108,   103,  1206,  1210,
     3011    1030,  1031,   102,   262,   622,   111,   109,   959,   106,   627,
     3012      37,   270,   108,   108,   104,  1083,  1084,   102,   102,  1318,
     3013    1050,   108,   108,  1322,   400,   102,   892,   101,   104,  1229,
     3014    1088,   104,   101,    60,  1356,  1246,  1247,  1248,   217,    65,
     3015     101,    67,    68,    69,  1079,  1206,   101,   101,   959,   109,
     3016      76,    77,    65,  1050,    67,    68,    69,   124,   107,   102,
     3017    1498,   102,  1146,    76,    77,   690,   102,   692,  1229,   121,
     3018     107,   106,   104,   124,   108,     3,   255,  1373,   337,   104,
     3019     259,   340,    10,    11,    12,    13,    14,   346,   101,  1300,
     3020     108,   102,   104,   102,     0,   102,   104,    45,  1050,   104,
     3021     359,   104,   102,   104,   363,  1491,   104,   366,  1491,    37,
     3022    1491,   736,   737,   104,  1492,  1492,  1415,  1317,   916,  1491,
     3023    1491,   107,  1491,  1491,   102,    31,  1210,   124,   124,  1188,
     3024     124,   672,    60,   107,   124,  1513,  1513,   124,   109,  1050,
     3025     102,  1225,   107,  1354,   104,   104,  1357,   104,   104,  1184,
     3026     104,  1210,   104,   412,   104,  1223,  1317,   104,  1188,  1189,
     3027      66,   102,   102,   101,  1372,  1373,   345,   104,   427,   104,
     3028     101,  1382,  1383,   432,  1470,    55,    54,   102,   102,   106,
     3029    1210,   440,   124,   109,  1050,   104,  1254,  1398,   104,   102,
     3030     104,   102,  1403,    89,  1262,  1263,  1264,   101,   107,  1229,
     3031     102,   104,   102,  1287,   829,  1416,    40,   466,   102,   102,
     3032     469,  1411,   109,  1210,   124,   102,   841,  1428,   108,   124,
     3033      89,   102,     3,  1282,   109,   484,   102,   486,  1287,    10,
     3034      11,    12,    13,    14,   102,   494,  1188,  1189,  1306,   498,
     3035    1491,   124,  1491,  1273,  1274,  1491,   425,   153,   107,   124,
     3036    1411,   104,  1282,   104,   124,   101,    37,  1287,  1210,   124,
     3037    1471,   124,  1470,  1061,   805,  1476,   107,   526,   527,   672,
     3038     107,  1482,   102,   691,   815,   102,  1487,  1229,  1189,    60,
     3039     563,   565,  1443,  1491,  1492,   564,  1492,  1317,   566,   830,
     3040    1287,  1502,  1127,  1504,   567,   713,   475,  1508,    54,  1210,
     3041    1511,  1362,  1458,   928,  1210,  1513,  1517,  1513,  1521,  1296,
     3042    1521,   936,  1473,   572,  1473,  1123,  1322,  1441,  1229,  1079,
     3043     226,   448,   448,   936,   697,   884,   938,   982,   650,   954,
     3044    1282,   590,   591,   740,   593,  1287,   460,  1498,   583,  1229,
     3045     956,   247,   960,   486,  1210,   604,   252,   571,   104,    63,
     3046    1434,   107,   750,   571,   571,    -1,    -1,  1441,    -1,    -1,
     3047    1390,    -1,    -1,   622,    -1,  1317,    -1,    -1,   627,    -1,
     3048      -1,    -1,    -1,    -1,   633,  1434,  1287,   636,   637,   638,
     3049      -1,  1411,  1441,    -1,   802,  1443,    65,    -1,    67,    68,
     3050      69,  1009,    -1,    -1,    -1,   654,   152,    76,    77,    -1,
     3051     114,  1485,   805,    -1,  1434,     0,  1317,    -1,    -1,    -1,
     3052      -1,  1441,   815,   672,    -1,  1473,    -1,   596,    -1,    -1,
     3053      -1,  1287,   101,    -1,   683,    -1,  1485,   830,    -1,   688,
     3054     689,    -1,   111,   692,    -1,    -1,    31,  1434,    -1,    -1,
     3055     346,    -1,  1372,   157,  1441,   624,    -1,    -1,    -1,    -1,
     3056     629,    -1,    -1,    -1,    -1,  1485,    -1,    -1,   214,  1411,
     3057     185,    -1,   880,    -1,    -1,    -1,   725,   192,    -1,   728,
     3058      -1,    66,    65,    -1,    67,    68,    69,    -1,   737,    -1,
     3059      -1,   740,  1434,    76,    77,    -1,  1027,  1028,  1485,  1441,
     3060      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1295,    -1,    -1,
     3061    1411,    -1,    -1,   217,   763,   764,   412,    -1,   101,    -1,
     3062     769,    -1,   268,    65,    -1,    67,    68,    69,   111,   275,
     3063      -1,   427,    -1,  1434,    76,    77,   432,    -1,    -1,    -1,
     3064    1441,    -1,    -1,  1485,   440,    -1,    -1,   716,    -1,   264,
     3065      -1,   255,  1083,  1084,    -1,   259,   805,    -1,    -1,   101,
     3066     968,   730,    -1,    -1,    -1,    -1,   815,    -1,   153,   818,
     3067     466,   820,    -1,    -1,   823,   824,   825,    -1,  1434,    -1,
     3068      -1,   830,    -1,    -1,  1485,  1441,    -1,    -1,   484,   997,
     3069     486,   840,    10,    11,    12,    13,    14,   343,    -1,    -1,
     3070      -1,    -1,    -1,    -1,   319,    10,    11,    12,    13,    14,
     3071      -1,    -1,   327,    -1,   360,   330,    -1,    -1,   364,    37,
     3072      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1485,
     3073      -1,   527,    37,    -1,  1027,  1028,    -1,    -1,    -1,  1047,
     3074      -1,   345,    60,   892,    -1,    -1,    -1,    65,    -1,    67,
     3075      68,    69,    -1,   822,  1442,    60,    -1,    -1,    76,    77,
     3076      65,    -1,   247,    -1,    69,   914,    -1,   252,    -1,    -1,
     3077      -1,    76,    77,    -1,    -1,    -1,    -1,   392,    -1,    -1,
     3078     426,   396,    -1,   101,  1472,   103,    -1,    -1,    -1,    -1,
     3079    1083,  1084,  1223,   111,    -1,   591,   101,    -1,     0,    -1,
     3080      -1,   950,    -1,    -1,    -1,    -1,   111,    -1,    -1,   958,
     3081     959,    -1,  1120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3082      -1,   425,    -1,  1254,  1512,     0,   975,    -1,    -1,    31,
     3083      -1,  1262,  1263,  1264,    -1,    -1,  1524,    -1,    -1,    -1,
     3084     636,   637,   638,    -1,    -1,    -1,    -1,    -1,    -1,   279,
     3085      -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,   654,    -1,
     3086    1009,   346,   292,   293,    66,    -1,   481,    -1,    -1,  1177,
     3087    1178,   475,    -1,  1022,   304,  1306,   672,    -1,  1027,  1028,
     3088      -1,  1030,  1031,    -1,    -1,    -1,    -1,   683,    -1,    -1,
     3089      -1,    66,    -1,   689,    -1,    10,    11,    12,    13,    14,
     3090      -1,  1050,     4,     5,     6,     7,     8,     9,    -1,    -1,
     3091     340,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
     3092      -1,    -1,    37,    76,    77,    -1,    -1,   412,    -1,   725,
     3093      32,    -1,   728,    -1,  1083,  1084,    -1,    -1,    -1,    -1,
     3094    1089,    -1,   427,  1012,   590,    60,   376,   432,   101,    -1,
     3095     103,   153,    -1,    -1,    -1,   440,   571,   572,   111,    -1,
     3096      62,  1254,    64,    -1,    -1,    -1,    -1,    -1,   764,  1262,
     3097    1263,  1264,    -1,    -1,    -1,    -1,  1491,   623,   153,    -1,
     3098      -1,   466,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3099    1498,    -1,   596,   639,    -1,    -1,   111,  1146,    -1,   484,
     3100      65,   486,    67,    68,    69,    -1,    -1,   653,    -1,   805,
     3101      -1,    76,    77,  1306,    -1,    -1,    63,    -1,    -1,   815,
     3102     624,    -1,   818,    -1,    -1,   629,    73,   823,    -1,   825,
     3103      -1,    -1,    -1,    -1,   830,    -1,   101,    -1,   103,    -1,
     3104    1189,    -1,   527,    -1,   659,   247,   111,    -1,   663,    -1,
     3105     252,    65,    -1,    67,    68,    69,    -1,  1206,    -1,    -1,
     3106      -1,  1210,    76,    77,    -1,    -1,    -1,   114,    -1,  1377,
     3107      -1,    -1,   247,    -1,  1223,    -1,  1225,   252,    -1,    -1,
     3108    1229,   696,    -1,    -1,    -1,    -1,  1394,   101,    -1,   103,
     3109      -1,    -1,    -1,    -1,    -1,   109,   892,   111,    -1,    -1,
     3110      -1,    -1,    -1,    -1,   750,  1254,   591,    -1,    -1,    -1,
     3111     157,    -1,   716,  1262,  1263,  1264,    -1,    -1,    -1,  1188,
     3112     550,   551,   552,    -1,  1273,  1274,   730,    90,    91,    92,
     3113      93,    94,    95,    96,    97,    98,    99,    -1,  1287,    -1,
     3114      -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,  1457,
     3115    1458,   636,   637,   638,    -1,    -1,    -1,  1306,    -1,    -1,
     3116     123,    -1,    -1,   593,    -1,    -1,    -1,    -1,  1317,   654,
     3117     217,   346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   975,
     3118      -1,    -1,    -1,    -1,    -1,    -1,    -1,   672,    -1,    10,
     3119      11,    12,    13,    14,   809,    -1,    -1,    -1,   683,    -1,
     3120      -1,    -1,    -1,    -1,   689,    -1,    -1,    -1,   255,    -1,
     3121     412,    -1,   259,  1282,    -1,    -1,    37,    -1,   822,    -1,
     3122      -1,    -1,    -1,    -1,    -1,   427,    -1,    -1,   275,    -1,
     3123     432,  1027,  1028,    -1,  1030,  1031,    -1,   412,   440,    60,
     3124     725,  1390,    -1,   728,    65,    -1,    67,    68,    69,    -1,
     3125      -1,    -1,   427,    -1,  1050,    76,    77,   432,    -1,    -1,
     3126      -1,    -1,  1411,    -1,   466,   440,    -1,    -1,   914,    -1,
     3127      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   764,
     3128     101,    -1,   484,    -1,   486,  1434,    -1,  1083,  1084,    -1,
     3129     111,   466,  1441,    -1,    -1,    -1,   726,    -1,   345,    -1,
     3130      -1,    -1,    -1,    -1,    -1,    -1,    -1,   922,    -1,   484,
     3131      -1,   486,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3132     805,    -1,    -1,    -1,    -1,   527,    -1,    -1,    -1,    -1,
     3133     815,    -1,    -1,   818,    -1,    -1,  1485,    -1,   823,    -1,
     3134     825,   771,    -1,  1492,    -1,   830,    -1,    -1,    -1,    -1,
     3135    1146,    -1,   527,    -1,     3,     4,     5,     6,     7,     8,
     3136       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3137      19,    20,    21,    22,    23,    24,    25,    26,   425,    -1,
     3138      29,    30,    31,    -1,   999,    -1,    -1,   817,    37,   591,
     3139      -1,    -1,    -1,  1189,    -1,   442,    -1,    -1,    -1,    -1,
     3140    1015,    -1,    -1,    -1,    -1,    -1,    -1,   892,  1012,    -1,
     3141      -1,    60,    -1,    62,  1210,    64,   591,    -1,    67,    68,
     3142      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1223,   475,  1225,
     3143      -1,    -1,    -1,    -1,   636,   637,   638,    -1,    -1,    -1,
     3144      -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3145      14,    -1,   654,    -1,    -1,    -1,    -1,   106,  1254,    -1,
     3146      -1,   636,   637,   638,    -1,    -1,  1262,  1263,  1264,    -1,
     3147     672,    -1,    -1,    37,    -1,  1090,    -1,  1273,  1274,   654,
     3148      -1,   683,    -1,    -1,    -1,    -1,    -1,   689,    -1,    -1,
     3149     975,  1287,    -1,    50,    -1,    52,    60,   672,    55,    56,
     3150      57,    65,    59,    67,    68,    69,    -1,    -1,   683,    -1,
     3151    1306,    -1,    76,    77,   689,    -1,    -1,    74,    -1,    -1,
     3152      -1,    -1,    -1,   725,    -1,    -1,   728,    -1,    -1,    86,
     3153      87,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3154      -1,    -1,  1027,  1028,    -1,  1030,  1031,   111,    -1,   596,
     3155     725,    -1,    -1,   728,    -1,    -1,    -1,    -1,    -1,    -1,
     3156    1206,    -1,   764,    -1,    -1,  1050,    -1,    -1,    -1,    -1,
     3157      -1,    -1,    -1,    -1,    -1,    -1,    -1,   624,    -1,  1009,
     3158      -1,    -1,   629,    -1,  1188,    -1,    -1,    -1,    -1,   764,
     3159      -1,    -1,    -1,    -1,  1390,    -1,    -1,    -1,  1083,  1084,
     3160      -1,    -1,    -1,   805,    -1,    -1,    -1,    10,    11,    12,
     3161      13,    14,    -1,   815,    -1,    -1,   818,    -1,    -1,    -1,
     3162    1050,   823,    -1,   825,    -1,    -1,    -1,    -1,   830,    -1,
     3163     805,    -1,    -1,    -1,    37,    -1,    -1,    -1,  1434,    -1,
     3164     815,    -1,    -1,   818,    -1,  1441,    -1,    -1,   823,    -1,
     3165     825,    -1,    -1,    -1,    -1,   830,    -1,    60,    -1,    -1,
     3166      -1,  1146,    65,    -1,    67,    68,    69,    -1,    -1,   716,
     3167      -1,    -1,    -1,    76,    77,    -1,    -1,    -1,  1282,    -1,
     3168      -1,    -1,    -1,   730,    -1,    -1,    -1,    -1,    -1,  1485,
     3169     892,    10,    11,    12,    13,    14,    -1,    -1,   101,    -1,
     3170     103,    -1,    -1,   750,  1189,    -1,    -1,    -1,   111,    -1,
     3171      -1,    -1,    -1,    -1,    -1,    -1,    -1,   892,    37,    -1,
     3172      -1,    -1,    -1,    -1,    -1,  1210,  1372,    -1,    -1,    -1,
     3173      -1,    -1,    -1,  1163,    -1,    -1,    -1,    -1,  1223,    -1,
     3174    1225,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3175      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,
     3176      -1,    -1,    25,    26,    27,    -1,    -1,    -1,    -1,  1254,
     3177      -1,    -1,    -1,   975,    -1,   822,    -1,  1262,  1263,  1264,
     3178      -1,    -1,   101,   340,   341,    -1,    -1,    -1,  1273,  1274,
     3179      -1,    -1,   111,    -1,    -1,   352,   353,    -1,    -1,    -1,
     3180     975,    -1,  1287,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3181      -1,    -1,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,
     3182      -1,  1306,    -1,    -1,    44,  1027,  1028,    -1,  1030,  1031,
     3183      -1,    -1,    -1,    96,    -1,    98,    -1,    10,    11,    12,
     3184      13,    14,    -1,    63,    -1,    -1,    -1,    -1,  1050,    -1,
     3185      -1,    -1,  1027,  1028,    -1,  1030,  1031,    -1,    -1,   122,
     3186      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3187      -1,    -1,    -1,    -1,    -1,  1050,    -1,    -1,    -1,    -1,
     3188      -1,  1083,  1084,    96,    -1,    98,    -1,    60,    -1,   109,
     3189      -1,    -1,    65,    -1,   114,    -1,    69,    -1,    -1,    -1,
     3190      -1,    -1,    -1,    76,    77,  1390,    -1,    -1,  1083,  1084,
     3191      -1,    -1,    -1,    -1,   177,    -1,    -1,    -1,    -1,    -1,
     3192      -1,    -1,   185,   143,   187,   188,    -1,    -1,   101,   192,
     3193      -1,   194,   195,   153,    -1,    -1,    -1,   157,   111,    -1,
     3194      -1,    -1,    -1,    -1,  1146,    -1,    -1,    -1,    -1,  1434,
     3195      -1,    -1,    -1,    -1,    -1,    36,  1441,    38,    -1,    -1,
     3196      -1,    -1,    -1,    -1,   177,  1012,    -1,    -1,    -1,    -1,
     3197      -1,  1146,    -1,    -1,   187,   188,    -1,    -1,    59,   192,
     3198      -1,   194,   195,    -1,    65,   205,    -1,  1189,    69,    -1,
     3199      -1,    72,    73,    74,    75,    76,    77,   217,    79,    80,
     3200    1485,   264,    -1,    -1,    -1,    -1,    87,    -1,  1210,    -1,
     3201      -1,    -1,    -1,    -1,  1189,   235,   236,    -1,    -1,    -1,
     3202     101,  1223,   103,  1225,    -1,    -1,    -1,    -1,    -1,   110,
     3203     111,   112,   113,   114,   115,  1210,    -1,    -1,    -1,   259,
     3204      -1,    -1,    -1,   124,    -1,    -1,    -1,   267,  1223,    -1,
     3205    1225,    -1,  1254,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3206    1262,  1263,  1264,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3207     290,  1273,  1274,   293,    -1,    -1,    -1,     7,    -1,  1254,
     3208      10,    11,    12,    13,    14,  1287,    -1,  1262,  1263,  1264,
     3209      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1273,  1274,
     3210      -1,    -1,    -1,    -1,  1306,    -1,    36,    37,    38,    -1,
     3211      -1,    -1,  1287,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3212     340,    -1,    -1,    -1,    -1,   345,    -1,    -1,    -1,    59,
     3213      60,  1306,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
     3214      -1,  1188,    72,    73,    74,    75,    76,    77,    -1,    79,
     3215      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
     3216     717,    -1,   719,    -1,    -1,    -1,    -1,    -1,    -1,   726,
     3217     727,   101,    -1,   103,   731,    -1,    -1,    -1,    -1,    -1,
     3218     110,   111,   112,   113,   114,   115,   743,    -1,  1390,    -1,
     3219      -1,   748,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3220     420,   421,    -1,    -1,    -1,    -1,    -1,   427,    -1,    -1,
     3221      -1,    -1,    -1,    -1,    -1,  1390,   773,    -1,    -1,    -1,
     3222      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   448,    -1,
     3223      -1,   451,  1434,    -1,    -1,  1282,    -1,   457,    -1,  1441,
     3224      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3225      20,    21,    22,    23,    24,    25,    26,    27,    -1,  1434,
     3226     817,    -1,    -1,    -1,   484,    -1,  1441,    37,    -1,    -1,
     3227      -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,
     3228      -1,    -1,    -1,  1485,    -1,    -1,    -1,    -1,   508,    -1,
     3229      60,    -1,   512,    -1,   514,   515,    -1,    -1,    -1,    -1,
     3230      -1,    71,    -1,    -1,    -1,    -1,    -1,   527,    -1,    -1,
     3231    1485,    -1,   575,   576,    -1,    -1,    -1,   874,   875,   876,
     3232     877,    -1,   879,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3233      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   895,    -1,
     3234      -1,    -1,   605,    -1,    -1,   608,   609,    -1,   611,    -1,
     3235     613,   614,   909,    -1,    -1,   618,   619,    -1,    -1,   579,
     3236      -1,    -1,   575,   576,    -1,    -1,    -1,    -1,    -1,    -1,
     3237      -1,   591,    -1,   593,    -1,    -1,   596,    -1,    -1,    -1,
     3238      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3239      -1,   948,   605,    -1,    -1,   608,   609,    -1,   611,    -1,
     3240     613,   614,   622,    -1,    -1,   618,   619,   627,    -1,    -1,
    30693241      -1,    -1,    -1,    -1,    -1,    -1,   636,   637,   638,    -1,
    3070       -1,   412,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
    3071      247,    -1,    -1,   653,   111,   252,   427,   948,    -1,    -1,
    3072       65,   432,    67,    68,    69,   956,   957,    -1,    -1,   440,
    3073       -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3074       -1,  1187,   973,    -1,    -1,    -1,    -1,    -1,   217,    -1,
    3075       -1,    -1,    -1,    -1,    -1,   466,   101,    -1,   103,   345,
    3076       -1,    -1,    -1,  1209,    -1,    -1,   111,    -1,    -1,   973,
    3077       -1,    -1,    -1,   484,    -1,   486,  1007,    -1,    -1,    -1,
    3078       -1,    -1,    -1,    -1,    -1,    -1,   255,   727,    -1,  1020,
    3079      259,    -1,     0,    -1,  1025,  1026,    -1,  1028,  1029,    90,
    3080       91,    92,    93,    94,    95,    96,    97,    98,    99,   346,
    3081       -1,    -1,    -1,    -1,    -1,    -1,   527,    -1,  1049,    -1,
    3082       -1,  1025,  1026,    31,  1028,  1029,    -1,    -1,    -1,    -1,
    3083     1377,    -1,   123,    -1,    -1,    -1,  1282,    -1,    -1,   425,
    3084       -1,  1287,    -1,  1025,  1026,  1049,    -1,  1394,    -1,    -1,
    3085       -1,  1082,  1083,    -1,  1025,  1026,    -1,  1088,    66,    -1,
    30863242      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3087       -1,    -1,    -1,    -1,    -1,   412,   345,   817,  1082,  1083,
    3088      591,    -1,    63,    -1,   824,    -1,    -1,    -1,    -1,   475,
    3089      427,    -1,    73,    -1,    -1,   432,    -1,    -1,    -1,    -1,
    3090     1082,  1083,    -1,   440,    -1,    -1,    -1,    -1,    -1,  1456,
    3091     1457,  1082,  1083,    -1,  1145,    -1,    -1,    -1,    -1,    -1,
    3092       -1,    -1,    -1,    -1,    -1,   636,   637,   638,    -1,   466,
    3093       -1,    -1,    -1,   114,    -1,    -1,    -1,    -1,    -1,    -1,
    3094       -1,  1145,   653,    -1,    -1,   153,    -1,   484,    -1,   486,
    3095      890,    -1,    -1,    -1,    -1,    -1,   425,  1188,    -1,    -1,
    3096      671,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3097       -1,   682,    -1,    -1,  1205,    -1,   157,   688,  1209,    -1,
    3098       -1,    -1,    -1,    -1,  1188,    -1,    -1,    -1,  1434,    -1,
    3099      527,  1222,    -1,  1224,    -1,  1441,    -1,  1228,    -1,    -1,
    3100       -1,    -1,    -1,    -1,    -1,  1209,   475,    -1,    -1,    -1,
    3101      596,    -1,    -1,   724,    -1,    -1,   727,   957,  1222,    -1,
    3102     1224,    -1,  1253,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3103     1261,  1262,  1263,   973,    -1,    -1,   217,  1483,   624,   247,
    3104     1222,  1272,  1273,   629,   252,    -1,    -1,    -1,    -1,  1253,
    3105       -1,    -1,   763,    -1,   591,    -1,  1287,  1261,  1262,  1263,
    3106       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1272,  1273,
    3107       -1,  1253,    -1,    -1,   255,  1306,    -1,    -1,   259,  1261,
    3108     1262,  1263,  1253,  1287,    -1,    -1,  1317,    -1,  1028,  1029,
    3109     1261,  1262,  1263,   804,   275,    -1,    -1,    -1,    -1,   636,
    3110      637,   638,  1306,   814,    -1,    -1,   817,    -1,    -1,  1049,
    3111       -1,   822,    -1,   824,    -1,    -1,   653,    -1,   829,    -1,
    3112       -1,    -1,    -1,    -1,  1306,    -1,    -1,   596,    -1,   715,
    3113       -1,    -1,    -1,    -1,   671,  1306,    -1,    -1,   346,    -1,
    3114       -1,    -1,    -1,   729,    -1,   682,    -1,    -1,    -1,    -1,
    3115       -1,   688,    -1,    -1,    -1,   624,    -1,    -1,    -1,  1390,
    3116      629,    -1,    -1,    -1,   345,    -1,    -1,    -1,    -1,    -1,
    3117       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   890,
    3118     1411,    -1,    -1,    -1,    -1,    -1,  1390,   724,    -1,    -1,
    3119      727,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3120       -1,    -1,    -1,  1434,   412,    -1,    -1,    -1,    -1,    -1,
    3121     1441,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,   427,
    3122       -1,    -1,    -1,    -1,   432,    -1,   763,    -1,    -1,    -1,
    3123     1434,    -1,   440,    -1,    -1,   821,    -1,  1441,    -1,    25,
    3124       26,    27,    -1,    -1,   425,    -1,   715,  1187,  1188,    -1,
    3125       -1,    -1,  1483,    -1,    -1,    -1,    -1,    -1,   466,  1490,
    3126      729,   442,   973,    -1,    -1,    -1,    -1,   804,    -1,  1209,
    3127       -1,    -1,    -1,    -1,    -1,    -1,   484,   814,   486,  1483,
    3128      817,    -1,    96,    -1,    98,   822,    -1,   824,  1228,    -1,
    3129       -1,    -1,   829,    -1,   475,    -1,    -1,    -1,    -1,    -1,
     3243     987,    -1,    -1,   696,   654,    -1,    -1,   994,   701,   702,
     3244      -1,   998,    -1,    -1,   707,    -1,  1003,    -1,  1005,    -1,
     3245      -1,    -1,  1009,  1010,  1011,    -1,    -1,  1014,    -1,    -1,
     3246      -1,    -1,    -1,    -1,    -1,    -1,  1023,    -1,    -1,   689,
    31303247      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3131       96,    -1,    98,    -1,  1025,  1026,    -1,  1028,  1029,   527,
    3132       50,    -1,    52,    -1,    -1,    55,    56,    57,    -1,    59,
    3133       -1,    -1,  1272,  1273,    -1,    -1,   122,    -1,  1049,    -1,
    3134       -1,    -1,  1282,    -1,    74,    -1,    -1,  1287,    -1,    -1,
    3135       -1,    -1,   821,   890,    -1,    -1,    86,    87,    -1,    -1,
    3136       -1,    -1,    -1,   177,    -1,    -1,    -1,    -1,    -1,    -1,
    3137       -1,  1082,  1083,   187,   188,    -1,    -1,  1317,   192,    -1,
    3138      194,   195,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,
    3139       -1,   177,    -1,    -1,    10,    11,    12,    13,    14,   185,
    3140       -1,   187,   188,    -1,    -1,    -1,   192,    -1,   194,   195,
    3141       -1,    -1,    -1,    -1,    -1,   596,    -1,    -1,    -1,    -1,
    3142       -1,    37,    -1,    -1,  1010,   185,    -1,    -1,   636,   637,
    3143      638,    -1,   192,    -1,  1145,    -1,   973,    -1,    -1,    -1,
    3144       -1,    -1,    -1,   624,    60,   653,    -1,    -1,   629,    65,
    3145     1390,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
    3146       76,    77,    -1,   671,    -1,    -1,    -1,    -1,    -1,    -1,
    3147       -1,  1411,    -1,    -1,   682,    -1,    -1,  1188,   264,    -1,
    3148      688,    -1,    -1,    -1,    -1,   101,    -1,   103,  1025,  1026,
    3149       -1,  1028,  1029,    -1,  1434,   111,    -1,    -1,  1209,    -1,
    3150       -1,  1441,    -1,    -1,   264,    -1,    -1,    -1,    -1,    -1,
    3151       -1,  1222,  1049,  1224,    -1,    -1,   724,    -1,    -1,   727,
    3152       -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
    3153       13,    14,    -1,    -1,   715,    -1,    -1,    -1,    -1,    -1,
    3154       -1,  1010,  1253,  1483,    -1,  1082,  1083,    -1,   729,    -1,
    3155     1261,  1262,  1263,    -1,    37,   763,    -1,    -1,    -1,   319,
    3156       -1,  1272,  1273,    -1,    -1,    -1,    -1,   327,   749,    -1,
    3157      330,    -1,    -1,    -1,    -1,    -1,  1287,    60,    -1,    -1,
    3158       -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
    3159       -1,    -1,    -1,    76,    77,  1306,   804,    -1,    -1,    -1,
    3160       -1,  1187,    -1,    -1,    -1,    -1,   814,    -1,  1145,   817,
    3161      340,   341,    -1,    -1,   822,    -1,   824,    -1,   101,    -1,
    3162      103,   829,   352,   353,    -1,    -1,    -1,    -1,   111,    -1,
    3163       -1,    -1,   392,    -1,    -1,    -1,   396,    -1,    -1,    -1,
    3164      821,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3165       -1,  1188,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3166       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3167       26,    27,  1209,    29,    30,    31,    -1,    -1,    -1,  1390,
    3168       -1,    37,   890,    -1,    -1,  1222,    -1,  1224,    -1,    -1,
    3169       -1,    -1,    -1,    -1,    -1,    -1,  1282,    -1,    -1,    -1,
    3170       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    3171       -1,    67,    68,    -1,    -1,    71,  1253,    -1,  1187,    -1,
    3172       -1,   481,    -1,  1434,  1261,  1262,  1263,    -1,    -1,    -1,
    3173     1441,    -1,    -1,    -1,    -1,  1272,  1273,    -1,    -1,    -1,
    3174       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3175     1287,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    3176       -1,   575,   576,    -1,    -1,   973,    -1,    -1,    -1,  1306,
    3177       -1,    -1,  1483,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3178       10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,   575,
    3179      576,   605,    -1,    -1,   608,   609,    -1,   611,    -1,   613,
    3180      614,    -1,    -1,    -1,   618,   619,    -1,    37,    -1,    -1,
    3181       -1,   571,   572,  1282,    -1,    -1,    -1,  1025,  1026,   605,
    3182     1028,  1029,   608,   609,    -1,   611,    -1,   613,   614,  1010,
    3183       60,    -1,   618,   619,    -1,    65,    -1,    67,    68,    69,
    3184       -1,  1049,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,
    3185       -1,    -1,    -1,  1390,    -1,    -1,    -1,    -1,    -1,     7,
    3186       -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3187       -1,   101,    -1,   103,  1082,  1083,    -1,    -1,    -1,    -1,
    3188       -1,   111,    -1,    -1,    -1,    -1,   700,   701,    36,    37,
    3189       38,    -1,   706,    -1,    -1,    -1,    -1,  1434,   658,    -1,
    3190       -1,    -1,   662,    -1,  1441,    -1,    -1,    -1,    -1,   695,
    3191       -1,    59,    60,    -1,   700,   701,    -1,    65,    -1,    -1,
    3192      706,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    3193       -1,    79,    80,    -1,    -1,   695,    -1,  1145,    -1,    87,
    3194       -1,    -1,    -1,    -1,    -1,    -1,  1483,    -1,    -1,    -1,
    3195       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
    3196       44,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
    3197       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
    3198     1188,    -1,    -1,    -1,    -1,    -1,   716,    -1,   718,    -1,
    3199       -1,    -1,    -1,    -1,    -1,   725,   726,    -1,    -1,    -1,
    3200      730,  1209,    -1,    -1,    -1,    -1,  1187,    -1,    -1,    -1,
    3201       -1,    -1,   742,    -1,  1222,    -1,  1224,   747,    -1,    -1,
    3202       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
    3203      114,    -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,
    3204       -1,    -1,   772,    -1,    -1,  1253,    -1,    -1,   808,    -1,
    3205       -1,    -1,    -1,  1261,  1262,  1263,    -1,    -1,    -1,   143,
    3206       37,    -1,    -1,    -1,  1272,  1273,    -1,    -1,    -1,   153,
    3207       -1,    -1,    -1,   157,    -1,    -1,    -1,    -1,    -1,  1287,
    3208       -1,    -1,    -1,    60,    -1,    -1,   816,    -1,    65,    -1,
    3209       67,    68,    69,    -1,    -1,    -1,    -1,    -1,  1306,    76,
    3210       77,  1282,    -1,    10,    11,    12,    13,    14,    15,    16,
     3248      -1,    -1,    -1,    -1,  1041,  1042,    -1,    -1,   701,   702,
     3249     710,    -1,    -1,    -1,   707,    -1,    -1,    -1,    -1,    -1,
     3250      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   728,  1066,
     3251     730,    -1,  1069,    10,    11,    12,    13,    14,    15,    16,
    32113252      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3212       -1,   205,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
    3213       37,    -1,    -1,   217,   111,     7,    -1,    -1,    10,    11,
    3214       12,    13,    14,   873,   874,   875,   876,    -1,   878,    -1,
    3215       -1,   235,   236,    60,    -1,    -1,    -1,    -1,    -1,    -1,
    3216      920,    -1,    -1,   893,    36,    37,    38,    -1,    10,    11,
    3217       12,    13,    14,    -1,    -1,   259,    -1,   907,    -1,    -1,
    3218       -1,    -1,  1390,   267,    -1,    -1,    -1,    59,    60,    -1,
    3219       -1,    -1,    -1,    65,    -1,    37,    -1,    69,    -1,    -1,
    3220       72,    73,    74,    75,    76,    77,   290,    79,    80,   293,
    3221       -1,    -1,    -1,    -1,    -1,    87,   946,    -1,    60,    -1,
    3222       -1,    -1,    -1,    65,    -1,    -1,  1434,    69,    -1,   101,
    3223       -1,   103,    -1,  1441,    76,    77,    -1,   997,   110,   111,
    3224      112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
    3225       -1,    -1,    -1,  1013,    -1,   985,   340,    -1,    -1,   101,
    3226       -1,   345,   992,    -1,    -1,    -1,   996,    -1,    -1,   111,
    3227     1084,  1001,    -1,  1003,    -1,  1483,    -1,  1007,  1008,  1009,
    3228       -1,    -1,  1012,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3229       -1,  1021,    -1,    -1,    -1,    -1,    -1,    -1,  1084,    -1,
    3230       -1,    63,    -1,    10,    11,    12,    13,    14,    -1,  1039,
    3231     1040,    73,    -1,    75,    -1,    77,    -1,    -1,    -1,    -1,
    3232       -1,    -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,  1089,
    3233       37,    -1,    -1,    -1,    -1,  1065,   420,   421,  1068,    -1,
    3234       -1,    -1,    -1,   427,    -1,    -1,    -1,    -1,    -1,    -1,
    3235       -1,    -1,   114,    60,   116,   117,   118,    -1,    65,    -1,
    3236       67,    68,    69,    -1,   448,    -1,    -1,   451,    -1,    76,
    3237       77,    -1,    -1,   457,    -1,    -1,  1106,    -1,    -1,    -1,
    3238       -1,    -1,  1112,  1113,    -1,    -1,    -1,    -1,    -1,    -1,
    3239       -1,    -1,  1206,  1123,   101,   157,    -1,    -1,  1128,    -1,
    3240      484,  1131,    -1,  1133,   111,    -1,  1136,    -1,    -1,    -1,
    3241       -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,  1149,
    3242     1206,    43,    -1,    -1,   508,    -1,    -1,    -1,   512,    -1,
    3243      514,   515,  1162,    -1,  1164,  1165,  1166,  1167,    -1,    -1,
    3244       -1,    -1,    -1,   527,    -1,    -1,    -1,    -1,    -1,    -1,
    3245     1180,    -1,  1182,    -1,    -1,   217,  1186,   219,   220,   221,
    3246       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
    3247       -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,    -1,
    3248       -1,    -1,    -1,    -1,  1214,  1215,    -1,    -1,    -1,    -1,
    3249       -1,    -1,    -1,   255,    -1,   579,    -1,   259,    -1,    -1,
    3250       -1,    -1,    -1,    -1,    -1,    -1,    -1,   591,    -1,   593,
    3251       -1,    -1,   596,   275,    10,    11,    12,    13,    14,    15,
    3252       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3253       26,    27,   154,    -1,  1264,  1265,    -1,    -1,   622,    -1,
    3254       -1,    37,    -1,   627,  1274,   167,    -1,    -1,    -1,    -1,
    3255       -1,    -1,   636,   637,   638,    -1,    -1,    -1,    -1,    -1,
    3256       -1,    -1,   324,    -1,    60,    -1,    -1,    -1,   190,   653,
    3257       -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    3258       -1,    -1,   204,   345,    -1,    -1,    -1,    -1,   350,   351,
    3259       -1,   213,    -1,  1323,    -1,    -1,   358,    -1,    -1,    -1,
    3260       -1,   223,    -1,    -1,   688,  1335,    -1,  1337,  1338,  1339,
    3261       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1349,
    3262       -1,    -1,    -1,    -1,    -1,   709,   248,    -1,  1358,    -1,
    3263       -1,   253,    -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,
    3264     1370,    -1,    -1,   727,   266,   729,    -1,    -1,    -1,    -1,
    3265      272,    -1,   274,    -1,    -1,    -1,   418,    -1,    -1,    -1,
    3266       -1,   423,    -1,   425,    -1,    -1,    -1,    -1,    -1,   291,
    3267       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   763,
    3268      442,    -1,    -1,   445,   446,    -1,    -1,    -1,    -1,    -1,
    3269       -1,  1421,  1422,    -1,    -1,    -1,    -1,    -1,    -1,   461,
    3270       -1,    -1,    -1,    -1,  1434,    -1,    -1,    -1,    -1,    -1,
    3271       -1,  1441,   334,   475,    -1,    -1,    -1,   339,    -1,    -1,
    3272      482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3273       -1,    -1,    -1,   817,    36,    -1,    38,   821,  1468,    -1,
    3274      824,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,   371,
    3275      372,    -1,   374,    -1,    -1,    -1,    -1,    59,   380,   381,
    3276       -1,   383,   384,    65,   386,  1495,   388,    69,    -1,    -1,
     3253      -1,    -1,    29,    30,    31,    -1,    -1,    63,    -1,    -1,
     3254      37,    -1,    -1,    -1,   764,    -1,    -1,    73,    -1,    75,
     3255    1107,    77,    -1,    -1,    -1,    -1,  1113,  1114,    84,    -1,
     3256      -1,    -1,    -1,    60,    -1,    -1,    -1,  1124,    -1,    -1,
     3257      67,    68,  1129,    -1,    -1,  1132,    -1,  1134,    -1,    -1,
     3258    1137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
     3259     116,   117,   118,  1150,    -1,    -1,    -1,    -1,   818,    -1,
     3260      -1,    -1,   822,    -1,    -1,   825,  1163,    -1,  1165,  1166,
     3261    1167,  1168,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3262      -1,    -1,    -1,    -1,  1181,    -1,  1183,    -1,    -1,    -1,
     3263    1187,   157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3264      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3265      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1215,  1216,
     3266      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3267      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3268      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3269      31,   217,    -1,   219,   220,   221,    37,    -1,   918,    -1,
     3270      -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,  1265,  1266,
     3271      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1275,    60,
     3272      -1,    62,    -1,    64,    65,    -1,    67,    68,    69,   255,
     3273      -1,    -1,    -1,   259,    -1,    76,    77,    -1,    -1,    -1,
     3274     960,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   275,
     3275      -1,    89,    -1,    -1,    -1,   975,    -1,    -1,    -1,    -1,
     3276     101,    99,   103,    -1,    -1,    -1,  1323,    -1,    -1,    -1,
     3277     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1335,    -1,
     3278    1337,  1338,  1339,    -1,    -1,    -1,    -1,    -1,    -1,  1009,
     3279      -1,    -1,  1349,    -1,    -1,    -1,    -1,    -1,   324,    -1,
     3280      -1,  1358,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,
     3281    1030,  1031,    -1,  1370,    -1,    -1,   154,    -1,    -1,   345,
     3282      -1,    -1,  1085,    -1,   350,   351,    -1,    59,    -1,   167,
     3283      -1,    -1,   358,    65,    -1,    -1,    -1,    69,    -1,    -1,
    32773284      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3278       -1,    -1,    -1,   405,    -1,    87,    -1,    -1,    -1,    -1,
    3279     1520,   413,    -1,    -1,    -1,  1525,    -1,    -1,    -1,   101,
    3280       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3281      112,   113,   114,   115,    -1,    -1,   438,    -1,    -1,    -1,
    3282       -1,    -1,   124,    -1,    -1,    -1,    -1,   449,    -1,    -1,
    3283       -1,    -1,   916,    -1,   596,    -1,    -1,    -1,    -1,    -1,
    3284       36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3285      472,    -1,    -1,    -1,    -1,    -1,   478,    -1,    -1,    -1,
    3286       -1,   483,   624,    59,    -1,    -1,    -1,   629,    -1,    65,
    3287       -1,    67,    68,    69,   958,    -1,    72,    73,    74,    75,
    3288       76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,   973,
    3289       -1,    87,    -1,    -1,    -1,    -1,    -1,   519,    -1,    -1,
    3290       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,   105,
    3291      106,    -1,    -1,   535,   110,   111,   112,   113,   114,   115,
    3292       -1,    -1,    -1,  1007,    -1,    -1,    -1,    10,    11,    12,
     3285      -1,    -1,   190,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     3286      -1,    -1,    -1,    -1,  1421,  1422,   204,    -1,  1088,   101,
     3287      -1,   103,  1085,    -1,   400,   213,   108,  1434,   110,   111,
     3288     112,   113,   114,   115,  1441,   223,    -1,    -1,    -1,    -1,
     3289      -1,    -1,   418,    -1,    -1,    -1,    -1,   423,    -1,   425,
     3290      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3291     248,    -1,  1469,    -1,    -1,   253,   442,    -1,    -1,   445,
     3292     446,    -1,    -1,    -1,    -1,    -1,  1146,    -1,   266,    -1,
     3293      -1,    -1,    -1,    -1,   272,   461,   274,    -1,    -1,    -1,
     3294    1497,    -1,    -1,    -1,  1207,    -1,    -1,    -1,    -1,   475,
     3295      -1,    -1,    -1,   291,    -1,    -1,   482,    -1,    -1,    -1,
     3296      -1,    -1,    -1,    -1,    -1,    -1,  1523,    -1,  1188,    -1,
     3297      -1,  1528,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3298      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3299      -1,    -1,    -1,    -1,  1207,    -1,   334,    -1,    -1,    -1,
     3300      -1,   339,    -1,    -1,    -1,  1225,    -1,    -1,    -1,    -1,
     3301      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3302      19,    20,    21,    22,    23,    24,    25,    26,    -1,   367,
     3303      29,    30,    31,   371,   372,    -1,   374,    -1,    37,    -1,
     3304      -1,    -1,   380,   381,    -1,   383,   384,    -1,   386,    -1,
     3305     388,    -1,     7,  1273,  1274,    10,    11,    12,    13,    14,
     3306      -1,    60,  1282,    -1,    -1,    -1,    -1,   405,    67,    68,
     3307     596,    -1,    -1,    -1,    -1,   413,    -1,    -1,    -1,    -1,
     3308      -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3309      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   624,    -1,
     3310     438,    -1,    -1,   629,    59,    60,    -1,    -1,    -1,    -1,
     3311      65,   449,   111,    -1,    69,    -1,    -1,    72,    73,    74,
     3312      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3313      -1,    -1,    87,    -1,   472,    -1,    -1,    -1,    -1,    -1,
     3314     478,    -1,    -1,    -1,    -1,   483,   101,    -1,   103,    -1,
     3315      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3316     115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3317    1390,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3318      -1,   519,    -1,    -1,   278,   279,   280,    -1,    -1,    -1,
     3319     716,    -1,    -1,   287,   288,    -1,    -1,   535,   292,   293,
     3320      -1,    -1,    -1,    -1,   730,    -1,    -1,    -1,    -1,    -1,
     3321     304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3322      -1,    -1,    -1,  1443,   750,    -1,    -1,    -1,    -1,    -1,
     3323      -1,    -1,    -1,   571,   152,   153,    -1,    -1,    -1,    -1,
     3324      -1,    -1,   580,    -1,    -1,    -1,   340,    -1,    -1,   587,
     3325      -1,    -1,    -1,  1473,   592,    -1,    -1,    -1,    -1,    -1,
     3326      -1,    -1,    -1,    -1,    -1,   603,    -1,   185,    -1,    -1,
     3327      -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,  1498,    -1,
     3328      -1,    -1,   376,   809,    -1,    -1,    -1,    -1,    -1,    -1,
     3329      -1,    -1,    -1,    -1,    -1,    -1,   822,    -1,    -1,    -1,
     3330      -1,    -1,    -1,    -1,    -1,    -1,   644,    -1,    -1,    -1,
     3331      -1,    -1,    -1,     0,    -1,   841,     3,     4,     5,     6,
     3332       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3333      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3334      -1,   679,    29,    30,    31,    32,   264,    -1,    35,    -1,
     3335      37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3336      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3337      57,    -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,
     3338      67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
     3339      77,    -1,    -1,    -1,    -1,    -1,   734,    -1,    -1,    -1,
     3340      -1,   319,   928,    -1,    -1,    -1,   744,   745,    -1,   327,
     3341     328,    -1,   330,   331,   101,    -1,   103,    -1,    -1,   757,
     3342      -1,    -1,   340,    -1,   111,    -1,   344,    -1,   954,    -1,
     3343      -1,    -1,    -1,    -1,    -1,    -1,   774,    -1,   776,    -1,
     3344      -1,    -1,   780,    -1,    -1,   363,    -1,    -1,   366,    -1,
     3345      -1,    -1,    -1,    -1,    -1,   981,   550,   551,   552,   553,
     3346     554,   555,   556,   557,   558,   559,   560,   561,   562,   563,
     3347     564,   565,   566,   567,   392,    -1,    -1,    -1,   396,    36,
     3348      -1,    38,    -1,    -1,    -1,    -1,  1012,    -1,    -1,    -1,
     3349      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1023,    -1,   593,
     3350      -1,    -1,    59,    -1,    -1,    -1,    -1,   845,    65,   427,
     3351      67,    68,    69,    -1,   852,    72,    73,    74,    75,    76,
     3352      77,    -1,    79,    80,    -1,    -1,    -1,   865,    -1,   867,
     3353      87,    -1,   450,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3354      -1,    -1,    -1,   881,   101,    -1,   103,    -1,   105,   106,
     3355     888,    -1,    -1,   110,   111,   112,   113,   114,   115,    -1,
     3356      -1,    -1,   900,   481,    -1,   903,   484,    -1,    -1,    -1,
     3357      -1,    -1,    -1,    -1,    -1,    -1,  1102,    -1,    -1,    -1,
     3358      -1,    -1,    -1,   921,    -1,    -1,    -1,    -1,    -1,    -1,
     3359      -1,    -1,    -1,    -1,    -1,    -1,    -1,   691,    -1,    -1,
     3360      -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,   526,   527,
     3361      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   713,
     3362      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3363     143,    -1,   726,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3364     153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3365      -1,    -1,   165,   571,   572,    -1,    -1,    -1,    -1,    -1,
     3366      -1,    -1,  1188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3367    1008,    -1,   590,   591,    -1,   593,    -1,   771,    -1,    -1,
     3368      -1,    -1,    -1,    -1,   602,    -1,   604,   605,    -1,    -1,
     3369      -1,    -1,    -1,   611,    -1,    -1,    -1,    -1,    -1,    -1,
     3370      -1,    -1,    -1,   621,   622,    -1,    -1,    -1,   802,   627,
     3371      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   636,   637,
     3372     638,    -1,   235,   817,    -1,  1063,    -1,    -1,    -1,    -1,
     3373      -1,  1069,    -1,    -1,    -1,    -1,   654,    -1,    -1,    -1,
     3374      -1,   659,   660,    -1,    -1,   663,   664,   260,    -1,    -1,
     3375      -1,    -1,   670,    -1,    -1,    -1,  1282,    -1,    -1,    -1,
     3376    1098,    -1,    -1,    -1,    -1,  1103,    -1,    -1,    -1,    -1,
     3377     688,   689,   690,  1111,   692,    -1,    -1,    -1,   696,     3,
     3378       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3379      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3380      24,    25,    26,  1141,    -1,    29,    30,    31,    -1,    -1,
     3381     728,   729,    -1,    37,    -1,  1153,    -1,    -1,  1156,    -1,
     3382    1158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3383      -1,    -1,    -1,    -1,  1172,  1173,    60,    -1,    62,    -1,
     3384      64,    -1,    -1,    67,    68,   763,   764,    -1,    -1,    -1,
     3385     768,   769,    -1,    -1,    -1,    -1,  1194,    -1,    -1,    -1,
     3386      -1,    -1,   375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3387      -1,    -1,    -1,    -1,   968,    -1,    -1,    -1,    -1,   103,
     3388      -1,    -1,  1220,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3389      -1,   809,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3390     818,    -1,    -1,   997,    -1,    -1,   824,   825,    -1,    -1,
     3391      -1,   829,    -1,   831,    -1,  1009,    -1,    -1,    -1,    -1,
     3392      -1,    -1,    -1,   841,    -1,    -1,    -1,    10,    11,    12,
    32933393      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3294       23,    24,    25,    26,  1028,  1029,    29,    30,    31,   571,
    3295       -1,    -1,    -1,   715,    37,    -1,    -1,    -1,   580,    -1,
    3296       -1,    -1,    -1,    -1,    -1,   587,    -1,   729,    -1,    -1,
    3297      592,    -1,    -1,    36,    -1,    38,    -1,    60,    -1,    -1,
    3298       -1,   603,    65,    -1,    67,    68,    69,   749,    -1,    -1,
    3299       -1,    -1,    -1,    76,    77,    -1,    59,    -1,    -1,    -1,
    3300       -1,    -1,    65,  1087,    -1,    -1,    69,    -1,    -1,    72,
    3301       73,    74,    75,    76,    77,    -1,    79,    80,   101,    -1,
    3302      103,   643,    -1,    -1,    87,    -1,    -1,    -1,   111,    -1,
    3303       -1,    -1,    -1,   143,    -1,    -1,    -1,    -1,   101,    -1,
    3304      103,    -1,    -1,   153,    -1,   108,   808,   110,   111,   112,
    3305      113,   114,   115,    -1,    -1,   165,   678,    -1,    -1,   821,
    3306       -1,  1145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3307       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   840,     4,
     3394      23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
     3395      -1,    -1,    -1,    -1,    37,    -1,  1050,    -1,    -1,    -1,
     3396      -1,    -1,    -1,   476,    -1,    -1,    -1,    -1,    -1,    -1,
     3397      -1,    -1,    -1,    -1,  1312,    -1,  1314,    60,    -1,    -1,
     3398      -1,    -1,    65,    -1,    67,    68,    69,  1513,    71,  1327,
     3399      -1,  1329,    -1,    76,    77,    -1,   914,    -1,    -1,    -1,
     3400      -1,   514,    -1,    -1,   922,    -1,    -1,    -1,    -1,  1347,
     3401     928,    -1,    -1,    -1,   527,    -1,    -1,    -1,   936,    -1,
     3402     103,   534,    -1,    -1,    -1,  1363,  1120,    -1,   111,    -1,
     3403      -1,   949,   950,  1371,   547,   548,  1374,    -1,    10,    11,
     3404      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3405      22,    23,    24,    25,    26,    27,   569,   975,  1396,    -1,
     3406      -1,    -1,    -1,   981,    -1,    37,   579,  1405,    -1,  1163,
     3407    1408,  1409,    -1,   586,    -1,    -1,    -1,    -1,   591,    -1,
     3408      -1,   999,  1000,  1177,  1178,    -1,    -1,    -1,    60,    -1,
     3409      -1,  1009,    -1,    -1,    -1,    -1,    -1,  1015,  1016,    71,
     3410    1018,  1019,  1020,    -1,    -1,    -1,    -1,  1445,    -1,  1447,
     3411      -1,    -1,  1030,  1031,    -1,    -1,    -1,    -1,    -1,    -1,
     3412      -1,    -1,    -1,    -1,  1462,    -1,    -1,    -1,   641,    -1,
     3413      -1,    -1,    -1,    -1,    -1,    -1,   649,     4,     5,     6,
     3414       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3415      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3416      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3417      37,  1089,  1090,  1091,    -1,    -1,   689,    -1,    -1,    -1,
     3418      -1,    -1,    -1,    -1,  1102,    -1,    -1,    -1,    -1,    -1,
     3419      -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,
     3420      67,    68,    -1,     3,     4,     5,     6,     7,     8,     9,
     3421      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3422      20,    21,    22,    23,    24,    25,    26,    -1,  1146,    29,
     3423      30,    31,    32,    -1,    -1,    35,   103,    37,    38,    -1,
     3424      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3425      -1,   764,    -1,   766,    -1,    -1,    -1,    57,    -1,   772,
     3426      60,    -1,    62,    -1,    64,    65,   779,    67,    68,    69,
     3427      -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,
     3428      -1,    -1,    -1,  1377,    -1,    -1,    -1,    -1,  1206,    -1,
     3429      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3430    1394,   101,    -1,   103,    -1,    -1,    -1,  1225,    -1,   822,
     3431     823,   111,   825,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3432      -1,    -1,    -1,    -1,    -1,    -1,    -1,   840,    -1,    -1,
     3433      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3434      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    -1,
     3435      -1,    -1,    -1,    -1,    -1,  1273,  1274,    37,    -1,    -1,
     3436      -1,    -1,    -1,  1457,  1458,    -1,    -1,   880,    -1,    -1,
     3437      -1,   884,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3438      60,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3439       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3440      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3441      29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
     3442      39,    -1,    41,    -1,    -1,    44,    45,    46,    47,    48,
     3443      49,    50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,
     3444      59,    60,    -1,    62,    -1,    64,    65,   960,    67,    68,
     3445      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3446      79,    80,   975,   976,    -1,    -1,    -1,    -1,    87,   982,
     3447      -1,    -1,  1390,    -1,    -1,   988,    -1,    -1,   991,    -1,
     3448     993,    -1,   101,    -1,   103,    -1,    36,   106,    38,    -1,
     3449      -1,   110,   111,   112,   113,   114,   115,    -1,    -1,  1012,
     3450      -1,    -1,    -1,    -1,    -1,   124,    -1,    -1,    -1,    59,
     3451    1023,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
     3452      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3453      80,    -1,  1045,    -1,  1047,    -1,    -1,    87,    -1,    -1,
     3454      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1062,
     3455      -1,   101,  1470,   103,    -1,    -1,   106,    -1,    -1,    -1,
     3456     110,   111,   112,   113,   114,   115,    -1,    36,  1081,    38,
     3457      39,    -1,    41,  1491,  1492,    44,    45,    46,    47,    48,
     3458      49,    50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,
     3459      59,    -1,    -1,    -1,    -1,  1513,    65,    -1,    -1,    -1,
     3460      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3461      79,    80,    -1,    -1,  1127,    -1,    -1,    -1,    87,    -1,
     3462      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3463      -1,    -1,   101,  1146,   103,    -1,    -1,   106,    -1,    -1,
     3464      -1,   110,   111,   112,   113,   114,   115,    -1,  1161,  1162,
     3465      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3466      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3467      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3468      31,    32,    -1,    -1,    35,    36,    37,    38,    -1,    -1,
     3469      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3470      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3471      -1,    62,    -1,    64,    65,    -1,    67,    68,    69,    -1,
     3472      -1,    72,    73,    74,    75,    76,    77,  1240,    79,    80,
     3473      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3474      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3475     101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3476     111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
     3477      -1,    -1,    -1,   124,     3,     4,     5,     6,     7,     8,
     3478       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3479      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3480      29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
     3481      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3482      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3483      59,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
     3484      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3485      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3486      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1381,    -1,
     3487      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3488      -1,   110,   111,   112,   113,   114,   115,     4,     5,     6,
     3489       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3490      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3491      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3492      37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3493      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3494    1453,    -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,
     3495      67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3496      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3497      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3498      -1,    -1,    -1,    -1,   101,  1498,   103,    -1,    -1,    -1,
     3499      -1,   108,    -1,   110,   111,   112,   113,   114,   115,     4,
    33083500       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    33093501      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3310       25,    26,    -1,  1187,    29,    30,    31,    -1,    -1,    -1,
    3311       -1,   733,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3312       -1,   743,   744,   152,   153,   235,    -1,    -1,    -1,    -1,
    3313       -1,    -1,    -1,    -1,   756,    60,    -1,    62,    -1,    64,
    3314     1224,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,
    3315      260,   773,    -1,   775,    -1,    -1,   185,   779,    -1,    -1,
    3316       -1,    -1,    -1,   192,   926,    -1,    -1,    -1,    -1,    -1,
    3317       -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,
    3318       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,  1272,  1273,
    3319      952,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1282,    10,
     3502      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3503      -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3504      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3505      -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
     3506      65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
     3507      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3508      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3509      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3510      -1,    -1,    -1,   108,    -1,   110,   111,   112,   113,   114,
     3511     115,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3512      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3513      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3514      -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
     3515      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3516      -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,
     3517      -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,    72,
     3518      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3519      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3520      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3521     103,    -1,    -1,    -1,    -1,   108,    -1,   110,   111,   112,
     3522     113,   114,   115,     4,     5,     6,     7,     8,     9,    10,
    33203523      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3321       21,    22,    23,    24,    25,    26,    -1,   979,    29,    30,
    3322       31,    -1,   844,    -1,    -1,    -1,    37,    38,    -1,   851,
    3323       -1,    -1,    -1,    -1,    -1,   264,    -1,    -1,    -1,    -1,
    3324       -1,    -1,   864,    -1,   866,    -1,    -1,    -1,  1010,    60,
    3325       -1,    -1,    -1,    -1,    -1,    -1,    67,    68,   880,  1021,
    3326       -1,    -1,    -1,    -1,   886,   375,    -1,    -1,    -1,    -1,
    3327       -1,    -1,    -1,    -1,    -1,    -1,   898,    -1,    -1,   901,
     3524      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3525      31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
    33283526      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3329      319,    -1,   103,    -1,    -1,    -1,   107,   919,   327,   328,
    3330      111,   330,   331,    -1,    -1,    -1,  1390,    -1,    -1,    -1,
    3331       -1,   340,    -1,    -1,    -1,   344,    -1,    36,    -1,    38,
     3527      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3528      -1,    62,    -1,    64,    65,    -1,    67,    68,    69,    -1,
     3529      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3530      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    33323531      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3333       -1,    -1,    -1,    -1,   363,    -1,    -1,   366,    -1,  1101,
    3334       59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3335       69,    -1,    -1,    72,    73,    74,    75,    76,    77,  1443,
    3336       79,    80,    -1,   392,    -1,    -1,   476,   396,    87,    -1,
    3337       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3338       -1,    -1,   101,    -1,  1006,    -1,    -1,    -1,  1472,    -1,
    3339       -1,   110,   111,   112,   113,   114,   115,    -1,   427,    -1,
    3340       -1,    -1,    -1,    -1,   514,    -1,    -1,    -1,    -1,    -1,
    3341       -1,    -1,  1496,    -1,    -1,    -1,    -1,   527,    -1,    -1,
    3342       -1,   450,    -1,    -1,   534,  1187,    -1,    36,    -1,    38,
    3343       -1,    -1,    -1,    -1,    -1,    -1,    -1,   547,   548,    -1,
    3344     1062,    -1,    -1,    -1,    -1,    -1,  1068,    -1,    -1,    -1,
    3345       59,    -1,   481,    -1,    -1,   484,    65,    -1,    -1,   569,
    3346       69,    -1,    -1,    72,    73,    74,    75,    76,    77,   579,
    3347       79,    80,    -1,    -1,    -1,  1097,   586,    -1,    87,    -1,
    3348     1102,   591,    -1,    -1,    -1,    -1,    -1,    -1,  1110,    -1,
    3349       -1,    -1,   101,    -1,   523,    -1,    -1,   526,   527,    -1,
    3350       -1,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
    3351       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1140,    -1,
    3352     1282,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3353     1152,   641,    -1,  1155,    -1,  1157,    -1,    -1,   648,    -1,
    3354       -1,    -1,   571,   572,    -1,    -1,    -1,    -1,    -1,  1171,
    3355     1172,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3356       -1,   590,   591,    -1,   593,    -1,    -1,    -1,    -1,    -1,
    3357       -1,  1193,    -1,   602,    -1,   604,   605,    -1,   688,    -1,
    3358       -1,    -1,   611,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3359       -1,    -1,   621,   622,    -1,    -1,    -1,  1219,   627,    -1,
    3360       -1,    -1,    -1,    -1,    -1,    -1,    -1,   636,   637,   638,
    3361       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3362       -1,    -1,    -1,    -1,   653,    -1,    -1,    -1,    -1,   658,
    3363      659,    -1,    -1,   662,   663,    -1,    -1,    -1,    -1,    -1,
    3364      669,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3365       -1,    -1,    -1,   763,    -1,   765,    -1,    -1,   687,   688,
    3366      689,   771,   691,    -1,    -1,    -1,   695,    -1,   778,    -1,
    3367       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3368       36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3369     1312,    -1,  1314,    -1,    -1,    -1,    -1,    -1,   727,   728,
    3370       -1,    -1,    -1,    59,    -1,  1327,    -1,  1329,    -1,    65,
    3371       -1,   821,   822,    69,   824,    -1,    72,    73,    74,    75,
    3372       76,    77,    -1,    79,    80,  1347,    -1,    -1,    -1,   839,
    3373       -1,    87,    -1,   762,   763,    -1,    -1,    -1,   767,   768,
    3374       -1,  1363,    -1,    -1,    -1,   101,    -1,   103,  1510,  1371,
    3375      106,    -1,  1374,    -1,   110,   111,   112,   113,   114,   115,
    3376       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   879,
    3377       -1,    -1,    -1,   883,  1396,    -1,    -1,    -1,    -1,   808,
    3378       -1,    -1,    -1,  1405,    -1,    -1,  1408,  1409,   817,    -1,
    3379       -1,    -1,    -1,    -1,   823,   824,    -1,    -1,    -1,   828,
    3380       -1,   830,    -1,   278,   279,   280,    -1,    -1,    -1,    -1,
    3381       -1,   840,   287,   288,    -1,    -1,    -1,   292,   293,    -1,
    3382       -1,    -1,    -1,  1445,    -1,  1447,    -1,    -1,    -1,   304,
    3383       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1461,
    3384       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   958,    -1,
    3385       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3386       -1,    -1,    -1,   973,   974,   340,    -1,    -1,    -1,    -1,
    3387      980,    -1,    -1,    -1,    -1,    -1,   986,    -1,    -1,   989,
    3388       -1,   991,    -1,   912,    -1,    -1,    -1,    36,    -1,    38,
    3389       -1,   920,    -1,    -1,    -1,    -1,    -1,   926,    -1,    -1,
    3390     1010,   376,    -1,    -1,    -1,   934,    -1,    -1,    -1,    -1,
    3391       59,  1021,    -1,    -1,    -1,    -1,    65,    -1,   947,   948,
    3392       69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    3393       79,    80,    -1,  1043,    -1,  1045,    -1,    -1,    87,    -1,
    3394       -1,    -1,    -1,    -1,   973,    -1,    -1,    -1,    -1,    -1,
    3395      979,  1061,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    3396      109,   110,   111,   112,   113,   114,   115,    -1,   997,   998,
    3397     1080,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1007,    -1,
    3398       -1,    -1,    -1,    -1,  1013,  1014,    -1,  1016,  1017,  1018,
    3399       36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,  1028,
    3400     1029,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3401       -1,    -1,    -1,    59,    -1,    -1,  1126,    -1,    -1,    65,
    3402       -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,
    3403       76,    77,    -1,    79,    80,  1145,    -1,    -1,    -1,    -1,
    3404       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3405     1160,  1161,    -1,    -1,    -1,   101,    -1,   103,    -1,  1088,
    3406     1089,  1090,    -1,    -1,   110,   111,   112,   113,   114,   115,
    3407       -1,    -1,  1101,    -1,    -1,   550,   551,   552,   553,   554,
    3408      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
    3409      565,   566,   567,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3410       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3411       -1,    -1,    -1,    -1,    -1,    -1,  1145,    -1,   593,    -1,
    3412       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1239,
    3413       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,     5,
    3415        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3416       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3417       26,    -1,    -1,    29,    30,    31,  1205,    -1,    -1,    -1,
    3418       36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3419       -1,    -1,    -1,    -1,    -1,  1224,    -1,    -1,    -1,    -1,
    3420       -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,
    3421       -1,    67,    68,    69,    -1,   690,    72,    73,    74,    75,
    3422       76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
    3423       -1,    87,    -1,    -1,    -1,    -1,    -1,   712,    -1,    -1,
    3424       -1,    -1,    -1,  1272,  1273,   101,    -1,   103,    -1,    -1,
    3425      725,    -1,   108,    -1,   110,   111,   112,   113,   114,   115,
    3426       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3427       -1,  1381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3428       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3429       -1,    -1,    -1,    -1,    -1,   770,    -1,    -1,    -1,    -1,
    3430       -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3431       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3432       22,    23,    24,    25,    26,    -1,   801,    29,    30,    31,
    3433       32,    -1,    -1,    35,    36,    37,    38,    -1,    -1,    -1,
    3434       -1,   816,  1452,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
    3436       62,  1390,    64,    65,    -1,    67,    68,    69,    -1,    -1,
    3437       72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3438       -1,    -1,    -1,    -1,    -1,    87,  1496,    -1,    -1,    -1,
    3439       -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,   101,
    3440       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3441      112,   113,   114,   115,    -1,    59,    -1,    -1,    -1,    -1,
    3442       -1,    65,   124,    -1,    -1,    69,    -1,    -1,    72,    73,
    3443       74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    3444     1469,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3445       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    3446     1489,  1490,   106,    -1,    -1,    -1,   110,   111,   112,   113,
    3447      114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3448       -1,  1510,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3449       -1,   966,    -1,    -1,    -1,     3,     4,     5,     6,     7,
    3450        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3451       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3452      995,    29,    30,    31,    32,    -1,    -1,    35,    36,    37,
    3453       38,    39,  1007,    41,    -1,    -1,    44,    45,    46,    47,
    3454       48,    49,    50,    51,    -1,    53,    -1,    -1,    56,    57,
    3455       -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,    67,
    3456       68,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    3457       -1,    79,    80,    -1,  1049,    -1,    -1,    -1,    -1,    87,
    3458       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3459       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,
    3460       -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
    3461       -1,    -1,    -1,    -1,    -1,    -1,   124,    -1,    -1,     3,
    3462        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3463       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3464       24,    25,    26,    -1,  1119,    29,    30,    31,    32,    -1,
    3465       -1,    35,    36,    37,    38,    10,    11,    12,    13,    14,
    3466       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3467       25,    26,    27,    -1,    -1,    59,    60,    -1,    62,    -1,
    3468       64,    65,    37,    67,    68,    69,    -1,  1162,    72,    73,
    3469       74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    3470       -1,  1176,  1177,    87,    -1,    60,    -1,    -1,    -1,    -1,
    3471       -1,    -1,    -1,    -1,    -1,    -1,    71,   101,    -1,   103,
    3472       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
    3473      114,   115,     4,     5,     6,     7,     8,     9,    10,    11,
    3474       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3475       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3476       -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
    3477       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3478       -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
    3479       62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
    3480       72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3481       -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
    3482       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    3483       -1,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,   111,
    3484      112,   113,   114,   115,    -1,     4,     5,     6,     7,     8,
     3532     101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3533     111,   112,   113,   114,   115,     4,     5,     6,     7,     8,
    34853534       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    34863535      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     
    34883537      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34893538      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3490       59,    60,  1377,    62,    -1,    64,    65,    -1,    67,    68,
    3491       69,    -1,    -1,    72,    73,    74,    75,    76,    77,  1394,
     3539      59,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
     3540      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    34923541      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    34933542      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3494       -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,   108,
    3495       -1,   110,   111,   112,   113,   114,   115,    -1,     4,     5,
    3496        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3497       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3498       26,  1456,  1457,    29,    30,    31,    -1,    -1,    -1,    -1,
    3499       36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3543      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3544      -1,   110,   111,   112,   113,   114,   115,     4,     5,     6,
     3545       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3546      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3547      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3548      37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35003549      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3501       -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,
    3502       -1,    67,    68,    69,    -1,    -1,    72,    73,    74,    75,
    3503       76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
    3504       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3505       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3506       -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     3550      -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,
     3551      67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3552      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3553      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3554      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3555      -1,    -1,    -1,   110,   111,   112,   113,   114,   115,     4,
     3556       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3557      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3558      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3559      -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3560      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3561      -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
     3562      65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
     3563      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3564      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3565      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3566      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3567     115,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3568      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3569      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3570      32,    -1,    -1,    35,    -1,    37,    38,    -1,    -1,    -1,
     3571      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3572      -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,
     3573      62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
     3574      -1,    -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,
     3575      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3576      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3577      -1,   103,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,
     3578       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3579      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3580      23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
     3581      -1,    -1,    35,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3582      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3583      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
     3584      -1,    64,    -1,    -1,    67,    68,    -1,    -1,    71,     3,
     3585       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3586      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3587      24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
     3588     103,    35,    -1,    37,    -1,    -1,    -1,    -1,   111,    -1,
     3589      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3590      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,
     3591      64,    -1,    -1,    67,    68,     4,     5,     6,     7,     8,
     3592       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3593      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3594      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,   103,
     3595      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3596      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3597      -1,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
     3598      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,
     3599      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3600      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3601      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3602      -1,    -1,   111,     4,     5,     6,     7,     8,     9,    10,
     3603      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3604      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3605      31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
     3606      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3607      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3608      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    -1,
    35073609       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    35083610      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    35093611      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3510       -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
     3612      -1,   102,   103,    37,    -1,    -1,    -1,    -1,    -1,    -1,
     3613     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3614      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,
     3615      64,    -1,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,
    35113616      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3512       -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,
    3513       64,    65,    -1,    67,    68,    69,    -1,    -1,    72,    73,
    3514       74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    3515       -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3516       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    3517       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
    3518      114,   115,     4,     5,     6,     7,     8,     9,    10,    11,
    3519       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3520       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3521       -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
    3522       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3523       -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
    3524       62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
    3525       72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3526       -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
    3527       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    3528       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3529      112,   113,   114,   115,     4,     5,     6,     7,     8,     9,
    3530       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3531       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3532       30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,
    3533       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3534       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,
    3535       60,    -1,    62,    -1,    64,    65,    -1,    67,    68,    69,
    3536       -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3537       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    3538       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3539       -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
    3540      110,   111,   112,   113,   114,   115,     0,    -1,    -1,     3,
    3541        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3542       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3543       24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
    3544       -1,    35,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,
    3545       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3546       -1,    -1,    -1,    57,    -1,    -1,    60,    -1,    62,    -1,
    3547       64,    65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
    3548       -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,
    3549       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3550       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    3551       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     3,     4,
    3552        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3553       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3554       25,    26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,
    3555       35,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3556       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3557       -1,    -1,    57,    -1,    -1,    60,    -1,    62,    -1,    64,
    3558       65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,
    3559       -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3560       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3561       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3562       -1,    -1,   107,    -1,    -1,    -1,   111,     3,     4,     5,
     3617      -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,
     3618      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
     3619      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     4,     5,
    35633620       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    35643621      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3565       26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,
    3566       -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3622      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3623      -1,    37,    10,    11,    12,    13,    14,    15,    16,    17,
     3624      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3625      -1,    29,    30,    31,    60,    -1,    62,    -1,    64,    37,
     3626      -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35673627      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3568       -1,    57,    -1,    -1,    60,    -1,    62,    -1,    64,    65,
    3569       -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
    3570       76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3571       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3572       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3573       -1,    -1,    -1,    -1,    -1,   111,     3,     4,     5,     6,
    3574        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3575       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3576       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3577       37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3579       -1,    -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,
    3580       67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
    3581       77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3582       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3583       -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
    3584       -1,    -1,    -1,    -1,   111,     3,     4,     5,     6,     7,
    3585        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3586       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3587       -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
    3588       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3589       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3590       -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
    3591       68,    -1,    -1,    71,     3,     4,     5,     6,     7,     8,
    3592        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3593       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3594       29,    30,    31,    32,    -1,   103,    35,    -1,    37,    -1,
    3595       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3596       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3597       -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,
    3598       -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3599       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3600       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3601       -1,    -1,    -1,    -1,   103,    37,    -1,    -1,    -1,    -1,
    3602       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3603       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    3604       62,    -1,    64,    -1,    -1,    67,    68,     4,     5,     6,
    3605        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3606       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3607       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3608       37,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    3609       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3610       -1,    -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,
    3611       67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
    3612       77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3613       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3614       -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
    3615       -1,    -1,    -1,    -1,   111,     4,     5,     6,     7,     8,
    3616        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3617       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3618       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,
    3619       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3620       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3621       31,    60,    -1,    62,    -1,    64,    37,    -1,    67,    68,
    3622       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    3624       89,    -1,    -1,    -1,    65,    -1,    67,    68,    -1,    -1,
    3625       -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    3626       -1,    -1,   111,     4,     5,     6,     7,     8,     9,    10,
    3627       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3628       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3629       31,    -1,    -1,    -1,    -1,    -1,    37,    10,    11,    12,
    3630       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3631       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    60,
    3632       -1,    62,    -1,    64,    37,    -1,    67,    68,    -1,    -1,
    3633       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3634       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    89,    -1,
    3635       -1,    -1,    -1,    -1,    67,    68,    -1,    -1,    -1,    -1,
    3636       -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3637      111,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3638       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3639       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3640       -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
    3641       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3642       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
    3643       -1,    64,    -1,    -1,    67,    68,     4,     5,     6,     7,
     3628      -1,    -1,    60,    89,    -1,    -1,    -1,    65,    -1,    67,
     3629      68,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
     3630      -1,    -1,    -1,    -1,    -1,   111,     4,     5,     6,     7,
    36443631       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    36453632      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    36463633      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3647      103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
     3634      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36483635      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36493636      -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
     
    37353722      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    37363723     103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
    3737      113,   114,   115,     3,     4,     5,     6,     7,     8,     9,
    3738       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3739       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3740       30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,    11,
    3741       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3742       22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
    3743       60,    -1,    62,    -1,    64,    37,    -1,    67,    68,    -1,
     3724     113,   114,   115,    10,    11,    12,    13,    14,    15,    16,
     3725      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3726      27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3727      37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37443728      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3745       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    3746       -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    71,
    3747       -1,    -1,    -1,    -1,    76,    77,   106,    10,    11,    12,
    3748       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3749       23,    24,    25,    26,    27,    -1,    29,    30,    31,   101,
    3750       -1,   103,    -1,    -1,    37,    -1,    -1,    -1,    -1,   111,
    3751       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3752       20,    21,    22,    23,    24,    25,    26,    60,    -1,    29,
    3753       30,    31,    65,    -1,    67,    68,    69,    37,    71,    -1,
    3754       -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,
     3729      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,
     3730      67,    68,    69,    -1,    71,    -1,    -1,    -1,    -1,    76,
     3731      77,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3732      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3733      29,    30,    31,    -1,   101,    -1,   103,    -1,    37,    -1,
     3734      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    37553735      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3756       60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,
    3757      103,    -1,    -1,    -1,    -1,    -1,    76,    77,   111,    10,
     3736      -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3737      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    10,
    37583738      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    37593739      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3760       31,   101,    -1,   103,    -1,    -1,    37,    -1,    -1,    -1,
    3761       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3740      31,    -1,   101,    -1,   103,    -1,    37,    -1,    -1,    -1,
     3741      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37623742      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    37633743      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
     
    37783758      -1,    76,    77,    10,    11,    12,    13,    14,    15,    16,
    37793759      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3780       27,    -1,    29,    30,    31,    -1,    -1,    -1,   103,    -1,
     3760      -1,    -1,    29,    30,    31,    -1,   101,    -1,   103,    -1,
    37813761      37,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    37823762      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3763      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,
     3764      67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
     3765      77,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3766      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3767      29,    30,    31,    -1,    -1,    -1,   103,    -1,    37,    -1,
     3768      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3769      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3770      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
     3771      -1,    -1,    71,    10,    11,    12,    13,    14,    15,    16,
     3772      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3773      27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3774      37,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3775      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37833776      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
    37843777      67,    68,    -1,    -1,    71,    10,    11,    12,    13,    14,
     
    37903783      -1,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
    37913784      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3792       26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3793       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
    3794       -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3795       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    3796       -1,    67,    68,    -1,    -1,    71,    10,    11,    12,    13,
    3797       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3798       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3799       -1,    -1,    -1,    37,    38,    -1,    -1,   103,    -1,    -1,
    3800       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    3801       -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
    3802       -1,    -1,    -1,    67,    68,    10,    11,    12,    13,    14,
    3803       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3804       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3805       -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,
    3806       -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,
    3807       -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    3808       65,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
    3809       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    38103785      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    38113786      -1,    37,    38,    -1,    -1,    -1,    -1,    -1,   103,    -1,
    3812       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3787      -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    38133788      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    38143789      -1,    67,    68,    10,    11,    12,    13,    14,    15,    16,
    38153790      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3791      27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3792      37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
     3793      -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3794      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     3795      67,    68,    -1,    -1,    71,    10,    11,    12,    13,    14,
     3796      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3797      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3798      -1,    -1,    37,    38,    -1,    -1,   103,    -1,    -1,    -1,
     3799      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3800      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     3801      -1,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
     3802      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3803      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3804      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
     3805      -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3806      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    65,
     3807      -1,    67,    68,    10,    11,    12,    13,    14,    15,    16,
     3808      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    38163809      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3817       37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
     3810      37,    38,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
    38183811      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    38193812      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     
    38213814      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    38223815      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3823       -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3816      -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,
    38243817      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    38253818      -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     
    38333826      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    38343827      30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
    3835       -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3828      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    38363829      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38373830      60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    10,
     
    38893882      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    38903883      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
    3891       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3892       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3893       30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
    3894       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3884       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3885      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3886      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3887      -1,    -1,    -1,    37,   103,    -1,    -1,    -1,    -1,    -1,
    38953888      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3896       60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,     4,
    3897        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3898       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3899       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3900       -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3901       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3902       -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,
    3903       -1,    -1,    67,    68,    -1,    36,    -1,    38,    39,    -1,
    3904       41,    -1,    -1,    44,    45,    46,    47,    48,    49,    50,
    3905       51,    52,    53,    -1,    -1,    56,    57,    -1,    59,    -1,
    3906       -1,    -1,    -1,    -1,    65,    -1,    -1,   102,    69,    -1,
    3907       -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    3908       -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    3909       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3910      101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,   110,
    3911      111,   112,   113,   114,   115,    -1,    36,    -1,    38,    39,
    3912       -1,    41,    -1,   124,    44,    45,    46,    47,    48,    49,
    3913       50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,    59,
    3914       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
     3889      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,
     3890      64,    -1,    -1,    67,    68,    -1,    36,    -1,    38,    39,
     3891      -1,    41,    -1,    -1,    44,    45,    46,    47,    48,    49,
     3892      50,    51,    52,    53,    -1,    -1,    56,    57,    -1,    59,
     3893      -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,   102,    69,
    39153894      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    39163895      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    39173896      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39183897      -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
    3919      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
    3920       -1,    -1,    -1,    -1,   124,     4,     5,     6,     7,     8,
    3921        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3922       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3923       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,
    3924       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3925       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3926       31,    60,    -1,    62,    -1,    64,    37,    -1,    67,    68,
    3927       -1,    36,    -1,    38,    39,    -1,    41,    42,    43,    44,
    3928       45,    46,    47,    48,    49,    50,    51,    52,    53,    60,
    3929       89,    56,    57,    -1,    59,    -1,    67,    68,    -1,    -1,
    3930       65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
    3931       75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    3932       -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3933       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3934       -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    3935      115,    36,    -1,    38,    39,    -1,    41,    42,    43,    44,
    3936       45,    46,    47,    48,    49,    50,    51,    -1,    53,    -1,
    3937       -1,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
    3938       65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
    3939       75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    3940       -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3941       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3942       -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    3943      115,    36,    -1,    38,    39,    -1,    41,    -1,    -1,    44,
    3944       45,    46,    47,    48,    49,    50,    51,    -1,    53,    -1,
    3945       -1,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
     3898     110,   111,   112,   113,   114,   115,    -1,    36,    -1,    38,
     3899      39,    -1,    41,    -1,   124,    44,    45,    46,    47,    48,
     3900      49,    50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,
     3901      59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
     3902      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3903      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3904      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3905      -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,
     3906      -1,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
     3907      -1,    -1,    -1,    -1,    -1,   124,     4,     5,     6,     7,
     3908       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3909      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3910      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
     3911      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3912      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3913      30,    31,    60,    -1,    62,    -1,    64,    37,    -1,    67,
     3914      68,    -1,    36,    -1,    38,    39,    -1,    41,    42,    43,
     3915      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
     3916      60,    89,    56,    57,    -1,    59,    -1,    67,    68,    -1,
     3917      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
     3918      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3919      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3920      -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3921      -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,
     3922     114,   115,    36,    -1,    38,    39,    -1,    41,    42,    43,
     3923      44,    45,    46,    47,    48,    49,    50,    51,    -1,    53,
     3924      -1,    -1,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,
     3925      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
     3926      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3927      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,
     3928      -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3929      -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,
     3930     114,   115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,
     3931      -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3932      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3933      87,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,    -1,
     3934      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3935      -1,    -1,   109,   110,   111,   112,   113,   114,   115,    59,
     3936      -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
     3937      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3938      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
     3939      -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,
     3940      -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
     3941     110,   111,   112,   113,   114,   115,    59,    -1,    -1,    -1,
     3942      -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
     3943      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3944      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3945      36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3946     103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3947     113,   114,   115,    59,    -1,    -1,    -1,    -1,    -1,    65,
     3948      -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,
     3949      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
     3950      -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,
     3951      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     3952      -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     3953      59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
     3954      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3955      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3956      -1,    -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,
     3957      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3958      -1,   110,   111,   112,   113,   114,   115,    59,    -1,    -1,
     3959      -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,
     3960      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3961      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     3962      -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   101,
     3963      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
     3964     112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,    -1,
    39463965      65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
    39473966      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    39483967      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,
    3949       38,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3950       -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3968      38,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
     3969      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    39513970     115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
    39523971      -1,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    39533972      -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    39543973      -1,    -1,    -1,    -1,    -1,    36,    -1,    38,    -1,    -1,
    3955       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
     3974      -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,
    39563975      -1,    -1,   110,   111,   112,   113,   114,   115,    59,    -1,
    39573976      -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,
     
    39593978      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    39603979      -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,
    3961      101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3980     101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    39623981     111,   112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,
    39633982      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
    39643983      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    3965       -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,
    3966       -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3984      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3985      -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
    39673986      -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
    3968      114,   115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3969       -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,    76,
    3970       77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
    3971       87,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,    -1,
    3972       -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
    3973       -1,    -1,    -1,   110,   111,   112,   113,   114,   115,    59,
    3974       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
    3975       -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3976       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
     3987     114,   115,     4,     5,     6,     7,     8,     9,    10,    11,
     3988      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3989      22,    23,    24,    25,    26,    -1,    -1,    -1,    -1,    -1,
     3990      -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
    39773991      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3978       -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3979      110,   111,   112,   113,   114,   115,     4,     5,     6,     7,
    3980        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3981       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3982       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,
    3983       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3984       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3985       -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,    67,
    3986       68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,
    3987        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3988       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3989       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3990       -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
    3991       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3992       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
    3993       -1,    64,    -1,    -1,    67,    68,     3,     4,     5,     6,
     3992      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     3993      62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
     3994      -1,    -1,    -1,    -1,    76,    77,     3,     4,     5,     6,
    39943995       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    39953996      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     
    39983999      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39994000      -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,
    4000       67,    68,     4,     5,     6,     7,     8,     9,    10,    11,
    4001       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    4002       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    4003       -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
     4001      67,    68,     3,     4,     5,     6,     7,     8,     9,    10,
     4002      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     4003      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     4004      31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
    40044005      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4005       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    4006       62,    -1,    64,    -1,    -1,    67,    68,    10,    11,    12,
    4007       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    4008       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
    4009       33,    34,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     4006      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     4007      -1,    62,    -1,    64,    -1,    -1,    67,    68,     4,     5,
     4008       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     4009      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     4010      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     4011      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40104012      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4011       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
    4012       -1,    -1,    -1,    -1,    67,    68
     4013      -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,
     4014      -1,    67,    68,    10,    11,    12,    13,    14,    15,    16,
     4015      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     4016      -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
     4017      37,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     4018      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     4019      29,    30,    31,    60,    -1,    -1,    -1,    -1,    37,    -1,
     4020      67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4021      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4022      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68
    40134023};
    40144024
     
    40214031      22,    23,    24,    25,    26,    29,    30,    31,    32,    35,
    40224032      37,    38,    57,    60,    62,    64,    65,    67,    68,    69,
    4023       76,    77,   101,   103,   111,   129,   132,   189,   202,   203,
    4024      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
    4025      214,   215,   216,   217,   218,   219,   221,   222,   223,   224,
    4026      225,   226,   227,   228,   230,   231,   232,   233,   234,   235,
    4027      236,   244,   245,   271,   272,   273,   281,   284,   290,   291,
    4028      293,   295,   296,   302,   307,   311,   312,   313,   314,   315,
    4029      316,   317,   318,   338,   355,   356,   357,   358,    65,   111,
    4030      131,   205,   207,   215,   217,   227,   231,   233,   272,    75,
    4031      101,   300,   301,   302,   300,   300,    65,    67,    68,    69,
    4032      130,   131,   261,   262,   282,   283,    67,    68,   262,   101,
    4033      293,    11,   190,   101,   111,   307,   312,   313,   314,   316,
    4034      317,   318,   104,   126,   103,   208,   215,   217,   311,   315,
    4035      354,   355,   358,   359,   127,   123,   265,   106,   127,   164,
    4036       67,    68,   129,   260,   127,   127,   127,   108,   127,    67,
    4037       68,   101,   111,   297,   306,   307,   308,   309,   310,   311,
    4038      315,   319,   320,   321,   322,   323,   329,     3,    27,    71,
    4039      229,     3,     5,    67,   103,   111,   207,   218,   222,   225,
    4040      234,   273,   311,   315,   358,   205,   207,   217,   227,   231,
    4041      233,   272,   311,   315,    32,   223,   223,   218,   225,   127,
    4042      223,   218,   223,   218,    68,   101,   106,   262,   273,   106,
    4043      262,   223,   218,   108,   127,   127,     0,   126,   101,   164,
    4044      300,   300,   126,   103,   215,   217,   356,   260,   260,   217,
    4045      123,   101,   111,   297,   307,   311,   103,   111,   358,   294,
    4046      220,   302,   101,   278,   101,   101,    49,   101,    36,    38,
     4033      76,    77,   101,   103,   111,   129,   132,   189,   203,   204,
     4034     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     4035     215,   216,   217,   218,   219,   220,   222,   223,   224,   225,
     4036     226,   227,   228,   229,   231,   232,   233,   234,   235,   236,
     4037     237,   245,   246,   272,   273,   274,   282,   285,   291,   292,
     4038     294,   296,   297,   303,   308,   312,   313,   314,   315,   316,
     4039     317,   318,   319,   339,   356,   357,   358,   359,    65,   111,
     4040     131,   206,   208,   216,   218,   228,   232,   234,   273,    75,
     4041     101,   301,   302,   303,   301,   301,    65,    67,    68,    69,
     4042     130,   131,   262,   263,   283,   284,    67,    68,   263,   101,
     4043     294,    11,   190,   101,   111,   308,   313,   314,   315,   317,
     4044     318,   319,   104,   126,   103,   209,   216,   218,   312,   316,
     4045     355,   356,   359,   360,   127,   123,   266,   106,   127,   164,
     4046      67,    68,   129,   261,   127,   127,   127,   108,   127,    67,
     4047      68,   101,   111,   298,   307,   308,   309,   310,   311,   312,
     4048     316,   320,   321,   322,   323,   324,   330,     3,    27,    71,
     4049     230,     3,     5,    67,   103,   111,   208,   219,   223,   226,
     4050     235,   274,   312,   316,   359,   206,   208,   218,   228,   232,
     4051     234,   273,   312,   316,    32,   224,   224,   219,   226,   127,
     4052     224,   219,   224,   219,    68,   101,   106,   263,   274,   106,
     4053     263,   224,   219,   108,   127,   127,     0,   126,   101,   164,
     4054     301,   301,   126,   103,   216,   218,   357,   261,   261,   218,
     4055     123,   101,   111,   298,   308,   312,   103,   111,   359,   295,
     4056     221,   303,   101,   279,   101,   101,    49,   101,    36,    38,
    40474057      59,    65,    69,    72,    73,    74,    75,    79,    80,    87,
    40484058     101,   103,   110,   111,   112,   113,   114,   115,   128,   132,
    40494059     133,   134,   135,   140,   141,   142,   143,   144,   145,   146,
    4050      147,   148,   149,   150,   151,   152,   153,   155,   157,   215,
    4051      264,   280,   354,   359,   217,   102,   102,   102,   102,   102,
    4052      102,   102,    67,    68,   103,   215,   260,   338,   356,   103,
    4053      111,   155,   207,   208,   214,   217,   221,   222,   227,   230,
    4054      231,   233,   250,   251,   255,   256,   257,   258,   272,   338,
    4055      350,   351,   352,   353,   358,   359,   104,   101,   311,   315,
    4056      358,   101,   108,   124,   103,   106,   111,   155,   266,   107,
     4060     147,   148,   149,   150,   151,   152,   153,   155,   157,   216,
     4061     265,   281,   355,   360,   218,   102,   102,   102,   102,   102,
     4062     102,   102,    67,    68,   103,   216,   261,   339,   357,   103,
     4063     111,   155,   208,   209,   215,   218,   222,   223,   228,   231,
     4064     232,   234,   251,   252,   256,   257,   258,   259,   273,   339,
     4065     351,   352,   353,   354,   359,   360,   104,   101,   312,   316,
     4066     359,   101,   108,   124,   103,   106,   111,   155,   267,   107,
    40574067     126,   108,   124,   101,   108,   124,   108,   124,   108,   124,
    4058      300,   124,   307,   308,   309,   310,   320,   321,   322,   323,
    4059      217,   306,   319,    57,   299,   103,   300,   337,   338,   300,
    4060      300,   164,   126,   101,   300,   337,   300,   300,   217,   297,
    4061      101,   101,   216,   217,   215,   217,   104,   126,   215,   354,
    4062      359,   164,   126,   260,   265,   207,   222,   311,   315,   164,
    4063      126,   282,   217,   227,   124,   217,   217,   280,    38,   103,
    4064      215,   237,   238,   239,   240,   354,   358,   106,   246,   262,
    4065      106,   217,   282,   124,   124,   293,   126,   131,   259,     3,
    4066      127,   198,   199,   212,   214,   217,   126,   299,   101,   299,
    4067      155,   307,   217,   101,   126,   260,   106,    32,    33,    34,
    4068      215,   274,   275,   277,   126,   121,   123,   279,   126,   218,
    4069      224,   225,   260,   303,   304,   305,   101,   133,   101,   140,
     4068     301,   124,   308,   309,   310,   311,   321,   322,   323,   324,
     4069     218,   307,   320,    57,   300,   103,   301,   338,   339,   301,
     4070     301,   164,   126,   101,   301,   338,   301,   301,   218,   298,
     4071     101,   101,   217,   218,   216,   218,   104,   126,   216,   355,
     4072     360,   164,   126,   261,   266,   208,   223,   312,   316,   164,
     4073     126,   283,   218,   228,   124,   218,   218,   281,    38,   103,
     4074     216,   238,   239,   240,   241,   355,   359,   106,   247,   263,
     4075     106,   218,   283,   124,   124,   294,   126,   131,   260,     3,
     4076     127,   198,   199,   213,   215,   218,   126,   300,   101,   300,
     4077     155,   308,   218,   101,   126,   261,   106,    32,    33,    34,
     4078     216,   275,   276,   278,   126,   121,   123,   280,   126,   219,
     4079     225,   226,   261,   304,   305,   306,   101,   133,   101,   140,
    40704080     140,   142,   101,   140,   101,   101,   140,   140,   131,   103,
    4071      155,   160,   164,   215,   263,   354,   104,   126,   142,   142,
     4081     155,   160,   164,   216,   264,   355,   104,   126,   142,   142,
    40724082      75,    78,    79,    80,   101,   103,   105,    90,    91,    92,
    40734083      93,    94,    95,    96,    97,    98,    99,   123,   159,   142,
    40744084     111,   116,   117,   113,   114,    81,    82,    83,    84,   118,
    40754085     119,    85,    86,   112,   120,   121,    87,    88,   122,   123,
    4076      361,   101,   111,   333,   334,   335,   336,   337,   102,   108,
    4077      101,   337,   338,   101,   337,   338,   126,   101,   215,   356,
    4078      104,   126,   103,   111,   127,   215,   217,   349,   350,   358,
    4079      359,   127,   101,   103,   111,   307,   324,   325,   326,   327,
    4080      328,   329,   330,   331,   332,   338,   339,   340,   341,   342,
    4081      343,   344,   111,   358,   217,   127,   127,   111,   215,   217,
    4082      351,   260,   215,   338,   351,   260,   101,   126,   126,   126,
    4083      104,   126,    65,   103,   105,   262,   266,   267,   268,   269,
    4084      270,   126,   126,   126,   126,   126,   126,   297,   102,   102,
    4085      102,   102,   102,   102,   102,   306,   319,   101,   265,   104,
    4086      198,   126,   297,   160,   264,   160,   264,   297,   103,   198,
    4087      299,   164,   126,   198,   102,   239,   240,   104,   126,   101,
    4088      109,   111,   241,   243,   306,   307,   319,   337,   345,   346,
    4089      347,   348,   107,   238,   108,   124,   108,   124,   262,   237,
    4090      108,   360,   123,   247,   246,   217,   252,   253,   254,   257,
    4091      258,   102,   108,   164,   126,   111,   155,   126,   214,   217,
    4092      251,   350,   358,   291,   292,   101,   111,   324,   102,   108,
    4093      361,   262,   274,   101,   106,   262,   264,   274,   102,   108,
    4094      101,   133,   102,   109,   263,   263,   103,   131,   137,   155,
    4095      264,   263,   104,   126,   102,   108,   102,   101,   111,   345,
    4096      102,   108,   155,   103,   131,   103,   136,   137,   126,   103,
    4097      131,   155,   155,   142,   142,   142,   143,   143,   144,   144,
    4098      145,   145,   145,   145,   146,   146,   147,   148,   149,   150,
    4099      151,   109,   160,   155,   126,   334,   335,   336,   217,   333,
    4100      300,   300,   155,   264,   126,   259,   111,   126,   215,   338,
    4101      351,   217,   221,   104,   126,   104,   358,   104,   101,   126,
    4102      307,   325,   326,   327,   330,   340,   341,   342,   104,   126,
    4103      217,   324,   328,   339,   101,   300,   343,   361,   300,   300,
    4104      361,   101,   300,   343,   300,   300,   300,   300,   338,   215,
    4105      349,   359,   260,   104,   108,   104,   108,   361,   215,   351,
    4106      361,   248,   249,   250,   251,   248,   248,   260,   155,   126,
    4107      103,   262,   109,   108,   360,   266,   103,   109,   270,    28,
    4108      200,   201,   260,   248,   131,   297,   131,   299,   101,   337,
    4109      338,   101,   337,   338,   133,   338,   164,   252,   102,   102,
    4110      102,   102,   104,   164,   198,   164,   106,   124,   124,   103,
    4111      307,   346,   347,   348,   153,   154,   217,   345,   242,   243,
    4112      242,   300,   300,   262,   300,   107,   262,   107,   154,   360,
    4113      127,   127,   131,   212,   127,   127,   248,   101,   111,   358,
    4114      127,   107,   217,   275,   276,   127,   126,   126,   101,   127,
    4115      102,   304,   160,   161,   109,   124,   103,   133,   191,   192,
    4116      193,   102,   102,   126,   109,   102,   102,   102,   155,   217,
    4117      106,   142,   157,   155,   156,   158,   108,   127,   126,   126,
    4118      102,   108,   155,   126,   153,   109,   252,   102,   102,   102,
    4119      333,   252,   102,   248,   215,   351,   103,   111,   155,   155,
    4120      217,   330,   252,   102,   102,   102,   102,   102,   102,   102,
    4121        7,   217,   324,   328,   339,   126,   126,   361,   126,   126,
    4122      102,   127,   127,   127,   127,   265,   127,   153,   154,   155,
    4123      298,   126,   266,   268,   107,   126,   131,   195,   262,    38,
    4124       39,    41,    44,    45,    46,    47,    48,    49,    50,    51,
    4125       53,    56,   103,   131,   161,   162,   163,   164,   165,   166,
    4126      168,   169,   181,   183,   184,   189,   202,   296,    28,   127,
    4127      123,   265,   126,   126,   102,   127,   164,   237,   104,   102,
    4128      102,   102,   345,   241,   247,   107,   102,   108,   104,   104,
    4129      127,   217,   108,   361,   278,   102,   274,   205,   207,   215,
    4130      286,   287,   288,   289,   280,   102,   102,   109,   154,   101,
    4131      102,   109,   108,   155,   155,   267,   108,   127,   158,   104,
    4132      131,   138,   139,   155,   137,   127,   138,   153,   157,   127,
    4133      101,   337,   338,   127,   127,   126,   127,   127,   127,   155,
    4134      102,   127,   101,   337,   338,   101,   343,   101,   343,   338,
    4135      216,     7,   111,   127,   155,   252,   252,   251,   255,   255,
    4136      256,   108,   108,   102,   102,   104,    89,   115,   127,   127,
    4137      138,   266,   155,   108,   124,   202,   206,   217,   221,   101,
    4138      101,   162,   101,   101,   124,   131,   124,   131,   111,   131,
    4139      161,   101,   164,   124,   155,   104,   109,   124,   127,   126,
    4140      127,   195,   102,   155,   252,   252,   300,   102,   107,   101,
    4141      337,   338,   126,   102,   126,   127,   297,   107,   126,   127,
    4142      127,   102,   106,   191,   104,   154,   124,   191,   193,   108,
    4143      127,   360,   156,   104,   127,    78,   105,   108,   127,   127,
    4144      104,   127,   102,   126,   102,   102,   104,   104,   104,   127,
    4145      102,   126,   126,   126,   155,   155,   127,   104,   127,   127,
    4146      127,   127,   126,   126,   154,   154,   104,   104,   127,   127,
    4147      131,   262,   217,   160,   160,    45,   160,   126,   124,   124,
     4086     362,   101,   111,   334,   335,   336,   337,   338,   102,   108,
     4087     101,   338,   339,   101,   338,   339,   126,   101,   216,   357,
     4088     104,   126,   103,   111,   127,   216,   218,   350,   351,   359,
     4089     360,   127,   101,   103,   111,   308,   325,   326,   327,   328,
     4090     329,   330,   331,   332,   333,   339,   340,   341,   342,   343,
     4091     344,   345,   111,   359,   218,   127,   127,   111,   216,   218,
     4092     352,   261,   216,   339,   352,   261,   101,   126,   126,   126,
     4093     104,   126,    65,    73,   103,   105,   263,   267,   268,   269,
     4094     270,   271,   126,   126,   126,   126,   126,   126,   298,   102,
     4095     102,   102,   102,   102,   102,   102,   307,   320,   101,   266,
     4096     104,   198,   126,   298,   160,   265,   160,   265,   298,   103,
     4097     198,   300,   164,   126,   198,   102,   240,   241,   104,   126,
     4098     101,   109,   111,   242,   244,   307,   308,   320,   338,   346,
     4099     347,   348,   349,   107,   239,   108,   124,   108,   124,   263,
     4100     238,   108,   361,   123,   248,   247,   218,   253,   254,   255,
     4101     258,   259,   102,   108,   164,   126,   111,   155,   126,   215,
     4102     218,   252,   351,   359,   292,   293,   101,   111,   325,   102,
     4103     108,   362,   263,   275,   101,   106,   263,   265,   275,   102,
     4104     108,   101,   133,   102,   109,   264,   264,   103,   131,   137,
     4105     155,   265,   264,   104,   126,   102,   108,   102,   101,   111,
     4106     346,   102,   108,   155,   103,   131,   103,   136,   137,   126,
     4107     103,   131,   155,   155,   142,   142,   142,   143,   143,   144,
     4108     144,   145,   145,   145,   145,   146,   146,   147,   148,   149,
     4109     150,   151,   109,   160,   155,   126,   335,   336,   337,   218,
     4110     334,   301,   301,   155,   265,   126,   260,   111,   126,   216,
     4111     339,   352,   218,   222,   104,   126,   104,   359,   104,   101,
     4112     126,   308,   326,   327,   328,   331,   341,   342,   343,   104,
     4113     126,   218,   325,   329,   340,   101,   301,   344,   362,   301,
     4114     301,   362,   101,   301,   344,   301,   301,   301,   301,   339,
     4115     216,   350,   360,   261,   104,   108,   104,   108,   362,   216,
     4116     352,   362,   249,   250,   251,   252,   249,   249,   261,   155,
     4117     126,   103,   263,   109,   108,   361,   267,    73,   103,   109,
     4118     271,    28,   200,   201,   261,   249,   131,   298,   131,   300,
     4119     101,   338,   339,   101,   338,   339,   133,   339,   164,   253,
     4120     102,   102,   102,   102,   104,   164,   198,   164,   106,   124,
     4121     124,   103,   308,   347,   348,   349,   153,   154,   218,   346,
     4122     243,   244,   243,   301,   301,   263,   301,   107,   263,   107,
     4123     154,   361,   127,   127,   131,   213,   127,   127,   249,   101,
     4124     111,   359,   127,   107,   218,   276,   277,   127,   126,   126,
     4125     101,   127,   102,   305,   160,   161,   109,   124,   103,   133,
     4126     191,   192,   193,   102,   102,   126,   109,   102,   102,   102,
     4127     155,   218,   106,   142,   157,   155,   156,   158,   108,   127,
     4128     126,   126,   102,   108,   155,   126,   153,   109,   253,   102,
     4129     102,   102,   334,   253,   102,   249,   216,   352,   103,   111,
     4130     155,   155,   218,   331,   253,   102,   102,   102,   102,   102,
     4131     102,   102,     7,   218,   325,   329,   340,   126,   126,   362,
     4132     126,   126,   102,   127,   127,   127,   127,   266,   127,   153,
     4133     154,   155,   299,   126,   267,   269,   107,   126,   202,   263,
     4134      38,    39,    41,    44,    45,    46,    47,    48,    49,    50,
     4135      51,    53,    56,   103,   131,   161,   162,   163,   164,   165,
     4136     166,   168,   169,   181,   183,   184,   189,   203,   297,    28,
     4137     127,   123,   266,   126,   126,   102,   127,   164,   238,   104,
     4138     102,   102,   102,   346,   242,   248,   107,   102,   108,   104,
     4139     104,   127,   218,   108,   362,   279,   102,   275,   206,   208,
     4140     216,   287,   288,   289,   290,   281,   102,   102,   109,   154,
     4141     101,   102,   109,   108,   155,   155,   268,   108,   127,   158,
     4142     104,   131,   138,   139,   155,   137,   127,   138,   153,   157,
     4143     127,   101,   338,   339,   127,   127,   126,   127,   127,   127,
     4144     155,   102,   127,   101,   338,   339,   101,   344,   101,   344,
     4145     339,   217,     7,   111,   127,   155,   253,   253,   252,   256,
     4146     256,   257,   108,   108,   102,   102,   104,    89,   115,   127,
     4147     127,   138,   267,   155,   108,   124,   203,   207,   218,   222,
     4148     101,   101,   162,   101,   101,   124,   131,   124,   131,   111,
     4149     131,   161,   101,   164,   124,   155,   104,   109,   124,   127,
     4150     126,   127,   202,   102,   155,   253,   253,   301,   102,   107,
     4151     101,   338,   339,   126,   102,   126,   127,   298,   107,   126,
     4152     127,   127,   102,   106,   191,   104,   154,   124,   191,   193,
     4153     108,   127,   361,   156,   104,   127,    78,   105,   108,   127,
     4154     127,   104,   127,   102,   126,   102,   102,   104,   104,   104,
     4155     127,   102,   126,   126,   126,   155,   155,   127,   104,   127,
     4156     127,   127,   127,   126,   126,   154,   154,   104,   104,   127,
     4157     127,   263,   218,   160,   160,    45,   160,   126,   124,   124,
    41484158     160,   124,   124,   160,    54,    55,   185,   186,   187,   124,
    4149      300,   166,   107,   124,   127,   127,   126,    89,   257,   258,
    4150      102,   287,   108,   124,   108,   124,   107,   285,   109,   133,
     4159     301,   166,   107,   124,   127,   127,   126,    89,   258,   259,
     4160     102,   288,   108,   124,   108,   124,   107,   286,   109,   133,
    41514161     102,   102,   109,   158,   104,   107,   104,   103,   139,   103,
    4152      139,   139,   104,   104,   104,   252,   104,   252,   252,   252,
    4153      127,   127,   104,   104,   102,   102,   104,   108,    89,   251,
     4162     139,   139,   104,   104,   104,   253,   104,   253,   253,   253,
     4163     127,   127,   104,   104,   102,   102,   104,   108,    89,   252,
    41544164      89,   127,   104,   104,   102,   102,   101,   102,   161,   182,
    4155      202,   124,   102,   101,   164,   187,    54,   162,   102,   102,
    4156      252,   106,   126,   126,   286,   133,   194,   101,   124,   194,
     4165     203,   124,   102,   101,   164,   187,    54,   162,   102,   102,
     4166     253,   106,   126,   126,   287,   133,   194,   101,   124,   194,
    41574167     127,   109,   126,   126,   127,   127,   127,   127,   104,   104,
    41584168     126,   127,   104,   162,    42,    43,   106,   172,   173,   174,
    41594169     160,   162,   127,   102,   161,   106,   174,    89,   126,   101,
    4160      127,   126,   260,   297,   107,   108,   109,   154,   102,   104,
    4161      155,   138,   138,   102,   102,   102,   102,   255,    40,   154,
    4162      170,   171,   298,   109,   126,   162,   172,   102,   124,   162,
    4163      124,   126,   102,   126,    89,   126,   102,   286,   133,   195,
    4164      102,   124,   109,   127,   127,   162,    89,   108,   109,   127,
    4165      196,   197,   202,   124,   161,   161,   196,   164,   188,   215,
    4166      354,   102,   126,   107,   102,   155,   104,   104,   154,   170,
    4167      173,   175,   176,   126,   124,   173,   177,   178,   127,   101,
    4168      111,   297,   345,   131,   164,   188,   101,   124,   162,   167,
    4169      107,   173,   202,   161,    52,   167,   180,   107,   173,   102,
    4170      217,   127,   280,   162,   167,   124,   179,   180,   167,   180,
    4171      164,   102,   102,   179,   127,   164,   127
     4170     127,   126,   261,   298,   107,   108,   109,   154,   102,   104,
     4171     155,   138,   138,   102,   102,   102,   102,   256,    40,   154,
     4172     170,   171,   299,   109,   126,   162,   172,   102,   124,   162,
     4173     124,   126,   102,   126,    89,   126,   102,   287,   133,   131,
     4174     195,   102,   124,   109,   127,   127,   162,    89,   108,   109,
     4175     127,   196,   197,   203,   124,   161,   161,   196,   164,   188,
     4176     216,   355,   102,   126,   107,   102,   108,   155,   104,   104,
     4177     154,   170,   173,   175,   176,   126,   124,   173,   177,   178,
     4178     127,   101,   111,   298,   346,   131,   164,   188,   101,   124,
     4179     131,   162,   167,   107,   173,   203,   161,    52,   167,   180,
     4180     107,   173,   102,   218,   127,   281,   162,   167,   124,   179,
     4181     180,   167,   180,   164,   102,   102,   179,   127,   164,   127
    41724182};
    41734183
     
    50745084/* Line 1806 of yacc.c  */
    50755085#line 341 "parser.yy"
     5086    { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5087    break;
     5088
     5089  case 20:
     5090
     5091/* Line 1806 of yacc.c  */
     5092#line 343 "parser.yy"
     5093    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
     5094    break;
     5095
     5096  case 22:
     5097
     5098/* Line 1806 of yacc.c  */
     5099#line 353 "parser.yy"
     5100    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
     5101    break;
     5102
     5103  case 23:
     5104
     5105/* Line 1806 of yacc.c  */
     5106#line 355 "parser.yy"
     5107    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
     5108    break;
     5109
     5110  case 24:
     5111
     5112/* Line 1806 of yacc.c  */
     5113#line 357 "parser.yy"
     5114    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
     5115    break;
     5116
     5117  case 26:
     5118
     5119/* Line 1806 of yacc.c  */
     5120#line 360 "parser.yy"
     5121    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
     5122    break;
     5123
     5124  case 28:
     5125
     5126/* Line 1806 of yacc.c  */
     5127#line 363 "parser.yy"
     5128    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
     5129    break;
     5130
     5131  case 29:
     5132
     5133/* Line 1806 of yacc.c  */
     5134#line 365 "parser.yy"
     5135    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
     5136    break;
     5137
     5138  case 30:
     5139
     5140/* Line 1806 of yacc.c  */
     5141#line 368 "parser.yy"
     5142    { (yyval.en) = 0; }
     5143    break;
     5144
     5145  case 32:
     5146
     5147/* Line 1806 of yacc.c  */
     5148#line 374 "parser.yy"
     5149    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     5150    break;
     5151
     5152  case 33:
     5153
     5154/* Line 1806 of yacc.c  */
     5155#line 379 "parser.yy"
     5156    { (yyval.en) = 0; }
     5157    break;
     5158
     5159  case 35:
     5160
     5161/* Line 1806 of yacc.c  */
     5162#line 382 "parser.yy"
     5163    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
     5164    break;
     5165
     5166  case 36:
     5167
     5168/* Line 1806 of yacc.c  */
     5169#line 387 "parser.yy"
     5170    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
     5171    break;
     5172
     5173  case 37:
     5174
     5175/* Line 1806 of yacc.c  */
     5176#line 389 "parser.yy"
     5177    { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
     5178    break;
     5179
     5180  case 39:
     5181
     5182/* Line 1806 of yacc.c  */
     5183#line 394 "parser.yy"
     5184    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5185    break;
     5186
     5187  case 40:
     5188
     5189/* Line 1806 of yacc.c  */
     5190#line 399 "parser.yy"
     5191    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5192    break;
     5193
     5194  case 41:
     5195
     5196/* Line 1806 of yacc.c  */
     5197#line 401 "parser.yy"
     5198    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5199    break;
     5200
     5201  case 42:
     5202
     5203/* Line 1806 of yacc.c  */
     5204#line 403 "parser.yy"
     5205    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5206    break;
     5207
     5208  case 43:
     5209
     5210/* Line 1806 of yacc.c  */
     5211#line 405 "parser.yy"
     5212    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5213    break;
     5214
     5215  case 44:
     5216
     5217/* Line 1806 of yacc.c  */
     5218#line 407 "parser.yy"
     5219    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5220    break;
     5221
     5222  case 46:
     5223
     5224/* Line 1806 of yacc.c  */
     5225#line 415 "parser.yy"
    50765226    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    50775227    break;
    50785228
    5079   case 20:
    5080 
    5081 /* Line 1806 of yacc.c  */
    5082 #line 343 "parser.yy"
     5229  case 47:
     5230
     5231/* Line 1806 of yacc.c  */
     5232#line 417 "parser.yy"
    50835233    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    50845234    break;
    50855235
    5086   case 21:
    5087 
    5088 /* Line 1806 of yacc.c  */
    5089 #line 345 "parser.yy"
    5090     { (yyval.en) = (yyvsp[(2) - (3)].en); }
    5091     break;
    5092 
    5093   case 22:
    5094 
    5095 /* Line 1806 of yacc.c  */
    5096 #line 347 "parser.yy"
    5097     { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    5098     break;
    5099 
    5100   case 24:
    5101 
    5102 /* Line 1806 of yacc.c  */
    5103 #line 357 "parser.yy"
    5104     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    5105     break;
    5106 
    5107   case 25:
    5108 
    5109 /* Line 1806 of yacc.c  */
    5110 #line 359 "parser.yy"
    5111     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    5112     break;
    5113 
    5114   case 26:
    5115 
    5116 /* Line 1806 of yacc.c  */
    5117 #line 361 "parser.yy"
    5118     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    5119     break;
    5120 
    5121   case 28:
    5122 
    5123 /* Line 1806 of yacc.c  */
    5124 #line 364 "parser.yy"
    5125     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    5126     break;
    5127 
    5128   case 30:
    5129 
    5130 /* Line 1806 of yacc.c  */
    5131 #line 367 "parser.yy"
    5132     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    5133     break;
    5134 
    5135   case 31:
    5136 
    5137 /* Line 1806 of yacc.c  */
    5138 #line 369 "parser.yy"
    5139     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    5140     break;
    5141 
    5142   case 32:
    5143 
    5144 /* Line 1806 of yacc.c  */
    5145 #line 372 "parser.yy"
    5146     { (yyval.en) = 0; }
    5147     break;
    5148 
    5149   case 34:
    5150 
    5151 /* Line 1806 of yacc.c  */
    5152 #line 378 "parser.yy"
    5153     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    5154     break;
    5155 
    5156   case 35:
    5157 
    5158 /* Line 1806 of yacc.c  */
    5159 #line 383 "parser.yy"
    5160     { (yyval.en) = 0; }
    5161     break;
    5162 
    5163   case 37:
    5164 
    5165 /* Line 1806 of yacc.c  */
    5166 #line 386 "parser.yy"
    5167     { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    5168     break;
    5169 
    5170   case 38:
    5171 
    5172 /* Line 1806 of yacc.c  */
    5173 #line 391 "parser.yy"
    5174     { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    5175     break;
    5176 
    5177   case 39:
    5178 
    5179 /* Line 1806 of yacc.c  */
    5180 #line 393 "parser.yy"
    5181     { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
    5182     break;
    5183 
    5184   case 41:
    5185 
    5186 /* Line 1806 of yacc.c  */
    5187 #line 398 "parser.yy"
    5188     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    5189     break;
    5190 
    5191   case 42:
    5192 
    5193 /* Line 1806 of yacc.c  */
    5194 #line 403 "parser.yy"
    5195     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    5196     break;
    5197 
    5198   case 43:
    5199 
    5200 /* Line 1806 of yacc.c  */
    5201 #line 405 "parser.yy"
    5202     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5203     break;
    5204 
    5205   case 44:
    5206 
    5207 /* Line 1806 of yacc.c  */
    5208 #line 407 "parser.yy"
    5209     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    5210     break;
    5211 
    5212   case 45:
    5213 
    5214 /* Line 1806 of yacc.c  */
    5215 #line 409 "parser.yy"
    5216     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5217     break;
    5218 
    5219   case 46:
    5220 
    5221 /* Line 1806 of yacc.c  */
    5222 #line 411 "parser.yy"
    5223     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    5224     break;
    5225 
    52265236  case 48:
    52275237
    52285238/* Line 1806 of yacc.c  */
    5229 #line 417 "parser.yy"
     5239#line 419 "parser.yy"
    52305240    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    52315241    break;
     
    52345244
    52355245/* Line 1806 of yacc.c  */
    5236 #line 419 "parser.yy"
     5246#line 421 "parser.yy"
    52375247    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    52385248    break;
     
    52415251
    52425252/* Line 1806 of yacc.c  */
    5243 #line 421 "parser.yy"
     5253#line 423 "parser.yy"
    52445254    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    52455255    break;
     
    52485258
    52495259/* Line 1806 of yacc.c  */
    5250 #line 423 "parser.yy"
     5260#line 425 "parser.yy"
    52515261    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    52525262    break;
     
    52555265
    52565266/* Line 1806 of yacc.c  */
    5257 #line 425 "parser.yy"
     5267#line 427 "parser.yy"
    52585268    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
    52595269    break;
     
    52625272
    52635273/* Line 1806 of yacc.c  */
    5264 #line 427 "parser.yy"
     5274#line 429 "parser.yy"
    52655275    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
    52665276    break;
     
    52695279
    52705280/* Line 1806 of yacc.c  */
    5271 #line 433 "parser.yy"
     5281#line 435 "parser.yy"
    52725282    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    52735283    break;
     
    52765286
    52775287/* Line 1806 of yacc.c  */
    5278 #line 435 "parser.yy"
     5288#line 437 "parser.yy"
    52795289    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    52805290    break;
     
    52835293
    52845294/* Line 1806 of yacc.c  */
    5285 #line 437 "parser.yy"
     5295#line 439 "parser.yy"
    52865296    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    52875297    break;
     
    52905300
    52915301/* Line 1806 of yacc.c  */
    5292 #line 439 "parser.yy"
     5302#line 441 "parser.yy"
    52935303    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    52945304    break;
     
    52975307
    52985308/* Line 1806 of yacc.c  */
    5299 #line 441 "parser.yy"
     5309#line 443 "parser.yy"
    53005310    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    53015311    break;
     
    53045314
    53055315/* Line 1806 of yacc.c  */
    5306 #line 443 "parser.yy"
     5316#line 445 "parser.yy"
    53075317    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    53085318    break;
     
    53115321
    53125322/* Line 1806 of yacc.c  */
    5313 #line 445 "parser.yy"
     5323#line 447 "parser.yy"
    53145324    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    53155325    break;
     
    53185328
    53195329/* Line 1806 of yacc.c  */
    5320 #line 447 "parser.yy"
     5330#line 449 "parser.yy"
    53215331    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true )); }
    53225332    break;
     
    53255335
    53265336/* Line 1806 of yacc.c  */
    5327 #line 451 "parser.yy"
     5337#line 453 "parser.yy"
    53285338    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    53295339    break;
     
    53325342
    53335343/* Line 1806 of yacc.c  */
    5334 #line 452 "parser.yy"
     5344#line 454 "parser.yy"
    53355345    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    53365346    break;
     
    53395349
    53405350/* Line 1806 of yacc.c  */
    5341 #line 453 "parser.yy"
     5351#line 455 "parser.yy"
    53425352    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    53435353    break;
     
    53465356
    53475357/* Line 1806 of yacc.c  */
    5348 #line 454 "parser.yy"
     5358#line 456 "parser.yy"
    53495359    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    53505360    break;
    53515361
    53525362  case 67:
    5353 
    5354 /* Line 1806 of yacc.c  */
    5355 #line 460 "parser.yy"
    5356     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    5357     break;
    5358 
    5359   case 68:
    53605363
    53615364/* Line 1806 of yacc.c  */
     
    53645367    break;
    53655368
     5369  case 68:
     5370
     5371/* Line 1806 of yacc.c  */
     5372#line 464 "parser.yy"
     5373    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5374    break;
     5375
    53665376  case 70:
    53675377
    53685378/* Line 1806 of yacc.c  */
    5369 #line 468 "parser.yy"
     5379#line 470 "parser.yy"
    53705380    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53715381    break;
     
    53745384
    53755385/* Line 1806 of yacc.c  */
    5376 #line 470 "parser.yy"
     5386#line 472 "parser.yy"
    53775387    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53785388    break;
     
    53815391
    53825392/* Line 1806 of yacc.c  */
    5383 #line 472 "parser.yy"
     5393#line 474 "parser.yy"
    53845394    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53855395    break;
     
    53885398
    53895399/* Line 1806 of yacc.c  */
    5390 #line 478 "parser.yy"
     5400#line 480 "parser.yy"
    53915401    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53925402    break;
     
    53955405
    53965406/* Line 1806 of yacc.c  */
    5397 #line 480 "parser.yy"
     5407#line 482 "parser.yy"
    53985408    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53995409    break;
     
    54025412
    54035413/* Line 1806 of yacc.c  */
    5404 #line 486 "parser.yy"
     5414#line 488 "parser.yy"
    54055415    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54065416    break;
     
    54095419
    54105420/* Line 1806 of yacc.c  */
    5411 #line 488 "parser.yy"
     5421#line 490 "parser.yy"
    54125422    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54135423    break;
     
    54165426
    54175427/* Line 1806 of yacc.c  */
    5418 #line 494 "parser.yy"
     5428#line 496 "parser.yy"
    54195429    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54205430    break;
     
    54235433
    54245434/* Line 1806 of yacc.c  */
    5425 #line 496 "parser.yy"
     5435#line 498 "parser.yy"
    54265436    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54275437    break;
     
    54305440
    54315441/* Line 1806 of yacc.c  */
    5432 #line 498 "parser.yy"
     5442#line 500 "parser.yy"
    54335443    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54345444    break;
     
    54375447
    54385448/* Line 1806 of yacc.c  */
    5439 #line 500 "parser.yy"
     5449#line 502 "parser.yy"
    54405450    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54415451    break;
     
    54445454
    54455455/* Line 1806 of yacc.c  */
    5446 #line 506 "parser.yy"
     5456#line 508 "parser.yy"
    54475457    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54485458    break;
     
    54515461
    54525462/* Line 1806 of yacc.c  */
    5453 #line 508 "parser.yy"
     5463#line 510 "parser.yy"
    54545464    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54555465    break;
     
    54585468
    54595469/* Line 1806 of yacc.c  */
    5460 #line 514 "parser.yy"
     5470#line 516 "parser.yy"
    54615471    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54625472    break;
     
    54655475
    54665476/* Line 1806 of yacc.c  */
    5467 #line 520 "parser.yy"
     5477#line 522 "parser.yy"
    54685478    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54695479    break;
     
    54725482
    54735483/* Line 1806 of yacc.c  */
    5474 #line 526 "parser.yy"
     5484#line 528 "parser.yy"
    54755485    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54765486    break;
     
    54795489
    54805490/* Line 1806 of yacc.c  */
    5481 #line 532 "parser.yy"
     5491#line 534 "parser.yy"
    54825492    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54835493    break;
     
    54865496
    54875497/* Line 1806 of yacc.c  */
    5488 #line 538 "parser.yy"
     5498#line 540 "parser.yy"
    54895499    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54905500    break;
     
    54935503
    54945504/* Line 1806 of yacc.c  */
    5495 #line 544 "parser.yy"
     5505#line 546 "parser.yy"
    54965506    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    54975507    break;
     
    55005510
    55015511/* Line 1806 of yacc.c  */
    5502 #line 546 "parser.yy"
     5512#line 548 "parser.yy"
    55035513    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    55045514    break;
     
    55075517
    55085518/* Line 1806 of yacc.c  */
    5509 #line 548 "parser.yy"
     5519#line 550 "parser.yy"
    55105520    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    55115521    break;
     
    55145524
    55155525/* Line 1806 of yacc.c  */
    5516 #line 559 "parser.yy"
     5526#line 561 "parser.yy"
    55175527    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55185528    break;
     
    55215531
    55225532/* Line 1806 of yacc.c  */
    5523 #line 561 "parser.yy"
     5533#line 563 "parser.yy"
    55245534    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55255535    break;
     
    55285538
    55295539/* Line 1806 of yacc.c  */
    5530 #line 563 "parser.yy"
     5540#line 565 "parser.yy"
    55315541    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    55325542    break;
     
    55355545
    55365546/* Line 1806 of yacc.c  */
    5537 #line 568 "parser.yy"
     5547#line 570 "parser.yy"
    55385548    { (yyval.en) = new NullExprNode; }
    55395549    break;
     
    55425552
    55435553/* Line 1806 of yacc.c  */
    5544 #line 576 "parser.yy"
     5554#line 578 "parser.yy"
    55455555    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    55465556    break;
     
    55495559
    55505560/* Line 1806 of yacc.c  */
    5551 #line 578 "parser.yy"
     5561#line 580 "parser.yy"
    55525562    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    55535563    break;
     
    55565566
    55575567/* Line 1806 of yacc.c  */
    5558 #line 580 "parser.yy"
     5568#line 582 "parser.yy"
    55595569    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    55605570    break;
     
    55635573
    55645574/* Line 1806 of yacc.c  */
    5565 #line 582 "parser.yy"
     5575#line 584 "parser.yy"
    55665576    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    55675577    break;
     
    55705580
    55715581/* Line 1806 of yacc.c  */
    5572 #line 588 "parser.yy"
     5582#line 590 "parser.yy"
    55735583    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    55745584    break;
     
    55775587
    55785588/* Line 1806 of yacc.c  */
    5579 #line 592 "parser.yy"
     5589#line 594 "parser.yy"
    55805590    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    55815591    break;
     
    55845594
    55855595/* Line 1806 of yacc.c  */
    5586 #line 593 "parser.yy"
     5596#line 595 "parser.yy"
    55875597    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    55885598    break;
     
    55915601
    55925602/* Line 1806 of yacc.c  */
    5593 #line 594 "parser.yy"
     5603#line 596 "parser.yy"
    55945604    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    55955605    break;
     
    55985608
    55995609/* Line 1806 of yacc.c  */
    5600 #line 595 "parser.yy"
     5610#line 597 "parser.yy"
    56015611    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    56025612    break;
     
    56055615
    56065616/* Line 1806 of yacc.c  */
    5607 #line 596 "parser.yy"
     5617#line 598 "parser.yy"
    56085618    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    56095619    break;
     
    56125622
    56135623/* Line 1806 of yacc.c  */
    5614 #line 597 "parser.yy"
     5624#line 599 "parser.yy"
    56155625    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    56165626    break;
     
    56195629
    56205630/* Line 1806 of yacc.c  */
    5621 #line 598 "parser.yy"
     5631#line 600 "parser.yy"
    56225632    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    56235633    break;
     
    56265636
    56275637/* Line 1806 of yacc.c  */
    5628 #line 599 "parser.yy"
     5638#line 601 "parser.yy"
    56295639    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    56305640    break;
     
    56335643
    56345644/* Line 1806 of yacc.c  */
    5635 #line 600 "parser.yy"
     5645#line 602 "parser.yy"
    56365646    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    56375647    break;
     
    56405650
    56415651/* Line 1806 of yacc.c  */
    5642 #line 601 "parser.yy"
     5652#line 603 "parser.yy"
    56435653    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    56445654    break;
     
    56475657
    56485658/* Line 1806 of yacc.c  */
    5649 #line 607 "parser.yy"
     5659#line 609 "parser.yy"
    56505660    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56515661    break;
     
    56545664
    56555665/* Line 1806 of yacc.c  */
    5656 #line 612 "parser.yy"
     5666#line 614 "parser.yy"
    56575667    { (yyval.en) = 0; }
    56585668    break;
     
    56615671
    56625672/* Line 1806 of yacc.c  */
    5663 #line 621 "parser.yy"
     5673#line 623 "parser.yy"
    56645674    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56655675    break;
     
    56685678
    56695679/* Line 1806 of yacc.c  */
    5670 #line 631 "parser.yy"
     5680#line 633 "parser.yy"
    56715681    {
    56725682                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56775687
    56785688/* Line 1806 of yacc.c  */
    5679 #line 638 "parser.yy"
     5689#line 640 "parser.yy"
    56805690    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    56815691    break;
     
    56845694
    56855695/* Line 1806 of yacc.c  */
    5686 #line 645 "parser.yy"
     5696#line 647 "parser.yy"
    56875697    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    56885698    break;
     
    56915701
    56925702/* Line 1806 of yacc.c  */
    5693 #line 651 "parser.yy"
     5703#line 653 "parser.yy"
    56945704    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56955705    break;
     
    56985708
    56995709/* Line 1806 of yacc.c  */
    5700 #line 656 "parser.yy"
     5710#line 658 "parser.yy"
    57015711    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57025712    break;
     
    57055715
    57065716/* Line 1806 of yacc.c  */
    5707 #line 658 "parser.yy"
     5717#line 660 "parser.yy"
    57085718    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    57095719    break;
     
    57125722
    57135723/* Line 1806 of yacc.c  */
    5714 #line 660 "parser.yy"
     5724#line 662 "parser.yy"
    57155725    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57165726    break;
     
    57195729
    57205730/* Line 1806 of yacc.c  */
    5721 #line 667 "parser.yy"
     5731#line 669 "parser.yy"
    57225732    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57235733    break;
     
    57265736
    57275737/* Line 1806 of yacc.c  */
    5728 #line 672 "parser.yy"
     5738#line 674 "parser.yy"
    57295739    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    57305740    break;
     
    57335743
    57345744/* Line 1806 of yacc.c  */
    5735 #line 678 "parser.yy"
     5745#line 680 "parser.yy"
    57365746    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57375747    break;
     
    57405750
    57415751/* Line 1806 of yacc.c  */
    5742 #line 680 "parser.yy"
     5752#line 682 "parser.yy"
    57435753    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    57445754    break;
     
    57475757
    57485758/* Line 1806 of yacc.c  */
    5749 #line 682 "parser.yy"
     5759#line 684 "parser.yy"
    57505760    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57515761    break;
     
    57545764
    57555765/* Line 1806 of yacc.c  */
    5756 #line 684 "parser.yy"
     5766#line 686 "parser.yy"
    57575767    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    57585768    break;
     
    57615771
    57625772/* Line 1806 of yacc.c  */
    5763 #line 689 "parser.yy"
     5773#line 691 "parser.yy"
    57645774    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57655775    break;
     
    57685778
    57695779/* Line 1806 of yacc.c  */
    5770 #line 691 "parser.yy"
     5780#line 693 "parser.yy"
    57715781    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    57725782    break;
     
    57755785
    57765786/* Line 1806 of yacc.c  */
    5777 #line 698 "parser.yy"
     5787#line 700 "parser.yy"
    57785788    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57795789    break;
     
    57825792
    57835793/* Line 1806 of yacc.c  */
    5784 #line 700 "parser.yy"
     5794#line 702 "parser.yy"
    57855795    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57865796    break;
     
    57895799
    57905800/* Line 1806 of yacc.c  */
    5791 #line 707 "parser.yy"
     5801#line 709 "parser.yy"
    57925802    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    57935803    break;
     
    57965806
    57975807/* Line 1806 of yacc.c  */
    5798 #line 711 "parser.yy"
     5808#line 713 "parser.yy"
    57995809    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    58005810    break;
     
    58035813
    58045814/* Line 1806 of yacc.c  */
    5805 #line 712 "parser.yy"
     5815#line 714 "parser.yy"
    58065816    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    58075817    break;
     
    58105820
    58115821/* Line 1806 of yacc.c  */
    5812 #line 718 "parser.yy"
     5822#line 720 "parser.yy"
    58135823    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    58145824    break;
     
    58175827
    58185828/* Line 1806 of yacc.c  */
    5819 #line 722 "parser.yy"
     5829#line 724 "parser.yy"
    58205830    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58215831    break;
     
    58245834
    58255835/* Line 1806 of yacc.c  */
    5826 #line 727 "parser.yy"
     5836#line 729 "parser.yy"
    58275837    { (yyval.sn) = 0; }
    58285838    break;
     
    58315841
    58325842/* Line 1806 of yacc.c  */
    5833 #line 733 "parser.yy"
     5843#line 735 "parser.yy"
    58345844    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58355845    break;
     
    58385848
    58395849/* Line 1806 of yacc.c  */
    5840 #line 735 "parser.yy"
     5850#line 737 "parser.yy"
    58415851    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58425852    break;
     
    58455855
    58465856/* Line 1806 of yacc.c  */
    5847 #line 740 "parser.yy"
     5857#line 742 "parser.yy"
    58485858    { (yyval.sn) = 0; }
    58495859    break;
     
    58525862
    58535863/* Line 1806 of yacc.c  */
    5854 #line 746 "parser.yy"
     5864#line 748 "parser.yy"
    58555865    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58565866    break;
     
    58595869
    58605870/* Line 1806 of yacc.c  */
    5861 #line 748 "parser.yy"
     5871#line 750 "parser.yy"
    58625872    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    58635873    break;
     
    58665876
    58675877/* Line 1806 of yacc.c  */
    5868 #line 750 "parser.yy"
     5878#line 752 "parser.yy"
    58695879    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58705880    break;
     
    58735883
    58745884/* Line 1806 of yacc.c  */
    5875 #line 752 "parser.yy"
     5885#line 754 "parser.yy"
    58765886    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
    58775887    break;
     
    58805890
    58815891/* Line 1806 of yacc.c  */
    5882 #line 757 "parser.yy"
     5892#line 759 "parser.yy"
    58835893    { (yyval.sn) = 0; }
    58845894    break;
     
    58875897
    58885898/* Line 1806 of yacc.c  */
    5889 #line 762 "parser.yy"
     5899#line 764 "parser.yy"
    58905900    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    58915901    break;
     
    58945904
    58955905/* Line 1806 of yacc.c  */
    5896 #line 763 "parser.yy"
     5906#line 765 "parser.yy"
    58975907    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    58985908    break;
     
    59015911
    59025912/* Line 1806 of yacc.c  */
    5903 #line 768 "parser.yy"
     5913#line 770 "parser.yy"
    59045914    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    59055915    break;
     
    59085918
    59095919/* Line 1806 of yacc.c  */
    5910 #line 770 "parser.yy"
     5920#line 772 "parser.yy"
    59115921    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    59125922    break;
     
    59155925
    59165926/* Line 1806 of yacc.c  */
    5917 #line 772 "parser.yy"
     5927#line 774 "parser.yy"
    59185928    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    59195929    break;
     
    59225932
    59235933/* Line 1806 of yacc.c  */
    5924 #line 777 "parser.yy"
     5934#line 779 "parser.yy"
    59255935    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59265936    break;
     
    59295939
    59305940/* Line 1806 of yacc.c  */
    5931 #line 779 "parser.yy"
     5941#line 781 "parser.yy"
    59325942    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59335943    break;
     
    59365946
    59375947/* Line 1806 of yacc.c  */
    5938 #line 784 "parser.yy"
     5948#line 786 "parser.yy"
    59395949    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    59405950    break;
     
    59435953
    59445954/* Line 1806 of yacc.c  */
    5945 #line 788 "parser.yy"
     5955#line 790 "parser.yy"
    59465956    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    59475957    break;
     
    59505960
    59515961/* Line 1806 of yacc.c  */
    5952 #line 791 "parser.yy"
     5962#line 793 "parser.yy"
    59535963    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    59545964    break;
     
    59575967
    59585968/* Line 1806 of yacc.c  */
    5959 #line 795 "parser.yy"
     5969#line 797 "parser.yy"
    59605970    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    59615971    break;
     
    59645974
    59655975/* Line 1806 of yacc.c  */
    5966 #line 798 "parser.yy"
     5976#line 800 "parser.yy"
    59675977    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    59685978    break;
     
    59715981
    59725982/* Line 1806 of yacc.c  */
    5973 #line 802 "parser.yy"
     5983#line 804 "parser.yy"
    59745984    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    59755985    break;
     
    59785988
    59795989/* Line 1806 of yacc.c  */
    5980 #line 804 "parser.yy"
     5990#line 806 "parser.yy"
    59815991    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    59825992    break;
     
    59855995
    59865996/* Line 1806 of yacc.c  */
    5987 #line 806 "parser.yy"
     5997#line 808 "parser.yy"
    59885998    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    59895999    break;
     
    59926002
    59936003/* Line 1806 of yacc.c  */
    5994 #line 808 "parser.yy"
     6004#line 810 "parser.yy"
    59956005    { (yyval.sn) = new StatementNode( StatementNode::Throw ); }
    59966006    break;
    59976007
    59986008  case 192:
    5999 
    6000 /* Line 1806 of yacc.c  */
    6001 #line 813 "parser.yy"
    6002     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6003     break;
    6004 
    6005   case 193:
    60066009
    60076010/* Line 1806 of yacc.c  */
     
    60106013    break;
    60116014
     6015  case 193:
     6016
     6017/* Line 1806 of yacc.c  */
     6018#line 817 "parser.yy"
     6019    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
     6020    break;
     6021
    60126022  case 194:
    60136023
    60146024/* Line 1806 of yacc.c  */
    6015 #line 817 "parser.yy"
     6025#line 819 "parser.yy"
    60166026    {
    60176027                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    60236033
    60246034/* Line 1806 of yacc.c  */
    6025 #line 828 "parser.yy"
     6035#line 830 "parser.yy"
    60266036    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60276037    break;
     
    60306040
    60316041/* Line 1806 of yacc.c  */
    6032 #line 830 "parser.yy"
     6042#line 832 "parser.yy"
    60336043    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60346044    break;
     
    60376047
    60386048/* Line 1806 of yacc.c  */
    6039 #line 835 "parser.yy"
     6049#line 837 "parser.yy"
    60406050    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60416051    break;
     
    60446054
    60456055/* Line 1806 of yacc.c  */
    6046 #line 837 "parser.yy"
     6056#line 839 "parser.yy"
    60476057    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60486058    break;
     
    60516061
    60526062/* Line 1806 of yacc.c  */
    6053 #line 842 "parser.yy"
     6063#line 844 "parser.yy"
    60546064    {
    60556065                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    60616071
    60626072/* Line 1806 of yacc.c  */
    6063 #line 856 "parser.yy"
     6073#line 858 "parser.yy"
    60646074    {
    60656075                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60716081
    60726082/* Line 1806 of yacc.c  */
    6073 #line 861 "parser.yy"
     6083#line 863 "parser.yy"
    60746084    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    60756085    break;
     
    60786088
    60796089/* Line 1806 of yacc.c  */
    6080 #line 863 "parser.yy"
     6090#line 865 "parser.yy"
    60816091    {
    60826092                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60886098
    60896099/* Line 1806 of yacc.c  */
    6090 #line 872 "parser.yy"
     6100#line 874 "parser.yy"
    60916101    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    60926102    break;
     
    60956105
    60966106/* Line 1806 of yacc.c  */
    6097 #line 874 "parser.yy"
     6107#line 876 "parser.yy"
    60986108    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    60996109    break;
     
    61026112
    61036113/* Line 1806 of yacc.c  */
    6104 #line 876 "parser.yy"
     6114#line 878 "parser.yy"
    61056115    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    61066116    break;
     
    61096119
    61106120/* Line 1806 of yacc.c  */
    6111 #line 878 "parser.yy"
     6121#line 880 "parser.yy"
    61126122    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    61136123    break;
     
    61166126
    61176127/* Line 1806 of yacc.c  */
    6118 #line 880 "parser.yy"
     6128#line 882 "parser.yy"
    61196129    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    61206130    break;
     
    61236133
    61246134/* Line 1806 of yacc.c  */
    6125 #line 885 "parser.yy"
     6135#line 887 "parser.yy"
    61266136    { (yyval.flag) = false; }
    61276137    break;
     
    61306140
    61316141/* Line 1806 of yacc.c  */
    6132 #line 887 "parser.yy"
     6142#line 889 "parser.yy"
    61336143    { (yyval.flag) = true; }
    61346144    break;
     
    61376147
    61386148/* Line 1806 of yacc.c  */
    6139 #line 892 "parser.yy"
     6149#line 894 "parser.yy"
    61406150    { (yyval.en) = 0; }
    61416151    break;
     
    61446154
    61456155/* Line 1806 of yacc.c  */
    6146 #line 899 "parser.yy"
     6156#line 901 "parser.yy"
    61476157    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    61486158    break;
     
    61516161
    61526162/* Line 1806 of yacc.c  */
    6153 #line 904 "parser.yy"
     6163#line 906 "parser.yy"
    61546164    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    61556165    break;
     
    61586168
    61596169/* Line 1806 of yacc.c  */
    6160 #line 906 "parser.yy"
     6170#line 908 "parser.yy"
    61616171    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    61626172    break;
     
    61656175
    61666176/* Line 1806 of yacc.c  */
    6167 #line 911 "parser.yy"
     6177#line 913 "parser.yy"
    61686178    { (yyval.constant) = 0; }
    61696179    break;
     
    61726182
    61736183/* Line 1806 of yacc.c  */
    6174 #line 913 "parser.yy"
     6184#line 915 "parser.yy"
    61756185    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    61766186    break;
     
    61796189
    61806190/* Line 1806 of yacc.c  */
    6181 #line 915 "parser.yy"
     6191#line 917 "parser.yy"
    61826192    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    61836193    break;
     
    61866196
    61876197/* Line 1806 of yacc.c  */
    6188 #line 920 "parser.yy"
     6198#line 922 "parser.yy"
    61896199    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    61906200    break;
     
    61936203
    61946204/* Line 1806 of yacc.c  */
    6195 #line 922 "parser.yy"
     6205#line 924 "parser.yy"
    61966206    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    61976207    break;
     
    62006210
    62016211/* Line 1806 of yacc.c  */
    6202 #line 929 "parser.yy"
     6212#line 931 "parser.yy"
    62036213    { (yyval.decl) = 0; }
    62046214    break;
     
    62076217
    62086218/* Line 1806 of yacc.c  */
    6209 #line 936 "parser.yy"
     6219#line 938 "parser.yy"
    62106220    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62116221    break;
     
    62146224
    62156225/* Line 1806 of yacc.c  */
    6216 #line 941 "parser.yy"
     6226#line 943 "parser.yy"
    62176227    { (yyval.decl) = 0; }
    62186228    break;
     
    62216231
    62226232/* Line 1806 of yacc.c  */
    6223 #line 948 "parser.yy"
     6233#line 950 "parser.yy"
    62246234    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62256235    break;
     
    62286238
    62296239/* Line 1806 of yacc.c  */
    6230 #line 962 "parser.yy"
     6240#line 964 "parser.yy"
    62316241    {}
    62326242    break;
     
    62356245
    62366246/* Line 1806 of yacc.c  */
    6237 #line 963 "parser.yy"
     6247#line 965 "parser.yy"
    62386248    {}
    62396249    break;
     
    62426252
    62436253/* Line 1806 of yacc.c  */
    6244 #line 992 "parser.yy"
     6254#line 994 "parser.yy"
    62456255    {
    62466256                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62526262
    62536263/* Line 1806 of yacc.c  */
    6254 #line 999 "parser.yy"
     6264#line 1001 "parser.yy"
    62556265    {
    62566266                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62626272
    62636273/* Line 1806 of yacc.c  */
    6264 #line 1004 "parser.yy"
     6274#line 1006 "parser.yy"
    62656275    {
    62666276                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    62726282
    62736283/* Line 1806 of yacc.c  */
    6274 #line 1014 "parser.yy"
     6284#line 1016 "parser.yy"
    62756285    {
    62766286                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62826292
    62836293/* Line 1806 of yacc.c  */
    6284 #line 1019 "parser.yy"
     6294#line 1021 "parser.yy"
    62856295    {
    62866296                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62926302
    62936303/* Line 1806 of yacc.c  */
    6294 #line 1024 "parser.yy"
     6304#line 1026 "parser.yy"
    62956305    {
    62966306                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63026312
    63036313/* Line 1806 of yacc.c  */
    6304 #line 1032 "parser.yy"
     6314#line 1034 "parser.yy"
    63056315    {
    63066316                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63126322
    63136323/* Line 1806 of yacc.c  */
    6314 #line 1037 "parser.yy"
     6324#line 1039 "parser.yy"
    63156325    {
    63166326                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63226332
    63236333/* Line 1806 of yacc.c  */
    6324 #line 1042 "parser.yy"
     6334#line 1044 "parser.yy"
    63256335    {
    63266336                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63326342
    63336343/* Line 1806 of yacc.c  */
    6334 #line 1047 "parser.yy"
     6344#line 1049 "parser.yy"
    63356345    {
    63366346                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63426352
    63436353/* Line 1806 of yacc.c  */
    6344 #line 1052 "parser.yy"
     6354#line 1054 "parser.yy"
    63456355    {
    63466356                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63526362
    63536363/* Line 1806 of yacc.c  */
    6354 #line 1060 "parser.yy"
     6364#line 1062 "parser.yy"
    63556365    {
    63566366                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    63616371
    63626372/* Line 1806 of yacc.c  */
    6363 #line 1083 "parser.yy"
     6373#line 1085 "parser.yy"
    63646374    {
    63656375                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63706380
    63716381/* Line 1806 of yacc.c  */
    6372 #line 1087 "parser.yy"
     6382#line 1089 "parser.yy"
    63736383    {
    63746384                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63796389
    63806390/* Line 1806 of yacc.c  */
    6381 #line 1094 "parser.yy"
     6391#line 1096 "parser.yy"
    63826392    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    63836393    break;
     
    63866396
    63876397/* Line 1806 of yacc.c  */
    6388 #line 1098 "parser.yy"
     6398#line 1100 "parser.yy"
    63896399    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    63906400    break;
     
    63936403
    63946404/* Line 1806 of yacc.c  */
    6395 #line 1103 "parser.yy"
     6405#line 1105 "parser.yy"
    63966406    {
    63976407                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64036413
    64046414/* Line 1806 of yacc.c  */
    6405 #line 1108 "parser.yy"
     6415#line 1110 "parser.yy"
    64066416    {
    64076417                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64136423
    64146424/* Line 1806 of yacc.c  */
    6415 #line 1113 "parser.yy"
     6425#line 1115 "parser.yy"
    64166426    {
    64176427                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64236433
    64246434/* Line 1806 of yacc.c  */
    6425 #line 1124 "parser.yy"
     6435#line 1126 "parser.yy"
    64266436    {
    64276437                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64336443
    64346444/* Line 1806 of yacc.c  */
    6435 #line 1129 "parser.yy"
     6445#line 1131 "parser.yy"
    64366446    {
    64376447                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64436453
    64446454/* Line 1806 of yacc.c  */
    6445 #line 1134 "parser.yy"
     6455#line 1136 "parser.yy"
    64466456    {
    64476457                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64536463
    64546464/* Line 1806 of yacc.c  */
    6455 #line 1139 "parser.yy"
     6465#line 1141 "parser.yy"
    64566466    {
    64576467                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64636473
    64646474/* Line 1806 of yacc.c  */
    6465 #line 1144 "parser.yy"
     6475#line 1146 "parser.yy"
    64666476    {
    64676477                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64736483
    64746484/* Line 1806 of yacc.c  */
    6475 #line 1153 "parser.yy"
     6485#line 1155 "parser.yy"
    64766486    {
    64776487                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    64836493
    64846494/* Line 1806 of yacc.c  */
    6485 #line 1158 "parser.yy"
     6495#line 1160 "parser.yy"
    64866496    {
    64876497                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    64936503
    64946504/* Line 1806 of yacc.c  */
    6495 #line 1175 "parser.yy"
     6505#line 1177 "parser.yy"
    64966506    {
    64976507                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65036513
    65046514/* Line 1806 of yacc.c  */
    6505 #line 1180 "parser.yy"
     6515#line 1182 "parser.yy"
    65066516    {
    65076517                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65136523
    65146524/* Line 1806 of yacc.c  */
    6515 #line 1202 "parser.yy"
     6525#line 1204 "parser.yy"
    65166526    { (yyval.decl) = 0; }
    65176527    break;
     
    65206530
    65216531/* Line 1806 of yacc.c  */
    6522 #line 1214 "parser.yy"
     6532#line 1216 "parser.yy"
    65236533    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65246534    break;
     
    65276537
    65286538/* Line 1806 of yacc.c  */
    6529 #line 1225 "parser.yy"
     6539#line 1227 "parser.yy"
    65306540    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65316541    break;
     
    65346544
    65356545/* Line 1806 of yacc.c  */
    6536 #line 1227 "parser.yy"
     6546#line 1229 "parser.yy"
    65376547    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    65386548    break;
     
    65416551
    65426552/* Line 1806 of yacc.c  */
    6543 #line 1229 "parser.yy"
     6553#line 1231 "parser.yy"
    65446554    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    65456555    break;
     
    65486558
    65496559/* Line 1806 of yacc.c  */
    6550 #line 1231 "parser.yy"
     6560#line 1233 "parser.yy"
    65516561    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    65526562    break;
     
    65556565
    65566566/* Line 1806 of yacc.c  */
    6557 #line 1233 "parser.yy"
     6567#line 1235 "parser.yy"
    65586568    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    65596569    break;
     
    65626572
    65636573/* Line 1806 of yacc.c  */
    6564 #line 1235 "parser.yy"
     6574#line 1237 "parser.yy"
    65656575    {
    65666576                        typedefTable.enterScope();
     
    65716581
    65726582/* Line 1806 of yacc.c  */
    6573 #line 1239 "parser.yy"
     6583#line 1241 "parser.yy"
    65746584    {
    65756585                        typedefTable.leaveScope();
     
    65816591
    65826592/* Line 1806 of yacc.c  */
    6583 #line 1248 "parser.yy"
     6593#line 1250 "parser.yy"
    65846594    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65856595    break;
     
    65886598
    65896599/* Line 1806 of yacc.c  */
    6590 #line 1250 "parser.yy"
     6600#line 1252 "parser.yy"
    65916601    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    65926602    break;
     
    65956605
    65966606/* Line 1806 of yacc.c  */
    6597 #line 1261 "parser.yy"
     6607#line 1263 "parser.yy"
    65986608    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65996609    break;
     
    66026612
    66036613/* Line 1806 of yacc.c  */
    6604 #line 1270 "parser.yy"
     6614#line 1272 "parser.yy"
    66056615    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66066616    break;
     
    66096619
    66106620/* Line 1806 of yacc.c  */
    6611 #line 1272 "parser.yy"
     6621#line 1274 "parser.yy"
    66126622    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66136623    break;
     
    66166626
    66176627/* Line 1806 of yacc.c  */
    6618 #line 1274 "parser.yy"
     6628#line 1276 "parser.yy"
    66196629    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66206630    break;
     
    66236633
    66246634/* Line 1806 of yacc.c  */
    6625 #line 1276 "parser.yy"
     6635#line 1278 "parser.yy"
    66266636    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66276637    break;
     
    66306640
    66316641/* Line 1806 of yacc.c  */
    6632 #line 1278 "parser.yy"
     6642#line 1280 "parser.yy"
    66336643    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    66346644    break;
     
    66376647
    66386648/* Line 1806 of yacc.c  */
    6639 #line 1280 "parser.yy"
     6649#line 1282 "parser.yy"
    66406650    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    66416651    break;
     
    66446654
    66456655/* Line 1806 of yacc.c  */
    6646 #line 1282 "parser.yy"
     6656#line 1284 "parser.yy"
    66476657    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    66486658    break;
     
    66516661
    66526662/* Line 1806 of yacc.c  */
    6653 #line 1284 "parser.yy"
     6663#line 1286 "parser.yy"
    66546664    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    66556665    break;
     
    66586668
    66596669/* Line 1806 of yacc.c  */
    6660 #line 1289 "parser.yy"
     6670#line 1291 "parser.yy"
    66616671    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    66626672    break;
     
    66656675
    66666676/* Line 1806 of yacc.c  */
    6667 #line 1291 "parser.yy"
     6677#line 1293 "parser.yy"
    66686678    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    66696679    break;
     
    66726682
    66736683/* Line 1806 of yacc.c  */
    6674 #line 1293 "parser.yy"
     6684#line 1295 "parser.yy"
    66756685    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    66766686    break;
     
    66796689
    66806690/* Line 1806 of yacc.c  */
    6681 #line 1295 "parser.yy"
     6691#line 1297 "parser.yy"
    66826692    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    66836693    break;
     
    66866696
    66876697/* Line 1806 of yacc.c  */
    6688 #line 1297 "parser.yy"
     6698#line 1299 "parser.yy"
    66896699    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    66906700    break;
     
    66936703
    66946704/* Line 1806 of yacc.c  */
    6695 #line 1299 "parser.yy"
     6705#line 1301 "parser.yy"
    66966706    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    66976707    break;
     
    67006710
    67016711/* Line 1806 of yacc.c  */
    6702 #line 1301 "parser.yy"
     6712#line 1303 "parser.yy"
    67036713    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    67046714    break;
     
    67076717
    67086718/* Line 1806 of yacc.c  */
    6709 #line 1303 "parser.yy"
     6719#line 1305 "parser.yy"
    67106720    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    67116721    break;
     
    67146724
    67156725/* Line 1806 of yacc.c  */
    6716 #line 1305 "parser.yy"
     6726#line 1307 "parser.yy"
    67176727    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67186728    break;
     
    67216731
    67226732/* Line 1806 of yacc.c  */
    6723 #line 1307 "parser.yy"
     6733#line 1309 "parser.yy"
    67246734    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67256735    break;
     
    67286738
    67296739/* Line 1806 of yacc.c  */
    6730 #line 1309 "parser.yy"
     6740#line 1311 "parser.yy"
    67316741    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    67326742    break;
     
    67356745
    67366746/* Line 1806 of yacc.c  */
    6737 #line 1311 "parser.yy"
     6747#line 1313 "parser.yy"
    67386748    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    67396749    break;
     
    67426752
    67436753/* Line 1806 of yacc.c  */
    6744 #line 1318 "parser.yy"
     6754#line 1320 "parser.yy"
    67456755    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67466756    break;
     
    67496759
    67506760/* Line 1806 of yacc.c  */
    6751 #line 1320 "parser.yy"
     6761#line 1322 "parser.yy"
    67526762    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67536763    break;
     
    67566766
    67576767/* Line 1806 of yacc.c  */
    6758 #line 1322 "parser.yy"
     6768#line 1324 "parser.yy"
    67596769    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67606770    break;
     
    67636773
    67646774/* Line 1806 of yacc.c  */
    6765 #line 1324 "parser.yy"
     6775#line 1326 "parser.yy"
    67666776    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    67676777    break;
     
    67706780
    67716781/* Line 1806 of yacc.c  */
    6772 #line 1330 "parser.yy"
     6782#line 1332 "parser.yy"
    67736783    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67746784    break;
     
    67776787
    67786788/* Line 1806 of yacc.c  */
    6779 #line 1337 "parser.yy"
     6789#line 1339 "parser.yy"
    67806790    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67816791    break;
     
    67846794
    67856795/* Line 1806 of yacc.c  */
    6786 #line 1339 "parser.yy"
     6796#line 1341 "parser.yy"
    67876797    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67886798    break;
     
    67916801
    67926802/* Line 1806 of yacc.c  */
    6793 #line 1341 "parser.yy"
     6803#line 1343 "parser.yy"
    67946804    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    67956805    break;
     
    67986808
    67996809/* Line 1806 of yacc.c  */
    6800 #line 1346 "parser.yy"
     6810#line 1348 "parser.yy"
    68016811    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68026812    break;
     
    68056815
    68066816/* Line 1806 of yacc.c  */
    6807 #line 1348 "parser.yy"
     6817#line 1350 "parser.yy"
    68086818    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    68096819    break;
     
    68126822
    68136823/* Line 1806 of yacc.c  */
    6814 #line 1350 "parser.yy"
     6824#line 1352 "parser.yy"
    68156825    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    68166826    break;
     
    68196829
    68206830/* Line 1806 of yacc.c  */
    6821 #line 1352 "parser.yy"
     6831#line 1354 "parser.yy"
    68226832    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    68236833    break;
     
    68266836
    68276837/* Line 1806 of yacc.c  */
    6828 #line 1358 "parser.yy"
     6838#line 1360 "parser.yy"
    68296839    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68306840    break;
     
    68336843
    68346844/* Line 1806 of yacc.c  */
    6835 #line 1360 "parser.yy"
     6845#line 1362 "parser.yy"
    68366846    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68376847    break;
     
    68406850
    68416851/* Line 1806 of yacc.c  */
    6842 #line 1362 "parser.yy"
     6852#line 1364 "parser.yy"
    68436853    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68446854    break;
     
    68476857
    68486858/* Line 1806 of yacc.c  */
    6849 #line 1368 "parser.yy"
     6859#line 1370 "parser.yy"
    68506860    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68516861    break;
     
    68546864
    68556865/* Line 1806 of yacc.c  */
    6856 #line 1370 "parser.yy"
     6866#line 1372 "parser.yy"
    68576867    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68586868    break;
     
    68616871
    68626872/* Line 1806 of yacc.c  */
    6863 #line 1376 "parser.yy"
     6873#line 1378 "parser.yy"
    68646874    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68656875    break;
     
    68686878
    68696879/* Line 1806 of yacc.c  */
    6870 #line 1378 "parser.yy"
     6880#line 1380 "parser.yy"
    68716881    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68726882    break;
     
    68756885
    68766886/* Line 1806 of yacc.c  */
    6877 #line 1380 "parser.yy"
     6887#line 1382 "parser.yy"
    68786888    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68796889    break;
     
    68826892
    68836893/* Line 1806 of yacc.c  */
    6884 #line 1385 "parser.yy"
     6894#line 1387 "parser.yy"
    68856895    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    68866896    break;
     
    68896899
    68906900/* Line 1806 of yacc.c  */
    6891 #line 1387 "parser.yy"
     6901#line 1389 "parser.yy"
    68926902    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68936903    break;
     
    68966906
    68976907/* Line 1806 of yacc.c  */
    6898 #line 1389 "parser.yy"
     6908#line 1391 "parser.yy"
    68996909    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69006910    break;
     
    69036913
    69046914/* Line 1806 of yacc.c  */
    6905 #line 1399 "parser.yy"
     6915#line 1401 "parser.yy"
    69066916    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    69076917    break;
     
    69106920
    69116921/* Line 1806 of yacc.c  */
    6912 #line 1401 "parser.yy"
     6922#line 1403 "parser.yy"
    69136923    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    69146924    break;
     
    69176927
    69186928/* Line 1806 of yacc.c  */
    6919 #line 1403 "parser.yy"
     6929#line 1405 "parser.yy"
    69206930    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    69216931    break;
     
    69246934
    69256935/* Line 1806 of yacc.c  */
    6926 #line 1405 "parser.yy"
     6936#line 1407 "parser.yy"
    69276937    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    69286938    break;
     
    69316941
    69326942/* Line 1806 of yacc.c  */
    6933 #line 1407 "parser.yy"
     6943#line 1409 "parser.yy"
    69346944    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69356945    break;
     
    69386948
    69396949/* Line 1806 of yacc.c  */
    6940 #line 1412 "parser.yy"
     6950#line 1414 "parser.yy"
    69416951    { (yyval.aggKey) = DeclarationNode::Struct; }
    69426952    break;
     
    69456955
    69466956/* Line 1806 of yacc.c  */
    6947 #line 1414 "parser.yy"
     6957#line 1416 "parser.yy"
    69486958    { (yyval.aggKey) = DeclarationNode::Union; }
    69496959    break;
     
    69526962
    69536963/* Line 1806 of yacc.c  */
    6954 #line 1419 "parser.yy"
     6964#line 1421 "parser.yy"
    69556965    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    69566966    break;
     
    69596969
    69606970/* Line 1806 of yacc.c  */
    6961 #line 1421 "parser.yy"
     6971#line 1423 "parser.yy"
    69626972    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    69636973    break;
     
    69666976
    69676977/* Line 1806 of yacc.c  */
    6968 #line 1427 "parser.yy"
     6978#line 1429 "parser.yy"
    69696979    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    69706980    break;
     
    69736983
    69746984/* Line 1806 of yacc.c  */
    6975 #line 1430 "parser.yy"
     6985#line 1432 "parser.yy"
    69766986    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    69776987    break;
     
    69806990
    69816991/* Line 1806 of yacc.c  */
    6982 #line 1436 "parser.yy"
     6992#line 1438 "parser.yy"
    69836993    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    69846994    break;
     
    69876997
    69886998/* Line 1806 of yacc.c  */
    6989 #line 1438 "parser.yy"
     6999#line 1440 "parser.yy"
    69907000    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    69917001    break;
     
    69947004
    69957005/* Line 1806 of yacc.c  */
    6996 #line 1440 "parser.yy"
     7006#line 1442 "parser.yy"
    69977007    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    69987008    break;
     
    70017011
    70027012/* Line 1806 of yacc.c  */
    7003 #line 1445 "parser.yy"
     7013#line 1447 "parser.yy"
    70047014    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70057015    break;
     
    70087018
    70097019/* Line 1806 of yacc.c  */
    7010 #line 1447 "parser.yy"
     7020#line 1449 "parser.yy"
    70117021    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70127022    break;
     
    70157025
    70167026/* Line 1806 of yacc.c  */
    7017 #line 1452 "parser.yy"
     7027#line 1454 "parser.yy"
    70187028    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70197029    break;
     
    70227032
    70237033/* Line 1806 of yacc.c  */
    7024 #line 1454 "parser.yy"
     7034#line 1456 "parser.yy"
    70257035    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70267036    break;
     
    70297039
    70307040/* Line 1806 of yacc.c  */
    7031 #line 1457 "parser.yy"
     7041#line 1459 "parser.yy"
    70327042    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70337043    break;
     
    70367046
    70377047/* Line 1806 of yacc.c  */
    7038 #line 1460 "parser.yy"
     7048#line 1462 "parser.yy"
    70397049    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70407050    break;
     
    70437053
    70447054/* Line 1806 of yacc.c  */
    7045 #line 1466 "parser.yy"
     7055#line 1468 "parser.yy"
    70467056    { (yyval.en) = 0; }
    70477057    break;
     
    70507060
    70517061/* Line 1806 of yacc.c  */
    7052 #line 1468 "parser.yy"
     7062#line 1470 "parser.yy"
    70537063    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    70547064    break;
     
    70577067
    70587068/* Line 1806 of yacc.c  */
    7059 #line 1473 "parser.yy"
     7069#line 1475 "parser.yy"
    70607070    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70617071    break;
     
    70647074
    70657075/* Line 1806 of yacc.c  */
    7066 #line 1482 "parser.yy"
     7076#line 1484 "parser.yy"
    70677077    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    70687078    break;
     
    70717081
    70727082/* Line 1806 of yacc.c  */
    7073 #line 1484 "parser.yy"
     7083#line 1486 "parser.yy"
    70747084    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    70757085    break;
     
    70787088
    70797089/* Line 1806 of yacc.c  */
    7080 #line 1486 "parser.yy"
     7090#line 1488 "parser.yy"
    70817091    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    70827092    break;
     
    70857095
    70867096/* Line 1806 of yacc.c  */
    7087 #line 1491 "parser.yy"
     7097#line 1493 "parser.yy"
    70887098    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    70897099    break;
     
    70927102
    70937103/* Line 1806 of yacc.c  */
    7094 #line 1493 "parser.yy"
     7104#line 1495 "parser.yy"
    70957105    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    70967106    break;
     
    70997109
    71007110/* Line 1806 of yacc.c  */
    7101 #line 1498 "parser.yy"
     7111#line 1500 "parser.yy"
    71027112    { (yyval.en) = 0; }
    71037113    break;
     
    71067116
    71077117/* Line 1806 of yacc.c  */
    7108 #line 1500 "parser.yy"
     7118#line 1502 "parser.yy"
    71097119    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71107120    break;
     
    71137123
    71147124/* Line 1806 of yacc.c  */
    7115 #line 1507 "parser.yy"
     7125#line 1509 "parser.yy"
    71167126    { (yyval.decl) = 0; }
    71177127    break;
     
    71207130
    71217131/* Line 1806 of yacc.c  */
    7122 #line 1515 "parser.yy"
     7132#line 1517 "parser.yy"
    71237133    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71247134    break;
    71257135
    71267136  case 395:
    7127 
    7128 /* Line 1806 of yacc.c  */
    7129 #line 1517 "parser.yy"
    7130     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7131     break;
    7132 
    7133   case 396:
    71347137
    71357138/* Line 1806 of yacc.c  */
     
    71387141    break;
    71397142
     7143  case 396:
     7144
     7145/* Line 1806 of yacc.c  */
     7146#line 1521 "parser.yy"
     7147    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7148    break;
     7149
    71407150  case 398:
    7141 
    7142 /* Line 1806 of yacc.c  */
    7143 #line 1527 "parser.yy"
    7144     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7145     break;
    7146 
    7147   case 399:
    71487151
    71497152/* Line 1806 of yacc.c  */
     
    71527155    break;
    71537156
     7157  case 399:
     7158
     7159/* Line 1806 of yacc.c  */
     7160#line 1531 "parser.yy"
     7161    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7162    break;
     7163
    71547164  case 400:
    71557165
    71567166/* Line 1806 of yacc.c  */
    7157 #line 1531 "parser.yy"
     7167#line 1533 "parser.yy"
    71587168    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    71597169    break;
     
    71627172
    71637173/* Line 1806 of yacc.c  */
    7164 #line 1537 "parser.yy"
     7174#line 1539 "parser.yy"
    71657175    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71667176    break;
     
    71697179
    71707180/* Line 1806 of yacc.c  */
    7171 #line 1542 "parser.yy"
     7181#line 1544 "parser.yy"
    71727182    { (yyval.decl) = 0; }
    71737183    break;
     
    71767186
    71777187/* Line 1806 of yacc.c  */
    7178 #line 1549 "parser.yy"
     7188#line 1551 "parser.yy"
    71797189    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    71807190    break;
    71817191
    71827192  case 409:
    7183 
    7184 /* Line 1806 of yacc.c  */
    7185 #line 1556 "parser.yy"
    7186     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7187     break;
    7188 
    7189   case 410:
    71907193
    71917194/* Line 1806 of yacc.c  */
     
    71947197    break;
    71957198
     7199  case 410:
     7200
     7201/* Line 1806 of yacc.c  */
     7202#line 1560 "parser.yy"
     7203    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7204    break;
     7205
    71967206  case 412:
    71977207
    71987208/* Line 1806 of yacc.c  */
    7199 #line 1567 "parser.yy"
     7209#line 1569 "parser.yy"
    72007210    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72017211    break;
     
    72047214
    72057215/* Line 1806 of yacc.c  */
    7206 #line 1570 "parser.yy"
     7216#line 1572 "parser.yy"
    72077217    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72087218    break;
     
    72117221
    72127222/* Line 1806 of yacc.c  */
    7213 #line 1572 "parser.yy"
     7223#line 1574 "parser.yy"
    72147224    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72157225    break;
     
    72187228
    72197229/* Line 1806 of yacc.c  */
    7220 #line 1582 "parser.yy"
     7230#line 1584 "parser.yy"
    72217231    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72227232    break;
     
    72257235
    72267236/* Line 1806 of yacc.c  */
    7227 #line 1588 "parser.yy"
     7237#line 1590 "parser.yy"
    72287238    {
    72297239                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72357245
    72367246/* Line 1806 of yacc.c  */
    7237 #line 1593 "parser.yy"
     7247#line 1595 "parser.yy"
    72387248    {
    72397249                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72457255
    72467256/* Line 1806 of yacc.c  */
    7247 #line 1602 "parser.yy"
     7257#line 1604 "parser.yy"
    72487258    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72497259    break;
     
    72527262
    72537263/* Line 1806 of yacc.c  */
    7254 #line 1611 "parser.yy"
     7264#line 1613 "parser.yy"
    72557265    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    72567266    break;
     
    72597269
    72607270/* Line 1806 of yacc.c  */
    7261 #line 1613 "parser.yy"
     7271#line 1615 "parser.yy"
    72627272    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    72637273    break;
     
    72667276
    72677277/* Line 1806 of yacc.c  */
    7268 #line 1638 "parser.yy"
     7278#line 1640 "parser.yy"
    72697279    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72707280    break;
     
    72737283
    72747284/* Line 1806 of yacc.c  */
    7275 #line 1646 "parser.yy"
     7285#line 1648 "parser.yy"
    72767286    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72777287    break;
     
    72807290
    72817291/* Line 1806 of yacc.c  */
    7282 #line 1651 "parser.yy"
     7292#line 1653 "parser.yy"
    72837293    { (yyval.in) = 0; }
    72847294    break;
     
    72877297
    72887298/* Line 1806 of yacc.c  */
    7289 #line 1653 "parser.yy"
     7299#line 1655 "parser.yy"
    72907300    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    72917301    break;
     
    72947304
    72957305/* Line 1806 of yacc.c  */
    7296 #line 1657 "parser.yy"
     7306#line 1659 "parser.yy"
    72977307    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    72987308    break;
     
    73017311
    73027312/* Line 1806 of yacc.c  */
    7303 #line 1658 "parser.yy"
     7313#line 1660 "parser.yy"
    73047314    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    73057315    break;
     
    73087318
    73097319/* Line 1806 of yacc.c  */
    7310 #line 1663 "parser.yy"
     7320#line 1665 "parser.yy"
    73117321    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    73127322    break;
     
    73157325
    73167326/* Line 1806 of yacc.c  */
    7317 #line 1664 "parser.yy"
     7327#line 1666 "parser.yy"
    73187328    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    73197329    break;
     
    73227332
    73237333/* Line 1806 of yacc.c  */
    7324 #line 1666 "parser.yy"
     7334#line 1668 "parser.yy"
    73257335    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    73267336    break;
     
    73297339
    73307340/* Line 1806 of yacc.c  */
    7331 #line 1682 "parser.yy"
     7341#line 1684 "parser.yy"
    73327342    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    73337343    break;
     
    73367346
    73377347/* Line 1806 of yacc.c  */
    7338 #line 1688 "parser.yy"
     7348#line 1690 "parser.yy"
    73397349    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    73407350    break;
     
    73437353
    73447354/* Line 1806 of yacc.c  */
    7345 #line 1694 "parser.yy"
    7346     { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
     7355#line 1697 "parser.yy"
     7356    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    73477357    break;
    73487358
     
    73507360
    73517361/* Line 1806 of yacc.c  */
    7352 #line 1697 "parser.yy"
    7353     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7362#line 1699 "parser.yy"
     7363    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    73547364    break;
    73557365
     
    73577367
    73587368/* Line 1806 of yacc.c  */
    7359 #line 1699 "parser.yy"
    7360     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7369#line 1702 "parser.yy"
     7370    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    73617371    break;
    73627372
     
    73647374
    73657375/* Line 1806 of yacc.c  */
    7366 #line 1701 "parser.yy"
    7367     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ); }
     7376#line 1704 "parser.yy"
     7377    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    73687378    break;
    73697379
     
    73717381
    73727382/* Line 1806 of yacc.c  */
    7373 #line 1703 "parser.yy"
    7374     { (yyval.en) = (yyvsp[(4) - (6)].en); }
    7375     break;
    7376 
    7377   case 461:
    7378 
    7379 /* Line 1806 of yacc.c  */
    7380 #line 1727 "parser.yy"
     7383#line 1706 "parser.yy"
     7384    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
     7385    break;
     7386
     7387  case 460:
     7388
     7389/* Line 1806 of yacc.c  */
     7390#line 1708 "parser.yy"
     7391    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
     7392    break;
     7393
     7394  case 462:
     7395
     7396/* Line 1806 of yacc.c  */
     7397#line 1732 "parser.yy"
    73817398    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73827399    break;
    73837400
    7384   case 462:
    7385 
    7386 /* Line 1806 of yacc.c  */
    7387 #line 1729 "parser.yy"
     7401  case 463:
     7402
     7403/* Line 1806 of yacc.c  */
     7404#line 1734 "parser.yy"
    73887405    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73897406    break;
    73907407
    7391   case 463:
    7392 
    7393 /* Line 1806 of yacc.c  */
    7394 #line 1731 "parser.yy"
     7408  case 464:
     7409
     7410/* Line 1806 of yacc.c  */
     7411#line 1736 "parser.yy"
    73957412    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    73967413    break;
    73977414
    7398   case 465:
    7399 
    7400 /* Line 1806 of yacc.c  */
    7401 #line 1737 "parser.yy"
     7415  case 466:
     7416
     7417/* Line 1806 of yacc.c  */
     7418#line 1742 "parser.yy"
    74027419    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74037420    break;
    74047421
    7405   case 466:
    7406 
    7407 /* Line 1806 of yacc.c  */
    7408 #line 1739 "parser.yy"
     7422  case 467:
     7423
     7424/* Line 1806 of yacc.c  */
     7425#line 1744 "parser.yy"
    74097426    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74107427    break;
    74117428
    7412   case 467:
    7413 
    7414 /* Line 1806 of yacc.c  */
    7415 #line 1744 "parser.yy"
     7429  case 468:
     7430
     7431/* Line 1806 of yacc.c  */
     7432#line 1749 "parser.yy"
    74167433    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    74177434    break;
    74187435
    7419   case 469:
    7420 
    7421 /* Line 1806 of yacc.c  */
    7422 #line 1750 "parser.yy"
     7436  case 470:
     7437
     7438/* Line 1806 of yacc.c  */
     7439#line 1755 "parser.yy"
    74237440    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    74247441    break;
    74257442
    7426   case 470:
    7427 
    7428 /* Line 1806 of yacc.c  */
    7429 #line 1755 "parser.yy"
     7443  case 471:
     7444
     7445/* Line 1806 of yacc.c  */
     7446#line 1760 "parser.yy"
    74307447    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    74317448    break;
    74327449
    7433   case 471:
    7434 
    7435 /* Line 1806 of yacc.c  */
    7436 #line 1757 "parser.yy"
     7450  case 472:
     7451
     7452/* Line 1806 of yacc.c  */
     7453#line 1762 "parser.yy"
    74377454    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    74387455    break;
    74397456
    7440   case 473:
    7441 
    7442 /* Line 1806 of yacc.c  */
    7443 #line 1763 "parser.yy"
     7457  case 474:
     7458
     7459/* Line 1806 of yacc.c  */
     7460#line 1768 "parser.yy"
    74447461    { (yyval.tclass) = DeclarationNode::Type; }
    74457462    break;
    74467463
    7447   case 474:
    7448 
    7449 /* Line 1806 of yacc.c  */
    7450 #line 1765 "parser.yy"
     7464  case 475:
     7465
     7466/* Line 1806 of yacc.c  */
     7467#line 1770 "parser.yy"
    74517468    { (yyval.tclass) = DeclarationNode::Ftype; }
    74527469    break;
    74537470
    7454   case 475:
    7455 
    7456 /* Line 1806 of yacc.c  */
    7457 #line 1767 "parser.yy"
     7471  case 476:
     7472
     7473/* Line 1806 of yacc.c  */
     7474#line 1772 "parser.yy"
    74587475    { (yyval.tclass) = DeclarationNode::Dtype; }
    74597476    break;
    74607477
    7461   case 476:
    7462 
    7463 /* Line 1806 of yacc.c  */
    7464 #line 1772 "parser.yy"
     7478  case 477:
     7479
     7480/* Line 1806 of yacc.c  */
     7481#line 1777 "parser.yy"
    74657482    { (yyval.decl) = 0; }
    74667483    break;
    74677484
    7468   case 477:
    7469 
    7470 /* Line 1806 of yacc.c  */
    7471 #line 1774 "parser.yy"
     7485  case 478:
     7486
     7487/* Line 1806 of yacc.c  */
     7488#line 1779 "parser.yy"
    74727489    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    74737490    break;
    74747491
    7475   case 478:
    7476 
    7477 /* Line 1806 of yacc.c  */
    7478 #line 1779 "parser.yy"
     7492  case 479:
     7493
     7494/* Line 1806 of yacc.c  */
     7495#line 1784 "parser.yy"
    74797496    {
    74807497                        typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
     
    74837500    break;
    74847501
    7485   case 479:
    7486 
    7487 /* Line 1806 of yacc.c  */
    7488 #line 1784 "parser.yy"
     7502  case 480:
     7503
     7504/* Line 1806 of yacc.c  */
     7505#line 1789 "parser.yy"
    74897506    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    74907507    break;
    74917508
    7492   case 480:
    7493 
    7494 /* Line 1806 of yacc.c  */
    7495 #line 1786 "parser.yy"
     7509  case 481:
     7510
     7511/* Line 1806 of yacc.c  */
     7512#line 1791 "parser.yy"
    74967513    { (yyval.decl) = 0; }
    74977514    break;
    74987515
    7499   case 481:
    7500 
    7501 /* Line 1806 of yacc.c  */
    7502 #line 1791 "parser.yy"
     7516  case 482:
     7517
     7518/* Line 1806 of yacc.c  */
     7519#line 1796 "parser.yy"
    75037520    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    75047521    break;
    75057522
    7506   case 483:
    7507 
    7508 /* Line 1806 of yacc.c  */
    7509 #line 1794 "parser.yy"
     7523  case 484:
     7524
     7525/* Line 1806 of yacc.c  */
     7526#line 1799 "parser.yy"
    75107527    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    75117528    break;
    75127529
    7513   case 484:
    7514 
    7515 /* Line 1806 of yacc.c  */
    7516 #line 1796 "parser.yy"
     7530  case 485:
     7531
     7532/* Line 1806 of yacc.c  */
     7533#line 1801 "parser.yy"
    75177534    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    75187535    break;
    75197536
    7520   case 485:
    7521 
    7522 /* Line 1806 of yacc.c  */
    7523 #line 1801 "parser.yy"
     7537  case 486:
     7538
     7539/* Line 1806 of yacc.c  */
     7540#line 1806 "parser.yy"
    75247541    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    75257542    break;
    75267543
    7527   case 486:
    7528 
    7529 /* Line 1806 of yacc.c  */
    7530 #line 1803 "parser.yy"
     7544  case 487:
     7545
     7546/* Line 1806 of yacc.c  */
     7547#line 1808 "parser.yy"
    75317548    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    75327549    break;
    75337550
    7534   case 487:
    7535 
    7536 /* Line 1806 of yacc.c  */
    7537 #line 1805 "parser.yy"
     7551  case 488:
     7552
     7553/* Line 1806 of yacc.c  */
     7554#line 1810 "parser.yy"
    75387555    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    75397556    break;
    75407557
    7541   case 488:
    7542 
    7543 /* Line 1806 of yacc.c  */
    7544 #line 1810 "parser.yy"
     7558  case 489:
     7559
     7560/* Line 1806 of yacc.c  */
     7561#line 1815 "parser.yy"
    75457562    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    75467563    break;
    75477564
    7548   case 489:
    7549 
    7550 /* Line 1806 of yacc.c  */
    7551 #line 1812 "parser.yy"
     7565  case 490:
     7566
     7567/* Line 1806 of yacc.c  */
     7568#line 1817 "parser.yy"
    75527569    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    75537570    break;
    75547571
    7555   case 490:
    7556 
    7557 /* Line 1806 of yacc.c  */
    7558 #line 1817 "parser.yy"
     7572  case 491:
     7573
     7574/* Line 1806 of yacc.c  */
     7575#line 1822 "parser.yy"
    75597576    {
    75607577                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    75637580    break;
    75647581
    7565   case 491:
    7566 
    7567 /* Line 1806 of yacc.c  */
    7568 #line 1822 "parser.yy"
     7582  case 492:
     7583
     7584/* Line 1806 of yacc.c  */
     7585#line 1827 "parser.yy"
    75697586    {
    75707587                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    75737590    break;
    75747591
    7575   case 492:
    7576 
    7577 /* Line 1806 of yacc.c  */
    7578 #line 1830 "parser.yy"
     7592  case 493:
     7593
     7594/* Line 1806 of yacc.c  */
     7595#line 1835 "parser.yy"
    75797596    {
    75807597                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    75837600    break;
    75847601
    7585   case 493:
    7586 
    7587 /* Line 1806 of yacc.c  */
    7588 #line 1835 "parser.yy"
     7602  case 494:
     7603
     7604/* Line 1806 of yacc.c  */
     7605#line 1840 "parser.yy"
    75897606    {
    75907607                        typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
     
    75937610    break;
    75947611
    7595   case 494:
    7596 
    7597 /* Line 1806 of yacc.c  */
    7598 #line 1840 "parser.yy"
     7612  case 495:
     7613
     7614/* Line 1806 of yacc.c  */
     7615#line 1845 "parser.yy"
    75997616    {
    76007617                        typedefTable.leaveContext();
     
    76047621    break;
    76057622
    7606   case 496:
    7607 
    7608 /* Line 1806 of yacc.c  */
    7609 #line 1850 "parser.yy"
     7623  case 497:
     7624
     7625/* Line 1806 of yacc.c  */
     7626#line 1855 "parser.yy"
    76107627    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    7611     break;
    7612 
    7613   case 499:
    7614 
    7615 /* Line 1806 of yacc.c  */
    7616 #line 1860 "parser.yy"
    7617     {
    7618                         typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7619                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
    7620                 }
    76217628    break;
    76227629
     
    76367643#line 1870 "parser.yy"
    76377644    {
     7645                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     7646                        (yyval.decl) = (yyvsp[(1) - (1)].decl);
     7647                }
     7648    break;
     7649
     7650  case 502:
     7651
     7652/* Line 1806 of yacc.c  */
     7653#line 1875 "parser.yy"
     7654    {
    76387655                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
    76397656                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
     
    76417658    break;
    76427659
    7643   case 502:
    7644 
    7645 /* Line 1806 of yacc.c  */
    7646 #line 1878 "parser.yy"
     7660  case 503:
     7661
     7662/* Line 1806 of yacc.c  */
     7663#line 1883 "parser.yy"
    76477664    {
    76487665                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76517668    break;
    76527669
    7653   case 503:
    7654 
    7655 /* Line 1806 of yacc.c  */
    7656 #line 1883 "parser.yy"
     7670  case 504:
     7671
     7672/* Line 1806 of yacc.c  */
     7673#line 1888 "parser.yy"
    76577674    {
    76587675                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76617678    break;
    76627679
    7663   case 504:
    7664 
    7665 /* Line 1806 of yacc.c  */
    7666 #line 1893 "parser.yy"
     7680  case 505:
     7681
     7682/* Line 1806 of yacc.c  */
     7683#line 1898 "parser.yy"
    76677684    {}
    76687685    break;
    76697686
    7670   case 505:
    7671 
    7672 /* Line 1806 of yacc.c  */
    7673 #line 1895 "parser.yy"
     7687  case 506:
     7688
     7689/* Line 1806 of yacc.c  */
     7690#line 1900 "parser.yy"
    76747691    {
    76757692                        if ( theTree ) {
     
    76817698    break;
    76827699
    7683   case 507:
    7684 
    7685 /* Line 1806 of yacc.c  */
    7686 #line 1907 "parser.yy"
     7700  case 508:
     7701
     7702/* Line 1806 of yacc.c  */
     7703#line 1912 "parser.yy"
    76877704    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    76887705    break;
    76897706
    7690   case 508:
    7691 
    7692 /* Line 1806 of yacc.c  */
    7693 #line 1912 "parser.yy"
     7707  case 509:
     7708
     7709/* Line 1806 of yacc.c  */
     7710#line 1917 "parser.yy"
    76947711    { (yyval.decl) = 0; }
    76957712    break;
    76967713
    7697   case 512:
    7698 
    7699 /* Line 1806 of yacc.c  */
    7700 #line 1920 "parser.yy"
     7714  case 513:
     7715
     7716/* Line 1806 of yacc.c  */
     7717#line 1925 "parser.yy"
    77017718    {}
    77027719    break;
    77037720
    7704   case 513:
    7705 
    7706 /* Line 1806 of yacc.c  */
    7707 #line 1922 "parser.yy"
     7721  case 514:
     7722
     7723/* Line 1806 of yacc.c  */
     7724#line 1927 "parser.yy"
    77087725    {
    77097726                        linkageStack.push( linkage );
     
    77127729    break;
    77137730
    7714   case 514:
    7715 
    7716 /* Line 1806 of yacc.c  */
    7717 #line 1927 "parser.yy"
     7731  case 515:
     7732
     7733/* Line 1806 of yacc.c  */
     7734#line 1932 "parser.yy"
    77187735    {
    77197736                        linkage = linkageStack.top();
     
    77237740    break;
    77247741
    7725   case 515:
    7726 
    7727 /* Line 1806 of yacc.c  */
    7728 #line 1933 "parser.yy"
     7742  case 516:
     7743
     7744/* Line 1806 of yacc.c  */
     7745#line 1938 "parser.yy"
    77297746    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    77307747    break;
    77317748
    7732   case 517:
    7733 
    7734 /* Line 1806 of yacc.c  */
    7735 #line 1943 "parser.yy"
     7749  case 518:
     7750
     7751/* Line 1806 of yacc.c  */
     7752#line 1948 "parser.yy"
    77367753    {
    77377754                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77417758    break;
    77427759
    7743   case 518:
    7744 
    7745 /* Line 1806 of yacc.c  */
    7746 #line 1949 "parser.yy"
     7760  case 519:
     7761
     7762/* Line 1806 of yacc.c  */
     7763#line 1954 "parser.yy"
    77477764    {
    77487765                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77527769    break;
    77537770
    7754   case 519:
    7755 
    7756 /* Line 1806 of yacc.c  */
    7757 #line 1958 "parser.yy"
     7771  case 520:
     7772
     7773/* Line 1806 of yacc.c  */
     7774#line 1963 "parser.yy"
    77587775    {
    77597776                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77637780    break;
    77647781
    7765   case 520:
    7766 
    7767 /* Line 1806 of yacc.c  */
    7768 #line 1964 "parser.yy"
     7782  case 521:
     7783
     7784/* Line 1806 of yacc.c  */
     7785#line 1969 "parser.yy"
    77697786    {
    77707787                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77747791    break;
    77757792
    7776   case 521:
    7777 
    7778 /* Line 1806 of yacc.c  */
    7779 #line 1970 "parser.yy"
     7793  case 522:
     7794
     7795/* Line 1806 of yacc.c  */
     7796#line 1975 "parser.yy"
    77807797    {
    77817798                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77857802    break;
    77867803
    7787   case 522:
    7788 
    7789 /* Line 1806 of yacc.c  */
    7790 #line 1976 "parser.yy"
     7804  case 523:
     7805
     7806/* Line 1806 of yacc.c  */
     7807#line 1981 "parser.yy"
    77917808    {
    77927809                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77967813    break;
    77977814
    7798   case 523:
    7799 
    7800 /* Line 1806 of yacc.c  */
    7801 #line 1982 "parser.yy"
     7815  case 524:
     7816
     7817/* Line 1806 of yacc.c  */
     7818#line 1987 "parser.yy"
    78027819    {
    78037820                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78077824    break;
    78087825
    7809   case 524:
    7810 
    7811 /* Line 1806 of yacc.c  */
    7812 #line 1990 "parser.yy"
     7826  case 525:
     7827
     7828/* Line 1806 of yacc.c  */
     7829#line 1995 "parser.yy"
    78137830    {
    78147831                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78187835    break;
    78197836
    7820   case 525:
    7821 
    7822 /* Line 1806 of yacc.c  */
    7823 #line 1996 "parser.yy"
     7837  case 526:
     7838
     7839/* Line 1806 of yacc.c  */
     7840#line 2001 "parser.yy"
    78247841    {
    78257842                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78297846    break;
    78307847
    7831   case 526:
    7832 
    7833 /* Line 1806 of yacc.c  */
    7834 #line 2004 "parser.yy"
     7848  case 527:
     7849
     7850/* Line 1806 of yacc.c  */
     7851#line 2009 "parser.yy"
    78357852    {
    78367853                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78407857    break;
    78417858
    7842   case 527:
    7843 
    7844 /* Line 1806 of yacc.c  */
    7845 #line 2010 "parser.yy"
     7859  case 528:
     7860
     7861/* Line 1806 of yacc.c  */
     7862#line 2015 "parser.yy"
    78467863    {
    78477864                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78517868    break;
    78527869
    7853   case 531:
    7854 
    7855 /* Line 1806 of yacc.c  */
    7856 #line 2025 "parser.yy"
     7870  case 532:
     7871
     7872/* Line 1806 of yacc.c  */
     7873#line 2030 "parser.yy"
    78577874    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    78587875    break;
    78597876
    7860   case 534:
    7861 
    7862 /* Line 1806 of yacc.c  */
    7863 #line 2035 "parser.yy"
     7877  case 535:
     7878
     7879/* Line 1806 of yacc.c  */
     7880#line 2040 "parser.yy"
    78647881    { (yyval.decl) = 0; }
    78657882    break;
    78667883
    7867   case 537:
    7868 
    7869 /* Line 1806 of yacc.c  */
    7870 #line 2042 "parser.yy"
     7884  case 538:
     7885
     7886/* Line 1806 of yacc.c  */
     7887#line 2047 "parser.yy"
    78717888    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    78727889    break;
    78737890
    7874   case 538:
    7875 
    7876 /* Line 1806 of yacc.c  */
    7877 #line 2048 "parser.yy"
     7891  case 539:
     7892
     7893/* Line 1806 of yacc.c  */
     7894#line 2053 "parser.yy"
    78787895    { (yyval.decl) = 0; }
    78797896    break;
    78807897
    7881   case 544:
    7882 
    7883 /* Line 1806 of yacc.c  */
    7884 #line 2063 "parser.yy"
     7898  case 545:
     7899
     7900/* Line 1806 of yacc.c  */
     7901#line 2068 "parser.yy"
    78857902    {}
    78867903    break;
    78877904
    7888   case 545:
    7889 
    7890 /* Line 1806 of yacc.c  */
    7891 #line 2064 "parser.yy"
     7905  case 546:
     7906
     7907/* Line 1806 of yacc.c  */
     7908#line 2069 "parser.yy"
    78927909    {}
    78937910    break;
    78947911
    7895   case 546:
    7896 
    7897 /* Line 1806 of yacc.c  */
    7898 #line 2065 "parser.yy"
     7912  case 547:
     7913
     7914/* Line 1806 of yacc.c  */
     7915#line 2070 "parser.yy"
    78997916    {}
    79007917    break;
    79017918
    7902   case 547:
    7903 
    7904 /* Line 1806 of yacc.c  */
    7905 #line 2066 "parser.yy"
     7919  case 548:
     7920
     7921/* Line 1806 of yacc.c  */
     7922#line 2071 "parser.yy"
    79067923    {}
    79077924    break;
    79087925
    7909   case 548:
    7910 
    7911 /* Line 1806 of yacc.c  */
    7912 #line 2101 "parser.yy"
    7913     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7914     break;
    7915 
    7916   case 550:
    7917 
    7918 /* Line 1806 of yacc.c  */
    7919 #line 2104 "parser.yy"
    7920     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7921     break;
    7922 
    7923   case 551:
     7926  case 549:
    79247927
    79257928/* Line 1806 of yacc.c  */
     
    79287931    break;
    79297932
     7933  case 551:
     7934
     7935/* Line 1806 of yacc.c  */
     7936#line 2109 "parser.yy"
     7937    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7938    break;
     7939
    79307940  case 552:
    79317941
    79327942/* Line 1806 of yacc.c  */
    79337943#line 2111 "parser.yy"
     7944    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7945    break;
     7946
     7947  case 553:
     7948
     7949/* Line 1806 of yacc.c  */
     7950#line 2116 "parser.yy"
    79347951    {
    79357952                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    79387955    break;
    79397956
    7940   case 553:
    7941 
    7942 /* Line 1806 of yacc.c  */
    7943 #line 2116 "parser.yy"
     7957  case 554:
     7958
     7959/* Line 1806 of yacc.c  */
     7960#line 2121 "parser.yy"
    79447961    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79457962    break;
    79467963
    7947   case 554:
    7948 
    7949 /* Line 1806 of yacc.c  */
    7950 #line 2121 "parser.yy"
     7964  case 555:
     7965
     7966/* Line 1806 of yacc.c  */
     7967#line 2126 "parser.yy"
    79517968    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    79527969    break;
    79537970
    7954   case 555:
    7955 
    7956 /* Line 1806 of yacc.c  */
    7957 #line 2123 "parser.yy"
     7971  case 556:
     7972
     7973/* Line 1806 of yacc.c  */
     7974#line 2128 "parser.yy"
    79587975    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    79597976    break;
    79607977
    7961   case 556:
    7962 
    7963 /* Line 1806 of yacc.c  */
    7964 #line 2125 "parser.yy"
     7978  case 557:
     7979
     7980/* Line 1806 of yacc.c  */
     7981#line 2130 "parser.yy"
    79657982    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79667983    break;
    79677984
    7968   case 557:
    7969 
    7970 /* Line 1806 of yacc.c  */
    7971 #line 2130 "parser.yy"
     7985  case 558:
     7986
     7987/* Line 1806 of yacc.c  */
     7988#line 2135 "parser.yy"
    79727989    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    79737990    break;
    79747991
    7975   case 558:
    7976 
    7977 /* Line 1806 of yacc.c  */
    7978 #line 2132 "parser.yy"
     7992  case 559:
     7993
     7994/* Line 1806 of yacc.c  */
     7995#line 2137 "parser.yy"
    79797996    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    79807997    break;
    79817998
    7982   case 559:
    7983 
    7984 /* Line 1806 of yacc.c  */
    7985 #line 2134 "parser.yy"
     7999  case 560:
     8000
     8001/* Line 1806 of yacc.c  */
     8002#line 2139 "parser.yy"
    79868003    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    79878004    break;
    79888005
    7989   case 560:
    7990 
    7991 /* Line 1806 of yacc.c  */
    7992 #line 2136 "parser.yy"
     8006  case 561:
     8007
     8008/* Line 1806 of yacc.c  */
     8009#line 2141 "parser.yy"
    79938010    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79948011    break;
    79958012
    7996   case 561:
    7997 
    7998 /* Line 1806 of yacc.c  */
    7999 #line 2141 "parser.yy"
     8013  case 562:
     8014
     8015/* Line 1806 of yacc.c  */
     8016#line 2146 "parser.yy"
    80008017    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80018018    break;
    80028019
    8003   case 562:
    8004 
    8005 /* Line 1806 of yacc.c  */
    8006 #line 2143 "parser.yy"
     8020  case 563:
     8021
     8022/* Line 1806 of yacc.c  */
     8023#line 2148 "parser.yy"
    80078024    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80088025    break;
    80098026
    8010   case 563:
    8011 
    8012 /* Line 1806 of yacc.c  */
    8013 #line 2153 "parser.yy"
     8027  case 564:
     8028
     8029/* Line 1806 of yacc.c  */
     8030#line 2158 "parser.yy"
    80148031    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80158032    break;
    80168033
    8017   case 565:
    8018 
    8019 /* Line 1806 of yacc.c  */
    8020 #line 2156 "parser.yy"
     8034  case 566:
     8035
     8036/* Line 1806 of yacc.c  */
     8037#line 2161 "parser.yy"
    80218038    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80228039    break;
    80238040
    8024   case 566:
    8025 
    8026 /* Line 1806 of yacc.c  */
    8027 #line 2161 "parser.yy"
     8041  case 567:
     8042
     8043/* Line 1806 of yacc.c  */
     8044#line 2166 "parser.yy"
    80288045    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    80298046    break;
    80308047
    8031   case 567:
    8032 
    8033 /* Line 1806 of yacc.c  */
    8034 #line 2163 "parser.yy"
     8048  case 568:
     8049
     8050/* Line 1806 of yacc.c  */
     8051#line 2168 "parser.yy"
    80358052    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80368053    break;
    80378054
    8038   case 568:
    8039 
    8040 /* Line 1806 of yacc.c  */
    8041 #line 2165 "parser.yy"
     8055  case 569:
     8056
     8057/* Line 1806 of yacc.c  */
     8058#line 2170 "parser.yy"
    80428059    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80438060    break;
    80448061
    8045   case 569:
    8046 
    8047 /* Line 1806 of yacc.c  */
    8048 #line 2170 "parser.yy"
     8062  case 570:
     8063
     8064/* Line 1806 of yacc.c  */
     8065#line 2175 "parser.yy"
    80498066    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80508067    break;
    80518068
    8052   case 570:
    8053 
    8054 /* Line 1806 of yacc.c  */
    8055 #line 2172 "parser.yy"
     8069  case 571:
     8070
     8071/* Line 1806 of yacc.c  */
     8072#line 2177 "parser.yy"
    80568073    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80578074    break;
    80588075
    8059   case 571:
    8060 
    8061 /* Line 1806 of yacc.c  */
    8062 #line 2174 "parser.yy"
     8076  case 572:
     8077
     8078/* Line 1806 of yacc.c  */
     8079#line 2179 "parser.yy"
    80638080    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80648081    break;
    80658082
    8066   case 572:
    8067 
    8068 /* Line 1806 of yacc.c  */
    8069 #line 2179 "parser.yy"
     8083  case 573:
     8084
     8085/* Line 1806 of yacc.c  */
     8086#line 2184 "parser.yy"
    80708087    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80718088    break;
    80728089
    8073   case 573:
    8074 
    8075 /* Line 1806 of yacc.c  */
    8076 #line 2181 "parser.yy"
     8090  case 574:
     8091
     8092/* Line 1806 of yacc.c  */
     8093#line 2186 "parser.yy"
    80778094    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80788095    break;
    80798096
    8080   case 574:
    8081 
    8082 /* Line 1806 of yacc.c  */
    8083 #line 2183 "parser.yy"
     8097  case 575:
     8098
     8099/* Line 1806 of yacc.c  */
     8100#line 2188 "parser.yy"
    80848101    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80858102    break;
    80868103
    8087   case 578:
    8088 
    8089 /* Line 1806 of yacc.c  */
    8090 #line 2198 "parser.yy"
     8104  case 579:
     8105
     8106/* Line 1806 of yacc.c  */
     8107#line 2203 "parser.yy"
    80918108    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    80928109    break;
    80938110
    8094   case 579:
    8095 
    8096 /* Line 1806 of yacc.c  */
    8097 #line 2200 "parser.yy"
     8111  case 580:
     8112
     8113/* Line 1806 of yacc.c  */
     8114#line 2205 "parser.yy"
    80988115    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    80998116    break;
    81008117
    8101   case 580:
    8102 
    8103 /* Line 1806 of yacc.c  */
    8104 #line 2202 "parser.yy"
     8118  case 581:
     8119
     8120/* Line 1806 of yacc.c  */
     8121#line 2207 "parser.yy"
    81058122    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81068123    break;
    81078124
    8108   case 581:
    8109 
    8110 /* Line 1806 of yacc.c  */
    8111 #line 2207 "parser.yy"
     8125  case 582:
     8126
     8127/* Line 1806 of yacc.c  */
     8128#line 2212 "parser.yy"
    81128129    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81138130    break;
    81148131
    8115   case 582:
    8116 
    8117 /* Line 1806 of yacc.c  */
    8118 #line 2209 "parser.yy"
     8132  case 583:
     8133
     8134/* Line 1806 of yacc.c  */
     8135#line 2214 "parser.yy"
    81198136    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81208137    break;
    81218138
    8122   case 583:
    8123 
    8124 /* Line 1806 of yacc.c  */
    8125 #line 2211 "parser.yy"
     8139  case 584:
     8140
     8141/* Line 1806 of yacc.c  */
     8142#line 2216 "parser.yy"
    81268143    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81278144    break;
    81288145
    8129   case 584:
    8130 
    8131 /* Line 1806 of yacc.c  */
    8132 #line 2216 "parser.yy"
     8146  case 585:
     8147
     8148/* Line 1806 of yacc.c  */
     8149#line 2221 "parser.yy"
    81338150    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81348151    break;
    81358152
    8136   case 585:
    8137 
    8138 /* Line 1806 of yacc.c  */
    8139 #line 2218 "parser.yy"
     8153  case 586:
     8154
     8155/* Line 1806 of yacc.c  */
     8156#line 2223 "parser.yy"
    81408157    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81418158    break;
    81428159
    8143   case 586:
    8144 
    8145 /* Line 1806 of yacc.c  */
    8146 #line 2220 "parser.yy"
     8160  case 587:
     8161
     8162/* Line 1806 of yacc.c  */
     8163#line 2225 "parser.yy"
    81478164    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81488165    break;
    81498166
    8150   case 587:
    8151 
    8152 /* Line 1806 of yacc.c  */
    8153 #line 2235 "parser.yy"
    8154     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8155     break;
    8156 
    8157   case 589:
    8158 
    8159 /* Line 1806 of yacc.c  */
    8160 #line 2238 "parser.yy"
    8161     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8162     break;
    8163 
    8164   case 590:
     8167  case 588:
    81658168
    81668169/* Line 1806 of yacc.c  */
     
    81698172    break;
    81708173
    8171   case 592:
    8172 
    8173 /* Line 1806 of yacc.c  */
    8174 #line 2246 "parser.yy"
     8174  case 590:
     8175
     8176/* Line 1806 of yacc.c  */
     8177#line 2243 "parser.yy"
     8178    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8179    break;
     8180
     8181  case 591:
     8182
     8183/* Line 1806 of yacc.c  */
     8184#line 2245 "parser.yy"
     8185    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8186    break;
     8187
     8188  case 593:
     8189
     8190/* Line 1806 of yacc.c  */
     8191#line 2251 "parser.yy"
    81758192    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81768193    break;
    81778194
    8178   case 593:
    8179 
    8180 /* Line 1806 of yacc.c  */
    8181 #line 2251 "parser.yy"
     8195  case 594:
     8196
     8197/* Line 1806 of yacc.c  */
     8198#line 2256 "parser.yy"
    81828199    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81838200    break;
    81848201
    8185   case 594:
    8186 
    8187 /* Line 1806 of yacc.c  */
    8188 #line 2253 "parser.yy"
     8202  case 595:
     8203
     8204/* Line 1806 of yacc.c  */
     8205#line 2258 "parser.yy"
    81898206    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81908207    break;
    81918208
    8192   case 595:
    8193 
    8194 /* Line 1806 of yacc.c  */
    8195 #line 2255 "parser.yy"
     8209  case 596:
     8210
     8211/* Line 1806 of yacc.c  */
     8212#line 2260 "parser.yy"
    81968213    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81978214    break;
    81988215
    8199   case 596:
    8200 
    8201 /* Line 1806 of yacc.c  */
    8202 #line 2260 "parser.yy"
     8216  case 597:
     8217
     8218/* Line 1806 of yacc.c  */
     8219#line 2265 "parser.yy"
    82038220    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82048221    break;
    82058222
    8206   case 597:
    8207 
    8208 /* Line 1806 of yacc.c  */
    8209 #line 2262 "parser.yy"
     8223  case 598:
     8224
     8225/* Line 1806 of yacc.c  */
     8226#line 2267 "parser.yy"
    82108227    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82118228    break;
    82128229
    8213   case 598:
    8214 
    8215 /* Line 1806 of yacc.c  */
    8216 #line 2264 "parser.yy"
     8230  case 599:
     8231
     8232/* Line 1806 of yacc.c  */
     8233#line 2269 "parser.yy"
    82178234    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82188235    break;
    82198236
    8220   case 599:
    8221 
    8222 /* Line 1806 of yacc.c  */
    8223 #line 2266 "parser.yy"
     8237  case 600:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2271 "parser.yy"
    82248241    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82258242    break;
    82268243
    8227   case 600:
    8228 
    8229 /* Line 1806 of yacc.c  */
    8230 #line 2271 "parser.yy"
     8244  case 601:
     8245
     8246/* Line 1806 of yacc.c  */
     8247#line 2276 "parser.yy"
    82318248    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    82328249    break;
    82338250
    8234   case 601:
    8235 
    8236 /* Line 1806 of yacc.c  */
    8237 #line 2273 "parser.yy"
     8251  case 602:
     8252
     8253/* Line 1806 of yacc.c  */
     8254#line 2278 "parser.yy"
    82388255    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    82398256    break;
    82408257
    8241   case 602:
    8242 
    8243 /* Line 1806 of yacc.c  */
    8244 #line 2275 "parser.yy"
     8258  case 603:
     8259
     8260/* Line 1806 of yacc.c  */
     8261#line 2280 "parser.yy"
    82458262    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82468263    break;
    82478264
    8248   case 603:
    8249 
    8250 /* Line 1806 of yacc.c  */
    8251 #line 2285 "parser.yy"
    8252     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8253     break;
    8254 
    8255   case 605:
    8256 
    8257 /* Line 1806 of yacc.c  */
    8258 #line 2288 "parser.yy"
    8259     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8260     break;
    8261 
    8262   case 606:
     8265  case 604:
    82638266
    82648267/* Line 1806 of yacc.c  */
     
    82678270    break;
    82688271
     8272  case 606:
     8273
     8274/* Line 1806 of yacc.c  */
     8275#line 2293 "parser.yy"
     8276    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8277    break;
     8278
    82698279  case 607:
    82708280
    82718281/* Line 1806 of yacc.c  */
    82728282#line 2295 "parser.yy"
     8283    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8284    break;
     8285
     8286  case 608:
     8287
     8288/* Line 1806 of yacc.c  */
     8289#line 2300 "parser.yy"
    82738290    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82748291    break;
    82758292
    8276   case 608:
    8277 
    8278 /* Line 1806 of yacc.c  */
    8279 #line 2297 "parser.yy"
     8293  case 609:
     8294
     8295/* Line 1806 of yacc.c  */
     8296#line 2302 "parser.yy"
    82808297    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82818298    break;
    82828299
    8283   case 609:
    8284 
    8285 /* Line 1806 of yacc.c  */
    8286 #line 2299 "parser.yy"
     8300  case 610:
     8301
     8302/* Line 1806 of yacc.c  */
     8303#line 2304 "parser.yy"
    82878304    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82888305    break;
    82898306
    8290   case 610:
    8291 
    8292 /* Line 1806 of yacc.c  */
    8293 #line 2304 "parser.yy"
     8307  case 611:
     8308
     8309/* Line 1806 of yacc.c  */
     8310#line 2309 "parser.yy"
    82948311    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82958312    break;
    82968313
    8297   case 611:
    8298 
    8299 /* Line 1806 of yacc.c  */
    8300 #line 2306 "parser.yy"
     8314  case 612:
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2311 "parser.yy"
    83018318    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83028319    break;
    83038320
    8304   case 612:
    8305 
    8306 /* Line 1806 of yacc.c  */
    8307 #line 2308 "parser.yy"
     8321  case 613:
     8322
     8323/* Line 1806 of yacc.c  */
     8324#line 2313 "parser.yy"
    83088325    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83098326    break;
    83108327
    8311   case 613:
    8312 
    8313 /* Line 1806 of yacc.c  */
    8314 #line 2310 "parser.yy"
     8328  case 614:
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2315 "parser.yy"
    83158332    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83168333    break;
    83178334
    8318   case 614:
    8319 
    8320 /* Line 1806 of yacc.c  */
    8321 #line 2315 "parser.yy"
     8335  case 615:
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2320 "parser.yy"
    83228339    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83238340    break;
    83248341
    8325   case 615:
    8326 
    8327 /* Line 1806 of yacc.c  */
    8328 #line 2317 "parser.yy"
     8342  case 616:
     8343
     8344/* Line 1806 of yacc.c  */
     8345#line 2322 "parser.yy"
    83298346    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83308347    break;
    83318348
    8332   case 616:
    8333 
    8334 /* Line 1806 of yacc.c  */
    8335 #line 2319 "parser.yy"
     8349  case 617:
     8350
     8351/* Line 1806 of yacc.c  */
     8352#line 2324 "parser.yy"
    83368353    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83378354    break;
    83388355
    8339   case 617:
    8340 
    8341 /* Line 1806 of yacc.c  */
    8342 #line 2350 "parser.yy"
    8343     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8344     break;
    8345 
    8346   case 619:
    8347 
    8348 /* Line 1806 of yacc.c  */
    8349 #line 2353 "parser.yy"
    8350     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8351     break;
    8352 
    8353   case 620:
     8356  case 618:
    83548357
    83558358/* Line 1806 of yacc.c  */
     
    83588361    break;
    83598362
     8363  case 620:
     8364
     8365/* Line 1806 of yacc.c  */
     8366#line 2358 "parser.yy"
     8367    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8368    break;
     8369
    83608370  case 621:
    83618371
    83628372/* Line 1806 of yacc.c  */
    83638373#line 2360 "parser.yy"
    8364     {
    8365                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8366                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    8367                 }
     8374    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83688375    break;
    83698376
     
    83818388
    83828389/* Line 1806 of yacc.c  */
    8383 #line 2373 "parser.yy"
     8390#line 2370 "parser.yy"
     8391    {
     8392                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8393                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     8394                }
     8395    break;
     8396
     8397  case 624:
     8398
     8399/* Line 1806 of yacc.c  */
     8400#line 2378 "parser.yy"
    83848401    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83858402    break;
    83868403
    8387   case 624:
    8388 
    8389 /* Line 1806 of yacc.c  */
    8390 #line 2375 "parser.yy"
     8404  case 625:
     8405
     8406/* Line 1806 of yacc.c  */
     8407#line 2380 "parser.yy"
    83918408    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83928409    break;
    83938410
    8394   case 625:
    8395 
    8396 /* Line 1806 of yacc.c  */
    8397 #line 2377 "parser.yy"
     8411  case 626:
     8412
     8413/* Line 1806 of yacc.c  */
     8414#line 2382 "parser.yy"
    83988415    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83998416    break;
    84008417
    8401   case 626:
    8402 
    8403 /* Line 1806 of yacc.c  */
    8404 #line 2382 "parser.yy"
     8418  case 627:
     8419
     8420/* Line 1806 of yacc.c  */
     8421#line 2387 "parser.yy"
    84058422    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84068423    break;
    84078424
    8408   case 627:
    8409 
    8410 /* Line 1806 of yacc.c  */
    8411 #line 2384 "parser.yy"
     8425  case 628:
     8426
     8427/* Line 1806 of yacc.c  */
     8428#line 2389 "parser.yy"
    84128429    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84138430    break;
    84148431
    8415   case 628:
    8416 
    8417 /* Line 1806 of yacc.c  */
    8418 #line 2389 "parser.yy"
     8432  case 629:
     8433
     8434/* Line 1806 of yacc.c  */
     8435#line 2394 "parser.yy"
    84198436    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84208437    break;
    84218438
    8422   case 629:
    8423 
    8424 /* Line 1806 of yacc.c  */
    8425 #line 2391 "parser.yy"
     8439  case 630:
     8440
     8441/* Line 1806 of yacc.c  */
     8442#line 2396 "parser.yy"
    84268443    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84278444    break;
    84288445
    8429   case 631:
    8430 
    8431 /* Line 1806 of yacc.c  */
    8432 #line 2406 "parser.yy"
     8446  case 632:
     8447
     8448/* Line 1806 of yacc.c  */
     8449#line 2411 "parser.yy"
    84338450    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84348451    break;
    84358452
    8436   case 632:
    8437 
    8438 /* Line 1806 of yacc.c  */
    8439 #line 2408 "parser.yy"
     8453  case 633:
     8454
     8455/* Line 1806 of yacc.c  */
     8456#line 2413 "parser.yy"
    84408457    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84418458    break;
    84428459
    8443   case 633:
    8444 
    8445 /* Line 1806 of yacc.c  */
    8446 #line 2413 "parser.yy"
     8460  case 634:
     8461
     8462/* Line 1806 of yacc.c  */
     8463#line 2418 "parser.yy"
    84478464    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    84488465    break;
    84498466
    8450   case 634:
    8451 
    8452 /* Line 1806 of yacc.c  */
    8453 #line 2415 "parser.yy"
     8467  case 635:
     8468
     8469/* Line 1806 of yacc.c  */
     8470#line 2420 "parser.yy"
    84548471    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    84558472    break;
    84568473
    8457   case 635:
    8458 
    8459 /* Line 1806 of yacc.c  */
    8460 #line 2417 "parser.yy"
     8474  case 636:
     8475
     8476/* Line 1806 of yacc.c  */
     8477#line 2422 "parser.yy"
    84618478    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84628479    break;
    84638480
    8464   case 636:
    8465 
    8466 /* Line 1806 of yacc.c  */
    8467 #line 2419 "parser.yy"
     8481  case 637:
     8482
     8483/* Line 1806 of yacc.c  */
     8484#line 2424 "parser.yy"
    84688485    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84698486    break;
    84708487
    8471   case 637:
    8472 
    8473 /* Line 1806 of yacc.c  */
    8474 #line 2421 "parser.yy"
     8488  case 638:
     8489
     8490/* Line 1806 of yacc.c  */
     8491#line 2426 "parser.yy"
    84758492    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84768493    break;
    84778494
    8478   case 639:
    8479 
    8480 /* Line 1806 of yacc.c  */
    8481 #line 2427 "parser.yy"
     8495  case 640:
     8496
     8497/* Line 1806 of yacc.c  */
     8498#line 2432 "parser.yy"
    84828499    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84838500    break;
    84848501
    8485   case 640:
    8486 
    8487 /* Line 1806 of yacc.c  */
    8488 #line 2429 "parser.yy"
     8502  case 641:
     8503
     8504/* Line 1806 of yacc.c  */
     8505#line 2434 "parser.yy"
    84898506    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84908507    break;
    84918508
    8492   case 641:
    8493 
    8494 /* Line 1806 of yacc.c  */
    8495 #line 2431 "parser.yy"
     8509  case 642:
     8510
     8511/* Line 1806 of yacc.c  */
     8512#line 2436 "parser.yy"
    84968513    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84978514    break;
    84988515
    8499   case 642:
    8500 
    8501 /* Line 1806 of yacc.c  */
    8502 #line 2436 "parser.yy"
     8516  case 643:
     8517
     8518/* Line 1806 of yacc.c  */
     8519#line 2441 "parser.yy"
    85038520    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    85048521    break;
    85058522
    8506   case 643:
    8507 
    8508 /* Line 1806 of yacc.c  */
    8509 #line 2438 "parser.yy"
     8523  case 644:
     8524
     8525/* Line 1806 of yacc.c  */
     8526#line 2443 "parser.yy"
    85108527    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85118528    break;
    85128529
    8513   case 644:
    8514 
    8515 /* Line 1806 of yacc.c  */
    8516 #line 2440 "parser.yy"
     8530  case 645:
     8531
     8532/* Line 1806 of yacc.c  */
     8533#line 2445 "parser.yy"
    85178534    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85188535    break;
    85198536
    8520   case 645:
    8521 
    8522 /* Line 1806 of yacc.c  */
    8523 #line 2446 "parser.yy"
     8537  case 646:
     8538
     8539/* Line 1806 of yacc.c  */
     8540#line 2451 "parser.yy"
    85248541    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    85258542    break;
    85268543
    8527   case 646:
    8528 
    8529 /* Line 1806 of yacc.c  */
    8530 #line 2448 "parser.yy"
     8544  case 647:
     8545
     8546/* Line 1806 of yacc.c  */
     8547#line 2453 "parser.yy"
    85318548    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    85328549    break;
    85338550
    8534   case 648:
    8535 
    8536 /* Line 1806 of yacc.c  */
    8537 #line 2454 "parser.yy"
     8551  case 649:
     8552
     8553/* Line 1806 of yacc.c  */
     8554#line 2459 "parser.yy"
    85388555    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    85398556    break;
    85408557
    8541   case 649:
    8542 
    8543 /* Line 1806 of yacc.c  */
    8544 #line 2456 "parser.yy"
     8558  case 650:
     8559
     8560/* Line 1806 of yacc.c  */
     8561#line 2461 "parser.yy"
    85458562    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    85468563    break;
    85478564
    8548   case 650:
    8549 
    8550 /* Line 1806 of yacc.c  */
    8551 #line 2458 "parser.yy"
     8565  case 651:
     8566
     8567/* Line 1806 of yacc.c  */
     8568#line 2463 "parser.yy"
    85528569    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    85538570    break;
    85548571
    8555   case 651:
    8556 
    8557 /* Line 1806 of yacc.c  */
    8558 #line 2460 "parser.yy"
     8572  case 652:
     8573
     8574/* Line 1806 of yacc.c  */
     8575#line 2465 "parser.yy"
    85598576    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    85608577    break;
    85618578
    8562   case 653:
    8563 
    8564 /* Line 1806 of yacc.c  */
    8565 #line 2475 "parser.yy"
     8579  case 654:
     8580
     8581/* Line 1806 of yacc.c  */
     8582#line 2480 "parser.yy"
    85668583    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85678584    break;
    85688585
    8569   case 654:
    8570 
    8571 /* Line 1806 of yacc.c  */
    8572 #line 2477 "parser.yy"
     8586  case 655:
     8587
     8588/* Line 1806 of yacc.c  */
     8589#line 2482 "parser.yy"
    85738590    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85748591    break;
    85758592
    8576   case 655:
    8577 
    8578 /* Line 1806 of yacc.c  */
    8579 #line 2482 "parser.yy"
     8593  case 656:
     8594
     8595/* Line 1806 of yacc.c  */
     8596#line 2487 "parser.yy"
    85808597    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85818598    break;
    85828599
    8583   case 656:
    8584 
    8585 /* Line 1806 of yacc.c  */
    8586 #line 2484 "parser.yy"
     8600  case 657:
     8601
     8602/* Line 1806 of yacc.c  */
     8603#line 2489 "parser.yy"
    85878604    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85888605    break;
    85898606
    8590   case 657:
    8591 
    8592 /* Line 1806 of yacc.c  */
    8593 #line 2486 "parser.yy"
     8607  case 658:
     8608
     8609/* Line 1806 of yacc.c  */
     8610#line 2491 "parser.yy"
    85948611    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85958612    break;
    85968613
    8597   case 658:
    8598 
    8599 /* Line 1806 of yacc.c  */
    8600 #line 2488 "parser.yy"
     8614  case 659:
     8615
     8616/* Line 1806 of yacc.c  */
     8617#line 2493 "parser.yy"
    86018618    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86028619    break;
    86038620
    8604   case 659:
    8605 
    8606 /* Line 1806 of yacc.c  */
    8607 #line 2490 "parser.yy"
     8621  case 660:
     8622
     8623/* Line 1806 of yacc.c  */
     8624#line 2495 "parser.yy"
    86088625    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86098626    break;
    86108627
    8611   case 661:
    8612 
    8613 /* Line 1806 of yacc.c  */
    8614 #line 2496 "parser.yy"
     8628  case 662:
     8629
     8630/* Line 1806 of yacc.c  */
     8631#line 2501 "parser.yy"
    86158632    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86168633    break;
    86178634
    8618   case 662:
    8619 
    8620 /* Line 1806 of yacc.c  */
    8621 #line 2498 "parser.yy"
     8635  case 663:
     8636
     8637/* Line 1806 of yacc.c  */
     8638#line 2503 "parser.yy"
    86228639    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86238640    break;
    86248641
    8625   case 663:
    8626 
    8627 /* Line 1806 of yacc.c  */
    8628 #line 2500 "parser.yy"
     8642  case 664:
     8643
     8644/* Line 1806 of yacc.c  */
     8645#line 2505 "parser.yy"
    86298646    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86308647    break;
    86318648
    8632   case 664:
    8633 
    8634 /* Line 1806 of yacc.c  */
    8635 #line 2505 "parser.yy"
     8649  case 665:
     8650
     8651/* Line 1806 of yacc.c  */
     8652#line 2510 "parser.yy"
    86368653    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    86378654    break;
    86388655
    8639   case 665:
    8640 
    8641 /* Line 1806 of yacc.c  */
    8642 #line 2507 "parser.yy"
     8656  case 666:
     8657
     8658/* Line 1806 of yacc.c  */
     8659#line 2512 "parser.yy"
    86438660    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86448661    break;
    86458662
    8646   case 666:
    8647 
    8648 /* Line 1806 of yacc.c  */
    8649 #line 2509 "parser.yy"
     8663  case 667:
     8664
     8665/* Line 1806 of yacc.c  */
     8666#line 2514 "parser.yy"
    86508667    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86518668    break;
    86528669
    8653   case 668:
    8654 
    8655 /* Line 1806 of yacc.c  */
    8656 #line 2516 "parser.yy"
     8670  case 669:
     8671
     8672/* Line 1806 of yacc.c  */
     8673#line 2521 "parser.yy"
    86578674    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    86588675    break;
    86598676
    8660   case 670:
    8661 
    8662 /* Line 1806 of yacc.c  */
    8663 #line 2527 "parser.yy"
     8677  case 671:
     8678
     8679/* Line 1806 of yacc.c  */
     8680#line 2532 "parser.yy"
    86648681    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86658682    break;
    86668683
    8667   case 671:
    8668 
    8669 /* Line 1806 of yacc.c  */
    8670 #line 2530 "parser.yy"
     8684  case 672:
     8685
     8686/* Line 1806 of yacc.c  */
     8687#line 2535 "parser.yy"
    86718688    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    86728689    break;
    86738690
    8674   case 672:
    8675 
    8676 /* Line 1806 of yacc.c  */
    8677 #line 2532 "parser.yy"
     8691  case 673:
     8692
     8693/* Line 1806 of yacc.c  */
     8694#line 2537 "parser.yy"
    86788695    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    86798696    break;
    86808697
    8681   case 673:
    8682 
    8683 /* Line 1806 of yacc.c  */
    8684 #line 2535 "parser.yy"
     8698  case 674:
     8699
     8700/* Line 1806 of yacc.c  */
     8701#line 2540 "parser.yy"
    86858702    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    86868703    break;
    86878704
    8688   case 674:
    8689 
    8690 /* Line 1806 of yacc.c  */
    8691 #line 2537 "parser.yy"
     8705  case 675:
     8706
     8707/* Line 1806 of yacc.c  */
     8708#line 2542 "parser.yy"
    86928709    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    86938710    break;
    86948711
    8695   case 675:
    8696 
    8697 /* Line 1806 of yacc.c  */
    8698 #line 2539 "parser.yy"
     8712  case 676:
     8713
     8714/* Line 1806 of yacc.c  */
     8715#line 2544 "parser.yy"
    86998716    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    87008717    break;
    87018718
    8702   case 677:
    8703 
    8704 /* Line 1806 of yacc.c  */
    8705 #line 2553 "parser.yy"
     8719  case 678:
     8720
     8721/* Line 1806 of yacc.c  */
     8722#line 2558 "parser.yy"
    87068723    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87078724    break;
    87088725
    8709   case 678:
    8710 
    8711 /* Line 1806 of yacc.c  */
    8712 #line 2555 "parser.yy"
     8726  case 679:
     8727
     8728/* Line 1806 of yacc.c  */
     8729#line 2560 "parser.yy"
    87138730    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87148731    break;
    87158732
    8716   case 679:
    8717 
    8718 /* Line 1806 of yacc.c  */
    8719 #line 2560 "parser.yy"
     8733  case 680:
     8734
     8735/* Line 1806 of yacc.c  */
     8736#line 2565 "parser.yy"
    87208737    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    87218738    break;
    87228739
    8723   case 680:
    8724 
    8725 /* Line 1806 of yacc.c  */
    8726 #line 2562 "parser.yy"
     8740  case 681:
     8741
     8742/* Line 1806 of yacc.c  */
     8743#line 2567 "parser.yy"
    87278744    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87288745    break;
    87298746
    8730   case 681:
    8731 
    8732 /* Line 1806 of yacc.c  */
    8733 #line 2564 "parser.yy"
     8747  case 682:
     8748
     8749/* Line 1806 of yacc.c  */
     8750#line 2569 "parser.yy"
    87348751    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87358752    break;
    87368753
    8737   case 682:
    8738 
    8739 /* Line 1806 of yacc.c  */
    8740 #line 2566 "parser.yy"
     8754  case 683:
     8755
     8756/* Line 1806 of yacc.c  */
     8757#line 2571 "parser.yy"
    87418758    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87428759    break;
    87438760
    8744   case 683:
    8745 
    8746 /* Line 1806 of yacc.c  */
    8747 #line 2568 "parser.yy"
     8761  case 684:
     8762
     8763/* Line 1806 of yacc.c  */
     8764#line 2573 "parser.yy"
    87488765    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87498766    break;
    87508767
    8751   case 685:
    8752 
    8753 /* Line 1806 of yacc.c  */
    8754 #line 2574 "parser.yy"
     8768  case 686:
     8769
     8770/* Line 1806 of yacc.c  */
     8771#line 2579 "parser.yy"
    87558772    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87568773    break;
    87578774
    8758   case 686:
    8759 
    8760 /* Line 1806 of yacc.c  */
    8761 #line 2576 "parser.yy"
     8775  case 687:
     8776
     8777/* Line 1806 of yacc.c  */
     8778#line 2581 "parser.yy"
    87628779    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87638780    break;
    87648781
    8765   case 687:
    8766 
    8767 /* Line 1806 of yacc.c  */
    8768 #line 2578 "parser.yy"
     8782  case 688:
     8783
     8784/* Line 1806 of yacc.c  */
     8785#line 2583 "parser.yy"
    87698786    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87708787    break;
    87718788
    8772   case 688:
    8773 
    8774 /* Line 1806 of yacc.c  */
    8775 #line 2583 "parser.yy"
     8789  case 689:
     8790
     8791/* Line 1806 of yacc.c  */
     8792#line 2588 "parser.yy"
    87768793    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87778794    break;
    87788795
    8779   case 689:
    8780 
    8781 /* Line 1806 of yacc.c  */
    8782 #line 2585 "parser.yy"
     8796  case 690:
     8797
     8798/* Line 1806 of yacc.c  */
     8799#line 2590 "parser.yy"
    87838800    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87848801    break;
    87858802
    8786   case 692:
    8787 
    8788 /* Line 1806 of yacc.c  */
    8789 #line 2595 "parser.yy"
     8803  case 693:
     8804
     8805/* Line 1806 of yacc.c  */
     8806#line 2600 "parser.yy"
    87908807    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    87918808    break;
    87928809
    8793   case 695:
    8794 
    8795 /* Line 1806 of yacc.c  */
    8796 #line 2605 "parser.yy"
     8810  case 696:
     8811
     8812/* Line 1806 of yacc.c  */
     8813#line 2610 "parser.yy"
    87978814    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87988815    break;
    87998816
    8800   case 696:
    8801 
    8802 /* Line 1806 of yacc.c  */
    8803 #line 2607 "parser.yy"
     8817  case 697:
     8818
     8819/* Line 1806 of yacc.c  */
     8820#line 2612 "parser.yy"
    88048821    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88058822    break;
    88068823
    8807   case 697:
    8808 
    8809 /* Line 1806 of yacc.c  */
    8810 #line 2609 "parser.yy"
     8824  case 698:
     8825
     8826/* Line 1806 of yacc.c  */
     8827#line 2614 "parser.yy"
    88118828    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88128829    break;
    88138830
    8814   case 698:
    8815 
    8816 /* Line 1806 of yacc.c  */
    8817 #line 2611 "parser.yy"
     8831  case 699:
     8832
     8833/* Line 1806 of yacc.c  */
     8834#line 2616 "parser.yy"
    88188835    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88198836    break;
    88208837
    8821   case 699:
    8822 
    8823 /* Line 1806 of yacc.c  */
    8824 #line 2613 "parser.yy"
     8838  case 700:
     8839
     8840/* Line 1806 of yacc.c  */
     8841#line 2618 "parser.yy"
    88258842    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88268843    break;
    88278844
    8828   case 700:
    8829 
    8830 /* Line 1806 of yacc.c  */
    8831 #line 2615 "parser.yy"
     8845  case 701:
     8846
     8847/* Line 1806 of yacc.c  */
     8848#line 2620 "parser.yy"
    88328849    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88338850    break;
    88348851
    8835   case 701:
    8836 
    8837 /* Line 1806 of yacc.c  */
    8838 #line 2622 "parser.yy"
     8852  case 702:
     8853
     8854/* Line 1806 of yacc.c  */
     8855#line 2627 "parser.yy"
    88398856    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88408857    break;
    88418858
    8842   case 702:
    8843 
    8844 /* Line 1806 of yacc.c  */
    8845 #line 2624 "parser.yy"
     8859  case 703:
     8860
     8861/* Line 1806 of yacc.c  */
     8862#line 2629 "parser.yy"
    88468863    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88478864    break;
    88488865
    8849   case 703:
    8850 
    8851 /* Line 1806 of yacc.c  */
    8852 #line 2626 "parser.yy"
     8866  case 704:
     8867
     8868/* Line 1806 of yacc.c  */
     8869#line 2631 "parser.yy"
    88538870    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88548871    break;
    88558872
    8856   case 704:
    8857 
    8858 /* Line 1806 of yacc.c  */
    8859 #line 2628 "parser.yy"
     8873  case 705:
     8874
     8875/* Line 1806 of yacc.c  */
     8876#line 2633 "parser.yy"
    88608877    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    88618878    break;
    88628879
    8863   case 705:
    8864 
    8865 /* Line 1806 of yacc.c  */
    8866 #line 2630 "parser.yy"
     8880  case 706:
     8881
     8882/* Line 1806 of yacc.c  */
     8883#line 2635 "parser.yy"
    88678884    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88688885    break;
    88698886
    8870   case 706:
    8871 
    8872 /* Line 1806 of yacc.c  */
    8873 #line 2632 "parser.yy"
     8887  case 707:
     8888
     8889/* Line 1806 of yacc.c  */
     8890#line 2637 "parser.yy"
    88748891    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88758892    break;
    88768893
    8877   case 707:
    8878 
    8879 /* Line 1806 of yacc.c  */
    8880 #line 2634 "parser.yy"
     8894  case 708:
     8895
     8896/* Line 1806 of yacc.c  */
     8897#line 2639 "parser.yy"
    88818898    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88828899    break;
    88838900
    8884   case 708:
    8885 
    8886 /* Line 1806 of yacc.c  */
    8887 #line 2636 "parser.yy"
     8901  case 709:
     8902
     8903/* Line 1806 of yacc.c  */
     8904#line 2641 "parser.yy"
    88888905    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88898906    break;
    88908907
    8891   case 709:
    8892 
    8893 /* Line 1806 of yacc.c  */
    8894 #line 2638 "parser.yy"
     8908  case 710:
     8909
     8910/* Line 1806 of yacc.c  */
     8911#line 2643 "parser.yy"
    88958912    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    88968913    break;
    88978914
    8898   case 710:
    8899 
    8900 /* Line 1806 of yacc.c  */
    8901 #line 2640 "parser.yy"
     8915  case 711:
     8916
     8917/* Line 1806 of yacc.c  */
     8918#line 2645 "parser.yy"
    89028919    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89038920    break;
    89048921
    8905   case 711:
    8906 
    8907 /* Line 1806 of yacc.c  */
    8908 #line 2645 "parser.yy"
     8922  case 712:
     8923
     8924/* Line 1806 of yacc.c  */
     8925#line 2650 "parser.yy"
    89098926    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    89108927    break;
    89118928
    8912   case 712:
    8913 
    8914 /* Line 1806 of yacc.c  */
    8915 #line 2647 "parser.yy"
     8929  case 713:
     8930
     8931/* Line 1806 of yacc.c  */
     8932#line 2652 "parser.yy"
    89168933    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    89178934    break;
    89188935
    8919   case 713:
    8920 
    8921 /* Line 1806 of yacc.c  */
    8922 #line 2652 "parser.yy"
     8936  case 714:
     8937
     8938/* Line 1806 of yacc.c  */
     8939#line 2657 "parser.yy"
    89238940    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    89248941    break;
    89258942
    8926   case 714:
    8927 
    8928 /* Line 1806 of yacc.c  */
    8929 #line 2654 "parser.yy"
     8943  case 715:
     8944
     8945/* Line 1806 of yacc.c  */
     8946#line 2659 "parser.yy"
    89308947    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    89318948    break;
    89328949
    8933   case 716:
    8934 
    8935 /* Line 1806 of yacc.c  */
    8936 #line 2681 "parser.yy"
     8950  case 717:
     8951
     8952/* Line 1806 of yacc.c  */
     8953#line 2686 "parser.yy"
    89378954    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89388955    break;
    89398956
    8940   case 720:
    8941 
    8942 /* Line 1806 of yacc.c  */
    8943 #line 2692 "parser.yy"
     8957  case 721:
     8958
     8959/* Line 1806 of yacc.c  */
     8960#line 2697 "parser.yy"
    89448961    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89458962    break;
    89468963
    8947   case 721:
    8948 
    8949 /* Line 1806 of yacc.c  */
    8950 #line 2694 "parser.yy"
     8964  case 722:
     8965
     8966/* Line 1806 of yacc.c  */
     8967#line 2699 "parser.yy"
    89518968    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89528969    break;
    89538970
    8954   case 722:
    8955 
    8956 /* Line 1806 of yacc.c  */
    8957 #line 2696 "parser.yy"
     8971  case 723:
     8972
     8973/* Line 1806 of yacc.c  */
     8974#line 2701 "parser.yy"
    89588975    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89598976    break;
    89608977
    8961   case 723:
    8962 
    8963 /* Line 1806 of yacc.c  */
    8964 #line 2698 "parser.yy"
     8978  case 724:
     8979
     8980/* Line 1806 of yacc.c  */
     8981#line 2703 "parser.yy"
    89658982    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89668983    break;
    89678984
    8968   case 724:
    8969 
    8970 /* Line 1806 of yacc.c  */
    8971 #line 2700 "parser.yy"
     8985  case 725:
     8986
     8987/* Line 1806 of yacc.c  */
     8988#line 2705 "parser.yy"
    89728989    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89738990    break;
    89748991
    8975   case 725:
    8976 
    8977 /* Line 1806 of yacc.c  */
    8978 #line 2702 "parser.yy"
     8992  case 726:
     8993
     8994/* Line 1806 of yacc.c  */
     8995#line 2707 "parser.yy"
    89798996    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89808997    break;
    89818998
    8982   case 726:
    8983 
    8984 /* Line 1806 of yacc.c  */
    8985 #line 2709 "parser.yy"
     8999  case 727:
     9000
     9001/* Line 1806 of yacc.c  */
     9002#line 2714 "parser.yy"
    89869003    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89879004    break;
    89889005
    8989   case 727:
    8990 
    8991 /* Line 1806 of yacc.c  */
    8992 #line 2711 "parser.yy"
     9006  case 728:
     9007
     9008/* Line 1806 of yacc.c  */
     9009#line 2716 "parser.yy"
    89939010    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89949011    break;
    89959012
    8996   case 728:
    8997 
    8998 /* Line 1806 of yacc.c  */
    8999 #line 2713 "parser.yy"
     9013  case 729:
     9014
     9015/* Line 1806 of yacc.c  */
     9016#line 2718 "parser.yy"
    90009017    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90019018    break;
    90029019
    9003   case 729:
    9004 
    9005 /* Line 1806 of yacc.c  */
    9006 #line 2715 "parser.yy"
     9020  case 730:
     9021
     9022/* Line 1806 of yacc.c  */
     9023#line 2720 "parser.yy"
    90079024    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90089025    break;
    90099026
    9010   case 730:
    9011 
    9012 /* Line 1806 of yacc.c  */
    9013 #line 2717 "parser.yy"
     9027  case 731:
     9028
     9029/* Line 1806 of yacc.c  */
     9030#line 2722 "parser.yy"
    90149031    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90159032    break;
    90169033
    9017   case 731:
    9018 
    9019 /* Line 1806 of yacc.c  */
    9020 #line 2719 "parser.yy"
     9034  case 732:
     9035
     9036/* Line 1806 of yacc.c  */
     9037#line 2724 "parser.yy"
    90219038    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90229039    break;
    90239040
    9024   case 732:
    9025 
    9026 /* Line 1806 of yacc.c  */
    9027 #line 2724 "parser.yy"
     9041  case 733:
     9042
     9043/* Line 1806 of yacc.c  */
     9044#line 2729 "parser.yy"
    90289045    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    90299046    break;
    90309047
    9031   case 733:
    9032 
    9033 /* Line 1806 of yacc.c  */
    9034 #line 2729 "parser.yy"
     9048  case 734:
     9049
     9050/* Line 1806 of yacc.c  */
     9051#line 2734 "parser.yy"
    90359052    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    90369053    break;
    90379054
    9038   case 734:
    9039 
    9040 /* Line 1806 of yacc.c  */
    9041 #line 2731 "parser.yy"
     9055  case 735:
     9056
     9057/* Line 1806 of yacc.c  */
     9058#line 2736 "parser.yy"
    90429059    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90439060    break;
    90449061
    9045   case 735:
    9046 
    9047 /* Line 1806 of yacc.c  */
    9048 #line 2733 "parser.yy"
     9062  case 736:
     9063
     9064/* Line 1806 of yacc.c  */
     9065#line 2738 "parser.yy"
    90499066    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90509067    break;
    90519068
    9052   case 738:
    9053 
    9054 /* Line 1806 of yacc.c  */
    9055 #line 2757 "parser.yy"
     9069  case 739:
     9070
     9071/* Line 1806 of yacc.c  */
     9072#line 2762 "parser.yy"
    90569073    { (yyval.en) = 0; }
    90579074    break;
    90589075
    9059   case 739:
    9060 
    9061 /* Line 1806 of yacc.c  */
    9062 #line 2759 "parser.yy"
     9076  case 740:
     9077
     9078/* Line 1806 of yacc.c  */
     9079#line 2764 "parser.yy"
    90639080    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    90649081    break;
     
    90679084
    90689085/* Line 1806 of yacc.c  */
    9069 #line 9070 "Parser/parser.cc"
     9086#line 9087 "Parser/parser.cc"
    90709087      default: break;
    90719088    }
     
    92989315
    92999316/* Line 2067 of yacc.c  */
    9300 #line 2762 "parser.yy"
     9317#line 2767 "parser.yy"
    93019318
    93029319// ----end of grammar----
  • src/Parser/parser.yy

    r99f4165 r51b1202  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 30 15:29:19 2015
    13 // Update Count     : 1327
     12// Last Modified On : Tue Aug 11 16:01:49 2015
     13// Update Count     : 1350
    1414//
    1515
     
    338338        | zero_one
    339339                { $$ = new VarRefNode( $1 ); }
    340         | constant
    341                 { $$ = $1; }
    342         | string_literal_list
    343                 { $$ = $1; }
    344340        | '(' comma_expression ')'
    345341                { $$ = $2; }
     
    414410unary_expression:
    415411        postfix_expression
     412        // first location where constant/string can have operator applied: sizeof 3/sizeof "abc"
     413        // still requires semantics checks, e.g., ++3, 3--, *3, &&3
     414        | constant
     415                { $$ = $1; }
     416        | string_literal_list
     417                { $$ = $1; }
    416418        | ICR unary_expression
    417419                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), $2 ); }
     
    641643                // requires its own scope
    642644          push push
    643           label_declaration_opt                                                         // GCC, local labels
     645          local_label_declaration_opt                                           // GCC, local labels
    644646          block_item_list pop '}'                                                       // C99, intermix declarations and statements
    645647                { $$ = new CompoundStmtNode( $5 ); }
     
    949951        ;
    950952
    951 label_declaration_opt:                                                                  // GCC, local label
     953local_label_declaration_opt:                                                    // GCC, local label
    952954        // empty
    953         | label_declaration_list
    954         ;
    955 
    956 label_declaration_list:                                                                 // GCC, local label
    957         LABEL label_list ';'
    958         | label_declaration_list LABEL label_list ';'
    959         ;
    960 
    961 label_list:                                                                                             // GCC, local label
     955        | local_label_declaration_list
     956        ;
     957
     958local_label_declaration_list:                                                   // GCC, local label
     959        LABEL local_label_list ';'
     960        | local_label_declaration_list LABEL local_label_list ';'
     961        ;
     962
     963local_label_list:                                                                               // GCC, local label
    962964        no_attr_identifier_or_type_name                         {}
    963         | label_list ',' no_attr_identifier_or_type_name {}
     965        | local_label_list ',' no_attr_identifier_or_type_name {}
    964966        ;
    965967
     
    16911693
    16921694designator:
    1693         '.' no_attr_identifier_or_type_name                                     // C99, field name
    1694                 { $$ = new VarRefNode( $2 ); }
     1695        // only ".0" and ".1" allowed => semantic check
     1696        FLOATINGconstant
     1697                { $$ = new DesignatorNode( new VarRefNode( $1 ) ); }
     1698        | '.' no_attr_identifier_or_type_name                           // C99, field name
     1699                { $$ = new DesignatorNode( new VarRefNode( $2 ) ); }
    16951700        | '[' push assignment_expression pop ']'                        // C99, single array element
    16961701                // assignment_expression used instead of constant_expression because of shift/reduce conflicts with tuple.
    1697                 { $$ = $3; }
     1702                { $$ = new DesignatorNode( $3, true ); }
    16981703        | '[' push subrange pop ']'                                                     // CFA, multiple array elements
    1699                 { $$ = $3; }
     1704                { $$ = new DesignatorNode( $3, true ); }
    17001705        | '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements
    1701                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), $3, $5 ); }
     1706                { $$ = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), $3, $5 ), true ); }
    17021707        | '.' '[' push field_list pop ']'                                       // CFA, tuple field selector
    1703                 { $$ = $4; }
     1708                { $$ = new DesignatorNode( $4 ); }
    17041709        ;
    17051710
Note: See TracChangeset for help on using the changeset viewer.