Changes in / [f923b5f:d3a804f5]


Ignore:
Location:
src
Files:
2 added
22 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified src/CodeGen/CodeGenerator.cc

    rf923b5f rd3a804f5  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Feb  1 14:09:02 2017
    13 // Update Count     : 416
     12// Last Modified On : Thu Feb  9 15:05:18 2017
     13// Update Count     : 417
    1414//
    1515
     
    765765        }
    766766
     767        void CodeGenerator::visit( AsmDecl * asmDecl ) {
     768                output << "asm ";
     769                AsmStmt * asmStmt = asmDecl->get_stmt();
     770                output << "( ";
     771                if ( asmStmt->get_instruction() ) asmStmt->get_instruction()->accept( *this );
     772                output << " )" ;
     773        }
     774
    767775        void CodeGenerator::visit( IfStmt * ifStmt ) {
    768776                output << "if ( ";
  • TabularUnified src/CodeGen/CodeGenerator.h

    rf923b5f rd3a804f5  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jan 17 16:55:40 2017
    13 // Update Count     : 48
     12// Last Modified On : Thu Feb  9 15:06:21 2017
     13// Update Count     : 49
    1414//
    1515
     
    8282                virtual void visit( ExprStmt * );
    8383                virtual void visit( AsmStmt * );
     84                virtual void visit( AsmDecl * );                                // special: statement in declaration context
    8485                virtual void visit( IfStmt * );
    8586                virtual void visit( SwitchStmt * );
  • TabularUnified src/Parser/DeclarationNode.cc

    rf923b5f rd3a804f5  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  6 16:01:29 2017
    13 // Update Count     : 739
     12// Last Modified On : Thu Feb  9 15:54:59 2017
     13// Update Count     : 742
    1414//
    1515
     
    5656                asmName( nullptr ),
    5757                initializer( nullptr ),
    58                 extension( false ) {
     58                extension( false ),
     59                asmStmt( nullptr ) {
    5960
    6061//      variable.name = nullptr;
     
    7778        delete type;
    7879        delete bitfieldWidth;
     80
     81        delete asmStmt;
    7982        // asmName, no delete, passed to next stage
    8083        delete initializer;
     
    98101        newnode->initializer = maybeClone( initializer );
    99102        newnode->extension = extension;
     103        newnode->asmStmt = maybeClone( asmStmt );
    100104        newnode->error = error;
    101105
     
    414418}
    415419
     420DeclarationNode * DeclarationNode::newAsmStmt( StatementNode * stmt ) {
     421        DeclarationNode * newnode = new DeclarationNode;
     422        newnode->asmStmt = stmt;
     423        return newnode;
     424}
     425
    416426void appendError( string & dst, const string & src ) {
    417427        if ( src.empty() ) return;
     
    495505                return this;
    496506        } // if
    497 
    498         checkQualifiers( q->type, type );
    499         addQualifiersToType( q->type, type );
    500507
    501508        if ( q->type->forall ) {
     
    513520                q->type->forall = nullptr;
    514521        } // if
     522
     523        checkQualifiers( q->type, type );
     524        addQualifiersToType( q->type, type );
     525
    515526        delete q;
    516527        return this;
     
    980991Declaration * DeclarationNode::build() const {
    981992        if ( ! error.empty() ) throw SemanticError( error + " in declaration of ", this );
     993
     994        if ( asmStmt ) {
     995                return new AsmDecl( safe_dynamic_cast<AsmStmt *>( asmStmt->build() ) );
     996        } // if
    982997
    983998//      if ( variable.name ) {
  • TabularUnified src/Parser/ParseNode.h

    rf923b5f rd3a804f5  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  6 15:52:21 2017
    13 // Update Count     : 657
     12// Last Modified On : Thu Feb  9 14:45:28 2017
     13// Update Count     : 658
    1414//
    1515
     
    251251        static DeclarationNode * newAttr( std::string *, DeclarationNode * type ); // @ attributes
    252252        static DeclarationNode * newAttribute( std::string *, ExpressionNode * expr = nullptr ); // gcc attributes
     253        static DeclarationNode * newAsmStmt( StatementNode * stmt ); // gcc external asm statement
    253254
    254255        DeclarationNode();
     
    329330        bool extension = false;
    330331        std::string error;
     332        StatementNode * asmStmt;
    331333
    332334        static UniqueName anonymous;
  • TabularUnified src/Parser/parser.cc

    rf923b5f rd3a804f5  
    626626
    627627/* YYFINAL -- State number of the termination state.  */
    628 #define YYFINAL  240
     628#define YYFINAL  238
    629629/* YYLAST -- Last index in YYTABLE.  */
    630 #define YYLAST   10925
     630#define YYLAST   10958
    631631
    632632/* YYNTOKENS -- Number of terminals.  */
     
    637637#define YYNRULES  756
    638638/* YYNRULES -- Number of states.  */
    639 #define YYNSTATES  1550
     639#define YYNSTATES  1554
    640640
    641641/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    746746    1760,  1770,  1771,  1783,  1785,  1789,  1793,  1797,  1799,  1801,
    747747    1807,  1810,  1816,  1817,  1819,  1821,  1825,  1826,  1828,  1830,
    748     1832,  1834,  1835,  1842,  1845,  1847,  1850,  1855,  1858,  1862,
    749     1866,  1870,  1875,  1881,  1887,  1893,  1900,  1902,  1904,  1906,
    750     1910,  1911,  1917,  1918,  1920,  1922,  1925,  1932,  1934,  1938,
    751     1939,  1941,  1946,  1948,  1950,  1952,  1954,  1957,  1959,  1962,
    752     1965,  1967,  1971,  1974,  1978,  1983,  1986,  1991,  1996,  2000,
    753     2009,  2013,  2016,  2018,  2021,  2028,  2037,  2041,  2044,  2048,
    754     2052,  2057,  2062,  2066,  2068,  2070,  2072,  2077,  2086,  2090,
    755     2093,  2097,  2101,  2106,  2111,  2115,  2118,  2120,  2123,  2126,
    756     2128,  2132,  2135,  2139,  2144,  2147,  2152,  2157,  2161,  2168,
    757     2177,  2181,  2184,  2186,  2189,  2192,  2195,  2199,  2204,  2207,
    758     2212,  2217,  2221,  2228,  2237,  2241,  2244,  2246,  2249,  2252,
    759     2254,  2256,  2259,  2263,  2268,  2271,  2276,  2283,  2292,  2294,
    760     2297,  2300,  2302,  2305,  2308,  2312,  2317,  2319,  2324,  2329,
    761     2333,  2339,  2348,  2352,  2355,  2359,  2361,  2367,  2373,  2380,
    762     2387,  2389,  2392,  2395,  2397,  2400,  2403,  2407,  2412,  2414,
    763     2419,  2424,  2428,  2434,  2443,  2447,  2449,  2452,  2454,  2457,
    764     2464,  2470,  2477,  2485,  2493,  2495,  2498,  2501,  2503,  2506,
    765     2509,  2513,  2518,  2520,  2525,  2530,  2534,  2543,  2547,  2549,
    766     2551,  2554,  2556,  2558,  2561,  2565,  2568,  2572,  2575,  2579,
    767     2583,  2586,  2591,  2595,  2598,  2602,  2605,  2610,  2614,  2617,
    768     2624,  2631,  2638,  2646,  2648,  2651,  2653,  2655,  2657,  2660,
    769     2664,  2667,  2671,  2674,  2678,  2682,  2687,  2690,  2694,  2699,
    770     2702,  2708,  2715,  2722,  2723,  2725,  2726
     748    1832,  1838,  1839,  1846,  1849,  1851,  1854,  1859,  1862,  1866,
     749    1870,  1874,  1879,  1885,  1891,  1897,  1904,  1906,  1908,  1910,
     750    1914,  1915,  1921,  1922,  1924,  1926,  1929,  1936,  1938,  1942,
     751    1943,  1945,  1950,  1952,  1954,  1956,  1958,  1961,  1963,  1966,
     752    1969,  1971,  1975,  1978,  1982,  1987,  1990,  1995,  2000,  2004,
     753    2013,  2017,  2020,  2022,  2025,  2032,  2041,  2045,  2048,  2052,
     754    2056,  2061,  2066,  2070,  2072,  2074,  2076,  2081,  2090,  2094,
     755    2097,  2101,  2105,  2110,  2115,  2119,  2122,  2124,  2127,  2130,
     756    2132,  2136,  2139,  2143,  2148,  2151,  2156,  2161,  2165,  2172,
     757    2181,  2185,  2188,  2190,  2193,  2196,  2199,  2203,  2208,  2211,
     758    2216,  2221,  2225,  2232,  2241,  2245,  2248,  2250,  2253,  2256,
     759    2258,  2260,  2263,  2267,  2272,  2275,  2280,  2287,  2296,  2298,
     760    2301,  2304,  2306,  2309,  2312,  2316,  2321,  2323,  2328,  2333,
     761    2337,  2343,  2352,  2356,  2359,  2363,  2365,  2371,  2377,  2384,
     762    2391,  2393,  2396,  2399,  2401,  2404,  2407,  2411,  2416,  2418,
     763    2423,  2428,  2432,  2438,  2447,  2451,  2453,  2456,  2458,  2461,
     764    2468,  2474,  2481,  2489,  2497,  2499,  2502,  2505,  2507,  2510,
     765    2513,  2517,  2522,  2524,  2529,  2534,  2538,  2547,  2551,  2553,
     766    2555,  2558,  2560,  2562,  2565,  2569,  2572,  2576,  2579,  2583,
     767    2587,  2590,  2595,  2599,  2602,  2606,  2609,  2614,  2618,  2621,
     768    2628,  2635,  2642,  2650,  2652,  2655,  2657,  2659,  2661,  2664,
     769    2668,  2671,  2675,  2678,  2682,  2686,  2691,  2694,  2698,  2703,
     770    2706,  2712,  2719,  2726,  2727,  2729,  2730
    771771};
    772772
     
    957957     307,   140,   121,   139,   315,    -1,    -1,   309,    -1,   311,
    958958      -1,   309,   139,   311,    -1,    -1,   309,    -1,   220,    -1,
    959      313,    -1,   206,    -1,    -1,     5,    84,   312,   119,   310,
    960      120,    -1,    43,   311,    -1,   314,    -1,   329,   181,    -1,
    961      333,   139,   215,   181,    -1,   224,   181,    -1,   232,   329,
    962      181,    -1,   235,   329,   181,    -1,   239,   329,   181,    -1,
    963      239,   235,   329,   181,    -1,   232,   333,   139,   215,   181,
    964       -1,   235,   333,   139,   215,   181,    -1,   239,   333,   139,
    965      215,   181,    -1,   239,   235,   333,   139,   215,   181,    -1,
    966      324,    -1,   337,    -1,   329,    -1,   171,   127,   171,    -1,
    967       -1,    67,   114,   146,   115,   318,    -1,    -1,   319,    -1,
    968      320,    -1,   319,   320,    -1,    42,   114,   114,   321,   115,
    969      115,    -1,   322,    -1,   321,   121,   322,    -1,    -1,   323,
    970       -1,   323,   114,   150,   115,    -1,    75,    -1,    77,    -1,
    971       78,    -1,    10,    -1,   325,   318,    -1,   326,    -1,   327,
    972      318,    -1,   328,   318,    -1,   142,    -1,   114,   325,   115,
    973       -1,   157,   324,    -1,   157,   235,   324,    -1,   114,   326,
    974      115,   318,    -1,   325,   355,    -1,   114,   326,   115,   355,
    975       -1,   114,   327,   115,   356,    -1,   114,   327,   115,    -1,
    976      114,   326,   115,   114,   139,   270,   140,   115,    -1,   114,
    977      328,   115,    -1,   330,   318,    -1,   331,    -1,   332,   318,
    978       -1,   325,   114,   139,   270,   140,   115,    -1,   114,   331,
    979      115,   114,   139,   270,   140,   115,    -1,   114,   330,   115,
    980       -1,   157,   329,    -1,   157,   235,   329,    -1,   114,   331,
    981      115,    -1,   114,   331,   115,   355,    -1,   114,   332,   115,
    982      356,    -1,   114,   332,   115,    -1,   334,    -1,   335,    -1,
    983      336,    -1,   325,   114,   277,   115,    -1,   114,   335,   115,
    984      114,   139,   270,   140,   115,    -1,   114,   334,   115,    -1,
    985      157,   333,    -1,   157,   235,   333,    -1,   114,   335,   115,
    986       -1,   114,   335,   115,   355,    -1,   114,   336,   115,   356,
    987       -1,   114,   336,   115,    -1,   338,   318,    -1,   339,    -1,
    988      340,   318,    -1,   341,   318,    -1,   347,    -1,   114,   338,
    989      115,    -1,   157,   337,    -1,   157,   235,   337,    -1,   114,
    990      339,   115,   318,    -1,   338,   355,    -1,   114,   339,   115,
    991      355,    -1,   114,   340,   115,   356,    -1,   114,   340,   115,
    992       -1,   338,   114,   139,   270,   140,   115,    -1,   114,   339,
    993      115,   114,   139,   270,   140,   115,    -1,   114,   341,   115,
    994       -1,   325,   318,    -1,   343,    -1,   344,   318,    -1,   345,
    995      318,    -1,   157,   342,    -1,   157,   235,   342,    -1,   114,
    996      343,   115,   318,    -1,   325,   361,    -1,   114,   343,   115,
    997      355,    -1,   114,   344,   115,   356,    -1,   114,   344,   115,
    998       -1,   325,   114,   139,   270,   140,   115,    -1,   114,   343,
    999      115,   114,   139,   270,   140,   115,    -1,   114,   345,   115,
    1000       -1,   347,   318,    -1,   348,    -1,   349,   318,    -1,   350,
    1001      318,    -1,    77,    -1,    78,    -1,   157,   346,    -1,   157,
    1002      235,   346,    -1,   114,   348,   115,   318,    -1,   347,   361,
    1003       -1,   114,   348,   115,   361,    -1,   347,   114,   139,   270,
    1004      140,   115,    -1,   114,   348,   115,   114,   139,   270,   140,
    1005      115,    -1,   352,    -1,   353,   318,    -1,   354,   318,    -1,
    1006      157,    -1,   157,   235,    -1,   157,   351,    -1,   157,   235,
    1007      351,    -1,   114,   352,   115,   318,    -1,   355,    -1,   114,
    1008      352,   115,   355,    -1,   114,   353,   115,   356,    -1,   114,
    1009      353,   115,    -1,   114,   139,   270,   140,   115,    -1,   114,
    1010      352,   115,   114,   139,   270,   140,   115,    -1,   114,   354,
    1011      115,    -1,   116,   117,    -1,   116,   117,   356,    -1,   356,
    1012       -1,   116,   139,   172,   140,   117,    -1,   116,   139,   122,
    1013      140,   117,    -1,   356,   116,   139,   172,   140,   117,    -1,
    1014      356,   116,   139,   122,   140,   117,    -1,   358,    -1,   359,
    1015      318,    -1,   360,   318,    -1,   157,    -1,   157,   235,    -1,
    1016      157,   357,    -1,   157,   235,   357,    -1,   114,   358,   115,
    1017      318,    -1,   361,    -1,   114,   358,   115,   361,    -1,   114,
    1018      359,   115,   356,    -1,   114,   359,   115,    -1,   114,   139,
    1019      270,   140,   115,    -1,   114,   358,   115,   114,   139,   270,
    1020      140,   115,    -1,   114,   360,   115,    -1,   362,    -1,   362,
    1021      356,    -1,   356,    -1,   116,   117,    -1,   116,   139,   235,
    1022      122,   140,   117,    -1,   116,   139,   235,   140,   117,    -1,
    1023      116,   139,   235,   172,   140,   117,    -1,   116,   139,     7,
    1024      234,   172,   140,   117,    -1,   116,   139,   235,     7,   172,
    1025      140,   117,    -1,   364,    -1,   365,   318,    -1,   366,   318,
    1026       -1,   157,    -1,   157,   235,    -1,   157,   363,    -1,   157,
    1027      235,   363,    -1,   114,   364,   115,   318,    -1,   355,    -1,
    1028      114,   364,   115,   355,    -1,   114,   365,   115,   356,    -1,
    1029      114,   365,   115,    -1,   114,   364,   115,   114,   139,   270,
    1030      140,   115,    -1,   114,   366,   115,    -1,   368,    -1,   376,
    1031       -1,   235,   376,    -1,   369,    -1,   370,    -1,   157,   233,
    1032       -1,   235,   157,   233,    -1,   157,   377,    -1,   235,   157,
    1033      377,    -1,   157,   367,    -1,   235,   157,   367,    -1,   116,
    1034      117,   233,    -1,   371,   233,    -1,   116,   117,   356,   233,
    1035       -1,   371,   356,   233,    -1,   356,   233,    -1,   116,   117,
    1036      369,    -1,   371,   369,    -1,   116,   117,   356,   369,    -1,
    1037      371,   356,   369,    -1,   356,   369,    -1,   116,   139,   235,
    1038      122,   140,   117,    -1,   116,   139,   235,   172,   140,   117,
    1039       -1,   116,   139,   239,   172,   140,   117,    -1,   116,   139,
    1040      239,   235,   172,   140,   117,    -1,   376,    -1,   235,   376,
    1041       -1,   373,    -1,   374,    -1,   375,    -1,   157,   233,    -1,
    1042      235,   157,   233,    -1,   157,   377,    -1,   235,   157,   377,
    1043       -1,   157,   372,    -1,   235,   157,   372,    -1,   116,   117,
    1044      233,    -1,   116,   117,   356,   233,    -1,   356,   233,    -1,
    1045      116,   117,   374,    -1,   116,   117,   356,   374,    -1,   356,
    1046      374,    -1,   116,   139,   269,   140,   117,    -1,   376,   114,
    1047      139,   266,   140,   115,    -1,   226,   114,   139,   266,   140,
    1048      115,    -1,    -1,   121,    -1,    -1,   136,   172,    -1
     959     313,    -1,    67,   114,   146,   115,   137,    -1,    -1,     5,
     960      84,   312,   119,   310,   120,    -1,    43,   311,    -1,   314,
     961      -1,   329,   181,    -1,   333,   139,   215,   181,    -1,   224,
     962     181,    -1,   232,   329,   181,    -1,   235,   329,   181,    -1,
     963     239,   329,   181,    -1,   239,   235,   329,   181,    -1,   232,
     964     333,   139,   215,   181,    -1,   235,   333,   139,   215,   181,
     965      -1,   239,   333,   139,   215,   181,    -1,   239,   235,   333,
     966     139,   215,   181,    -1,   324,    -1,   337,    -1,   329,    -1,
     967     171,   127,   171,    -1,    -1,    67,   114,   146,   115,   318,
     968      -1,    -1,   319,    -1,   320,    -1,   319,   320,    -1,    42,
     969     114,   114,   321,   115,   115,    -1,   322,    -1,   321,   121,
     970     322,    -1,    -1,   323,    -1,   323,   114,   150,   115,    -1,
     971      75,    -1,    77,    -1,    78,    -1,    10,    -1,   325,   318,
     972      -1,   326,    -1,   327,   318,    -1,   328,   318,    -1,   142,
     973      -1,   114,   325,   115,    -1,   157,   324,    -1,   157,   235,
     974     324,    -1,   114,   326,   115,   318,    -1,   325,   355,    -1,
     975     114,   326,   115,   355,    -1,   114,   327,   115,   356,    -1,
     976     114,   327,   115,    -1,   114,   326,   115,   114,   139,   270,
     977     140,   115,    -1,   114,   328,   115,    -1,   330,   318,    -1,
     978     331,    -1,   332,   318,    -1,   325,   114,   139,   270,   140,
     979     115,    -1,   114,   331,   115,   114,   139,   270,   140,   115,
     980      -1,   114,   330,   115,    -1,   157,   329,    -1,   157,   235,
     981     329,    -1,   114,   331,   115,    -1,   114,   331,   115,   355,
     982      -1,   114,   332,   115,   356,    -1,   114,   332,   115,    -1,
     983     334,    -1,   335,    -1,   336,    -1,   325,   114,   277,   115,
     984      -1,   114,   335,   115,   114,   139,   270,   140,   115,    -1,
     985     114,   334,   115,    -1,   157,   333,    -1,   157,   235,   333,
     986      -1,   114,   335,   115,    -1,   114,   335,   115,   355,    -1,
     987     114,   336,   115,   356,    -1,   114,   336,   115,    -1,   338,
     988     318,    -1,   339,    -1,   340,   318,    -1,   341,   318,    -1,
     989     347,    -1,   114,   338,   115,    -1,   157,   337,    -1,   157,
     990     235,   337,    -1,   114,   339,   115,   318,    -1,   338,   355,
     991      -1,   114,   339,   115,   355,    -1,   114,   340,   115,   356,
     992      -1,   114,   340,   115,    -1,   338,   114,   139,   270,   140,
     993     115,    -1,   114,   339,   115,   114,   139,   270,   140,   115,
     994      -1,   114,   341,   115,    -1,   325,   318,    -1,   343,    -1,
     995     344,   318,    -1,   345,   318,    -1,   157,   342,    -1,   157,
     996     235,   342,    -1,   114,   343,   115,   318,    -1,   325,   361,
     997      -1,   114,   343,   115,   355,    -1,   114,   344,   115,   356,
     998      -1,   114,   344,   115,    -1,   325,   114,   139,   270,   140,
     999     115,    -1,   114,   343,   115,   114,   139,   270,   140,   115,
     1000      -1,   114,   345,   115,    -1,   347,   318,    -1,   348,    -1,
     1001     349,   318,    -1,   350,   318,    -1,    77,    -1,    78,    -1,
     1002     157,   346,    -1,   157,   235,   346,    -1,   114,   348,   115,
     1003     318,    -1,   347,   361,    -1,   114,   348,   115,   361,    -1,
     1004     347,   114,   139,   270,   140,   115,    -1,   114,   348,   115,
     1005     114,   139,   270,   140,   115,    -1,   352,    -1,   353,   318,
     1006      -1,   354,   318,    -1,   157,    -1,   157,   235,    -1,   157,
     1007     351,    -1,   157,   235,   351,    -1,   114,   352,   115,   318,
     1008      -1,   355,    -1,   114,   352,   115,   355,    -1,   114,   353,
     1009     115,   356,    -1,   114,   353,   115,    -1,   114,   139,   270,
     1010     140,   115,    -1,   114,   352,   115,   114,   139,   270,   140,
     1011     115,    -1,   114,   354,   115,    -1,   116,   117,    -1,   116,
     1012     117,   356,    -1,   356,    -1,   116,   139,   172,   140,   117,
     1013      -1,   116,   139,   122,   140,   117,    -1,   356,   116,   139,
     1014     172,   140,   117,    -1,   356,   116,   139,   122,   140,   117,
     1015      -1,   358,    -1,   359,   318,    -1,   360,   318,    -1,   157,
     1016      -1,   157,   235,    -1,   157,   357,    -1,   157,   235,   357,
     1017      -1,   114,   358,   115,   318,    -1,   361,    -1,   114,   358,
     1018     115,   361,    -1,   114,   359,   115,   356,    -1,   114,   359,
     1019     115,    -1,   114,   139,   270,   140,   115,    -1,   114,   358,
     1020     115,   114,   139,   270,   140,   115,    -1,   114,   360,   115,
     1021      -1,   362,    -1,   362,   356,    -1,   356,    -1,   116,   117,
     1022      -1,   116,   139,   235,   122,   140,   117,    -1,   116,   139,
     1023     235,   140,   117,    -1,   116,   139,   235,   172,   140,   117,
     1024      -1,   116,   139,     7,   234,   172,   140,   117,    -1,   116,
     1025     139,   235,     7,   172,   140,   117,    -1,   364,    -1,   365,
     1026     318,    -1,   366,   318,    -1,   157,    -1,   157,   235,    -1,
     1027     157,   363,    -1,   157,   235,   363,    -1,   114,   364,   115,
     1028     318,    -1,   355,    -1,   114,   364,   115,   355,    -1,   114,
     1029     365,   115,   356,    -1,   114,   365,   115,    -1,   114,   364,
     1030     115,   114,   139,   270,   140,   115,    -1,   114,   366,   115,
     1031      -1,   368,    -1,   376,    -1,   235,   376,    -1,   369,    -1,
     1032     370,    -1,   157,   233,    -1,   235,   157,   233,    -1,   157,
     1033     377,    -1,   235,   157,   377,    -1,   157,   367,    -1,   235,
     1034     157,   367,    -1,   116,   117,   233,    -1,   371,   233,    -1,
     1035     116,   117,   356,   233,    -1,   371,   356,   233,    -1,   356,
     1036     233,    -1,   116,   117,   369,    -1,   371,   369,    -1,   116,
     1037     117,   356,   369,    -1,   371,   356,   369,    -1,   356,   369,
     1038      -1,   116,   139,   235,   122,   140,   117,    -1,   116,   139,
     1039     235,   172,   140,   117,    -1,   116,   139,   239,   172,   140,
     1040     117,    -1,   116,   139,   239,   235,   172,   140,   117,    -1,
     1041     376,    -1,   235,   376,    -1,   373,    -1,   374,    -1,   375,
     1042      -1,   157,   233,    -1,   235,   157,   233,    -1,   157,   377,
     1043      -1,   235,   157,   377,    -1,   157,   372,    -1,   235,   157,
     1044     372,    -1,   116,   117,   233,    -1,   116,   117,   356,   233,
     1045      -1,   356,   233,    -1,   116,   117,   374,    -1,   116,   117,
     1046     356,   374,    -1,   356,   374,    -1,   116,   139,   269,   140,
     1047     117,    -1,   376,   114,   139,   266,   140,   115,    -1,   226,
     1048     114,   139,   266,   140,   115,    -1,    -1,   121,    -1,    -1,
     1049     136,   172,    -1
    10491050};
    10501051
     
    11051106    2006,  2012,  2011,  2025,  2026,  2031,  2032,  2036,  2041,  2046,
    11061107    2054,  2059,  2070,  2071,  2076,  2077,  2083,  2084,  2088,  2089,
    1107     2090,  2093,  2092,  2103,  2111,  2117,  2123,  2132,  2138,  2144,
    1108     2150,  2156,  2164,  2170,  2178,  2184,  2193,  2194,  2195,  2199,
    1109     2205,  2206,  2216,  2217,  2221,  2222,  2227,  2232,  2233,  2239,
    1110     2240,  2242,  2247,  2248,  2249,  2250,  2285,  2287,  2288,  2290,
    1111     2295,  2300,  2305,  2307,  2309,  2314,  2316,  2318,  2320,  2325,
    1112     2327,  2336,  2338,  2339,  2344,  2346,  2348,  2353,  2355,  2357,
    1113     2362,  2364,  2366,  2378,  2379,  2380,  2384,  2386,  2388,  2393,
    1114     2395,  2397,  2402,  2404,  2406,  2421,  2423,  2424,  2426,  2431,
    1115     2432,  2437,  2439,  2441,  2446,  2448,  2450,  2452,  2457,  2459,
    1116     2461,  2471,  2473,  2474,  2476,  2481,  2483,  2485,  2490,  2492,
    1117     2494,  2496,  2501,  2503,  2505,  2518,  2520,  2521,  2523,  2528,
    1118     2533,  2541,  2543,  2545,  2550,  2552,  2557,  2559,  2576,  2577,
    1119     2579,  2584,  2586,  2588,  2590,  2592,  2597,  2598,  2600,  2602,
    1120     2607,  2609,  2611,  2617,  2619,  2621,  2625,  2627,  2629,  2631,
    1121     2665,  2666,  2668,  2673,  2675,  2677,  2679,  2681,  2686,  2687,
    1122     2689,  2691,  2696,  2698,  2700,  2706,  2707,  2709,  2718,  2721,
    1123     2723,  2726,  2728,  2730,  2744,  2745,  2747,  2752,  2754,  2756,
    1124     2758,  2760,  2765,  2766,  2768,  2770,  2775,  2777,  2785,  2786,
    1125     2787,  2792,  2793,  2797,  2799,  2801,  2803,  2805,  2807,  2814,
    1126     2816,  2818,  2820,  2822,  2825,  2827,  2829,  2831,  2833,  2838,
    1127     2840,  2842,  2847,  2873,  2874,  2876,  2880,  2881,  2885,  2887,
    1128     2889,  2891,  2893,  2895,  2902,  2904,  2906,  2908,  2910,  2912,
    1129     2917,  2924,  2926,  2944,  2946,  2951,  2952
     1108    2090,  2095,  2094,  2105,  2113,  2119,  2125,  2134,  2140,  2146,
     1109    2152,  2158,  2166,  2172,  2180,  2186,  2195,  2196,  2197,  2201,
     1110    2207,  2208,  2218,  2219,  2223,  2224,  2229,  2234,  2235,  2241,
     1111    2242,  2244,  2249,  2250,  2251,  2252,  2287,  2289,  2290,  2292,
     1112    2297,  2302,  2307,  2309,  2311,  2316,  2318,  2320,  2322,  2327,
     1113    2329,  2338,  2340,  2341,  2346,  2348,  2350,  2355,  2357,  2359,
     1114    2364,  2366,  2368,  2380,  2381,  2382,  2386,  2388,  2390,  2395,
     1115    2397,  2399,  2404,  2406,  2408,  2423,  2425,  2426,  2428,  2433,
     1116    2434,  2439,  2441,  2443,  2448,  2450,  2452,  2454,  2459,  2461,
     1117    2463,  2473,  2475,  2476,  2478,  2483,  2485,  2487,  2492,  2494,
     1118    2496,  2498,  2503,  2505,  2507,  2520,  2522,  2523,  2525,  2530,
     1119    2535,  2543,  2545,  2547,  2552,  2554,  2559,  2561,  2578,  2579,
     1120    2581,  2586,  2588,  2590,  2592,  2594,  2599,  2600,  2602,  2604,
     1121    2609,  2611,  2613,  2619,  2621,  2623,  2627,  2629,  2631,  2633,
     1122    2667,  2668,  2670,  2675,  2677,  2679,  2681,  2683,  2688,  2689,
     1123    2691,  2693,  2698,  2700,  2702,  2708,  2709,  2711,  2720,  2723,
     1124    2725,  2728,  2730,  2732,  2746,  2747,  2749,  2754,  2756,  2758,
     1125    2760,  2762,  2767,  2768,  2770,  2772,  2777,  2779,  2787,  2788,
     1126    2789,  2794,  2795,  2799,  2801,  2803,  2805,  2807,  2809,  2816,
     1127    2818,  2820,  2822,  2824,  2827,  2829,  2831,  2833,  2835,  2840,
     1128    2842,  2844,  2849,  2875,  2876,  2878,  2882,  2883,  2887,  2889,
     1129    2891,  2893,  2895,  2897,  2904,  2906,  2908,  2910,  2912,  2914,
     1130    2919,  2926,  2928,  2946,  2948,  2953,  2954
    11301131};
    11311132#endif
     
    14051406       9,     0,    11,     1,     3,     3,     3,     1,     1,     5,
    14061407       2,     5,     0,     1,     1,     3,     0,     1,     1,     1,
    1407        1,     0,     6,     2,     1,     2,     4,     2,     3,     3,
     1408       5,     0,     6,     2,     1,     2,     4,     2,     3,     3,
    14081409       3,     4,     5,     5,     5,     6,     1,     1,     1,     3,
    14091410       0,     5,     0,     1,     1,     2,     6,     1,     3,     0,
     
    14381439     306,     0,   308,   333,   325,   330,   328,   329,   327,   326,
    14391440     331,   332,   338,   339,   337,   334,   335,   336,   552,   377,
    1440      378,     0,     0,     0,   299,   226,   309,   323,   324,     9,
     1441     378,     0,     0,     0,   299,     0,   309,   323,   324,     9,
    14411442     366,     0,    10,    16,    17,     0,     2,    72,    73,   570,
    1442       11,   299,   530,   528,   253,     3,   458,     3,   266,     0,
    1443        3,     3,     3,   254,     0,     0,     0,   300,   301,   303,
    1444      299,   312,   315,   347,   291,   340,   345,   292,   355,   293,
    1445      362,   359,   369,   552,   370,   294,   477,   481,     3,     3,
    1446        0,     2,   524,   529,   534,   304,     0,     0,   552,   582,
    1447      552,     2,   593,   594,   595,   299,     0,   736,   737,     0,
    1448       14,     0,    15,   299,   275,   276,     0,   300,   295,   296,
    1449      297,   298,   531,   310,     0,   553,   554,    14,   451,   452,
    1450       13,   447,   450,     0,   508,   503,   494,   451,   452,     0,
    1451        0,   533,   227,     0,   299,     0,     0,     0,     0,     0,
    1452        0,     0,     0,   299,   299,     0,   738,   300,   587,   599,
    1453      742,   735,   733,   740,     0,     0,     0,   260,     2,     0,
    1454      537,   445,   446,   444,     0,     0,     0,     0,   639,   640,
    1455        0,     0,     3,   550,   546,   552,   567,   552,   552,   548,
    1456        2,   547,   552,   606,   552,   552,   609,     0,     0,     0,
    1457      299,   299,   317,   367,     2,   299,   267,   302,   313,   348,
    1458      360,   482,     0,     2,     0,   458,   268,   300,   341,   356,
    1459      363,   478,     0,     2,     0,   316,   342,   349,   350,     0,
    1460      357,   361,   364,   368,     0,   479,   483,     0,     0,     0,
    1461        1,   299,     2,   535,   581,   583,   299,     2,   746,   300,
    1462      749,   550,   550,     0,   300,     0,     0,   278,   552,   548,
    1463        2,   299,     0,     0,   299,     0,   400,   555,     2,   506,
    1464        2,   559,     0,     0,     0,     0,     0,     0,    21,    69,
    1465        4,     8,    19,     5,     6,     7,     0,     0,   299,     2,
    1466       74,    75,    76,    77,    57,    22,    58,    18,    26,    56,
    1467       78,   299,     0,    80,    84,    87,    90,    95,    98,   100,
    1468      102,   104,   106,   108,   112,   500,    23,   454,   456,   499,
    1469        0,   453,   457,     0,   571,   586,   589,   592,   598,   601,
    1470      604,     2,   744,   299,   747,     2,    72,   299,     3,   432,
    1471        0,   440,   300,   299,   312,   340,   292,   355,   362,     3,
    1472        3,   414,   418,   428,   433,   477,   299,   434,   711,   712,
    1473      299,   435,   437,     2,   588,   600,   734,     2,     2,   255,
    1474        2,   463,     0,   461,   460,   459,   146,     2,     2,   257,
    1475        2,     2,   256,     2,   286,     2,   287,     0,     0,     0,
    1476        0,     0,     0,     0,     0,     0,   572,   611,   552,     0,
    1477        0,   458,     2,   566,   575,   665,   568,   569,   538,   299,
    1478        2,   605,   614,   607,   608,     0,   281,   299,   299,   346,
    1479      300,     0,   300,   299,   739,   743,   741,   539,   299,   550,
    1480      261,   269,   314,     0,     2,   540,   299,   504,   343,   344,
    1481      288,   358,   365,   452,   299,   379,   372,   376,   480,   505,
    1482      258,   259,   525,   299,   442,     0,   299,   243,     0,     2,
    1483      245,     0,   300,     0,   263,     2,   264,   283,     0,     0,
    1484        2,   299,   550,   299,   490,   492,   491,   493,     0,     0,
    1485      755,     0,   753,   405,     0,   299,     0,   299,   495,   299,
    1486      565,   562,   563,   564,     0,   557,   560,     0,     0,   299,
    1487       64,   299,    78,    59,   299,    66,   299,   299,    62,    63,
    1488        2,   132,     0,     0,     0,   733,   299,    20,    31,     0,
    1489       34,    35,    40,     2,     0,    40,   118,   119,   120,   121,
    1490      122,   123,   124,   125,   126,   127,   117,   116,     0,    60,
    1491       61,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1443      11,   299,   528,   253,     3,   458,     3,   266,     0,     3,
     1444       3,     3,   254,     0,     0,     0,   300,   301,   303,   299,
     1445     312,   315,   347,   291,   340,   345,   292,   355,   293,   362,
     1446     359,   369,   552,   370,   294,   477,   481,     3,     3,     0,
     1447       2,   524,   529,   534,   304,     0,     0,   552,   582,   552,
     1448       2,   593,   594,   595,   299,     0,   736,   737,     0,    14,
     1449       0,    15,   299,   275,   276,     0,   300,   295,   296,   297,
     1450     298,   531,   310,     0,   553,   554,    14,   451,   452,    13,
     1451     447,   450,     0,   508,   503,   494,   451,   452,     0,     0,
     1452     533,     0,   299,     0,     0,     0,     0,     0,     0,     0,
     1453       0,   299,   299,     0,   738,   300,   587,   599,   742,   735,
     1454     733,   740,     0,     0,     0,   260,     2,     0,   537,   445,
     1455     446,   444,     0,     0,     0,     0,   639,   640,     0,     0,
     1456       3,   550,   546,   552,   567,   552,   552,   548,     2,   547,
     1457     552,   606,   552,   552,   609,     0,     0,     0,   299,   299,
     1458     317,   367,     2,   299,   267,   302,   313,   348,   360,   482,
     1459       0,     2,     0,   458,   268,   300,   341,   356,   363,   478,
     1460       0,     2,     0,   316,   342,   349,   350,     0,   357,   361,
     1461     364,   368,     0,   479,   483,     0,     0,     0,     1,   299,
     1462       2,   535,   581,   583,   299,     2,   746,   300,   749,   550,
     1463     550,     0,   300,     0,     0,   278,   552,   548,     2,   299,
     1464       0,     0,   299,     0,   400,   555,     2,   506,     2,   559,
     1465      19,     0,    18,     0,     0,     0,     0,    21,    69,     4,
     1466       8,     5,     6,     7,     0,     0,   299,     2,    74,    75,
     1467      76,    77,    57,    22,    58,    26,    56,    78,   299,     0,
     1468      80,    84,    87,    90,    95,    98,   100,   102,   104,   106,
     1469     108,   112,   500,    23,   454,   456,   499,     0,   453,   457,
     1470       0,   571,   586,   589,   592,   598,   601,   604,     2,   744,
     1471     299,   747,     2,    72,   299,     3,   432,     0,   440,   300,
     1472     299,   312,   340,   292,   355,   362,     3,     3,   414,   418,
     1473     428,   433,   477,   299,   434,   711,   712,   299,   435,   437,
     1474       2,   588,   600,   734,     2,     2,   255,     2,   463,     0,
     1475     461,   460,   459,   146,     2,     2,   257,     2,     2,   256,
     1476       2,   286,     2,   287,     0,     0,     0,     0,     0,     0,
     1477       0,     0,     0,   572,   611,   552,     0,     0,   458,     2,
     1478     566,   575,   665,   568,   569,   538,   299,     2,   605,   614,
     1479     607,   608,     0,   281,   299,   299,   346,   300,     0,   300,
     1480     299,   739,   743,   741,   539,   299,   550,   261,   269,   314,
     1481       0,     2,   540,   299,   504,   343,   344,   288,   358,   365,
     1482     452,   299,   379,   372,   376,   480,   505,   258,   259,   525,
     1483     299,   442,     0,   299,   243,     0,     2,   245,     0,   300,
     1484       0,   263,     2,   264,   283,     0,     0,     2,   299,   550,
     1485     299,   490,   492,   491,   493,     0,     0,   755,     0,   753,
     1486     405,     0,   299,     0,   299,   495,   299,   565,   562,   563,
     1487     564,     0,   557,   560,     0,    20,   299,    64,   299,    78,
     1488      59,   299,    66,   299,   299,    62,    63,     2,   132,     0,
     1489       0,     0,   733,   299,    31,     0,    34,    35,    40,     2,
     1490       0,    40,   118,   119,   120,   121,   122,   123,   124,   125,
     1491     126,   127,   117,   116,     0,    60,    61,     0,     0,     0,
    14921492       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1493        2,   651,   455,   648,   552,   552,   656,   484,   299,     2,
    1494      590,   591,     2,   602,   603,     0,   745,   748,   299,   299,
    1495        0,   713,   300,   717,   708,   709,   715,     0,     2,     2,
    1496      673,   552,   755,   622,   552,   552,   755,   552,   636,   552,
    1497      552,   687,   441,   670,   552,   552,   678,   685,   299,   436,
    1498      300,     0,     0,   299,   723,   300,   728,   755,   720,   299,
    1499      725,   755,   299,   299,     0,     0,    21,     2,     0,    22,
    1500        0,   464,   753,     0,     0,   470,   247,     0,   299,     0,
    1501        0,     0,   552,   578,   580,   610,   552,   617,   620,   573,
    1502      612,     0,   285,     0,   289,   663,     0,   299,   282,     0,
    1503        0,     0,     0,   280,     2,     0,   265,   541,   299,     0,
    1504        0,   299,     0,   300,     3,   421,     3,   425,   424,   596,
    1505        0,   536,   299,    72,     3,   299,   440,   300,     3,   434,
    1506      435,     2,     0,     0,     0,   489,   311,   299,     0,   485,
    1507      487,   754,     0,     0,   403,     0,     3,     2,     2,     0,
    1508      507,     3,     0,   559,    40,     0,     0,   228,     0,     2,
    1509        0,     0,     0,    41,     0,     0,   299,    24,     0,    25,
    1510        0,   114,     3,     2,    32,     0,    38,     0,     2,    29,
    1511        0,   113,    81,    82,    83,    85,    86,    88,    89,    93,
    1512       94,    91,    92,    96,    97,    99,   101,   103,   105,   107,
    1513        0,     0,   299,     0,     0,     0,   652,   653,   649,   650,
    1514      502,   501,   299,   299,   719,   299,   724,   300,   299,   667,
    1515      710,   666,     2,   299,     0,     0,     0,     0,     0,     0,
    1516        0,     0,   688,     0,   674,   625,   641,   675,     2,   621,
    1517      628,   438,   623,   624,   439,     2,   635,   644,   637,   638,
    1518      671,   672,   686,   714,   718,   716,   755,   273,     2,   750,
    1519        2,   429,   722,   727,   430,     3,   408,     3,     3,     3,
    1520      458,     0,     0,     2,   472,   469,   754,     0,   465,     2,
    1521      468,   471,     0,   299,   248,   270,     3,   277,   279,     0,
    1522        2,   574,   576,   577,     2,   613,   615,   616,   550,     0,
    1523      664,   542,     3,   352,   351,   354,   353,   299,   543,     0,
    1524      544,     0,   299,   371,   391,   380,     0,   385,   379,     0,
    1525        0,   443,   246,     0,     0,     3,     2,   673,   436,     0,
    1526      532,     0,   755,   756,   494,   405,   399,   111,   406,   753,
    1527        0,   299,   299,   299,     0,   556,   558,     0,     0,   221,
    1528        0,     0,     0,   229,   230,    65,   299,     0,    67,    70,
    1529       71,     0,   133,   463,    79,   115,   130,     3,   114,     0,
    1530       28,    40,     3,     0,    37,   110,     0,     3,   552,   659,
    1531      662,   654,     3,     3,   721,   726,     2,    72,   299,     3,
    1532        3,   300,     0,     3,   552,   631,   634,   552,   552,   681,
    1533      684,   299,     3,   626,   642,   676,   299,   299,   431,   299,
    1534      299,     0,     0,     0,     0,   262,   111,     0,     3,     3,
    1535        0,   466,     0,   462,     0,     0,   251,   299,     0,     0,
    1536      134,     0,     0,     0,     0,     0,   134,     0,     0,   114,
    1537      114,    21,   366,   446,    69,     0,    22,   135,     0,     3,
    1538      136,   137,     2,   148,   138,   139,   140,   141,   142,   143,
    1539      150,     0,   152,     0,     0,     0,   299,   299,   458,   552,
    1540        0,   545,   379,   391,     0,     0,     0,   697,     0,   389,
    1541      392,   396,   552,   396,   702,   395,   694,   552,   552,   388,
    1542      381,   386,   299,   584,     2,   669,   668,     0,   674,     2,
    1543      486,   488,   404,     0,   509,     3,   517,   518,     0,     2,
    1544      513,     3,     3,     0,     0,   561,   228,     0,     0,     0,
    1545      228,     0,     0,   753,   114,     0,     3,    54,     0,    54,
    1546       54,     3,    42,    44,    39,     0,     3,   109,     0,     2,
    1547      655,   657,   658,     0,     0,   299,     0,     0,     0,     3,
    1548      552,     0,     2,   627,   629,   630,     2,   643,   645,     2,
    1549      677,   679,   680,     0,     0,    72,     0,     3,     3,     3,
    1550        3,   416,   415,   419,   752,     2,     2,   751,     0,     0,
    1551        0,     0,     3,   467,     3,     0,   249,   151,   153,     0,
    1552        0,     0,     0,     2,   197,     0,   195,     0,     0,     0,
    1553        0,     0,     0,     0,     0,     0,   157,   154,   299,     0,
    1554      552,     0,   272,   284,     3,     3,   290,   551,   618,   299,
    1555        0,   382,     0,     0,     0,     0,   398,   698,   699,   552,
    1556      383,   393,   397,   394,   695,   696,   387,   374,   299,   271,
    1557      299,   402,     0,   520,   497,   299,     0,     0,   496,   511,
    1558        0,     0,     0,   222,     0,   231,    68,     0,   131,   128,
    1559        0,    51,     2,    45,    52,    53,     0,     0,     0,     0,
    1560       27,     0,   660,   299,   585,   597,   729,   730,   731,     0,
    1561      682,   299,   299,   299,     3,     3,     0,   690,     0,     0,
    1562        0,     0,   299,   299,     3,   549,   473,   474,     0,   252,
    1563        0,     0,     0,     0,   299,   198,   196,     0,   193,   199,
    1564        0,     0,     0,     0,   203,   206,   204,   200,     0,   201,
     1493       0,     0,     0,     0,     0,     0,     2,   651,   455,   648,
     1494     552,   552,   656,   484,   299,     2,   590,   591,     2,   602,
     1495     603,     0,   745,   748,   299,   299,     0,   713,   300,   717,
     1496     708,   709,   715,     0,     2,     2,   673,   552,   755,   622,
     1497     552,   552,   755,   552,   636,   552,   552,   687,   441,   670,
     1498     552,   552,   678,   685,   299,   436,   300,     0,     0,   299,
     1499     723,   300,   728,   755,   720,   299,   725,   755,   299,   299,
     1500       0,     0,    21,     2,     0,    22,     0,   464,   753,     0,
     1501       0,   470,   247,     0,   299,     0,     0,     0,   552,   578,
     1502     580,   610,   552,   617,   620,   573,   612,     0,   285,     0,
     1503     289,   663,     0,   299,   282,     0,     0,     0,     0,   280,
     1504       2,     0,   265,   541,   299,     0,     0,   299,     0,   300,
     1505       3,   421,     3,   425,   424,   596,     0,   536,   299,    72,
     1506       3,   299,   440,   300,     3,   434,   435,     2,     0,     0,
     1507       0,   489,   311,   299,     0,   485,   487,   754,     0,     0,
     1508     403,     0,     3,     2,     2,     0,   507,     3,     0,   559,
     1509      40,   530,     0,     2,     0,     0,     0,    41,     0,     0,
     1510     299,    24,     0,    25,     0,   114,     3,     2,    32,     0,
     1511      38,     0,     2,    29,     0,   113,    81,    82,    83,    85,
     1512      86,    88,    89,    93,    94,    91,    92,    96,    97,    99,
     1513     101,   103,   105,   107,     0,     0,   299,     0,     0,     0,
     1514     652,   653,   649,   650,   502,   501,   299,   299,   719,   299,
     1515     724,   300,   299,   667,   710,   666,     2,   299,     0,     0,
     1516       0,     0,     0,     0,     0,     0,   688,     0,   674,   625,
     1517     641,   675,     2,   621,   628,   438,   623,   624,   439,     2,
     1518     635,   644,   637,   638,   671,   672,   686,   714,   718,   716,
     1519     755,   273,     2,   750,     2,   429,   722,   727,   430,     3,
     1520     408,     3,     3,     3,   458,     0,     0,     2,   472,   469,
     1521     754,     0,   465,     2,   468,   471,     0,   299,   248,   270,
     1522       3,   277,   279,     0,     2,   574,   576,   577,     2,   613,
     1523     615,   616,   550,     0,   664,   542,     3,   352,   351,   354,
     1524     353,   299,   543,     0,   544,     0,   299,   371,   391,   380,
     1525       0,   385,   379,     0,     0,   443,   246,     0,     0,     3,
     1526       2,   673,   436,     0,   532,     0,   755,   756,   494,   405,
     1527     399,   111,   406,   753,     0,   299,   299,   299,     0,   556,
     1528     558,     0,    65,   299,     0,    67,    70,    71,     0,   133,
     1529     463,    79,   115,   130,     3,   114,     0,    28,    40,     3,
     1530       0,    37,   110,     0,     3,   552,   659,   662,   654,     3,
     1531       3,   721,   726,     2,    72,   299,     3,     3,   300,     0,
     1532       3,   552,   631,   634,   552,   552,   681,   684,   299,     3,
     1533     626,   642,   676,   299,   299,   431,   299,   299,     0,     0,
     1534       0,     0,   262,   111,     0,     3,     3,     0,   466,     0,
     1535     462,     0,     0,   251,   299,     0,     0,   134,     0,     0,
     1536       0,     0,     0,   134,     0,     0,   114,   114,   226,    21,
     1537     366,   446,    69,     0,    22,   135,     0,     3,   136,   137,
     1538       2,   148,   138,   139,   140,   141,   142,   143,   150,     0,
     1539     152,     0,     0,     0,   299,   299,   458,   552,     0,   545,
     1540     379,   391,     0,     0,     0,   697,     0,   389,   392,   396,
     1541     552,   396,   702,   395,   694,   552,   552,   388,   381,   386,
     1542     299,   584,     2,   669,   668,     0,   674,     2,   486,   488,
     1543     404,     0,   509,     3,   517,   518,     0,     2,   513,     3,
     1544       3,     0,     0,   561,     0,   753,   114,     0,     3,    54,
     1545       0,    54,    54,     3,    42,    44,    39,     0,     3,   109,
     1546       0,     2,   655,   657,   658,     0,     0,   299,     0,     0,
     1547       0,     3,   552,     0,     2,   627,   629,   630,     2,   643,
     1548     645,     2,   677,   679,   680,     0,     0,    72,     0,     3,
     1549       3,     3,     3,   416,   415,   419,   752,     2,     2,   751,
     1550       0,     0,     0,     0,     3,   467,     3,     0,   249,   151,
     1551     153,     0,     0,     0,     0,     2,   197,     0,   195,     0,
     1552       0,     0,     0,     0,     0,     0,     0,   227,     0,     0,
     1553     157,   154,   299,     0,   552,     0,   272,   284,     3,     3,
     1554     290,   551,   618,   299,     0,   382,     0,     0,     0,     0,
     1555     398,   698,   699,   552,   383,   393,   397,   394,   695,   696,
     1556     387,   374,   299,   271,   299,   402,     0,   520,   497,   299,
     1557       0,     0,   496,   511,    68,     0,   131,   128,     0,    51,
     1558       2,    45,    52,    53,     0,     0,     0,     0,    27,     0,
     1559     660,   299,   585,   597,   729,   730,   731,     0,   682,   299,
     1560     299,   299,     3,     3,     0,   690,     0,     0,     0,     0,
     1561     299,   299,     3,   549,   473,   474,     0,   252,     0,     0,
     1562       0,     0,   299,   198,   196,     0,   193,   199,     0,     0,
     1563       0,     0,   203,   206,   204,   200,     0,   201,     0,     0,
    15651564      40,   149,   147,   134,   250,     0,     0,   375,   384,   552,
    15661565     705,   707,   700,   391,   423,   427,   426,     0,   514,     2,
    1567      515,     2,   516,   510,   299,   234,     0,   232,     0,   234,
    1568       36,   129,    55,     0,    43,    33,     2,    49,     2,    47,
    1569       30,     3,   732,     3,     3,     3,     0,     0,   689,   691,
    1570      632,   646,   274,     2,   413,     3,   412,     0,   476,   134,
    1571        0,     0,   134,     3,     0,   134,     3,   300,   299,   194,
    1572        0,     2,     2,   215,   205,     0,     0,     0,     0,   145,
    1573      579,   619,     2,   701,   703,   704,   390,     2,     0,     0,
    1574        2,   235,     0,     0,   223,     0,     3,     0,     0,     0,
    1575        0,     0,     0,   692,   693,   299,     0,   475,   158,     0,
    1576        0,     2,   171,   134,   160,     0,   188,     0,   134,     0,
    1577      300,     2,   162,     0,     2,     0,     2,     2,     2,   202,
    1578       37,   299,   299,   519,   521,   512,     0,     0,     0,     0,
    1579        0,     3,     3,   661,   633,   647,   683,   417,   134,   164,
    1580      167,     0,   166,   170,     3,   173,   172,     0,   134,   190,
    1581      134,     3,     0,   299,     0,   299,     0,     2,     0,     2,
    1582      144,     3,     2,   236,   237,     0,   233,   224,    46,     0,
    1583        0,   159,     0,     0,   169,   239,   174,     2,   241,   189,
    1584        0,   192,   178,   207,     3,   216,   220,   209,     3,     0,
    1585      299,     0,   299,     0,     0,     0,     0,    50,    48,   165,
    1586      168,   134,     0,   175,   299,   134,   134,     0,   179,     0,
    1587        0,   697,   217,   218,   219,     0,   208,     3,   210,     3,
    1588      706,   299,   225,   238,   155,   176,   161,   134,   242,   191,
    1589      186,   184,   180,   163,   134,     0,   698,     0,     0,     0,
    1590        0,   156,   177,   187,   181,   185,   184,   182,     3,     3,
    1591        0,     0,   498,   183,   211,   213,     3,     3,   212,   214
     1566     515,     2,   516,   510,   299,    36,   129,    55,     0,    43,
     1567      33,     2,    49,     2,    47,    30,     3,   732,     3,     3,
     1568       3,     0,     0,   689,   691,   632,   646,   274,     2,   413,
     1569       3,   412,     0,   476,   134,     0,     0,   134,     3,     0,
     1570     134,     3,   300,   299,   194,     0,     2,     2,   215,   205,
     1571       0,     0,     0,     0,     0,     0,   145,   579,   619,     2,
     1572     701,   703,   704,   390,     2,     0,     0,     2,     3,     0,
     1573       0,     0,     0,     0,     0,   692,   693,   299,     0,   475,
     1574     158,     0,     0,     2,   171,   134,   160,     0,   188,     0,
     1575     134,     0,   300,     2,   162,     0,     2,     0,     2,     2,
     1576       2,   202,     0,     0,   228,    37,   299,   299,   519,   521,
     1577     512,     0,     3,     3,   661,   633,   647,   683,   417,   134,
     1578     164,   167,     0,   166,   170,     3,   173,   172,     0,   134,
     1579     190,   134,     3,     0,   299,     0,   299,     0,     2,     0,
     1580       2,     0,   221,     0,     0,     0,   229,   230,   144,     3,
     1581       2,    46,     0,     0,   159,     0,     0,   169,   239,   174,
     1582       2,   241,   189,     0,   192,   178,   207,     3,   216,   220,
     1583     209,     3,     0,   299,     0,   299,   228,     0,     0,     0,
     1584     228,     0,     0,     0,    50,    48,   165,   168,   134,     0,
     1585     175,   299,   134,   134,     0,   179,     0,     0,   697,   217,
     1586     218,   219,     0,   208,     3,   210,     3,     0,     0,     0,
     1587     222,     0,   231,   706,   299,   155,   176,   161,   134,   242,
     1588     191,   186,   184,   180,   163,   134,     0,   698,     0,     0,
     1589       0,   234,     0,   232,     0,   234,     0,   156,   177,   187,
     1590     181,   185,   184,   182,     3,     3,     0,     0,   235,     0,
     1591       0,   223,     0,   498,   183,   211,   213,     3,     3,     0,
     1592       0,     0,     0,   212,   214,   236,   237,     0,   233,   224,
     1593       0,     0,   225,   238
    15921594};
    15931595
     
    15951597static const yytype_int16 yydefgoto[] =
    15961598{
    1597       -1,   783,   457,   294,    49,   131,   132,   295,   296,   297,
    1598      298,   299,   735,   736,  1091,  1092,  1093,  1221,   300,   372,
    1599      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
    1600      312,   313,   314,   977,   511,   926,   538,   316,   927,  1007,
    1601     1008,  1514,  1010,  1011,  1012,  1013,  1515,  1014,  1015,  1430,
    1602     1431,  1392,  1393,  1394,  1492,  1493,  1497,  1498,  1534,  1535,
    1603     1016,  1344,  1017,  1018,  1274,  1275,  1276,  1474,  1019,   143,
    1604      912,   913,   914,  1372,  1455,  1466,  1467,   458,   459,   843,
    1605      844,   985,    53,    54,    55,    56,    57,   339,   155,    60,
    1606       61,    62,    63,   182,   341,    65,    66,   254,    68,    69,
    1607      264,   343,   344,    72,    73,    74,   118,    76,   200,   346,
    1608      119,    79,   120,    81,    82,   672,    83,   671,   875,   876,
    1609     1038,  1039,  1191,  1040,    84,   484,   482,   704,   825,   826,
    1610      349,   350,   674,   675,   676,   351,   352,   677,   354,   455,
    1611     1021,   133,   134,   318,   319,   167,   631,   632,   633,   634,
    1612      635,    85,   121,    87,   479,   480,   894,   481,   269,   488,
    1613      320,    88,   135,   136,    89,  1304,  1069,  1070,  1071,  1072,
    1614       90,    91,   692,    92,   263,    93,    94,   183,   979,   666,
    1615      403,   125,    95,   494,   495,   496,   184,   258,   186,   187,
    1616      188,   259,    98,    99,   100,   101,   102,   103,   104,   191,
    1617      192,   193,   194,   195,   795,   593,   594,   595,   596,   196,
    1618      598,   599,   600,   562,   563,   564,   565,  1044,   105,   602,
    1619      603,   604,   605,   606,   607,  1045,  1046,  1047,  1048,   583,
    1620      357,   358,   359,   360,   321,   161,   107,   108,   109,   362,
    1621      702,   699
     1599      -1,   777,   454,   292,    49,   130,   131,   293,   294,   272,
     1600     295,   296,   729,   730,  1073,  1074,  1075,  1199,   297,   369,
     1601     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     1602     309,   310,   311,   964,   508,   913,   534,   313,   914,   995,
     1603     996,  1495,   998,   999,  1000,  1001,  1496,  1002,  1003,  1401,
     1604    1402,  1364,  1365,  1366,  1469,  1470,  1474,  1475,  1520,  1521,
     1605    1004,  1319,  1005,  1006,  1252,  1253,  1254,  1447,  1007,  1148,
     1606    1425,  1426,  1427,  1529,  1547,  1439,  1440,   455,   456,   837,
     1607     838,   972,    52,    53,    54,    55,    56,   336,   153,    59,
     1608      60,    61,    62,   180,   338,    64,    65,   252,    67,    68,
     1609     262,   340,   341,    71,    72,    73,   117,    75,   198,   343,
     1610     118,    78,   119,    80,    81,   668,    82,   667,   869,   870,
     1611    1026,  1027,  1175,  1028,    83,   481,   479,   700,   819,   820,
     1612     346,   347,   670,   671,   672,   348,   349,   673,   351,   452,
     1613    1009,   132,   133,   315,   316,   165,   627,   628,   629,   630,
     1614     631,    84,   120,    86,   476,   477,   888,   478,   267,   485,
     1615     317,    87,   134,   135,    88,  1284,  1057,  1058,  1059,  1060,
     1616      89,    90,   688,    91,   261,    92,    93,   181,   966,   662,
     1617     400,   124,    94,   491,   492,   493,   182,   256,   184,   185,
     1618     186,   257,    97,    98,    99,   100,   101,   102,   103,   189,
     1619     190,   191,   192,   193,   789,   589,   590,   591,   592,   194,
     1620     594,   595,   596,   558,   559,   560,   561,  1032,   104,   598,
     1621     599,   600,   601,   602,   603,  1033,  1034,  1035,  1036,   579,
     1622     354,   355,   356,   357,   318,   159,   106,   107,   108,   359,
     1623     698,   695
    16221624};
    16231625
    16241626/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    16251627   STATE-NUM.  */
    1626 #define YYPACT_NINF -1276
     1628#define YYPACT_NINF -1310
    16271629static const yytype_int16 yypact[] =
    16281630{
    1629     7275,  9192, -1276,    31, -1276, -1276, -1276, -1276, -1276, -1276,
    1630    -1276,    12, -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276,
    1631    -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276,    99, -1276,
    1632    -1276,  1603,   681,    89,  7517,   210, -1276, -1276, -1276, -1276,
    1633    -1276,   116, -1276, -1276, -1276,   429,   144, -1276, -1276, -1276,
    1634    -1276,  4252, -1276, -1276, -1276, -1276,    32,   152, -1276,  1816,
    1635    -1276, -1276, -1276, -1276,  1962,   287,    93,  5921, -1276, -1276,
    1636     4252,  1910, -1276, -1276,  1592,   306,  3283,   540,   736,  1592,
    1637     1249, -1276, -1276,    99, -1276,  1592,  1618, -1276,   235, -1276,
    1638      384,   511, -1276, -1276, -1276, -1276,   414,   152,    99, -1276,
    1639       99, -1276, -1276, -1276, -1276,  8217,  1816, -1276, -1276,  1816,
    1640    -1276,   362, -1276,  9392, -1276, -1276,  2239,  9432, -1276,  1003,
    1641     1003,  1003, -1276, -1276,  1463,    99, -1276,   471,   504,   530,
    1642    -1276, -1276, -1276,   542, -1276, -1276, -1276, -1276, -1276,   556,
    1643      565, -1276, -1276,    28,  8758,  2572,   309,   566,   591,   602,
    1644      611,   630,   646,  9465,  6899,   621, -1276,  9152, -1276, -1276,
    1645    -1276, -1276,   649, -1276,   146,  5718,  5718, -1276,   655,   206,
    1646    -1276, -1276, -1276, -1276,   679,   277,   321,   326, -1276, -1276,
    1647     1962,  2534,   677,   743, -1276,    23, -1276,    99,    99,   152,
    1648    -1276, -1276,    55, -1276,    99,    99, -1276,  3049,   700,   703,
    1649     1003,  6685, -1276, -1276, -1276,  4252, -1276, -1276,  1592, -1276,
    1650    -1276, -1276,   152, -1276,  1816,    32, -1276,  7868, -1276,  1003,
    1651     1003,  1003,   152, -1276,  1603, -1276,  3585, -1276, -1276,   684,
    1652     1003, -1276,  1003, -1276,   652,  1003, -1276,  1603,   709,   712,
    1653    -1276,  7517,   615, -1276, -1276, -1276,  9119, -1276, -1276,  8674,
    1654    -1276,   743,    35,  3690,  9432,  2239,  3049, -1276,    59, -1276,
    1655    -1276,  9392,  1816,   718, 10847,   681,   733, -1276, -1276,   582,
    1656    -1276,   359,   716,   770, 10233,   748,  3690, 10292, -1276,   750,
    1657    -1276, -1276, -1276, -1276, -1276, -1276, 10351, 10351,  8522,   144,
    1658    -1276, -1276, -1276, -1276, -1276, -1276, -1276,   786, -1276,  1681,
    1659     2360,  8758,  3690, -1276,   222,   671,   732,   427,   759,   755,
    1660      741,   747,   784,    38, -1276, -1276, -1276,   667, -1276, -1276,
    1661      145, -1276, -1276,  2572, -1276, -1276,   415,   774, -1276,   509,
    1662      774, -1276, -1276,  8217, -1276,   779,   788,  8876, -1276, -1276,
    1663      810,  1492,  8303,  6685,  1592, -1276,  1592,  1003,  1003, -1276,
    1664    -1276, -1276, -1276, -1276, -1276,  1003,  8217,  1816, -1276, -1276,
    1665     9465,  1201, -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276,
    1666    -1276,  4829,  3690, -1276, -1276, -1276, -1276, -1276, -1276, -1276,
    1667    -1276, -1276, -1276, -1276, -1276, -1276, -1276,   787,   794,   804,
    1668      807,   858,   830,   835,   845,  2534, -1276, -1276,    99,   827,
    1669      811,    32,   872, -1276, -1276,   876, -1276, -1276, -1276,  9119,
    1670    -1276, -1276, -1276, -1276, -1276,  3049, -1276,  8758,  8758, -1276,
    1671     1003,  2239,  6809,  8378, -1276, -1276, -1276, -1276,  9119,    35,
    1672    -1276, -1276,  1592,   152, -1276, -1276,  9119, -1276,  4366, -1276,
    1673    -1276,  1003,  1003,   116,  8758, -1276,   877, -1276,  1003, -1276,
    1674    -1276, -1276, -1276,  9703, -1276,   336, 10587, -1276,   152,   879,
    1675    -1276,  2239, 10627, 10410, -1276, -1276, -1276, -1276,   862,  3049,
    1676    -1276,  8378,   743,  7396, -1276, -1276, -1276, -1276,   620,   381,
    1677      869,   681,   890,   882,   911, 10847,  1023,  9392, -1276, 10847,
    1678    -1276, -1276, -1276, -1276,   405, -1276,   917,   770,   259,  8522,
    1679    -1276,  9550, -1276, -1276,  8522, -1276,  8640,  8522, -1276, -1276,
    1680      144, -1276,   435,   919,   921, -1276,  6651, -1276, -1276,   329,
    1681    -1276, -1276,  3690, -1276,   450,  3690, -1276, -1276, -1276, -1276,
    1682    -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276,  3690, -1276,
    1683    -1276,  3690,  3690,  3690,  3690,  3690,  3690,  3690,  3690,  3690,
    1684     3690,  3690,  3690,  3690,  3690,  3690,  3690,  3690,  3690,  3309,
    1685      667,  1689, -1276, -1276,    99,    99, -1276, -1276,  8758, -1276,
    1686    -1276,   876, -1276, -1276,   876, 10469, -1276, -1276,  9465,  6651,
    1687      923, -1276,  9432, -1276, -1276,   649, -1276,   927,  1763,   929,
    1688     2234,    63,   869, -1276,    99,    99,   869,    76, -1276,    99,
    1689       99,   876, -1276, -1276,    99,    99, -1276,   774,  9583,  1816,
    1690    10778,   446,   465,  9583, -1276,  8674, -1276,   869, -1276,  8217,
    1691    -1276,   294,  7988,  7988,  1816, 10174,   903, -1276,  1168,   913,
    1692      916, -1276,   932,  5718,   550, -1276,  1024,  1816,  7988,   615,
    1693     2239,   615,    79,   774, -1276, -1276,    80,   774, -1276, -1276,
    1694    -1276,  2239, -1276,   770, -1276,   774,   152,  9703, -1276,   498,
    1695      942,   515,   944, -1276,   779,   152, -1276, -1276,  9119,   152,
    1696      563,  5344,   941, 10778, -1276, -1276,   948, -1276, -1276, -1276,
    1697      615, -1276, 10703,   788, -1276,  7988,   693,  8303, -1276, -1276,
    1698      649,   945,   949,   620,  2900, -1276, -1276, 10847,  3690, -1276,
    1699    -1276,   681,   964,  3690, -1276,   681,   943, -1276, -1276,   971,
    1700    -1276,   943,   976,   359,  3690,   957,   956,    62,   980,   144,
    1701      975,   982,   988, -1276,   992,   994,  6651, -1276,  3690, -1276,
    1702     6072,  3690,   993, -1276, -1276,   595, -1276,  3690, -1276, -1276,
    1703      773, -1276, -1276, -1276, -1276,   222,   222,   671,   671,   732,
    1704      732,   732,   732,   427,   427,   759,   755,   741,   747,   784,
    1705     3690,   195,  9703,  1002,  1005,  1010,  1689, -1276, -1276, -1276,
    1706    -1276, -1276,  9703,  9703, -1276,  8217, -1276,  7023,  8994, -1276,
    1707    -1276, -1276,  1763,  9703,   887,  1011,  1012,  1015,  1017,  1018,
    1708     1021,  1029, -1276,  4594,  2234, -1276, -1276, -1276, -1276, -1276,
    1709    -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276,
    1710    -1276, -1276,   876, -1276, -1276, -1276,   869, -1276, -1276, -1276,
    1711    -1276, -1276, -1276, -1276, -1276, -1276, -1276,  1031,  1034, -1276,
    1712       32,   993, 10174, -1276, -1276, -1276,  4829,   996, -1276, -1276,
    1713    -1276, -1276,   681,  6383,  1087, -1276, -1276, -1276, -1276,  1014,
    1714    -1276, -1276, -1276,   876, -1276, -1276, -1276,   876,   743,  1037,
    1715      876, -1276, -1276, -1276, -1276, -1276, -1276,  6899, -1276,   152,
    1716    -1276,  1020,  9550, -1276,  1883, -1276,   395,   681, -1276,  1038,
    1717     1036, -1276, -1276,  1042,  1045, -1276,   693,  1694, -1276,   494,
    1718    -1276,  2900,   869, -1276, -1276,   882, -1276, -1276, -1276,   890,
    1719     1048, 10847,  9392,  8758,  1049, -1276, -1276,   599,  1032, -1276,
    1720     3690,  1052,   284,  1050, -1276,  1056,  6899,   615,  1056, -1276,
    1721    -1276,  1056, -1276,  4829, -1276, -1276, -1276,  1055,  3690,  1312,
    1722    -1276,  3690, -1276,  1312, -1276, -1276,  3690, -1276,   265,   774,
    1723    -1276, -1276, -1276, -1276, -1276, -1276, -1276,   788,  8876, -1276,
    1724    -1276,  7147,  1054, -1276,   273,   774, -1276,   289,   296,   774,
    1725    -1276,  1003,  6008, -1276, -1276, -1276,  9703,  9703, -1276,  8378,
    1726     8378,  1062,  1058,  1059,  1069, -1276,   528,    60,   993, -1276,
    1727     1312, -1276,  5718, -1276,  3690,   459, -1276,  6520,  1071,  1075,
    1728    10115,  1076,  1078,   495,   516,  1001,  3690,  1081,   152,  3690,
    1729     3690,  1064,  1066,   116,   161,   546,  1072,  1083,  1060, -1276,
    1730    -1276, -1276,  1086, -1276, -1276, -1276, -1276, -1276, -1276, -1276,
    1731    -1276,  1074, -1276,   681,  1096,  3690,  9703,  9703,    32,    99,
    1732     1099, -1276, -1276,  1883,   479,  1980,  3690,  2331,   485, -1276,
    1733    -1276,  1082,    14,  1082, -1276, -1276, -1276,    99,    99,   681,
    1734    -1276, -1276,  9277, -1276, -1276, -1276, -1276,  1101,  1694, -1276,
    1735    -1276,  1091, -1276,  1100, -1276,   943, -1276, -1276,  2239,  1107,
    1736    -1276, -1276, -1276,   616,  1115, -1276,    62,  1102,  3690,  1103,
    1737       62,    62,  1123,   932,  3690,  1124,  1055, -1276,  1148, -1276,
    1738    -1276,  1121, -1276,   215, -1276,  1127,  1121, -1276,  1134, -1276,
    1739    -1276, -1276,   876,  1135,  1136,  6775,  1150,  1154,  1155, -1276,
    1740       99,  1138, -1276, -1276, -1276,   876, -1276, -1276, -1276, -1276,
    1741    -1276, -1276,   876,  3690,  3690,   788,  1156, -1276, -1276, -1276,
    1742    -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276,  3690,  3690,
    1743     1164,  1169,  1121, -1276, -1276,   681, -1276, -1276, -1276,  3690,
    1744     3690,  1238,  3690, -1276, -1276,  1157, -1276,  1159,  3690,  1161,
    1745     1162,  3690,   946,  1166,    25,  2027, -1276, -1276,  6383,  1184,
    1746       99,   527, -1276, -1276, -1276, -1276, -1276, -1276, -1276,  9317,
    1747      534, -1276,   796,  1190,  1192,  1196, -1276,  2331, -1276,    99,
    1748    -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276,  9931, -1276,
    1749     8378, -1276,  1202, -1276, -1276,  9392,   537,   538, -1276,  1209,
    1750     1186,   770,  1207, -1276,   320, -1276, -1276,  1210, -1276, -1276,
    1751     1216,  1257, -1276, -1276,  1257,  1257,  1312,  1218,  2023,  2049,
    1752    -1276,  1227, -1276,  9703, -1276, -1276, -1276, -1276, -1276,  1228,
    1753    -1276,  9703,  9703,  9703, -1276, -1276,  1229, -1276,  1230,  1233,
    1754     1234,   575,  8063,  8183, -1276, -1276, -1276, -1276,  1236, -1276,
    1755      647,   658,  1240,   665,  6215, -1276, -1276,   561, -1276, -1276,
    1756      670,  1241,  1246,   152,  1300,   854, -1276, -1276,  3690, -1276,
    1757     3690, -1276, -1276, 10115, -1276,  1255,  1256, -1276, -1276,   312,
    1758      774, -1276, -1276,  1883, -1276, -1276, -1276,  1245, -1276, -1276,
    1759    -1276, -1276, -1276, -1276,  9392,   770,  1261, -1276,  1239,   770,
    1760    -1276, -1276, -1276,  1312, -1276, -1276, -1276, -1276, -1276, -1276,
    1761    -1276, -1276, -1276, -1276, -1276, -1276,  1262,  1267, -1276, -1276,
    1762    -1276, -1276, -1276, -1276, -1276,  1270, -1276,  1273, -1276, 10115,
    1763      240,  3690, 10115, -1276,  1276,  3690, -1276,  7793,  9392, -1276,
    1764      271,  1291,  1294, -1276, -1276,  1282,  1288,  1272,   818, -1276,
    1765    -1276, -1276, -1276, -1276, -1276,   876, -1276, -1276,  1816,  2239,
    1766     1287, -1276,   339,  3690, -1276,   690,  1121,  1312,  1312,  1289,
    1767     1296,  1299,  1304, -1276, -1276,  8378,  1303, -1276,  1370,  3690,
    1768     1286, -1276, -1276, 10025, -1276,   707, -1276,  1293, 10115,  1298,
    1769     8453, -1276, -1276,  1310, -1276,  1311, -1276,  1330,  1335, -1276,
    1770     1302,  9703,  9392, -1276, -1276, -1276,   770,   615,  1322,  1305,
    1771     1323,  1121,  1121, -1276, -1276, -1276, -1276, -1276, 10115,   147,
    1772    -1276,   420, -1276, -1276,  7638, -1276, -1276,  1313,  3690, -1276,
    1773     3690,  7638,   152,  9550,   152,  9550,  1326, -1276,  1332, -1276,
    1774    -1276, -1276,  1328, -1276, -1276,   714, -1276, -1276, -1276,  1337,
    1775     1342, -1276,  3690,  3690, -1276, -1276,   883,    84, -1276, -1276,
    1776     1324, -1276,   883, -1276, -1276,  2177,   615, -1276, -1276,   152,
    1777     9550,   152,  9550,  1334,  1349,  1336,   615, -1276, -1276, -1276,
    1778    -1276, 10025,  1345,   883,  7717,  3690,  9935,  1351,   883,  1357,
    1779     2177,  2664, -1276, -1276, -1276,  1359, -1276, -1276, -1276, -1276,
    1780    -1276,  8758, -1276, -1276, -1276,  9797, -1276, 10025, -1276, -1276,
    1781     1346,  9707, -1276, -1276,  9935,   152,  2664,   152,  1369,  1372,
    1782      730, -1276,  9797, -1276, -1276, -1276,  9707, -1276, -1276, -1276,
    1783      152,   152, -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276
     1631    7432,  9239, -1310,   -42, -1310, -1310, -1310, -1310, -1310, -1310,
     1632   -1310,    44, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1633   -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,   149, -1310,
     1634   -1310,  1382,   763,   211,  7674,   214, -1310, -1310, -1310, -1310,
     1635   -1310,   245, -1310, -1310, -1310,   606,   257, -1310, -1310, -1310,
     1636   -1310,  4978, -1310, -1310, -1310,    40,   278, -1310,  1536, -1310,
     1637   -1310, -1310, -1310,  1664,   381,    37,  7795, -1310, -1310,  4978,
     1638     814, -1310, -1310,  1171,   401,  6966,   718,   988,  1171,  1209,
     1639   -1310, -1310,   149, -1310,  1171,  1411, -1310,   294, -1310,   441,
     1640     471, -1310, -1310, -1310, -1310,   367,   278,   149, -1310,   149,
     1641   -1310, -1310, -1310, -1310,  7829,  1536, -1310, -1310,  1536, -1310,
     1642     353, -1310,  7949, -1310, -1310,  2111,  8264, -1310,   865,   865,
     1643     865, -1310, -1310,   898,   149, -1310,   370,   384,   387, -1310,
     1644   -1310, -1310,   392, -1310, -1310, -1310, -1310, -1310,   410,   415,
     1645   -1310,   475,  8805,  1075,   585,   424,   449,   461,   472,   501,
     1646     537,  9479,  7056,   453, -1310,  9199, -1310, -1310, -1310, -1310,
     1647     526, -1310,   268,  5151,  5151, -1310,   549,   298, -1310, -1310,
     1648   -1310, -1310,   560,   437,   445,   452, -1310, -1310,  1664,  2742,
     1649     571,   644, -1310,   248, -1310,   149,   149,   278, -1310, -1310,
     1650     269, -1310,   149,   149, -1310,  3298,   636,   641,   865,  6718,
     1651   -1310, -1310, -1310,  4978, -1310, -1310,  1171, -1310, -1310, -1310,
     1652     278, -1310,  1536,    40, -1310,  7915, -1310,   865,   865,   865,
     1653     278, -1310,  1382, -1310,  5120, -1310, -1310,   649,   865, -1310,
     1654     865, -1310,   820,   865, -1310,  1382,   657,   665, -1310,  7674,
     1655     627, -1310, -1310, -1310,  9166, -1310, -1310,  8721, -1310,   644,
     1656     267, 10207,  8264,  2111,  3298, -1310,   309, -1310, -1310,  7949,
     1657    1536,   645, 10880,   763,   654, -1310, -1310,   318, -1310,   333,
     1658   -1310,   692,   733, 10266,   719, 10207, 10325, -1310,   758, -1310,
     1659   -1310, -1310, -1310, -1310, 10384, 10384,  8569,   257, -1310, -1310,
     1660   -1310, -1310, -1310, -1310, -1310, -1310,  2184,  1919,  8805, 10207,
     1661   -1310,   632,   617,   734,   418,   922,   757,   751,   754,   792,
     1662     176, -1310, -1310, -1310,   681, -1310, -1310,   140, -1310, -1310,
     1663    1075, -1310, -1310,   136,   780, -1310,   778,   780, -1310, -1310,
     1664    7829, -1310,   788,   795,  8923, -1310, -1310,  1034,  1178,  8350,
     1665    6718,  1171, -1310,  1171,   865,   865, -1310, -1310, -1310, -1310,
     1666   -1310, -1310,   865,  7829,  1536, -1310, -1310,  9479,  1304, -1310,
     1667   -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,  4692, 10207,
     1668   -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1669   -1310, -1310, -1310, -1310,   618,   810,   815,   817,   939,   833,
     1670     838,   842,  2742, -1310, -1310,   149,   823,   858,    40,   866,
     1671   -1310, -1310,   877, -1310, -1310, -1310,  9166, -1310, -1310, -1310,
     1672   -1310, -1310,  3298, -1310,  8805,  8805, -1310,   865,  2111,  6842,
     1673    8425, -1310, -1310, -1310, -1310,  9166,   267, -1310, -1310,  1171,
     1674     278, -1310, -1310,  9166, -1310,  5284, -1310, -1310,   865,   865,
     1675     245,  8805, -1310,   893, -1310,   865, -1310, -1310, -1310, -1310,
     1676    9637, -1310,   315, 10620, -1310,   278,   905, -1310,  2111, 10660,
     1677   10443, -1310, -1310, -1310, -1310,   951,  3298, -1310,  8425,   644,
     1678    7553, -1310, -1310, -1310, -1310,   712,   404,   878,   763,   908,
     1679     899,   912, 10880,   840,  7949, -1310, 10880, -1310, -1310, -1310,
     1680   -1310,   431, -1310,   924,   920, -1310,  8569, -1310,  9512, -1310,
     1681   -1310,  8569, -1310,  8687,  8569, -1310, -1310,   257, -1310,   476,
     1682     928,   934, -1310,  6808, -1310,   506, -1310, -1310, 10207, -1310,
     1683     825, 10207, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1684   -1310, -1310, -1310, -1310, 10207, -1310, -1310, 10207, 10207, 10207,
     1685   10207, 10207, 10207, 10207, 10207, 10207, 10207, 10207, 10207, 10207,
     1686   10207, 10207, 10207, 10207, 10207,  3915,   681,  1833, -1310, -1310,
     1687     149,   149, -1310, -1310,  8805, -1310, -1310,   877, -1310, -1310,
     1688     877, 10502, -1310, -1310,  9479,  6808,   964, -1310,  8264, -1310,
     1689   -1310,   526, -1310,   967,   629,   986,  2026,   331,   878, -1310,
     1690     149,   149,   878,   374, -1310,   149,   149,   877, -1310, -1310,
     1691     149,   149, -1310,   780,  9597,  1536, 10811,   359,   543,  9597,
     1692   -1310,  8721, -1310,   878, -1310,  7829, -1310,    84,  8035,  8035,
     1693    1536,  5625,   990, -1310,  1501,   991,   995, -1310,  1011,  5151,
     1694     412, -1310,  1102,  1536,  8035,   627,  2111,   627,   407,   780,
     1695   -1310, -1310,   419,   780, -1310, -1310, -1310,  2111, -1310,   475,
     1696   -1310,   780,   278,  9637, -1310,   517,  1020,   546,  1021, -1310,
     1697     788,   278, -1310, -1310,  9166,   278,   557,  9324,  1019, 10811,
     1698   -1310, -1310,  1025, -1310, -1310, -1310,   627, -1310, 10736,   795,
     1699   -1310,  8035,   848,  8350, -1310, -1310,   526,  1022,  1023,   712,
     1700    1691, -1310, -1310, 10880, 10207, -1310, -1310,   763,  1024, 10207,
     1701   -1310,   763,  1026, -1310, -1310,  1035, -1310,  1026,  1040,   333,
     1702   10207, -1310,  1046,   257,  1044,  1051,  1052, -1310,  1053,  1054,
     1703    6808, -1310, 10207, -1310, 10148, 10207,  1063, -1310, -1310,   615,
     1704   -1310, 10207, -1310, -1310,   906, -1310, -1310, -1310, -1310,   632,
     1705     632,   617,   617,   734,   734,   734,   734,   418,   418,   922,
     1706     757,   751,   754,   792, 10207,   231,  9637,  1058,  1059,  1070,
     1707    1833, -1310, -1310, -1310, -1310, -1310,  9637,  9637, -1310,  7829,
     1708   -1310,  7180,  9041, -1310, -1310, -1310,   629,  9637,   960,  1073,
     1709    1076,  1078,  1079,  1080,  1081,  1084, -1310,  2169,  2026, -1310,
     1710   -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1711   -1310, -1310, -1310, -1310, -1310, -1310,   877, -1310, -1310, -1310,
     1712     878, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1713   -1310,  1086,  1087, -1310,    40,  1063,  5625, -1310, -1310, -1310,
     1714    4692,  1066, -1310, -1310, -1310, -1310,   763,  6230,  1159, -1310,
     1715   -1310, -1310, -1310,  1069, -1310, -1310, -1310,   877, -1310, -1310,
     1716   -1310,   877,   644,  1093,   877, -1310, -1310, -1310, -1310, -1310,
     1717   -1310,  7056, -1310,   278, -1310,  1091,  9512, -1310,  1575, -1310,
     1718     494,   763, -1310,  1101,  1103, -1310, -1310,  1110,  1113, -1310,
     1719     848,  1897, -1310,   593, -1310,  1691,   878, -1310, -1310,   899,
     1720   -1310, -1310, -1310,   908,  1116, 10880,  7949,  8805,  1118, -1310,
     1721   -1310,   647,  1115,  7056,   627,  1115, -1310, -1310,  1115, -1310,
     1722    4692, -1310, -1310, -1310,  1114, 10207,  1183, -1310, 10207, -1310,
     1723    1183, -1310, -1310, 10207, -1310,   455,   780, -1310, -1310, -1310,
     1724   -1310, -1310, -1310, -1310,   795,  8923, -1310, -1310,  7304,  1121,
     1725   -1310,   463,   780, -1310,   474,   490,   780, -1310,   865,  3741,
     1726   -1310, -1310, -1310,  9637,  9637, -1310,  8425,  8425,  1123,  1119,
     1727    1125,  1124, -1310,   668,   173,  1063, -1310,  1183, -1310,  5151,
     1728   -1310, 10207,   508, -1310,  6684,  1128,  1134, 10089,  1135,  1138,
     1729     736,   994,   973, 10207,  1140,   278, 10207, 10207,  1248,  1139,
     1730    1142,   245,   114,   849,  1145,  1154,  1149, -1310, -1310, -1310,
     1731    1162, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,  1155,
     1732   -1310,   763,  1174, 10207,  9637,  9637,    40,   149,  1176, -1310,
     1733   -1310,  1575,   513,  1885, 10207,  2419,   522, -1310, -1310,  1163,
     1734      70,  1163, -1310, -1310, -1310,   149,   149,   763, -1310, -1310,
     1735    9364, -1310, -1310, -1310, -1310,  1184,  1897, -1310, -1310,  1127,
     1736   -1310,  1187, -1310,  1026, -1310, -1310,  2111,  1189, -1310, -1310,
     1737   -1310,   659,  1197, -1310,  1188,  1011, 10207,  1205,  1114, -1310,
     1738     525, -1310, -1310,  1204, -1310,    50, -1310,  1212,  1204, -1310,
     1739    1219, -1310, -1310, -1310,   877,  1220,  1222,  6932,  1221,  1223,
     1740    1224, -1310,   149,  1232, -1310, -1310, -1310,   877, -1310, -1310,
     1741   -1310, -1310, -1310, -1310,   877, 10207, 10207,   795,  1234, -1310,
     1742   -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1743   10207, 10207,  1237,  1238,  1204, -1310, -1310,   763, -1310, -1310,
     1744   -1310, 10207, 10207,  1308, 10207, -1310, -1310,  1225, -1310,  1226,
     1745   10207,  1230,  1235, 10207,  1038,  1240,   232, -1310,    20,  2239,
     1746   -1310, -1310,  6230,  1241,   149,   528, -1310, -1310, -1310, -1310,
     1747   -1310, -1310, -1310,  9439,   534, -1310,   925,  1249,  1256,  1260,
     1748   -1310,  2419, -1310,   149, -1310, -1310, -1310, -1310, -1310, -1310,
     1749   -1310, -1310,  9905, -1310,  8425, -1310,  1270, -1310, -1310,  7949,
     1750     561,   570, -1310,  1266, -1310,  1267, -1310, -1310,  1271,  1303,
     1751   -1310, -1310,  1303,  1303,  1183,  1274,   690,  1071, -1310,  1277,
     1752   -1310,  9637, -1310, -1310, -1310, -1310, -1310,  1280, -1310,  9637,
     1753    9637,  9637, -1310, -1310,  1281, -1310,  1283,  1286,  1289,   691,
     1754    8110,  8230, -1310, -1310, -1310, -1310,  1288, -1310,   746,   769,
     1755    1292,   828,  6537, -1310, -1310,   575, -1310, -1310,   829,  1294,
     1756    1295,   278,  1347,   985, -1310, -1310, 10207, -1310,  1297,   475,
     1757   10207, -1310, -1310, 10089, -1310,  1301,  1302, -1310, -1310,   495,
     1758     780, -1310, -1310,  1575, -1310, -1310, -1310,  1293, -1310, -1310,
     1759   -1310, -1310, -1310, -1310,  7949, -1310, -1310, -1310,  1183, -1310,
     1760   -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1761   -1310,  1310,  1312, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1762    1321, -1310,  1320, -1310, 10089,    73, 10207, 10089, -1310,  1326,
     1763   10207, -1310,  6452,  7949, -1310,   348,  1318,  1341, -1310, -1310,
     1764    1329,  1330,  1309,   475,   220,   958, -1310, -1310, -1310, -1310,
     1765   -1310, -1310,   877, -1310, -1310,  1536,  2111,  1331,  1204,  1183,
     1766    1183,  1335,  1340,  1348,  1349, -1310, -1310,  8425,  1344, -1310,
     1767    1417, 10207,  1334, -1310, -1310,  9999, -1310,   864, -1310,  1337,
     1768   10089,  1338,  8500, -1310, -1310,  1351, -1310,  1357, -1310,  1383,
     1769    1386, -1310,  1353,  1346,    66,  1354,  9637,  7949, -1310, -1310,
     1770   -1310,  1376,  1204,  1204, -1310, -1310, -1310, -1310, -1310, 10089,
     1771     240, -1310,   305, -1310, -1310,  6145, -1310, -1310,  1362, 10207,
     1772   -1310, 10207,  6145,   278,  9512,   278,  9512,  1385, -1310,  1388,
     1773   -1310,  1369, -1310, 10207,  1392,   265,  1387, -1310, -1310, -1310,
     1774    1390, -1310,  1395,  1397, -1310, 10207, 10207, -1310, -1310,  1043,
     1775      89, -1310, -1310,  1379, -1310,  1043, -1310, -1310,  1975,   627,
     1776   -1310, -1310,   278,  9512,   278,  9512,    66,  1400, 10207,  1384,
     1777      66,    66,  1408,  1412, -1310, -1310, -1310, -1310,  9999,  1410,
     1778    1043,  6373, 10207,  9909,  1415,  1043,  1413,  1975,  2924, -1310,
     1779   -1310, -1310,  1424, -1310, -1310, -1310, -1310,  1406,   475,  1427,
     1780   -1310,   292, -1310, -1310,  8805, -1310,  9771, -1310,  9999, -1310,
     1781   -1310,  1409,  9681, -1310, -1310,  9909,   278,  2924,   278,  1430,
     1782    1434,   475,  1436, -1310,  1418,   475,   875, -1310,  9771, -1310,
     1783   -1310, -1310,  9681, -1310, -1310, -1310,   278,   278, -1310,   313,
     1784   10207, -1310,   894, -1310, -1310, -1310, -1310, -1310, -1310,   475,
     1785     627,  1439,  1422, -1310, -1310, -1310, -1310,   895, -1310, -1310,
     1786    1423,   627, -1310, -1310
    17841787};
    17851788
     
    17871790static const yytype_int16 yypgoto[] =
    17881791{
    1789    -1276,  4372,  2980, -1276,  2546, -1276,   133,     0,   353, -1276,
    1790    -1276,   484,  -503,  -488,  -816,  -925, -1276,  -155,  5343,   687,
    1791    -1276,    -8,   438,   439,   406,   473,   936,   937,   938,   940,
    1792      935, -1276,    16,  -629,  5085,  -872, -1276, -1276,   571,   711,
    1793     -953,   442, -1276,   143, -1276,   337, -1218, -1276, -1276,    43,
    1794    -1276, -1095,  -891,   157, -1276, -1276, -1276, -1276,   -28, -1182,
    1795    -1276, -1276, -1276, -1276, -1276, -1276,   239, -1036,    39, -1276,
    1796     -292, -1276,   428,   203, -1276,    73, -1276,  -329, -1276, -1276,
    1797    -1276,   497,  -831, -1276, -1276,     8, -1177,   119,  2152, -1276,
    1798    -1276, -1276,  -200, -1276,   218,   464,  -197,  1593,  4090, -1276,
    1799    -1276,    54,    10,    81,   870, -1276,  1757, -1276, -1276,     4,
    1800     2080, -1276,  2209,   245, -1276, -1276, -1276,  -810, -1276,   651,
    1801      492,   236,   490,  -591, -1276, -1276,   829,   640,  -247, -1276,
    1802     -487,  -338,   961, -1276, -1276,  -885,  -918,  -131,   -60, -1276,
    1803      462, -1276,  1284,  -121,  -305,  -157,  -103,   614,   708, -1276,
    1804      905, -1276,  2602,  1460,  -448,   848, -1276, -1276,   661, -1276,
    1805     -437, -1276,   217, -1276, -1276, -1276, -1269,   341, -1276, -1276,
    1806    -1276,  1085, -1276,     6, -1276, -1276,  -796,   -87, -1275,  -158,
    1807     2622, -1276,  4369, -1276,   843, -1276,    21,   165,  -174,  -172,
    1808     -169,     2,   -40,   -32,   -30,  1684,    26,    53,    66,   110,
    1809     -166,  -163,  -160,  -159,  -293,  -485,  -480,  -434,  -541,  -314,
    1810     -513, -1276, -1276,  -535,  1006,  1008,  1016,  1639,  4667,  -574,
    1811     -533,  -528,  -509,  -421, -1276,  -961, -1011, -1007, -1005,  -575,
    1812     -287,  -299, -1276, -1276,   298,   238,   -63, -1276,  3674,   814,
    1813     -613,  -492
     1792   -1310,  4698,  1798, -1310,  3042, -1310,     7,     0,  -108, -1310,
     1793   -1310,   559,  -491,  -456,  -838,  -937, -1310,    22,  5065,  1181,
     1794   -1310,  -255,   556,   577,   300,   580,  1012,  1013,  1015,  1010,
     1795    1027, -1310,  -677,  -688,  4947,  -862, -1310, -1310,   660,   -98,
     1796    -855,  -381, -1310,    79, -1310,   417,  -852, -1310, -1310,   138,
     1797   -1310, -1059,  -867,   261, -1310, -1310, -1310, -1310,    60, -1309,
     1798   -1310, -1310, -1310, -1310, -1310, -1310,   336, -1067, -1310, -1310,
     1799    -597, -1310,   130,    77, -1310,   182, -1310,  -236, -1310, -1310,
     1800   -1310,   586,  -813, -1310, -1310,     3, -1167,   287,   687, -1310,
     1801   -1310, -1310,  -226, -1310,    85,  1227,  -181,  2547,  4408, -1310,
     1802   -1310,   131,   160,   578,  1502, -1310,  2174, -1310, -1310,   132,
     1803    2939, -1310,  3219,  1653, -1310, -1310, -1310,  -810, -1310,   732,
     1804     579,   334,   573,  -128, -1310, -1310,   907,   723,  -354, -1310,
     1805    -465,  -217,  -593, -1310, -1310,  -840,  -898,  1306,  -216, -1310,
     1806     -35, -1310,   192,  -156,  -273,  -185,  -137,   706,   789, -1310,
     1807     996, -1310,  3499,  1557,  -387,   935, -1310, -1310,   741, -1310,
     1808    -434, -1310,    57, -1310, -1310, -1310, -1220,   432, -1310, -1310,
     1809   -1310,  1164, -1310,    18, -1310, -1310,  -789,  -105, -1264,  -143,
     1810    3350, -1310,  2123, -1310,   923, -1310,  -165,    93,  -175,  -173,
     1811    -169,     2,   -39,   -32,   -30,   889,    53,    55,    64,  -163,
     1812    -166,  -159,  -157,  -149,  -292,  -483,  -481,  -471,  -529,  -301,
     1813    -508, -1310, -1310,  -496,  1077,  1082,  1089,  1437,  5179,  -551,
     1814    -503,  -501,  -498,  -400, -1310,  -971,  -998,  -984,  -983,  -563,
     1815    -278,  -265, -1310, -1310,    -1,   243,   -49, -1310,  3994,    59,
     1816    -579,  -466
    18141817};
    18151818
     
    18201823static const yytype_int16 yytable[] =
    18211824{
    1822       50,   112,    97,   419,    77,   147,   388,   670,   389,   114,
    1823       71,   390,  1020,   148,   391,   149,   797,   392,   722,   837,
    1824      393,   394,   740,   353,  1183,   401,   767,   597,  1184,   257,
    1825     1185,   112,   112,   814,    50,  1370,    97,   706,    77,    52,
    1826      141,   711,   250,  1160,    71,    50,   460,  1022,   592,   796,
    1827      584,    50,  1133,   158,    70,   789,    33,   616,   430,    50,
    1828      790,   620,   374,   375,    50,    33,   189,    50,  1052,   212,
    1829       50,   150,   222,    52,   898,   788,  1188,   208,   215,   791,
    1830      656,   388,   272,   389,  1131,  1132,   390,  1346,    70,   391,
    1831      334,  1278,   392,   464,   466,   393,   394,    33,   151,   665,
    1832      801,    33,   400,   785,   804,    33,    50,   669,   786,    50,
    1833      416,   152,   660,   662,  1432,   122,    50,  1096,    33,    58,
    1834      115,    33,    33,   198,   112,   821,   123,  1163,  1164,   824,
    1835      402,  -240,  -240,   688,   111,   827,   827,   242,   558,   402,
    1836      147,    33,   273,  1452,   165,    50,   282,   158,   148,   465,
    1837      149,   827,   225,    58,   787,   226,  1147,    50,   230,   364,
    1838      232,  1138,  1279,  1223,  1142,    96,   235,   514,   166,   410,
    1839      800,   402,   559,   470,   199,   402,   807,   798,   910,   589,
    1840       50,    50,   710,   158,   689,   695,   206,  1139,  1432,   216,
    1841      805,  1148,   589,   850,   854,   402,   402,    50,   827,    96,
    1842      170,   724,   396,   140,  -240,    50,   150,   158,   785,   460,
    1843      146,   907,  1218,   786,    50,   147,    96,    50,    64,   433,
    1844      965,   142,  1179,   148,   112,   149,  1292,   432,   460,   185,
    1845      144,   941,    96,   151,   112,    96,   460,   112,   106,   106,
    1846      243,    50,   112,    97,   654,    77,   152,   452,  1462,   789,
    1847       77,    71,    64,   964,   790,    50,    50,  1346,   158,   787,
    1848      567,   153,    50,   771,  1346,   112,   568,   368,   503,   952,
    1849      577,   168,   106,   791,  1139,   506,   597,   396,  1521,   776,
    1850       52,  1077,  1133,   369,   828,   828,  1063,  1389,  1390,   225,
    1851      197,   397,   353,   539,   540,    70,   -10,   785,  1436,  1532,
    1852      828,  1314,   786,  1317,  1319,  1228,  1536,    33,   106,  -295,
    1853       96,  1343,   210,   797,  1522,    33,   728,  1346,  1389,  1390,
    1854      823,   584,    96,    50,   968,   364,   584,   378,   658,   539,
    1855      936,    33,   408,  1229,   663,  1133,   431,  1020,    33,   869,
    1856       50,    50,  1537,   379,   541,   387,   185,   828,   787,   160,
    1857      542,   543,   208,   789,    33,   427,   237,    50,   790,  1391,
    1858       58,    50,   210,   800,   539,   435,   397,  1131,  1132,   490,
    1859       96,   629,  1022,   814,   716,   454,   829,   791,   718,  1099,
    1860      720,   402,    96,   721,   240,   353,   725,  1112,   688,   402,
    1861     1401,   846,  1399,   678,   717,    50,  1436,   364,   381,  1079,
    1862     1060,  1436,   210,  1116,   110,   589,    96,  1186,   465,  1478,
    1863     1119,   160,   589,    77,   382,    50,   649,    43,    44,  1080,
    1864      468,    50,  1436,   242,   324,   225,  1362,   230,   402,  1436,
    1865      698,   513,    77,  1345,   491,  1308,   492,   493,   885,   689,
    1866       77,   437,   383,  1094,  1507,   733,  1509,   385,   353,  1212,
    1867     1192,   679,  1192,  1065,   449,  1309,   112,   680,   384,    64,
    1868     1416,    50,   210,   386,   461,   116,  1073,  1133,   460,    50,
    1869     1217,   364,   208,    50,  1417,    97,   945,    77,    50,   106,
    1870      597,   112,   882,    71,   965,  1470,   112,  1471,    96,  1183,
    1871      649,   353,   353,  1184,   210,  1185,   696,  1376,   253,   210,
    1872     1427,   963,   697,   425,    39,   650,   591,   353,    42,  1254,
    1873     1255,  -523,    52,   225,  1503,   156,  1049,    43,    44,   112,
    1874      712,   174,   548,   549,   112,   110,   713,    70,   242,   569,
    1875      838,   402,  1050,   742,   743,   744,  1118,  1121,    43,    44,
    1876     1188,  1463,  1519,    45,     2,   202,     4,     5,     6,     7,
    1877      727,    47,    48,   848,   353,  1464,   728,   550,   551,   425,
    1878      185,  1421,  1422,   817,   858,  1292,   738,   818,   251,   248,
    1879       39,   252,   171,   172,    42,  1491,   667,   156,   688,   650,
    1880     1145,  1496,   819,    43,    44,   -12,   820,   210,    50,   111,
    1881       50,    39,    58,   171,   172,    42,  1146,   678,   963,   160,
    1882     1049,   681,  1517,  1468,    43,    44,  1189,  1524,   317,    50,
    1883     1468,   819,    37,   863,    38,  1059,  1181,   332,  -448,   728,
    1884      432,   278,  1190,   572,    50,   402,   498,   461,   112,   689,
    1885      865,  1130,  1154,   778,    43,    44,   728,    50,    96,   112,
    1886       50,   112,   513,   591,  -449,  -112,   461,   513,  1145,  -112,
    1887      513,    50,   734,  1156,   461,  1189,   268,   739,  1299,  1301,
    1888      507,   584,   370,  1518,  1284,   421,   839,   210,   628,   424,
    1889      270,  1288,    77,   975,  1300,  1302,   429,    -3,   871,   271,
    1890      112,   325,   728,   208,   568,   840,    77,    51,   113,   686,
    1891      110,    64,  1332,    50,    50,    39,  1333,   208,  1349,    42,
    1892     1028,   112,   678,    43,    44,   112,   326,   210,    43,    44,
    1893      930,   106,   678,   678,  1075,   486,   931,   327,   487,   897,
    1894      931,    51,   924,   678,   472,   424,   328,   110,   478,   137,
    1895      443,  1208,   145,   981,   693,   363,   353,   568,    51,  -296,
    1896       43,    44,    47,    48,  1418,   329,     8,     9,    10,    11,
    1897       12,   181,   317,   784,   205,   591,   110,    51,   137,   138,
    1898     1429,   330,  1339,   367,  1123,   156,   444,   688,   728,    43,
    1899       44,   445,   847,  1340,   849,   376,   935,  1358,    33,   728,
    1900     1342,   560,    50,   402,  1210,  1350,   728,   208,  1214,    47,
    1901       48,   728,   113,   380,    50,   544,   545,   576,   398,   861,
    1902      113,   581,   174,   256,   261,  1419,    36,   886,   868,   589,
    1903      400,  1416,   870,   881,   417,    47,    48,   418,   689,   617,
    1904      614,   440,  1437,   621,   618,   546,   547,   210,   728,  1485,
    1905      497,   301,   145,  1489,  1429,  1486,   629,   473,   353,   353,
    1906      113,   337,   112,  1006,   205,  1542,   450,    77,   976,   451,
    1907      715,   568,  -401,    71,   282,   210,   552,   553,   784,   591,
    1908      210,   388,   501,   389,   506,   163,   390,   181,   181,   391,
    1909      517,  1176,   392,   555,    50,   393,   394,   112,   554,  1143,
    1910      556,   317,   317,   557,   256,    39,   461,   171,   172,    42,
    1911      331,    50,    51,   934,   931,  1041,   578,    70,    43,    44,
    1912      461,   242,   324,   402,   205,    -3,   678,   678,   317,   642,
    1913     1066,   324,   402,   689,  1335,  1355,  1356,   112,   210,   643,
    1914      116,   778,   644,   629,   363,   653,   897,   163,    51,   112,
    1915     1389,  1390,   210,   112,  1224,  1225,   261,   209,  1410,   931,
    1916      539,   261,   256,   256,   686,   646,   228,   784,   113,   478,
    1917      647,   317,  1097,   478,   749,   750,   751,   752,   322,   591,
    1918      648,   432,    58,   317,   652,   317,   678,   678,   317,   877,
    1919      317,   317,   410,   645,   402,   301,   470,   324,   402,   503,
    1920      112,  1203,   745,   746,  1043,   747,   748,   209,   301,   655,
    1921     1006,    77,   247,    50,    50,    50,  -373,    71,  -244,   512,
    1922      976,   798,   324,   589,   561,   698,   859,  1271,  1272,  1273,
    1923      145,   701,  1031,     8,     9,    10,    11,    12,   703,   426,
    1924      113,  1067,   210,   112,   337,   753,   754,   209,   590,   608,
    1925      705,   714,   317,    50,   729,    50,   730,    50,   -14,  1042,
    1926      779,    70,   774,   613,   781,    33,   792,   613,   -15,   112,
    1927     1082,   835,   897,   836,  1041,   842,   591,   864,   396,   866,
    1928      878,    64,  1090,  -422,   697,  -527,  1090,  1295,    50,   890,
    1929      911,   816,   813,    36,  1530,   426,    39,   581,   171,   172,
    1930       42,   106,   181,   822,   896,   903,   830,   209,   112,    43,
    1931       44,   905,   908,   909,   897,   915,   917,   918,   110,   845,
    1932      137,   138,   256,   919,   301,   301,    58,   920,   256,   921,
    1933      613,    43,    44,  1090,   928,   163,   983,   938,  1023,   209,
    1934      939,   353,   353,  1158,   209,   940,   954,   955,   659,   661,
    1935      956,   301,   957,   958,   686,   874,   959,   707,  1296,  1032,
    1936      106,  1162,   708,  1043,   960,   112,  -410,   397,   256,  -409,
    1937     1025,   586,  1029,  1053,   897,   897,   256,  1054,   613,  1055,
    1938       51,   478,  1056,  1064,  1074,   694,  1078,  1076,  1006,  1110,
    1939      877,  1081,    77,   678,   113,   923,  1084,  1134,    71,  1135,
    1940     1136,   678,   678,   678,  1137,  1149,   301,    50,   113,  1150,
    1941     1152,   301,  1153,   301,   301,  1161,   210,  1166,  1042,    -9,
    1942     1182,  -445,  1042,   337,   728,    64,    -3,   -11,   649,  1170,
    1943      512,  1172,   209,  1066,  1178,   512,  1199,  1036,   512,  1211,
    1944     1201,  1090,    70,   110,   486,   106,   112,  1204,   112,   112,
    1945     1087,   322,   322,  1088,  1209,  1089,    43,    44,  1216,   944,
    1946     1213,  1219,  1226,   110,  1230,   137,   138,   561,   561,  1232,
    1947     1234,  1235,  -297,  1240,   353,   301,    43,    44,   322,     8,
    1948        9,    10,    11,    12,  1222,   613,   337,  1236,    77,   608,
    1949      761,  1237,  1238,  1247,    71,   590,    39,   590,   171,   172,
    1950       42,  1256,  1414,  1006,   833,  1009,  1257,    58,  1262,    43,
    1951       44,    33,   209,    50,  1265,   613,  1266,   650,  1268,  1269,
    1952      613,   322,   608,  1277,  1282,  1289,   613,  1290,   209,   613,
    1953      613,  1291,  1066,   112,  1041,   367,   139,  1297,  1348,    36,
    1954      322,  1305,  1307,   686,  1067,   613,   388,   256,   389,  1303,
    1955     1310,   390,   209,  1311,   391,  1315,  1033,   392,   256,  1006,
    1956      393,   394,  1006,  1312,  1320,  1322,  1328,  1329,  1330,  1331,
    1957      877,   678,  1042,  1338,  1341,  1351,   215,   208,   113,  1090,
    1958     1352,  1090,  1090,  1273,  1367,   478,  1068,   317,    50,    50,
    1959     1360,  1361,   613,   887,   608,  1373,  1374,   112,   112,  1383,
    1960      694,   694,   322,    58,  1384,  -411,    64,   110,  1502,   897,
    1961     1387,  1398,  1403,  1006,  1087,  1405,  1407,  1088,  1006,  1089,
    1962       43,    44,  1408,  1043,  1423,   897,   106,  1415,   266,  1409,
    1963      432,  1424,   813,   337,  1425,  1428,  1353,   112,   686,  1426,
    1964     1066,  1433,   815,  1067,  1333,  1442,  1444,   586,  1006,   911,
    1965     1438,  1446,  1151,   911,   911,  1440,  1448,  1456,    77,  1450,
    1966     1458,  1479,  1457,   106,    71,    77,  1090,  1481,  1484,  1510,
    1967     1469,    71,   209,   561,  1487,  1155,  1157,  1159,  1042,  1488,
    1968      147,  1495,   613,  1511,   948,  1516,   206,   216,   148,   590,
    1969      149,  1523,  1525,  1512,  1527,    50,   112,   877,   897,   897,
    1970      209,   590,   461,  1533,  1540,   209,   112,  1541,  1348,  1165,
    1971      755,  1006,   756,   759,   757,  1348,  1006,   758,    77,  1086,
    1972       50,    50,   106,   158,    71,  1281,  1490,  1402,  1543,  1215,
    1973     1090,  1090,  1375,  1354,  1472,  1006,   874,  1006,   446,   431,
    1974     1171,  1006,   396,  1034,  1006,  1180,    50,   211,   364,  1366,
    1975      301,  1067,  1006,  1193,   899,  1062,  1006,  1083,   110,   841,
    1976      137,   138,   106,   209,   982,   892,  1298,   649,  1348,   483,
    1977     1454,    43,    44,    58,   337,  1061,   906,   209,   691,   113,
    1978       58,  1037,     0,     0,  1306,     0,   763,    39,   764,   178,
    1979      179,    42,     0,   887,   887,     0,   765,   211,   694,     0,
    1980       43,    44,   265,     0,     0,  1473,   106,  1477,     0,   113,
    1981      301,     0,   210,    67,   117,     0,     2,   202,     4,     5,
    1982        6,     7,     0,   337,     0,     0,   588,     0,   589,  1504,
    1983     1009,   397,     0,    58,    47,    48,     0,   211,   862,  1513,
    1984        0,  -298,  1506,     0,  1508,     0,     0,    67,     8,     9,
    1985       10,    11,    12,     0,     0,   337,   650,     0,     0,     0,
    1986        0,     0,     0,   874,   157,   210,     0,   209,     0,     0,
    1987      106,     0,   461,     0,     0,   630,   613,   613,  1371,   461,
    1988       33,     0,  1371,   217,    37,   468,    38,     0,  1538,  1068,
    1989     1539,     0,   106,     0,   301,     0,     0,   211,   127,   106,
    1990      128,   129,   130,  1546,  1547,     0,     0,     0,    36,     0,
    1991        0,    43,    44,     0,   447,     0,     0,     0,   249,     8,
    1992        9,    10,    11,    12,     8,     9,    10,    11,    12,   211,
    1993        0,     0,   461,     0,   211,     0,     0,   322,     0,     0,
    1994     1037,     0,  1037,   937,  1037,  1359,     0,     0,     0,     0,
    1995        0,    33,   106,   942,   943,   159,    33,     0,   323,   113,
    1996        0,  1476,     0,  1476,   953,   887,   249,   342,   190,     0,
    1997        0,   213,     0,     0,   223,   256,     0,    75,     0,    36,
    1998        0,     0,   815,     0,    36,   700,     0,   518,  1068,  1453,
    1999      709,   519,   520,   521,   395,     0,     0,     0,  1476,     0,
    2000     1476,  1388,     0,     0,  1396,     0,     0,     0,     0,     0,
    2001      415,    75,   337,   420,   422,   522,     0,   523,   157,   524,
    2002      525,     0,   211,   560,     0,   402,     0,     0,   886,     0,
    2003      589,    47,    48,     0,     0,     0,    47,    48,     0,   438,
    2004        0,   209,     0,   441,   404,   442,     0,   218,   448,   159,
    2005     1413,   412,     0,     0,    67,  1435,     0,     0,    39,   462,
    2006     1439,   365,    42,     0,     0,     0,     0,     0,     0,   469,
    2007        0,    43,    44,     0,     0,   301,     0,   422,     0,     0,
    2008     1260,  1261,     0,  1263,     0,   159,   113,     0,     0,  1267,
    2009     1461,     0,  1270,     0,  1037,     0,  1068,   782,     0,   589,
    2010        0,     0,   211,     0,     0,    47,    48,   613,     0,   159,
    2011        0,    39,   113,   171,   172,    42,     0,   404,     0,     0,
    2012        0,   434,     0,     0,    43,    44,     0,  1475,     0,  1475,
    2013        0,   345,   834,     0,     2,   202,     4,     5,     6,     7,
    2014        0,     0,   211,     0,     0,     0,   249,  1128,  1129,     0,
    2015      582,     0,     0,     0,     0,     0,   610,     0,     0,   613,
    2016      613,     0,     0,     0,  1475,   224,  1475,     0,     0,   615,
    2017        0,   301,     0,   615,     0,     0,   566,  1531,    39,     0,
    2018      178,   179,    42,  1531,     0,   570,     0,     0,   573,     0,
    2019        0,    43,    44,     0,  1531,   317,     0,     0,  1531,     0,
    2020     1037,     0,    37,   439,    38,   895,     0,  1174,  1175,   483,
    2021        0,   113,     0,     0,     0,     0,     0,  1035,    75,   402,
    2022        0,     0,   462,    75,     0,    47,    48,   365,     0,     0,
    2023        0,     0,     0,     0,     0,     0,   342,     0,  1036,     0,
    2024        0,   462,     0,     0,     0,     0,   404,     0,     0,   462,
    2025      412,     0,     0,     0,   261,   113,     0,    39,     0,   178,
    2026      179,    42,   211,     0,     0,     0,   673,     0,     0,   422,
    2027       43,    44,  1395,     0,     0,    39,   256,   178,   179,    42,
    2028        0,     0,     0,     0,   687,     0,    67,     0,    43,    44,
    2029      211,     0,   613,     0,     0,   211,   180,     0,   422,   365,
    2030       78,     0,   422,     0,    47,    48,     0,   261,     0,     0,
    2031        0,     0,     0,     0,  1035,     0,   402,     0,   110,   113,
    2032      218,     0,    47,    48,     0,  1087,     0,   404,  1088,   342,
    2033     1089,    43,    44,   518,    78,     0,     0,   519,   520,   521,
    2034      630,   113,     0,     0,   110,     0,   986,     0,   113,     0,
    2035      113,  1087,   113,   211,  1088,     0,  1089,    43,    44,  1316,
    2036        0,   522,     0,   523,     0,   524,  1280,   211,     0,     0,
    2037      219,     0,    59,    59,   766,     0,     0,     0,     0,     0,
    2038        0,  1051,  1501,     0,     0,  1318,    75,   113,     0,   113,
    2039        0,   615,   777,     0,     0,     0,     0,     0,     0,     0,
    2040      345,   113,     0,   794,     0,    75,    59,  1501,  1501,     0,
    2041        0,     0,     0,    75,  1321,     0,     0,     0,   301,   566,
    2042      566,   582,  1323,  1324,  1325,     0,   582,   630,     0,    80,
    2043      345,     0,   615,  1501,     0,   342,   342,   209,     0,    59,
    2044        0,     0,    59,     0,     0,     0,     0,     0,   345,     0,
    2045       75,   342,     0,     0,   347,     0,     0,   211,     0,     0,
    2046        0,     0,     0,    80,     8,     9,    10,    11,    12,     0,
    2047      673,     0,    39,     0,   178,   179,    42,     0,     0,     0,
    2048        0,   462,     0,     0,     0,    43,    44,     0,     0,     0,
    2049      209,     0,     0,   345,     0,   462,    33,     0,   342,   220,
    2050        0,   852,     0,     0,     0,   856,     0,   891,     0,     0,
    2051      422,  1500,     0,   402,     0,     0,     0,     0,     0,    47,
    2052       48,     0,     0,     0,    36,     0,   340,   986,     0,    39,
    2053        0,   178,   179,    42,    39,     0,   178,   179,    42,   687,
    2054        0,    78,    43,    44,     0,   322,    78,    43,    44,     0,
    2055        0,     0,     0,  1196,     0,     0,   345,     0,     0,     0,
    2056        0,     8,     9,    10,    11,    12,     0,     0,   588,     0,
    2057      589,     0,     0,   255,     0,   673,    47,    48,     0,     0,
    2058        0,    47,    48,   348,     0,   673,   673,     0,   615,    59,
    2059        0,   951,  1451,    33,     0,     0,   673,     0,     0,   345,
    2060      345,     0,     0,     0,     0,     0,   962,     0,     0,     0,
    2061        0,     0,     0,    59,     0,   345,     0,     0,     0,     0,
    2062        0,    36,     0,     0,     0,   566,    39,     0,   178,   179,
    2063       42,   211,     0,     0,   345,     0,     0,     0,     0,    43,
    2064       44,     0,     0,   219,     0,    75,     0,     0,     0,  1259,
    2065        0,     0,     0,     0,     0,     0,    67,     0,     0,    75,
    2066        0,     0,   345,     0,     0,  1035,     0,   402,     0,     0,
    2067       80,     0,     0,    47,    48,    80,     0,     0,     0,     0,
    2068      777,     0,   526,   527,   528,   529,   530,   531,   532,   533,
    2069      534,   535,   536,     0,     0,     0,     0,     0,     0,     0,
    2070     1058,     0,     0,   345,     0,     0,     0,     0,     0,    78,
    2071        0,     0,     0,     0,   422,   117,   537,     0,     0,     0,
    2072        0,     0,     0,   347,     0,     0,     0,     0,    78,   687,
    2073        0,     0,     0,     0,     0,     0,    78,     0,     0,   345,
    2074        0,     0,     0,     0,     0,     0,     0,     0,     0,   345,
    2075      345,     0,     0,   347,     0,   218,     0,     0,     0,     0,
    2076      345,   582,     0,     0,     8,     9,    10,    11,    12,     0,
    2077        0,   347,   220,    78,   420,     0,     0,     0,     0,   673,
    2078      673,     0,   342,   342,     0,     0,     0,     0,     0,     0,
    2079        0,     0,     0,     0,     0,   340,    33,  1101,     0,     0,
    2080       67,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2081        0,     0,     0,  1114,     0,     0,   347,     0,     0,     0,
    2082       75,     0,    86,     0,    36,   173,     0,     0,     0,    39,
    2083        0,   178,   179,    42,    33,     0,     0,     0,    80,   673,
    2084      673,     0,    43,    44,   345,    59,     0,     0,     0,     0,
    2085     1187,     0,   348,     0,     0,     0,    86,    80,     0,     0,
    2086        0,     0,    36,     0,     0,    80,     0,    39,   180,     0,
    2087      124,    42,   173,     0,     0,   173,    47,    48,     0,   347,
    2088       43,    44,   348,     0,     0,     0,     0,     0,   340,     0,
    2089        0,     0,   221,   345,     8,     9,    10,    11,    12,     0,
    2090      348,   404,    80,     0,     0,     0,    45,     0,     0,     0,
    2091        0,     0,     0,     0,    47,    48,     0,     0,   687,     0,
    2092        0,     0,   347,   347,     0,   234,    33,     0,     0,     0,
    2093        0,     0,     0,     0,     0,     0,     0,     0,   347,     0,
    2094      244,     0,   245,   345,   345,   348,   345,   345,     0,     0,
    2095        0,   340,     0,     0,    36,     0,     0,   347,     0,    39,
    2096        0,   178,   179,    42,    75,     0,     0,     0,    78,     0,
    2097        0,     0,    43,    44,     0,     0,   355,     0,     0,     0,
    2098      173,    67,    78,     0,     0,   347,     0,     0,     0,     0,
    2099        0,     0,     0,     0,   340,   340,     0,     0,  1500,     0,
    2100      402,     0,     0,   345,   345,     0,    47,    48,   348,     0,
    2101      340,   673,     0,   687,     0,     0,     0,     0,   117,     0,
    2102        0,     0,     0,     0,     0,     0,   347,   211,   173,   406,
    2103      407,     0,     0,     0,   411,     0,   413,   414,     0,     0,
    2104        0,   404,     0,     0,     0,     0,   673,     0,     0,     0,
    2105        0,   348,   348,     0,   673,   673,   673,   340,     0,     0,
    2106        0,     0,   347,    86,     0,   342,   342,   348,    86,     0,
    2107        0,     0,   347,   347,     0,     0,     0,  1347,   219,     0,
    2108      211,     0,   345,   347,     0,     0,   348,     0,     0,     0,
    2109        0,     0,     0,     0,     0,     0,     0,    80,     0,     0,
    2110        0,     0,     0,     0,     0,     0,   173,     0,     0,     0,
    2111        0,    80,     0,     0,   348,     0,     0,   117,     0,     0,
    2112        0,     0,     0,   173,     0,     0,     0,   173,     0,     0,
    2113        8,     9,    10,    11,    12,     0,     0,     0,     0,     0,
    2114        0,     0,     0,    78,     0,    75,     0,     0,  1364,     0,
    2115        0,     0,     0,     0,     0,   348,     0,     0,     0,     0,
    2116        0,  1400,    33,     0,     0,   221,     0,   347,     0,     0,
    2117        0,     0,     0,     0,     0,   345,     0,   345,     0,     0,
     1825      50,   111,    96,   385,   113,   386,   145,   666,   110,   387,
     1826     255,   892,   388,   146,   393,   147,   394,   416,   457,   389,
     1827     500,   390,   891,   172,  1008,  1167,   371,   372,   427,   391,
     1828     734,   111,   111,   271,    50,   791,    96,   593,   398,  1168,
     1829    1169,   808,   121,   535,   536,    50,   588,   716,  1010,   831,
     1830     158,    50,   140,   156,  1172,   248,   580,   790,    50,  1115,
     1831     856,   761,  1040,    50,  1347,   187,    50,   196,   210,    50,
     1832     249,   220,   213,   250,  1258,  1321,   782,   922,   385,   535,
     1833     386,   783,  1078,   784,   387,    63,   785,   388,   612,   393,
     1834     413,   394,   616,    95,   389,   702,   390,  1403,   148,   707,
     1835     149,   779,   331,   780,   391,    50,   461,   463,    50,   150,
     1836     161,   158,    33,   781,   535,    50,  1113,  1114,   197,    63,
     1837    1361,  1362,   795,   111,  1145,  1146,   798,    95,  1142,  1124,
     1838     511,    69,    76,  1201,  1259,   168,  -240,  -240,   144,   145,
     1839    1206,   656,   658,    50,    95,   156,   146,   815,   147,   963,
     1840     270,   818,   163,   821,   821,    50,   183,   361,   122,    95,
     1841      70,  1129,    95,   924,  1503,    69,    76,  1430,  1207,   821,
     1842     652,   161,  1403,   929,   930,   241,   164,   426,    50,    50,
     1843     457,   156,  1423,   691,   940,  1130,   399,   794,   509,   661,
     1844     685,    33,  1363,   801,    70,    50,  1523,   665,   462,   457,
     1845    1272,   319,   422,    50,  1196,   156,   779,   457,   780,  -240,
     1846    1163,   706,    50,   650,   145,    50,   821,   430,   781,   901,
     1847     694,   146,   111,   147,   138,   469,   206,   645,   503,   646,
     1848     718,   148,   111,   149,   674,   111,    95,   952,  1321,    50,
     1849     111,    96,   150,   105,   105,  1321,  1079,   451,    95,   -10,
     1850     565,   684,   399,    50,    50,   563,   156,   449,   422,   951,
     1851      50,   564,   423,   111,   928,   823,   405,  1289,   939,  1292,
     1852    1294,   384,   183,   783,  1120,   784,   554,   105,   785,   434,
     1853     840,   573,   736,   737,   738,   593,  1115,    57,   114,   424,
     1854      33,   765,   446,   779,   963,   780,    95,   158,  1256,   432,
     1855    1121,   645,   172,   646,  1321,   781,  1407,   654,    95,   770,
     1856     555,    33,   105,   659,  1051,   264,   655,   657,   423,   613,
     1857      50,    57,   361,   617,    63,   139,   580,   879,   141,   458,
     1858     791,   580,    95,  1115,   397,  1383,  1170,    50,    50,  1008,
     1859     712,  1435,   714,   487,   955,   715,   465,   891,   719,  1451,
     1860     817,    33,   722,   204,    50,  1384,   214,   161,    50,   142,
     1861    1110,  1111,   240,  1010,   399,   510,   923,  1121,   625,  1257,
     1862      69,    76,   808,    33,   151,   429,    76,   783,   794,   784,
     1863    1459,   462,   785,   407,   195,   399,  1484,  1318,  1486,   365,
     1864    1113,  1114,    50,   582,   361,  1361,  1362,   166,   509,    70,
     1865    1460,   822,   822,   509,  -295,   366,   509,  1514,   488,  1407,
     1866     489,   490,    50,    95,  1407,   235,    33,   822,    50,   375,
     1867    1048,  1158,  1159,   467,   443,   399,  1436,  1515,   863,  1320,
     1868     675,   587,  1232,  1233,  1539,   376,   676,   674,   457,  1407,
     1869    1437,   238,   685,   891,   891,   792,  1407,   585,  1540,    33,
     1870    1348,   483,   876,   111,   484,   480,   997,   755,    50,  1115,
     1871     110,    33,  1076,  1061,   822,  1371,    50,  1373,   361,   911,
     1872      50,  -523,    96,   319,   319,    50,   811,  1480,   111,  1167,
     1873     812,   240,   105,   111,   -12,   183,  1195,   593,   799,   251,
     1874     585,   458,   832,  1168,  1169,   952,   950,    33,  -448,   206,
     1875     319,  -449,   428,   684,   932,    33,   266,  1172,  1053,   663,
     1876     458,  1392,  1393,   544,   545,   111,    33,  1398,   458,   692,
     1877     111,   844,   728,   399,   268,   693,    57,   733,   833,   269,
     1878     624,   842,    33,   848,   677,   399,  1272,    33,    76,   322,
     1879     674,   853,   852,   319,  1100,  1103,   708,   834,   546,   547,
     1880     674,   674,   709,   682,  1443,    63,  1444,    76,   378,   270,
     1881     626,   674,   319,    95,   323,    76,   380,   360,   587,  1081,
     1882     810,   399,  1468,   382,   379,   510,   324,  1094,  1473,   399,
     1883     510,   109,   381,   510,    50,   824,    50,   325,  1098,   383,
     1884     585,   721,  1441,   950,    43,    44,  1133,   722,   839,  1441,
     1885     109,    69,    76,  1498,  1101,    50,   585,  1069,  1505,  1339,
     1886    1070,   399,  1071,    43,    44,  1037,   326,  1500,  1296,   206,
     1887      50,  1502,   727,   319,   111,   685,  1298,  1299,  1300,  1127,
     1888      70,  1038,   857,    50,  1037,   111,    50,   111,   722,   962,
     1889     364,  1200,   841,  1173,   843,  1128,  1518,    50,   223,  1127,
     1890    1165,   224,   327,  1522,   228,  1173,   230,   580,  1499,  1174,
     1891     813,   859,   233,   809,   814,  1264,   871,   722,   582,   373,
     1892     696,  1268,   865,  1400,   377,   705,   111,   778,   564,   587,
     1893     535,    39,  1279,   875,   891,    42,   684,    58,    58,    50,
     1894      50,  1281,   395,   968,    43,    44,   722,   111,  1280,   240,
     1895     321,   111,   109,  1029,    39,  1031,   772,  1282,    42,  1016,
     1896     813,   397,  1324,   105,  1047,    43,    44,    43,    44,   500,
     1897      45,    58,     2,   200,     4,     5,     6,     7,    47,    48,
     1898     917,   855,   240,   321,   399,  1457,   918,   674,   674,  1112,
     1899     862,   540,   541,   776,   864,   585,   891,  1466,  1400,   458,
     1900     414,    47,    48,    58,   537,   415,    58,    57,   891,   891,
     1901     538,   539,  1063,   458,   470,   109,   429,  1105,   918,  1335,
     1902    1489,   997,  1069,  -401,  1192,  1070,    50,  1071,    43,    44,
     1903     564,   891,   778,   587,   223,  -112,   437,    39,    50,  -112,
     1904      37,    42,    38,  1429,   447,   556,    76,   399,   674,   674,
     1905      43,    44,   448,    47,    48,   682,  1291,   494,  1307,   685,
     1906      76,    39,  1308,   169,   170,    42,   828,   495,     2,   200,
     1907       4,     5,     6,     7,    43,    44,   689,   542,   543,   206,
     1908     625,  1160,  1125,   498,    47,    48,   111,   994,   109,   337,
     1909     136,   137,  1541,   206,   743,   744,   745,   746,   385,   222,
     1910     386,    43,    44,   891,   387,    -3,  1029,   388,  1031,  1487,
     1911     393,  1314,   394,  1491,   389,   871,   390,   722,    50,   778,
     1912     684,   111,   503,  1136,   391,     8,     9,    10,    11,    12,
     1913     550,   587,  1336,   551,  1315,    50,    37,   552,    38,   889,
     1914     722,   553,   568,   480,   399,   109,   328,   136,   440,  1054,
     1915     109,  1176,    58,  1176,   111,   574,   685,    33,    43,    44,
     1916     625,  1064,    -3,    43,    44,   109,   111,   136,   137,   223,
     1917     111,   228,    63,  1072,   277,   638,    58,  1072,    43,    44,
     1918     639,   206,   640,  1360,   441,    36,  1368,    43,    44,   442,
     1919     157,   732,  1019,  1317,  1325,  1137,  1139,  1141,   642,   722,
     1920     722,  1187,   188,   643,   703,   211,   319,   644,   221,   704,
     1921     648,  1030,   880,   504,   585,   367,  1276,   111,    69,    76,
     1922      47,    48,   649,   109,  1072,   136,   137,   994,   587,  1408,
     1923      50,    50,    50,   651,  1406,   722,    43,    44,   682,  1410,
     1924    1533,  -296,   772,   245,   809,   674,   564,    70,     8,     9,
     1925      10,    11,    12,   674,   674,   674,   645,   223,   646,  1542,
     1926    1550,   111,  -373,  1310,   694,  1539,  1551,   263,  1434,   548,
     1927     549,    50,   626,    50,  -244,    50,   921,   918,   973,   697,
     1928      33,   701,   157,  1238,  1239,   699,  1241,   111,   710,   871,
     1929     321,   399,  1245,   723,   362,  1248,  1330,  1331,    39,   724,
     1930     169,   170,    42,   407,   641,   399,    50,   711,    36,    63,
     1931    1516,    43,    44,  1039,  1144,   467,   321,   399,   157,    39,
     1932     111,   169,   170,    42,   792,   321,   585,  1072,  1385,   918,
     1933     105,   773,    43,    44,   775,     8,     9,    10,    11,    12,
     1934    1361,  1362,   157,  1202,  1203,  1140,   739,   740,   429,  1249,
     1935    1250,  1251,   626,   786,   431,    69,    76,   337,  1029,    39,
     1936    1031,   169,   170,    42,  1030,  1517,  1166,    33,  1030,   741,
     1937     742,  1517,    43,    44,    57,   -14,   -15,   111,   747,   748,
     1938     829,  1138,   830,   836,    70,   858,   860,  1517,   872,   105,
     1939    -422,  1517,  -527,   884,   890,    36,   109,   693,   360,   897,
     1940      39,  1334,   994,  1069,    42,   899,  1070,    58,  1071,    43,
     1941      44,   902,   871,    43,    44,   904,   905,   906,   907,   908,
     1942     674,    50,   682,   925,   926,     2,   200,     4,     5,     6,
     1943       7,    51,   112,  1055,   915,   927,   970,  1293,   941,    45,
     1944    1011,   942,  1054,   943,   944,   945,   946,    47,    48,   947,
     1945     337,  -410,  -409,   973,   111,  1013,   111,   111,  1017,   362,
     1946    1020,  1072,  -297,  1072,  1072,    51,  1041,   105,  1367,     8,
     1947       9,    10,    11,    12,  1042,  1382,   143,  1043,   115,  1180,
     1948    1044,  1052,    51,  1062,   910,  1066,  1092,    63,  1116,  1119,
     1949    1117,  1389,  1131,    37,   179,    38,  1118,   203,  1132,  1134,
     1950      51,    33,  1135,    39,  1143,   176,   177,    42,   109,  1147,
     1951     483,    57,   337,   994,  1030,  1069,    43,    44,  1070,   682,
     1952    1071,    43,    44,    50,    -9,   722,  1424,  -445,   154,    36,
     1953     -11,   362,    -3,    69,    76,   112,  1150,  1054,   111,  1156,
     1954    1154,  1162,   584,   112,   585,  1072,   254,   259,  1024,  1183,
     1955      47,    48,   385,  1194,   386,   337,   337,  1185,   387,  1188,
     1956    1388,   388,    70,   393,   994,   394,  1193,   994,   389,  1237,
     1957     390,   337,  1197,   298,   143,  1204,   213,   458,   391,  1208,
     1958    1328,   246,   112,   334,  1210,  1212,   203,  1213,  1214,   154,
     1959    1215,  1216,   645,  1479,   646,    50,    50,  1218,  1424,   111,
     1960     111,  1225,  1424,  1424,  1234,  1235,  1072,  1072,  1240,   179,
     1961     179,  1262,  1243,  1244,  1269,   994,  1030,  1246,   337,   314,
     1962     994,  1270,  1247,  1323,    76,  1271,   254,  1255,   329,    39,
     1963    1512,   169,   170,    42,    51,  1277,  1283,  1285,  1286,  1287,
     1964    1054,  1290,    43,    44,  1295,   105,   203,  1297,  1303,   994,
     1965    1304,  1305,    70,  1528,  1306,  1313,  1316,  1528,  1326,  1327,
     1966    1251,  1333,  1344,  1449,  -298,  1449,  1337,  1338,   364,  1375,
     1967      51,     8,     9,    10,    11,    12,   418,  1355,   259,  1356,
     1968     421,  1545,   105,   259,   254,   254,  -411,  1359,   145,    57,
     1969     112,  1370,  1377,  1379,  1380,   146,  1381,   147,    50,   111,
     1970    1394,  1390,  1449,    33,  1449,  1395,  1481,   126,   350,   127,
     1971     128,   129,  1399,  1396,  1397,  1308,  1413,   298,   994,  1404,
     1972      43,    44,  1415,   994,  1409,  1411,  1055,    50,    50,   298,
     1973     156,    36,   206,  1422,  1417,   105,   421,  1419,  1421,   475,
     1974     458,  1428,  1446,  1431,  1450,   557,   994,   458,   994,  1442,
     1975    1452,   143,   994,  1454,  1456,   994,  1458,    50,  1461,   361,
     1976    1463,   112,  1464,   314,  1465,   334,  1472,  1488,   994,   586,
     1977     604,  1490,   994,  1493,    58,   154,  1494,   105,  1506,    57,
     1978    1497,  1483,   429,  1485,   609,  1504,  1323,    76,   609,  1508,
     1979     111,  1511,  1513,  1323,    76,  1526,  1519,  1546,   337,  1527,
     1980    1530,   111,  1149,   319,  1548,  1531,   458,   572,  1553,  1549,
     1981    1552,   577,   749,   752,   750,    70,   105,   751,   207,  1261,
     1982     465,  1055,    70,   179,  1467,  1068,   109,   226,   136,   137,
     1983     610,   753,  1534,    58,   614,  1524,  1374,  1525,  1329,    43,
     1984      44,  1492,  1532,   254,  1445,   298,   298,  1155,  1022,   254,
     1985    1164,   609,  1323,    76,  1177,  1537,  1538,  1343,   893,   204,
     1986     214,    39,  1050,   169,   170,    42,  1065,   827,   207,   969,
     1987     401,  1278,   298,   209,    43,    44,   835,   409,   886,  1049,
     1988     105,    70,   900,   757,   687,     0,     0,     0,   758,   254,
     1989       0,   314,   314,   337,   337,   759,     0,   254,   105,   609,
     1990      39,    51,   176,   177,    42,   105,   690,   207,     0,   428,
     1991       0,    58,     0,    43,    44,   112,     0,     0,   314,     0,
     1992       0,     0,     0,   209,  1055,     0,     0,   298,     0,   112,
     1993     115,     0,   298,     0,   298,   298,     0,     0,     0,  1023,
     1994       0,   399,    57,   401,   334,     0,     0,    47,    48,    57,
     1995       0,     8,     9,    10,    11,    12,     0,     0,     0,   475,
     1996    1024,   314,   209,   475,   105,     0,     0,   207,     0,   208,
     1997       0,     0,     0,   314,     0,   314,   350,     0,   314,     0,
     1998     314,   314,     0,    33,     0,     0,     0,   557,   557,    39,
     1999       0,   176,   177,    42,     0,   298,     0,     0,     0,   207,
     2000       0,   562,    43,    44,   207,   609,   334,     0,    57,   604,
     2001     566,    36,     0,   569,     0,   586,    39,   586,     0,   208,
     2002      42,     0,   209,     0,     0,     0,     0,     0,   178,    43,
     2003      44,     0,     0,     0,     0,   609,    47,    48,     0,   444,
     2004     609,   314,   604,     0,     0,     0,   609,     0,     0,   609,
     2005     609,   768,     0,     0,   209,   689,     0,     0,   208,   209,
     2006       0,     0,     0,    47,    48,   609,     0,   254,     0,   350,
     2007       0,   401,     0,     0,     0,   409,     0,     0,   254,     0,
     2008       0,   807,     0,     0,     0,     0,   577,     0,     0,    58,
     2009       0,   207,   816,     8,     9,    10,    11,    12,   112,     0,
     2010       0,     0,   162,     0,   167,     0,     0,   173,   174,   175,
     2011       0,     0,   609,   881,   604,     0,     0,     0,   208,     0,
     2012     690,   690,     0,     0,   227,    33,    58,     0,     0,     0,
     2013       0,   350,     0,     0,     0,   236,   237,     0,     0,     0,
     2014       0,     0,     0,     0,   868,     0,   209,     0,     0,     0,
     2015     208,   334,   401,    36,     0,   208,     0,     8,     9,    10,
     2016      11,    12,     0,     0,     0,     0,     0,   337,   337,     0,
     2017     475,   207,     0,     0,   350,   350,     0,     0,     0,    58,
     2018       0,     0,     0,     0,     0,     0,     0,   207,     0,    33,
     2019     350,   557,     0,     0,     0,     0,     0,   556,     0,   399,
     2020     609,     0,   935,     0,     0,    47,    48,   586,     0,     0,
     2021      39,   207,   176,   177,    42,     0,     0,    36,     0,   586,
     2022       0,    58,     0,    43,    44,     0,   209,     0,   396,     0,
     2023       0,     0,     0,     0,     0,     0,     0,   350,     0,     0,
     2024       0,     0,   208,   562,   562,     0,   931,     0,     0,  1023,
     2025       0,   399,     0,     0,     0,     0,     0,    47,    48,    58,
     2026      58,   880,     0,   585,     0,     0,   209,     0,   298,    47,
     2027      48,   522,   523,   524,   525,   526,   527,   528,   529,   530,
     2028     531,   532,     0,     0,     0,     0,     8,     9,    10,    11,
     2029      12,     0,   334,     0,   337,     0,     0,   112,     0,  1025,
     2030      39,     0,   176,   177,    42,   533,     0,     0,     0,    58,
     2031       0,   881,   881,    43,    44,     0,   690,     0,    33,     0,
     2032       0,     0,   208,     0,    58,   846,     0,   112,   298,   850,
     2033     207,     0,     0,     0,   334,     0,     0,     0,     0,  1477,
     2034       0,   399,    58,  1021,     0,     0,    36,    47,    48,    58,
     2035       0,    39,     0,   176,   177,    42,     0,     0,   207,     0,
     2036       0,     0,   208,   207,    43,    44,   334,     0,     0,     0,
     2037       0,     0,   475,  1056,   314,     0,     0,     0,     0,     0,
     2038       0,   576,     0,   583,     0,   209,     0,   609,   609,     0,
     2039     584,     0,   585,     0,   607,   608,     0,     0,    47,    48,
     2040       0,   125,     0,     0,     0,   298,     0,     0,    58,     0,
     2041       0,     0,   807,   209,     0,     0,     0,   350,   209,     0,
     2042       0,   207,     0,     0,    74,     0,   948,     0,     0,     8,
     2043       9,    10,    11,    12,     0,   207,    39,     0,   176,   177,
     2044      42,     0,     0,     0,     0,     0,     0,   562,     0,    43,
     2045      44,     0,  1025,     0,  1025,   125,  1025,     0,    74,   273,
     2046     274,    33,   275,     0,     0,     0,     0,     0,     0,     0,
     2047     125,   112,   125,     0,     0,   253,   209,   881,     0,     0,
     2048       0,   208,     0,    47,    48,     0,     0,   254,   276,    36,
     2049     209,     0,     0,   216,   277,     0,     0,   265,   278,     0,
     2050       0,   279,   280,   270,   281,   282,   283,    43,    44,   208,
     2051     284,   285,   350,   350,   208,     0,     0,   868,   334,     0,
     2052     514,     0,     0,   207,   515,   516,   517,     0,     0,     0,
     2053       0,     0,     0,   286,     0,   367,     0,     0,     0,     0,
     2054       0,   333,    48,   288,   289,   290,   291,     0,   518,     0,
     2055     519,     0,   520,   521,     0,     0,   125,     0,   125,   125,
     2056       0,     0,     0,   125,     0,   125,   125,     0,     0,     0,
     2057       0,     0,   208,     0,     0,   514,   342,     0,   209,   515,
     2058     516,   517,     0,   298,     0,     0,   208,     0,     0,     0,
     2059       0,     0,     0,     0,   112,     0,     0,     0,     0,     0,
     2060       0,     0,  1025,   518,     0,   519,     0,   520,  1260,     0,
     2061       0,     0,  1083,     0,     0,   609,     0,     0,     0,     0,
     2062     112,     0,     0,     0,     0,     0,     0,     0,  1096,   125,
    21182063       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2119       36,   348,     0,     0,     0,    39,     0,     0,   342,    42,
    2120        0,   348,   348,     0,     0,     0,     0,   220,    43,    44,
    2121      345,     0,   348,     0,     0,    59,   347,     0,   345,   345,
    2122      345,     0,     0,     0,   673,   117,     0,     0,     0,   345,
    2123      345,    86,     0,     0,   693,     0,     0,     0,     0,   340,
    2124      651,    75,    47,    48,     0,   355,     0,  1347,     0,     0,
    2125       86,     0,     0,     0,  1347,   164,     0,   169,    86,     0,
    2126      175,   176,   177,     0,     0,     0,   347,   347,     0,   347,
    2127      347,     0,    80,     0,    59,   355,     0,   229,     0,     8,
    2128        9,    10,    11,    12,     0,     0,     0,    78,   238,   239,
    2129        0,     0,     0,   355,     0,    86,   348,     0,     0,     0,
    2130        0,     0,     0,     0,     0,     0,     0,  1347,     0,     0,
    2131        0,    33,     0,     0,  1526,     0,     0,     0,     0,     0,
    2132        0,     0,     0,     0,     0,   218,   347,   347,     0,     0,
    2133        0,     0,     0,     0,     0,     0,     0,     0,   355,    36,
    2134        0,   340,   340,     0,    39,   348,   178,   179,    42,     0,
    2135        0,     0,     0,     0,     0,     0,     0,    43,    44,    59,
    2136        0,     0,   345,     0,     0,     0,     0,     0,     0,     0,
    2137        0,     0,     0,     0,     0,   173,     0,     0,     0,     0,
    2138        0,     0,   399,   255,     0,     0,     0,     0,   345,     0,
    2139      173,    47,    48,     0,     0,   348,   348,     0,   348,   348,
    2140        0,   355,     0,   173,     0,   347,   768,   769,     0,     0,
    2141        0,    75,     0,     0,     0,     0,    80,     0,    75,     0,
     2064     868,     0,     0,     0,     0,     0,     0,     0,   436,     0,
    21422065       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2143        0,     0,     0,   799,     0,     0,   802,   803,     0,   806,
    2144        0,   808,   809,     0,   355,   355,   810,   811,     0,     0,
    2145        0,     0,     0,     0,     0,   348,   348,     0,     0,     0,
    2146      355,     0,     0,     0,     0,     0,     0,     0,    78,     0,
    2147        0,    75,     0,     0,     0,     0,     0,     0,     0,   355,
    2148        0,     0,     0,     0,   851,     0,     0,     0,   855,     0,
    2149       86,     0,     0,     0,     0,     0,     0,     0,   347,     0,
    2150      347,     0,     0,     0,    86,     0,     0,   355,     0,     0,
    2151        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2066       0,   609,   609,    74,     0,     0,  1056,     0,    74,     0,
     2067       0,     0,     0,   298,   208,     0,     0,     0,     0,     8,
     2068       9,    10,    11,    12,     0,     0,     0,     0,     0,     0,
     2069     207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2070       0,     0,     0,     0,  1025,     0,     0,     0,     0,     0,
     2071       0,    33,     0,     0,     0,   112,     0,   401,   873,     0,
     2072     874,     0,     0,     0,     0,     0,     0,   877,   878,     0,
     2073       0,     0,   883,     0,     0,     0,     0,     0,  1275,    36,
     2074       0,     0,     0,     0,    39,   209,   176,   177,    42,     0,
     2075     894,     0,     0,   259,   112,   898,     0,    43,    44,     0,
     2076       0,  1056,     0,     0,   216,     0,     0,     0,   125,     0,
     2077       0,     0,     0,     0,   583,     0,     0,   254,     0,     0,
     2078       0,     0,     0,  1023,     0,   399,   350,   350,   609,     0,
     2079       0,    47,    48,     0,     0,     0,     0,    66,   116,     0,
     2080       0,     0,     0,   259,     0,     0,     0,     0,     0,     0,
     2081       0,     0,     0,     0,     0,     0,     0,     0,   112,     0,
     2082       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2083      74,    66,     0,     0,     0,     0,   112,     0,     0,     0,
     2084       0,   208,     0,   112,   342,   112,     0,   112,   155,    74,
     2085       0,     0,     0,   401,     0,     0,     0,    74,     0,     0,
     2086       0,     0,     0,     0,  1056,     0,   215,   958,     0,   959,
     2087     960,   961,     0,     0,   342,     0,     0,     0,     0,  1478,
     2088       0,     0,     0,     0,   112,     0,   112,     0,  1012,     0,
     2089       0,  1448,   342,  1448,    74,     0,     0,     0,     0,     0,
     2090       0,   247,   112,     0,  1018,     0,     0,     0,  1478,  1478,
     2091       0,     0,     0,   350,     0,     0,     0,     0,     0,     0,
     2092       0,     0,     0,     0,     0,   298,     0,  1045,     0,     0,
     2093    1448,     0,  1448,   125,   125,     0,     0,   342,  1478,     0,
     2094     320,     0,     0,     0,     0,     0,     0,     0,   247,   339,
     2095       0,     0,     0,     0,     0,     0,  1341,     0,     0,     0,
     2096     125,     0,  1067,   125,   125,     0,   125,  1077,   125,   125,
     2097       0,   314,  1080,   125,   125,     0,   392,  1085,  1086,     0,
     2098       0,     0,  1088,     0,  1089,  1090,     0,     0,  1093,     0,
     2099       0,     0,   412,     0,     0,   417,   419,  1108,     0,   342,
     2100     155,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     2101       0,   125,     0,  1122,  1123,   125,     0,     0,     0,     0,
     2102       0,   435,     0,     0,     0,   438,     0,   439,     0,     0,
     2103     445,     0,     0,     0,    33,     0,    66,     0,     0,     0,
     2104       0,   459,   342,   342,     0,  1151,     0,     0,  1153,     0,
     2105       0,   466,     0,     0,     0,     0,     0,     0,   342,   419,
     2106       0,     0,    36,     0,     0,     0,     0,    39,     0,   176,
     2107     177,    42,     0,     0,   207,     0,     0,   342,     0,     0,
     2108      43,    44,     0,     0,     0,     0,     0,     0,    74,     0,
     2109       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2110       0,  1186,    74,     0,     0,   342,   178,  1190,  1191,     0,
     2111       0,     0,     0,     0,    47,    48,  1198,     0,     0,     0,
     2112       0,  1205,     0,     0,   207,     0,  1209,   247,     0,   209,
     2113       0,   578,     0,     0,     0,     0,     0,   606,     0,  1217,
     2114       0,     0,     0,     0,   342,     0,     0,     0,     0,     0,
     2115     611,     0,     0,     0,   611,  1224,     0,  1226,  1227,  1228,
     2116    1229,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2117       0,     0,  1236,     0,  1122,     0,     0,     0,     0,   209,
     2118     342,     0,     0,     0,     8,     9,    10,    11,    12,    77,
     2119     342,   342,     0,     0,     0,     0,   216,     0,     0,     0,
     2120       0,   342,     0,   459,     0,     0,  1265,  1266,     0,     0,
     2121       0,     0,     0,     0,     0,     0,    33,   339,     0,     0,
     2122       0,     0,   459,    77,     0,   208,     0,     0,     0,     0,
     2123     459,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2124       0,     0,     0,     0,    36,     0,     0,   669,     0,    39,
     2125     419,   176,   177,    42,     0,     0,     0,     0,   217,     0,
     2126       0,    74,    43,    44,     0,   683,     0,    66,     0,     0,
     2127    1301,  1302,     0,     0,     0,   208,     0,     0,     0,   419,
     2128    1312,     0,     0,   419,     0,   342,     0,     0,  1477,     0,
     2129     399,     0,     0,     0,     0,     0,    47,    48,   125,     0,
     2130       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2131     339,     0,     0,     0,   125,     0,     0,   125,   125,     0,
     2132       0,     0,     0,     0,     0,     0,     0,   342,     0,     0,
     2133       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2134       0,   344,     0,     0,  1351,     0,  1352,  1353,  1354,     0,
     2135     171,     0,     0,     0,   760,     0,     0,     0,  1358,     0,
     2136       0,     0,     0,     0,     0,     0,  1369,     0,     0,   167,
     2137       0,   611,   771,     0,     0,     0,     0,   342,   342,     0,
     2138     342,   342,     0,   788,     0,     0,     0,     0,     0,     0,
     2139     125,     0,     0,     0,     0,     0,  1391,   171,    74,     0,
     2140     171,   578,     0,   125,     0,     0,   578,     0,   125,   125,
     2141       0,     0,   611,     0,     0,   339,   339,     0,     0,     0,
     2142       0,     0,     0,     0,     0,     0,     0,     0,    77,     0,
     2143       0,   339,     0,    77,     0,     0,     0,     0,   342,   342,
     2144    1432,  1433,     0,     0,     0,     0,     0,     0,     0,     0,
     2145     669,     0,     0,  1438,     0,     0,     0,     0,     0,     0,
     2146    1438,   459,     0,     0,     0,   125,     0,     0,     0,    79,
     2147       0,     0,     0,     0,     0,   459,     0,  1462,   339,     0,
     2148       0,     0,     0,     0,     0,     0,     0,   885,     0,     0,
     2149     419,     0,     0,     0,     0,  1476,     0,     0,     0,  1482,
     2150       0,     0,     0,    79,   171,     0,     0,     0,     0,     0,
     2151       0,   342,     0,     0,     0,     0,     0,   683,     0,     0,
     2152       0,     0,     0,     0,     0,     0,     0,   125,     0,   217,
     2153       0,     0,  1509,     0,  1510,     0,     0,     0,   218,     0,
     2154       0,     0,     0,     0,     0,     0,   125,     0,     0,     0,
     2155       0,     0,   171,   669,     0,     0,     0,     0,     8,     9,
     2156      10,    11,    12,   669,   669,     0,   611,     0,     0,   938,
     2157       0,     0,  1535,  1536,   669,     0,    74,     0,     0,     0,
     2158       0,     0,     0,     0,   949,  1543,  1544,     0,     0,     0,
     2159      33,     0,     0,     0,     0,    77,     0,     0,     0,     0,
     2160       0,     0,     0,     0,     0,     0,   342,     0,   342,   344,
     2161       0,     0,     0,     0,    77,     0,     0,     0,    36,     0,
     2162       0,   345,    77,    39,     0,   176,   177,    42,   123,   171,
     2163       0,     0,     0,     0,    66,   342,    43,    44,     0,   344,
     2164       0,     0,   125,   342,   342,   342,   171,     0,     0,     0,
     2165     171,     0,     0,     0,   342,   342,     0,   344,   771,    77,
     2166       0,     0,   253,     0,     0,     0,    74,     0,     0,     0,
     2167      47,    48,     0,     0,     0,     0,     0,     0,  1046,     0,
     2168       0,     0,   232,     0,     0,     0,     0,     0,     0,     0,
     2169       0,     0,   419,   116,     0,     0,     0,   242,     0,   243,
     2170     683,     0,   344,     0,     0,     0,     0,     0,    79,     0,
     2171       0,     0,     0,    79,     0,     0,     0,     0,     0,     0,
     2172       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2173       0,     0,   578,     0,     0,     0,     0,     0,     0,     0,
     2174       0,     0,     0,     0,     0,   417,     0,   216,     0,    85,
     2175     669,   669,     0,   339,   339,     0,     0,     0,     0,     0,
     2176       0,     0,     0,     0,   344,     0,     0,     0,     0,     0,
     2177       0,    66,     0,     0,     0,     0,     0,     0,     0,     0,
     2178       0,   342,     0,    85,     0,   403,   404,     0,     0,     0,
     2179     408,     0,   410,   411,     0,     0,     0,     0,     0,     0,
     2180       0,     0,     0,     0,     0,     0,     0,   344,   344,   218,
     2181     342,   669,   669,     0,     0,     0,     0,     0,   219,     0,
     2182       0,     0,  1171,   344,     0,     0,     0,     0,     0,    74,
     2183       0,     0,     0,     0,     0,     0,    74,     0,     0,     0,
     2184       0,     0,   344,     0,     0,     0,     0,     0,     0,     0,
     2185       0,     0,     0,    77,     0,     0,     0,     0,     0,     0,
     2186       0,     0,     0,     0,     0,     0,     0,    77,     0,     0,
     2187     344,     0,     0,     0,     0,    79,     0,     0,     0,     0,
     2188       0,     0,     0,     0,   683,     0,     0,     0,     0,   345,
     2189       0,     0,     0,     0,    79,    74,     0,   171,     0,     0,
     2190       0,   352,    79,     0,     0,     0,     0,     0,     0,   344,
     2191       0,     0,   171,     0,     0,     0,     0,     0,     0,   345,
     2192       0,     0,     0,     0,     0,   171,     0,     0,     0,     0,
     2193       0,     0,     0,     0,     0,     0,     0,   345,     0,    79,
     2194       0,     0,     0,     0,     0,   344,     0,     0,     0,    66,
     2195       0,     0,     0,     0,     0,   344,   344,     0,     0,     0,
     2196       0,   217,     0,     0,     0,     0,   344,     0,     0,     0,
     2197       0,     0,     0,     0,     0,     0,     0,     0,     0,   669,
     2198       0,   683,   345,     0,     0,     0,   116,     0,    85,     0,
     2199       0,     0,     0,    85,     0,   647,     0,     0,  1106,     0,
     2200       0,     8,     9,    10,    11,    12,     0,     0,   669,     0,
     2201       0,     0,     0,     0,     0,     0,   669,   669,   669,     0,
     2202       0,     0,     0,     0,     0,     0,    77,   339,   339,     0,
     2203       0,   273,   274,    33,   275,     0,     0,     0,     0,  1322,
     2204       0,     0,     0,     0,   345,     0,     0,     0,     0,     0,
     2205     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2206     276,    36,     0,     0,     0,     0,   277,     0,     0,     0,
     2207     278,     0,     0,   279,   280,   270,   281,   282,   283,    43,
     2208      44,   116,   284,   285,     0,     0,     0,   345,   345,   219,
     2209       0,     0,   344,     0,     0,     0,     0,     0,     0,     0,
     2210       0,     0,     0,   345,     0,   286,     0,   367,     0,     0,
     2211       0,     0,     0,  1107,    48,   288,   289,   290,   291,     0,
     2212    1372,     0,   345,     0,     0,     0,     0,     0,     0,   171,
     2213       0,     0,     0,    79,     0,     0,     0,     0,     0,     0,
     2214       0,     0,   344,   344,     0,   344,   344,    79,     0,     0,
     2215     345,     0,     0,     0,   339,    85,     0,     0,     0,     0,
     2216     762,   763,     0,    77,     0,     0,     0,     0,     0,   352,
     2217       0,     0,     0,     0,    85,     0,     0,     0,     0,     0,
     2218       0,     0,    85,   669,   116,     0,     0,   793,     0,   345,
     2219     796,   797,     0,   800,     0,   802,   803,     0,     0,   352,
     2220     804,   805,  1322,   344,   344,   273,   274,     0,   275,  1322,
     2221       0,     0,     0,     0,     0,     0,     0,   352,     0,    85,
     2222       0,     0,     0,     0,     0,   345,     0,     0,     0,     0,
     2223       0,     0,     0,     0,   276,   345,   345,     0,   845,     0,
     2224     277,   218,   849,     0,   278,     0,   345,   279,   280,   270,
     2225     281,   282,   283,    43,    44,     0,   284,   285,     0,     0,
     2226       0,     0,   352,     0,     0,     0,     0,     0,  1322,   171,
     2227       0,     0,   171,   171,   171,  1507,   344,     0,     0,   286,
     2228       0,   367,     0,     0,     0,     0,     0,    47,    48,   288,
     2229     289,   290,   291,     0,     0,   160,     0,     0,     0,     0,
     2230     754,     0,     0,     0,     0,     0,    79,     0,     0,     0,
     2231     212,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2232       0,     0,     0,     0,   352,     0,     0,     0,     0,     0,
     2233     345,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2234       0,    77,     0,     0,     0,     0,     0,     0,     0,     0,
     2235       0,     0,     0,     0,     0,     0,   160,     0,     0,     0,
     2236     260,     0,     0,     0,     0,     0,     0,   352,   352,     0,
     2237       0,   344,   345,   344,     0,     0,     0,     0,     0,     0,
     2238       0,     0,     0,   352,     0,     0,   160,     0,     0,     0,
     2239       0,     0,     0,     0,     0,     0,   358,     0,     0,   363,
     2240     344,     0,   352,     0,     0,     0,     0,     0,   344,   344,
     2241     344,     0,     0,    85,     0,     0,     0,     0,     0,   344,
     2242     344,     0,   345,   345,     0,   345,   345,    85,     0,     0,
     2243     352,    77,     0,     0,     0,     0,     0,     0,     0,     0,
     2244       0,     0,     0,    79,   171,     0,     0,   160,     0,     0,
     2245       0,     0,     0,     0,     0,     0,     0,     0,     0,   212,
     2246       0,     0,     0,     0,     0,     0,     0,     0,     0,   352,
     2247       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2248       0,     0,     0,   345,   345,     0,     0,     0,     0,     0,
     2249       0,     0,     0,     0,     0,     0,   363,     0,     0,     0,
     2250       0,     0,     0,   160,     0,   352,     0,     0,     0,     0,
     2251       0,     0,   217,     0,     0,   352,   352,     0,     0,     0,
     2252       0,   219,     0,     0,     0,  1082,   352,     0,     0,     0,
     2253     512,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2254       0,  1095,   160,     0,  1099,  1102,   344,     0,     0,     0,
     2255       0,     0,     0,     0,     0,   171,   345,     0,     0,     0,
     2256       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2257       0,     0,     0,     0,     0,   344,     0,     0,   581,     0,
     2258       0,     0,     0,   605,     0,     0,    85,     0,     0,     0,
     2259       0,     0,     0,     0,    77,     0,     0,     0,     0,     0,
     2260       0,    77,     0,     0,     0,     0,   171,     0,     0,   171,
     2261     352,     0,     0,     0,     0,     0,     0,  1161,     0,     0,
     2262       0,    79,     0,     0,     0,     0,     0,     0,     0,     0,
     2263       0,     0,     0,     0,     0,  1178,  1179,   171,     0,     0,
     2264       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2265       0,   345,   352,   345,     0,     0,     0,   171,   160,   160,
     2266      77,     0,   171,     0,   358,     0,     0,     0,     0,     0,
     2267       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2268     345,     0,     0,     0,     0,   160,     0,     0,   345,   345,
     2269     345,   171,  1099,     0,     0,     0,     0,     0,     0,   345,
     2270     345,     0,   352,   352,     0,   352,   352,     0,     0,     0,
     2271       0,    79,   686,     0,     0,     0,     0,     0,     0,     0,
     2272       0,     0,     0,    85,   205,     0,     0,     0,   160,     0,
     2273       0,     0,     0,   225,     0,   229,     0,   231,     0,     0,
     2274     512,     0,   512,   234,     0,   512,     0,   160,   512,     0,
     2275       0,     0,     0,     0,  1263,     0,     0,   358,     0,     0,
     2276     171,     0,     0,   352,   352,   171,     0,     0,     0,     0,
     2277       0,     0,     0,  1273,   205,     0,   229,   231,   234,     0,
     2278       0,     0,     0,     0,     0,     0,     0,     0,   171,     0,
     2279     171,     0,   218,     0,   171,     0,     0,   171,     0,     0,
     2280       0,     0,     0,     0,     0,     0,     0,     0,   160,     0,
     2281     171,     0,     0,   205,   171,     0,     0,     0,     0,   358,
     2282       0,     0,   774,     0,     0,     0,   345,     0,     0,     0,
     2283       0,     0,     0,     0,     0,     0,   352,     0,     0,     0,
     2284       0,     0,     0,     0,     0,     0,     0,     0,   581,     0,
     2285       0,     0,     0,   581,     0,   345,     0,     0,     0,     0,
     2286       0,     0,   358,   358,     0,     0,     0,     0,     0,  1340,
     2287       0,     0,     0,   205,    79,   229,   231,   234,   358,     0,
     2288       0,    79,     0,     0,     0,     0,     0,     0,     0,     0,
     2289       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2290       0,    85,     0,     0,     0,   205,     0,     0,     0,     0,
     2291     205,   512,     0,     0,     0,     0,     0,     0,     0,     0,
     2292       0,     0,     0,     0,     0,   358,     0,   882,     0,     0,
     2293       0,   352,     0,   352,     0,     0,     0,     0,     0,     0,
     2294      79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2295       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2296     352,     0,     0,     0,   686,     0,     0,     0,   352,   352,
     2297     352,     0,     0,     0,     0,     0,     0,     0,   205,   352,
     2298     352,     0,   273,   274,     0,   275,     0,     0,     0,     0,
     2299       0,    85,     0,     0,   152,     0,     0,   205,     0,     0,
     2300       0,     0,   229,   231,     0,     0,     0,     0,     0,     0,
     2301     234,   276,     0,     0,     0,   605,     0,   622,     0,   136,
     2302     137,   278,     0,     0,   279,   280,   270,   281,   282,   283,
     2303      43,    44,     0,   284,   285,     0,     0,     0,   239,     0,
     2304       0,     0,     0,     0,     0,     0,     0,     0,   244,     0,
     2305     205,     0,     0,     0,     0,     0,   286,     0,   623,     0,
     2306     624,   368,     0,     0,    47,    48,   288,   289,   290,   291,
     2307     205,     0,   219,     0,     0,   205,     0,   205,     0,     0,
     2308       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2309       0,     0,     0,   205,     0,     0,   205,   205,     0,     0,
     2310       0,     0,     0,   205,     0,   358,   352,     0,     0,     0,
     2311     512,     0,     0,     0,   374,     0,     0,   205,     0,     0,
     2312       0,     0,     0,     0,   205,     0,     0,     0,     0,     0,
     2313       0,     0,     0,     0,     0,   352,   406,     0,     0,     0,
     2314       0,   160,     0,     0,     0,     0,     0,   686,     0,     0,
     2315     420,     0,     0,     0,    85,     0,     0,     0,     0,   425,
     2316       0,    85,     0,     0,     0,     0,     0,     0,     0,   433,
     2317       0,     0,     0,     0,     0,     0,     0,     0,     0,   581,
     2318       0,     0,     0,     0,     0,     0,     0,     0,   450,     0,
     2319       0,     0,     0,   460,     0,     0,     0,     0,     0,     0,
     2320     358,   358,     0,     0,     0,     0,   468,     0,     0,     0,
     2321       0,     0,     0,     0,   482,     0,   486,     0,     0,     0,
     2322      85,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2323       0,     0,     0,     0,     0,   513,   205,     0,     8,     9,
     2324      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2325      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
     2326      28,    29,    30,     0,   205,     0,     0,     0,     0,   205,
     2327      33,     0,     0,     0,     0,     0,   571,     0,     0,     0,
     2328     575,     0,     0,     0,   512,     0,     0,     0,     0,     0,
     2329       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2330       0,     0,     0,    39,     0,    40,    41,    42,   618,     0,
     2331       0,     0,   619,   620,     0,   621,    43,    44,     0,     0,
     2332       0,     0,   632,   633,     0,   634,   635,   205,   636,     0,
     2333     637,   686,     0,     0,     0,     0,     0,     0,     0,   312,
     2334       0,   205,    45,     0,    46,     0,     0,   571,     0,   335,
     2335      47,    48,     0,     0,     0,   653,     0,     0,     0,     0,
     2336     370,   370,     0,     0,     0,     0,     0,     0,     0,     0,
     2337       0,     0,     0,     0,     0,     0,     0,     0,     0,   664,
     2338       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2339      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2340    -299,     0,     0,     0,   678,     0,     0,   512,     0,     0,
     2341     681,     0,    33,     0,     0,   450,     0,     0,   205,     0,
     2342       0,     0,     0,     0,     0,     0,     0,     0,   686,   205,
     2343       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2344      36,   273,   274,     0,   275,     0,   205,     0,   464,     0,
     2345       0,  -299,     0,     0,     0,   720,     0,     0,     0,     0,
     2346       0,     0,     0,     0,     0,     0,     0,   731,     0,     0,
     2347     276,     0,     0,     0,   358,   358,   277,     0,     0,     0,
     2348     278,     0,     0,   279,   280,   270,   281,   282,   283,    43,
     2349      44,     0,   284,   285,     0,     0,     0,     0,     0,     0,
     2350       0,     0,     0,     0,   756,     0,     0,     0,     0,     0,
     2351       0,     0,     0,   766,     0,   286,   767,   367,     0,     0,
     2352     368,     0,     0,    47,    48,   288,   289,   290,   291,     0,
     2353       0,     0,     0,   787,     0,     0,     0,     0,     0,     0,
     2354       0,     0,     0,   205,     8,     9,    10,    11,    12,    13,
     2355      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2356      24,    25,    26,    27,  -300,   370,   212,     0,     0,     0,
     2357       0,   826,     0,     0,     0,     0,    33,     0,     0,     0,
     2358     330,   353,     0,     0,     0,     0,     0,     0,   497,     0,
     2359     499,   502,     0,     0,     0,     0,   205,     0,     0,   505,
     2360     506,   358,     0,     0,    36,     0,     0,   205,   861,     0,
     2361       0,     0,   402,   499,   499,  -300,   212,     0,     0,   402,
     2362       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2363       0,     0,     0,     0,     0,   239,     0,     0,   312,     0,
     2364       0,     0,     0,     0,     0,     0,     0,     0,     0,   499,
     2365       0,   895,   896,     0,     0,     0,     0,   680,   512,     0,
     2366     512,   903,     0,     0,     0,     0,     0,     0,     0,     0,
     2367       0,     0,     0,     0,     0,   916,     0,     0,     0,     0,
     2368     920,     0,     0,     0,   499,   402,     0,     0,     0,     0,
     2369       0,     0,     0,     0,     0,     0,     0,   512,     0,   512,
     2370     717,     0,     0,     0,   205,     0,     0,     0,     0,     0,
     2371     726,     0,     0,     0,     0,   717,     0,     0,   717,     0,
     2372       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2373       0,   735,     0,     0,     0,     0,     0,     0,   160,     0,
     2374     953,     0,     0,   402,     0,     0,     0,   954,     0,     0,
     2375       0,     0,   402,   567,     0,   402,   570,     0,     0,     0,
     2376     956,   764,   957,   353,     0,     0,     0,   597,   335,     0,
     2377       0,     0,   726,     0,     0,   967,     0,     0,     0,     0,
     2378       0,   971,     0,     0,     0,     0,   615,     0,     0,     0,
     2379       0,     0,  1014,     0,     0,     0,  1015,     0,     0,     0,
     2380       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2381       0,     0,     0,   402,     0,     0,     0,   402,   825,     0,
     2382       0,     0,     0,     0,     0,     0,   370,     0,     0,   205,
     2383       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2384       0,     0,     0,     0,     0,     0,     0,     0,     0,   353,
     2385       0,     0,   499,   499,   499,   499,   499,   499,   499,   499,
     2386     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
     2387       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2388       0,  1087,     0,     0,     0,     0,     0,     0,     0,     0,
     2389       0,   887,     0,     0,   402,     0,     0,   353,     0,     0,
     2390       0,     0,     0,     0,     0,     0,     0,   717,     0,     0,
     2391       0,     0,     0,     0,     0,   273,   274,   726,   275,   909,
     2392       0,     0,   912,     0,     0,     0,     0,     0,   919,     0,
     2393       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2394       0,     0,   353,     0,   276,     0,     0,     0,  1152,     0,
     2395     277,     0,     0,     0,   278,     0,     0,   279,   280,   270,
     2396     281,   282,   283,    43,    44,     0,   284,   285,   936,   937,
     2397       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2398     205,     0,     0,     0,   335,   402,   402,     0,     0,   286,
     2399    1182,   367,     0,     0,     0,  1184,   725,    47,    48,   288,
     2400     289,   290,   291,   769,   353,  1189,     0,     0,     0,     0,
     2401       0,     0,     0,   597,   499,   597,   597,     0,     0,     0,
     2402       0,     0,   597,   965,     0,     0,     0,   370,     0,  1211,
     2403     205,     0,   806,   353,     0,     0,     0,     0,   353,   499,
     2404       0,     0,  1219,     0,     0,     0,  1220,   353,   353,  1221,
     2405       0,     0,     0,     0,     0,     0,     0,     0,   335,     0,
     2406       0,     0,     0,   353,     0,  1230,  1231,   402,   847,   499,
     2407       0,   402,   851,     0,     0,     0,     0,     0,     0,     0,
     2408     854,     0,     0,  1242,     0,     0,     0,     0,     0,     0,
     2409       0,     0,     0,     0,   312,     0,     0,     0,     0,     0,
     2410     335,     0,     0,     0,     0,     0,     0,   370,     0,     0,
     2411     353,   597,   912,     0,     0,   717,     0,     0,     0,     0,
     2412       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2413       0,     0,     0,     0,     0,  1091,     0,     0,     0,     0,
     2414       0,     0,     0,     0,     0,     0,  1109,     0,  1288,   353,
     2415       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2416       0,     0,     0,     0,     0,   205,   370,     0,  1126,     0,
     2417       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2418       0,     0,     0,   912,   912,     0,     0,     0,     0,   402,
     2419       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2420       0,     0,     0,     0,     0,   597,     0,   597,     0,     0,
     2421    1157,     0,     0,     0,     0,     0,     0,   597,     0,     0,
     2422       0,     0,     0,     0,     0,     0,     0,  1345,     0,  1346,
     2423       0,     0,     0,     0,     0,     0,     0,     0,   499,  1349,
     2424       0,  1350,     0,     0,     0,     0,     0,     0,     0,     0,
     2425     499,     0,     0,     0,     0,     0,  1357,     0,     0,     0,
     2426       0,     0,     0,   912,     0,     0,     0,     0,     0,     0,
     2427       0,     0,     0,     0,  1376,  1378,     0,     0,     0,     0,
     2428       0,     0,     0,     0,   825,     0,     0,  1386,     0,   499,
     2429     353,     0,  1387,     0,     0,  1189,     0,   402,     0,     0,
     2430       0,     0,  1222,  1223,     0,     0,     0,     0,     0,   597,
     2431     597,  1405,     0,     0,     0,     0,     0,     0,     0,     0,
     2432       0,  1412,     0,     0,  1414,     0,  1416,  1418,  1420,     0,
     2433       0,     0,   353,     0,     0,     0,     0,     0,     0,   499,
     2434       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2435       0,     0,     0,     0,   402,  1084,     0,     0,     0,     0,
     2436       0,     0,     0,     0,   353,     0,  1453,     0,  1455,     0,
     2437     402,  1097,     0,   597,   597,  1104,     0,     0,  1189,     0,
     2438       0,     0,     0,     0,     0,   353,   353,     0,  1471,     0,
     2439       0,     0,     0,     0,     0,     0,     0,     0,     1,     2,
     2440     200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2441      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2442      23,    24,    25,    26,    27,  -299,     0,    28,    29,    30,
     2443      31,     0,     0,     0,    32,   499,   499,    33,     0,     0,
     2444       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2445     402,     0,   402,  1332,   402,     0,     0,   717,     0,   402,
     2446       0,     0,     0,     0,     0,    36,     0,    37,     0,    38,
     2447       0,     0,    40,    41,     0,   597,  -299,     0,     0,     0,
     2448       0,     0,     0,     1,     2,   200,     4,     5,     6,     7,
     2449       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2450      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2451       0,    46,    28,    29,    30,    31,   353,    47,    48,    32,
     2452     273,   274,    33,   974,   975,     0,   976,     0,     0,   977,
     2453     978,   979,   980,   981,   982,   983,   984,     0,     0,     0,
     2454     985,     0,     0,     0,   986,   987,     0,   988,     0,   276,
     2455      36,     0,    37,     0,    38,   989,     0,   990,   991,   992,
     2456       0,     0,   279,   280,   270,   281,   282,   283,    43,    44,
     2457       0,   284,   285,     0,     0,     0,     0,     0,     0,     0,
     2458       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2459       0,     0,     0,     0,   286,   402,   287,     0,     0,   166,
     2460     402,     0,    47,    48,   288,   289,   290,   291,     0,     0,
     2461       0,     0,   993,   353,     0,     0,     0,  -134,     0,     0,
     2462       0,     0,     0,     0,     0,     0,     1,     2,   200,     4,
     2463       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    21522464      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2153       25,    26,    27,   347,   348,     0,   580,     0,   587,     0,
    2154       59,   347,   347,   347,     0,    33,     0,     0,   355,   611,
    2155      612,     0,   347,   347,     0,     0,     0,     0,     0,     0,
    2156        0,     0,     0,     0,    78,     0,     0,     0,     0,   274,
    2157      275,     0,   276,    36,     0,     0,     0,    59,     0,     0,
    2158        0,     0,     0,     0,   355,     0,     0,     0,     0,     0,
    2159        0,     0,     0,     0,   355,   355,     0,    80,   277,     0,
    2160      221,     0,     0,     0,   278,   355,     0,     0,   279,   173,
    2161        0,   280,   281,   282,   283,   284,   285,    43,    44,     0,
    2162      286,   287,     0,     0,   340,   340,     0,   348,     0,   348,
    2163        0,     0,     0,     0,     0,     0,    59,     0,     0,     0,
    2164        0,     0,     0,   288,     0,   370,     0,     0,   219,     0,
    2165        0,    47,    48,   290,   291,   292,   293,     0,     0,     0,
    2166        0,     0,   348,     0,   760,    86,     0,     0,     0,     0,
    2167      348,   348,   348,     0,     0,     0,    59,     0,     0,     0,
    2168        0,   348,   348,     0,     0,   347,     0,     0,     0,   355,
    2169        0,     0,     0,    80,     0,     0,     0,     0,     0,     0,
     2465      25,    26,    27,     0,     0,    28,    29,    30,    31,   353,
     2466     353,     0,    32,     0,     0,    33,     0,     0,     0,     0,
     2467       0,     0,     0,     0,     0,     0,   499,     0,     0,     0,
    21702468       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2171        0,   347,     0,     0,     0,     0,     0,     0,     0,    59,
    2172       59,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2173        0,     0,     0,     0,    78,     0,     0,     0,   355,     0,
    2174        0,    78,     0,     0,     0,     0,     0,     0,     0,     0,
    2175        0,     0,     0,     0,     0,     0,   173,   340,     0,   173,
    2176      173,   173,     0,     0,     0,     0,     0,     0,     0,     0,
    2177        0,     0,    59,     0,     0,     0,     0,   220,     0,     0,
    2178     1100,     0,     0,     0,    59,     0,     0,     0,   355,   355,
    2179        0,   355,   355,     0,    78,     0,  1113,     0,     0,  1117,
    2180     1120,     0,     0,     0,     0,     0,    59,     0,     0,    86,
    2181        0,     0,     0,    59,   348,     8,     9,    10,    11,    12,
    2182       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2183       23,    24,    25,    26,    27,  -299,     0,     0,     0,     0,
    2184      348,     0,     0,     0,     0,     0,     0,    33,   355,   355,
     2469       0,   312,     0,    36,     0,    37,     0,    38,   402,  1342,
     2470      40,    41,   402,     0,     0,   199,     2,   200,     4,     5,
     2471       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2472      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2473      26,    27,     0,     0,    28,    29,    30,     0,   499,    46,
     2474       0,     0,     0,     0,    33,    47,    48,     0,     0,     0,
     2475     499,   499,     0,     0,     0,     0,     0,     0,     0,     0,
    21852476       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2186        0,     0,     0,    80,     0,     0,    59,     0,     0,     0,
    2187       80,  1177,     0,     0,   879,    36,   880,     0,     0,     0,
    2188        0,     0,     0,   883,   884,     0,  -299,     0,   889,  1194,
    2189     1195,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2190        0,     0,     0,     0,     0,     0,   900,     0,     0,     0,
    2191        0,   904,     0,     0,     0,     0,     0,     0,     0,     0,
    2192        0,     0,     0,    80,     0,     0,     0,   355,     0,     0,
    2193        0,     0,   587,     0,   173,     0,     0,     0,     0,     0,
    2194        0,     0,     0,     0,     0,   162,     0,     0,     0,     0,
    2195      274,   275,  1117,   276,     0,     0,     0,     0,     0,     0,
    2196        0,   214,     0,     0,     0,     0,     0,     0,     0,     0,
    2197        0,     0,     0,     0,     0,     0,     0,     0,     0,   277,
    2198        0,     0,     0,     0,     0,   278,     0,     0,     0,   279,
    2199       86,     0,   280,   281,   282,   283,   284,   285,    43,    44,
    2200        0,   286,   287,     0,     0,     0,     0,   162,     0,     0,
    2201        0,   262,  1283,     0,     0,     0,     0,     0,     0,     0,
    2202      355,     0,   355,     0,   288,   971,   370,   972,   973,   974,
    2203        0,  1293,    47,    48,   290,   291,   292,   293,   162,     0,
    2204        0,     0,     0,     0,     0,     0,  1024,     0,   361,   173,
    2205        0,   366,     0,     0,     0,   355,     0,     0,     0,     0,
    2206        0,     0,  1030,   355,   355,   355,     0,     0,     0,     0,
    2207        0,     0,     0,     0,   355,   355,     0,     0,     0,     0,
    2208        0,     0,     0,     0,     0,  1057,    86,     0,     0,     0,
    2209        0,     0,     0,     0,     0,     0,     0,     0,     0,   162,
    2210        0,     0,     0,     0,     0,   173,     0,     0,   173,     0,
    2211        0,   214,     0,     0,     0,     0,     0,     0,     0,     0,
    2212        0,     0,     0,     0,     0,     0,     0,  1085,     0,     0,
    2213        0,  1363,  1095,     0,   173,     0,     0,  1098,     0,     0,
    2214        0,     0,  1103,  1104,     0,     0,     0,  1106,   366,  1107,
    2215     1108,     0,     0,  1111,     0,   162,     0,     0,     0,   173,
    2216        0,     0,  1126,     0,   173,     0,     0,     0,     0,     0,
    2217      221,     0,     0,     0,     0,     0,     0,     0,  1140,  1141,
    2218        0,     0,   515,     0,     0,     0,     0,     0,     0,     0,
    2219        0,     0,     0,     0,   173,   162,     0,     0,     0,     0,
    2220        0,     0,     0,     0,     0,     0,     0,   355,     0,  1167,
    2221        0,     0,  1169,     0,     0,     0,     0,     0,     0,     0,
     2477       0,     0,    36,   499,    37,     0,    38,     0,     0,   201,
     2478      41,     0,     0,     0,     0,     0,   353,     0,     0,     0,
     2479       1,     2,   200,     4,     5,     6,     7,     8,     9,    10,
     2480      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2481      21,    22,    23,    24,    25,    26,    27,     0,   202,    28,
     2482      29,    30,    31,     0,    47,    48,    32,   273,   274,    33,
     2483     275,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2484       0,     0,     0,     0,     0,   499,     0,     0,     0,     0,
     2485       0,     0,     0,     0,     0,     0,   276,    36,     0,    37,
     2486       0,    38,   277,     0,    40,    41,   278,     0,     0,   279,
     2487     280,   270,   281,   282,   283,    43,    44,   402,   284,   285,
    22222488       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2223        0,   585,     0,   355,     0,     0,   609,     0,     0,     0,
    22242489       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2225        0,     0,     0,     0,     0,     0,    86,   173,     0,     0,
    2226        0,     0,   173,    86,     0,  1202,     0,     0,     0,     0,
    2227        0,  1206,  1207,     0,     0,     0,     0,     0,     0,     0,
    2228        0,   173,     0,   173,     0,     0,  1220,   173,     0,     0,
    2229      173,  1227,     0,     0,     0,     0,  1231,     0,   173,     0,
    2230        0,     0,   173,     0,     0,     0,     0,     0,     0,  1239,
    2231        0,   162,   162,     0,     0,     0,    86,   361,     0,     0,
    2232        0,     0,     0,     0,     0,  1246,     0,  1248,  1249,  1250,
    2233     1251,     0,     0,     0,     0,     0,     0,     0,   162,     0,
    2234        0,     0,  1258,     0,  1140,     0,     0,     0,     0,     0,
     2490       0,   286,     0,   287,     0,     0,   402,   402,     0,    47,
     2491      48,   288,   289,   290,   291,     0,     0,     0,     0,     0,
     2492       0,     0,     0,     0,  -134,     0,     0,     0,     0,     0,
     2493       0,     0,     0,     0,     0,     0,   402,     1,     2,   200,
     2494       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2495      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2496      24,    25,    26,    27,     0,     0,    28,    29,    30,    31,
     2497       0,     0,     0,    32,   273,   274,    33,   275,     8,     9,
     2498      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2499      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
     2500      28,    29,    30,   276,    36,     0,    37,     0,    38,   277,
     2501      33,    40,    41,   278,     0,     0,   279,   280,   270,   281,
     2502     282,   283,    43,    44,     0,   284,   285,     0,     0,     0,
     2503       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2504       0,     0,     0,     0,     0,    40,    41,     0,   286,     0,
     2505     287,     0,     0,     0,     0,     0,    47,    48,   288,   289,
     2506     290,   291,     2,   200,     4,     5,     6,     7,     8,     9,
     2507      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2508      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
     2509      28,    29,    30,     0,     0,     0,     0,     0,   273,   274,
     2510      33,   275,     8,     9,    10,    11,    12,    13,    14,    15,
     2511      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2512      26,    27,     0,     0,    28,    29,    30,   276,    36,     0,
     2513      37,     0,    38,   277,    33,    40,    41,   278,     0,     0,
     2514     279,   280,   270,   281,   282,   283,    43,    44,     0,   284,
     2515     285,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2516       0,     0,    36,     0,     0,     0,     0,     0,     0,   201,
     2517      41,     0,   286,     0,   332,     0,     0,     0,     0,   725,
     2518     333,    48,   288,   289,   290,   291,     2,   200,     4,     5,
     2519       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2520      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2521      26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
     2522       0,     0,   273,   274,    33,   275,     8,     9,    10,    11,
     2523      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2524      22,    23,    24,    25,    26,    27,     0,     0,     0,     0,
     2525       0,   276,    36,     0,    37,     0,    38,   277,    33,    40,
     2526      41,   278,     0,     0,   279,   280,   270,   281,   282,   283,
     2527      43,    44,     0,   284,   285,     0,     0,     0,     0,     0,
     2528       0,     0,     0,     0,     0,     0,    36,     0,     0,     0,
     2529       0,     0,     0,     0,     0,     0,   286,     0,   332,     0,
     2530       0,     0,     0,   725,    47,    48,   288,   289,   290,   291,
     2531       2,   200,     4,     5,     6,     7,     8,     9,    10,    11,
     2532      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2533      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
     2534      30,     0,     0,     0,     0,     0,   273,   274,    33,   275,
    22352535       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2236        0,     0,     0,     0,     0,   690,     0,     0,     0,     0,
    2237        0,     0,     0,     0,  1285,  1286,     0,   207,     0,     0,
    2238        0,   162,     0,     0,     0,     0,   227,     0,   231,     0,
    2239      233,     0,     0,   515,     0,   515,   236,     0,   515,     0,
    2240      162,   515,     0,     0,     0,     0,     0,     0,     0,     0,
    2241      361,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2242        0,     0,     0,     0,     0,     0,     0,   207,     0,   231,
    2243      233,   236,     0,     0,     0,     0,     0,     0,     0,     0,
    2244        0,     0,     0,     0,  1326,  1327,     0,     0,     0,     0,
    2245        0,     0,     0,     0,  1337,     0,     0,     0,     0,     0,
    2246        0,     0,   162,     0,     0,     0,     0,   207,     0,     0,
    2247        0,     0,     0,   361,     0,     0,   780,     0,     0,     0,
    2248        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2249       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2250       26,    27,   585,     0,    28,    29,    30,   585,     0,     0,
    2251        0,     0,     0,     0,    33,     0,   361,   361,     0,     0,
    2252        0,  1379,     0,  1380,  1381,  1382,     0,   207,     0,   231,
    2253      233,   236,   361,     0,     0,  1386,     0,     0,     0,     0,
    2254        0,     0,    36,  1397,     0,     0,   169,    39,     0,    40,
    2255       41,    42,     0,     0,     0,     0,     0,     0,     0,   207,
    2256       43,    44,     0,     0,   207,   515,     0,     0,     0,     0,
    2257        0,     0,     0,     0,     0,     0,  1420,     0,     0,   361,
    2258        0,   888,     0,     0,     0,     0,    45,     0,    46,     0,
    2259        0,     0,     0,     0,    47,    48,     8,     9,    10,    11,
    2260       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2261       22,    23,    24,    25,    26,    27,  -300,   126,     0,     0,
    2262      690,  1459,  1460,     0,     0,     0,     0,     0,    33,     0,
    2263        0,     0,     0,   207,  1465,     0,     0,     0,   154,     0,
    2264        0,  1465,     0,     0,     0,     0,     0,     0,     0,     0,
    2265        0,  1483,   207,     0,     0,     0,    36,   231,   233,     0,
    2266        0,     0,     0,     0,     0,   236,     0,  -300,     0,     0,
    2267        0,   609,   126,     0,  1499,     0,     0,     0,  1505,     0,
    2268        0,     0,     0,   241,     0,     0,     0,   126,     0,   126,
    2269        0,     0,     0,   246,     0,     0,     0,     0,     0,     0,
    2270        0,     0,     0,     0,     0,   207,     0,  1528,     0,  1529,
    2271        0,     0,     0,     0,   267,     0,     0,     0,     0,     0,
    2272        0,     0,     0,     0,     0,   207,     0,     0,     0,     0,
    2273      207,     0,   207,     0,     0,     0,     0,     0,  1544,  1545,
    2274        0,     0,     0,     0,     0,     0,  1548,  1549,   207,     0,
    2275        0,   207,   207,     0,     0,     0,     0,     0,   207,     0,
    2276      377,   361,     0,     0,     0,     0,   515,     0,     0,     0,
    2277        0,     0,   207,     0,   126,     0,   126,   126,     0,   207,
    2278        0,   126,   409,   126,   126,     0,     0,     0,     0,     0,
    2279        0,     0,     0,     0,     0,     0,   423,   162,     0,     0,
    2280        0,     0,     0,     0,     0,   428,     0,     0,     0,     0,
    2281      690,     0,     0,     0,     0,   436,     0,     0,     0,     0,
    2282        0,   961,     0,     0,     8,     9,    10,    11,    12,     0,
    2283        0,     0,     0,     0,   453,     0,     0,     0,     0,   463,
    2284        0,     0,   585,     0,     0,     0,     0,   126,     0,     0,
    2285        0,     0,   471,     0,   274,   275,    33,   276,     0,     0,
    2286      485,     0,   489,   361,   361,     0,     0,     0,     0,     0,
    22872536       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2288        0,   516,     0,   277,    36,     0,     0,     0,     0,   278,
    2289        0,     0,   207,   279,     0,     0,   280,   281,   282,   283,
    2290      284,   285,    43,    44,     0,   286,   287,     0,     0,     0,
     2537       0,     0,     0,     0,     0,   276,    36,     0,    37,     0,
     2538      38,   277,     0,    40,    41,   278,     0,     0,   279,   280,
     2539     270,   281,   282,   283,    43,    44,     0,   284,   285,     0,
    22912540       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2292      207,     0,     0,   575,     0,   207,     0,   579,   288,     0,
    2293      370,     0,     0,     0,     0,     0,   336,    48,   290,   291,
    2294      292,   293,     0,     0,     0,     0,   515,     0,     0,     0,
    2295        0,     0,     0,     0,     0,   622,     0,     0,     0,   623,
    2296      624,     0,   625,     0,     0,     0,     0,     0,     0,   636,
    2297      637,     0,   638,   639,     0,   640,     0,   641,     0,     0,
    2298        0,     0,     0,   207,     0,     0,     0,   126,     0,     0,
    2299        0,     0,     0,     0,   575,     0,     0,   207,     0,   690,
    2300        0,     0,   657,     0,     0,     0,     0,     0,     0,     0,
    23012541       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2302        0,     0,     0,     0,     0,     0,   668,     0,     0,     0,
     2542     286,     0,   332,     0,     0,     0,     0,     0,   333,    48,
     2543     288,   289,   290,   291,     2,   200,     4,     5,     6,     7,
     2544       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2545      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2546       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
     2547     273,   274,    33,   275,     0,     0,     0,     0,     0,     0,
    23032548       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2304      333,   356,     0,     0,     0,     0,     0,     0,     0,     0,
    2305        0,   682,     0,     0,     0,     0,     0,   685,     0,     0,
    2306        0,     0,   453,     0,     0,     0,     0,     0,     0,     0,
    2307        0,     0,   405,   515,     0,     0,   207,     0,     0,   405,
    2308        0,     0,     0,     0,     0,     0,     0,   207,     0,   274,
    2309      275,     0,   276,     0,   690,     0,     0,     0,     0,     0,
    2310        0,     0,   726,     0,   207,     0,     0,     0,     0,     0,
    2311        0,     0,     0,     0,     0,   737,     0,     0,   277,     0,
    2312        0,     0,     0,     0,   626,     0,   137,   138,   279,     0,
    2313        0,   280,   281,   282,   283,   284,   285,    43,    44,     0,
    2314      286,   287,     0,     0,     0,   405,   361,   361,     0,     0,
    2315        0,     0,   762,   126,   126,     0,     0,     0,     0,     0,
    2316        0,   772,     0,   288,   773,   627,     0,   628,   371,     0,
    2317        0,    47,    48,   290,   291,   292,   293,     0,     0,     0,
    2318      126,   793,     0,   126,   126,     0,   126,     0,   126,   126,
    2319        0,     0,     0,   126,   126,     0,     0,     0,     0,     0,
    2320        0,   207,     0,     0,   405,     0,     0,     0,     0,     0,
    2321        0,     0,     0,   405,   571,     0,   405,   574,     0,   832,
    2322        0,     0,     0,     0,   356,     0,     0,     0,   601,     0,
    2323        0,   126,     0,     0,     0,   126,     0,     0,     0,     0,
    2324        0,   214,     0,     0,     0,     0,     0,   619,     0,     0,
    2325        0,     0,     0,     0,     0,     0,   867,     0,     0,     0,
    2326        0,   207,     0,     0,     0,     0,     0,     0,     0,     0,
    2327        0,     0,   207,     0,   405,     0,     0,     0,   405,   361,
    2328        0,     0,     0,   241,     0,     0,     0,     0,     0,     0,
    2329        0,     0,     0,     0,   214,     0,     0,     0,     0,   901,
    2330      902,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2331      356,   916,     0,     0,     0,     0,     0,     0,     0,     0,
    2332        0,     0,     0,     0,     0,   929,     0,     0,     0,     0,
    2333      933,     0,     0,     0,     0,     0,     0,   515,     0,   515,
     2549       0,     0,     0,     0,     0,     0,     0,     0,     0,   276,
     2550      36,     0,    37,     0,    38,   277,     0,   201,    41,   278,
     2551       0,     0,   279,   280,   270,   281,   282,   283,    43,    44,
     2552       0,   284,   285,     0,     0,     0,     0,     0,     0,     0,
    23342553       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2335        0,     0,     0,     0,     0,   405,     0,     0,   356,     0,
    2336        0,     0,     0,     0,     0,     0,     0,     0,   207,     0,
    2337        0,     0,     0,     0,   515,     0,   515,     0,     0,     0,
    2338        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2339      966,     0,     0,     0,     0,     0,     0,   967,     0,     0,
    2340        0,     0,     0,   356,     0,   162,     0,     0,     0,     0,
    2341      969,     0,   970,     0,     0,     0,     0,     0,     0,     0,
    2342        0,     0,     0,     0,     0,   980,     0,     0,     0,     0,
    2343        0,   984,     0,     0,     0,     0,     0,     0,     0,     0,
    2344        0,     0,  1026,     0,     0,     0,  1027,   405,   405,   315,
    2345        0,     0,     0,     0,     0,     0,     0,     0,     0,   338,
    2346        0,     0,     0,     0,     0,   775,   356,     0,     0,     0,
    2347      373,   373,     0,     0,     0,   601,     0,   601,   601,     0,
    2348        0,     0,     0,     0,   601,     0,     0,     0,     0,     0,
    2349        0,     0,     0,     0,   812,   356,     0,   207,     0,     0,
    2350      356,     0,     0,     0,     0,     0,     0,     0,     0,   356,
    2351      356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2352        0,     0,     0,     0,     0,   356,     0,   126,     0,   405,
    2353      853,     0,     0,   405,   857,     0,     0,     0,  1105,     0,
    2354        0,     0,   860,   126,     0,     0,   126,   126,     0,     0,
    2355        0,     0,     0,     0,     0,     0,     0,     0,   467,     0,
    2356        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2357        0,     0,   356,   601,     8,     9,    10,    11,    12,    13,
     2554       0,     0,     0,     0,   286,     0,   933,     0,     0,     0,
     2555       0,     0,   934,    48,   288,   289,   290,   291,     2,   200,
     2556       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    23582557      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    23592558      24,    25,    26,    27,     0,     0,    28,    29,    30,     0,
    2360        0,     0,     0,     0,  1168,     0,    33,   872,     0,     0,
    2361        0,     0,     0,   356,     0,     0,     0,     0,   126,     0,
    2362        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2363        0,   126,     0,     0,    36,     0,   126,   126,     0,     0,
    2364        0,    40,    41,     0,     0,     0,  1198,     0,     0,     0,
    2365        0,  1200,     0,   405,     0,     0,     0,   207,     0,     0,
    2366        0,  1205,     0,     0,     0,     0,     0,     0,     0,   601,
    2367        0,   601,     0,     0,     0,     0,   373,     0,     0,     0,
    2368      719,   601,     0,     0,   873,     0,    47,    48,     0,     0,
    2369        0,  1233,     0,     0,     0,     0,     0,     0,     0,   126,
    2370        0,     0,     0,     0,  1241,     0,     0,     0,  1242,     0,
    2371      207,  1243,     0,     0,     0,     0,     0,     0,     0,     0,
    2372        0,     0,     0,     0,     0,     0,     0,  1252,  1253,     0,
    2373        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2374        0,     0,     0,     0,     0,  1264,     0,     0,     0,   315,
    2375        0,     0,     0,     0,   356,     0,     0,     0,     0,   126,
    2376        0,   405,     0,     0,     0,     0,     0,     0,   684,     0,
    2377        0,     0,     0,   601,   601,     0,     0,     0,   126,     0,
     2559       0,     0,     0,     0,   273,   274,    33,   275,     0,     0,
    23782560       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23792561       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2380        0,     0,     0,   356,     0,     0,     0,     0,     0,     0,
    2381        0,   723,     0,     0,  1313,     0,     0,     0,     0,     0,
    2382        0,   732,     0,     0,     0,   405,  1102,   723,     0,     0,
    2383      723,     0,     0,     0,     0,   356,   207,   500,     0,   502,
    2384      505,   405,  1115,   741,   601,   601,  1122,     0,     0,   508,
    2385      509,     0,     0,     0,     0,     0,   356,   356,     0,     0,
    2386        0,     0,     0,     0,   502,   502,     0,     0,     0,     0,
    2387        0,     0,     0,   770,     0,     0,     0,     0,   126,     0,
    2388      338,     0,     0,     0,   732,     0,     0,     0,     0,     0,
    2389        0,  1368,     0,  1369,     0,     0,     0,     0,     0,     0,
    2390      502,     0,     0,     0,     0,     0,     0,     0,  1377,     0,
    2391     1378,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2392      405,     0,   405,     0,   405,  1385,     0,     0,     0,   405,
    2393      831,     0,     0,     0,     0,   502,     0,     0,   373,     0,
    2394        0,     0,     0,  1404,  1406,   601,     0,     0,     0,     0,
    2395        0,     0,     0,     0,  1411,     0,     0,     0,     0,  1412,
    2396        0,     0,  1205,     0,     0,     0,     0,     0,     0,     0,
    2397        0,     0,     0,     0,     0,     0,     0,     0,   274,   275,
    2398        0,   276,     0,  1434,     0,     0,     0,     0,     0,     0,
    2399        0,     0,   356,  1441,     0,     0,  1443,     0,  1445,  1447,
    2400     1449,     0,     0,   893,     0,     0,     0,   277,     0,     0,
    2401        0,     0,     0,   278,     0,     0,     0,   279,     0,   723,
    2402      280,   281,   282,   283,   284,   285,    43,    44,     0,   286,
    2403      287,   732,     0,   922,     0,     0,   925,     0,     0,  1480,
    2404        0,  1482,   932,     0,  1205,     0,     0,     0,     0,     0,
    2405        0,     0,   288,     0,   370,     0,     0,   371,     0,  1494,
    2406       47,    48,   290,   291,   292,   293,     0,     0,     0,   405,
    2407        0,     0,     0,     0,   405,     0,     0,     0,     0,     0,
    2408        0,     0,   949,   950,     0,     0,     0,   356,     0,     0,
    2409        0,     0,     0,     0,     0,     0,     0,     0,   338,     0,
    2410        0,     0,     0,     0,   502,   502,   502,   502,   502,   502,
    2411      502,   502,   502,   502,   502,   502,   502,   502,   502,   502,
    2412      502,   502,     0,     0,     0,     0,     0,     0,     0,     0,
    2413        0,     0,     0,     0,     0,     0,     0,   978,     0,   356,
    2414      356,   373,     0,     0,   201,     2,   202,     4,     5,     6,
    2415        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2416       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2417       27,     0,   338,    28,    29,    30,   405,  1365,     0,     0,
    2418      405,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2562       0,     0,     0,   276,    36,     0,    37,     0,    38,   277,
     2563       0,   201,    41,   278,     0,     0,   279,   280,   270,   281,
     2564     282,   283,    43,    44,     0,   284,   285,     0,     0,     0,
    24192565       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2420        0,     0,     0,     0,     0,     0,     0,     0,   315,     0,
    2421        0,    36,     0,    37,     0,    38,    39,     0,   203,    41,
    2422       42,   338,     0,     0,     0,     0,     0,     0,   373,    43,
    2423       44,     0,     0,   925,     0,  1124,   723,     0,     8,     9,
    2424       10,    11,    12,     0,     0,     0,     0,     0,     0,     0,
    2425        0,     0,     0,     0,     0,    45,  1109,   204,     0,     0,
    2426        0,     0,     0,    47,    48,     0,   502,  1127,   274,   275,
    2427       33,   276,   356,     0,     0,     0,     0,     0,     0,     0,
    2428        0,     0,     0,     0,     0,     0,     0,   373,     0,  1144,
    2429        0,     0,     0,   502,     0,     0,     0,   277,    36,     0,
    2430        0,     0,     0,   278,   925,   925,     0,   279,     0,     0,
    2431      280,   281,   282,   283,   284,   285,    43,    44,     0,   286,
    2432      287,     0,     0,   502,     0,     0,     0,     0,     0,     0,
    2433     1173,     0,   274,   275,     0,   276,     0,     0,     0,     0,
    2434        0,     0,   288,     0,   370,     0,     0,     0,     0,     0,
    2435     1125,    48,   290,   291,   292,   293,     0,     0,     0,     0,
    2436        0,   277,   405,     0,     0,     0,     0,   278,     0,     0,
    2437        0,   279,     0,     0,   280,   281,   282,   283,   284,   285,
    2438       43,    44,     0,   286,   287,     0,     0,   405,   405,   925,
     2566       0,     0,     0,     0,     0,     0,     0,     0,   286,     0,
     2567     367,     0,     0,     0,     0,     0,    47,    48,   288,   289,
     2568     290,   291,  -522,     0,     0,     1,     2,     3,     4,     5,
     2569       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2570      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2571      26,    27,     0,     0,    28,    29,    30,    31,     0,     0,
     2572       0,    32,     0,     0,    33,    34,     0,     0,     0,     0,
    24392573       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2440        0,     0,     0,     0,     0,     0,   288,     0,   370,     0,
    2441      831,   923,     0,   405,    47,    48,   290,   291,   292,   293,
    2442        0,     0,     0,     0,     0,     0,     0,     0,  1244,  1245,
    2443        0,     0,     0,     0,     0,     0,     0,     0,     1,     2,
    2444      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2445       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2446       23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
    2447       31,     0,     0,   502,    32,   274,   275,    33,   276,     0,
     2574       0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
     2575       0,     0,    36,     0,    37,     0,    38,    39,     0,    40,
     2576      41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
     2577      43,    44,     0,     0,     0,     0,     0,     0,     0,     0,
    24482578       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2449        0,     0,     0,     0,     0,     0,     0,     0,     0,   502,
    2450        0,     0,     0,     0,   277,    36,     0,    37,     0,    38,
    2451      278,   502,    40,    41,   279,     0,     0,   280,   281,   282,
    2452      283,   284,   285,    43,    44,     0,   286,   287,     0,     0,
    2453        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2454        0,     0,     0,     0,     0,     0,     0,     0,     0,   288,
    2455      502,   289,     0,     0,     0,     0,     0,    47,    48,   290,
    2456      291,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    2457        0,     0,  -134,     0,     0,     0,     0,     0,     0,     0,
    2458        0,     0,     0,  1357,     0,   723,     0,     0,     0,     0,
    2459        0,     0,     0,     0,     0,     0,     0,     0,     0,   502,
    2460        0,     0,     0,     0,     0,     0,     1,     2,   202,     4,
     2579       0,     0,     0,     0,     0,     0,    45,     0,    46,     0,
     2580       0,     0,     0,     0,    47,    48,     1,     2,     3,     4,
    24612581       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    24622582      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    24632583      25,    26,    27,     0,     0,    28,    29,    30,    31,     0,
    2464        0,   502,    32,   274,   275,    33,   987,   988,     0,   989,
    2465        0,     0,   990,   991,   992,   993,   994,   995,   996,   997,
    2466        0,     0,     0,   998,     0,     0,     0,   999,  1000,     0,
    2467       35,     0,   277,    36,     0,    37,     0,    38,  1001,     0,
    2468     1002,  1003,  1004,     0,     0,   280,   281,   282,   283,   284,
    2469      285,    43,    44,     0,   286,   287,     0,     0,     0,     0,
    2470        0,   502,   502,     0,     0,     0,     0,     0,     0,     0,
    2471        0,     0,     0,     0,     0,     0,     0,   288,     0,   289,
    2472        0,     0,   168,     0,     0,    47,    48,   290,   291,   292,
    2473      293,     0,     0,     0,     0,  1005,     0,     0,     0,     0,
    2474     -134,     0,     0,     1,     2,   202,     4,     5,     6,     7,
     2584       0,     0,    32,     0,     0,    33,    34,     0,     0,     0,
     2585       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2586       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2587      35,     0,     0,    36,     0,    37,     0,    38,    39,     0,
     2588      40,    41,    42,     0,     0,     0,     0,     0,     0,     0,
     2589       0,    43,    44,     0,     0,     0,     0,     0,     0,     0,
     2590       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2591       0,     0,     0,     0,     0,     0,     0,    45,     0,    46,
     2592       0,     0,     0,  -526,     0,    47,    48,     1,     2,     3,
     2593       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2594      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2595      24,    25,    26,    27,     0,     0,    28,    29,    30,    31,
     2596       0,     0,     0,    32,     0,     0,    33,    34,     0,     0,
     2597       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2598       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2599       0,    35,     0,     0,    36,     0,    37,     0,    38,    39,
     2600       0,    40,    41,    42,     0,     0,     0,     0,     0,     0,
     2601       0,     0,    43,    44,     0,     0,     0,     0,     0,     0,
     2602       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2603       0,     0,     0,     0,     0,     0,     0,     0,    45,     0,
     2604      46,     0,     0,     0,     0,     0,    47,    48,   199,     2,
     2605     200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2606      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2607      23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
     2608       0,     0,     0,     0,     0,     0,     0,    33,     0,     8,
     2609       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2610      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2611       0,    28,    29,    30,     0,    36,     0,    37,     0,    38,
     2612      39,    33,   201,    41,    42,     0,     0,     0,     0,     0,
     2613       0,     0,     0,    43,    44,     0,     0,     0,     0,     0,
     2614       0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
     2615       0,     0,     0,     0,     0,     0,    40,    41,     0,    45,
     2616       0,   202,     0,     0,     0,     0,     0,    47,    48,     2,
     2617     200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2618      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2619      23,    24,    25,    26,    27,   245,     0,    28,    29,    30,
     2620       0,    47,    48,     0,     0,     0,     0,    33,     0,     8,
     2621       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2622      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2623       0,    28,    29,    30,     0,    36,     0,    37,     0,    38,
     2624      39,    33,   201,    41,    42,     0,     0,     0,     0,     0,
     2625       0,     0,     0,    43,    44,     0,     0,     0,     0,     0,
     2626       0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
     2627       0,     0,     0,     0,     0,     0,    40,    41,     0,    45,
     2628       0,   202,     0,     0,     0,     0,     0,    47,    48,     2,
     2629     200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2630      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2631      23,    24,    25,    26,    27,    46,     0,    28,    29,    30,
     2632       0,    47,    48,     0,     0,     0,     0,    33,     0,     0,
     2633       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2634       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2635       0,     0,     0,     0,     0,    36,     0,    37,     0,    38,
     2636       0,     0,    40,    41,     2,   200,     4,     5,     6,     7,
    24752637       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    24762638      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2477        0,     0,    28,    29,    30,    31,     0,     0,     0,    32,
    2478      274,   275,    33,   276,     0,     0,     0,     0,     0,     0,
     2639       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
     2640    -407,   660,    33,     0,     0,     0,     0,    47,    48,     0,
    24792641       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2480        0,     0,     0,     0,     0,     0,     0,     0,     0,   277,
    2481       36,     0,    37,     0,    38,   278,   315,    40,    41,   279,
    2482        0,     0,   280,   281,   282,   283,   284,   285,    43,    44,
    2483        0,   286,   287,     0,     0,     0,     0,     0,     0,     0,
    24842642       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2485        0,     0,     0,     0,   288,     0,   289,     0,     0,     0,
    2486        0,     0,    47,    48,   290,   291,   292,   293,     0,     0,
    2487        0,     0,     0,     0,     0,     2,   202,     4,     5,     6,
     2643      36,     0,    37,     0,    38,     0,     0,    40,    41,     0,
     2644       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2645       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2646       0,  1309,     0,     0,     0,     0,     0,     0,     0,     0,
     2647       0,     0,     0,     0,     0,     0,   660,     0,     0,     0,
     2648       0,     0,    47,    48,     2,   200,     4,     5,     6,     7,
     2649       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2650      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2651       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
     2652       0,     0,    33,     0,     8,     9,    10,    11,    12,    13,
     2653      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2654      24,    25,    26,    27,     0,     0,    28,    29,    30,     0,
     2655      36,     0,    37,     0,    38,     0,    33,    40,    41,     0,
     2656       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2657       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2658       0,  1311,     0,     0,    36,     0,     0,     0,     0,     0,
     2659       0,   201,    41,     0,     0,     0,   660,     0,     0,     0,
     2660       0,     0,    47,    48,     2,   200,     4,     5,     6,     7,
     2661       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2662      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2663     258,     0,    28,    29,    30,     0,    47,    48,     0,     0,
     2664       0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
     2665       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2666       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2667      36,     0,    37,     0,    38,     0,     0,   201,    41,     2,
     2668     200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2669      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2670      23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
     2671       0,     0,     0,     0,     0,     0,   258,    33,     0,     0,
     2672       0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
     2673       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2674       0,     0,     0,     0,     0,    36,     0,    37,     0,    38,
     2675       0,     0,    40,    41,     2,   200,     4,     5,     6,     7,
     2676       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2677      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2678       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
     2679       0,   660,    33,     0,     0,     0,     0,    47,    48,     0,
     2680       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2681       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2682      36,     0,    37,     0,    38,     0,     0,   201,    41,     8,
     2683       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2684      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2685       0,    28,    29,    30,     0,     0,     0,     0,     0,   273,
     2686     274,    33,   275,     0,     0,     0,   202,     0,     0,     0,
     2687       0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
     2688       0,     0,     0,     0,     0,     0,     0,     0,   276,    36,
     2689       0,     0,     0,     0,   277,     0,    40,    41,   278,     0,
     2690       0,   279,   280,   270,   281,   282,   283,    43,    44,     0,
     2691     284,   285,     0,     0,     0,     0,     0,     0,     0,     0,
     2692       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2693       0,     0,     0,   286,     0,   507,     0,     0,   166,     0,
     2694       0,    47,    48,   288,   289,   290,   291,     8,     9,    10,
     2695      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2696      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
     2697      29,    30,     0,     0,     0,     0,     0,   273,   274,    33,
     2698     275,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2699      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2700      27,     0,     0,    28,    29,    30,   276,    36,     0,     0,
     2701       0,     0,   277,    33,    40,    41,   278,     0,     0,   279,
     2702     280,   270,   281,   282,   283,    43,    44,     0,   284,   285,
     2703       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2704       0,    36,     0,     0,     0,     0,     0,     0,   201,    41,
     2705       0,   286,   -40,   287,     0,     0,     0,     0,     0,    47,
     2706      48,   288,   289,   290,   291,     8,     9,    10,    11,    12,
     2707      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2708      23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
     2709       0,     0,     0,    47,    48,   273,   274,    33,   275,     0,
     2710       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2711       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2712       0,     0,     0,     0,   276,    36,     0,     0,     0,     0,
     2713     277,     0,    40,    41,   278,     0,     0,   279,   280,   270,
     2714     281,   282,   283,    43,    44,     0,   284,   285,     0,     0,
     2715       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2716       0,     0,     0,     0,     0,     0,     0,     0,     0,   286,
     2717       0,   287,     0,     0,     0,     0,     0,    47,    48,   288,
     2718     289,   290,   291,     8,     9,    10,    11,    12,    13,    14,
     2719      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2720      25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
     2721       0,     0,     0,   273,   274,    33,   275,     0,     0,     0,
     2722       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2723       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2724       0,     0,   276,    36,     0,     0,     0,     0,   277,     0,
     2725      40,    41,   278,     0,     0,   279,   280,   270,   281,   282,
     2726     283,    43,    44,     0,   284,   285,     0,     0,     0,     0,
     2727       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2728       0,     0,     0,     0,     0,     0,     0,   286,     0,   332,
     2729       0,     0,     0,     0,     0,    47,    48,   288,   289,   290,
     2730     291,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2731      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2732      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2733       0,   273,   274,    33,   275,     0,     0,     0,     0,     0,
     2734       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2735       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2736     276,    36,     0,     0,     0,     0,   277,     0,    40,    41,
     2737     278,     0,     0,   279,   280,   270,   281,   282,   283,    43,
     2738      44,     0,   284,   285,     0,     0,     0,     0,     0,     0,
     2739       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2740       0,     0,     0,     0,     0,   286,     0,   367,     0,     0,
     2741       0,     0,     0,    47,    48,   288,   289,   290,   291,   453,
     2742       2,   200,     4,     5,     6,     7,     8,     9,    10,    11,
     2743      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2744      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
     2745      30,     0,     0,     0,     0,     0,     0,     0,    33,     8,
     2746       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2747      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2748       0,    28,    29,    30,     0,     0,    36,     0,    37,     0,
     2749      38,    33,     0,    40,    41,     0,     0,     0,     0,     8,
     2750       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2751      19,    20,    21,    22,    23,    24,    25,    26,    27,    36,
     2752       0,    28,    29,    30,    39,     0,   201,    41,    42,     0,
     2753       0,    33,     0,     0,     0,    -3,     0,    43,    44,     0,
     2754       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2755       0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
     2756       0,     0,     0,    45,   109,   258,    40,    41,     0,     0,
     2757       0,    47,    48,     0,     0,     0,     0,    43,    44,     0,
     2758       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
     2759      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2760      24,    25,    26,    27,     0,    46,    28,    29,    30,     0,
     2761       0,    47,    48,     0,     0,     0,    33,   866,     0,     0,
     2762       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
     2763      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2764      24,    25,    26,    27,    36,     0,    28,    29,    30,     0,
     2765       0,    40,    41,     0,     0,     0,    33,   866,     0,     0,
     2766       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2767       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2768       0,     0,     0,     0,    36,     0,     0,     0,     0,     0,
     2769     713,    40,    41,     0,   867,     0,    47,    48,     0,     8,
     2770       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2771      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2772       0,    28,    29,    30,     0,     0,     0,     0,     0,     0,
     2773     713,    33,   866,     0,  1181,     0,    47,    48,     0,     8,
     2774       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2775      19,    20,    21,    22,    23,    24,    25,    26,    27,    36,
     2776       0,    28,    29,    30,     0,     0,    40,    41,     0,     0,
     2777       0,    33,     8,     9,    10,    11,    12,    13,    14,    15,
     2778      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2779      26,    27,     0,     0,    28,    29,    30,     0,     0,    36,
     2780       0,     0,     0,     0,    33,   713,    40,    41,     0,  1267,
     2781       0,    47,    48,     0,     0,     0,     0,     0,     0,     0,
     2782       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2783       0,     0,    36,     0,     0,     0,     0,     0,     0,    40,
     2784      41,     0,     0,     0,     0,   328,     0,     0,     0,     0,
     2785       0,    47,    48,     0,     0,     0,     0,     8,     9,    10,
     2786      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2787      21,    22,    23,    24,    25,    26,    27,     0,   713,    28,
     2788      29,    30,     0,     0,    47,    48,     0,     0,     0,    33,
     2789       0,     2,   200,     4,     5,     6,     7,     8,     9,    10,
     2790      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2791      21,    22,    23,    24,    25,    26,    27,    36,     0,    28,
     2792      29,    30,     0,     0,    40,    41,     0,     0,     0,    33,
     2793       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2794       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2795       0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
     2796       0,    38,     0,   660,    40,    41,     0,     0,     0,    47,
     2797      48,   273,   274,     0,   275,   975,     0,   976,     0,     0,
     2798     977,   978,   979,   980,   981,   982,   983,   984,     0,     0,
     2799    1501,   985,     0,     0,     0,   986,   987,     0,   988,     0,
     2800     276,     0,  -420,     0,     0,     0,   989,     0,   169,   170,
     2801     992,     0,     0,   279,   280,   270,   281,   282,   283,    43,
     2802      44,     0,   284,   285,     0,     0,     0,     0,     0,     0,
     2803       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2804       0,     0,     0,     0,     0,   286,     0,   367,     0,     0,
     2805     166,     0,     0,    47,    48,   288,   289,   290,   291,     0,
     2806       0,   273,   274,   993,   275,   975,     0,   976,  -134,     0,
     2807     977,   978,   979,   980,   981,   982,   983,   984,     0,     0,
     2808       0,   985,     0,     0,     0,   986,   987,     0,   988,     0,
     2809     276,     0,     0,     0,     0,     0,   989,     0,   169,   170,
     2810     992,     0,     0,   279,   280,   270,   281,   282,   283,    43,
     2811      44,     0,   284,   285,     0,     0,     0,     0,     0,     0,
     2812       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2813       0,     0,     0,     0,     0,   286,     0,   367,     0,     0,
     2814     166,     0,     0,    47,    48,   288,   289,   290,   291,     0,
     2815       0,     0,     0,   993,     0,     0,     0,     0,  -134,     2,
     2816     200,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2817      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2818      23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
     2819       0,     0,     0,     0,     0,     0,     0,    33,     0,   273,
     2820     274,     0,   275,   975,     0,   976,  1361,  1362,   977,   978,
     2821     979,   980,   981,   982,   983,   984,     0,     0,  1501,   985,
     2822       0,     0,     0,   986,   987,    36,   988,    37,   276,    38,
     2823       0,     0,    40,    41,   989,     0,   169,   170,   992,     0,
     2824       0,   279,   280,   270,   281,   282,   283,    43,    44,     0,
     2825     284,   285,     0,     0,     0,     0,  1274,     0,     0,     0,
     2826       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2827       0,     0,     0,   286,     0,   367,     0,     0,   166,     0,
     2828       0,    47,    48,   288,   289,   290,   291,     0,     0,   273,
     2829     274,   993,   275,   975,     0,   976,  1361,  1362,   977,   978,
     2830     979,   980,   981,   982,   983,   984,     0,     0,     0,   985,
     2831       0,     0,     0,   986,   987,     0,   988,     0,   276,     0,
     2832       0,     0,     0,     0,   989,     0,   169,   170,   992,     0,
     2833       0,   279,   280,   270,   281,   282,   283,    43,    44,     0,
     2834     284,   285,     0,     0,     0,     0,     0,     0,     0,     0,
     2835       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2836       0,     0,     0,   286,     0,   367,     0,     0,   166,     0,
     2837       0,    47,    48,   288,   289,   290,   291,     0,     0,   273,
     2838     274,   993,   275,   975,     0,   976,     0,     0,   977,   978,
     2839     979,   980,   981,   982,   983,   984,     0,     0,     0,   985,
     2840       0,     0,     0,   986,   987,     0,   988,     0,   276,     0,
     2841       0,     0,     0,     0,   989,     0,   169,   170,   992,     0,
     2842       0,   279,   280,   270,   281,   282,   283,    43,    44,     0,
     2843     284,   285,     0,     0,     0,     0,     0,     0,   273,   274,
     2844       0,   275,     0,     0,     0,     0,     0,     0,     0,     0,
     2845       0,     0,     0,   286,     0,   367,     0,     0,   166,     0,
     2846       0,    47,    48,   288,   289,   290,   291,   276,     0,     0,
     2847       0,   993,     0,   277,     0,     0,     0,   278,     0,     0,
     2848     279,   280,   270,   281,   282,   283,    43,    44,     0,   284,
     2849     285,     0,     0,     0,     0,     0,     0,   273,   274,     0,
     2850     275,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2851       0,     0,   286,     0,   367,     0,     0,   910,     0,     0,
     2852      47,    48,   288,   289,   290,   291,   276,     0,     0,     0,
     2853       0,     0,   277,     0,     0,     0,   278,     0,     0,   279,
     2854     280,   270,   281,   282,   283,    43,    44,     0,   284,   285,
     2855       0,     0,     0,     0,     0,     0,   273,   274,     0,   275,
     2856       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2857       0,   286,     0,   367,     0,     0,     0,     0,     0,    47,
     2858      48,   288,   289,   290,   291,   276,     0,     0,     0,     0,
     2859       0,   277,     0,     0,     0,   278,     0,     0,   279,   280,
     2860     270,   281,   282,   283,    43,    44,     0,   284,   285,     0,
     2861       0,     0,     0,     0,     0,   273,   274,     0,   275,     0,
     2862       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2863     496,     0,   367,     0,     0,     0,     0,     0,    47,    48,
     2864     288,   289,   290,   291,   276,     0,     0,     0,     0,     0,
     2865     277,     0,     0,     0,   278,     0,     0,   279,   280,   270,
     2866     281,   282,   283,    43,    44,     0,   284,   285,     0,     0,
     2867       0,     0,     0,     0,   273,   274,     0,   275,     0,     0,
     2868       0,     0,     0,     0,     0,     0,     0,     0,     0,   501,
     2869       0,   367,     0,     0,     0,     0,     0,    47,    48,   288,
     2870     289,   290,   291,   276,     0,     0,     0,     0,     0,   277,
     2871       0,     0,     0,   278,     0,     0,   279,   280,   270,   281,
     2872     282,   283,    43,    44,     0,   284,   285,     0,     0,     0,
     2873       0,     0,     0,   273,   274,     0,   275,     0,     0,     0,
     2874       0,     0,     0,     0,     0,     0,     0,     0,   504,     0,
     2875     367,     0,     0,     0,     0,     0,    47,    48,   288,   289,
     2876     290,   291,   276,     0,     0,     0,     0,     0,   277,     0,
     2877       0,     0,   278,     0,     0,   279,   280,   270,   281,   282,
     2878     283,    43,    44,     0,   284,   285,     0,     0,     0,     0,
     2879       0,     0,   273,   274,     0,   275,     0,     0,     0,     0,
     2880       0,     0,     0,     0,     0,     0,     0,   286,     0,   367,
     2881       0,     0,     0,     0,     0,   679,    48,   288,   289,   290,
     2882     291,   276,     0,     0,     0,     0,     0,   277,     0,     0,
     2883       0,   278,     0,     0,   279,   280,   270,   281,   282,   283,
     2884      43,    44,     0,   284,   285,     0,     0,     0,     0,     0,
     2885       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2886       0,     0,     0,     0,     0,     0,   286,     0,   367,     0,
     2887       0,     0,     0,     0,   333,    48,   288,   289,   290,   291,
     2888       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2889      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2890       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
     2891       0,     0,    33,   199,     2,   200,     4,     5,     6,     7,
     2892       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2893      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2894      36,     0,    28,    29,    30,   109,     0,    40,    41,     0,
     2895       0,     0,    33,     0,     0,     0,     0,     0,    43,    44,
     2896       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2897       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2898      36,     0,    37,     0,    38,     0,     0,   201,    41,   453,
     2899       2,   200,     4,     5,     6,     7,     8,     9,    10,    11,
     2900      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2901      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
     2902      30,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2903       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2904       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2905       0,     0,     0,     0,     0,     0,    36,     0,    37,     0,
     2906      38,     0,     0,    40,    41,     2,   200,     4,     5,     6,
    24882907       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    24892908      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    24902909      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
    2491        0,   274,   275,    33,   276,     8,     9,    10,    11,    12,
    2492       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2493       23,    24,    25,    26,    27,     0,   502,    28,    29,    30,
    2494      277,    36,     0,    37,     0,    38,   278,    33,    40,    41,
    2495      279,     0,   502,   280,   281,   282,   283,   284,   285,    43,
    2496       44,     0,   286,   287,     0,     0,     0,     0,     0,     0,
    2497        0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
    2498        0,     0,    40,    41,     0,   288,     0,   335,     0,     0,
    2499        0,     0,   731,   336,    48,   290,   291,   292,   293,     2,
    2500      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2501       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2502       23,    24,    25,    26,    27,   502,   502,    28,    29,    30,
    2503        0,     0,     0,     0,     0,   274,   275,    33,   276,     8,
    2504        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2505       19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    2506        0,    28,    29,    30,   277,    36,     0,    37,     0,    38,
    2507      278,    33,    40,    41,   279,     0,     0,   280,   281,   282,
    2508      283,   284,   285,    43,    44,     0,   286,   287,     0,     0,
    2509        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
    2510        0,     0,     0,     0,     0,     0,   203,    41,     0,   288,
    2511        0,   335,     0,     0,     0,     0,   731,    47,    48,   290,
    2512      291,   292,   293,     2,   202,     4,     5,     6,     7,     8,
    2513        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2514       19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    2515        0,    28,    29,    30,     0,     0,     0,     0,     0,   274,
    2516      275,    33,   276,     0,     0,     0,     0,     0,     0,     0,
    2517        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2518        0,     0,     0,     0,     0,     0,     0,     0,   277,    36,
    2519        0,    37,     0,    38,   278,     0,    40,    41,   279,     0,
    2520        0,   280,   281,   282,   283,   284,   285,    43,    44,     0,
    2521      286,   287,     0,     0,     0,     0,     0,     0,     0,     0,
    2522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2523        0,     0,     0,   288,     0,   335,     0,     0,     0,     0,
    2524        0,   336,    48,   290,   291,   292,   293,     2,   202,     4,
    2525        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2526       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2527       25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2528        0,     0,     0,   274,   275,    33,   276,     0,     0,     0,
     2910       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    25292911       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25302912       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2531        0,     0,   277,    36,     0,    37,     0,    38,   278,     0,
    2532      203,    41,   279,     0,     0,   280,   281,   282,   283,   284,
    2533      285,    43,    44,     0,   286,   287,     0,     0,     0,     0,
    2534        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2535        0,     0,     0,     0,     0,     0,     0,   288,     0,   946,
    2536        0,     0,     0,     0,     0,   947,    48,   290,   291,   292,
    2537      293,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    2538       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2539       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2540       29,    30,     0,     0,     0,     0,     0,   274,   275,    33,
    2541      276,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2542        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2543        0,     0,     0,     0,     0,     0,   277,    36,     0,    37,
    2544        0,    38,   278,     0,   203,    41,   279,     0,     0,   280,
    2545      281,   282,   283,   284,   285,    43,    44,     0,   286,   287,
     2913       0,    36,     0,    37,     0,    38,     0,     0,   201,    41,
     2914       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2915      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2916       0,     0,    28,    29,    30,   471,   472,   473,   474,     0,
     2917       0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
    25462918       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25472919       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2548        0,   288,     0,   370,     0,     0,     0,     0,     0,    47,
    2549       48,   290,   291,   292,   293,  -522,     0,     0,     1,     2,
    2550        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2551       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2552       23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
    2553       31,     0,     0,     0,    32,     0,     0,    33,    34,     0,
    2554        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2555        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2556        0,     0,    35,     0,     0,    36,     0,    37,     0,    38,
    2557       39,     0,    40,    41,    42,     0,     0,     0,     0,     0,
    2558        0,     0,     0,    43,    44,     0,     0,     0,     0,     0,
    2559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2560        0,     0,     0,     0,     0,     0,     0,     0,     0,    45,
    2561        0,    46,     0,     0,     0,     0,     0,    47,    48,     1,
    2562        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    2563       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2564       22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2565       30,    31,     0,     0,     0,    32,     0,     0,    33,    34,
    2566        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2567        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,    35,     0,     0,    36,     0,    37,     0,
    2569       38,    39,     0,    40,    41,    42,     0,     0,     0,     0,
    2570        0,     0,     0,     0,    43,    44,     0,     0,     0,     0,
    2571        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2572        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2573       45,     0,    46,     0,     0,     0,  -526,     0,    47,    48,
    2574        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
    2575       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2576       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2577       29,    30,    31,     0,     0,     0,    32,     0,     0,    33,
    2578       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2579        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2580        0,     0,     0,     0,    35,     0,     0,    36,     0,    37,
    2581        0,    38,    39,     0,    40,    41,    42,     0,     0,     0,
    2582        0,     0,     0,     0,     0,    43,    44,     0,     0,     0,
    2583        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2584        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2585        0,    45,     0,    46,     0,     0,     0,     0,     0,    47,
    2586       48,     1,     2,   202,     4,     5,     6,     7,     8,     9,
    2587       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2588       20,    21,    22,    23,    24,    25,    26,    27,  -299,     0,
    2589       28,    29,    30,    31,     0,     0,     0,    32,     0,     0,
    2590       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2591        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2592        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
    2593       37,     0,    38,     0,     0,    40,    41,     0,     0,  -299,
    2594        1,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    2595       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2596       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2597       29,    30,    31,     0,    46,     0,    32,     0,     0,    33,
    2598       47,    48,     0,     0,     0,     0,     0,     0,     0,     0,
    2599        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2600        0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
    2601        0,    38,     0,     0,    40,    41,   201,     2,   202,     4,
    2602        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2603       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2604       25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2605        0,     0,     0,    46,     0,    33,     0,     0,     0,    47,
    2606       48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2607        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2608        0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
    2609      203,    41,     2,   202,     4,     5,     6,     7,     8,     9,
    2610       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2611       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2612       28,    29,    30,     0,     0,     0,     0,     0,     0,   204,
    2613       33,     0,     0,     0,     0,    47,    48,     0,     0,     0,
    2614        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2615        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
    2616       37,     0,    38,    39,     0,   203,    41,    42,     0,     0,
    2617        0,     0,     0,     0,     0,     0,    43,    44,     0,     0,
    2618        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2619        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2620        0,     0,    45,     0,   204,     0,     0,     0,     0,     0,
    2621       47,    48,     2,   202,     4,     5,     6,     7,     8,     9,
    2622       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2623       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2624       28,    29,    30,     0,     0,     0,     0,     0,     0,     0,
    2625       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2626        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2627        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
    2628       37,     0,    38,     0,     0,    40,    41,     2,   202,     4,
    2629        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2630       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2631       25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2632        0,     0,     0,  -407,   664,    33,     0,     0,     0,     0,
    2633       47,    48,     0,     0,     0,     0,     0,     0,     0,     0,
    2634        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2635        0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
    2636       40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
    2637        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2638        0,     0,     0,     0,  1334,     0,     0,     0,     0,     0,
    2639        0,     0,     0,     0,     0,     0,     0,     0,     0,   664,
    2640        0,     0,     0,     0,     0,    47,    48,     2,   202,     4,
    2641        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2642       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2643       25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2644        0,     0,     0,     0,     0,    33,     0,     8,     9,    10,
    2645       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2646       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2647       29,    30,     0,    36,     0,    37,     0,    38,     0,    33,
    2648       40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
    2649        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2650        0,     0,     0,     0,  1336,     0,     0,    36,     0,     0,
    2651        0,     0,     0,     0,    40,    41,     0,     0,     0,   664,
    2652        0,     0,     0,     0,     0,    47,    48,     2,   202,     4,
    2653        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2654       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2655       25,    26,    27,   247,     0,    28,    29,    30,     0,    47,
    2656       48,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2657        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2658        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2659        0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
    2660      203,    41,     2,   202,     4,     5,     6,     7,     8,     9,
    2661       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2662       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2663       28,    29,    30,     0,     0,     0,     0,     0,     0,   260,
    2664       33,     0,     0,     0,     0,    47,    48,     0,     0,     0,
    2665        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2666        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
    2667       37,     0,    38,     0,     0,    40,    41,     2,   202,     4,
    2668        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2669       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2670       25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2671        0,     0,     0,     0,   664,    33,     0,     0,     0,     0,
    2672       47,    48,     0,     0,     0,     0,     0,     0,     0,     0,
    2673        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2674        0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
    2675      203,    41,     8,     9,    10,    11,    12,    13,    14,    15,
    2676       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2677       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2678        0,     0,   274,   275,    33,   276,     0,     0,     0,   204,
    2679        0,     0,     0,     0,     0,    47,    48,     0,     0,     0,
    2680        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2681        0,   277,    36,     0,     0,     0,     0,   278,     0,    40,
    2682       41,   279,     0,     0,   280,   281,   282,   283,   284,   285,
    2683       43,    44,     0,   286,   287,     0,     0,     0,     0,     0,
    2684        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2685        0,     0,     0,     0,     0,     0,   288,     0,   510,     0,
    2686        0,   168,     0,     0,    47,    48,   290,   291,   292,   293,
    2687        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2688       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2689        0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
    2690      274,   275,    33,   276,     8,     9,    10,    11,    12,    13,
    2691       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2692       24,    25,    26,    27,     0,     0,    28,    29,    30,   277,
    2693       36,     0,     0,     0,     0,   278,    33,    40,    41,   279,
    2694        0,     0,   280,   281,   282,   283,   284,   285,    43,    44,
    2695        0,   286,   287,     0,     0,     0,     0,     0,     0,     0,
    2696        0,     0,     0,     0,    36,     0,     0,     0,     0,     0,
    2697        0,   203,    41,     0,   288,   -40,   289,     0,     0,     0,
    2698        0,     0,    47,    48,   290,   291,   292,   293,     8,     9,
    2699       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2700       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2701       28,    29,    30,     0,     0,     0,    47,    48,   274,   275,
    2702       33,   276,     0,     0,     0,     0,     0,     0,     0,     0,
    2703        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2704        0,     0,     0,     0,     0,     0,     0,   277,    36,     0,
    2705        0,     0,     0,   278,     0,    40,    41,   279,     0,     0,
    2706      280,   281,   282,   283,   284,   285,    43,    44,     0,   286,
    2707      287,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2708        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2709        0,     0,   288,     0,   289,     0,     0,     0,     0,     0,
    2710       47,    48,   290,   291,   292,   293,     8,     9,    10,    11,
    2711       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2712       22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2713       30,     0,     0,     0,     0,     0,   274,   275,    33,   276,
    2714        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2715        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2716        0,     0,     0,     0,     0,   277,    36,     0,     0,     0,
    2717        0,   278,     0,    40,    41,   279,     0,     0,   280,   281,
    2718      282,   283,   284,   285,    43,    44,     0,   286,   287,     0,
    2719        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2720        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2721      288,     0,   335,     0,     0,     0,     0,     0,    47,    48,
    2722      290,   291,   292,   293,     8,     9,    10,    11,    12,    13,
    2723       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2724       24,    25,    26,    27,     0,     0,    28,    29,    30,     0,
    2725        0,     0,     0,     0,   274,   275,    33,   276,     0,     0,
    2726        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2727        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2728        0,     0,     0,   277,    36,     0,     0,     0,     0,   278,
    2729        0,    40,    41,   279,     0,     0,   280,   281,   282,   283,
    2730      284,   285,    43,    44,     0,   286,   287,     0,     0,     0,
    2731        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2732        0,     0,     0,     0,     0,     0,     0,     0,   288,     0,
    2733      370,     0,     0,     0,     0,     0,    47,    48,   290,   291,
    2734      292,   293,   456,     2,   202,     4,     5,     6,     7,     8,
    2735        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2736       19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    2737        0,    28,    29,    30,     0,     0,     0,     0,     0,     0,
    2738        0,    33,     8,     9,    10,    11,    12,    13,    14,    15,
    2739       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2740       26,    27,     0,     0,    28,    29,    30,     0,     0,    36,
    2741        0,    37,     0,    38,    33,     0,    40,    41,     0,     0,
    2742        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2743       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2744       26,    27,    36,     0,    28,    29,    30,    39,     0,   203,
    2745       41,    42,     0,     0,    33,     0,     0,     0,    -3,     0,
    2746       43,    44,     0,     0,     0,     0,     0,     0,     0,     0,
    2747        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2748        0,     0,    36,     0,     0,     0,    45,   110,   260,    40,
    2749       41,     0,     0,     0,    47,    48,     0,     0,     0,     0,
    2750       43,    44,     0,     0,     0,     0,     0,     8,     9,    10,
    2751       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2752       21,    22,    23,    24,    25,    26,    27,     0,    46,    28,
    2753       29,    30,     0,     0,    47,    48,     0,     0,     0,    33,
    2754      872,     0,     0,     0,     0,     0,     0,     8,     9,    10,
    2755       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2756       21,    22,    23,    24,    25,    26,    27,    36,     0,    28,
    2757       29,    30,     0,     0,    40,    41,     0,     0,     0,    33,
    2758      872,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2759        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2760        0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
    2761        0,     0,     0,   719,    40,    41,     0,  1197,     0,    47,
    2762       48,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2763       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2764       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2765        0,     0,     0,   719,    33,     0,     0,  1287,     0,    47,
    2766       48,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2767       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2768       26,    27,    36,     0,    28,    29,    30,     0,     0,    40,
    2769       41,     0,     0,     0,    33,     8,     9,    10,    11,    12,
    2770       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2771       23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
    2772        0,     0,    36,     0,     0,     0,     0,    33,    46,   203,
    2773       41,     0,     0,     0,    47,    48,     0,     0,     0,     0,
    2774        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2775        0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
    2776        0,     0,    40,    41,     0,     0,     0,     0,   260,     0,
    2777        0,     0,     0,     0,    47,    48,     0,     0,     0,     0,
    2778        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2779       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2780        0,   331,    28,    29,    30,     0,     0,    47,    48,     0,
    2781        0,     0,    33,     8,     9,    10,    11,    12,    13,    14,
    2782       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2783       25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2784       36,     0,     0,     0,     0,    33,     0,    40,    41,     0,
    2785        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2786        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2787        0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
    2788       40,    41,     0,     0,     0,     0,   719,     0,     0,     0,
    2789        0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
    2790        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2791        0,     0,     0,     0,     0,     0,     0,     0,     0,   664,
    2792        0,     0,     0,     0,     0,    47,    48,     2,   202,     4,
    2793        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2794       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2795       25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2796        0,     0,     0,     0,     0,    33,     0,   274,   275,     0,
    2797      276,   988,     0,   989,     0,     0,   990,   991,   992,   993,
    2798      994,   995,   996,   997,     0,     0,  1520,   998,     0,     0,
    2799        0,   999,  1000,    36,    35,    37,   277,    38,     0,     0,
    2800       40,    41,  1001,     0,   171,   172,  1004,     0,     0,   280,
    2801      281,   282,   283,   284,   285,    43,    44,     0,   286,   287,
    2802        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2803        0,     0,     0,     0,     0,     0,     0,     0,  -420,     0,
    2804        0,   288,     0,   370,     0,     0,   168,     0,     0,    47,
    2805       48,   290,   291,   292,   293,     0,     0,   274,   275,  1005,
    2806      276,   988,     0,   989,  -134,     0,   990,   991,   992,   993,
    2807      994,   995,   996,   997,     0,     0,     0,   998,     0,     0,
    2808        0,   999,  1000,     0,    35,     0,   277,     0,     0,     0,
    2809        0,     0,  1001,     0,   171,   172,  1004,     0,     0,   280,
    2810      281,   282,   283,   284,   285,    43,    44,     0,   286,   287,
    2811        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2812        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2813        0,   288,     0,   370,     0,     0,   168,     0,     0,    47,
    2814       48,   290,   291,   292,   293,     0,     0,     0,     0,  1005,
    2815        0,     0,     0,     0,  -134,     2,   202,     4,     5,     6,
    2816        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2817       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2818       27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
    2819        0,     0,     0,    33,     0,   274,   275,     0,   276,   988,
    2820        0,   989,  1389,  1390,   990,   991,   992,   993,   994,   995,
    2821      996,   997,     0,     0,  1520,   998,     0,     0,     0,   999,
    2822     1000,    36,    35,    37,   277,    38,     0,     0,    40,    41,
    2823     1001,     0,   171,   172,  1004,     0,     0,   280,   281,   282,
    2824      283,   284,   285,    43,    44,     0,   286,   287,     0,     0,
    2825        0,     0,  1294,     0,     0,     0,     0,     0,     0,     0,
    2826        0,     0,     0,     0,     0,     0,     0,     0,     0,   288,
    2827        0,   370,     0,     0,   168,     0,     0,    47,    48,   290,
    2828      291,   292,   293,     0,     0,   274,   275,  1005,   276,   988,
    2829        0,   989,  1389,  1390,   990,   991,   992,   993,   994,   995,
    2830      996,   997,     0,     0,     0,   998,     0,     0,     0,   999,
    2831     1000,     0,    35,     0,   277,     0,     0,     0,     0,     0,
    2832     1001,     0,   171,   172,  1004,     0,     0,   280,   281,   282,
    2833      283,   284,   285,    43,    44,     0,   286,   287,     0,     0,
    2834        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2835        0,     0,     0,     0,     0,     0,     0,     0,     0,   288,
    2836        0,   370,     0,     0,   168,     0,     0,    47,    48,   290,
    2837      291,   292,   293,     0,     0,   274,   275,  1005,   276,   988,
    2838        0,   989,     0,     0,   990,   991,   992,   993,   994,   995,
    2839      996,   997,     0,     0,     0,   998,     0,     0,     0,   999,
    2840     1000,     0,    35,     0,   277,     0,     0,     0,     0,     0,
    2841     1001,     0,   171,   172,  1004,     0,     0,   280,   281,   282,
    2842      283,   284,   285,    43,    44,     0,   286,   287,     0,     0,
    2843        0,     0,     0,     0,   274,   275,     0,   276,     0,     0,
    2844        0,     0,     0,     0,     0,     0,     0,     0,     0,   288,
    2845        0,   370,     0,     0,   168,     0,     0,    47,    48,   290,
    2846      291,   292,   293,   277,     0,     0,     0,  1005,     0,   278,
    2847        0,     0,     0,   279,     0,     0,   280,   281,   282,   283,
    2848      284,   285,    43,    44,     0,   286,   287,     0,     0,     0,
    2849        0,     0,     0,   274,   275,     0,   276,     0,     0,     0,
    2850        0,     0,     0,     0,     0,     0,     0,     0,   288,     0,
    2851      370,     0,     0,     0,     0,   731,    47,    48,   290,   291,
    2852      292,   293,   277,     0,     0,     0,     0,     0,   278,     0,
    2853        0,     0,   279,     0,     0,   280,   281,   282,   283,   284,
    2854      285,    43,    44,     0,   286,   287,     0,     0,     0,     0,
    2855        0,     0,   274,   275,     0,   276,     0,     0,     0,     0,
    2856        0,     0,     0,     0,     0,     0,     0,   499,     0,   370,
    2857        0,     0,     0,     0,     0,    47,    48,   290,   291,   292,
    2858      293,   277,     0,     0,     0,     0,     0,   278,     0,     0,
    2859        0,   279,     0,     0,   280,   281,   282,   283,   284,   285,
    2860       43,    44,     0,   286,   287,     0,     0,     0,     0,     0,
    2861        0,   274,   275,     0,   276,     0,     0,     0,     0,     0,
    2862        0,     0,     0,     0,     0,     0,   504,     0,   370,     0,
    2863        0,     0,     0,     0,    47,    48,   290,   291,   292,   293,
    2864      277,     0,     0,     0,     0,     0,   278,     0,     0,     0,
    2865      279,     0,     0,   280,   281,   282,   283,   284,   285,    43,
    2866       44,     0,   286,   287,     0,     0,     0,     0,     0,     0,
    2867      274,   275,     0,   276,     0,     0,     0,     0,     0,     0,
    2868        0,     0,     0,     0,     0,   507,     0,   370,     0,     0,
    2869        0,     0,     0,    47,    48,   290,   291,   292,   293,   277,
    2870        0,     0,     0,     0,     0,   278,     0,     0,     0,   279,
    2871        0,     0,   280,   281,   282,   283,   284,   285,    43,    44,
    2872        0,   286,   287,     0,     0,     0,     0,     0,     0,   274,
    2873      275,     0,   276,     0,     0,     0,     0,     0,     0,     0,
    2874        0,     0,     0,     0,   288,     0,   370,     0,     0,     0,
    2875        0,     0,   683,    48,   290,   291,   292,   293,   277,     0,
    2876        0,     0,     0,     0,   278,     0,     0,     0,   279,     0,
    2877        0,   280,   281,   282,   283,   284,   285,    43,    44,     0,
    2878      286,   287,     0,     0,     0,     0,     0,     0,     0,     0,
    2879        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2880        0,     0,     0,   288,     0,   370,     0,     0,     0,     0,
    2881        0,   336,    48,   290,   291,   292,   293,     8,     9,    10,
    2882       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2883       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2884       29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
    2885      201,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    2886       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2887       21,    22,    23,    24,    25,    26,    27,    36,     0,    28,
    2888       29,    30,   110,     0,    40,    41,     0,     0,     0,    33,
    2889        0,     0,     0,     0,     0,    43,    44,     0,     0,     0,
    2890        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2891        0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
    2892        0,    38,     0,     0,   203,    41,   456,     2,   202,     4,
    2893        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2894       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2895       25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2896        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2897        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2898        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2899        0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
    2900       40,    41,     2,   202,     4,     5,     6,     7,     8,     9,
    2901       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2902       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2903       28,    29,    30,     0,     0,     0,     0,     0,     0,     0,
    2904       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2905        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2906        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
    2907       37,     0,    38,     0,     0,   203,    41,     8,     9,    10,
    2908       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2909       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2910       29,    30,   474,   475,   476,   477,     0,     0,     0,    33,
    2911        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2912        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2913        0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
    2914        0,     0,     0,     0,    40,    41
     2920      36,     0,     0,     0,     0,     0,     0,    40,    41
    29152921};
    29162922
    29172923#define yypact_value_is_default(yystate) \
    2918   ((yystate) == (-1276))
     2924  ((yystate) == (-1310))
    29192925
    29202926#define yytable_value_is_error(yytable_value) \
     
    29232929static const yytype_int16 yycheck[] =
    29242930{
    2925        0,     1,     0,   200,     0,    45,   180,   444,   180,     1,
    2926        0,   180,   843,    45,   180,    45,   590,   180,   506,   632,
    2927      180,   180,   525,   154,  1035,   183,   561,   341,  1035,   116,
    2928     1035,    31,    32,   608,    34,  1304,    34,   485,    34,     0,
    2929       34,   489,   105,   996,    34,    45,   246,   843,   341,   590,
    2930      337,    51,   970,    51,     0,   588,    42,   356,   215,    59,
    2931      588,   360,   165,   166,    64,    42,    64,    67,   878,    67,
    2932       70,    45,    70,    34,   703,   588,  1037,    67,    70,   588,
    2933      409,   255,    54,   255,   969,   970,   255,  1264,    34,   255,
    2934      153,    66,   255,   251,   252,   255,   255,    42,    45,   428,
    2935      592,    42,    67,   588,   596,    42,   106,   436,   588,   109,
    2936      197,    45,   417,   418,  1389,    84,   116,   933,    42,     0,
    2937        1,    42,    42,    30,   124,   617,   114,   999,  1000,   621,
    2938      116,    47,    48,   471,     1,   622,   623,   114,   100,   116,
    2939      180,    42,   114,  1412,   112,   145,    84,   145,   180,   114,
    2940      180,   638,    71,    34,   588,    74,   987,   157,    77,   157,
    2941       79,   101,   137,  1088,   980,     0,    85,   288,   136,   114,
    2942      591,   116,   134,   114,    81,   116,   597,   114,   116,   116,
    2943      180,   181,   487,   181,   471,   478,    67,   127,  1463,    70,
    2944      114,   987,   116,   114,   114,   116,   116,   197,   685,    34,
    2945       57,   506,   181,   114,   120,   205,   180,   205,   693,   409,
    2946       45,   714,  1084,   693,   214,   255,    51,   217,     0,   217,
    2947      794,    11,  1032,   255,   224,   255,  1187,   217,   428,    64,
    2948      114,   766,    67,   180,   234,    70,   436,   237,     0,     1,
    2949       97,   241,   242,   241,   401,   241,   180,   241,   101,   782,
    2950      246,   241,    34,   794,   782,   255,   256,  1434,   256,   693,
    2951      115,   117,   262,   568,  1441,   265,   121,   121,   276,   782,
    2952      333,   119,    34,   782,   127,   114,   590,   256,  1496,   578,
    2953      241,   910,  1200,   137,   622,   623,   899,    47,    48,   208,
    2954        3,   181,   423,   301,   302,   241,   135,   782,  1393,  1517,
    2955      638,  1226,   782,  1228,  1229,    90,  1524,    42,    70,     3,
    2956      145,  1264,    67,   887,  1496,    42,   121,  1494,    47,    48,
    2957      619,   608,   157,   323,   816,   323,   613,   121,   415,   337,
    2958      135,    42,   189,   118,   421,  1253,   217,  1168,    42,   668,
    2959      340,   341,  1524,   137,   122,   180,   181,   685,   782,    51,
    2960      128,   129,   342,   886,    42,   212,   121,   357,   886,   119,
    2961      241,   361,   117,   784,   372,   222,   256,  1252,  1253,    10,
    2962      205,   371,  1168,   948,   115,   242,   623,   886,   499,   114,
    2963      501,   116,   217,   504,     0,   516,   507,   114,   726,   116,
    2964      119,   638,  1345,   453,   135,   395,  1491,   395,   121,   115,
    2965      892,  1496,   157,   114,    75,   116,   241,  1036,   114,  1445,
    2966      114,   113,   116,   409,   137,   415,   395,    88,    89,   135,
    2967      255,   421,  1517,   114,   115,   344,   114,   346,   116,  1524,
    2968      136,   288,   428,  1264,    75,   115,    77,    78,   685,   726,
    2969      436,   224,   121,   931,  1480,   116,  1482,   121,   579,  1078,
    2970     1041,   115,  1043,   901,   237,   135,   456,   121,   137,   241,
    2971      121,   461,   217,   137,   246,     1,   903,  1385,   668,   469,
    2972     1083,   469,   462,   473,   135,   473,   775,   473,   478,   241,
    2973      794,   481,   682,   473,  1058,  1438,   486,  1440,   323,  1500,
    2974      469,   622,   623,  1500,   249,  1500,   115,  1313,   136,   254,
    2975     1385,   794,   121,   205,    75,   395,   341,   638,    79,  1138,
    2976     1139,     0,   473,   432,  1475,    51,   121,    88,    89,   519,
    2977      115,    59,    95,    96,   524,    75,   121,   473,   114,   114,
    2978      633,   116,   137,   541,   542,   543,   957,   958,    88,    89,
    2979     1501,   121,  1495,   114,     4,     5,     6,     7,     8,     9,
    2980      115,   122,   123,   640,   685,   135,   121,   130,   131,   261,
    2981      395,  1377,  1378,   117,   651,  1526,   116,   121,   106,   105,
    2982       75,   109,    77,    78,    79,  1466,   433,   113,   916,   469,
    2983      121,  1472,   117,    88,    89,   114,   121,   342,   588,   456,
    2984      590,    75,   473,    77,    78,    79,   137,   657,   891,   301,
    2985      121,   458,  1493,  1434,    88,    89,   121,  1498,   144,   609,
    2986     1441,   117,    72,   115,    74,   121,   137,   153,   114,   121,
    2987      610,    75,   137,   114,   624,   116,   273,   409,   628,   916,
    2988      115,   969,   137,   579,    88,    89,   121,   637,   473,   639,
    2989      640,   641,   499,   478,   114,   117,   428,   504,   121,   121,
    2990      507,   651,   519,   137,   436,   121,   114,   524,   121,   121,
    2991      114,   948,   116,  1494,   137,   201,   116,   422,   118,   205,
    2992      114,   137,   668,   830,   137,   137,   214,   137,   115,   114,
    2993      680,   115,   121,   673,   121,   135,   682,     0,     1,   471,
    2994       75,   473,   117,   693,   694,    75,   121,   687,   137,    79,
    2995      858,   701,   762,    88,    89,   705,   115,   462,    88,    89,
    2996      115,   473,   772,   773,   115,   133,   121,   115,   136,   703,
    2997      121,    34,   730,   783,   262,   261,   115,    75,   264,    77,
    2998       78,   115,    45,   836,   114,   114,   867,   121,    51,     3,
    2999       88,    89,   122,   123,  1373,   115,    10,    11,    12,    13,
    3000       14,    64,   288,   588,    67,   590,    75,    70,    77,    78,
    3001     1389,   115,   115,   114,   961,   301,   114,  1105,   121,    88,
    3002       89,   119,   639,   115,   641,   120,   760,  1280,    42,   121,
    3003      115,   114,   782,   116,  1076,   115,   121,   777,  1080,   122,
    3004      123,   121,   105,   114,   794,   124,   125,   333,   121,   656,
    3005      113,   337,   340,   116,   117,   115,    70,   114,   665,   116,
    3006       67,   121,   669,   680,   114,   122,   123,   114,  1105,   357,
    3007      356,   137,   115,   361,   360,    93,    94,   582,   121,   115,
    3008      114,   144,   145,  1462,  1463,   121,   836,   119,   969,   970,
    3009      153,   154,   842,   843,   157,   115,   137,   843,   832,   137,
    3010      497,   121,   119,   843,    84,   610,    97,    98,   693,   694,
    3011      615,  1035,   114,  1035,   114,    51,  1035,   180,   181,  1035,
    3012       84,  1028,  1035,   132,   874,  1035,  1035,   877,   123,   982,
    3013      133,   417,   418,    99,   197,    75,   668,    77,    78,    79,
    3014      116,   891,   205,   120,   121,   874,   117,   843,    88,    89,
    3015      682,   114,   115,   116,   217,   117,   966,   967,   444,   115,
    3016      902,   115,   116,  1200,  1252,    61,    62,   917,   673,   115,
    3017      456,   867,   115,   923,   114,   114,   910,   113,   241,   929,
    3018       47,    48,   687,   933,  1089,  1090,   249,    67,   120,   121,
    3019      948,   254,   255,   256,   726,   115,    76,   782,   261,   485,
    3020      115,   487,   936,   489,   548,   549,   550,   551,   144,   794,
    3021      115,   951,   843,   499,   137,   501,  1026,  1027,   504,   671,
    3022      506,   507,   114,   115,   116,   288,   114,   115,   116,   987,
    3023      980,  1068,   544,   545,   874,   546,   547,   117,   301,   117,
    3024      990,   987,   116,   993,   994,   995,   119,   987,   119,   288,
    3025      984,   114,   115,   116,   317,   136,   653,    61,    62,    63,
    3026      323,   121,   869,    10,    11,    12,    13,    14,   136,   205,
    3027      333,   902,   777,  1023,   337,   552,   553,   157,   341,   342,
    3028      119,   114,   568,  1033,   115,  1035,   115,  1037,   135,   874,
    3029      117,   987,   578,   356,   117,    42,   117,   360,   135,  1049,
    3030      917,   135,  1036,   121,  1033,    31,   891,   115,  1037,   115,
    3031      119,   843,   929,   115,   121,   120,   933,  1198,  1068,   120,
    3032      717,   609,   608,    70,  1511,   261,    75,   613,    77,    78,
    3033       79,   843,   395,   619,   120,   114,   624,   217,  1088,    88,
    3034       89,   115,   135,   137,  1078,   115,   121,   115,    75,   637,
    3035       77,    78,   415,   115,   417,   418,   987,   115,   421,   115,
    3036      423,    88,    89,   980,   121,   301,   120,   115,    31,   249,
    3037      115,  1252,  1253,   122,   254,   115,   115,   115,   417,   418,
    3038      115,   444,   115,   115,   916,   671,   115,   114,  1198,   119,
    3039      902,   998,   119,  1033,   115,  1145,   115,  1037,   461,   115,
    3040      136,   337,   115,   115,  1138,  1139,   469,   121,   471,   117,
    3041      473,   697,   117,   115,   115,   478,   114,   135,  1168,   115,
    3042      872,   121,  1168,  1233,   487,   119,   121,   115,  1168,   121,
    3043      121,  1241,  1242,  1243,   115,   114,   499,  1187,   501,   114,
    3044      114,   504,   114,   506,   507,   114,   951,   137,  1033,   135,
    3045     1035,   135,  1037,   516,   121,   987,   120,   135,  1187,   135,
    3046      499,   115,   342,  1205,   115,   504,   115,   135,   507,   117,
    3047      120,  1088,  1168,    75,   133,   987,  1226,   120,  1228,  1229,
    3048       82,   417,   418,    85,   119,    87,    88,    89,   115,   775,
    3049      137,   117,   121,    75,   117,    77,    78,   560,   561,   115,
    3050      115,   115,     3,   115,  1385,   568,    88,    89,   444,    10,
    3051       11,    12,    13,    14,   116,   578,   579,   117,  1264,   582,
    3052      559,   117,   117,   117,  1264,   588,    75,   590,    77,    78,
    3053       79,   117,  1369,  1283,   116,   843,   117,  1168,    50,    88,
    3054       89,    42,   422,  1293,   137,   608,   137,  1187,   137,   137,
    3055      613,   487,   615,   137,   120,   115,   619,   115,   438,   622,
    3056      623,   115,  1304,  1313,  1293,   114,    32,   115,  1264,    70,
    3057      506,   135,   115,  1105,  1205,   638,  1500,   640,  1500,   120,
    3058      120,  1500,   462,   117,  1500,   117,   872,  1500,   651,  1339,
    3059     1500,  1500,  1342,    86,   117,   117,   117,   117,   115,   115,
    3060     1052,  1411,  1187,   117,   114,   114,  1348,  1347,   671,  1226,
    3061      114,  1228,  1229,    63,   119,   901,   902,   903,  1368,  1369,
    3062      115,   115,   685,   686,   687,   114,   137,  1377,  1378,   117,
    3063      693,   694,   568,  1264,   117,   115,  1168,    75,  1475,  1373,
    3064      117,   115,   101,  1393,    82,   101,   114,    85,  1398,    87,
    3065       88,    89,   114,  1293,   115,  1389,  1168,   120,   124,   137,
    3066     1400,   115,   948,   726,   115,    45,  1273,  1417,  1200,   115,
    3067     1412,   135,   608,  1304,   121,   115,   115,   613,  1428,  1076,
    3068      137,   101,   990,  1080,  1081,   137,   101,   115,  1434,   137,
    3069      117,   115,   137,  1205,  1434,  1441,  1313,   115,   120,   115,
    3070      137,  1441,   582,   766,   117,   993,   994,   995,  1293,   117,
    3071     1500,   137,   775,   114,   777,   120,  1347,  1348,  1500,   782,
    3072     1500,   120,   115,   137,   115,  1475,  1476,  1179,  1462,  1463,
    3073      610,   794,  1264,   137,   115,   615,  1486,   115,  1434,  1005,
    3074      554,  1491,   555,   558,   556,  1441,  1496,   557,  1494,   928,
    3075     1500,  1501,  1264,  1501,  1494,  1168,  1463,  1350,  1536,  1081,
    3076     1377,  1378,  1309,  1274,  1441,  1515,  1052,  1517,   234,  1400,
    3077     1023,  1521,  1501,   872,  1524,  1033,  1526,    67,  1526,  1293,
    3078      843,  1412,  1532,  1043,   705,   895,  1536,   923,    75,   634,
    3079       77,    78,  1304,   673,   836,   697,  1205,  1526,  1494,   265,
    3080     1417,    88,    89,  1434,   867,   894,   713,   687,   473,   872,
    3081     1441,   874,    -1,    -1,  1211,    -1,   560,    75,   560,    77,
    3082       78,    79,    -1,   886,   887,    -1,   560,   117,   891,    -1,
    3083       88,    89,   119,    -1,    -1,  1442,  1348,  1444,    -1,   902,
    3084      903,    -1,  1347,     0,     1,    -1,     4,     5,     6,     7,
    3085        8,     9,    -1,   916,    -1,    -1,   114,    -1,   116,  1476,
    3086     1168,  1501,    -1,  1494,   122,   123,    -1,   157,   657,  1486,
    3087       -1,     3,  1479,    -1,  1481,    -1,    -1,    34,    10,    11,
    3088       12,    13,    14,    -1,    -1,   948,  1526,    -1,    -1,    -1,
    3089       -1,    -1,    -1,  1179,    51,  1400,    -1,   777,    -1,    -1,
    3090     1412,    -1,  1434,    -1,    -1,   371,   969,   970,  1305,  1441,
    3091       42,    -1,  1309,    70,    72,  1500,    74,    -1,  1525,  1205,
    3092     1527,    -1,  1434,    -1,   987,    -1,    -1,   217,    75,  1441,
    3093       77,    78,    79,  1540,  1541,    -1,    -1,    -1,    70,    -1,
    3094       -1,    88,    89,    -1,   234,    -1,    -1,    -1,   105,    10,
    3095       11,    12,    13,    14,    10,    11,    12,    13,    14,   249,
    3096       -1,    -1,  1494,    -1,   254,    -1,    -1,   903,    -1,    -1,
    3097     1033,    -1,  1035,   762,  1037,  1283,    -1,    -1,    -1,    -1,
    3098       -1,    42,  1494,   772,   773,    51,    42,    -1,   145,  1052,
    3099       -1,  1443,    -1,  1445,   783,  1058,   153,   154,    64,    -1,
    3100       -1,    67,    -1,    -1,    70,  1068,    -1,     0,    -1,    70,
    3101       -1,    -1,   948,    -1,    70,   481,    -1,    86,  1304,  1416,
    3102      486,    90,    91,    92,   181,    -1,    -1,    -1,  1480,    -1,
    3103     1482,  1339,    -1,    -1,  1342,    -1,    -1,    -1,    -1,    -1,
    3104      197,    34,  1105,   200,   201,   114,    -1,   116,   205,   118,
    3105      119,    -1,   342,   114,    -1,   116,    -1,    -1,   114,    -1,
    3106      116,   122,   123,    -1,    -1,    -1,   122,   123,    -1,   226,
    3107       -1,   951,    -1,   230,   185,   232,    -1,    70,   235,   145,
    3108     1368,   192,    -1,    -1,   241,  1393,    -1,    -1,    75,   246,
    3109     1398,   157,    79,    -1,    -1,    -1,    -1,    -1,    -1,   256,
    3110       -1,    88,    89,    -1,    -1,  1168,    -1,   264,    -1,    -1,
    3111     1149,  1150,    -1,  1152,    -1,   181,  1179,    -1,    -1,  1158,
    3112     1428,    -1,  1161,    -1,  1187,    -1,  1412,   114,    -1,   116,
    3113       -1,    -1,   422,    -1,    -1,   122,   123,  1200,    -1,   205,
    3114       -1,    75,  1205,    77,    78,    79,    -1,   258,    -1,    -1,
    3115       -1,   217,    -1,    -1,    88,    89,    -1,  1443,    -1,  1445,
    3116       -1,   154,   628,    -1,     4,     5,     6,     7,     8,     9,
    3117       -1,    -1,   462,    -1,    -1,    -1,   333,   966,   967,    -1,
    3118      337,    -1,    -1,    -1,    -1,    -1,   343,    -1,    -1,  1252,
    3119     1253,    -1,    -1,    -1,  1480,    35,  1482,    -1,    -1,   356,
    3120       -1,  1264,    -1,   360,    -1,    -1,   317,  1515,    75,    -1,
    3121       77,    78,    79,  1521,    -1,   326,    -1,    -1,   329,    -1,
    3122       -1,    88,    89,    -1,  1532,  1511,    -1,    -1,  1536,    -1,
    3123     1293,    -1,    72,   226,    74,   701,    -1,  1026,  1027,   705,
    3124       -1,  1304,    -1,    -1,    -1,    -1,    -1,   114,   241,   116,
    3125       -1,    -1,   409,   246,    -1,   122,   123,   323,    -1,    -1,
    3126       -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,   135,    -1,
    3127       -1,   428,    -1,    -1,    -1,    -1,   387,    -1,    -1,   436,
    3128      391,    -1,    -1,    -1,  1347,  1348,    -1,    75,    -1,    77,
    3129       78,    79,   582,    -1,    -1,    -1,   453,    -1,    -1,   456,
    3130       88,    89,  1341,    -1,    -1,    75,  1369,    77,    78,    79,
    3131       -1,    -1,    -1,    -1,   471,    -1,   473,    -1,    88,    89,
    3132      610,    -1,  1385,    -1,    -1,   615,   114,    -1,   485,   395,
    3133        0,    -1,   489,    -1,   122,   123,    -1,  1400,    -1,    -1,
    3134       -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    75,  1412,
    3135      343,    -1,   122,   123,    -1,    82,    -1,   468,    85,   516,
    3136       87,    88,    89,    86,    34,    -1,    -1,    90,    91,    92,
    3137      836,  1434,    -1,    -1,    75,    -1,   842,    -1,  1441,    -1,
    3138     1443,    82,  1445,   673,    85,    -1,    87,    88,    89,   116,
    3139       -1,   114,    -1,   116,    -1,   118,   119,   687,    -1,    -1,
    3140       70,    -1,     0,     1,   561,    -1,    -1,    -1,    -1,    -1,
    3141       -1,   877,  1475,    -1,    -1,   116,   409,  1480,    -1,  1482,
    3142       -1,   578,   579,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3143      423,  1494,    -1,   590,    -1,   428,    34,  1500,  1501,    -1,
    3144       -1,    -1,    -1,   436,  1233,    -1,    -1,    -1,  1511,   560,
    3145      561,   608,  1241,  1242,  1243,    -1,   613,   923,    -1,     0,
    3146      453,    -1,   619,  1526,    -1,   622,   623,  1347,    -1,    67,
    3147       -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,   471,    -1,
    3148      473,   638,    -1,    -1,   154,    -1,    -1,   777,    -1,    -1,
    3149       -1,    -1,    -1,    34,    10,    11,    12,    13,    14,    -1,
    3150      657,    -1,    75,    -1,    77,    78,    79,    -1,    -1,    -1,
    3151       -1,   668,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,
    3152     1400,    -1,    -1,   516,    -1,   682,    42,    -1,   685,    70,
    3153       -1,   642,    -1,    -1,    -1,   646,    -1,   694,    -1,    -1,
    3154      697,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
    3155      123,    -1,    -1,    -1,    70,    -1,   154,  1023,    -1,    75,
    3156       -1,    77,    78,    79,    75,    -1,    77,    78,    79,   726,
    3157       -1,   241,    88,    89,    -1,  1511,   246,    88,    89,    -1,
    3158       -1,    -1,    -1,  1049,    -1,    -1,   579,    -1,    -1,    -1,
    3159       -1,    10,    11,    12,    13,    14,    -1,    -1,   114,    -1,
    3160      116,    -1,    -1,   114,    -1,   762,   122,   123,    -1,    -1,
    3161       -1,   122,   123,   154,    -1,   772,   773,    -1,   775,   217,
    3162       -1,   778,  1411,    42,    -1,    -1,   783,    -1,    -1,   622,
    3163      623,    -1,    -1,    -1,    -1,    -1,   793,    -1,    -1,    -1,
    3164       -1,    -1,    -1,   241,    -1,   638,    -1,    -1,    -1,    -1,
    3165       -1,    70,    -1,    -1,    -1,   766,    75,    -1,    77,    78,
    3166       79,   951,    -1,    -1,   657,    -1,    -1,    -1,    -1,    88,
    3167       89,    -1,    -1,   343,    -1,   668,    -1,    -1,    -1,  1145,
    3168       -1,    -1,    -1,    -1,    -1,    -1,   843,    -1,    -1,   682,
    3169       -1,    -1,   685,    -1,    -1,   114,    -1,   116,    -1,    -1,
    3170      241,    -1,    -1,   122,   123,   246,    -1,    -1,    -1,    -1,
    3171      867,    -1,   102,   103,   104,   105,   106,   107,   108,   109,
    3172      110,   111,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3173      887,    -1,    -1,   726,    -1,    -1,    -1,    -1,    -1,   409,
    3174       -1,    -1,    -1,    -1,   901,   902,   136,    -1,    -1,    -1,
    3175       -1,    -1,    -1,   423,    -1,    -1,    -1,    -1,   428,   916,
    3176       -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,   762,
    3177       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   772,
    3178      773,    -1,    -1,   453,    -1,   778,    -1,    -1,    -1,    -1,
    3179      783,   948,    -1,    -1,    10,    11,    12,    13,    14,    -1,
    3180       -1,   471,   343,   473,   961,    -1,    -1,    -1,    -1,   966,
    3181      967,    -1,   969,   970,    -1,    -1,    -1,    -1,    -1,    -1,
    3182       -1,    -1,    -1,    -1,    -1,   423,    42,   938,    -1,    -1,
    3183      987,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3184       -1,    -1,    -1,   954,    -1,    -1,   516,    -1,    -1,    -1,
    3185      843,    -1,     0,    -1,    70,    59,    -1,    -1,    -1,    75,
    3186       -1,    77,    78,    79,    42,    -1,    -1,    -1,   409,  1026,
    3187     1027,    -1,    88,    89,   867,   473,    -1,    -1,    -1,    -1,
    3188     1037,    -1,   423,    -1,    -1,    -1,    34,   428,    -1,    -1,
    3189       -1,    -1,    70,    -1,    -1,   436,    -1,    75,   114,    -1,
    3190       28,    79,   106,    -1,    -1,   109,   122,   123,    -1,   579,
    3191       88,    89,   453,    -1,    -1,    -1,    -1,    -1,   516,    -1,
    3192       -1,    -1,    70,   916,    10,    11,    12,    13,    14,    -1,
    3193      471,  1042,   473,    -1,    -1,    -1,   114,    -1,    -1,    -1,
    3194       -1,    -1,    -1,    -1,   122,   123,    -1,    -1,  1105,    -1,
    3195       -1,    -1,   622,   623,    -1,    83,    42,    -1,    -1,    -1,
    3196       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   638,    -1,
    3197       98,    -1,   100,   966,   967,   516,   969,   970,    -1,    -1,
    3198       -1,   579,    -1,    -1,    70,    -1,    -1,   657,    -1,    75,
    3199       -1,    77,    78,    79,   987,    -1,    -1,    -1,   668,    -1,
    3200       -1,    -1,    88,    89,    -1,    -1,   154,    -1,    -1,    -1,
    3201      214,  1168,   682,    -1,    -1,   685,    -1,    -1,    -1,    -1,
    3202       -1,    -1,    -1,    -1,   622,   623,    -1,    -1,   114,    -1,
    3203      116,    -1,    -1,  1026,  1027,    -1,   122,   123,   579,    -1,
    3204      638,  1198,    -1,  1200,    -1,    -1,    -1,    -1,  1205,    -1,
    3205       -1,    -1,    -1,    -1,    -1,    -1,   726,  1347,   262,   187,
    3206      188,    -1,    -1,    -1,   192,    -1,   194,   195,    -1,    -1,
    3207       -1,  1182,    -1,    -1,    -1,    -1,  1233,    -1,    -1,    -1,
    3208       -1,   622,   623,    -1,  1241,  1242,  1243,   685,    -1,    -1,
    3209       -1,    -1,   762,   241,    -1,  1252,  1253,   638,   246,    -1,
    3210       -1,    -1,   772,   773,    -1,    -1,    -1,  1264,   778,    -1,
    3211     1400,    -1,  1105,   783,    -1,    -1,   657,    -1,    -1,    -1,
    3212       -1,    -1,    -1,    -1,    -1,    -1,    -1,   668,    -1,    -1,
    3213       -1,    -1,    -1,    -1,    -1,    -1,   340,    -1,    -1,    -1,
    3214       -1,   682,    -1,    -1,   685,    -1,    -1,  1304,    -1,    -1,
    3215       -1,    -1,    -1,   357,    -1,    -1,    -1,   361,    -1,    -1,
    3216       10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
    3217       -1,    -1,    -1,   843,    -1,  1168,    -1,    -1,  1289,    -1,
    3218       -1,    -1,    -1,    -1,    -1,   726,    -1,    -1,    -1,    -1,
    3219       -1,  1348,    42,    -1,    -1,   343,    -1,   867,    -1,    -1,
    3220       -1,    -1,    -1,    -1,    -1,  1198,    -1,  1200,    -1,    -1,
     2931       0,     1,     0,   178,     1,   178,    45,   441,     1,   178,
     2932     115,   699,   178,    45,   179,    45,   179,   198,   244,   178,
     2933     275,   178,   699,    58,   837,  1023,   163,   164,   213,   178,
     2934     521,    31,    32,   141,    34,   586,    34,   338,   181,  1023,
     2935    1023,   604,    84,   298,   299,    45,   338,   503,   837,   628,
     2936      51,    51,    34,    51,  1025,   104,   334,   586,    58,   957,
     2937     653,   557,   872,    63,  1284,    63,    66,    30,    66,    69,
     2938     105,    69,    69,   108,    54,  1242,   584,   754,   253,   334,
     2939     253,   584,   920,   584,   253,     0,   584,   253,   353,   254,
     2940     195,   254,   357,     0,   253,   482,   253,  1361,    45,   486,
     2941      45,   584,   151,   584,   253,   105,   249,   250,   108,    45,
     2942      51,   112,    42,   584,   369,   115,   956,   957,    81,    34,
     2943      47,    48,   588,   123,   986,   987,   592,    34,   983,   967,
     2944     286,     0,     0,  1070,   114,    56,    47,    48,    45,   178,
     2945      90,   414,   415,   143,    51,   143,   178,   613,   178,   826,
     2946      84,   617,   112,   618,   619,   155,    63,   155,   114,    66,
     2947       0,   974,    69,   756,  1473,    34,    34,  1387,   118,   634,
     2948     406,   112,  1436,   766,   767,    96,   136,   212,   178,   179,
     2949     406,   179,   116,   475,   777,   974,   116,   587,   286,   425,
     2950     468,    42,   119,   593,    34,   195,  1505,   433,   114,   425,
     2951    1171,   142,   203,   203,  1066,   203,   689,   433,   689,   120,
     2952    1020,   484,   212,   398,   253,   215,   681,   215,   689,   710,
     2953     136,   253,   222,   253,    32,   260,    66,   392,   114,   392,
     2954     503,   178,   232,   178,   450,   235,   143,   788,  1405,   239,
     2955     240,   239,   178,     0,     1,  1412,   923,   240,   155,   135,
     2956     114,   468,   116,   253,   254,   115,   254,   239,   259,   788,
     2957     260,   121,   203,   263,   760,   619,   187,  1204,   776,  1206,
     2958    1207,   178,   179,   776,   101,   776,   100,    34,   776,   222,
     2959     634,   330,   537,   538,   539,   586,  1184,     0,     1,   210,
     2960      42,   564,   235,   776,   971,   776,   203,   298,    66,   220,
     2961     127,   466,   337,   466,  1471,   776,  1365,   412,   215,   574,
     2962     134,    42,    69,   418,   893,   123,   414,   415,   259,   354,
     2963     320,    34,   320,   358,   239,   114,   604,   681,   114,   244,
     2964     881,   609,   239,  1231,    67,   115,  1024,   337,   338,  1152,
     2965     496,   101,   498,    10,   810,   501,   253,  1024,   504,  1416,
     2966     615,    42,   121,    66,   354,   135,    69,   298,   358,   114,
     2967     953,   954,   114,  1152,   116,   286,   135,   127,   368,   137,
     2968     239,   239,   935,    42,   117,   215,   244,   880,   778,   880,
     2969     115,   114,   880,   114,     3,   116,  1453,  1242,  1455,   121,
     2970    1230,  1231,   392,   334,   392,    47,    48,   119,   496,   239,
     2971     135,   618,   619,   501,     3,   137,   504,   115,    75,  1468,
     2972      77,    78,   412,   320,  1473,   121,    42,   634,   418,   121,
     2973     886,  1014,  1015,   114,   232,   116,   121,   135,   664,  1242,
     2974     115,   338,  1120,  1121,   121,   137,   121,   653,   664,  1498,
     2975     135,     0,   720,  1120,  1121,   114,  1505,   116,   135,    42,
     2976    1288,   133,   678,   453,   136,   263,   837,   555,   458,  1357,
     2977     453,    42,   918,   897,   681,  1320,   466,   119,   466,   724,
     2978     470,     0,   470,   414,   415,   475,   117,  1448,   478,  1477,
     2979     121,   114,   239,   483,   114,   392,  1065,   788,   114,   136,
     2980     116,   406,   629,  1477,  1477,  1046,   788,    42,   114,   339,
     2981     441,   114,   215,   720,   769,    42,   114,  1478,   895,   430,
     2982     425,  1349,  1350,    95,    96,   515,    42,  1357,   433,   115,
     2983     520,   114,   515,   116,   114,   121,   239,   520,   116,   114,
     2984     118,   636,    42,   114,   455,   116,  1507,    42,   406,   115,
     2985     756,   649,   647,   484,   944,   945,   115,   135,   130,   131,
     2986     766,   767,   121,   468,  1409,   470,  1411,   425,   121,    84,
     2987     368,   777,   503,   470,   115,   433,   121,   114,   475,   114,
     2988     605,   116,  1439,   121,   137,   496,   115,   114,  1445,   116,
     2989     501,    75,   137,   504,   584,   620,   586,   115,   114,   137,
     2990     116,   115,  1405,   885,    88,    89,   977,   121,   633,  1412,
     2991      75,   470,   470,  1470,   114,   605,   116,    82,  1475,   114,
     2992      85,   116,    87,    88,    89,   121,   115,  1472,  1211,   459,
     2993     620,  1473,   116,   564,   624,   903,  1219,  1220,  1221,   121,
     2994     470,   137,   115,   633,   121,   635,   636,   637,   121,   824,
     2995     114,   116,   635,   121,   637,   137,  1498,   647,    70,   121,
     2996     137,    73,   115,  1505,    76,   121,    78,   935,  1471,   137,
     2997     117,   115,    84,   604,   121,   137,   667,   121,   609,   120,
     2998     478,   137,   115,  1361,   114,   483,   676,   584,   121,   586,
     2999     935,    75,   121,   676,  1361,    79,   903,     0,     1,   689,
     3000     690,   121,   121,   830,    88,    89,   121,   697,   137,   114,
     3001     115,   701,    75,   868,    75,   868,   575,   137,    79,   852,
     3002     117,    67,   137,   470,   121,    88,    89,    88,    89,   974,
     3003     114,    34,     4,     5,     6,     7,     8,     9,   122,   123,
     3004     115,   652,   114,   115,   116,  1423,   121,   953,   954,   956,
     3005     661,   124,   125,   114,   665,   116,  1423,  1435,  1436,   664,
     3006     114,   122,   123,    66,   122,   114,    69,   470,  1435,  1436,
     3007     128,   129,   115,   678,   119,    75,   606,   948,   121,  1260,
     3008    1458,  1152,    82,   119,   115,    85,   776,    87,    88,    89,
     3009     121,  1458,   689,   690,   206,   117,   137,    75,   788,   121,
     3010      72,    79,    74,  1386,   137,   114,   664,   116,  1014,  1015,
     3011      88,    89,   137,   122,   123,   720,   116,   115,   117,  1087,
     3012     678,    75,   121,    77,    78,    79,   624,    84,     4,     5,
     3013       6,     7,     8,     9,    88,    89,   114,    93,    94,   669,
     3014     830,  1016,   969,   114,   122,   123,   836,   837,    75,   152,
     3015      77,    78,  1530,   683,   544,   545,   546,   547,  1023,    35,
     3016    1023,    88,    89,  1530,  1023,   137,  1021,  1023,  1021,  1456,
     3017    1025,   115,  1025,  1460,  1023,   866,  1023,   121,   868,   776,
     3018    1087,   871,   114,   137,  1023,    10,    11,    12,    13,    14,
     3019     123,   788,  1263,   132,   115,   885,    72,   133,    74,   697,
     3020     121,    99,   114,   701,   116,    75,   116,    77,    78,   896,
     3021      75,  1029,   215,  1031,   904,   117,  1184,    42,    88,    89,
     3022     910,   904,   117,    88,    89,    75,   916,    77,    78,   341,
     3023     920,   343,   837,   916,    75,   115,   239,   920,    88,    89,
     3024     115,   771,   115,  1314,   114,    70,  1317,    88,    89,   119,
     3025      51,   116,   863,   115,   115,   980,   981,   982,   115,   121,
     3026     121,  1056,    63,   115,   114,    66,   897,   115,    69,   119,
     3027     137,   868,   114,   114,   116,   116,  1182,   967,   837,   837,
     3028     122,   123,   114,    75,   967,    77,    78,   977,   885,   115,
     3029     980,   981,   982,   117,  1365,   121,    88,    89,   903,  1370,
     3030     115,     3,   861,   116,   935,  1211,   121,   837,    10,    11,
     3031      12,    13,    14,  1219,  1220,  1221,  1171,   429,  1171,   115,
     3032     115,  1011,   119,  1230,   136,   121,   121,   119,  1399,    97,
     3033      98,  1021,   830,  1023,   119,  1025,   120,   121,   836,   121,
     3034      42,   119,   143,  1131,  1132,   136,  1134,  1037,   114,  1040,
     3035     115,   116,  1140,   115,   155,  1143,    61,    62,    75,   115,
     3036      77,    78,    79,   114,   115,   116,  1056,   137,    70,   974,
     3037    1494,    88,    89,   871,   985,   114,   115,   116,   179,    75,
     3038    1070,    77,    78,    79,   114,   115,   116,  1070,   120,   121,
     3039     837,   117,    88,    89,   117,    10,    11,    12,    13,    14,
     3040      47,    48,   203,  1071,  1072,   122,   540,   541,   938,    61,
     3041      62,    63,   910,   117,   215,   974,   974,   420,  1273,    75,
     3042    1273,    77,    78,    79,  1021,  1496,  1023,    42,  1025,   542,
     3043     543,  1502,    88,    89,   837,   135,   135,  1127,   548,   549,
     3044     135,   137,   121,    31,   974,   115,   115,  1518,   119,   896,
     3045     115,  1522,   120,   120,   120,    70,    75,   121,   114,   114,
     3046      75,  1259,  1152,    82,    79,   115,    85,   470,    87,    88,
     3047      89,   115,  1163,    88,    89,   121,   115,   115,   115,   115,
     3048    1386,  1171,  1087,   115,   115,     4,     5,     6,     7,     8,
     3049       9,     0,     1,   896,   121,   115,   120,   116,   115,   114,
     3050      31,   115,  1189,   115,   115,   115,   115,   122,   123,   115,
     3051     513,   115,   115,  1011,  1204,   136,  1206,  1207,   115,   320,
     3052     119,  1204,     3,  1206,  1207,    34,   115,   974,  1316,    10,
     3053      11,    12,    13,    14,   121,  1333,    45,   117,     1,  1037,
     3054     117,   115,    51,   115,   119,   121,   115,  1152,   115,   115,
     3055     121,  1346,   114,    72,    63,    74,   121,    66,   114,   114,
     3056      69,    42,   114,    75,   114,    77,    78,    79,    75,    11,
     3057     133,   974,   575,  1263,  1171,    82,    88,    89,    85,  1184,
     3058      87,    88,    89,  1273,   135,   121,  1384,   135,    51,    70,
     3059     135,   392,   120,  1152,  1152,   104,   137,  1284,  1288,   115,
     3060     135,   115,   114,   112,   116,  1288,   115,   116,   135,   115,
     3061     122,   123,  1477,   115,  1477,   618,   619,   120,  1477,   120,
     3062    1345,  1477,  1152,  1478,  1314,  1478,   119,  1317,  1477,  1127,
     3063    1477,   634,   117,   142,   143,   121,  1323,  1242,  1477,   117,
     3064    1251,   104,   151,   152,   115,   115,   155,   115,   117,   112,
     3065     117,   117,  1507,  1448,  1507,  1345,  1346,   115,  1456,  1349,
     3066    1350,   117,  1460,  1461,   117,   117,  1349,  1350,    50,   178,
     3067     179,   120,   137,   137,   115,  1365,  1273,   137,   681,   142,
     3068    1370,   115,   137,  1242,  1242,   115,   195,   137,   151,    75,
     3069    1488,    77,    78,    79,   203,   115,   120,   120,   117,    86,
     3070    1387,   117,    88,    89,   117,  1152,   215,   117,   117,  1399,
     3071     117,   115,  1242,  1511,   115,   117,   114,  1515,   114,   114,
     3072      63,   114,   119,  1414,     3,  1416,   115,   115,   114,   101,
     3073     239,    10,    11,    12,    13,    14,   199,   117,   247,   117,
     3074     203,  1539,  1189,   252,   253,   254,   115,   117,  1477,  1152,
     3075     259,   115,   101,   114,   114,  1477,   137,  1477,  1448,  1449,
     3076     115,   120,  1453,    42,  1455,   115,  1449,    75,   152,    77,
     3077      78,    79,    45,   115,   115,   121,   115,   286,  1468,   135,
     3078      88,    89,   115,  1473,   137,   137,  1189,  1477,  1478,   298,
     3079    1478,    70,  1322,   137,   101,  1242,   259,   101,   135,   262,
     3080    1405,   137,  1413,   117,  1415,   314,  1496,  1412,  1498,   137,
     3081     115,   320,  1502,   115,   135,  1505,   114,  1507,   121,  1507,
     3082     120,   330,   117,   286,   117,   334,   137,   117,  1518,   338,
     3083     339,   137,  1522,   115,   837,   298,   114,  1284,   115,  1242,
     3084     120,  1452,  1372,  1454,   353,   120,  1405,  1405,   357,   115,
     3085    1540,   135,   115,  1412,  1412,   115,   137,  1540,   861,   115,
     3086     114,  1551,   993,  1494,   115,   137,  1471,   330,  1551,   137,
     3087     137,   334,   550,   553,   551,  1405,  1323,   552,    66,  1152,
     3088    1477,  1284,  1412,   392,  1436,   915,    75,    75,    77,    78,
     3089     353,   554,  1522,   896,   357,  1506,  1325,  1508,  1252,    88,
     3090      89,  1461,  1515,   412,  1412,   414,   415,  1011,   866,   418,
     3091    1021,   420,  1471,  1471,  1031,  1526,  1527,  1273,   701,  1322,
     3092    1323,    75,   889,    77,    78,    79,   910,   116,   116,   830,
     3093     183,  1189,   441,    66,    88,    89,   630,   190,   693,   888,
     3094    1387,  1471,   709,   556,   470,    -1,    -1,    -1,   556,   458,
     3095      -1,   414,   415,   956,   957,   556,    -1,   466,  1405,   468,
     3096      75,   470,    77,    78,    79,  1412,   475,   155,    -1,  1372,
     3097      -1,   974,    -1,    88,    89,   484,    -1,    -1,   441,    -1,
     3098      -1,    -1,    -1,   116,  1387,    -1,    -1,   496,    -1,   498,
     3099     453,    -1,   501,    -1,   503,   504,    -1,    -1,    -1,   114,
     3100      -1,   116,  1405,   256,   513,    -1,    -1,   122,   123,  1412,
     3101      -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,   482,
     3102     135,   484,   155,   486,  1471,    -1,    -1,   215,    -1,    66,
     3103      -1,    -1,    -1,   496,    -1,   498,   420,    -1,   501,    -1,
     3104     503,   504,    -1,    42,    -1,    -1,    -1,   556,   557,    75,
     3105      -1,    77,    78,    79,    -1,   564,    -1,    -1,    -1,   247,
     3106      -1,   314,    88,    89,   252,   574,   575,    -1,  1471,   578,
     3107     323,    70,    -1,   326,    -1,   584,    75,   586,    -1,   116,
     3108      79,    -1,   215,    -1,    -1,    -1,    -1,    -1,   114,    88,
     3109      89,    -1,    -1,    -1,    -1,   604,   122,   123,    -1,   232,
     3110     609,   564,   611,    -1,    -1,    -1,   615,    -1,    -1,   618,
     3111     619,   574,    -1,    -1,   247,   114,    -1,    -1,   155,   252,
     3112      -1,    -1,    -1,   122,   123,   634,    -1,   636,    -1,   513,
     3113      -1,   384,    -1,    -1,    -1,   388,    -1,    -1,   647,    -1,
     3114      -1,   604,    -1,    -1,    -1,    -1,   609,    -1,    -1,  1152,
     3115      -1,   339,   615,    10,    11,    12,    13,    14,   667,    -1,
     3116      -1,    -1,    54,    -1,    56,    -1,    -1,    59,    60,    61,
     3117      -1,    -1,   681,   682,   683,    -1,    -1,    -1,   215,    -1,
     3118     689,   690,    -1,    -1,    76,    42,  1189,    -1,    -1,    -1,
     3119      -1,   575,    -1,    -1,    -1,    87,    88,    -1,    -1,    -1,
     3120      -1,    -1,    -1,    -1,   667,    -1,   339,    -1,    -1,    -1,
     3121     247,   720,   465,    70,    -1,   252,    -1,    10,    11,    12,
     3122      13,    14,    -1,    -1,    -1,    -1,    -1,  1230,  1231,    -1,
     3123     693,   419,    -1,    -1,   618,   619,    -1,    -1,    -1,  1242,
     3124      -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    42,
     3125     634,   760,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,
     3126     769,    -1,   771,    -1,    -1,   122,   123,   776,    -1,    -1,
     3127      75,   459,    77,    78,    79,    -1,    -1,    70,    -1,   788,
     3128      -1,  1284,    -1,    88,    89,    -1,   419,    -1,   180,    -1,
     3129      -1,    -1,    -1,    -1,    -1,    -1,    -1,   681,    -1,    -1,
     3130      -1,    -1,   339,   556,   557,    -1,   769,    -1,    -1,   114,
     3131      -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,  1322,
     3132    1323,   114,    -1,   116,    -1,    -1,   459,    -1,   837,   122,
     3133     123,   102,   103,   104,   105,   106,   107,   108,   109,   110,
     3134     111,   112,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3135      14,    -1,   861,    -1,  1357,    -1,    -1,   866,    -1,   868,
     3136      75,    -1,    77,    78,    79,   136,    -1,    -1,    -1,  1372,
     3137      -1,   880,   881,    88,    89,    -1,   885,    -1,    42,    -1,
     3138      -1,    -1,   419,    -1,  1387,   638,    -1,   896,   897,   642,
     3139     578,    -1,    -1,    -1,   903,    -1,    -1,    -1,    -1,   114,
     3140      -1,   116,  1405,   866,    -1,    -1,    70,   122,   123,  1412,
     3141      -1,    75,    -1,    77,    78,    79,    -1,    -1,   606,    -1,
     3142      -1,    -1,   459,   611,    88,    89,   935,    -1,    -1,    -1,
     3143      -1,    -1,   895,   896,   897,    -1,    -1,    -1,    -1,    -1,
     3144      -1,   333,    -1,   335,    -1,   578,    -1,   956,   957,    -1,
     3145     114,    -1,   116,    -1,   346,   347,    -1,    -1,   122,   123,
     3146      -1,    28,    -1,    -1,    -1,   974,    -1,    -1,  1471,    -1,
     3147      -1,    -1,   935,   606,    -1,    -1,    -1,   861,   611,    -1,
     3148      -1,   669,    -1,    -1,     0,    -1,     7,    -1,    -1,    10,
     3149      11,    12,    13,    14,    -1,   683,    75,    -1,    77,    78,
     3150      79,    -1,    -1,    -1,    -1,    -1,    -1,   760,    -1,    88,
     3151      89,    -1,  1021,    -1,  1023,    82,  1025,    -1,    34,    40,
     3152      41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3153      97,  1040,    99,    -1,    -1,   114,   669,  1046,    -1,    -1,
     3154      -1,   578,    -1,   122,   123,    -1,    -1,  1056,    69,    70,
     3155     683,    -1,    -1,    69,    75,    -1,    -1,   124,    79,    -1,
     3156      -1,    82,    83,    84,    85,    86,    87,    88,    89,   606,
     3157      91,    92,   956,   957,   611,    -1,    -1,  1040,  1087,    -1,
     3158      86,    -1,    -1,   771,    90,    91,    92,    -1,    -1,    -1,
     3159      -1,    -1,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,
     3160      -1,   122,   123,   124,   125,   126,   127,    -1,   114,    -1,
     3161     116,    -1,   118,   119,    -1,    -1,   183,    -1,   185,   186,
     3162      -1,    -1,    -1,   190,    -1,   192,   193,    -1,    -1,    -1,
     3163      -1,    -1,   669,    -1,    -1,    86,   152,    -1,   771,    90,
     3164      91,    92,    -1,  1152,    -1,    -1,   683,    -1,    -1,    -1,
     3165      -1,    -1,    -1,    -1,  1163,    -1,    -1,    -1,    -1,    -1,
     3166      -1,    -1,  1171,   114,    -1,   116,    -1,   118,   119,    -1,
     3167      -1,    -1,   925,    -1,    -1,  1184,    -1,    -1,    -1,    -1,
     3168    1189,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   941,   256,
    32213169      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3222       70,   762,    -1,    -1,    -1,    75,    -1,    -1,  1385,    79,
    3223       -1,   772,   773,    -1,    -1,    -1,    -1,   778,    88,    89,
    3224     1233,    -1,   783,    -1,    -1,   843,   916,    -1,  1241,  1242,
    3225     1243,    -1,    -1,    -1,  1411,  1412,    -1,    -1,    -1,  1252,
    3226     1253,   409,    -1,    -1,   114,    -1,    -1,    -1,    -1,   867,
    3227      398,  1264,   122,   123,    -1,   423,    -1,  1434,    -1,    -1,
    3228      428,    -1,    -1,    -1,  1441,    55,    -1,    57,   436,    -1,
    3229       60,    61,    62,    -1,    -1,    -1,   966,   967,    -1,   969,
    3230      970,    -1,   843,    -1,   902,   453,    -1,    77,    -1,    10,
    3231       11,    12,    13,    14,    -1,    -1,    -1,   987,    88,    89,
    3232       -1,    -1,    -1,   471,    -1,   473,   867,    -1,    -1,    -1,
    3233       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1494,    -1,    -1,
    3234       -1,    42,    -1,    -1,  1501,    -1,    -1,    -1,    -1,    -1,
    3235       -1,    -1,    -1,    -1,    -1,  1348,  1026,  1027,    -1,    -1,
    3236       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   516,    70,
    3237       -1,   969,   970,    -1,    75,   916,    77,    78,    79,    -1,
    3238       -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,   987,
    3239       -1,    -1,  1385,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3240       -1,    -1,    -1,    -1,    -1,   609,    -1,    -1,    -1,    -1,
    3241       -1,    -1,   182,   114,    -1,    -1,    -1,    -1,  1411,    -1,
    3242      624,   122,   123,    -1,    -1,   966,   967,    -1,   969,   970,
    3243       -1,   579,    -1,   637,    -1,  1105,   564,   565,    -1,    -1,
    3244       -1,  1434,    -1,    -1,    -1,    -1,   987,    -1,  1441,    -1,
     3170    1163,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   224,    -1,
    32453171      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3246       -1,    -1,    -1,   591,    -1,    -1,   594,   595,    -1,   597,
    3247       -1,   599,   600,    -1,   622,   623,   604,   605,    -1,    -1,
    3248       -1,    -1,    -1,    -1,    -1,  1026,  1027,    -1,    -1,    -1,
    3249      638,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1168,    -1,
    3250       -1,  1494,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   657,
    3251       -1,    -1,    -1,    -1,   642,    -1,    -1,    -1,   646,    -1,
    3252      668,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1198,    -1,
    3253     1200,    -1,    -1,    -1,   682,    -1,    -1,   685,    -1,    -1,
    3254       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3255       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3256       27,    28,    29,  1233,  1105,    -1,   336,    -1,   338,    -1,
    3257     1168,  1241,  1242,  1243,    -1,    42,    -1,    -1,   726,   349,
    3258      350,    -1,  1252,  1253,    -1,    -1,    -1,    -1,    -1,    -1,
    3259       -1,    -1,    -1,    -1,  1264,    -1,    -1,    -1,    -1,    40,
    3260       41,    -1,    43,    70,    -1,    -1,    -1,  1205,    -1,    -1,
    3261       -1,    -1,    -1,    -1,   762,    -1,    -1,    -1,    -1,    -1,
    3262       -1,    -1,    -1,    -1,   772,   773,    -1,  1168,    69,    -1,
    3263      778,    -1,    -1,    -1,    75,   783,    -1,    -1,    79,   843,
    3264       -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
    3265       91,    92,    -1,    -1,  1252,  1253,    -1,  1198,    -1,  1200,
    3266       -1,    -1,    -1,    -1,    -1,    -1,  1264,    -1,    -1,    -1,
    3267       -1,    -1,    -1,   114,    -1,   116,    -1,    -1,  1348,    -1,
    3268       -1,   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,
    3269       -1,    -1,  1233,    -1,   135,   843,    -1,    -1,    -1,    -1,
    3270     1241,  1242,  1243,    -1,    -1,    -1,  1304,    -1,    -1,    -1,
    3271       -1,  1252,  1253,    -1,    -1,  1385,    -1,    -1,    -1,   867,
    3272       -1,    -1,    -1,  1264,    -1,    -1,    -1,    -1,    -1,    -1,
     3172      -1,  1230,  1231,   239,    -1,    -1,  1189,    -1,   244,    -1,
     3173      -1,    -1,    -1,  1242,   771,    -1,    -1,    -1,    -1,    10,
     3174      11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
     3175     938,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3176      -1,    -1,    -1,    -1,  1273,    -1,    -1,    -1,    -1,    -1,
     3177      -1,    42,    -1,    -1,    -1,  1284,    -1,  1030,   670,    -1,
     3178     672,    -1,    -1,    -1,    -1,    -1,    -1,   679,   680,    -1,
     3179      -1,    -1,   684,    -1,    -1,    -1,    -1,    -1,  1182,    70,
     3180      -1,    -1,    -1,    -1,    75,   938,    77,    78,    79,    -1,
     3181     702,    -1,    -1,  1322,  1323,   707,    -1,    88,    89,    -1,
     3182      -1,  1284,    -1,    -1,   340,    -1,    -1,    -1,   395,    -1,
     3183      -1,    -1,    -1,    -1,   726,    -1,    -1,  1346,    -1,    -1,
     3184      -1,    -1,    -1,   114,    -1,   116,  1230,  1231,  1357,    -1,
     3185      -1,   122,   123,    -1,    -1,    -1,    -1,     0,     1,    -1,
     3186      -1,    -1,    -1,  1372,    -1,    -1,    -1,    -1,    -1,    -1,
     3187      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1387,    -1,
    32733188      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3274       -1,  1411,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1347,
    3275     1348,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3276       -1,    -1,    -1,    -1,  1434,    -1,    -1,    -1,   916,    -1,
    3277       -1,  1441,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3278       -1,    -1,    -1,    -1,    -1,    -1,   990,  1385,    -1,   993,
    3279      994,   995,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3280       -1,    -1,  1400,    -1,    -1,    -1,    -1,  1348,    -1,    -1,
    3281      938,    -1,    -1,    -1,  1412,    -1,    -1,    -1,   966,   967,
    3282       -1,   969,   970,    -1,  1494,    -1,   954,    -1,    -1,   957,
    3283      958,    -1,    -1,    -1,    -1,    -1,  1434,    -1,    -1,   987,
    3284       -1,    -1,    -1,  1441,  1385,    10,    11,    12,    13,    14,
    3285       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3286       25,    26,    27,    28,    29,    30,    -1,    -1,    -1,    -1,
    3287     1411,    -1,    -1,    -1,    -1,    -1,    -1,    42,  1026,  1027,
     3189     406,    34,    -1,    -1,    -1,    -1,  1405,    -1,    -1,    -1,
     3190      -1,   938,    -1,  1412,   420,  1414,    -1,  1416,    51,   425,
     3191      -1,    -1,    -1,  1166,    -1,    -1,    -1,   433,    -1,    -1,
     3192      -1,    -1,    -1,    -1,  1387,    -1,    69,   819,    -1,   821,
     3193     822,   823,    -1,    -1,   450,    -1,    -1,    -1,    -1,  1448,
     3194      -1,    -1,    -1,    -1,  1453,    -1,  1455,    -1,   840,    -1,
     3195      -1,  1414,   468,  1416,   470,    -1,    -1,    -1,    -1,    -1,
     3196      -1,   104,  1471,    -1,   856,    -1,    -1,    -1,  1477,  1478,
     3197      -1,    -1,    -1,  1357,    -1,    -1,    -1,    -1,    -1,    -1,
     3198      -1,    -1,    -1,    -1,    -1,  1494,    -1,   879,    -1,    -1,
     3199    1453,    -1,  1455,   560,   561,    -1,    -1,   513,  1507,    -1,
     3200     143,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   151,   152,
     3201      -1,    -1,    -1,    -1,    -1,    -1,  1269,    -1,    -1,    -1,
     3202     587,    -1,   914,   590,   591,    -1,   593,   919,   595,   596,
     3203      -1,  1494,   924,   600,   601,    -1,   179,   929,   930,    -1,
     3204      -1,    -1,   934,    -1,   936,   937,    -1,    -1,   940,    -1,
     3205      -1,    -1,   195,    -1,    -1,   198,   199,   949,    -1,   575,
     3206     203,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3207      -1,   638,    -1,   965,   966,   642,    -1,    -1,    -1,    -1,
     3208      -1,   224,    -1,    -1,    -1,   228,    -1,   230,    -1,    -1,
     3209     233,    -1,    -1,    -1,    42,    -1,   239,    -1,    -1,    -1,
     3210      -1,   244,   618,   619,    -1,   997,    -1,    -1,  1000,    -1,
     3211      -1,   254,    -1,    -1,    -1,    -1,    -1,    -1,   634,   262,
     3212      -1,    -1,    70,    -1,    -1,    -1,    -1,    75,    -1,    77,
     3213      78,    79,    -1,    -1,  1322,    -1,    -1,   653,    -1,    -1,
     3214      88,    89,    -1,    -1,    -1,    -1,    -1,    -1,   664,    -1,
    32883215      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3289       -1,    -1,    -1,  1434,    -1,    -1,  1494,    -1,    -1,    -1,
    3290     1441,  1029,    -1,    -1,   674,    70,   676,    -1,    -1,    -1,
    3291       -1,    -1,    -1,   683,   684,    -1,    81,    -1,   688,  1047,
    3292     1048,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3293       -1,    -1,    -1,    -1,    -1,    -1,   706,    -1,    -1,    -1,
    3294       -1,   711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3295       -1,    -1,    -1,  1494,    -1,    -1,    -1,  1105,    -1,    -1,
    3296       -1,    -1,   732,    -1,  1168,    -1,    -1,    -1,    -1,    -1,
    3297       -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,
    3298       40,    41,  1110,    43,    -1,    -1,    -1,    -1,    -1,    -1,
    3299       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3300       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
    3301       -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,
    3302     1168,    -1,    82,    83,    84,    85,    86,    87,    88,    89,
    3303       -1,    91,    92,    -1,    -1,    -1,    -1,   113,    -1,    -1,
    3304       -1,   117,  1170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3305     1198,    -1,  1200,    -1,   114,   825,   116,   827,   828,   829,
    3306       -1,  1189,   122,   123,   124,   125,   126,   127,   144,    -1,
    3307       -1,    -1,    -1,    -1,    -1,    -1,   846,    -1,   154,  1283,
    3308       -1,   157,    -1,    -1,    -1,  1233,    -1,    -1,    -1,    -1,
    3309       -1,    -1,   862,  1241,  1242,  1243,    -1,    -1,    -1,    -1,
    3310       -1,    -1,    -1,    -1,  1252,  1253,    -1,    -1,    -1,    -1,
    3311       -1,    -1,    -1,    -1,    -1,   885,  1264,    -1,    -1,    -1,
    3312       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   205,
    3313       -1,    -1,    -1,    -1,    -1,  1339,    -1,    -1,  1342,    -1,
    3314       -1,   217,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3315       -1,    -1,    -1,    -1,    -1,    -1,    -1,   927,    -1,    -1,
    3316       -1,  1289,   932,    -1,  1368,    -1,    -1,   937,    -1,    -1,
    3317       -1,    -1,   942,   943,    -1,    -1,    -1,   947,   254,   949,
    3318      950,    -1,    -1,   953,    -1,   261,    -1,    -1,    -1,  1393,
    3319       -1,    -1,   962,    -1,  1398,    -1,    -1,    -1,    -1,    -1,
    3320     1348,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   978,   979,
    3321       -1,    -1,   288,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3322       -1,    -1,    -1,    -1,  1428,   301,    -1,    -1,    -1,    -1,
    3323       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1385,    -1,  1009,
    3324       -1,    -1,  1012,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3216      -1,  1053,   678,    -1,    -1,   681,   114,  1059,  1060,    -1,
     3217      -1,    -1,    -1,    -1,   122,   123,  1068,    -1,    -1,    -1,
     3218      -1,  1073,    -1,    -1,  1372,    -1,  1078,   330,    -1,  1322,
     3219      -1,   334,    -1,    -1,    -1,    -1,    -1,   340,    -1,  1091,
     3220      -1,    -1,    -1,    -1,   720,    -1,    -1,    -1,    -1,    -1,
     3221     353,    -1,    -1,    -1,   357,  1107,    -1,  1109,  1110,  1111,
     3222    1112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3223      -1,    -1,  1124,    -1,  1126,    -1,    -1,    -1,    -1,  1372,
     3224     756,    -1,    -1,    -1,    10,    11,    12,    13,    14,     0,
     3225     766,   767,    -1,    -1,    -1,    -1,   772,    -1,    -1,    -1,
     3226      -1,   777,    -1,   406,    -1,    -1,  1158,  1159,    -1,    -1,
     3227      -1,    -1,    -1,    -1,    -1,    -1,    42,   420,    -1,    -1,
     3228      -1,    -1,   425,    34,    -1,  1322,    -1,    -1,    -1,    -1,
     3229     433,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3230      -1,    -1,    -1,    -1,    70,    -1,    -1,   450,    -1,    75,
     3231     453,    77,    78,    79,    -1,    -1,    -1,    -1,    69,    -1,
     3232      -1,   837,    88,    89,    -1,   468,    -1,   470,    -1,    -1,
     3233    1222,  1223,    -1,    -1,    -1,  1372,    -1,    -1,    -1,   482,
     3234    1232,    -1,    -1,   486,    -1,   861,    -1,    -1,   114,    -1,
     3235     116,    -1,    -1,    -1,    -1,    -1,   122,   123,   925,    -1,
    33253236      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3326       -1,   337,    -1,  1411,    -1,    -1,   342,    -1,    -1,    -1,
     3237     513,    -1,    -1,    -1,   941,    -1,    -1,   944,   945,    -1,
     3238      -1,    -1,    -1,    -1,    -1,    -1,    -1,   903,    -1,    -1,
    33273239      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3328       -1,    -1,    -1,    -1,    -1,    -1,  1434,  1491,    -1,    -1,
    3329       -1,    -1,  1496,  1441,    -1,  1065,    -1,    -1,    -1,    -1,
    3330       -1,  1071,  1072,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3331       -1,  1515,    -1,  1517,    -1,    -1,  1086,  1521,    -1,    -1,
    3332     1524,  1091,    -1,    -1,    -1,    -1,  1096,    -1,  1532,    -1,
    3333       -1,    -1,  1536,    -1,    -1,    -1,    -1,    -1,    -1,  1109,
    3334       -1,   417,   418,    -1,    -1,    -1,  1494,   423,    -1,    -1,
    3335       -1,    -1,    -1,    -1,    -1,  1125,    -1,  1127,  1128,  1129,
    3336     1130,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   444,    -1,
    3337       -1,    -1,  1142,    -1,  1144,    -1,    -1,    -1,    -1,    -1,
     3240      -1,   152,    -1,    -1,  1296,    -1,  1298,  1299,  1300,    -1,
     3241      58,    -1,    -1,    -1,   557,    -1,    -1,    -1,  1310,    -1,
     3242      -1,    -1,    -1,    -1,    -1,    -1,  1318,    -1,    -1,  1321,
     3243      -1,   574,   575,    -1,    -1,    -1,    -1,   953,   954,    -1,
     3244     956,   957,    -1,   586,    -1,    -1,    -1,    -1,    -1,    -1,
     3245    1017,    -1,    -1,    -1,    -1,    -1,  1348,   105,   974,    -1,
     3246     108,   604,    -1,  1030,    -1,    -1,   609,    -1,  1035,  1036,
     3247      -1,    -1,   615,    -1,    -1,   618,   619,    -1,    -1,    -1,
     3248      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   239,    -1,
     3249      -1,   634,    -1,   244,    -1,    -1,    -1,    -1,  1014,  1015,
     3250    1392,  1393,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3251     653,    -1,    -1,  1405,    -1,    -1,    -1,    -1,    -1,    -1,
     3252    1412,   664,    -1,    -1,    -1,  1092,    -1,    -1,    -1,     0,
     3253      -1,    -1,    -1,    -1,    -1,   678,    -1,  1429,   681,    -1,
     3254      -1,    -1,    -1,    -1,    -1,    -1,    -1,   690,    -1,    -1,
     3255     693,    -1,    -1,    -1,    -1,  1447,    -1,    -1,    -1,  1451,
     3256      -1,    -1,    -1,    34,   212,    -1,    -1,    -1,    -1,    -1,
     3257      -1,  1087,    -1,    -1,    -1,    -1,    -1,   720,    -1,    -1,
     3258      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1154,    -1,   340,
     3259      -1,    -1,  1484,    -1,  1486,    -1,    -1,    -1,    69,    -1,
     3260      -1,    -1,    -1,    -1,    -1,    -1,  1173,    -1,    -1,    -1,
     3261      -1,    -1,   260,   756,    -1,    -1,    -1,    -1,    10,    11,
     3262      12,    13,    14,   766,   767,    -1,   769,    -1,    -1,   772,
     3263      -1,    -1,  1524,  1525,   777,    -1,  1152,    -1,    -1,    -1,
     3264      -1,    -1,    -1,    -1,   787,  1537,  1538,    -1,    -1,    -1,
     3265      42,    -1,    -1,    -1,    -1,   406,    -1,    -1,    -1,    -1,
     3266      -1,    -1,    -1,    -1,    -1,    -1,  1182,    -1,  1184,   420,
     3267      -1,    -1,    -1,    -1,   425,    -1,    -1,    -1,    70,    -1,
     3268      -1,   152,   433,    75,    -1,    77,    78,    79,    28,   337,
     3269      -1,    -1,    -1,    -1,   837,  1211,    88,    89,    -1,   450,
     3270      -1,    -1,  1269,  1219,  1220,  1221,   354,    -1,    -1,    -1,
     3271     358,    -1,    -1,    -1,  1230,  1231,    -1,   468,   861,   470,
     3272      -1,    -1,   114,    -1,    -1,    -1,  1242,    -1,    -1,    -1,
     3273     122,   123,    -1,    -1,    -1,    -1,    -1,    -1,   881,    -1,
     3274      -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3275      -1,    -1,   895,   896,    -1,    -1,    -1,    97,    -1,    99,
     3276     903,    -1,   513,    -1,    -1,    -1,    -1,    -1,   239,    -1,
     3277      -1,    -1,    -1,   244,    -1,    -1,    -1,    -1,    -1,    -1,
    33383278      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3339       -1,    -1,    -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,
    3340       -1,    -1,    -1,    -1,  1174,  1175,    -1,    67,    -1,    -1,
    3341       -1,   487,    -1,    -1,    -1,    -1,    76,    -1,    78,    -1,
    3342       80,    -1,    -1,   499,    -1,   501,    86,    -1,   504,    -1,
    3343      506,   507,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3344      516,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3345       -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,   119,
    3346      120,   121,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3347       -1,    -1,    -1,    -1,  1244,  1245,    -1,    -1,    -1,    -1,
    3348       -1,    -1,    -1,    -1,  1254,    -1,    -1,    -1,    -1,    -1,
    3349       -1,    -1,   568,    -1,    -1,    -1,    -1,   157,    -1,    -1,
    3350       -1,    -1,    -1,   579,    -1,    -1,   582,    -1,    -1,    -1,
    3351       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3352       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3353       28,    29,   608,    -1,    32,    33,    34,   613,    -1,    -1,
    3354       -1,    -1,    -1,    -1,    42,    -1,   622,   623,    -1,    -1,
    3355       -1,  1321,    -1,  1323,  1324,  1325,    -1,   217,    -1,   219,
    3356      220,   221,   638,    -1,    -1,  1335,    -1,    -1,    -1,    -1,
    3357       -1,    -1,    70,  1343,    -1,    -1,  1346,    75,    -1,    77,
    3358       78,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   249,
    3359       88,    89,    -1,    -1,   254,   671,    -1,    -1,    -1,    -1,
    3360       -1,    -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,   685,
    3361       -1,   687,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
    3362       -1,    -1,    -1,    -1,   122,   123,    10,    11,    12,    13,
    3363       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3364       24,    25,    26,    27,    28,    29,    30,    28,    -1,    -1,
    3365      726,  1421,  1422,    -1,    -1,    -1,    -1,    -1,    42,    -1,
    3366       -1,    -1,    -1,   323,  1434,    -1,    -1,    -1,    46,    -1,
    3367       -1,  1441,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3368       -1,  1451,   342,    -1,    -1,    -1,    70,   347,   348,    -1,
    3369       -1,    -1,    -1,    -1,    -1,   355,    -1,    81,    -1,    -1,
    3370       -1,   777,    83,    -1,  1474,    -1,    -1,    -1,  1478,    -1,
    3371       -1,    -1,    -1,    91,    -1,    -1,    -1,    98,    -1,   100,
    3372       -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,
    3373       -1,    -1,    -1,    -1,    -1,   395,    -1,  1507,    -1,  1509,
    3374       -1,    -1,    -1,    -1,   125,    -1,    -1,    -1,    -1,    -1,
    3375       -1,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
    3376      420,    -1,   422,    -1,    -1,    -1,    -1,    -1,  1538,  1539,
    3377       -1,    -1,    -1,    -1,    -1,    -1,  1546,  1547,   438,    -1,
    3378       -1,   441,   442,    -1,    -1,    -1,    -1,    -1,   448,    -1,
    3379      168,   867,    -1,    -1,    -1,    -1,   872,    -1,    -1,    -1,
    3380       -1,    -1,   462,    -1,   185,    -1,   187,   188,    -1,   469,
    3381       -1,   192,   190,   194,   195,    -1,    -1,    -1,    -1,    -1,
    3382       -1,    -1,    -1,    -1,    -1,    -1,   204,   903,    -1,    -1,
    3383       -1,    -1,    -1,    -1,    -1,   213,    -1,    -1,    -1,    -1,
    3384      916,    -1,    -1,    -1,    -1,   223,    -1,    -1,    -1,    -1,
    3385       -1,     7,    -1,    -1,    10,    11,    12,    13,    14,    -1,
    3386       -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,   247,
    3387       -1,    -1,   948,    -1,    -1,    -1,    -1,   258,    -1,    -1,
    3388       -1,    -1,   260,    -1,    40,    41,    42,    43,    -1,    -1,
    3389      268,    -1,   270,   969,   970,    -1,    -1,    -1,    -1,    -1,
     3279      -1,    -1,   935,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3280      -1,    -1,    -1,    -1,    -1,   948,    -1,  1323,    -1,     0,
     3281     953,   954,    -1,   956,   957,    -1,    -1,    -1,    -1,    -1,
     3282      -1,    -1,    -1,    -1,   575,    -1,    -1,    -1,    -1,    -1,
     3283      -1,   974,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3284      -1,  1357,    -1,    34,    -1,   185,   186,    -1,    -1,    -1,
     3285     190,    -1,   192,   193,    -1,    -1,    -1,    -1,    -1,    -1,
     3286      -1,    -1,    -1,    -1,    -1,    -1,    -1,   618,   619,   340,
     3287    1386,  1014,  1015,    -1,    -1,    -1,    -1,    -1,    69,    -1,
     3288      -1,    -1,  1025,   634,    -1,    -1,    -1,    -1,    -1,  1405,
     3289      -1,    -1,    -1,    -1,    -1,    -1,  1412,    -1,    -1,    -1,
     3290      -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3291      -1,    -1,    -1,   664,    -1,    -1,    -1,    -1,    -1,    -1,
     3292      -1,    -1,    -1,    -1,    -1,    -1,    -1,   678,    -1,    -1,
     3293     681,    -1,    -1,    -1,    -1,   406,    -1,    -1,    -1,    -1,
     3294      -1,    -1,    -1,    -1,  1087,    -1,    -1,    -1,    -1,   420,
     3295      -1,    -1,    -1,    -1,   425,  1471,    -1,   605,    -1,    -1,
     3296      -1,   152,   433,    -1,    -1,    -1,    -1,    -1,    -1,   720,
     3297      -1,    -1,   620,    -1,    -1,    -1,    -1,    -1,    -1,   450,
     3298      -1,    -1,    -1,    -1,    -1,   633,    -1,    -1,    -1,    -1,
     3299      -1,    -1,    -1,    -1,    -1,    -1,    -1,   468,    -1,   470,
     3300      -1,    -1,    -1,    -1,    -1,   756,    -1,    -1,    -1,  1152,
     3301      -1,    -1,    -1,    -1,    -1,   766,   767,    -1,    -1,    -1,
     3302      -1,   772,    -1,    -1,    -1,    -1,   777,    -1,    -1,    -1,
     3303      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1182,
     3304      -1,  1184,   513,    -1,    -1,    -1,  1189,    -1,   239,    -1,
     3305      -1,    -1,    -1,   244,    -1,   395,    -1,    -1,     7,    -1,
     3306      -1,    10,    11,    12,    13,    14,    -1,    -1,  1211,    -1,
     3307      -1,    -1,    -1,    -1,    -1,    -1,  1219,  1220,  1221,    -1,
     3308      -1,    -1,    -1,    -1,    -1,    -1,   837,  1230,  1231,    -1,
     3309      -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,  1242,
     3310      -1,    -1,    -1,    -1,   575,    -1,    -1,    -1,    -1,    -1,
     3311     861,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3312      69,    70,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,
     3313      79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
     3314      89,  1284,    91,    92,    -1,    -1,    -1,   618,   619,   340,
     3315      -1,    -1,   903,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3316      -1,    -1,    -1,   634,    -1,   114,    -1,   116,    -1,    -1,
     3317      -1,    -1,    -1,   122,   123,   124,   125,   126,   127,    -1,
     3318    1323,    -1,   653,    -1,    -1,    -1,    -1,    -1,    -1,   837,
     3319      -1,    -1,    -1,   664,    -1,    -1,    -1,    -1,    -1,    -1,
     3320      -1,    -1,   953,   954,    -1,   956,   957,   678,    -1,    -1,
     3321     681,    -1,    -1,    -1,  1357,   406,    -1,    -1,    -1,    -1,
     3322     560,   561,    -1,   974,    -1,    -1,    -1,    -1,    -1,   420,
     3323      -1,    -1,    -1,    -1,   425,    -1,    -1,    -1,    -1,    -1,
     3324      -1,    -1,   433,  1386,  1387,    -1,    -1,   587,    -1,   720,
     3325     590,   591,    -1,   593,    -1,   595,   596,    -1,    -1,   450,
     3326     600,   601,  1405,  1014,  1015,    40,    41,    -1,    43,  1412,
     3327      -1,    -1,    -1,    -1,    -1,    -1,    -1,   468,    -1,   470,
     3328      -1,    -1,    -1,    -1,    -1,   756,    -1,    -1,    -1,    -1,
     3329      -1,    -1,    -1,    -1,    69,   766,   767,    -1,   638,    -1,
     3330      75,   772,   642,    -1,    79,    -1,   777,    82,    83,    84,
     3331      85,    86,    87,    88,    89,    -1,    91,    92,    -1,    -1,
     3332      -1,    -1,   513,    -1,    -1,    -1,    -1,    -1,  1471,   977,
     3333      -1,    -1,   980,   981,   982,  1478,  1087,    -1,    -1,   114,
     3334      -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
     3335     125,   126,   127,    -1,    -1,    51,    -1,    -1,    -1,    -1,
     3336     135,    -1,    -1,    -1,    -1,    -1,   837,    -1,    -1,    -1,
     3337      66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3338      -1,    -1,    -1,    -1,   575,    -1,    -1,    -1,    -1,    -1,
     3339     861,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3340      -1,  1152,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3341      -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
     3342     116,    -1,    -1,    -1,    -1,    -1,    -1,   618,   619,    -1,
     3343      -1,  1182,   903,  1184,    -1,    -1,    -1,    -1,    -1,    -1,
     3344      -1,    -1,    -1,   634,    -1,    -1,   142,    -1,    -1,    -1,
     3345      -1,    -1,    -1,    -1,    -1,    -1,   152,    -1,    -1,   155,
     3346    1211,    -1,   653,    -1,    -1,    -1,    -1,    -1,  1219,  1220,
     3347    1221,    -1,    -1,   664,    -1,    -1,    -1,    -1,    -1,  1230,
     3348    1231,    -1,   953,   954,    -1,   956,   957,   678,    -1,    -1,
     3349     681,  1242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3350      -1,    -1,    -1,   974,  1152,    -1,    -1,   203,    -1,    -1,
     3351      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   215,
     3352      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   720,
    33903353      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3391       -1,   289,    -1,    69,    70,    -1,    -1,    -1,    -1,    75,
    3392       -1,    -1,   582,    79,    -1,    -1,    82,    83,    84,    85,
    3393       86,    87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,
     3354      -1,    -1,    -1,  1014,  1015,    -1,    -1,    -1,    -1,    -1,
     3355      -1,    -1,    -1,    -1,    -1,    -1,   252,    -1,    -1,    -1,
     3356      -1,    -1,    -1,   259,    -1,   756,    -1,    -1,    -1,    -1,
     3357      -1,    -1,  1323,    -1,    -1,   766,   767,    -1,    -1,    -1,
     3358      -1,   772,    -1,    -1,    -1,   925,   777,    -1,    -1,    -1,
     3359     286,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3360      -1,   941,   298,    -1,   944,   945,  1357,    -1,    -1,    -1,
     3361      -1,    -1,    -1,    -1,    -1,  1263,  1087,    -1,    -1,    -1,
    33943362      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3395      610,    -1,    -1,   331,    -1,   615,    -1,   335,   114,    -1,
    3396      116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
    3397      126,   127,    -1,    -1,    -1,    -1,  1052,    -1,    -1,    -1,
    3398       -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,    -1,   367,
    3399      368,    -1,   370,    -1,    -1,    -1,    -1,    -1,    -1,   377,
    3400      378,    -1,   380,   381,    -1,   383,    -1,   385,    -1,    -1,
    3401       -1,    -1,    -1,   673,    -1,    -1,    -1,   398,    -1,    -1,
    3402       -1,    -1,    -1,    -1,   402,    -1,    -1,   687,    -1,  1105,
    3403       -1,    -1,   410,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3363      -1,    -1,    -1,    -1,    -1,  1386,    -1,    -1,   334,    -1,
     3364      -1,    -1,    -1,   339,    -1,    -1,   837,    -1,    -1,    -1,
     3365      -1,    -1,    -1,    -1,  1405,    -1,    -1,    -1,    -1,    -1,
     3366      -1,  1412,    -1,    -1,    -1,    -1,  1314,    -1,    -1,  1317,
     3367     861,    -1,    -1,    -1,    -1,    -1,    -1,  1017,    -1,    -1,
     3368      -1,  1152,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3369      -1,    -1,    -1,    -1,    -1,  1035,  1036,  1345,    -1,    -1,
    34043370      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3405       -1,    -1,    -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,
     3371      -1,  1182,   903,  1184,    -1,    -1,    -1,  1365,   414,   415,
     3372    1471,    -1,  1370,    -1,   420,    -1,    -1,    -1,    -1,    -1,
    34063373      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3407      153,   154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3408       -1,   459,    -1,    -1,    -1,    -1,    -1,   465,    -1,    -1,
    3409       -1,    -1,   470,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3410       -1,    -1,   185,  1179,    -1,    -1,   766,    -1,    -1,   192,
    3411       -1,    -1,    -1,    -1,    -1,    -1,    -1,   777,    -1,    40,
    3412       41,    -1,    43,    -1,  1200,    -1,    -1,    -1,    -1,    -1,
    3413       -1,    -1,   510,    -1,   794,    -1,    -1,    -1,    -1,    -1,
    3414       -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,    69,    -1,
    3415       -1,    -1,    -1,    -1,    75,    -1,    77,    78,    79,    -1,
    3416       -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
    3417       91,    92,    -1,    -1,    -1,   258,  1252,  1253,    -1,    -1,
    3418       -1,    -1,   560,   564,   565,    -1,    -1,    -1,    -1,    -1,
    3419       -1,   569,    -1,   114,   572,   116,    -1,   118,   119,    -1,
    3420       -1,   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,
    3421      591,   589,    -1,   594,   595,    -1,   597,    -1,   599,   600,
    3422       -1,    -1,    -1,   604,   605,    -1,    -1,    -1,    -1,    -1,
    3423       -1,   891,    -1,    -1,   317,    -1,    -1,    -1,    -1,    -1,
    3424       -1,    -1,    -1,   326,   327,    -1,   329,   330,    -1,   627,
    3425       -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,   341,    -1,
    3426       -1,   642,    -1,    -1,    -1,   646,    -1,    -1,    -1,    -1,
    3427       -1,  1347,    -1,    -1,    -1,    -1,    -1,   360,    -1,    -1,
    3428       -1,    -1,    -1,    -1,    -1,    -1,   664,    -1,    -1,    -1,
    3429       -1,   951,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3430       -1,    -1,   962,    -1,   387,    -1,    -1,    -1,   391,  1385,
    3431       -1,    -1,    -1,   691,    -1,    -1,    -1,    -1,    -1,    -1,
    3432       -1,    -1,    -1,    -1,  1400,    -1,    -1,    -1,    -1,   707,
    3433      708,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3434      423,   719,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3435       -1,    -1,    -1,    -1,    -1,   733,    -1,    -1,    -1,    -1,
    3436      738,    -1,    -1,    -1,    -1,    -1,    -1,  1443,    -1,  1445,
     3374    1211,    -1,    -1,    -1,    -1,   441,    -1,    -1,  1219,  1220,
     3375    1221,  1399,  1092,    -1,    -1,    -1,    -1,    -1,    -1,  1230,
     3376    1231,    -1,   953,   954,    -1,   956,   957,    -1,    -1,    -1,
     3377      -1,  1242,   468,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3378      -1,    -1,    -1,   974,    66,    -1,    -1,    -1,   484,    -1,
     3379      -1,    -1,    -1,    75,    -1,    77,    -1,    79,    -1,    -1,
     3380     496,    -1,   498,    85,    -1,   501,    -1,   503,   504,    -1,
     3381      -1,    -1,    -1,    -1,  1154,    -1,    -1,   513,    -1,    -1,
     3382    1468,    -1,    -1,  1014,  1015,  1473,    -1,    -1,    -1,    -1,
     3383      -1,    -1,    -1,  1173,   116,    -1,   118,   119,   120,    -1,
     3384      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1496,    -1,
     3385    1498,    -1,  1323,    -1,  1502,    -1,    -1,  1505,    -1,    -1,
     3386      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   564,    -1,
     3387    1518,    -1,    -1,   155,  1522,    -1,    -1,    -1,    -1,   575,
     3388      -1,    -1,   578,    -1,    -1,    -1,  1357,    -1,    -1,    -1,
     3389      -1,    -1,    -1,    -1,    -1,    -1,  1087,    -1,    -1,    -1,
     3390      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   604,    -1,
     3391      -1,    -1,    -1,   609,    -1,  1386,    -1,    -1,    -1,    -1,
     3392      -1,    -1,   618,   619,    -1,    -1,    -1,    -1,    -1,  1269,
     3393      -1,    -1,    -1,   215,  1405,   217,   218,   219,   634,    -1,
     3394      -1,  1412,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34373395      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3438       -1,    -1,    -1,    -1,    -1,   468,    -1,    -1,   471,    -1,
    3439       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1058,    -1,
    3440       -1,    -1,    -1,    -1,  1480,    -1,  1482,    -1,    -1,    -1,
     3396      -1,  1152,    -1,    -1,    -1,   247,    -1,    -1,    -1,    -1,
     3397     252,   667,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3398      -1,    -1,    -1,    -1,    -1,   681,    -1,   683,    -1,    -1,
     3399      -1,  1182,    -1,  1184,    -1,    -1,    -1,    -1,    -1,    -1,
     3400    1471,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34413401      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3442      798,    -1,    -1,    -1,    -1,    -1,    -1,   805,    -1,    -1,
    3443       -1,    -1,    -1,   516,    -1,  1511,    -1,    -1,    -1,    -1,
    3444      818,    -1,   820,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3445       -1,    -1,    -1,    -1,    -1,   833,    -1,    -1,    -1,    -1,
    3446       -1,   839,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3447       -1,    -1,   850,    -1,    -1,    -1,   854,   560,   561,   144,
    3448       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
    3449       -1,    -1,    -1,    -1,    -1,   578,   579,    -1,    -1,    -1,
    3450      165,   166,    -1,    -1,    -1,   588,    -1,   590,   591,    -1,
    3451       -1,    -1,    -1,    -1,   597,    -1,    -1,    -1,    -1,    -1,
    3452       -1,    -1,    -1,    -1,   607,   608,    -1,  1187,    -1,    -1,
    3453      613,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   622,
    3454      623,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3455       -1,    -1,    -1,    -1,    -1,   638,    -1,   938,    -1,   642,
    3456      643,    -1,    -1,   646,   647,    -1,    -1,    -1,   946,    -1,
    3457       -1,    -1,   655,   954,    -1,    -1,   957,   958,    -1,    -1,
    3458       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   253,    -1,
     3402    1211,    -1,    -1,    -1,   720,    -1,    -1,    -1,  1219,  1220,
     3403    1221,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   320,  1230,
     3404    1231,    -1,    40,    41,    -1,    43,    -1,    -1,    -1,    -1,
     3405      -1,  1242,    -1,    -1,    46,    -1,    -1,   339,    -1,    -1,
     3406      -1,    -1,   344,   345,    -1,    -1,    -1,    -1,    -1,    -1,
     3407     352,    69,    -1,    -1,    -1,   771,    -1,    75,    -1,    77,
     3408      78,    79,    -1,    -1,    82,    83,    84,    85,    86,    87,
     3409      88,    89,    -1,    91,    92,    -1,    -1,    -1,    90,    -1,
     3410      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
     3411     392,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
     3412     118,   119,    -1,    -1,   122,   123,   124,   125,   126,   127,
     3413     412,    -1,  1323,    -1,    -1,   417,    -1,   419,    -1,    -1,
    34593414      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3460       -1,    -1,   685,   686,    10,    11,    12,    13,    14,    15,
     3415      -1,    -1,    -1,   435,    -1,    -1,   438,   439,    -1,    -1,
     3416      -1,    -1,    -1,   445,    -1,   861,  1357,    -1,    -1,    -1,
     3417     866,    -1,    -1,    -1,   166,    -1,    -1,   459,    -1,    -1,
     3418      -1,    -1,    -1,    -1,   466,    -1,    -1,    -1,    -1,    -1,
     3419      -1,    -1,    -1,    -1,    -1,  1386,   188,    -1,    -1,    -1,
     3420      -1,   897,    -1,    -1,    -1,    -1,    -1,   903,    -1,    -1,
     3421     202,    -1,    -1,    -1,  1405,    -1,    -1,    -1,    -1,   211,
     3422      -1,  1412,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   221,
     3423      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   935,
     3424      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   240,    -1,
     3425      -1,    -1,    -1,   245,    -1,    -1,    -1,    -1,    -1,    -1,
     3426     956,   957,    -1,    -1,    -1,    -1,   258,    -1,    -1,    -1,
     3427      -1,    -1,    -1,    -1,   266,    -1,   268,    -1,    -1,    -1,
     3428    1471,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3429      -1,    -1,    -1,    -1,    -1,   287,   578,    -1,    10,    11,
     3430      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3431      22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
     3432      32,    33,    34,    -1,   606,    -1,    -1,    -1,    -1,   611,
     3433      42,    -1,    -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,
     3434     332,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,    -1,
     3435      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
     3436      -1,    -1,    -1,    75,    -1,    77,    78,    79,   360,    -1,
     3437      -1,    -1,   364,   365,    -1,   367,    88,    89,    -1,    -1,
     3438      -1,    -1,   374,   375,    -1,   377,   378,   669,   380,    -1,
     3439     382,  1087,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,
     3440      -1,   683,   114,    -1,   116,    -1,    -1,   399,    -1,   152,
     3441     122,   123,    -1,    -1,    -1,   407,    -1,    -1,    -1,    -1,
     3442     163,   164,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3443      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   431,
     3444      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3445      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3446      30,    -1,    -1,    -1,   456,    -1,    -1,  1163,    -1,    -1,
     3447     462,    -1,    42,    -1,    -1,   467,    -1,    -1,   760,    -1,
     3448      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1184,   771,
     3449      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3450      70,    40,    41,    -1,    43,    -1,   788,    -1,   251,    -1,
     3451      -1,    81,    -1,    -1,    -1,   507,    -1,    -1,    -1,    -1,
     3452      -1,    -1,    -1,    -1,    -1,    -1,    -1,   519,    -1,    -1,
     3453      69,    -1,    -1,    -1,  1230,  1231,    75,    -1,    -1,    -1,
     3454      79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
     3455      89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
     3456      -1,    -1,    -1,    -1,   556,    -1,    -1,    -1,    -1,    -1,
     3457      -1,    -1,    -1,   565,    -1,   114,   568,   116,    -1,    -1,
     3458     119,    -1,    -1,   122,   123,   124,   125,   126,   127,    -1,
     3459      -1,    -1,    -1,   585,    -1,    -1,    -1,    -1,    -1,    -1,
     3460      -1,    -1,    -1,   885,    10,    11,    12,    13,    14,    15,
    34613461      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3462       26,    27,    28,    29,    -1,    -1,    32,    33,    34,    -1,
    3463       -1,    -1,    -1,    -1,  1012,    -1,    42,    43,    -1,    -1,
    3464       -1,    -1,    -1,   726,    -1,    -1,    -1,    -1,  1029,    -1,
     3462      26,    27,    28,    29,    30,   368,  1322,    -1,    -1,    -1,
     3463      -1,   623,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,
     3464     151,   152,    -1,    -1,    -1,    -1,    -1,    -1,   273,    -1,
     3465     275,   276,    -1,    -1,    -1,    -1,   938,    -1,    -1,   284,
     3466     285,  1357,    -1,    -1,    70,    -1,    -1,   949,   660,    -1,
     3467      -1,    -1,   183,   298,   299,    81,  1372,    -1,    -1,   190,
    34653468      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3466       -1,  1042,    -1,    -1,    70,    -1,  1047,  1048,    -1,    -1,
    3467       -1,    77,    78,    -1,    -1,    -1,  1054,    -1,    -1,    -1,
    3468       -1,  1059,    -1,   766,    -1,    -1,    -1,  1347,    -1,    -1,
    3469       -1,  1069,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   782,
    3470       -1,   784,    -1,    -1,    -1,    -1,   371,    -1,    -1,    -1,
    3471      116,   794,    -1,    -1,   120,    -1,   122,   123,    -1,    -1,
    3472       -1,  1099,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1110,
    3473       -1,    -1,    -1,    -1,  1112,    -1,    -1,    -1,  1116,    -1,
    3474     1400,  1119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3475       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1135,  1136,    -1,
     3469      -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,   441,    -1,
     3470      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,
     3471      -1,   703,   704,    -1,    -1,    -1,    -1,   460,  1414,    -1,
     3472    1416,   713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3473      -1,    -1,    -1,    -1,    -1,   727,    -1,    -1,    -1,    -1,
     3474     732,    -1,    -1,    -1,   369,   256,    -1,    -1,    -1,    -1,
     3475      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1453,    -1,  1455,
     3476     503,    -1,    -1,    -1,  1046,    -1,    -1,    -1,    -1,    -1,
     3477     513,    -1,    -1,    -1,    -1,   518,    -1,    -1,   521,    -1,
    34763478      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3477       -1,    -1,    -1,    -1,    -1,  1153,    -1,    -1,    -1,   444,
    3478       -1,    -1,    -1,    -1,   867,    -1,    -1,    -1,    -1,  1170,
    3479       -1,   874,    -1,    -1,    -1,    -1,    -1,    -1,   463,    -1,
    3480       -1,    -1,    -1,   886,   887,    -1,    -1,    -1,  1189,    -1,
     3479      -1,   534,    -1,    -1,    -1,    -1,    -1,    -1,  1494,    -1,
     3480     792,    -1,    -1,   314,    -1,    -1,    -1,   799,    -1,    -1,
     3481      -1,    -1,   323,   324,    -1,   326,   327,    -1,    -1,    -1,
     3482     812,   564,   814,   334,    -1,    -1,    -1,   338,   571,    -1,
     3483      -1,    -1,   575,    -1,    -1,   827,    -1,    -1,    -1,    -1,
     3484      -1,   833,    -1,    -1,    -1,    -1,   357,    -1,    -1,    -1,
     3485      -1,    -1,   844,    -1,    -1,    -1,   848,    -1,    -1,    -1,
    34813486      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3487      -1,    -1,    -1,   384,    -1,    -1,    -1,   388,   621,    -1,
     3488      -1,    -1,    -1,    -1,    -1,    -1,   629,    -1,    -1,  1171,
    34823489      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3483       -1,    -1,    -1,   916,    -1,    -1,    -1,    -1,    -1,    -1,
    3484       -1,   506,    -1,    -1,  1222,    -1,    -1,    -1,    -1,    -1,
    3485       -1,   516,    -1,    -1,    -1,   938,   939,   522,    -1,    -1,
    3486      525,    -1,    -1,    -1,    -1,   948,  1526,   274,    -1,   276,
    3487      277,   954,   955,   538,   957,   958,   959,    -1,    -1,   286,
    3488      287,    -1,    -1,    -1,    -1,    -1,   969,   970,    -1,    -1,
    3489       -1,    -1,    -1,    -1,   301,   302,    -1,    -1,    -1,    -1,
    3490       -1,    -1,    -1,   568,    -1,    -1,    -1,    -1,  1289,    -1,
    3491      575,    -1,    -1,    -1,   579,    -1,    -1,    -1,    -1,    -1,
    3492       -1,  1299,    -1,  1301,    -1,    -1,    -1,    -1,    -1,    -1,
    3493      337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1316,    -1,
    3494     1318,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3495     1033,    -1,  1035,    -1,  1037,  1333,    -1,    -1,    -1,  1042,
    3496      625,    -1,    -1,    -1,    -1,   372,    -1,    -1,   633,    -1,
    3497       -1,    -1,    -1,  1351,  1352,  1058,    -1,    -1,    -1,    -1,
    3498       -1,    -1,    -1,    -1,  1362,    -1,    -1,    -1,    -1,  1367,
    3499       -1,    -1,  1370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3500       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,
    3501       -1,    43,    -1,  1391,    -1,    -1,    -1,    -1,    -1,    -1,
    3502       -1,    -1,  1105,  1401,    -1,    -1,  1404,    -1,  1406,  1407,
    3503     1408,    -1,    -1,   698,    -1,    -1,    -1,    69,    -1,    -1,
    3504       -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    -1,   714,
    3505       82,    83,    84,    85,    86,    87,    88,    89,    -1,    91,
    3506       92,   726,    -1,   728,    -1,    -1,   731,    -1,    -1,  1447,
    3507       -1,  1449,   737,    -1,  1452,    -1,    -1,    -1,    -1,    -1,
    3508       -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,  1467,
    3509      122,   123,   124,   125,   126,   127,    -1,    -1,    -1,  1182,
    3510       -1,    -1,    -1,    -1,  1187,    -1,    -1,    -1,    -1,    -1,
    3511       -1,    -1,   777,   778,    -1,    -1,    -1,  1200,    -1,    -1,
    3512       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   793,    -1,
    3513       -1,    -1,    -1,    -1,   541,   542,   543,   544,   545,   546,
    3514      547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
    3515      557,   558,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3516       -1,    -1,    -1,    -1,    -1,    -1,    -1,   832,    -1,  1252,
    3517     1253,   836,    -1,    -1,     3,     4,     5,     6,     7,     8,
    3518        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3519       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3520       29,    -1,   867,    32,    33,    34,  1289,  1290,    -1,    -1,
    3521     1293,    -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,
     3490      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   420,
     3491      -1,    -1,   537,   538,   539,   540,   541,   542,   543,   544,
     3492     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
    35223493      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3523       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   903,    -1,
    3524       -1,    70,    -1,    72,    -1,    74,    75,    -1,    77,    78,
    3525       79,   916,    -1,    -1,    -1,    -1,    -1,    -1,   923,    88,
    3526       89,    -1,    -1,   928,    -1,     7,   931,    -1,    10,    11,
    3527       12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3528       -1,    -1,    -1,    -1,    -1,   114,   951,   116,    -1,    -1,
    3529       -1,    -1,    -1,   122,   123,    -1,   703,   962,    40,    41,
    3530       42,    43,  1385,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3531       -1,    -1,    -1,    -1,    -1,    -1,    -1,   982,    -1,   984,
    3532       -1,    -1,    -1,   730,    -1,    -1,    -1,    69,    70,    -1,
    3533       -1,    -1,    -1,    75,   999,  1000,    -1,    79,    -1,    -1,
    3534       82,    83,    84,    85,    86,    87,    88,    89,    -1,    91,
    3535       92,    -1,    -1,   760,    -1,    -1,    -1,    -1,    -1,    -1,
    3536     1025,    -1,    40,    41,    -1,    43,    -1,    -1,    -1,    -1,
    3537       -1,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,
    3538      122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
    3539       -1,    69,  1475,    -1,    -1,    -1,    -1,    75,    -1,    -1,
    3540       -1,    79,    -1,    -1,    82,    83,    84,    85,    86,    87,
    3541       88,    89,    -1,    91,    92,    -1,    -1,  1500,  1501,  1084,
     3494      -1,   933,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3495      -1,   694,    -1,    -1,   465,    -1,    -1,   468,    -1,    -1,
     3496      -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,    -1,    -1,
     3497      -1,    -1,    -1,    -1,    -1,    40,    41,   720,    43,   722,
     3498      -1,    -1,   725,    -1,    -1,    -1,    -1,    -1,   731,    -1,
    35423499      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3543       -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
    3544     1105,   119,    -1,  1526,   122,   123,   124,   125,   126,   127,
    3545       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1123,  1124,
     3500      -1,    -1,   513,    -1,    69,    -1,    -1,    -1,  1000,    -1,
     3501      75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    84,
     3502      85,    86,    87,    88,    89,    -1,    91,    92,   771,   772,
     3503      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3504    1322,    -1,    -1,    -1,   787,   556,   557,    -1,    -1,   114,
     3505    1042,   116,    -1,    -1,    -1,  1047,   121,   122,   123,   124,
     3506     125,   126,   127,   574,   575,  1057,    -1,    -1,    -1,    -1,
     3507      -1,    -1,    -1,   584,   699,   586,   587,    -1,    -1,    -1,
     3508      -1,    -1,   593,   826,    -1,    -1,    -1,   830,    -1,  1081,
     3509    1372,    -1,   603,   604,    -1,    -1,    -1,    -1,   609,   724,
     3510      -1,    -1,  1094,    -1,    -1,    -1,  1098,   618,   619,  1101,
     3511      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   861,    -1,
     3512      -1,    -1,    -1,   634,    -1,  1117,  1118,   638,   639,   754,
     3513      -1,   642,   643,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3514     651,    -1,    -1,  1135,    -1,    -1,    -1,    -1,    -1,    -1,
     3515      -1,    -1,    -1,    -1,   897,    -1,    -1,    -1,    -1,    -1,
     3516     903,    -1,    -1,    -1,    -1,    -1,    -1,   910,    -1,    -1,
     3517     681,   682,   915,    -1,    -1,   918,    -1,    -1,    -1,    -1,
     3518      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3519      -1,    -1,    -1,    -1,    -1,   938,    -1,    -1,    -1,    -1,
     3520      -1,    -1,    -1,    -1,    -1,    -1,   949,    -1,  1200,   720,
     3521      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3522      -1,    -1,    -1,    -1,    -1,  1507,   969,    -1,   971,    -1,
     3523      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3524      -1,    -1,    -1,   986,   987,    -1,    -1,    -1,    -1,   760,
     3525      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3526      -1,    -1,    -1,    -1,    -1,   776,    -1,   778,    -1,    -1,
     3527    1013,    -1,    -1,    -1,    -1,    -1,    -1,   788,    -1,    -1,
     3528      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1279,    -1,  1281,
     3529      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   923,  1291,
     3530      -1,  1293,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3531     935,    -1,    -1,    -1,    -1,    -1,  1308,    -1,    -1,    -1,
     3532      -1,    -1,    -1,  1066,    -1,    -1,    -1,    -1,    -1,    -1,
     3533      -1,    -1,    -1,    -1,  1326,  1327,    -1,    -1,    -1,    -1,
     3534      -1,    -1,    -1,    -1,  1087,    -1,    -1,  1339,    -1,   974,
     3535     861,    -1,  1344,    -1,    -1,  1347,    -1,   868,    -1,    -1,
     3536      -1,    -1,  1105,  1106,    -1,    -1,    -1,    -1,    -1,   880,
     3537     881,  1363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3538      -1,  1373,    -1,    -1,  1376,    -1,  1378,  1379,  1380,    -1,
     3539      -1,    -1,   903,    -1,    -1,    -1,    -1,    -1,    -1,  1024,
     3540      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3541      -1,    -1,    -1,    -1,   925,   926,    -1,    -1,    -1,    -1,
     3542      -1,    -1,    -1,    -1,   935,    -1,  1418,    -1,  1420,    -1,
     3543     941,   942,    -1,   944,   945,   946,    -1,    -1,  1430,    -1,
     3544      -1,    -1,    -1,    -1,    -1,   956,   957,    -1,  1440,    -1,
    35463545      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
    35473546       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    35483547      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3549       25,    26,    27,    28,    29,    -1,    -1,    32,    33,    34,
    3550       35,    -1,    -1,   910,    39,    40,    41,    42,    43,    -1,
     3548      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
     3549      35,    -1,    -1,    -1,    39,  1120,  1121,    42,    -1,    -1,
    35513550      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3552       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   936,
    3553       -1,    -1,    -1,    -1,    69,    70,    -1,    72,    -1,    74,
    3554       75,   948,    77,    78,    79,    -1,    -1,    82,    83,    84,
    3555       85,    86,    87,    88,    89,    -1,    91,    92,    -1,    -1,
     3551    1021,    -1,  1023,  1256,  1025,    -1,    -1,  1260,    -1,  1030,
     3552      -1,    -1,    -1,    -1,    -1,    70,    -1,    72,    -1,    74,
     3553      -1,    -1,    77,    78,    -1,  1046,    81,    -1,    -1,    -1,
     3554      -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
     3555      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3556      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3557      -1,   116,    32,    33,    34,    35,  1087,   122,   123,    39,
     3558      40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    49,
     3559      50,    51,    52,    53,    54,    55,    56,    -1,    -1,    -1,
     3560      60,    -1,    -1,    -1,    64,    65,    -1,    67,    -1,    69,
     3561      70,    -1,    72,    -1,    74,    75,    -1,    77,    78,    79,
     3562      -1,    -1,    82,    83,    84,    85,    86,    87,    88,    89,
     3563      -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35563564      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3557       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,
    3558      987,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
    3559      125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3560       -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3561       -1,    -1,    -1,  1278,    -1,  1280,    -1,    -1,    -1,    -1,
    3562       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1036,
     3565      -1,    -1,    -1,    -1,   114,  1166,   116,    -1,    -1,   119,
     3566    1171,    -1,   122,   123,   124,   125,   126,   127,    -1,    -1,
     3567      -1,    -1,   132,  1184,    -1,    -1,    -1,   137,    -1,    -1,
    35633568      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    35643569       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    35653570      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3566       27,    28,    29,    -1,    -1,    32,    33,    34,    35,    -1,
    3567       -1,  1078,    39,    40,    41,    42,    43,    44,    -1,    46,
    3568       -1,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
    3569       -1,    -1,    -1,    60,    -1,    -1,    -1,    64,    65,    -1,
    3570       67,    -1,    69,    70,    -1,    72,    -1,    74,    75,    -1,
    3571       77,    78,    79,    -1,    -1,    82,    83,    84,    85,    86,
    3572       87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,    -1,
    3573       -1,  1138,  1139,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3574       -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,
    3575       -1,    -1,   119,    -1,    -1,   122,   123,   124,   125,   126,
    3576      127,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,    -1,
    3577      137,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
     3571      27,    28,    29,    -1,    -1,    32,    33,    34,    35,  1230,
     3572    1231,    -1,    39,    -1,    -1,    42,    -1,    -1,    -1,    -1,
     3573      -1,    -1,    -1,    -1,    -1,    -1,  1361,    -1,    -1,    -1,
     3574      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3575      -1,  1494,    -1,    70,    -1,    72,    -1,    74,  1269,  1270,
     3576      77,    78,  1273,    -1,    -1,     3,     4,     5,     6,     7,
     3577       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3578      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3579      28,    29,    -1,    -1,    32,    33,    34,    -1,  1423,   116,
     3580      -1,    -1,    -1,    -1,    42,   122,   123,    -1,    -1,    -1,
     3581    1435,  1436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3582      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3583      -1,    -1,    70,  1458,    72,    -1,    74,    -1,    -1,    77,
     3584      78,    -1,    -1,    -1,    -1,    -1,  1357,    -1,    -1,    -1,
     3585       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3586      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3587      23,    24,    25,    26,    27,    28,    29,    -1,   116,    32,
     3588      33,    34,    35,    -1,   122,   123,    39,    40,    41,    42,
     3589      43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3590      -1,    -1,    -1,    -1,    -1,  1530,    -1,    -1,    -1,    -1,
     3591      -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    -1,    72,
     3592      -1,    74,    75,    -1,    77,    78,    79,    -1,    -1,    82,
     3593      83,    84,    85,    86,    87,    88,    89,  1448,    91,    92,
     3594      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3596      -1,   114,    -1,   116,    -1,    -1,  1477,  1478,    -1,   122,
     3597     123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,    -1,
     3598      -1,    -1,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
     3599      -1,    -1,    -1,    -1,    -1,    -1,  1507,     3,     4,     5,
     3600       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3601      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3602      26,    27,    28,    29,    -1,    -1,    32,    33,    34,    35,
     3603      -1,    -1,    -1,    39,    40,    41,    42,    43,    10,    11,
     3604      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3605      22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
     3606      32,    33,    34,    69,    70,    -1,    72,    -1,    74,    75,
     3607      42,    77,    78,    79,    -1,    -1,    82,    83,    84,    85,
     3608      86,    87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,
     3609      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
     3610      -1,    -1,    -1,    -1,    -1,    77,    78,    -1,   114,    -1,
     3611     116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
     3612     126,   127,     4,     5,     6,     7,     8,     9,    10,    11,
     3613      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3614      22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
     3615      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    41,
     3616      42,    43,    10,    11,    12,    13,    14,    15,    16,    17,
     3617      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3618      28,    29,    -1,    -1,    32,    33,    34,    69,    70,    -1,
     3619      72,    -1,    74,    75,    42,    77,    78,    79,    -1,    -1,
     3620      82,    83,    84,    85,    86,    87,    88,    89,    -1,    91,
     3621      92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3622      -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    77,
     3623      78,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,   121,
     3624     122,   123,   124,   125,   126,   127,     4,     5,     6,     7,
     3625       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3626      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3627      28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,
     3628      -1,    -1,    40,    41,    42,    43,    10,    11,    12,    13,
     3629      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3630      24,    25,    26,    27,    28,    29,    -1,    -1,    -1,    -1,
     3631      -1,    69,    70,    -1,    72,    -1,    74,    75,    42,    77,
     3632      78,    79,    -1,    -1,    82,    83,    84,    85,    86,    87,
     3633      88,    89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,
     3634      -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,
     3635      -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
     3636      -1,    -1,    -1,   121,   122,   123,   124,   125,   126,   127,
     3637       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3638      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3639      24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
     3640      34,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,    43,
     3641      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3642      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3643      -1,    -1,    -1,    -1,    -1,    69,    70,    -1,    72,    -1,
     3644      74,    75,    -1,    77,    78,    79,    -1,    -1,    82,    83,
     3645      84,    85,    86,    87,    88,    89,    -1,    91,    92,    -1,
     3646      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3647      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3648     114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,
     3649     124,   125,   126,   127,     4,     5,     6,     7,     8,     9,
    35783650      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    35793651      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    3580       -1,    -1,    32,    33,    34,    35,    -1,    -1,    -1,    39,
     3652      -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
    35813653      40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
    35823654      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35833655      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
    3584       70,    -1,    72,    -1,    74,    75,  1511,    77,    78,    79,
     3656      70,    -1,    72,    -1,    74,    75,    -1,    77,    78,    79,
    35853657      -1,    -1,    82,    83,    84,    85,    86,    87,    88,    89,
    35863658      -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35873659      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35883660      -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,    -1,
    3589       -1,    -1,   122,   123,   124,   125,   126,   127,    -1,    -1,
    3590       -1,    -1,    -1,    -1,    -1,     4,     5,     6,     7,     8,
    3591        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3592       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3593       29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
    3594       -1,    40,    41,    42,    43,    10,    11,    12,    13,    14,
    3595       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3596       25,    26,    27,    28,    29,    -1,  1373,    32,    33,    34,
    3597       69,    70,    -1,    72,    -1,    74,    75,    42,    77,    78,
    3598       79,    -1,  1389,    82,    83,    84,    85,    86,    87,    88,
    3599       89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
    3600       -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,
    3601       -1,    -1,    77,    78,    -1,   114,    -1,   116,    -1,    -1,
    3602       -1,    -1,   121,   122,   123,   124,   125,   126,   127,     4,
     3661      -1,    -1,   122,   123,   124,   125,   126,   127,     4,     5,
     3662       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3663      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3664      26,    27,    28,    29,    -1,    -1,    32,    33,    34,    -1,
     3665      -1,    -1,    -1,    -1,    40,    41,    42,    43,    -1,    -1,
     3666      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3667      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3668      -1,    -1,    -1,    69,    70,    -1,    72,    -1,    74,    75,
     3669      -1,    77,    78,    79,    -1,    -1,    82,    83,    84,    85,
     3670      86,    87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,
     3671      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3672      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
     3673     116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
     3674     126,   127,     0,    -1,    -1,     3,     4,     5,     6,     7,
     3675       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3676      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3677      28,    29,    -1,    -1,    32,    33,    34,    35,    -1,    -1,
     3678      -1,    39,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
     3679      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3680      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3681      -1,    -1,    70,    -1,    72,    -1,    74,    75,    -1,    77,
     3682      78,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3683      88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3684      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3685      -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
     3686      -1,    -1,    -1,    -1,   122,   123,     3,     4,     5,     6,
     3687       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3688      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3689      27,    28,    29,    -1,    -1,    32,    33,    34,    35,    -1,
     3690      -1,    -1,    39,    -1,    -1,    42,    43,    -1,    -1,    -1,
     3691      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3692      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3693      67,    -1,    -1,    70,    -1,    72,    -1,    74,    75,    -1,
     3694      77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3695      -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3696      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3697      -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,
     3698      -1,    -1,    -1,   120,    -1,   122,   123,     3,     4,     5,
     3699       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3700      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3701      26,    27,    28,    29,    -1,    -1,    32,    33,    34,    35,
     3702      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    -1,    -1,
     3703      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3704      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3705      -1,    67,    -1,    -1,    70,    -1,    72,    -1,    74,    75,
     3706      -1,    77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,
     3707      -1,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
     3708      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3709      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
     3710     116,    -1,    -1,    -1,    -1,    -1,   122,   123,     3,     4,
    36033711       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    36043712      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3605       25,    26,    27,    28,    29,  1462,  1463,    32,    33,    34,
    3606       -1,    -1,    -1,    -1,    -1,    40,    41,    42,    43,    10,
     3713      25,    26,    27,    28,    29,    -1,    -1,    32,    33,    34,
     3714      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    10,
    36073715      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    36083716      21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
    3609       -1,    32,    33,    34,    69,    70,    -1,    72,    -1,    74,
    3610       75,    42,    77,    78,    79,    -1,    -1,    82,    83,    84,
    3611       85,    86,    87,    88,    89,    -1,    91,    92,    -1,    -1,
     3717      -1,    32,    33,    34,    -1,    70,    -1,    72,    -1,    74,
     3718      75,    42,    77,    78,    79,    -1,    -1,    -1,    -1,    -1,
     3719      -1,    -1,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    36123720      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
    36133721      -1,    -1,    -1,    -1,    -1,    -1,    77,    78,    -1,   114,
    3614       -1,   116,    -1,    -1,    -1,    -1,   121,   122,   123,   124,
    3615      125,   126,   127,     4,     5,     6,     7,     8,     9,    10,
     3722      -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,     4,
     3723       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3724      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3725      25,    26,    27,    28,    29,   116,    -1,    32,    33,    34,
     3726      -1,   122,   123,    -1,    -1,    -1,    -1,    42,    -1,    10,
     3727      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3728      21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
     3729      -1,    32,    33,    34,    -1,    70,    -1,    72,    -1,    74,
     3730      75,    42,    77,    78,    79,    -1,    -1,    -1,    -1,    -1,
     3731      -1,    -1,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
     3732      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
     3733      -1,    -1,    -1,    -1,    -1,    -1,    77,    78,    -1,   114,
     3734      -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,     4,
     3735       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3736      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3737      25,    26,    27,    28,    29,   116,    -1,    32,    33,    34,
     3738      -1,   122,   123,    -1,    -1,    -1,    -1,    42,    -1,    -1,
     3739      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3740      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3741      -1,    -1,    -1,    -1,    -1,    70,    -1,    72,    -1,    74,
     3742      -1,    -1,    77,    78,     4,     5,     6,     7,     8,     9,
     3743      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3744      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3745      -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
     3746     115,   116,    42,    -1,    -1,    -1,    -1,   122,   123,    -1,
     3747      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3748      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3749      70,    -1,    72,    -1,    74,    -1,    -1,    77,    78,    -1,
     3750      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3751      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3752      -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3753      -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,
     3754      -1,    -1,   122,   123,     4,     5,     6,     7,     8,     9,
     3755      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3756      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3757      -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
     3758      -1,    -1,    42,    -1,    10,    11,    12,    13,    14,    15,
     3759      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3760      26,    27,    28,    29,    -1,    -1,    32,    33,    34,    -1,
     3761      70,    -1,    72,    -1,    74,    -1,    42,    77,    78,    -1,
     3762      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3763      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3764      -1,   101,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
     3765      -1,    77,    78,    -1,    -1,    -1,   116,    -1,    -1,    -1,
     3766      -1,    -1,   122,   123,     4,     5,     6,     7,     8,     9,
     3767      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3768      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3769     116,    -1,    32,    33,    34,    -1,   122,   123,    -1,    -1,
     3770      -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3771      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3772      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3773      70,    -1,    72,    -1,    74,    -1,    -1,    77,    78,     4,
     3774       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3775      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3776      25,    26,    27,    28,    29,    -1,    -1,    32,    33,    34,
     3777      -1,    -1,    -1,    -1,    -1,    -1,   116,    42,    -1,    -1,
     3778      -1,    -1,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
     3779      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3780      -1,    -1,    -1,    -1,    -1,    70,    -1,    72,    -1,    74,
     3781      -1,    -1,    77,    78,     4,     5,     6,     7,     8,     9,
     3782      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3783      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3784      -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
     3785      -1,   116,    42,    -1,    -1,    -1,    -1,   122,   123,    -1,
     3786      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3787      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3788      70,    -1,    72,    -1,    74,    -1,    -1,    77,    78,    10,
    36163789      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    36173790      21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
    36183791      -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
    3619       41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3620       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3792      41,    42,    43,    -1,    -1,    -1,   116,    -1,    -1,    -1,
     3793      -1,    -1,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
    36213794      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,
    3622       -1,    72,    -1,    74,    75,    -1,    77,    78,    79,    -1,
     3795      -1,    -1,    -1,    -1,    75,    -1,    77,    78,    79,    -1,
    36233796      -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
    36243797      91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36253798      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3626       -1,    -1,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,
    3627       -1,   122,   123,   124,   125,   126,   127,     4,     5,     6,
    3628        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3799      -1,    -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,
     3800      -1,   122,   123,   124,   125,   126,   127,    10,    11,    12,
     3801      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3802      23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
     3803      33,    34,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,
     3804      43,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3805      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3806      29,    -1,    -1,    32,    33,    34,    69,    70,    -1,    -1,
     3807      -1,    -1,    75,    42,    77,    78,    79,    -1,    -1,    82,
     3808      83,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
     3809      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3810      -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    77,    78,
     3811      -1,   114,   115,   116,    -1,    -1,    -1,    -1,    -1,   122,
     3812     123,   124,   125,   126,   127,    10,    11,    12,    13,    14,
     3813      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3814      25,    26,    27,    28,    29,    -1,    -1,    32,    33,    34,
     3815      -1,    -1,    -1,   122,   123,    40,    41,    42,    43,    -1,
     3816      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3817      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3818      -1,    -1,    -1,    -1,    69,    70,    -1,    -1,    -1,    -1,
     3819      75,    -1,    77,    78,    79,    -1,    -1,    82,    83,    84,
     3820      85,    86,    87,    88,    89,    -1,    91,    92,    -1,    -1,
     3821      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3822      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,
     3823      -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
     3824     125,   126,   127,    10,    11,    12,    13,    14,    15,    16,
    36293825      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    36303826      27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
     
    36323828      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36333829      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3634       -1,    -1,    69,    70,    -1,    72,    -1,    74,    75,    -1,
     3830      -1,    -1,    69,    70,    -1,    -1,    -1,    -1,    75,    -1,
    36353831      77,    78,    79,    -1,    -1,    82,    83,    84,    85,    86,
    36363832      87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,    -1,
     
    36383834      -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,
    36393835      -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
    3640      127,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3641       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3642       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3643       33,    34,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,
    3644       43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3645       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3646       -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    -1,    72,
    3647       -1,    74,    75,    -1,    77,    78,    79,    -1,    -1,    82,
    3648       83,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
     3836     127,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3837      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3838      29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
     3839      -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,
    36493840      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36503841      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3651       -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
    3652      123,   124,   125,   126,   127,     0,    -1,    -1,     3,     4,
     3842      69,    70,    -1,    -1,    -1,    -1,    75,    -1,    77,    78,
     3843      79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
     3844      89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
     3845      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3846      -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,
     3847      -1,    -1,    -1,   122,   123,   124,   125,   126,   127,     3,
     3848       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3849      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3850      24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
     3851      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    10,
     3852      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3853      21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
     3854      -1,    32,    33,    34,    -1,    -1,    70,    -1,    72,    -1,
     3855      74,    42,    -1,    77,    78,    -1,    -1,    -1,    -1,    10,
     3856      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3857      21,    22,    23,    24,    25,    26,    27,    28,    29,    70,
     3858      -1,    32,    33,    34,    75,    -1,    77,    78,    79,    -1,
     3859      -1,    42,    -1,    -1,    -1,   119,    -1,    88,    89,    -1,
     3860      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3861      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
     3862      -1,    -1,    -1,   114,    75,   116,    77,    78,    -1,    -1,
     3863      -1,   122,   123,    -1,    -1,    -1,    -1,    88,    89,    -1,
     3864      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3865      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3866      26,    27,    28,    29,    -1,   116,    32,    33,    34,    -1,
     3867      -1,   122,   123,    -1,    -1,    -1,    42,    43,    -1,    -1,
     3868      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3869      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3870      26,    27,    28,    29,    70,    -1,    32,    33,    34,    -1,
     3871      -1,    77,    78,    -1,    -1,    -1,    42,    43,    -1,    -1,
     3872      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3873      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3874      -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
     3875     116,    77,    78,    -1,   120,    -1,   122,   123,    -1,    10,
     3876      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3877      21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
     3878      -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
     3879     116,    42,    43,    -1,   120,    -1,   122,   123,    -1,    10,
     3880      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3881      21,    22,    23,    24,    25,    26,    27,    28,    29,    70,
     3882      -1,    32,    33,    34,    -1,    -1,    77,    78,    -1,    -1,
     3883      -1,    42,    10,    11,    12,    13,    14,    15,    16,    17,
     3884      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3885      28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    70,
     3886      -1,    -1,    -1,    -1,    42,   116,    77,    78,    -1,   120,
     3887      -1,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3888      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3889      -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    77,
     3890      78,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,
     3891      -1,   122,   123,    -1,    -1,    -1,    -1,    10,    11,    12,
     3892      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3893      23,    24,    25,    26,    27,    28,    29,    -1,   116,    32,
     3894      33,    34,    -1,    -1,   122,   123,    -1,    -1,    -1,    42,
     3895      -1,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3896      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3897      23,    24,    25,    26,    27,    28,    29,    70,    -1,    32,
     3898      33,    34,    -1,    -1,    77,    78,    -1,    -1,    -1,    42,
     3899      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3900      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3901      -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,
     3902      -1,    74,    -1,   116,    77,    78,    -1,    -1,    -1,   122,
     3903     123,    40,    41,    -1,    43,    44,    -1,    46,    -1,    -1,
     3904      49,    50,    51,    52,    53,    54,    55,    56,    -1,    -1,
     3905      59,    60,    -1,    -1,    -1,    64,    65,    -1,    67,    -1,
     3906      69,    -1,   115,    -1,    -1,    -1,    75,    -1,    77,    78,
     3907      79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
     3908      89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
     3909      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3910      -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,
     3911     119,    -1,    -1,   122,   123,   124,   125,   126,   127,    -1,
     3912      -1,    40,    41,   132,    43,    44,    -1,    46,   137,    -1,
     3913      49,    50,    51,    52,    53,    54,    55,    56,    -1,    -1,
     3914      -1,    60,    -1,    -1,    -1,    64,    65,    -1,    67,    -1,
     3915      69,    -1,    -1,    -1,    -1,    -1,    75,    -1,    77,    78,
     3916      79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
     3917      89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
     3918      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3919      -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,
     3920     119,    -1,    -1,   122,   123,   124,   125,   126,   127,    -1,
     3921      -1,    -1,    -1,   132,    -1,    -1,    -1,    -1,   137,     4,
    36533922       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    36543923      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    36553924      25,    26,    27,    28,    29,    -1,    -1,    32,    33,    34,
    3656       35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,    -1,
     3925      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    40,
     3926      41,    -1,    43,    44,    -1,    46,    47,    48,    49,    50,
     3927      51,    52,    53,    54,    55,    56,    -1,    -1,    59,    60,
     3928      -1,    -1,    -1,    64,    65,    70,    67,    72,    69,    74,
     3929      -1,    -1,    77,    78,    75,    -1,    77,    78,    79,    -1,
     3930      -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
     3931      91,    92,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
    36573932      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3933      -1,    -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,
     3934      -1,   122,   123,   124,   125,   126,   127,    -1,    -1,    40,
     3935      41,   132,    43,    44,    -1,    46,    47,    48,    49,    50,
     3936      51,    52,    53,    54,    55,    56,    -1,    -1,    -1,    60,
     3937      -1,    -1,    -1,    64,    65,    -1,    67,    -1,    69,    -1,
     3938      -1,    -1,    -1,    -1,    75,    -1,    77,    78,    79,    -1,
     3939      -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
     3940      91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36583941      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3659       -1,    -1,    67,    -1,    -1,    70,    -1,    72,    -1,    74,
    3660       75,    -1,    77,    78,    79,    -1,    -1,    -1,    -1,    -1,
    3661       -1,    -1,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3662       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3663       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,
    3664       -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,     3,
    3665        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3666       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3667       24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
    3668       34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
    3669       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3670       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3671       -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    72,    -1,
    3672       74,    75,    -1,    77,    78,    79,    -1,    -1,    -1,    -1,
    3673       -1,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,    -1,
    3674       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3675       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3676      114,    -1,   116,    -1,    -1,    -1,   120,    -1,   122,   123,
    3677        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3678       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3679       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3680       33,    34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
     3942      -1,    -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,
     3943      -1,   122,   123,   124,   125,   126,   127,    -1,    -1,    40,
     3944      41,   132,    43,    44,    -1,    46,    -1,    -1,    49,    50,
     3945      51,    52,    53,    54,    55,    56,    -1,    -1,    -1,    60,
     3946      -1,    -1,    -1,    64,    65,    -1,    67,    -1,    69,    -1,
     3947      -1,    -1,    -1,    -1,    75,    -1,    77,    78,    79,    -1,
     3948      -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
     3949      91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,
     3950      -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3951      -1,    -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,
     3952      -1,   122,   123,   124,   125,   126,   127,    69,    -1,    -1,
     3953      -1,   132,    -1,    75,    -1,    -1,    -1,    79,    -1,    -1,
     3954      82,    83,    84,    85,    86,    87,    88,    89,    -1,    91,
     3955      92,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,
    36813956      43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3682       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3683       -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    72,
    3684       -1,    74,    75,    -1,    77,    78,    79,    -1,    -1,    -1,
    3685       -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,
    3686       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3957      -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,    -1,
     3958     122,   123,   124,   125,   126,   127,    69,    -1,    -1,    -1,
     3959      -1,    -1,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
     3960      83,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
     3961      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,
    36873962      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36883963      -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
    3689      123,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3690       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3691       22,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
    3692       32,    33,    34,    35,    -1,    -1,    -1,    39,    -1,    -1,
    3693       42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3694       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3695       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3696       72,    -1,    74,    -1,    -1,    77,    78,    -1,    -1,    81,
    3697        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3698       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3699       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3700       33,    34,    35,    -1,   116,    -1,    39,    -1,    -1,    42,
    3701      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3702       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,
    3704       -1,    74,    -1,    -1,    77,    78,     3,     4,     5,     6,
    3705        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3706       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3707       27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
    3708       -1,    -1,    -1,   116,    -1,    42,    -1,    -1,    -1,   122,
    3709      123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3710       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3711       -1,    -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,
    3712       77,    78,     4,     5,     6,     7,     8,     9,    10,    11,
    3713       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3714       22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
    3715       32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,   116,
    3716       42,    -1,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,
    3717       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3718       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3719       72,    -1,    74,    75,    -1,    77,    78,    79,    -1,    -1,
    3720       -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    -1,
    3721       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3722       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3723       -1,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,
    3724      122,   123,     4,     5,     6,     7,     8,     9,    10,    11,
    3725       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3726       22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
    3727       32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3728       42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3729       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3730       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3731       72,    -1,    74,    -1,    -1,    77,    78,     4,     5,     6,
    3732        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3733       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3734       27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
    3735       -1,    -1,    -1,   115,   116,    42,    -1,    -1,    -1,    -1,
    3736      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3737       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3738       -1,    -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,
    3739       77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3740       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3741       -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
    3742       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
    3743       -1,    -1,    -1,    -1,    -1,   122,   123,     4,     5,     6,
    3744        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3745       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3746       27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
    3747       -1,    -1,    -1,    -1,    -1,    42,    -1,    10,    11,    12,
    3748       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3749       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3750       33,    34,    -1,    70,    -1,    72,    -1,    74,    -1,    42,
    3751       77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3753       -1,    -1,    -1,    -1,   101,    -1,    -1,    70,    -1,    -1,
    3754       -1,    -1,    -1,    -1,    77,    78,    -1,    -1,    -1,   116,
    3755       -1,    -1,    -1,    -1,    -1,   122,   123,     4,     5,     6,
    3756        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3757       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3758       27,    28,    29,   116,    -1,    32,    33,    34,    -1,   122,
    3759      123,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,
    3760       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3761       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3762       -1,    -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,
    3763       77,    78,     4,     5,     6,     7,     8,     9,    10,    11,
    3764       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3765       22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
    3766       32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,   116,
    3767       42,    -1,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,
    3768       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3769       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3770       72,    -1,    74,    -1,    -1,    77,    78,     4,     5,     6,
    3771        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3772       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3773       27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
    3774       -1,    -1,    -1,    -1,   116,    42,    -1,    -1,    -1,    -1,
    3775      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3776       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3777       -1,    -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,
    3778       77,    78,    10,    11,    12,    13,    14,    15,    16,    17,
    3779       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3780       28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,
    3781       -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,   116,
    3782       -1,    -1,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,
    3783       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3784       -1,    69,    70,    -1,    -1,    -1,    -1,    75,    -1,    77,
    3785       78,    79,    -1,    -1,    82,    83,    84,    85,    86,    87,
    3786       88,    89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,
    3787       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3788       -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
    3789       -1,   119,    -1,    -1,   122,   123,   124,   125,   126,   127,
    3790       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3791       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    3792       -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
    3793       40,    41,    42,    43,    10,    11,    12,    13,    14,    15,
    3794       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3795       26,    27,    28,    29,    -1,    -1,    32,    33,    34,    69,
    3796       70,    -1,    -1,    -1,    -1,    75,    42,    77,    78,    79,
    3797       -1,    -1,    82,    83,    84,    85,    86,    87,    88,    89,
    3798       -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3799       -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
    3800       -1,    77,    78,    -1,   114,   115,   116,    -1,    -1,    -1,
    3801       -1,    -1,   122,   123,   124,   125,   126,   127,    10,    11,
    3802       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3803       22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
    3804       32,    33,    34,    -1,    -1,    -1,   122,   123,    40,    41,
    3805       42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3806       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3807       -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    -1,
    3808       -1,    -1,    -1,    75,    -1,    77,    78,    79,    -1,    -1,
    3809       82,    83,    84,    85,    86,    87,    88,    89,    -1,    91,
    3810       92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3811       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3812       -1,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,
    3813      122,   123,   124,   125,   126,   127,    10,    11,    12,    13,
    3814       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3815       24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
    3816       34,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,    43,
    3817       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3818       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3819       -1,    -1,    -1,    -1,    -1,    69,    70,    -1,    -1,    -1,
    3820       -1,    75,    -1,    77,    78,    79,    -1,    -1,    82,    83,
     3964     123,   124,   125,   126,   127,    69,    -1,    -1,    -1,    -1,
     3965      -1,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
    38213966      84,    85,    86,    87,    88,    89,    -1,    91,    92,    -1,
    3822       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3967      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    -1,
    38233968      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38243969     114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,
    3825      124,   125,   126,   127,    10,    11,    12,    13,    14,    15,
    3826       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3827       26,    27,    28,    29,    -1,    -1,    32,    33,    34,    -1,
    3828       -1,    -1,    -1,    -1,    40,    41,    42,    43,    -1,    -1,
    3829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3830       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3831       -1,    -1,    -1,    69,    70,    -1,    -1,    -1,    -1,    75,
    3832       -1,    77,    78,    79,    -1,    -1,    82,    83,    84,    85,
    3833       86,    87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,
    3834       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3835       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
    3836      116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
    3837      126,   127,     3,     4,     5,     6,     7,     8,     9,    10,
    3838       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3839       21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
    3840       -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
    3841       -1,    42,    10,    11,    12,    13,    14,    15,    16,    17,
    3842       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3843       28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    70,
    3844       -1,    72,    -1,    74,    42,    -1,    77,    78,    -1,    -1,
    3845       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3846       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3847       28,    29,    70,    -1,    32,    33,    34,    75,    -1,    77,
    3848       78,    79,    -1,    -1,    42,    -1,    -1,    -1,   119,    -1,
    3849       88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3850       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3851       -1,    -1,    70,    -1,    -1,    -1,   114,    75,   116,    77,
    3852       78,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,    -1,
    3853       88,    89,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
    3854       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3855       23,    24,    25,    26,    27,    28,    29,    -1,   116,    32,
    3856       33,    34,    -1,    -1,   122,   123,    -1,    -1,    -1,    42,
    3857       43,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
    3858       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3859       23,    24,    25,    26,    27,    28,    29,    70,    -1,    32,
    3860       33,    34,    -1,    -1,    77,    78,    -1,    -1,    -1,    42,
    3861       43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3862       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3863       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
    3864       -1,    -1,    -1,   116,    77,    78,    -1,   120,    -1,   122,
    3865      123,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3866       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3867       28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,
    3868       -1,    -1,    -1,   116,    42,    -1,    -1,   120,    -1,   122,
    3869      123,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3870       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3871       28,    29,    70,    -1,    32,    33,    34,    -1,    -1,    77,
    3872       78,    -1,    -1,    -1,    42,    10,    11,    12,    13,    14,
    3873       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3874       25,    26,    27,    28,    29,    -1,    -1,    32,    33,    34,
    3875       -1,    -1,    70,    -1,    -1,    -1,    -1,    42,   116,    77,
    3876       78,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,    -1,
    3877       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3878       -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,
    3879       -1,    -1,    77,    78,    -1,    -1,    -1,    -1,   116,    -1,
    3880       -1,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,    -1,
    3881       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3882       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    3883       -1,   116,    32,    33,    34,    -1,    -1,   122,   123,    -1,
    3884       -1,    -1,    42,    10,    11,    12,    13,    14,    15,    16,
    3885       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3886       27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
    3887       70,    -1,    -1,    -1,    -1,    42,    -1,    77,    78,    -1,
    3888       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3889       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3890       -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
    3891       77,    78,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,
    3892       -1,    -1,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
    3893       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3894       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
    3895       -1,    -1,    -1,    -1,    -1,   122,   123,     4,     5,     6,
    3896        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3897       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3898       27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
    3899       -1,    -1,    -1,    -1,    -1,    42,    -1,    40,    41,    -1,
    3900       43,    44,    -1,    46,    -1,    -1,    49,    50,    51,    52,
    3901       53,    54,    55,    56,    -1,    -1,    59,    60,    -1,    -1,
    3902       -1,    64,    65,    70,    67,    72,    69,    74,    -1,    -1,
    3903       77,    78,    75,    -1,    77,    78,    79,    -1,    -1,    82,
    3904       83,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
    3905       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3906       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,
    3907       -1,   114,    -1,   116,    -1,    -1,   119,    -1,    -1,   122,
    3908      123,   124,   125,   126,   127,    -1,    -1,    40,    41,   132,
    3909       43,    44,    -1,    46,   137,    -1,    49,    50,    51,    52,
    3910       53,    54,    55,    56,    -1,    -1,    -1,    60,    -1,    -1,
    3911       -1,    64,    65,    -1,    67,    -1,    69,    -1,    -1,    -1,
    3912       -1,    -1,    75,    -1,    77,    78,    79,    -1,    -1,    82,
    3913       83,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
    3914       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3915       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3916       -1,   114,    -1,   116,    -1,    -1,   119,    -1,    -1,   122,
    3917      123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,   132,
    3918       -1,    -1,    -1,    -1,   137,     4,     5,     6,     7,     8,
    3919        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3920       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3921       29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
    3922       -1,    -1,    -1,    42,    -1,    40,    41,    -1,    43,    44,
    3923       -1,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    3924       55,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
    3925       65,    70,    67,    72,    69,    74,    -1,    -1,    77,    78,
    3926       75,    -1,    77,    78,    79,    -1,    -1,    82,    83,    84,
    3927       85,    86,    87,    88,    89,    -1,    91,    92,    -1,    -1,
    3928       -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3929       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,
    3930       -1,   116,    -1,    -1,   119,    -1,    -1,   122,   123,   124,
    3931      125,   126,   127,    -1,    -1,    40,    41,   132,    43,    44,
    3932       -1,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    3933       55,    56,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,
    3934       65,    -1,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
    3935       75,    -1,    77,    78,    79,    -1,    -1,    82,    83,    84,
    3936       85,    86,    87,    88,    89,    -1,    91,    92,    -1,    -1,
    3937       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3938       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,
    3939       -1,   116,    -1,    -1,   119,    -1,    -1,   122,   123,   124,
    3940      125,   126,   127,    -1,    -1,    40,    41,   132,    43,    44,
    3941       -1,    46,    -1,    -1,    49,    50,    51,    52,    53,    54,
    3942       55,    56,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,
    3943       65,    -1,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,
    3944       75,    -1,    77,    78,    79,    -1,    -1,    82,    83,    84,
     3970     124,   125,   126,   127,    69,    -1,    -1,    -1,    -1,    -1,
     3971      75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    84,
    39453972      85,    86,    87,    88,    89,    -1,    91,    92,    -1,    -1,
    39463973      -1,    -1,    -1,    -1,    40,    41,    -1,    43,    -1,    -1,
    39473974      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,
    3948       -1,   116,    -1,    -1,   119,    -1,    -1,   122,   123,   124,
    3949      125,   126,   127,    69,    -1,    -1,    -1,   132,    -1,    75,
     3975      -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
     3976     125,   126,   127,    69,    -1,    -1,    -1,    -1,    -1,    75,
    39503977      -1,    -1,    -1,    79,    -1,    -1,    82,    83,    84,    85,
    39513978      86,    87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,
    39523979      -1,    -1,    -1,    40,    41,    -1,    43,    -1,    -1,    -1,
    39533980      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
    3954      116,    -1,    -1,    -1,    -1,   121,   122,   123,   124,   125,
     3981     116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
    39553982     126,   127,    69,    -1,    -1,    -1,    -1,    -1,    75,    -1,
    39563983      -1,    -1,    79,    -1,    -1,    82,    83,    84,    85,    86,
     
    39623989      -1,    79,    -1,    -1,    82,    83,    84,    85,    86,    87,
    39633990      88,    89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,
    3964       -1,    40,    41,    -1,    43,    -1,    -1,    -1,    -1,    -1,
     3991      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39653992      -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
    39663993      -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,   127,
    3967       69,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,
    3968       79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
    3969       89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
    3970       40,    41,    -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,
    3971       -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,
    3972       -1,    -1,    -1,   122,   123,   124,   125,   126,   127,    69,
    3973       -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,
    3974       -1,    -1,    82,    83,    84,    85,    86,    87,    88,    89,
    3975       -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    40,
    3976       41,    -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3977       -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,    -1,
    3978       -1,    -1,   122,   123,   124,   125,   126,   127,    69,    -1,
    3979       -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    -1,
    3980       -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
    3981       91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3982       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3983       -1,    -1,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,
    3984       -1,   122,   123,   124,   125,   126,   127,    10,    11,    12,
    3985       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3986       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3987       33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
    3988        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3989       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3990       23,    24,    25,    26,    27,    28,    29,    70,    -1,    32,
    3991       33,    34,    75,    -1,    77,    78,    -1,    -1,    -1,    42,
    3992       -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,
    3993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3994       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,
    3995       -1,    74,    -1,    -1,    77,    78,     3,     4,     5,     6,
    3996        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3997       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3998       27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
    3999       -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,
     3994      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3995      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3996      -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
     3997      -1,    -1,    42,     3,     4,     5,     6,     7,     8,     9,
     3998      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3999      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     4000      70,    -1,    32,    33,    34,    75,    -1,    77,    78,    -1,
     4001      -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    88,    89,
    40004002      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40014003      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4002       -1,    -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,
    4003       77,    78,     4,     5,     6,     7,     8,     9,    10,    11,
    4004       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    4005       22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
    4006       32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4007       42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4008       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4009       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    4010       72,    -1,    74,    -1,    -1,    77,    78,    10,    11,    12,
    4011       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    4012       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    4013       33,    34,    35,    36,    37,    38,    -1,    -1,    -1,    42,
     4004      70,    -1,    72,    -1,    74,    -1,    -1,    77,    78,     3,
     4005       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     4006      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     4007      24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
     4008      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
    40144009      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40154010      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4016       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
    4017       -1,    -1,    -1,    -1,    77,    78
     4011      -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,    -1,
     4012      74,    -1,    -1,    77,    78,     4,     5,     6,     7,     8,
     4013       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     4014      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     4015      29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
     4016      -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,
     4017      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4018      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4019      -1,    70,    -1,    72,    -1,    74,    -1,    -1,    77,    78,
     4020      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     4021      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     4022      -1,    -1,    32,    33,    34,    35,    36,    37,    38,    -1,
     4023      -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4024      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4025      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4026      70,    -1,    -1,    -1,    -1,    -1,    -1,    77,    78
    40184027};
    40194028
     
    40274036      34,    35,    39,    42,    43,    67,    70,    72,    74,    75,
    40284037      77,    78,    79,    88,    89,   114,   116,   122,   123,   142,
    4029      145,   157,   206,   220,   221,   222,   223,   224,   225,   226,
    4030      227,   228,   229,   230,   232,   233,   234,   235,   236,   237,
    4031      239,   240,   241,   242,   243,   244,   245,   247,   248,   249,
    4032      250,   251,   252,   254,   262,   289,   290,   291,   299,   302,
    4033      308,   309,   311,   313,   314,   320,   325,   329,   330,   331,
    4034      332,   333,   334,   335,   336,   356,   373,   374,   375,   376,
    4035       75,   144,   145,   157,   223,   225,   233,   235,   244,   248,
    4036      250,   290,    84,   114,   318,   319,   320,    75,    77,    78,
    4037       79,   143,   144,   279,   280,   300,   301,    77,    78,   280,
    4038      114,   311,    11,   207,   114,   157,   325,   330,   331,   332,
    4039      334,   335,   336,   117,   139,   226,   233,   235,   329,   333,
    4040      372,   373,   376,   377,   140,   112,   136,   283,   119,   140,
    4041      181,    77,    78,   142,   278,   140,   140,   140,    77,    78,
    4042      114,   157,   231,   315,   324,   325,   326,   327,   328,   329,
    4043      333,   337,   338,   339,   340,   341,   347,     3,    30,    81,
    4044      246,     3,     5,    77,   116,   157,   225,   236,   240,   242,
    4045      251,   291,   329,   333,   376,   223,   225,   235,   244,   248,
    4046      250,   290,   329,   333,    35,   241,   241,   236,   242,   140,
    4047      241,   236,   241,   236,   318,   241,   236,   121,   140,   140,
    4048        0,   139,   114,   181,   318,   318,   139,   116,   233,   235,
    4049      374,   278,   278,   136,   235,   114,   157,   315,   325,   329,
    4050      116,   157,   376,   312,   238,   119,   280,   320,   114,   296,
    4051      114,   114,    54,   114,    40,    41,    43,    69,    75,    79,
    4052       82,    83,    84,    85,    86,    87,    91,    92,   114,   116,
    4053      124,   125,   126,   127,   141,   145,   146,   147,   148,   149,
    4054      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
    4055      166,   167,   168,   169,   170,   172,   175,   233,   281,   282,
    4056      298,   372,   377,   235,   115,   115,   115,   115,   115,   115,
    4057      115,   116,   233,   356,   374,   116,   122,   157,   172,   225,
    4058      226,   232,   235,   239,   240,   244,   247,   248,   250,   268,
    4059      269,   273,   274,   275,   276,   290,   356,   368,   369,   370,
    4060      371,   376,   377,   114,   329,   333,   376,   114,   121,   137,
    4061      116,   119,   157,   172,   284,   284,   120,   139,   121,   137,
    4062      114,   121,   137,   121,   137,   121,   137,   325,   326,   327,
    4063      328,   338,   339,   340,   341,   235,   324,   337,   121,   140,
    4064       67,   317,   116,   318,   355,   356,   318,   318,   181,   139,
    4065      114,   318,   355,   318,   318,   235,   315,   114,   114,   234,
    4066      235,   233,   235,   139,   233,   372,   377,   181,   139,   278,
    4067      283,   225,   240,   329,   333,   181,   139,   300,   235,   244,
    4068      137,   235,   235,    78,   114,   119,   280,   291,   235,   300,
    4069      137,   137,   311,   139,   144,   277,     3,   140,   215,   216,
    4070      230,   232,   235,   139,   317,   114,   317,   172,   325,   235,
    4071      114,   139,   278,   119,    35,    36,    37,    38,   233,   292,
    4072      293,   295,   264,   280,   263,   139,   133,   136,   297,   139,
    4073       10,    75,    77,    78,   321,   322,   323,   114,   146,   114,
    4074      156,   114,   156,   159,   114,   156,   114,   114,   156,   156,
    4075      116,   172,   177,   181,   281,   376,   139,    84,    86,    90,
    4076       91,    92,   114,   116,   118,   119,   102,   103,   104,   105,
    4077      106,   107,   108,   109,   110,   111,   112,   136,   174,   159,
    4078      159,   122,   128,   129,   124,   125,    93,    94,    95,    96,
    4079      130,   131,    97,    98,   123,   132,   133,    99,   100,   134,
    4080      114,   157,   351,   352,   353,   354,   355,   115,   121,   114,
    4081      355,   356,   114,   355,   356,   139,   233,   374,   117,   139,
    4082      140,   233,   235,   367,   368,   376,   377,   140,   114,   116,
    4083      157,   325,   342,   343,   344,   345,   346,   347,   348,   349,
    4084      350,   356,   357,   358,   359,   360,   361,   362,   157,   376,
    4085      235,   140,   140,   157,   233,   235,   369,   278,   233,   356,
    4086      369,   278,   139,   139,   139,   139,    75,   116,   118,   145,
    4087      280,   284,   285,   286,   287,   288,   139,   139,   139,   139,
    4088      139,   139,   115,   115,   115,   115,   115,   115,   115,   324,
    4089      337,   318,   137,   114,   283,   117,   215,   139,   315,   177,
    4090      282,   177,   282,   315,   116,   215,   317,   181,   139,   215,
    4091      298,   255,   253,   235,   270,   271,   272,   275,   276,   115,
    4092      121,   181,   139,   122,   172,   139,   232,   235,   269,   368,
    4093      376,   309,   310,   114,   157,   342,   115,   121,   136,   379,
    4094      280,   121,   378,   136,   265,   119,   292,   114,   119,   280,
    4095      282,   292,   115,   121,   114,   146,   115,   135,   281,   116,
    4096      281,   281,   151,   172,   282,   281,   139,   115,   121,   115,
    4097      115,   121,   172,   116,   144,   150,   151,   139,   116,   144,
    4098      150,   172,   159,   159,   159,   160,   160,   161,   161,   162,
    4099      162,   162,   162,   163,   163,   164,   165,   166,   167,   168,
    4100      135,   177,   139,   352,   353,   354,   235,   351,   318,   318,
    4101      172,   282,   139,   139,   233,   356,   369,   235,   239,   117,
    4102      376,   117,   114,   139,   325,   343,   344,   345,   348,   358,
    4103      359,   360,   117,   139,   235,   342,   346,   357,   114,   318,
    4104      361,   379,   318,   318,   379,   114,   318,   361,   318,   318,
    4105      318,   318,   356,   233,   367,   377,   278,   117,   121,   117,
    4106      121,   379,   233,   369,   379,   266,   267,   268,   269,   266,
    4107      278,   172,   139,   116,   280,   135,   121,   378,   284,   116,
    4108      135,   288,    31,   217,   218,   278,   266,   144,   315,   144,
    4109      114,   318,   355,   356,   114,   318,   355,   356,   315,   146,
    4110      356,   181,   270,   115,   115,   115,   115,   139,   181,   215,
    4111      181,   115,    43,   120,   233,   256,   257,   372,   119,   140,
    4112      140,   144,   230,   140,   140,   266,   114,   157,   376,   140,
    4113      120,   235,   293,   172,   294,   280,   120,   170,   171,   264,
    4114      140,   139,   139,   114,   140,   115,   322,   150,   135,   137,
    4115      116,   146,   208,   209,   210,   115,   139,   121,   115,   115,
    4116      115,   115,   172,   119,   159,   172,   173,   176,   121,   139,
    4117      115,   121,   172,   139,   120,   170,   135,   270,   115,   115,
    4118      115,   351,   270,   270,   233,   369,   116,   122,   157,   172,
    4119      172,   235,   348,   270,   115,   115,   115,   115,   115,   115,
    4120      115,     7,   235,   342,   346,   357,   139,   139,   379,   139,
    4121      139,   140,   140,   140,   140,   283,   170,   171,   172,   316,
    4122      139,   284,   286,   120,   139,   219,   280,    43,    44,    46,
    4123       49,    50,    51,    52,    53,    54,    55,    56,    60,    64,
    4124       65,    75,    77,    78,    79,   132,   145,   177,   178,   179,
    4125      180,   181,   182,   183,   185,   186,   198,   200,   201,   206,
    4126      220,   278,   314,    31,   140,   136,   139,   139,   317,   115,
    4127      140,   181,   119,   233,   257,   114,   135,   157,   258,   259,
    4128      261,   324,   325,   337,   355,   363,   364,   365,   366,   121,
    4129      137,   280,   255,   115,   121,   117,   117,   140,   235,   121,
    4130      379,   296,   265,   378,   115,   292,   223,   225,   233,   304,
    4131      305,   306,   307,   298,   115,   115,   135,   171,   114,   115,
    4132      135,   121,   144,   285,   121,   140,   176,    82,    85,    87,
    4133      144,   152,   153,   154,   151,   140,   152,   170,   140,   114,
    4134      318,   355,   356,   140,   140,   139,   140,   140,   140,   172,
    4135      115,   140,   114,   318,   355,   356,   114,   318,   361,   114,
    4136      318,   361,   356,   234,     7,   122,   140,   172,   270,   270,
    4137      269,   273,   273,   274,   115,   121,   121,   115,   101,   127,
    4138      140,   140,   152,   284,   172,   121,   137,   220,   314,   114,
    4139      114,   179,   114,   114,   137,   278,   137,   278,   122,   278,
    4140      178,   114,   181,   173,   173,   149,   137,   140,   139,   140,
    4141      135,   219,   115,   172,   270,   270,   283,   318,   115,   255,
    4142      258,   137,   325,   364,   365,   366,   171,   235,   363,   121,
    4143      137,   260,   261,   260,   318,   318,   280,   120,   139,   115,
    4144      139,   120,   140,   315,   120,   139,   140,   140,   115,   119,
    4145      208,   117,   171,   137,   208,   210,   115,   378,   173,   117,
    4146      140,   155,   116,   153,   155,   155,   121,   140,    90,   118,
    4147      117,   140,   115,   139,   115,   115,   117,   117,   117,   140,
    4148      115,   139,   139,   139,   172,   172,   140,   117,   140,   140,
    4149      140,   140,   139,   139,   171,   171,   117,   117,   140,   280,
    4150      177,   177,    50,   177,   139,   137,   137,   177,   137,   137,
    4151      177,    61,    62,    63,   202,   203,   204,   137,    66,   137,
     4038     145,   157,   220,   221,   222,   223,   224,   225,   226,   227,
     4039     228,   229,   230,   232,   233,   234,   235,   236,   237,   239,
     4040     240,   241,   242,   243,   244,   245,   247,   248,   249,   250,
     4041     251,   252,   254,   262,   289,   290,   291,   299,   302,   308,
     4042     309,   311,   313,   314,   320,   325,   329,   330,   331,   332,
     4043     333,   334,   335,   336,   356,   373,   374,   375,   376,    75,
     4044     144,   145,   157,   223,   225,   233,   235,   244,   248,   250,
     4045     290,    84,   114,   318,   319,   320,    75,    77,    78,    79,
     4046     143,   144,   279,   280,   300,   301,    77,    78,   280,   114,
     4047     311,   114,   114,   157,   325,   330,   331,   332,   334,   335,
     4048     336,   117,   139,   226,   233,   235,   329,   333,   372,   373,
     4049     376,   377,   140,   112,   136,   283,   119,   140,   181,    77,
     4050      78,   142,   278,   140,   140,   140,    77,    78,   114,   157,
     4051     231,   315,   324,   325,   326,   327,   328,   329,   333,   337,
     4052     338,   339,   340,   341,   347,     3,    30,    81,   246,     3,
     4053       5,    77,   116,   157,   225,   236,   240,   242,   251,   291,
     4054     329,   333,   376,   223,   225,   235,   244,   248,   250,   290,
     4055     329,   333,    35,   241,   241,   236,   242,   140,   241,   236,
     4056     241,   236,   318,   241,   236,   121,   140,   140,     0,   139,
     4057     114,   181,   318,   318,   139,   116,   233,   235,   374,   278,
     4058     278,   136,   235,   114,   157,   315,   325,   329,   116,   157,
     4059     376,   312,   238,   119,   280,   320,   114,   296,   114,   114,
     4060      84,   146,   147,    40,    41,    43,    69,    75,    79,    82,
     4061      83,    85,    86,    87,    91,    92,   114,   116,   124,   125,
     4062     126,   127,   141,   145,   146,   148,   149,   156,   157,   158,
     4063     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
     4064     169,   170,   172,   175,   233,   281,   282,   298,   372,   377,
     4065     235,   115,   115,   115,   115,   115,   115,   115,   116,   233,
     4066     356,   374,   116,   122,   157,   172,   225,   226,   232,   235,
     4067     239,   240,   244,   247,   248,   250,   268,   269,   273,   274,
     4068     275,   276,   290,   356,   368,   369,   370,   371,   376,   377,
     4069     114,   329,   333,   376,   114,   121,   137,   116,   119,   157,
     4070     172,   284,   284,   120,   139,   121,   137,   114,   121,   137,
     4071     121,   137,   121,   137,   325,   326,   327,   328,   338,   339,
     4072     340,   341,   235,   324,   337,   121,   140,    67,   317,   116,
     4073     318,   355,   356,   318,   318,   181,   139,   114,   318,   355,
     4074     318,   318,   235,   315,   114,   114,   234,   235,   233,   235,
     4075     139,   233,   372,   377,   181,   139,   278,   283,   225,   240,
     4076     329,   333,   181,   139,   300,   235,   244,   137,   235,   235,
     4077      78,   114,   119,   280,   291,   235,   300,   137,   137,   311,
     4078     139,   144,   277,     3,   140,   215,   216,   230,   232,   235,
     4079     139,   317,   114,   317,   172,   325,   235,   114,   139,   278,
     4080     119,    35,    36,    37,    38,   233,   292,   293,   295,   264,
     4081     280,   263,   139,   133,   136,   297,   139,    10,    75,    77,
     4082      78,   321,   322,   323,   115,    84,   114,   156,   114,   156,
     4083     159,   114,   156,   114,   114,   156,   156,   116,   172,   177,
     4084     181,   281,   376,   139,    86,    90,    91,    92,   114,   116,
     4085     118,   119,   102,   103,   104,   105,   106,   107,   108,   109,
     4086     110,   111,   112,   136,   174,   159,   159,   122,   128,   129,
     4087     124,   125,    93,    94,    95,    96,   130,   131,    97,    98,
     4088     123,   132,   133,    99,   100,   134,   114,   157,   351,   352,
     4089     353,   354,   355,   115,   121,   114,   355,   356,   114,   355,
     4090     356,   139,   233,   374,   117,   139,   140,   233,   235,   367,
     4091     368,   376,   377,   140,   114,   116,   157,   325,   342,   343,
     4092     344,   345,   346,   347,   348,   349,   350,   356,   357,   358,
     4093     359,   360,   361,   362,   157,   376,   235,   140,   140,   157,
     4094     233,   235,   369,   278,   233,   356,   369,   278,   139,   139,
     4095     139,   139,    75,   116,   118,   145,   280,   284,   285,   286,
     4096     287,   288,   139,   139,   139,   139,   139,   139,   115,   115,
     4097     115,   115,   115,   115,   115,   324,   337,   318,   137,   114,
     4098     283,   117,   215,   139,   315,   177,   282,   177,   282,   315,
     4099     116,   215,   317,   181,   139,   215,   298,   255,   253,   235,
     4100     270,   271,   272,   275,   276,   115,   121,   181,   139,   122,
     4101     172,   139,   232,   235,   269,   368,   376,   309,   310,   114,
     4102     157,   342,   115,   121,   136,   379,   280,   121,   378,   136,
     4103     265,   119,   292,   114,   119,   280,   282,   292,   115,   121,
     4104     114,   137,   281,   116,   281,   281,   151,   172,   282,   281,
     4105     139,   115,   121,   115,   115,   121,   172,   116,   144,   150,
     4106     151,   139,   116,   144,   150,   172,   159,   159,   159,   160,
     4107     160,   161,   161,   162,   162,   162,   162,   163,   163,   164,
     4108     165,   166,   167,   168,   135,   177,   139,   352,   353,   354,
     4109     235,   351,   318,   318,   172,   282,   139,   139,   233,   356,
     4110     369,   235,   239,   117,   376,   117,   114,   139,   325,   343,
     4111     344,   345,   348,   358,   359,   360,   117,   139,   235,   342,
     4112     346,   357,   114,   318,   361,   379,   318,   318,   379,   114,
     4113     318,   361,   318,   318,   318,   318,   356,   233,   367,   377,
     4114     278,   117,   121,   117,   121,   379,   233,   369,   379,   266,
     4115     267,   268,   269,   266,   278,   172,   139,   116,   280,   135,
     4116     121,   378,   284,   116,   135,   288,    31,   217,   218,   278,
     4117     266,   144,   315,   144,   114,   318,   355,   356,   114,   318,
     4118     355,   356,   315,   146,   356,   181,   270,   115,   115,   115,
     4119     115,   139,   181,   215,   181,   115,    43,   120,   233,   256,
     4120     257,   372,   119,   140,   140,   144,   230,   140,   140,   266,
     4121     114,   157,   376,   140,   120,   235,   293,   172,   294,   280,
     4122     120,   170,   171,   264,   140,   139,   139,   114,   140,   115,
     4123     322,   150,   115,   139,   121,   115,   115,   115,   115,   172,
     4124     119,   159,   172,   173,   176,   121,   139,   115,   121,   172,
     4125     139,   120,   170,   135,   270,   115,   115,   115,   351,   270,
     4126     270,   233,   369,   116,   122,   157,   172,   172,   235,   348,
     4127     270,   115,   115,   115,   115,   115,   115,   115,     7,   235,
     4128     342,   346,   357,   139,   139,   379,   139,   139,   140,   140,
     4129     140,   140,   283,   170,   171,   172,   316,   139,   284,   286,
     4130     120,   139,   219,   280,    43,    44,    46,    49,    50,    51,
     4131      52,    53,    54,    55,    56,    60,    64,    65,    67,    75,
     4132      77,    78,    79,   132,   145,   177,   178,   179,   180,   181,
     4133     182,   183,   185,   186,   198,   200,   201,   206,   220,   278,
     4134     314,    31,   140,   136,   139,   139,   317,   115,   140,   181,
     4135     119,   233,   257,   114,   135,   157,   258,   259,   261,   324,
     4136     325,   337,   355,   363,   364,   365,   366,   121,   137,   280,
     4137     255,   115,   121,   117,   117,   140,   235,   121,   379,   296,
     4138     265,   378,   115,   292,   223,   225,   233,   304,   305,   306,
     4139     307,   298,   115,   115,   144,   285,   121,   140,   176,    82,
     4140      85,    87,   144,   152,   153,   154,   151,   140,   152,   170,
     4141     140,   114,   318,   355,   356,   140,   140,   139,   140,   140,
     4142     140,   172,   115,   140,   114,   318,   355,   356,   114,   318,
     4143     361,   114,   318,   361,   356,   234,     7,   122,   140,   172,
     4144     270,   270,   269,   273,   273,   274,   115,   121,   121,   115,
     4145     101,   127,   140,   140,   152,   284,   172,   121,   137,   220,
     4146     314,   114,   114,   179,   114,   114,   137,   278,   137,   278,
     4147     122,   278,   178,   114,   181,   173,   173,    11,   207,   149,
     4148     137,   140,   139,   140,   135,   219,   115,   172,   270,   270,
     4149     283,   318,   115,   255,   258,   137,   325,   364,   365,   366,
     4150     171,   235,   363,   121,   137,   260,   261,   260,   318,   318,
     4151     280,   120,   139,   115,   139,   120,   140,   315,   120,   139,
     4152     140,   140,   115,   119,   115,   378,   173,   117,   140,   155,
     4153     116,   153,   155,   155,   121,   140,    90,   118,   117,   140,
     4154     115,   139,   115,   115,   117,   117,   117,   140,   115,   139,
     4155     139,   139,   172,   172,   140,   117,   140,   140,   140,   140,
     4156     139,   139,   171,   171,   117,   117,   140,   280,   177,   177,
     4157      50,   177,   139,   137,   137,   177,   137,   137,   177,    61,
     4158      62,    63,   202,   203,   204,   137,    66,   137,    54,   114,
    41524159     119,   183,   120,   318,   137,   140,   140,   120,   137,   115,
    41534160     115,   115,   363,   318,   101,   275,   276,   115,   305,   121,
    4154      137,   121,   137,   120,   303,   135,   146,   115,   115,   135,
    4155      120,   117,    86,   139,   153,   117,   116,   153,   116,   153,
    4156      117,   270,   117,   270,   270,   270,   140,   140,   117,   117,
    4157      115,   115,   117,   121,   101,   269,   101,   140,   117,   115,
    4158      115,   114,   115,   178,   199,   220,   224,   235,   239,   137,
    4159      115,   114,   114,   181,   204,    61,    62,   172,   150,   179,
    4160      115,   115,   114,   318,   355,   356,   259,   119,   139,   139,
    4161      304,   146,   211,   114,   137,   211,   152,   139,   139,   140,
    4162      140,   140,   140,   117,   117,   139,   140,   117,   179,    47,
    4163       48,   119,   189,   190,   191,   177,   179,   140,   115,   178,
    4164      235,   119,   191,   101,   139,   101,   139,   114,   114,   137,
    4165      120,   139,   139,   278,   315,   120,   121,   135,   171,   115,
    4166      140,   152,   152,   115,   115,   115,   115,   273,    45,   171,
    4167      187,   188,   316,   135,   139,   179,   189,   115,   137,   179,
    4168      137,   139,   115,   139,   115,   139,   101,   139,   101,   139,
    4169      137,   270,   304,   146,   144,   212,   115,   137,   117,   140,
    4170      140,   179,   101,   121,   135,   140,   213,   214,   220,   137,
    4171      178,   178,   213,   181,   205,   233,   372,   181,   205,   115,
    4172      139,   115,   139,   140,   120,   115,   121,   117,   117,   171,
    4173      187,   190,   192,   193,   139,   137,   190,   194,   195,   140,
    4174      114,   157,   315,   363,   144,   140,   181,   205,   181,   205,
    4175      115,   114,   137,   144,   179,   184,   120,   190,   220,   178,
    4176       59,   184,   197,   120,   190,   115,   235,   115,   140,   140,
    4177      298,   179,   184,   137,   196,   197,   184,   197,   181,   181,
    4178      115,   115,   115,   196,   140,   140,   181,   181,   140,   140
     4161     137,   121,   137,   120,   303,   120,   117,    86,   139,   153,
     4162     117,   116,   153,   116,   153,   117,   270,   117,   270,   270,
     4163     270,   140,   140,   117,   117,   115,   115,   117,   121,   101,
     4164     269,   101,   140,   117,   115,   115,   114,   115,   178,   199,
     4165     220,   224,   235,   239,   137,   115,   114,   114,   181,   204,
     4166      61,    62,   172,   114,   146,   150,   179,   115,   115,   114,
     4167     318,   355,   356,   259,   119,   139,   139,   304,   152,   139,
     4168     139,   140,   140,   140,   140,   117,   117,   139,   140,   117,
     4169     179,    47,    48,   119,   189,   190,   191,   177,   179,   140,
     4170     115,   178,   235,   119,   191,   101,   139,   101,   139,   114,
     4171     114,   137,   146,   115,   135,   120,   139,   139,   278,   315,
     4172     120,   140,   152,   152,   115,   115,   115,   115,   273,    45,
     4173     171,   187,   188,   316,   135,   139,   179,   189,   115,   137,
     4174     179,   137,   139,   115,   139,   115,   139,   101,   139,   101,
     4175     139,   135,   137,   116,   146,   208,   209,   210,   137,   270,
     4176     304,   117,   140,   140,   179,   101,   121,   135,   140,   213,
     4177     214,   220,   137,   178,   178,   213,   181,   205,   233,   372,
     4178     181,   205,   115,   139,   115,   139,   135,   171,   114,   115,
     4179     135,   121,   140,   120,   117,   117,   171,   187,   190,   192,
     4180     193,   139,   137,   190,   194,   195,   140,   114,   157,   315,
     4181     363,   144,   140,   181,   205,   181,   205,   208,   117,   171,
     4182     137,   208,   210,   115,   114,   179,   184,   120,   190,   220,
     4183     178,    59,   184,   197,   120,   190,   115,   235,   115,   140,
     4184     140,   135,   146,   115,   115,   135,   298,   179,   184,   137,
     4185     196,   197,   184,   197,   181,   181,   115,   115,   146,   211,
     4186     114,   137,   211,   115,   196,   140,   140,   181,   181,   121,
     4187     135,   171,   115,   140,   140,   146,   144,   212,   115,   137,
     4188     115,   121,   137,   144
    41794189};
    41804190
     
    79147924/* Line 1806 of yacc.c  */
    79157925#line 2091 "parser.yy"
    7916     {}
     7926    {
     7927                        (yyval.decl) = DeclarationNode::newAsmStmt( new StatementNode( build_asmstmt( false, (yyvsp[(3) - (5)].constant), 0 ) ) );
     7928                }
    79177929    break;
    79187930
     
    79207932
    79217933/* Line 1806 of yacc.c  */
    7922 #line 2093 "parser.yy"
     7934#line 2095 "parser.yy"
    79237935    {
    79247936                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    79307942
    79317943/* Line 1806 of yacc.c  */
    7932 #line 2098 "parser.yy"
     7944#line 2100 "parser.yy"
    79337945    {
    79347946                        linkage = linkageStack.top();
     
    79417953
    79427954/* Line 1806 of yacc.c  */
    7943 #line 2104 "parser.yy"
     7955#line 2106 "parser.yy"
    79447956    {
    79457957                        distExt( (yyvsp[(2) - (2)].decl) );                                                             // mark all fields in list
     
    79517963
    79527964/* Line 1806 of yacc.c  */
    7953 #line 2118 "parser.yy"
     7965#line 2120 "parser.yy"
    79547966    {
    79557967                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79627974
    79637975/* Line 1806 of yacc.c  */
    7964 #line 2124 "parser.yy"
     7976#line 2126 "parser.yy"
    79657977    {
    79667978                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79737985
    79747986/* Line 1806 of yacc.c  */
    7975 #line 2133 "parser.yy"
     7987#line 2135 "parser.yy"
    79767988    {
    79777989                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79847996
    79857997/* Line 1806 of yacc.c  */
    7986 #line 2139 "parser.yy"
     7998#line 2141 "parser.yy"
    79877999    {
    79888000                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79958007
    79968008/* Line 1806 of yacc.c  */
    7997 #line 2145 "parser.yy"
     8009#line 2147 "parser.yy"
    79988010    {
    79998011                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80068018
    80078019/* Line 1806 of yacc.c  */
    8008 #line 2151 "parser.yy"
     8020#line 2153 "parser.yy"
    80098021    {
    80108022                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80178029
    80188030/* Line 1806 of yacc.c  */
    8019 #line 2157 "parser.yy"
     8031#line 2159 "parser.yy"
    80208032    {
    80218033                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80288040
    80298041/* Line 1806 of yacc.c  */
    8030 #line 2165 "parser.yy"
     8042#line 2167 "parser.yy"
    80318043    {
    80328044                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80398051
    80408052/* Line 1806 of yacc.c  */
    8041 #line 2171 "parser.yy"
     8053#line 2173 "parser.yy"
    80428054    {
    80438055                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80508062
    80518063/* Line 1806 of yacc.c  */
    8052 #line 2179 "parser.yy"
     8064#line 2181 "parser.yy"
    80538065    {
    80548066                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80618073
    80628074/* Line 1806 of yacc.c  */
    8063 #line 2185 "parser.yy"
     8075#line 2187 "parser.yy"
    80648076    {
    80658077                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80728084
    80738085/* Line 1806 of yacc.c  */
    8074 #line 2200 "parser.yy"
     8086#line 2202 "parser.yy"
    80758087    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    80768088    break;
     
    80798091
    80808092/* Line 1806 of yacc.c  */
    8081 #line 2205 "parser.yy"
     8093#line 2207 "parser.yy"
    80828094    { (yyval.decl) = nullptr; }
    80838095    break;
     
    80868098
    80878099/* Line 1806 of yacc.c  */
    8088 #line 2207 "parser.yy"
     8100#line 2209 "parser.yy"
    80898101    {
    80908102                        DeclarationNode * name = new DeclarationNode();
     
    80978109
    80988110/* Line 1806 of yacc.c  */
    8099 #line 2216 "parser.yy"
     8111#line 2218 "parser.yy"
    81008112    { (yyval.decl) = nullptr; }
    81018113    break;
     
    81048116
    81058117/* Line 1806 of yacc.c  */
    8106 #line 2223 "parser.yy"
     8118#line 2225 "parser.yy"
    81078119    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    81088120    break;
     
    81118123
    81128124/* Line 1806 of yacc.c  */
    8113 #line 2228 "parser.yy"
     8125#line 2230 "parser.yy"
    81148126    { (yyval.decl) = (yyvsp[(4) - (6)].decl); }
    81158127    break;
     
    81188130
    81198131/* Line 1806 of yacc.c  */
    8120 #line 2234 "parser.yy"
     8132#line 2236 "parser.yy"
    81218133    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    81228134    break;
     
    81258137
    81268138/* Line 1806 of yacc.c  */
    8127 #line 2239 "parser.yy"
     8139#line 2241 "parser.yy"
    81288140    { (yyval.decl) = nullptr; }
    81298141    break;
     
    81328144
    81338145/* Line 1806 of yacc.c  */
    8134 #line 2241 "parser.yy"
     8146#line 2243 "parser.yy"
    81358147    { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (1)].tok) ); }
    81368148    break;
     
    81398151
    81408152/* Line 1806 of yacc.c  */
    8141 #line 2243 "parser.yy"
     8153#line 2245 "parser.yy"
    81428154    { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    81438155    break;
     
    81468158
    81478159/* Line 1806 of yacc.c  */
    8148 #line 2251 "parser.yy"
     8160#line 2253 "parser.yy"
    81498161    { (yyval.tok) = Token{ new string( "__const__" ) }; }
    81508162    break;
     
    81538165
    81548166/* Line 1806 of yacc.c  */
    8155 #line 2286 "parser.yy"
     8167#line 2288 "parser.yy"
    81568168    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81578169    break;
    81588170
    81598171  case 568:
    8160 
    8161 /* Line 1806 of yacc.c  */
    8162 #line 2289 "parser.yy"
    8163     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8164     break;
    8165 
    8166   case 569:
    81678172
    81688173/* Line 1806 of yacc.c  */
     
    81718176    break;
    81728177
     8178  case 569:
     8179
     8180/* Line 1806 of yacc.c  */
     8181#line 2293 "parser.yy"
     8182    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8183    break;
     8184
    81738185  case 570:
    81748186
    81758187/* Line 1806 of yacc.c  */
    8176 #line 2296 "parser.yy"
     8188#line 2298 "parser.yy"
    81778189    {
    81788190                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    81848196
    81858197/* Line 1806 of yacc.c  */
    8186 #line 2301 "parser.yy"
     8198#line 2303 "parser.yy"
    81878199    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81888200    break;
     
    81918203
    81928204/* Line 1806 of yacc.c  */
    8193 #line 2306 "parser.yy"
     8205#line 2308 "parser.yy"
    81948206    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81958207    break;
     
    81988210
    81998211/* Line 1806 of yacc.c  */
    8200 #line 2308 "parser.yy"
     8212#line 2310 "parser.yy"
    82018213    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82028214    break;
     
    82058217
    82068218/* Line 1806 of yacc.c  */
    8207 #line 2310 "parser.yy"
     8219#line 2312 "parser.yy"
    82088220    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    82098221    break;
     
    82128224
    82138225/* Line 1806 of yacc.c  */
    8214 #line 2315 "parser.yy"
     8226#line 2317 "parser.yy"
    82158227    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82168228    break;
    82178229
    82188230  case 576:
    8219 
    8220 /* Line 1806 of yacc.c  */
    8221 #line 2317 "parser.yy"
    8222     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8223     break;
    8224 
    8225   case 577:
    82268231
    82278232/* Line 1806 of yacc.c  */
     
    82308235    break;
    82318236
     8237  case 577:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2321 "parser.yy"
     8241    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8242    break;
     8243
    82328244  case 578:
    82338245
    82348246/* Line 1806 of yacc.c  */
    8235 #line 2321 "parser.yy"
     8247#line 2323 "parser.yy"
    82368248    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82378249    break;
     
    82408252
    82418253/* Line 1806 of yacc.c  */
    8242 #line 2326 "parser.yy"
     8254#line 2328 "parser.yy"
    82438255    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    82448256    break;
     
    82478259
    82488260/* Line 1806 of yacc.c  */
    8249 #line 2328 "parser.yy"
     8261#line 2330 "parser.yy"
    82508262    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82518263    break;
     
    82548266
    82558267/* Line 1806 of yacc.c  */
    8256 #line 2337 "parser.yy"
     8268#line 2339 "parser.yy"
    82578269    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82588270    break;
     
    82618273
    82628274/* Line 1806 of yacc.c  */
    8263 #line 2340 "parser.yy"
     8275#line 2342 "parser.yy"
    82648276    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82658277    break;
     
    82688280
    82698281/* Line 1806 of yacc.c  */
    8270 #line 2345 "parser.yy"
     8282#line 2347 "parser.yy"
    82718283    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    82728284    break;
     
    82758287
    82768288/* Line 1806 of yacc.c  */
    8277 #line 2347 "parser.yy"
     8289#line 2349 "parser.yy"
    82788290    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    82798291    break;
     
    82828294
    82838295/* Line 1806 of yacc.c  */
    8284 #line 2349 "parser.yy"
     8296#line 2351 "parser.yy"
    82858297    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82868298    break;
     
    82898301
    82908302/* Line 1806 of yacc.c  */
    8291 #line 2354 "parser.yy"
     8303#line 2356 "parser.yy"
    82928304    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82938305    break;
     
    82968308
    82978309/* Line 1806 of yacc.c  */
    8298 #line 2356 "parser.yy"
     8310#line 2358 "parser.yy"
    82998311    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83008312    break;
     
    83038315
    83048316/* Line 1806 of yacc.c  */
    8305 #line 2358 "parser.yy"
     8317#line 2360 "parser.yy"
    83068318    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83078319    break;
    83088320
    83098321  case 590:
    8310 
    8311 /* Line 1806 of yacc.c  */
    8312 #line 2363 "parser.yy"
    8313     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8314     break;
    8315 
    8316   case 591:
    83178322
    83188323/* Line 1806 of yacc.c  */
     
    83218326    break;
    83228327
     8328  case 591:
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2367 "parser.yy"
     8332    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8333    break;
     8334
    83238335  case 592:
    83248336
    83258337/* Line 1806 of yacc.c  */
    8326 #line 2367 "parser.yy"
     8338#line 2369 "parser.yy"
    83278339    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83288340    break;
     
    83318343
    83328344/* Line 1806 of yacc.c  */
    8333 #line 2385 "parser.yy"
     8345#line 2387 "parser.yy"
    83348346    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    83358347    break;
     
    83388350
    83398351/* Line 1806 of yacc.c  */
    8340 #line 2387 "parser.yy"
     8352#line 2389 "parser.yy"
    83418353    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83428354    break;
     
    83458357
    83468358/* Line 1806 of yacc.c  */
    8347 #line 2389 "parser.yy"
     8359#line 2391 "parser.yy"
    83488360    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83498361    break;
     
    83528364
    83538365/* Line 1806 of yacc.c  */
    8354 #line 2394 "parser.yy"
     8366#line 2396 "parser.yy"
    83558367    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83568368    break;
     
    83598371
    83608372/* Line 1806 of yacc.c  */
    8361 #line 2396 "parser.yy"
     8373#line 2398 "parser.yy"
    83628374    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83638375    break;
     
    83668378
    83678379/* Line 1806 of yacc.c  */
    8368 #line 2398 "parser.yy"
     8380#line 2400 "parser.yy"
    83698381    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83708382    break;
    83718383
    83728384  case 602:
    8373 
    8374 /* Line 1806 of yacc.c  */
    8375 #line 2403 "parser.yy"
    8376     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8377     break;
    8378 
    8379   case 603:
    83808385
    83818386/* Line 1806 of yacc.c  */
     
    83848389    break;
    83858390
     8391  case 603:
     8392
     8393/* Line 1806 of yacc.c  */
     8394#line 2407 "parser.yy"
     8395    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8396    break;
     8397
    83868398  case 604:
    83878399
    83888400/* Line 1806 of yacc.c  */
    8389 #line 2407 "parser.yy"
     8401#line 2409 "parser.yy"
    83908402    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83918403    break;
     
    83948406
    83958407/* Line 1806 of yacc.c  */
    8396 #line 2422 "parser.yy"
     8408#line 2424 "parser.yy"
    83978409    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83988410    break;
    83998411
    84008412  case 607:
    8401 
    8402 /* Line 1806 of yacc.c  */
    8403 #line 2425 "parser.yy"
    8404     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8405     break;
    8406 
    8407   case 608:
    84088413
    84098414/* Line 1806 of yacc.c  */
     
    84128417    break;
    84138418
     8419  case 608:
     8420
     8421/* Line 1806 of yacc.c  */
     8422#line 2429 "parser.yy"
     8423    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8424    break;
     8425
    84148426  case 610:
    84158427
    84168428/* Line 1806 of yacc.c  */
    8417 #line 2433 "parser.yy"
     8429#line 2435 "parser.yy"
    84188430    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84198431    break;
     
    84228434
    84238435/* Line 1806 of yacc.c  */
    8424 #line 2438 "parser.yy"
     8436#line 2440 "parser.yy"
    84258437    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84268438    break;
     
    84298441
    84308442/* Line 1806 of yacc.c  */
    8431 #line 2440 "parser.yy"
     8443#line 2442 "parser.yy"
    84328444    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84338445    break;
     
    84368448
    84378449/* Line 1806 of yacc.c  */
    8438 #line 2442 "parser.yy"
     8450#line 2444 "parser.yy"
    84398451    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    84408452    break;
     
    84438455
    84448456/* Line 1806 of yacc.c  */
    8445 #line 2447 "parser.yy"
     8457#line 2449 "parser.yy"
    84468458    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84478459    break;
    84488460
    84498461  case 615:
    8450 
    8451 /* Line 1806 of yacc.c  */
    8452 #line 2449 "parser.yy"
    8453     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8454     break;
    8455 
    8456   case 616:
    84578462
    84588463/* Line 1806 of yacc.c  */
     
    84618466    break;
    84628467
     8468  case 616:
     8469
     8470/* Line 1806 of yacc.c  */
     8471#line 2453 "parser.yy"
     8472    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8473    break;
     8474
    84638475  case 617:
    84648476
    84658477/* Line 1806 of yacc.c  */
    8466 #line 2453 "parser.yy"
     8478#line 2455 "parser.yy"
    84678479    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84688480    break;
     
    84718483
    84728484/* Line 1806 of yacc.c  */
    8473 #line 2458 "parser.yy"
     8485#line 2460 "parser.yy"
    84748486    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84758487    break;
     
    84788490
    84798491/* Line 1806 of yacc.c  */
    8480 #line 2460 "parser.yy"
     8492#line 2462 "parser.yy"
    84818493    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84828494    break;
     
    84858497
    84868498/* Line 1806 of yacc.c  */
    8487 #line 2462 "parser.yy"
     8499#line 2464 "parser.yy"
    84888500    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84898501    break;
     
    84928504
    84938505/* Line 1806 of yacc.c  */
    8494 #line 2472 "parser.yy"
     8506#line 2474 "parser.yy"
    84958507    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84968508    break;
    84978509
    84988510  case 623:
    8499 
    8500 /* Line 1806 of yacc.c  */
    8501 #line 2475 "parser.yy"
    8502     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8503     break;
    8504 
    8505   case 624:
    85068511
    85078512/* Line 1806 of yacc.c  */
     
    85108515    break;
    85118516
     8517  case 624:
     8518
     8519/* Line 1806 of yacc.c  */
     8520#line 2479 "parser.yy"
     8521    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8522    break;
     8523
    85128524  case 625:
    85138525
    85148526/* Line 1806 of yacc.c  */
    8515 #line 2482 "parser.yy"
     8527#line 2484 "parser.yy"
    85168528    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85178529    break;
     
    85208532
    85218533/* Line 1806 of yacc.c  */
    8522 #line 2484 "parser.yy"
     8534#line 2486 "parser.yy"
    85238535    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85248536    break;
     
    85278539
    85288540/* Line 1806 of yacc.c  */
    8529 #line 2486 "parser.yy"
     8541#line 2488 "parser.yy"
    85308542    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    85318543    break;
     
    85348546
    85358547/* Line 1806 of yacc.c  */
    8536 #line 2491 "parser.yy"
     8548#line 2493 "parser.yy"
    85378549    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85388550    break;
    85398551
    85408552  case 629:
    8541 
    8542 /* Line 1806 of yacc.c  */
    8543 #line 2493 "parser.yy"
    8544     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8545     break;
    8546 
    8547   case 630:
    85488553
    85498554/* Line 1806 of yacc.c  */
     
    85528557    break;
    85538558
     8559  case 630:
     8560
     8561/* Line 1806 of yacc.c  */
     8562#line 2497 "parser.yy"
     8563    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8564    break;
     8565
    85548566  case 631:
    85558567
    85568568/* Line 1806 of yacc.c  */
    8557 #line 2497 "parser.yy"
     8569#line 2499 "parser.yy"
    85588570    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85598571    break;
     
    85628574
    85638575/* Line 1806 of yacc.c  */
    8564 #line 2502 "parser.yy"
     8576#line 2504 "parser.yy"
    85658577    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85668578    break;
     
    85698581
    85708582/* Line 1806 of yacc.c  */
    8571 #line 2504 "parser.yy"
     8583#line 2506 "parser.yy"
    85728584    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85738585    break;
     
    85768588
    85778589/* Line 1806 of yacc.c  */
    8578 #line 2506 "parser.yy"
     8590#line 2508 "parser.yy"
    85798591    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85808592    break;
     
    85838595
    85848596/* Line 1806 of yacc.c  */
    8585 #line 2519 "parser.yy"
     8597#line 2521 "parser.yy"
    85868598    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85878599    break;
    85888600
    85898601  case 637:
    8590 
    8591 /* Line 1806 of yacc.c  */
    8592 #line 2522 "parser.yy"
    8593     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8594     break;
    8595 
    8596   case 638:
    85978602
    85988603/* Line 1806 of yacc.c  */
     
    86018606    break;
    86028607
     8608  case 638:
     8609
     8610/* Line 1806 of yacc.c  */
     8611#line 2526 "parser.yy"
     8612    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8613    break;
     8614
    86038615  case 639:
    86048616
    86058617/* Line 1806 of yacc.c  */
    8606 #line 2529 "parser.yy"
     8618#line 2531 "parser.yy"
    86078619    {
    86088620                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    86148626
    86158627/* Line 1806 of yacc.c  */
    8616 #line 2534 "parser.yy"
     8628#line 2536 "parser.yy"
    86178629    {
    86188630                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    86248636
    86258637/* Line 1806 of yacc.c  */
    8626 #line 2542 "parser.yy"
     8638#line 2544 "parser.yy"
    86278639    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86288640    break;
     
    86318643
    86328644/* Line 1806 of yacc.c  */
    8633 #line 2544 "parser.yy"
     8645#line 2546 "parser.yy"
    86348646    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86358647    break;
     
    86388650
    86398651/* Line 1806 of yacc.c  */
    8640 #line 2546 "parser.yy"
     8652#line 2548 "parser.yy"
    86418653    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    86428654    break;
     
    86458657
    86468658/* Line 1806 of yacc.c  */
    8647 #line 2551 "parser.yy"
     8659#line 2553 "parser.yy"
    86488660    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    86498661    break;
     
    86528664
    86538665/* Line 1806 of yacc.c  */
    8654 #line 2553 "parser.yy"
     8666#line 2555 "parser.yy"
    86558667    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86568668    break;
     
    86598671
    86608672/* Line 1806 of yacc.c  */
    8661 #line 2558 "parser.yy"
     8673#line 2560 "parser.yy"
    86628674    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    86638675    break;
     
    86668678
    86678679/* Line 1806 of yacc.c  */
    8668 #line 2560 "parser.yy"
     8680#line 2562 "parser.yy"
    86698681    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86708682    break;
    86718683
    86728684  case 649:
    8673 
    8674 /* Line 1806 of yacc.c  */
    8675 #line 2578 "parser.yy"
    8676     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8677     break;
    8678 
    8679   case 650:
    86808685
    86818686/* Line 1806 of yacc.c  */
     
    86848689    break;
    86858690
     8691  case 650:
     8692
     8693/* Line 1806 of yacc.c  */
     8694#line 2582 "parser.yy"
     8695    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8696    break;
     8697
    86868698  case 651:
    86878699
    86888700/* Line 1806 of yacc.c  */
    8689 #line 2585 "parser.yy"
     8701#line 2587 "parser.yy"
    86908702    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    86918703    break;
     
    86948706
    86958707/* Line 1806 of yacc.c  */
    8696 #line 2587 "parser.yy"
     8708#line 2589 "parser.yy"
    86978709    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    86988710    break;
     
    87018713
    87028714/* Line 1806 of yacc.c  */
    8703 #line 2589 "parser.yy"
     8715#line 2591 "parser.yy"
    87048716    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87058717    break;
     
    87088720
    87098721/* Line 1806 of yacc.c  */
    8710 #line 2591 "parser.yy"
     8722#line 2593 "parser.yy"
    87118723    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87128724    break;
     
    87158727
    87168728/* Line 1806 of yacc.c  */
    8717 #line 2593 "parser.yy"
     8729#line 2595 "parser.yy"
    87188730    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    87198731    break;
    87208732
    87218733  case 657:
    8722 
    8723 /* Line 1806 of yacc.c  */
    8724 #line 2599 "parser.yy"
    8725     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8726     break;
    8727 
    8728   case 658:
    87298734
    87308735/* Line 1806 of yacc.c  */
     
    87338738    break;
    87348739
     8740  case 658:
     8741
     8742/* Line 1806 of yacc.c  */
     8743#line 2603 "parser.yy"
     8744    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8745    break;
     8746
    87358747  case 659:
    87368748
    87378749/* Line 1806 of yacc.c  */
    8738 #line 2603 "parser.yy"
     8750#line 2605 "parser.yy"
    87398751    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87408752    break;
     
    87438755
    87448756/* Line 1806 of yacc.c  */
    8745 #line 2608 "parser.yy"
     8757#line 2610 "parser.yy"
    87468758    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    87478759    break;
     
    87508762
    87518763/* Line 1806 of yacc.c  */
    8752 #line 2610 "parser.yy"
     8764#line 2612 "parser.yy"
    87538765    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87548766    break;
     
    87578769
    87588770/* Line 1806 of yacc.c  */
    8759 #line 2612 "parser.yy"
     8771#line 2614 "parser.yy"
    87608772    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87618773    break;
     
    87648776
    87658777/* Line 1806 of yacc.c  */
    8766 #line 2618 "parser.yy"
     8778#line 2620 "parser.yy"
    87678779    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87688780    break;
     
    87718783
    87728784/* Line 1806 of yacc.c  */
    8773 #line 2620 "parser.yy"
     8785#line 2622 "parser.yy"
    87748786    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    87758787    break;
     
    87788790
    87798791/* Line 1806 of yacc.c  */
    8780 #line 2626 "parser.yy"
     8792#line 2628 "parser.yy"
    87818793    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    87828794    break;
     
    87858797
    87868798/* Line 1806 of yacc.c  */
    8787 #line 2628 "parser.yy"
     8799#line 2630 "parser.yy"
    87888800    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    87898801    break;
     
    87928804
    87938805/* Line 1806 of yacc.c  */
    8794 #line 2630 "parser.yy"
     8806#line 2632 "parser.yy"
    87958807    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    87968808    break;
     
    87998811
    88008812/* Line 1806 of yacc.c  */
    8801 #line 2632 "parser.yy"
     8813#line 2634 "parser.yy"
    88028814    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    88038815    break;
    88048816
    88058817  case 671:
    8806 
    8807 /* Line 1806 of yacc.c  */
    8808 #line 2667 "parser.yy"
    8809     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8810     break;
    8811 
    8812   case 672:
    88138818
    88148819/* Line 1806 of yacc.c  */
     
    88178822    break;
    88188823
     8824  case 672:
     8825
     8826/* Line 1806 of yacc.c  */
     8827#line 2671 "parser.yy"
     8828    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8829    break;
     8830
    88198831  case 673:
    88208832
    88218833/* Line 1806 of yacc.c  */
    8822 #line 2674 "parser.yy"
     8834#line 2676 "parser.yy"
    88238835    { (yyval.decl) = DeclarationNode::newPointer( nullptr ); }
    88248836    break;
     
    88278839
    88288840/* Line 1806 of yacc.c  */
    8829 #line 2676 "parser.yy"
     8841#line 2678 "parser.yy"
    88308842    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88318843    break;
     
    88348846
    88358847/* Line 1806 of yacc.c  */
    8836 #line 2678 "parser.yy"
     8848#line 2680 "parser.yy"
    88378849    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( nullptr ) ); }
    88388850    break;
     
    88418853
    88428854/* Line 1806 of yacc.c  */
    8843 #line 2680 "parser.yy"
     8855#line 2682 "parser.yy"
    88448856    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88458857    break;
     
    88488860
    88498861/* Line 1806 of yacc.c  */
    8850 #line 2682 "parser.yy"
     8862#line 2684 "parser.yy"
    88518863    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    88528864    break;
    88538865
    88548866  case 679:
    8855 
    8856 /* Line 1806 of yacc.c  */
    8857 #line 2688 "parser.yy"
    8858     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8859     break;
    8860 
    8861   case 680:
    88628867
    88638868/* Line 1806 of yacc.c  */
     
    88668871    break;
    88678872
     8873  case 680:
     8874
     8875/* Line 1806 of yacc.c  */
     8876#line 2692 "parser.yy"
     8877    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8878    break;
     8879
    88688880  case 681:
    88698881
    88708882/* Line 1806 of yacc.c  */
    8871 #line 2692 "parser.yy"
     8883#line 2694 "parser.yy"
    88728884    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88738885    break;
     
    88768888
    88778889/* Line 1806 of yacc.c  */
    8878 #line 2697 "parser.yy"
     8890#line 2699 "parser.yy"
    88798891    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    88808892    break;
     
    88838895
    88848896/* Line 1806 of yacc.c  */
    8885 #line 2699 "parser.yy"
     8897#line 2701 "parser.yy"
    88868898    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    88878899    break;
     
    88908902
    88918903/* Line 1806 of yacc.c  */
    8892 #line 2701 "parser.yy"
     8904#line 2703 "parser.yy"
    88938905    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88948906    break;
     
    88978909
    88988910/* Line 1806 of yacc.c  */
    8899 #line 2708 "parser.yy"
     8911#line 2710 "parser.yy"
    89008912    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    89018913    break;
     
    89048916
    89058917/* Line 1806 of yacc.c  */
    8906 #line 2719 "parser.yy"
     8918#line 2721 "parser.yy"
    89078919    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    89088920    break;
     
    89118923
    89128924/* Line 1806 of yacc.c  */
    8913 #line 2722 "parser.yy"
     8925#line 2724 "parser.yy"
    89148926    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    89158927    break;
     
    89188930
    89198931/* Line 1806 of yacc.c  */
    8920 #line 2724 "parser.yy"
     8932#line 2726 "parser.yy"
    89218933    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    89228934    break;
     
    89258937
    89268938/* Line 1806 of yacc.c  */
    8927 #line 2727 "parser.yy"
     8939#line 2729 "parser.yy"
    89288940    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    89298941    break;
     
    89328944
    89338945/* Line 1806 of yacc.c  */
    8934 #line 2729 "parser.yy"
     8946#line 2731 "parser.yy"
    89358947    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    89368948    break;
     
    89398951
    89408952/* Line 1806 of yacc.c  */
    8941 #line 2731 "parser.yy"
     8953#line 2733 "parser.yy"
    89428954    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    89438955    break;
    89448956
    89458957  case 695:
    8946 
    8947 /* Line 1806 of yacc.c  */
    8948 #line 2746 "parser.yy"
    8949     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8950     break;
    8951 
    8952   case 696:
    89538958
    89548959/* Line 1806 of yacc.c  */
     
    89578962    break;
    89588963
     8964  case 696:
     8965
     8966/* Line 1806 of yacc.c  */
     8967#line 2750 "parser.yy"
     8968    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8969    break;
     8970
    89598971  case 697:
    89608972
    89618973/* Line 1806 of yacc.c  */
    8962 #line 2753 "parser.yy"
     8974#line 2755 "parser.yy"
    89638975    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    89648976    break;
     
    89678979
    89688980/* Line 1806 of yacc.c  */
    8969 #line 2755 "parser.yy"
     8981#line 2757 "parser.yy"
    89708982    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    89718983    break;
     
    89748986
    89758987/* Line 1806 of yacc.c  */
    8976 #line 2757 "parser.yy"
     8988#line 2759 "parser.yy"
    89778989    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    89788990    break;
     
    89818993
    89828994/* Line 1806 of yacc.c  */
    8983 #line 2759 "parser.yy"
     8995#line 2761 "parser.yy"
    89848996    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    89858997    break;
     
    89889000
    89899001/* Line 1806 of yacc.c  */
    8990 #line 2761 "parser.yy"
     9002#line 2763 "parser.yy"
    89919003    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    89929004    break;
    89939005
    89949006  case 703:
    8995 
    8996 /* Line 1806 of yacc.c  */
    8997 #line 2767 "parser.yy"
    8998     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8999     break;
    9000 
    9001   case 704:
    90029007
    90039008/* Line 1806 of yacc.c  */
     
    90069011    break;
    90079012
     9013  case 704:
     9014
     9015/* Line 1806 of yacc.c  */
     9016#line 2771 "parser.yy"
     9017    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     9018    break;
     9019
    90089020  case 705:
    90099021
    90109022/* Line 1806 of yacc.c  */
    9011 #line 2771 "parser.yy"
     9023#line 2773 "parser.yy"
    90129024    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    90139025    break;
     
    90169028
    90179029/* Line 1806 of yacc.c  */
    9018 #line 2776 "parser.yy"
     9030#line 2778 "parser.yy"
    90199031    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    90209032    break;
     
    90239035
    90249036/* Line 1806 of yacc.c  */
    9025 #line 2778 "parser.yy"
     9037#line 2780 "parser.yy"
    90269038    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    90279039    break;
     
    90309042
    90319043/* Line 1806 of yacc.c  */
    9032 #line 2788 "parser.yy"
     9044#line 2790 "parser.yy"
    90339045    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90349046    break;
     
    90379049
    90389050/* Line 1806 of yacc.c  */
    9039 #line 2798 "parser.yy"
     9051#line 2800 "parser.yy"
    90409052    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90419053    break;
     
    90449056
    90459057/* Line 1806 of yacc.c  */
    9046 #line 2800 "parser.yy"
     9058#line 2802 "parser.yy"
    90479059    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90489060    break;
     
    90519063
    90529064/* Line 1806 of yacc.c  */
    9053 #line 2802 "parser.yy"
     9065#line 2804 "parser.yy"
    90549066    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90559067    break;
     
    90589070
    90599071/* Line 1806 of yacc.c  */
    9060 #line 2804 "parser.yy"
     9072#line 2806 "parser.yy"
    90619073    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90629074    break;
     
    90659077
    90669078/* Line 1806 of yacc.c  */
    9067 #line 2806 "parser.yy"
     9079#line 2808 "parser.yy"
    90689080    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90699081    break;
     
    90729084
    90739085/* Line 1806 of yacc.c  */
    9074 #line 2808 "parser.yy"
     9086#line 2810 "parser.yy"
    90759087    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90769088    break;
     
    90799091
    90809092/* Line 1806 of yacc.c  */
    9081 #line 2815 "parser.yy"
     9093#line 2817 "parser.yy"
    90829094    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90839095    break;
     
    90869098
    90879099/* Line 1806 of yacc.c  */
    9088 #line 2817 "parser.yy"
     9100#line 2819 "parser.yy"
    90899101    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90909102    break;
     
    90939105
    90949106/* Line 1806 of yacc.c  */
    9095 #line 2819 "parser.yy"
     9107#line 2821 "parser.yy"
    90969108    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90979109    break;
     
    91009112
    91019113/* Line 1806 of yacc.c  */
    9102 #line 2821 "parser.yy"
     9114#line 2823 "parser.yy"
    91039115    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    91049116    break;
     
    91079119
    91089120/* Line 1806 of yacc.c  */
    9109 #line 2823 "parser.yy"
     9121#line 2825 "parser.yy"
    91109122    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91119123    break;
     
    91149126
    91159127/* Line 1806 of yacc.c  */
    9116 #line 2826 "parser.yy"
     9128#line 2828 "parser.yy"
    91179129    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91189130    break;
     
    91219133
    91229134/* Line 1806 of yacc.c  */
    9123 #line 2828 "parser.yy"
     9135#line 2830 "parser.yy"
    91249136    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91259137    break;
     
    91289140
    91299141/* Line 1806 of yacc.c  */
    9130 #line 2830 "parser.yy"
     9142#line 2832 "parser.yy"
    91319143    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91329144    break;
     
    91359147
    91369148/* Line 1806 of yacc.c  */
    9137 #line 2832 "parser.yy"
     9149#line 2834 "parser.yy"
    91389150    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    91399151    break;
     
    91429154
    91439155/* Line 1806 of yacc.c  */
    9144 #line 2834 "parser.yy"
     9156#line 2836 "parser.yy"
    91459157    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91469158    break;
     
    91499161
    91509162/* Line 1806 of yacc.c  */
    9151 #line 2839 "parser.yy"
     9163#line 2841 "parser.yy"
    91529164    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    91539165    break;
     
    91569168
    91579169/* Line 1806 of yacc.c  */
    9158 #line 2841 "parser.yy"
     9170#line 2843 "parser.yy"
    91599171    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    91609172    break;
     
    91639175
    91649176/* Line 1806 of yacc.c  */
    9165 #line 2846 "parser.yy"
     9177#line 2848 "parser.yy"
    91669178    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    91679179    break;
     
    91709182
    91719183/* Line 1806 of yacc.c  */
    9172 #line 2848 "parser.yy"
     9184#line 2850 "parser.yy"
    91739185    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    91749186    break;
     
    91779189
    91789190/* Line 1806 of yacc.c  */
    9179 #line 2875 "parser.yy"
     9191#line 2877 "parser.yy"
    91809192    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    91819193    break;
     
    91849196
    91859197/* Line 1806 of yacc.c  */
    9186 #line 2886 "parser.yy"
     9198#line 2888 "parser.yy"
    91879199    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91889200    break;
     
    91919203
    91929204/* Line 1806 of yacc.c  */
    9193 #line 2888 "parser.yy"
     9205#line 2890 "parser.yy"
    91949206    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91959207    break;
     
    91989210
    91999211/* Line 1806 of yacc.c  */
    9200 #line 2890 "parser.yy"
     9212#line 2892 "parser.yy"
    92019213    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    92029214    break;
     
    92059217
    92069218/* Line 1806 of yacc.c  */
    9207 #line 2892 "parser.yy"
     9219#line 2894 "parser.yy"
    92089220    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    92099221    break;
     
    92129224
    92139225/* Line 1806 of yacc.c  */
    9214 #line 2894 "parser.yy"
     9226#line 2896 "parser.yy"
    92159227    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    92169228    break;
     
    92199231
    92209232/* Line 1806 of yacc.c  */
    9221 #line 2896 "parser.yy"
     9233#line 2898 "parser.yy"
    92229234    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    92239235    break;
     
    92269238
    92279239/* Line 1806 of yacc.c  */
    9228 #line 2903 "parser.yy"
     9240#line 2905 "parser.yy"
    92299241    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    92309242    break;
     
    92339245
    92349246/* Line 1806 of yacc.c  */
    9235 #line 2905 "parser.yy"
     9247#line 2907 "parser.yy"
    92369248    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    92379249    break;
     
    92409252
    92419253/* Line 1806 of yacc.c  */
    9242 #line 2907 "parser.yy"
     9254#line 2909 "parser.yy"
    92439255    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    92449256    break;
     
    92479259
    92489260/* Line 1806 of yacc.c  */
    9249 #line 2909 "parser.yy"
     9261#line 2911 "parser.yy"
    92509262    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    92519263    break;
     
    92549266
    92559267/* Line 1806 of yacc.c  */
    9256 #line 2911 "parser.yy"
     9268#line 2913 "parser.yy"
    92579269    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    92589270    break;
     
    92619273
    92629274/* Line 1806 of yacc.c  */
    9263 #line 2913 "parser.yy"
     9275#line 2915 "parser.yy"
    92649276    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    92659277    break;
     
    92689280
    92699281/* Line 1806 of yacc.c  */
    9270 #line 2918 "parser.yy"
     9282#line 2920 "parser.yy"
    92719283    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    92729284    break;
    92739285
    92749286  case 751:
    9275 
    9276 /* Line 1806 of yacc.c  */
    9277 #line 2925 "parser.yy"
    9278     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    9279     break;
    9280 
    9281   case 752:
    92829287
    92839288/* Line 1806 of yacc.c  */
     
    92869291    break;
    92879292
     9293  case 752:
     9294
     9295/* Line 1806 of yacc.c  */
     9296#line 2929 "parser.yy"
     9297    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     9298    break;
     9299
    92889300  case 755:
    92899301
    92909302/* Line 1806 of yacc.c  */
    9291 #line 2951 "parser.yy"
     9303#line 2953 "parser.yy"
    92929304    { (yyval.en) = nullptr; }
    92939305    break;
     
    92969308
    92979309/* Line 1806 of yacc.c  */
    9298 #line 2953 "parser.yy"
     9310#line 2955 "parser.yy"
    92999311    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    93009312    break;
     
    93039315
    93049316/* Line 1806 of yacc.c  */
    9305 #line 9306 "Parser/parser.cc"
     9317#line 9318 "Parser/parser.cc"
    93069318      default: break;
    93079319    }
     
    95349546
    95359547/* Line 2067 of yacc.c  */
    9536 #line 2956 "parser.yy"
     9548#line 2958 "parser.yy"
    95379549
    95389550// ----end of grammar----
  • TabularUnified src/Parser/parser.yy

    rf923b5f rd3a804f5  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  6 16:00:29 2017
    13 // Update Count     : 2181
     12// Last Modified On : Thu Feb  9 15:00:03 2017
     13// Update Count     : 2184
    1414//
    1515
     
    20882088        declaration
    20892089        | external_function_definition
    2090         | asm_statement                                                                         // GCC, global assembler statement
    2091                 {}
     2090        | ASM '(' string_literal ')' ';'                                        // GCC, global assembler statement
     2091                {
     2092                        $$ = DeclarationNode::newAsmStmt( new StatementNode( build_asmstmt( false, $3, 0 ) ) );
     2093                }
    20922094        | EXTERN STRINGliteral                                                          // C++-style linkage specifier
    20932095                {
  • TabularUnified src/SymTab/Validate.cc

    rf923b5f rd3a804f5  
    629629                } else {
    630630                        TypeDeclMap::const_iterator base = typedeclNames.find( typeInst->get_name() );
    631                         assert( base != typedeclNames.end() );
     631                        assertf( base != typedeclNames.end(), "Can't find name %s", typeInst->get_name().c_str() );
    632632                        typeInst->set_baseType( base->second );
    633633                } // if
  • TabularUnified src/SynTree/Declaration.cc

    rf923b5f rd3a804f5  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 18 23:49:57 2016
    13 // Update Count     : 13
     12// Last Modified On : Thu Feb  9 14:28:05 2017
     13// Update Count     : 16
    1414//
    1515
     
    6666
    6767
     68AsmDecl::AsmDecl( AsmStmt *stmt ) : Declaration( "", DeclarationNode::NoStorageClass, LinkageSpec::C ), stmt( stmt ) {
     69}
     70
     71AsmDecl::AsmDecl( const AsmDecl &other ) : Declaration( other ), stmt( maybeClone( other.stmt ) ) {
     72}
     73
     74AsmDecl::~AsmDecl() {
     75        delete stmt;
     76}
     77
     78void AsmDecl::print( std::ostream &os, int indent ) const {
     79        stmt->print( os, indent );
     80}
     81
     82void AsmDecl::printShort( std::ostream &os, int indent ) const {
     83        stmt->print( os, indent );
     84}
     85
     86
    6887// Local Variables: //
    6988// tab-width: 4 //
  • TabularUnified src/SynTree/Declaration.h

    rf923b5f rd3a804f5  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jan 20 15:07:29 2017
    13 // Update Count     : 53
     12// Last Modified On : Thu Feb  9 14:27:08 2017
     13// Update Count     : 56
    1414//
    1515
     
    304304};
    305305
     306class AsmDecl : public Declaration {
     307  public:
     308        AsmDecl( AsmStmt *stmt );
     309        AsmDecl( const AsmDecl &other );
     310        virtual ~AsmDecl();
     311
     312        AsmStmt *get_stmt() { return stmt; }
     313        void set_stmt( AsmStmt *newValue ) { stmt = newValue; }
     314
     315        virtual AsmDecl *clone() const { return new AsmDecl( *this ); }
     316        virtual void accept( Visitor &v ) { v.visit( this ); }
     317        virtual AsmDecl *acceptMutator( Mutator &m ) { return m.mutate( this ); }
     318        virtual void print( std::ostream &os, int indent = 0 ) const;
     319        virtual void printShort( std::ostream &os, int indent = 0 ) const;
     320  private:
     321        AsmStmt *stmt;
     322};
     323
    306324std::ostream & operator<<( std::ostream & out, const Declaration * decl );
    307325std::ostream & operator<<( std::ostream & os, const TypeDecl::Data & data );
  • TabularUnified src/SynTree/Mutator.cc

    rf923b5f rd3a804f5  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug  4 11:23:21 2016
    13 // Update Count     : 19
     12// Last Modified On : Thu Feb  9 14:22:56 2017
     13// Update Count     : 20
    1414//
    1515
     
    8686}
    8787
     88AsmDecl *Mutator::mutate( AsmDecl *asmDecl ) {
     89        asmDecl->set_stmt( maybeMutate( asmDecl->get_stmt(), *this ) );
     90        return asmDecl;
     91}
     92
     93
    8894CompoundStmt *Mutator::mutate( CompoundStmt *compoundStmt ) {
    8995        mutateAll( compoundStmt->get_kids(), *this );
     
    177183        return impCtorDtorStmt;
    178184}
     185
    179186
    180187Expression *Mutator::mutate( ApplicationExpr *applicationExpr ) {
     
    433440}
    434441
     442
    435443Type *Mutator::mutate( VoidType *voidType ) {
    436444        mutateAll( voidType->get_forall(), *this );
     
    533541}
    534542
     543
    535544Initializer *Mutator::mutate( SingleInit *singleInit ) {
    536545        singleInit->set_value( singleInit->get_value()->acceptMutator( *this ) );
     
    551560}
    552561
     562
    553563Subrange *Mutator::mutate( Subrange *subrange ) {
    554564        return subrange;
    555565}
     566
    556567
    557568Constant *Mutator::mutate( Constant *constant ) {
  • TabularUnified src/SynTree/Mutator.h

    rf923b5f rd3a804f5  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Aug  3 16:59:45 2016
    13 // Update Count     : 12
     12// Last Modified On : Thu Feb  9 14:23:23 2017
     13// Update Count     : 13
    1414//
    1515#include <cassert>
     
    3434        virtual TypeDecl* mutate( TypeDecl *typeDecl );
    3535        virtual Declaration* mutate( TypedefDecl *typeDecl );
     36        virtual AsmDecl* mutate( AsmDecl *asmDecl );
    3637
    3738        virtual CompoundStmt* mutate( CompoundStmt *compoundStmt );
  • TabularUnified src/SynTree/SynTree.h

    rf923b5f rd3a804f5  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Aug  3 17:02:34 2016
    13 // Update Count     : 7
     12// Last Modified On : Thu Feb  9 14:23:49 2017
     13// Update Count     : 8
    1414//
    1515
     
    3636class DtypeDecl;
    3737class TypedefDecl;
     38class AsmDecl;
    3839
    3940class Statement;
  • TabularUnified src/SynTree/Visitor.cc

    rf923b5f rd3a804f5  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug  4 11:24:25 2016
    13 // Update Count     : 21
     12// Last Modified On : Thu Feb  9 14:19:22 2017
     13// Update Count     : 22
    1414//
    1515
     
    7474}
    7575
     76void Visitor::visit( AsmDecl *asmDecl ) {
     77        maybeAccept( asmDecl->get_stmt(), *this );
     78}
     79
     80
    7681void Visitor::visit( CompoundStmt *compoundStmt ) {
    7782        acceptAll( compoundStmt->get_kids(), *this );
     
    148153        maybeAccept( impCtorDtorStmt->get_callStmt(), *this );
    149154}
     155
    150156
    151157void Visitor::visit( ApplicationExpr *applicationExpr ) {
     
    338344        maybeAccept( uniqueExpr->get_expr(), *this );
    339345}
     346
    340347
    341348void Visitor::visit( VoidType *voidType ) {
     
    422429}
    423430
     431
    424432void Visitor::visit( SingleInit *singleInit ) {
    425433        singleInit->get_value()->accept( *this );
     
    437445}
    438446
     447
    439448void Visitor::visit( Subrange *subrange ) {}
     449
    440450
    441451void Visitor::visit( Constant *constant ) {}
  • TabularUnified src/SynTree/Visitor.h

    rf923b5f rd3a804f5  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Aug  3 17:01:50 2016
    13 // Update Count     : 9
     12// Last Modified On : Thu Feb  9 14:23:24 2017
     13// Update Count     : 10
    1414//
    1515
     
    3434        virtual void visit( TypeDecl *typeDecl );
    3535        virtual void visit( TypedefDecl *typeDecl );
     36        virtual void visit( AsmDecl *asmDecl );
    3637
    3738        virtual void visit( CompoundStmt *compoundStmt );
  • TabularUnified src/libcfa/concurrency/coroutines

    rf923b5f rd3a804f5  
    3636void ?{}(coStack_t * this);
    3737void ?{}(coroutine * this);
     38void ?{}(coroutine * this, const char * name);
    3839void ^?{}(coStack_t * this);
    3940void ^?{}(coroutine * this);
     
    7677                "Possible cause is a suspend executed in a member called by a coroutine user rather than by the coroutine main.",
    7778                src->name, src );
    78         assertf( src->last->notHalted,
     79        assertf( src->last->state != Halted,
    7980                "Attempt by coroutine \"%.256s\" (%p) to suspend back to terminated coroutine \"%.256s\" (%p).\n"
    8081                "Possible cause is terminated coroutine's main routine has already returned.",
     
    9798      // not resuming self ?
    9899        if ( src != dst ) {
    99                 assertf( dst->notHalted ,
     100                assertf( dst->state != Halted ,
    100101                        "Attempt by coroutine %.256s (%p) to resume terminated coroutine %.256s (%p).\n"
    101102                        "Possible cause is terminated coroutine's main routine has already returned.",
     
    115116      // not resuming self ?
    116117        if ( src != dst ) {
    117                 assertf( dst->notHalted ,
     118                assertf( dst->state != Halted ,
    118119                        "Attempt by coroutine %.256s (%p) to resume terminated coroutine %.256s (%p).\n"
    119120                        "Possible cause is terminated coroutine's main routine has already returned.",
  • TabularUnified src/libcfa/concurrency/coroutines.c

    rf923b5f rd3a804f5  
    6161
    6262void ?{}(coroutine* this) {
    63         this->name = "Anonymous Coroutine";
     63        this{ "Anonymous Coroutine" };
     64}
     65
     66void ?{}(coroutine* this, const char * name) {
     67        this->name = name;
    6468        this->errno_ = 0;
    6569        this->state = Start;
    66       this->notHalted = true;
    6770        this->starter = NULL;
    6871        this->last = NULL;
  • TabularUnified src/libcfa/concurrency/invoke.c

    rf923b5f rd3a804f5  
    4848      main( this );
    4949
    50       cor->state = Halt;
    51       cor->notHalted = false;
     50      cor->state = Halted;
    5251
    5352      //Final suspend, should never return
  • TabularUnified src/libcfa/concurrency/invoke.h

    rf923b5f rd3a804f5  
    3030      #define SCHEDULER_CAPACITY 10
    3131
     32      struct spinlock {
     33            volatile int lock;
     34      };
     35
    3236      struct simple_thread_list {
    3337            struct thread * head;
    3438            struct thread ** tail;
     39      };
     40
     41      struct signal_once {
     42            volatile bool condition;
     43            struct spinlock lock;
     44            struct simple_thread_list blocked;
    3545      };
    3646
     
    4050            void append( struct simple_thread_list *, struct thread * );
    4151            struct thread * pop_head( struct simple_thread_list * );
     52
     53            void ?{}(spinlock * this);
     54            void ^?{}(spinlock * this);
     55
     56            void ?{}(signal_once * this);
     57            void ^?{}(signal_once * this);
    4258      }
    4359      #endif
     
    5369      };
    5470
    55       enum coroutine_state { Start, Inactive, Active, Halt, Primed };
     71      enum coroutine_state { Halted, Start, Inactive, Active, Primed };
    5672
    5773      struct coroutine {
     
    6076            int errno_;                         // copy of global UNIX variable errno
    6177            enum coroutine_state state; // current execution status for coroutine
    62             bool notHalted;                     // indicate if execuation state is not halted
    63 
    6478            struct coroutine *starter;  // first coroutine to resume this one
    6579            struct coroutine *last;             // last coroutine to resume this one
    6680      };
    6781
    68       struct simple_lock {
    69         struct simple_thread_list blocked;
    70       };
    71 
    7282      struct thread {
    73             struct coroutine c;
    74             struct simple_lock lock;
    75             struct thread * next;
     83            struct coroutine c;           // coroutine body used to store context
     84            struct signal_once terminated;// indicate if execuation state is not halted
     85            struct thread * next;         // instrusive link field for threads
    7686      };
    7787
  • TabularUnified src/libcfa/concurrency/kernel

    rf923b5f rd3a804f5  
    99//
    1010// Author           : Thierry Delisle
    11 // Created On       : Tue Jan 17 12:27:26 2016
     11// Created On       : Tue Jan 17 12:27:26 2017
    1212// Last Modified By : Thierry Delisle
    1313// Last Modified On : --
     
    2727
    2828//-----------------------------------------------------------------------------
     29// Locks
     30void lock( spinlock * );
     31void unlock( spinlock * );
     32
     33void wait( signal_once * );
     34void signal( signal_once * );
     35
     36//-----------------------------------------------------------------------------
    2937// Cluster
    3038struct cluster {
    3139        simple_thread_list ready_queue;
    32         pthread_spinlock_t lock;
     40        spinlock lock;
    3341};
    3442
     
    3846//-----------------------------------------------------------------------------
    3947// Processor
     48enum FinishOpCode { No_Action, Release, Schedule, Release_Schedule };
     49struct FinishAction {
     50        FinishOpCode action_code;
     51        thread * thrd;
     52        spinlock * lock;
     53};
     54static inline void ?{}(FinishAction * this) {
     55        this->action_code = No_Action;
     56        this->thrd = NULL;
     57        this->lock = NULL;
     58}
     59static inline void ^?{}(FinishAction * this) {}
     60
    4061struct processor {
    41         struct processorCtx_t * ctx;
     62        struct processorCtx_t * runner;
    4263        cluster * cltr;
    4364        coroutine * current_coroutine;
    4465        thread * current_thread;
    4566        pthread_t kernel_thread;
    46         simple_lock lock;
    47         volatile bool terminated;
     67       
     68        signal_once terminated;
     69        volatile bool is_terminated;
     70
     71        struct FinishAction finish;
    4872};
    4973
     
    5175void ?{}(processor * this, cluster * cltr);
    5276void ^?{}(processor * this);
    53 
    54 
    55 //-----------------------------------------------------------------------------
    56 // Locks
    57 
    58 void ?{}(simple_lock * this);
    59 void ^?{}(simple_lock * this);
    60 
    61 void lock( simple_lock * );
    62 void unlock( simple_lock * );
    63 
    64 struct pthread_spinlock_guard {
    65         pthread_spinlock_t * lock;
    66 };
    67 
    68 static inline void ?{}( pthread_spinlock_guard * this, pthread_spinlock_t * lock ) {
    69         this->lock = lock;
    70         pthread_spin_lock( this->lock );
    71 }
    72 
    73 static inline void ^?{}( pthread_spinlock_guard * this ) {
    74         pthread_spin_unlock( this->lock );
    75 }
    76 
    77 // //Simple spinlock implementation from
    78 // //http://stackoverflow.com/questions/1383363/is-my-spin-lock-implementation-correct-and-optimal
    79 // //Not optimal but correct
    80 // #define VOL
    81 
    82 // struct simple_spinlock {
    83 //      VOL int lock;
    84 // };
    85 
    86 // extern VOL int __sync_lock_test_and_set( VOL int *, VOL int);
    87 // extern void __sync_synchronize();
    88 
    89 // static inline void lock( simple_spinlock * this ) {
    90 //     while (__sync_lock_test_and_set(&this->lock, 1)) {
    91 //         // Do nothing. This GCC builtin instruction
    92 //         // ensures memory barrier.
    93 //     }
    94 // }
    95 
    96 // static inline void unlock( simple_spinlock * this ) {
    97 //     __sync_synchronize(); // Memory barrier.
    98 //     this->lock = 0;
    99 // }
    10077
    10178#endif //KERNEL_H
  • TabularUnified src/libcfa/concurrency/kernel.c

    rf923b5f rd3a804f5  
    99//
    1010// Author           : Thierry Delisle
    11 // Created On       : Tue Jan 17 12:27:26 2016
     11// Created On       : Tue Jan 17 12:27:26 2017
    1212// Last Modified By : Thierry Delisle
    1313// Last Modified On : --
     
    2020
    2121//Header
    22 #include "kernel"
     22#include "kernel_private.h"
    2323
    2424//C Includes
    2525#include <stddef.h>
    2626extern "C" {
     27#include <fenv.h>
    2728#include <sys/resource.h>
    2829}
     
    3031//CFA Includes
    3132#include "libhdr.h"
    32 #include "threads"
    3333
    3434//Private includes
     
    3838//-----------------------------------------------------------------------------
    3939// Kernel storage
    40 struct processorCtx_t {
    41         processor * proc;
    42         coroutine c;
    43 };
    44 
    45 DECL_COROUTINE(processorCtx_t);
    46 
    4740#define KERNEL_STORAGE(T,X) static char X##_storage[sizeof(T)]
    4841
     
    9285
    9386        rlimit r;
    94         int ret = getrlimit( RLIMIT_STACK, &r);
     87        getrlimit( RLIMIT_STACK, &r);
    9588        this->size = r.rlim_cur;
    9689
     
    114107        this->name = "Main Thread";
    115108        this->errno_ = 0;
    116         this->state = Inactive;
    117         this->notHalted = true;
     109        this->state = Start;
    118110}
    119111
     
    127119        (&this->c){};
    128120        this->proc = proc;
    129         proc->ctx = this;
     121        proc->runner = this;
    130122}
    131123
     
    133125        (&this->c){ info };
    134126        this->proc = proc;
    135         proc->ctx = this;
    136 }
    137 
    138 void start(processor * this);
     127        proc->runner = this;
     128}
    139129
    140130void ?{}(processor * this) {
     
    146136        this->current_coroutine = NULL;
    147137        this->current_thread = NULL;
    148         (&this->lock){};
    149         this->terminated = false;
     138        (&this->terminated){};
     139        this->is_terminated = false;
    150140
    151141        start( this );
    152142}
    153143
    154 void ?{}(processor * this, cluster * cltr, processorCtx_t * ctx) {
     144void ?{}(processor * this, cluster * cltr, processorCtx_t * runner) {
    155145        this->cltr = cltr;
    156146        this->current_coroutine = NULL;
    157147        this->current_thread = NULL;
    158         (&this->lock){};
    159         this->terminated = false;
    160 
    161         this->ctx = ctx;
    162         LIB_DEBUG_PRINTF("Kernel : constructing processor context %p\n", ctx);
    163         ctx{ this };
     148        (&this->terminated){};
     149        this->is_terminated = false;
     150
     151        this->runner = runner;
     152        LIB_DEBUG_PRINTF("Kernel : constructing processor context %p\n", runner);
     153        runner{ this };
    164154}
    165155
    166156void ^?{}(processor * this) {
    167         if( ! this->terminated ) {
     157        if( ! this->is_terminated ) {
    168158                LIB_DEBUG_PRINTF("Kernel : core %p signaling termination\n", this);
    169                 this->terminated = true;
    170                 lock( &this->lock );
     159                this->is_terminated = true;
     160                wait( &this->terminated );
    171161        }
    172162}
     
    174164void ?{}(cluster * this) {
    175165        ( &this->ready_queue ){};
    176         pthread_spin_init( &this->lock, PTHREAD_PROCESS_PRIVATE );
     166        ( &this->lock ){};
    177167}
    178168
    179169void ^?{}(cluster * this) {
    180         pthread_spin_destroy( &this->lock );
    181 }
    182 
    183 //-----------------------------------------------------------------------------
    184 // Processor running routines
    185 void main(processorCtx_t * ctx);
    186 thread * nextThread(cluster * this);
    187 void scheduleInternal(processor * this, thread * dst);
    188 void spin(processor * this, unsigned int * spin_count);
    189 
    190 void main(processorCtx_t * ctx) {
    191         processor * this = ctx->proc;
     170       
     171}
     172
     173//=============================================================================================
     174// Kernel Scheduling logic
     175//=============================================================================================
     176//Main of the processor contexts
     177void main(processorCtx_t * runner) {
     178        processor * this = runner->proc;
    192179        LIB_DEBUG_PRINTF("Kernel : core %p starting\n", this);
    193180
    194181        thread * readyThread = NULL;
    195         for( unsigned int spin_count = 0; ! this->terminated; spin_count++ ) {
    196                
     182        for( unsigned int spin_count = 0; ! this->is_terminated; spin_count++ )
     183        {
    197184                readyThread = nextThread( this->cltr );
    198185
    199                 if(readyThread) {
    200                         scheduleInternal(this, readyThread);
     186                if(readyThread)
     187                {
     188                        runThread(this, readyThread);
     189
     190                        //Some actions need to be taken from the kernel
     191                        finishRunning(this);
     192
    201193                        spin_count = 0;
    202                 } else {
     194                }
     195                else
     196                {
    203197                        spin(this, &spin_count);
    204198                }               
     
    206200
    207201        LIB_DEBUG_PRINTF("Kernel : core %p unlocking thread\n", this);
    208         unlock( &this->lock );
     202        signal( &this->terminated );
    209203        LIB_DEBUG_PRINTF("Kernel : core %p terminated\n", this);
    210204}
    211205
    212 //Declarations for scheduleInternal
    213 extern void ThreadCtxSwitch(coroutine * src, coroutine * dst);
    214 
    215 // scheduleInternal runs a thread by context switching
     206// runThread runs a thread by context switching
    216207// from the processor coroutine to the target thread
    217 void scheduleInternal(processor * this, thread * dst) {
    218         // coroutine * proc_ctx = get_coroutine(this->ctx);
    219         // coroutine * thrd_ctx = get_coroutine(dst);
    220 
    221         // //Update global state
    222         // this->current_thread = dst;
    223 
    224         // // Context Switch to the thread
    225         // ThreadCtxSwitch(proc_ctx, thrd_ctx);
    226         // // when ThreadCtxSwitch returns we are back in the processor coroutine
    227 
    228         coroutine * proc_ctx = get_coroutine(this->ctx);
    229         coroutine * thrd_ctx = get_coroutine(dst);
    230       thrd_ctx->last = proc_ctx;
    231  
    232       // context switch to specified coroutine
    233       // Which is now the current_coroutine
    234       LIB_DEBUG_PRINTF("Kernel : switching to ctx %p (from %p, current %p)\n", thrd_ctx, proc_ctx, this->current_coroutine);
    235       this->current_thread = dst;
    236       this->current_coroutine = thrd_ctx;
    237       CtxSwitch( proc_ctx->stack.context, thrd_ctx->stack.context );
    238       this->current_coroutine = proc_ctx;
    239       LIB_DEBUG_PRINTF("Kernel : returned from ctx %p (to %p, current %p)\n", thrd_ctx, proc_ctx, this->current_coroutine);
    240  
    241       // when CtxSwitch returns we are back in the processor coroutine
     208void runThread(processor * this, thread * dst) {
     209        coroutine * proc_cor = get_coroutine(this->runner);
     210        coroutine * thrd_cor = get_coroutine(dst);
     211       
     212        //Reset the terminating actions here
     213        this->finish.action_code = No_Action;
     214
     215        //Update global state
     216        this->current_thread = dst;
     217
     218        // Context Switch to the thread
     219        ThreadCtxSwitch(proc_cor, thrd_cor);
     220        // when ThreadCtxSwitch returns we are back in the processor coroutine
     221}
     222
     223// Once a thread has finished running, some of
     224// its final actions must be executed from the kernel
     225void finishRunning(processor * this) {
     226        if( this->finish.action_code == Release ) {
     227                unlock( this->finish.lock );
     228        }
     229        else if( this->finish.action_code == Schedule ) {
     230                ScheduleThread( this->finish.thrd );
     231        }
     232        else if( this->finish.action_code == Release_Schedule ) {
     233                unlock( this->finish.lock );           
     234                ScheduleThread( this->finish.thrd );
     235        }
     236        else {
     237                assert(this->finish.action_code == No_Action);
     238        }
    242239}
    243240
     
    262259        processorCtx_t proc_cor_storage = { proc, &info };
    263260
     261        LIB_DEBUG_PRINTF("Coroutine : created stack %p\n", proc_cor_storage.c.stack.base);
     262
    264263        //Set global state
    265         proc->current_coroutine = &proc->ctx->c;
     264        proc->current_coroutine = &proc->runner->c;
    266265        proc->current_thread = NULL;
    267266
    268267        //We now have a proper context from which to schedule threads
    269         LIB_DEBUG_PRINTF("Kernel : core %p created (%p)\n", proc, proc->ctx);
     268        LIB_DEBUG_PRINTF("Kernel : core %p created (%p, %p)\n", proc, proc->runner, &ctx);
    270269
    271270        // SKULLDUGGERY: Since the coroutine doesn't have its own stack, we can't
     
    275274        proc_cor_storage.c.state = Active;
    276275      main( &proc_cor_storage );
    277       proc_cor_storage.c.state = Halt;
    278       proc_cor_storage.c.notHalted = false;
     276      proc_cor_storage.c.state = Halted;
    279277
    280278        // Main routine of the core returned, the core is now fully terminated
    281         LIB_DEBUG_PRINTF("Kernel : core %p main ended (%p)\n", proc, proc->ctx);       
     279        LIB_DEBUG_PRINTF("Kernel : core %p main ended (%p)\n", proc, proc->runner);     
    282280
    283281        return NULL;
     
    287285        LIB_DEBUG_PRINTF("Kernel : Starting core %p\n", this);
    288286       
    289         pthread_attr_t attributes;
    290         pthread_attr_init( &attributes );
    291 
    292         pthread_create( &this->kernel_thread, &attributes, CtxInvokeProcessor, (void*)this );
    293 
    294         pthread_attr_destroy( &attributes );
     287        // pthread_attr_t attributes;
     288        // pthread_attr_init( &attributes );
     289
     290        pthread_create( &this->kernel_thread, NULL, CtxInvokeProcessor, (void*)this );
     291
     292        // pthread_attr_destroy( &attributes );
    295293
    296294        LIB_DEBUG_PRINTF("Kernel : core %p started\n", this);   
     
    299297//-----------------------------------------------------------------------------
    300298// Scheduler routines
    301 void thread_schedule( thread * thrd ) {
     299void ScheduleThread( thread * thrd ) {
    302300        assertf( thrd->next == NULL, "Expected null got %p", thrd->next );
    303301       
    304         pthread_spinlock_guard guard = { &systemProcessor->cltr->lock };
     302        lock( &systemProcessor->cltr->lock );
    305303        append( &systemProcessor->cltr->ready_queue, thrd );
     304        unlock( &systemProcessor->cltr->lock );
    306305}
    307306
    308307thread * nextThread(cluster * this) {
    309         pthread_spinlock_guard guard = { &this->lock };
    310         return pop_head( &this->ready_queue );
     308        lock( &this->lock );
     309        thread * head = pop_head( &this->ready_queue );
     310        unlock( &this->lock );
     311        return head;
     312}
     313
     314void ScheduleInternal() {
     315        suspend();
     316}
     317
     318void ScheduleInternal( spinlock * lock ) {
     319        get_this_processor()->finish.action_code = Release;
     320        get_this_processor()->finish.lock = lock;
     321        suspend();
     322}
     323
     324void ScheduleInternal( thread * thrd ) {
     325        get_this_processor()->finish.action_code = Schedule;
     326        get_this_processor()->finish.thrd = thrd;
     327        suspend();
     328}
     329
     330void ScheduleInternal( spinlock * lock, thread * thrd ) {
     331        get_this_processor()->finish.action_code = Release_Schedule;
     332        get_this_processor()->finish.lock = lock;
     333        get_this_processor()->finish.thrd = thrd;
     334        suspend();
    311335}
    312336
     
    314338// Kernel boot procedures
    315339void kernel_startup(void) {
    316 
     340        LIB_DEBUG_PRINTF("Kernel : Starting\n");       
     341
     342        // Start by initializing the main thread
    317343        // SKULLDUGGERY: the mainThread steals the process main thread
    318344        // which will then be scheduled by the systemProcessor normally
    319         LIB_DEBUG_PRINTF("Kernel : Starting\n");       
    320 
     345        mainThread = (thread *)&mainThread_storage;
    321346        current_stack_info_t info;
    322 
    323         // LIB_DEBUG_PRINTF("Kernel : core    base : %p \n", info.base );
    324         // LIB_DEBUG_PRINTF("Kernel : core storage : %p \n", info.storage );
    325         // LIB_DEBUG_PRINTF("Kernel : core    size : %x \n", info.size );
    326         // LIB_DEBUG_PRINTF("Kernel : core   limit : %p \n", info.limit );
    327         // LIB_DEBUG_PRINTF("Kernel : core context : %p \n", info.context );
    328         // LIB_DEBUG_PRINTF("Kernel : core     top : %p \n", info.top );
    329 
    330         // Start by initializing the main thread
    331         mainThread = (thread *)&mainThread_storage;
    332347        mainThread{ &info };
    333348
     
    343358        // Add the main thread to the ready queue
    344359        // once resume is called on systemProcessor->ctx the mainThread needs to be scheduled like any normal thread
    345         thread_schedule(mainThread);
     360        ScheduleThread(mainThread);
    346361
    347362        //initialize the global state variables
     
    353368        // context. Hence, the main thread does not begin through CtxInvokeThread, like all other threads. The trick here is that
    354369        // mainThread is on the ready queue when this call is made.
    355         resume(systemProcessor->ctx);
     370        resume(systemProcessor->runner);
    356371
    357372
    358373
    359374        // THE SYSTEM IS NOW COMPLETELY RUNNING
    360 
    361 
    362 
    363375        LIB_DEBUG_PRINTF("Kernel : Started\n--------------------------------------------------\n\n");
    364376}
     
    370382        // When its coroutine terminates, it return control to the mainThread
    371383        // which is currently here
    372         systemProcessor->terminated = true;
     384        systemProcessor->is_terminated = true;
    373385        suspend();
    374386
     
    377389        // Destroy the system processor and its context in reverse order of construction
    378390        // These were manually constructed so we need manually destroy them
    379         ^(systemProcessor->ctx){};
     391        ^(systemProcessor->runner){};
    380392        ^(systemProcessor){};
    381393
     
    389401//-----------------------------------------------------------------------------
    390402// Locks
    391 void ?{}( simple_lock * this ) {
    392         ( &this->blocked ){};
    393 }
    394 
    395 void ^?{}( simple_lock * this ) {
    396 
    397 }
    398 
    399 void lock( simple_lock * this ) {
     403void ?{}( spinlock * this ) {
     404        this->lock = 0;
     405}
     406void ^?{}( spinlock * this ) {
     407
     408}
     409
     410void lock( spinlock * this ) {
     411        for ( unsigned int i = 1;; i += 1 ) {
     412                if ( this->lock == 0 && __sync_lock_test_and_set_4( &this->lock, 1 ) == 0 ) break;
     413        }
     414}
     415
     416void unlock( spinlock * this ) {
     417        __sync_lock_release_4( &this->lock );
     418}
     419
     420void ?{}( signal_once * this ) {
     421        this->condition = false;
     422}
     423void ^?{}( signal_once * this ) {
     424
     425}
     426
     427void wait( signal_once * this ) {
     428        lock( &this->lock );
     429        if( !this->condition ) {
     430                append( &this->blocked, this_thread() );
     431                ScheduleInternal( &this->lock );
     432                lock( &this->lock );
     433        }
     434        unlock( &this->lock );
     435}
     436
     437void signal( signal_once * this ) {
     438        lock( &this->lock );
    400439        {
    401                 pthread_spinlock_guard guard = { &systemCluster->lock };        //HUGE TEMP HACK which only works if we have a single cluster and is stupid
    402                 append( &this->blocked, this_thread() );
    403         }
    404         suspend();
    405 }
    406 
    407 void unlock( simple_lock * this ) {
    408         thread * it;
    409         while( it = pop_head( &this->blocked) ) {
    410                 thread_schedule( it );
    411         }
     440                this->condition = true;
     441
     442                thread * it;
     443                while( it = pop_head( &this->blocked) ) {
     444                        ScheduleThread( it );
     445                }
     446        }
     447        unlock( &this->lock );
    412448}
    413449
  • TabularUnified src/libcfa/concurrency/threads.c

    rf923b5f rd3a804f5  
    1717#include "threads"
    1818
    19 #include "kernel"
     19#include "kernel_private.h"
    2020#include "libhdr.h"
    2121
     
    2424
    2525extern "C" {
     26        #include <fenv.h>
    2627        #include <stddef.h>
    2728}
     
    4344        (&this->c){};
    4445        this->c.name = "Anonymous Coroutine";
    45         (&this->lock){};
     46        (&this->terminated){};
    4647        this->next = NULL;
    4748}
     
    7172//-----------------------------------------------------------------------------
    7273// Starting and stopping threads
    73 extern "C" {
    74       forall(dtype T | is_thread(T))
    75       void CtxInvokeThread(T * this);
    76 }
    77 
    78 extern void thread_schedule( thread * );
    79 
    8074forall( dtype T | is_thread(T) )
    8175void start( T* this ) {
     
    9185        CtxSwitch( thrd_c->last->stack.context, thrd_c->stack.context );
    9286
    93         LIB_DEBUG_PRINTF("Thread started : %p (t %p, c %p)\n", this, thrd_c, thrd_h);
    94 
    95         thread_schedule(thrd_h);
     87        ScheduleThread(thrd_h);
    9688}
    9789
    9890forall( dtype T | is_thread(T) )
    9991void stop( T* this ) {
    100         thread*  thrd = get_thread(this);
    101         if( thrd->c.notHalted ) {
    102                 lock( &thrd->lock );
    103         }
     92        wait( & get_thread(this)->terminated );
    10493}
    10594
    10695void yield( void ) {
    107         thread_schedule( this_thread() );
    108         suspend();
     96        ScheduleInternal( get_this_processor()->current_thread );
    10997}
    11098
    11199void ThreadCtxSwitch(coroutine* src, coroutine* dst) {
     100        // set state of current coroutine to inactive
     101        src->state = Inactive;
     102        dst->state = Active;
     103
     104        //update the last resumer
    112105        dst->last = src;
    113106
    114         // set state of current coroutine to inactive
    115         src->state = Inactive;
    116 
    117         // set new coroutine that task is executing
     107        // set new coroutine that the processor is executing
     108        // and context switch to it
    118109        get_this_processor()->current_coroutine = dst; 
    119 
    120         // context switch to specified coroutine
    121110        CtxSwitch( src->stack.context, dst->stack.context );
    122         // when CtxSwitch returns we are back in the src coroutine
     111        get_this_processor()->current_coroutine = src; 
    123112
    124113        // set state of new coroutine to active
     114        dst->state = Inactive;
    125115        src->state = Active;
    126116}
     
    130120extern "C" {
    131121        void __thread_signal_termination( thread * this ) {
    132                 this->c.state = Halt;
    133                 this->c.notHalted = false;
    134                 unlock( &this->lock );
     122                this->c.state = Halted;
     123                LIB_DEBUG_PRINTF("Thread end : %p\n", this);
     124                signal( &this->terminated );   
    135125        }
    136126}
  • TabularUnified src/tests/thread.c

    rf923b5f rd3a804f5  
    44#include <threads>
    55
    6 struct First { thread t; simple_lock* lock; };
    7 struct Second { thread t; simple_lock* lock; };
     6struct First { thread t; signal_once* lock; };
     7struct Second { thread t; signal_once* lock; };
    88
    99DECL_THREAD(First);
    1010DECL_THREAD(Second);
    1111
    12 void ?{}( First * this, simple_lock* lock ) { this->lock = lock; }
    13 void ?{}( Second * this, simple_lock* lock ) { this->lock = lock; }
     12void ?{}( First * this, signal_once* lock ) { this->lock = lock; }
     13void ?{}( Second * this, signal_once* lock ) { this->lock = lock; }
    1414
    1515void main(First* this) {
     
    1818                yield();
    1919        }
    20         unlock(this->lock);
     20        signal(this->lock);
    2121}
    2222
    2323void main(Second* this) {
    24         lock(this->lock);       
     24        wait(this->lock);
    2525        for(int i = 0; i < 10; i++) {
    2626                sout | "Second : Suspend No." | i + 1 | endl;
     
    3131
    3232int main(int argc, char* argv[]) {
    33         simple_lock lock;
     33        signal_once lock;
    3434        sout | "User main begin" | endl;
    3535        {
    36                 // processor p;
     36                processor p;
    3737                {
    3838                        scoped(First)  f = { &lock };
Note: See TracChangeset for help on using the changeset viewer.