Changeset cce7872


Ignore:
Timestamp:
Feb 11, 2016, 3:28:27 PM (9 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
bed4d37c
Parents:
98735ef (diff), 52f85e0 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
src
Files:
2 added
2 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • src/GenPoly/Box.cc

    r98735ef rcce7872  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Fri Feb 05 12:23:10 2016
    13 // Update Count     : 280
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Feb  5 16:45:07 2016
     13// Update Count     : 286
    1414//
    1515
     
    549549                                        arg = new AddressExpr( arg );
    550550                                } else {
    551                                         ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, arg->get_results().front()->clone(), 0 );
     551                                        // use type computed in unification to declare boxed variables
     552                                        Type * newType = param->clone();
     553                                        if ( env ) env->apply( newType );
     554                                        ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, newType, 0 );
    552555                                        newObj->get_type()->get_qualifiers() = Type::Qualifiers(); // TODO: is this right???
    553556                                        stmtsToAdd.push_back( new DeclStmt( noLabels, newObj ) );
  • src/Parser/lex.cc

    r98735ef rcce7872  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 180
    385 #define YY_END_OF_BUFFER 181
     384#define YY_NUM_RULES 179
     385#define YY_END_OF_BUFFER 180
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[884] =
     393static yyconst flex_int16_t yy_accept[876] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  115,  115,  118,  118,
    396       181,  179,    7,    9,    8,  138,  117,  102,  143,  146,
    397       114,  125,  126,  141,  139,  129,  140,  132,  142,  107,
    398       108,  109,  130,  131,  148,  150,  149,  151,  179,  102,
    399       123,  179,  124,  144,  102,  104,  102,  102,  102,  102,
    400       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    401       102,  102,  127,  147,  128,  145,    7,  179,    4,    4,
    402       180,  105,  180,  106,  115,  116,  122,  118,  119,    7,
    403         9,    0,    8,  155,  174,  102,    0,  167,  137,  160,
    404       168,  165,  152,  163,  153,  164,  162,    0,  112,    3,
    405 
    406         0,  166,  112,  110,    0,    0,  110,  110,    0,    0,
    407       110,  109,  109,  109,    0,  109,  135,  136,  134,  156,
    408       158,  154,  159,  157,    0,    0,    0,    0,    0,    0,
    409         0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
    410       173,    0,  117,  114,  102,    0,    0,  170,    0,  102,
    411       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    412       102,  102,  102,  102,  102,  102,   39,  102,  102,  102,
    413       102,  102,  102,  102,  102,  102,  102,   57,  102,  102,
    414       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    415       102,  102,  102,  102,  169,  161,    7,    0,    0,    0,
    416 
    417         2,    0,    5,  105,    0,    0,    0,  115,    0,  121,
    418       120,  120,    0,    0,    0,  118,    0,    0,    0,    0,
     395        0,    0,    0,    0,    0,    0,  114,  114,  117,  117,
     396      180,  178,    7,    9,    8,  137,  116,  101,  142,  145,
     397      113,  124,  125,  140,  138,  128,  139,  131,  141,  106,
     398      107,  108,  129,  130,  147,  149,  148,  150,  178,  101,
     399      122,  178,  123,  143,  101,  103,  101,  101,  101,  101,
     400      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     401      101,  126,  146,  127,  144,    7,  178,    4,    4,  179,
     402      104,  179,  105,  114,  115,  121,  117,  118,    7,    9,
     403        0,    8,  154,  173,  101,    0,  166,  136,  159,  167,
     404      164,  151,  162,  152,  163,  161,    0,  111,    3,    0,
     405
     406      165,  111,  109,    0,    0,  109,  109,    0,    0,  109,
     407      108,  108,  108,    0,  108,  134,  135,  133,  155,  157,
     408      153,  158,  156,    0,    0,    0,    0,    0,    0,    0,
     409        0,    0,    0,    0,    0,    0,    0,    0,  102,  172,
     410        0,  116,  113,  101,    0,    0,  169,    0,  101,  101,
     411      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     412      101,  101,  101,  101,  101,   39,  101,  101,  101,  101,
     413      101,  101,  101,  101,  101,  101,   57,  101,  101,  101,
     414      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     415      101,  101,  168,  160,    7,    0,    0,    0,    2,    0,
     416
     417        5,  104,    0,    0,    0,  114,    0,  120,  119,  119,
     418        0,    0,    0,  117,    0,    0,    0,    0,    0,    0,
     419        0,    0,    0,    0,    0,    0,    0,    0,    0,  132,
     420      111,  111,    0,  111,  111,  111,    0,    6,  111,  109,
     421        0,    0,    0,  111,    0,  109,  109,  109,  109,    0,
     422      110,    0,    0,  108,  108,  108,  108,    0,  170,  171,
     423        0,  176,  174,    0,    0,    0,  102,    0,    0,    0,
     424        0,    0,    0,    0,    0,  101,   17,  101,  101,  101,
     425      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     426      101,  101,  101,  101,  101,   14,  101,  101,  101,  101,
     427
     428      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     429      101,  101,  101,  101,   51,  101,  101,  101,   64,  101,
     430      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     431      101,   88,  101,  101,  101,  101,  101,  101,  101,    0,
     432        0,    0,    0,    0,    0,    0,    0,  119,    0,    0,
     433        0,    0,    0,  119,    0,    0,  177,    0,    0,    0,
     434        0,    0,    0,    0,  111,    0,  111,    0,  111,    0,
     435        0,  111,  111,  109,  109,    0,    0,  110,  110,    0,
     436      110,    0,  110,  108,  108,    0,    0,    0,    0,    0,
     437        0,    0,    0,    0,    0,  175,  101,  101,  101,  101,
     438
     439      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     440      101,  101,  101,  101,  101,  101,  101,  101,  101,   21,
     441      101,   24,  101,   27,  101,  101,  101,  101,  101,  101,
     442      101,   42,  101,   44,  101,  101,  101,  101,  101,  101,
     443      101,   56,  101,   67,  101,  101,  101,  101,  101,  101,
     444      101,  101,  101,  101,  101,   89,  101,  101,   96,  101,
     445      101,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     446        0,    0,    0,    0,    0,  119,    0,    0,    0,    0,
     447        0,  111,  111,    0,    0,    0,    0,    0,  110,  110,
     448        0,  112,    0,  110,  110,    0,    0,    0,    0,    0,
     449
     450        0,    0,    0,    0,    0,    0,    0,    0,  101,  101,
     451       22,  101,  101,  101,  101,  101,  101,  101,   15,  101,
     452      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     453      101,  101,  101,   23,   25,  101,   32,  101,  101,  101,
     454      101,  101,   41,  101,  101,  101,  101,   49,  101,  101,
     455       54,  101,  101,  101,  101,  101,   76,  101,  101,  101,
     456      101,  101,   86,  101,  101,   94,  101,  101,  100,    0,
    419457        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,  133,  112,  112,    0,  112,  112,  112,    0,    6,
    421       112,  110,    0,    0,    0,  112,    0,  110,  110,  110,
    422       110,    0,  111,    0,    0,  109,  109,  109,  109,    0,
    423       171,  172,    0,  177,  175,    0,    0,    0,  103,    0,
    424         0,    0,    0,    0,    0,    0,    0,  102,   17,  102,
    425       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    426       102,  102,  102,  102,  102,  102,  102,   14,  102,  102,
    427 
    428       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    429       102,  102,  102,  102,  102,  102,   51,  102,  102,  102,
    430        64,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    431       102,  102,  102,  102,   89,  102,  102,  102,  102,  102,
    432       102,  102,    0,    0,    0,    0,    0,    0,    0,    0,
    433       120,    0,    0,    0,    0,    0,  120,    0,    0,  178,
    434         0,    0,    0,    0,    0,    0,    0,  112,    0,  112,
    435         0,  112,    0,    0,  112,  112,  110,  110,    0,    0,
    436       111,  111,    0,  111,    0,  111,  109,  109,    0,    0,
    437         0,    0,    0,    0,    0,    0,    0,    0,  176,  102,
    438 
    439       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    440       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    441       102,  102,   21,  102,   24,  102,   27,  102,  102,  102,
    442       102,  102,  102,  102,   42,  102,   44,  102,  102,  102,
    443       102,  102,  102,  102,   56,  102,   67,  102,  102,  102,
    444       102,  102,  102,  102,  102,  102,  102,  102,  102,   90,
    445       102,  102,   97,  102,  102,    0,    0,    0,    0,    0,
    446         0,    0,    0,    0,    0,    0,    0,    0,    0,  120,
    447         0,    0,    0,    0,    0,  112,  112,    0,    0,    0,
    448         0,    0,  111,  111,    0,  113,    0,  111,  111,    0,
    449 
    450         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    451         0,    0,  102,  102,   22,  102,  102,  102,  102,  102,
    452       102,  102,   15,  102,  102,  102,  102,  102,  102,  102,
    453       102,  102,  102,  102,  102,  102,  102,   23,   25,  102,
    454        32,  102,  102,  102,  102,  102,   41,  102,  102,  102,
    455       102,   49,  102,  102,   54,  102,  102,  102,  102,  102,
    456       102,   77,  102,  102,  102,  102,  102,   87,  102,  102,
    457        95,  102,  102,  101,    0,    0,    0,    0,    0,    0,
    458         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    459         0,    0,    0,  113,    0,    0,  111,  113,  113,  113,
    460 
    461       113,  113,  111,    0,    0,    0,    0,    0,    0,    0,
    462         0,    0,    0,  102,    0,  102,  102,  102,  102,  102,
    463       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    464       102,   59,  102,  102,  102,  102,  102,  102,  102,  102,
    465        28,  102,  102,  102,  102,   40,   43,   46,  102,  102,
    466        52,  102,   61,   68,  102,  102,  102,   76,   78,   81,
    467        82,   84,   85,  102,  102,   92,  102,  102,    0,    1,
    468         0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
    469       120,    0,    0,    0,    0,  113,  113,  113,  113,    0,
    470         0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
    471 
    472        18,  102,  102,  102,  102,  102,  102,  102,   16,  102,
    473       102,  102,   33,  102,  102,  102,  102,  102,  102,  102,
    474       102,  102,  102,  102,   35,  102,   37,   38,  102,   48,
    475        53,  102,  102,  102,  102,   91,  102,  102,    0,    0,
    476         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    477         0,   10,   11,   29,   55,  102,  102,  102,  102,  102,
    478       102,  102,  102,  102,  102,  102,   60,   62,   65,  102,
    479       102,   79,   93,  102,  102,   36,   47,   70,   72,   73,
    480       102,   96,   98,    0,    0,    0,    0,    0,    0,    0,
    481         0,    0,    0,    0,    0,  102,   69,  102,  102,   12,
    482 
    483       102,  102,   30,   34,  102,  102,  102,   66,  102,  102,
    484       102,  102,  102,  102,    0,    0,    0,    0,    0,    0,
    485         0,    0,    0,    0,    0,    0,    0,   58,  102,  102,
    486       102,  102,  102,  102,  102,   50,   63,   74,   80,   94,
    487        99,  102,  102,    0,    0,    0,    0,    0,    0,    0,
    488         0,  102,  102,   13,   19,  102,   31,  102,  102,  102,
    489        26,   88,    0,    0,  102,  102,  102,  102,  102,   75,
    490       100,  102,   86,   20,  102,   45,   83,  102,  102,  102,
    491       102,   71,    0
     458        0,    0,    0,    0,    0,    0,    0,    0,  112,    0,
     459        0,  110,  112,  112,  112,  112,  112,  110,    0,    0,
     460
     461        0,    0,    0,    0,    0,    0,    0,    0,  101,    0,
     462      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     463      101,  101,  101,  101,  101,  101,   59,  101,  101,  101,
     464      101,  101,  101,  101,  101,   28,  101,  101,  101,  101,
     465       40,   43,   46,  101,  101,   52,  101,   61,   68,  101,
     466      101,   75,   77,   80,   81,   83,   84,  101,  101,   91,
     467      101,  101,    0,    1,    0,    0,    0,    0,    0,    0,
     468      104,    0,    0,    0,  119,    0,    0,    0,    0,  112,
     469      112,  112,  112,    0,    0,    0,    0,    0,    0,    0,
     470        0,    0,  101,  101,   18,  101,  101,  101,  101,  101,
     471
     472      101,  101,   16,  101,  101,  101,   33,  101,  101,  101,
     473      101,  101,  101,  101,  101,  101,  101,  101,   35,  101,
     474       37,   38,  101,   48,   53,  101,  101,  101,   90,  101,
     475      101,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     476        0,    0,    0,    0,   10,   11,   29,   55,  101,  101,
     477      101,  101,  101,  101,  101,  101,  101,  101,  101,   60,
     478       62,   65,  101,  101,   78,   92,  101,  101,   36,   47,
     479       71,   72,  101,   95,   97,    0,    0,    0,    0,    0,
     480        0,    0,    0,    0,    0,    0,    0,  101,   69,  101,
     481      101,   12,  101,  101,   30,   34,  101,  101,  101,   66,
     482
     483      101,  101,  101,  101,  101,  101,    0,    0,    0,    0,
     484        0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
     485      101,  101,  101,  101,  101,  101,  101,   50,   63,   73,
     486       79,   93,   98,  101,  101,    0,    0,    0,    0,    0,
     487        0,    0,    0,  101,  101,   13,   19,  101,   31,  101,
     488      101,  101,   26,   87,    0,    0,  101,  101,  101,  101,
     489      101,   74,   99,  101,   85,   20,  101,   45,   82,  101,
     490      101,  101,  101,   70,    0
    492491    } ;
    493492
     
    537536    } ;
    538537
    539 static yyconst flex_int16_t yy_base[1058] =
     538static yyconst flex_int16_t yy_base[1050] =
    540539    {   0,
    541         0,   83, 2252, 2249,   93,    0,  175,  176,  177,  178,
    542      2263, 2799,  189, 2799,  195,   54, 2799, 2210,   59,  171,
    543      2799, 2799, 2799,   55,  186, 2799,  189,  187,  202,  214,
    544       272,    0, 2228, 2799,  214, 2227,  150,  340,  153,  222,
    545      2799,  157, 2799,  215,  224, 2799,  207,  181,  221,  249,
    546       235,  289,  155,  255,  218,  196,  257,  312,  256,  323,
    547       259,  192, 2799,  185, 2799, 2222,  377,  342, 2799, 2231,
    548      2799, 2200,  241, 2799,    0, 2799,  421,    0, 2799,  393,
    549      2799,  399,  405, 2799,  492, 2199,  256, 2799, 2799, 2799,
    550      2799, 2799, 2215, 2799, 2212, 2799, 2799, 2222,  552, 2799,
    551 
    552      2239, 2799,  413,  393,  437,  493,  377,  263,  195,  430,
    553       276,    0,  382,  318,  231,  400, 2799, 2799, 2799, 2209,
    554      2799, 2799, 2799, 2207, 2204,  302,  306, 2217,  356,  395,
    555       422,  400,  455,  440,  469, 2198,  494, 2148,  495, 2177,
    556      2799,  384, 2799, 2799,  521, 2171, 2168, 2799, 2141,  414,
    557       424,  463,  470,  274,  480,  341,  485,  495,  401,  432,
    558       484,  490,  513,  482,  520,  486,  506,  487,  488,  533,
    559       532,  534,  535,  541,  231,  536,  544, 2169,  553,  547,
    560       545,  548,  569,  570,  546,  572,  571,  573,  551,  576,
    561       622,  581,  583,  586, 2799, 2799,  653,  659, 2216,  665,
    562 
    563      2799,  692, 2799, 2164,  590, 2158, 2157,    0,  668, 2799,
    564      2799,  655, 2156, 2154, 2134,    0, 2155,  664,  668,  671,
    565       679,  689,  672,  693,  680,  696, 2152,  699,  700, 2128,
    566      2125, 2799,    0,  599,  717,  707,  611, 2124, 2175, 2799,
    567       715,    0,  486,  738,  760,  777,  803,  673, 2799, 2133,
    568      2106,    0,  791, 2149,  783,  677, 2799, 2126, 2101,  824,
    569      2799, 2799, 2132, 2799, 2799,  704,  715, 2110, 2108,  704,
    570      2104, 2103, 2101,    0, 2098,    0, 2067,  708,  582,  719,
    571       729,  687,  738,  597,  739,  742,  801,  740,  765,  746,
    572       766,  791,  804,  707,  789,  793,  803, 2097,  811,  812,
    573 
    574       761,  818,  813,  819,  824,  826,  830,  828,  699,  832,
    575       836,  838,  839,  840,  844,  847,  851,  843,  850,  853,
    576      2096,  492,  857,  858,  861,  859,  860,  864,  863,  867,
    577       865,  869,  871,  870, 2094,  877,  918,  878,  882,  889,
    578       885,  891,  948,  943, 2088, 2087, 2086,    0, 2084,    0,
    579       936,  940, 2081,    0, 2080,    0, 2079,    0, 2098, 2799,
    580       922,  935, 2076, 2070,    0, 2066,    0, 2799,  948,  969,
    581       959, 2799,  975,  990, 1014, 2064, 2799, 2799,  933,  935,
    582      1001,  976, 1034,  938, 1028,  960, 2799, 2799, 2062, 2059,
    583      2057,    0, 2055,    0, 2052,    0, 2049,    0, 2799,  958,
    584 
    585       955,  901,  976, 1003,  980, 1013,  974, 1014,  968, 1011,
    586      1018, 1015, 1029, 1026, 1032, 1030, 1034, 1033, 1036, 1041,
    587      1042, 1038, 2051, 1044, 2050, 1054, 2048, 1055, 1059, 1060,
    588      1062, 1064, 1063, 1065, 2045, 1067, 2042, 1068, 1071, 1072,
    589      1075, 1077, 1079, 1080, 2041, 1083, 2040, 1084, 1086, 1090,
    590      1094, 1096, 1091, 1101, 1102, 1104, 1098, 1108, 1103, 1118,
    591      1106, 1119, 2038, 1109, 1112, 1176, 2032,    0, 2029,    0,
    592      2028,    0, 2027,    0, 1166, 2025,    0, 2022,    0, 2019,
    593      2018, 2017,    0, 2015,    0, 1170, 2012, 1176, 1162, 1196,
    594      1163, 1139, 1166, 2799, 1219, 1229, 1255, 2021, 1996, 2007,
    595 
    596      2005,    0, 2002,    0, 1999,    0, 1998,    0, 1997,    0,
    597      1995,    0, 1159, 1122, 1995, 1196, 1134, 1174, 1153, 1184,
    598      1124, 1177, 1206, 1198, 1207, 1214, 1213, 1208, 1210, 1224,
    599      1212, 1264, 1238, 1240, 1241, 1243, 1245, 1992, 1254, 1246,
    600      1991, 1249, 1251, 1256, 1257, 1260, 1990, 1261, 1259, 1253,
    601      1263, 1988, 1266, 1274, 1985, 1273, 1277, 1267, 1280, 1283,
    602      1284, 1984, 1285,  805, 1287, 1288, 1291, 1298, 1290, 1295,
    603      1983, 1297, 1300, 1981, 2027, 1974,    0, 1973,    0, 1971,
    604         0, 1938,    0, 1936,    0, 1935,    0, 1932,    0, 1929,
    605         0, 1344, 1350, 1377, 1361, 1928, 2799, 1367, 1317, 1367,
    606 
    607      1318, 1927, 2799, 1925,    0, 1922,    0, 1919,    0, 1918,
    608         0,    0,    0, 1920,    0, 1355, 1304, 1356, 1344, 1328,
    609      1346, 1359, 1363, 1361, 1306, 1376, 1362, 1379, 1374, 1381,
    610      1383, 1388, 1386, 1399, 1393, 1395, 1397, 1400, 1401, 1402,
    611      1918, 1404, 1407, 1409, 1410, 1915, 1914, 1913, 1412, 1413,
    612      1911, 1416, 1908, 1907, 1417, 1420, 1414, 1906, 1904, 1901,
    613      1897, 1893, 1889, 1425, 1427, 1873, 1436, 1424, 1921, 2799,
    614      1868,    0, 1866,    0,    0,    0, 1866,    0,    0,    0,
    615      2799,    0,    0,    0,    0, 1475, 1862, 2799, 2799, 1481,
    616      1861,    0, 1859,    0,    0,    0,    0, 1856, 1422, 1428,
    617 
    618      1858, 1441, 1461, 1458, 1444, 1469, 1470, 1442, 1857, 1471,
    619      1474, 1480, 1476, 1475, 1509, 1491, 1486, 1507, 1497, 1492,
    620      1493, 1498, 1499, 1502, 1855, 1504, 1852, 1851, 1503, 1850,
    621      1848, 1506, 1510, 1511, 1514, 1845, 1517, 1515,    0,    0,
    622         0, 1841, 1840, 1838, 1565,    0, 1835, 1834, 1833, 1831,
    623      1828, 1830, 1829, 1827, 1824, 1522, 1527, 1529, 1528, 1521,
    624      1532, 1545, 1520, 1547, 1548, 1576, 1823, 1551, 1822, 1553,
    625      1552, 1557, 1563, 1558, 1564, 1820, 1817, 1816, 1815, 1813,
    626      1565, 1806, 1804, 1800, 1797, 1796, 1795, 1793, 1776, 1767,
    627      1766, 1763, 1756, 1753, 1746, 1567, 1747, 1569, 1571, 1572,
    628 
    629      1570, 1574, 1578, 1746, 1579, 1605, 1582, 1725, 1584, 1583,
    630      1593, 1591, 1595, 1598, 1721, 1720, 1713, 1711, 1710, 1668,
    631      1664, 1663, 1662, 1661, 1660, 1659, 1657, 1657, 1599, 1601,
    632      1604, 1603, 1609, 1610, 1602, 1655, 1654, 1615, 1519, 1518,
    633      1621, 1616, 1617, 1456, 1309, 1183, 1122,  998,  934,  770,
    634       653, 1622, 1623,  655, 1629, 1630,  621, 1633, 1634, 1635,
    635       585,  537,  436,  395, 1639, 1641, 1642, 1643, 1644,  362,
    636       322, 1646,  270,  232, 1648,  203,  199, 1649, 1650, 1652,
    637      1651,  136, 2799, 1724, 1737, 1750, 1760, 1770, 1783, 1793,
    638      1806, 1819, 1832, 1840, 1850, 1857, 1864, 1871, 1878, 1885,
    639 
    640      1892, 1899, 1906, 1913, 1926, 1933, 1937, 1945, 1948, 1955,
    641      1962, 1969, 1972, 1979, 1985, 1998, 2011, 2018, 2025, 2032,
    642      2039, 2042, 2049, 2052, 2059, 2062, 2069, 2072, 2079, 2082,
    643      2089, 2092, 2099, 2102, 2109, 2117, 2124, 2131, 2138, 2145,
    644      2148, 2155, 2158, 2165, 2168, 2175, 2181, 2194, 2201, 2208,
    645      2211, 2218, 2221, 2228, 2231, 2238, 2241, 2248, 2251, 2258,
    646      2261, 2268, 2275, 2278, 2285, 2288, 2295, 2302, 2309, 2312,
    647      2319, 2322, 2329, 2332, 2339, 2342, 2349, 2352, 2359, 2365,
    648      2378, 2385, 2392, 2395, 2402, 2405, 2412, 2415, 2422, 2425,
    649      2432, 2435, 2442, 2445, 2452, 2455, 2462, 2465, 2472, 2479,
    650 
    651      2482, 2489, 2492, 2499, 2502, 2509, 2512, 2515, 2521, 2528,
    652      2537, 2544, 2551, 2554, 2561, 2564, 2567, 2573, 2580, 2583,
    653      2586, 2589, 2592, 2595, 2598, 2601, 2608, 2611, 2618, 2621,
    654      2624, 2627, 2630, 2640, 2647, 2650, 2653, 2656, 2663, 2670,
    655      2677, 2680, 2687, 2694, 2701, 2708, 2715, 2722, 2729, 2736,
    656      2743, 2750, 2757, 2764, 2771, 2778, 2785
     540        0,   83, 2238, 2237,   93,    0,  175,  176,  177,  178,
     541     2252, 2782,  189, 2782,  195,   54, 2782, 2197,   59,  171,
     542     2782, 2782, 2782,   55,  186, 2782,  189,  187,  202,  214,
     543      272,    0, 2213, 2782,  214, 2213,  150,  340,  153,  222,
     544     2782,  157, 2782,  215,  224, 2782,  207,  181,  221,  249,
     545      235,  289,  155,  255,  218,  206,  266,  256,  323,  259,
     546      192, 2782,  223, 2782, 2210,  377,  342, 2782, 2220, 2782,
     547     2187,  234, 2782,    0, 2782,  421,    0, 2782,  393, 2782,
     548      399,  405, 2782,  492, 2184,  241, 2782, 2782, 2782, 2782,
     549     2782, 2201, 2782, 2200, 2782, 2782, 2211,  552, 2782, 2226,
     550
     551     2782,  413,  393,  437,  493,  377,  318,  195,  430,  382,
     552        0,  384,  321,  196,  427, 2782, 2782, 2782, 2194, 2782,
     553     2782, 2782, 2193, 2192,  252,  302, 2206,  342,  435,  422,
     554      381,  455,  400,  494, 2185,  440, 2133,  469, 2163, 2782,
     555      276, 2782, 2782,  520, 2159, 2157, 2782, 2128,  414,  463,
     556      470,  325,  254,  479,  432,  274,  480,  423,  483,  498,
     557      492,  503,  499,  509,  341,  455,  484,  377,  510,  512,
     558      517,  518,  529,  530,  531,  537, 2154,  541,  536,  544,
     559      557,  546,  566,  569,  538,  552,  548,  554,  588,  571,
     560      570,  580, 2782, 2782,  645,  651, 2202,  657, 2782,  663,
     561
     562     2782, 2152,  593, 2147, 2144,    0,  631, 2782, 2782,  669,
     563     2141, 2140, 2139,    0, 2160,  629,  635,  639,  678,  677,
     564      666,  670,  671,  674, 2138,  681,  682, 2115, 2114, 2782,
     565        0,  597,  702,  678,  676, 2111, 2160, 2782,  693,    0,
     566      710,  723,  743,  762,  788,  707, 2782, 2119, 2094,    0,
     567      776, 2138,  768,  723, 2782, 2113, 2086,  809, 2782, 2782,
     568     2118, 2782, 2782,  705,  710, 2098, 2097,  724, 2091, 2088,
     569     2087,    0, 2086,    0, 2056,  709,  682,  707,  712,  710,
     570      724,  647,  750,  671,  786,  751,  748,  731,  778,  787,
     571      789,  788,  792,  790,  758, 2084,  796,  806,  800,  813,
     572
     573      798,  810,  802,  816,  822,  819,  815,  826,  830,  829,
     574      831,  832,  833,  837,  839,  841,  846,  843, 2081,  848,
     575      850,  849,  851,  852,  854,  853,  857,  855,  858,  863,
     576      868, 2080,  867,  912,  871,  878,  872,  879,  882,  937,
     577      939, 2076, 2074, 2071,    0, 2070,    0,  927,  931, 2069,
     578        0, 2067,    0, 2064,    0, 2084, 2782,  913,  926, 2064,
     579     2060,    0, 2057,    0, 2782,  942,  960,  953, 2782,  966,
     580      981, 1005, 2053, 2782, 2782,  955,  968,  995,  968, 1028,
     581      892, 1014,  970, 2782, 2782, 2049, 2047, 2045,    0, 2042,
     582        0, 2040,    0, 2038,    0, 2782,  909,  944,  982,  943,
     583
     584     1006,  911, 1012,  923, 1013, 1019, 1009, 1016, 1023, 1024,
     585     1020,  972, 1030, 1028,  989, 1026, 1034, 1027, 1039, 2038,
     586     1044, 2035, 1048, 2034, 1049, 1051, 1052, 1053, 1056, 1057,
     587     1055, 2033, 1059, 2031,  946, 1063, 1066, 1067, 1068, 1071,
     588     1069, 2028, 1075, 2025, 1077, 1080, 1079, 1082, 1084, 1086,
     589     1087, 1090, 1097, 1107, 1088, 1108, 1093, 1098, 2024, 1096,
     590     1111, 1164, 2020,    0, 2018,    0, 2015,    0, 2012,    0,
     591     1151, 2011,    0, 2010,    0, 2008, 2005, 2002,    0, 2001,
     592        0, 1156, 2000, 1162, 1148, 1182, 1149, 1126, 1147, 2782,
     593     1201, 1215, 1241, 2010, 1983, 1992, 1991,    0, 1990,    0,
     594
     595     1988,    0, 1985,    0, 1982,    0, 1981,    0, 1161, 1149,
     596     1983, 1179, 1140, 1180, 1117, 1182, 1192, 1199, 1181, 1163,
     597     1196, 1200, 1201, 1220, 1198, 1221, 1224,  604, 1226, 1227,
     598     1231, 1233, 1234, 1981, 1244, 1236, 1978, 1240, 1241, 1246,
     599     1247, 1243, 1975, 1250, 1251, 1253, 1254, 1974, 1255, 1267,
     600     1973, 1264, 1271, 1256, 1263, 1257, 1971, 1275, 1277, 1279,
     601     1260, 1281, 1290, 1285, 1288, 1968, 1289, 1291, 1967, 2015,
     602     1961,    0, 1958,    0, 1957,    0, 1956,    0, 1954,    0,
     603     1921,    0, 1919,    0, 1918,    0, 1336, 1342, 1369, 1353,
     604     1915, 2782, 1359, 1307, 1359, 1309, 1912, 2782, 1911,    0,
     605
     606     1910,    0, 1908,    0, 1905,    0,    0,    0, 1905,    0,
     607     1347, 1295, 1292, 1323, 1337, 1338, 1296, 1349, 1351, 1355,
     608     1353, 1348, 1363, 1364, 1371, 1373, 1380, 1375, 1403, 1381,
     609     1385, 1389, 1094, 1387, 1390, 1904, 1391, 1393, 1397, 1401,
     610     1903, 1901, 1898, 1394, 1400, 1897, 1404, 1896, 1894, 1402,
     611     1408, 1891, 1890, 1889, 1887, 1884, 1880, 1417, 1412, 1876,
     612     1420, 1418, 1921, 2782, 1853,    0, 1852,    0,    0,    0,
     613     1854,    0,    0,    0, 2782,    0,    0,    0,    0, 1463,
     614     1849, 2782, 2782, 1469, 1846,    0, 1845,    0,    0,    0,
     615        0, 1844, 1407, 1446, 1845, 1406, 1423, 1300, 1431, 1449,
     616
     617     1455, 1447, 1842, 1457, 1448, 1459, 1464, 1460, 1490, 1474,
     618     1470, 1494, 1480, 1475, 1484, 1485, 1486, 1482, 1841, 1487,
     619     1840, 1838, 1489, 1835, 1834, 1491, 1493, 1497, 1833, 1498,
     620     1500,    0,    0,    0, 1828, 1825, 1824, 1548,    0, 1823,
     621     1821, 1818, 1817, 1816, 1817, 1814, 1813, 1812, 1505, 1510,
     622     1502, 1501, 1504, 1508, 1513, 1517, 1526, 1528, 1559, 1810,
     623     1533, 1807, 1534, 1535, 1544, 1545, 1538, 1539, 1806, 1805,
     624     1803, 1800, 1540, 1799, 1798, 1793, 1786, 1784, 1783, 1780,
     625     1779, 1778, 1776, 1759, 1750, 1749, 1746, 1546, 1742, 1549,
     626     1550, 1552, 1554, 1557, 1558, 1739, 1556, 1589, 1566, 1732,
     627
     628     1565, 1572, 1577, 1579, 1567, 1578, 1727, 1726, 1705, 1704,
     629     1703, 1696, 1694, 1693, 1650, 1649, 1647, 1645, 1644, 1646,
     630     1571, 1584, 1582, 1581, 1586, 1593, 1595, 1645, 1644, 1597,
     631     1642, 1641, 1598, 1599, 1602, 1636, 1635, 1633, 1422, 1421,
     632     1205, 1201,  946, 1605, 1610,  910, 1603, 1607,  768, 1613,
     633     1618, 1619,  723,  605,  503,  370, 1609, 1620, 1623, 1624,
     634     1625,  338,  337, 1627,  290,  251, 1630,  200,  196, 1631,
     635     1632, 1637, 1633,  136, 2782, 1707, 1720, 1733, 1743, 1753,
     636     1766, 1776, 1789, 1802, 1815, 1823, 1833, 1840, 1847, 1854,
     637     1861, 1868, 1875, 1882, 1889, 1896, 1909, 1916, 1920, 1928,
     638
     639     1931, 1938, 1945, 1952, 1955, 1962, 1968, 1981, 1994, 2001,
     640     2008, 2015, 2022, 2025, 2032, 2035, 2042, 2045, 2052, 2055,
     641     2062, 2065, 2072, 2075, 2082, 2085, 2092, 2100, 2107, 2114,
     642     2121, 2128, 2131, 2138, 2141, 2148, 2151, 2158, 2164, 2177,
     643     2184, 2191, 2194, 2201, 2204, 2211, 2214, 2221, 2224, 2231,
     644     2234, 2241, 2244, 2251, 2258, 2261, 2268, 2271, 2278, 2285,
     645     2292, 2295, 2302, 2305, 2312, 2315, 2322, 2325, 2332, 2335,
     646     2342, 2348, 2361, 2368, 2375, 2378, 2385, 2388, 2395, 2398,
     647     2405, 2408, 2415, 2418, 2425, 2428, 2435, 2438, 2445, 2448,
     648     2455, 2462, 2465, 2472, 2475, 2482, 2485, 2492, 2495, 2498,
     649
     650     2504, 2511, 2520, 2527, 2534, 2537, 2544, 2547, 2550, 2556,
     651     2563, 2566, 2569, 2572, 2575, 2578, 2581, 2584, 2591, 2594,
     652     2601, 2604, 2607, 2610, 2613, 2623, 2630, 2633, 2636, 2639,
     653     2646, 2653, 2660, 2663, 2670, 2677, 2684, 2691, 2698, 2705,
     654     2712, 2719, 2726, 2733, 2740, 2747, 2754, 2761, 2768
    657655    } ;
    658656
    659 static yyconst flex_int16_t yy_def[1058] =
     657static yyconst flex_int16_t yy_def[1050] =
    660658    {   0,
    661       883,    1,  884,  884,  883,    5,  885,  885,  886,  886,
    662       883,  883,  883,  883,  883,  883,  883,  887,  883,  883,
    663       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    664       883,   31,  883,  883,  883,  883,  883,  883,  888,  887,
    665       883,  883,  883,  883,  887,  883,  887,  887,  887,  887,
    666       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    667       887,  887,  883,  883,  883,  883,  883,  889,  883,  883,
    668       883,  890,  883,  883,  891,  883,  883,  892,  883,  883,
    669       883,  883,  883,  883,  883,  887,  883,  883,  883,  883,
    670       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    671 
    672       893,  883,   99,   30,  883,  883,  883,  883,  894,   30,
    673       883,   31,  883,  883,   31,  883,  883,  883,  883,  883,
    674       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    675       883,  883,  883,  883,  883,  883,  883,  883,  883,  895,
    676       883,  883,  883,  883,  887,  896,  897,  883,  883,  887,
    677       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    678       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    679       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    680       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    681       887,  887,  887,  887,  883,  883,  883,  889,  889,  889,
    682 
    683       883,  889,  883,  890,  883,  898,  899,  891,  883,  883,
    684       883,  883,  900,  901,  902,  892,  883,  883,  883,  883,
    685       883,  883,  883,  883,  883,  883,  883,  883,  883,  903,
    686       904,  883,   99,  883,  883,  883,  883,   99,  905,  883,
    687       883,  104,  104,  883,  883,  883,  883,  883,  883,  883,
    688       883,  906,  907,  908,  883,  883,  883,  883,  883,  883,
    689       883,  883,  883,  883,  883,  883,  883,  883,  895,  883,
    690       909,  910,  911,  912,  913,  914,  883,  915,  915,  915,
    691       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    692       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    693 
    694       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    695       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    696       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    697       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    698       915,  915,  916,  917,  918,  919,  920,  921,  922,  923,
    699       883,  883,  924,  925,  926,  927,  928,  929,  883,  883,
    700       883,  883,  883,  930,  931,  932,  933,  883,  883,  883,
    701       883,  883,  883,  883,  370,  375,  883,  883,  934,  935,
    702       936,  883,  883,  883,  936,  883,  883,  883,  937,  938,
    703       939,  940,  941,  942,  943,  944,  945,  946,  883,  947,
    704 
    705       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    706       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    707       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    708       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    709       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    710       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    711       947,  947,  947,  947,  947,  948,  949,  950,  951,  952,
    712       953,  954,  955,  956,  883,  957,  958,  959,  960,  961,
    713       961,  962,  963,  964,  965,  883,  486,  883,  966,  883,
    714       966,  883,  883,  883,  883,  883,  883,  883,  883,  967,
    715 
    716       968,  969,  970,  971,  972,  973,  974,  975,  976,  977,
    717       978,  979,  980,  980,  980,  980,  980,  980,  980,  980,
    718       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    719       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    720       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    721       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    722       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    723       980,  980,  980,  980,  981,  982,  983,  984,  985,  986,
    724       987,  988,  989,  990,  991,  992,  993,  994,  995,  996,
    725       997,  883,  883,  883,  883,  998,  883,  594,  883,  883,
    726 
    727       883,  598,  883,  999, 1000, 1001, 1002, 1003, 1004, 1005,
    728      1006, 1007, 1008, 1009, 1010, 1009, 1009, 1009, 1009, 1009,
    729      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
    730      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
    731      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
    732      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
    733      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1011,  883,
    734      1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
    735       883, 1022, 1023, 1024, 1025,  883,  686,  883,  883,  883,
    736      1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1034,
    737 
    738      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    739      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    740      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    741      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1035, 1036,
    742      1037, 1038, 1039, 1040,  883, 1041, 1026, 1028, 1042, 1043,
    743      1033, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    744      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    745      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    746      1034, 1034, 1034, 1044, 1045, 1038, 1046, 1039, 1047, 1040,
    747      1048, 1049, 1042, 1050, 1043, 1034, 1034, 1034, 1034, 1034,
    748 
    749      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    750      1034, 1034, 1034, 1034, 1051, 1044, 1052, 1045, 1053, 1046,
    751      1054, 1047, 1055, 1048, 1056, 1049, 1050, 1034, 1034, 1034,
    752      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    753      1034, 1034, 1034, 1057, 1051, 1052, 1053, 1054, 1028, 1055,
    754      1056, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    755      1034, 1034, 1057, 1028, 1034, 1034, 1034, 1034, 1034, 1034,
    756      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    757      1034, 1034,    0,  883,  883,  883,  883,  883,  883,  883,
    758       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    759 
    760       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    761       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    762       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    763       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    764       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    765       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    766       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    767       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    768       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    769       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    770 
    771       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    772       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    773       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    774       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    775       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    776       883,  883,  883,  883,  883,  883,  883
     659      875,    1,  876,  876,  875,    5,  877,  877,  878,  878,
     660      875,  875,  875,  875,  875,  875,  875,  879,  875,  875,
     661      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     662      875,   31,  875,  875,  875,  875,  875,  875,  880,  879,
     663      875,  875,  875,  875,  879,  875,  879,  879,  879,  879,
     664      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
     665      879,  875,  875,  875,  875,  875,  881,  875,  875,  875,
     666      882,  875,  875,  883,  875,  875,  884,  875,  875,  875,
     667      875,  875,  875,  875,  879,  875,  875,  875,  875,  875,
     668      875,  875,  875,  875,  875,  875,  875,  875,  875,  885,
     669
     670      875,   98,   30,  875,  875,  875,  875,  886,   30,  875,
     671       31,  875,  875,   31,  875,  875,  875,  875,  875,  875,
     672      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     673      875,  875,  875,  875,  875,  875,  875,  875,  887,  875,
     674      875,  875,  875,  879,  888,  889,  875,  875,  879,  879,
     675      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
     676      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
     677      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
     678      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
     679      879,  879,  875,  875,  875,  881,  881,  881,  875,  881,
     680
     681      875,  882,  875,  890,  891,  883,  875,  875,  875,  875,
     682      892,  893,  894,  884,  875,  875,  875,  875,  875,  875,
     683      875,  875,  875,  875,  875,  875,  875,  895,  896,  875,
     684       98,  875,  875,  875,  875,   98,  897,  875,  875,  103,
     685      103,  875,  875,  875,  875,  875,  875,  875,  875,  898,
     686      899,  900,  875,  875,  875,  875,  875,  875,  875,  875,
     687      875,  875,  875,  875,  875,  875,  887,  875,  901,  902,
     688      903,  904,  905,  906,  875,  907,  907,  907,  907,  907,
     689      907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
     690      907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
     691
     692      907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
     693      907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
     694      907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
     695      907,  907,  907,  907,  907,  907,  907,  907,  907,  908,
     696      909,  910,  911,  912,  913,  914,  915,  875,  875,  916,
     697      917,  918,  919,  920,  921,  875,  875,  875,  875,  875,
     698      922,  923,  924,  925,  875,  875,  875,  875,  875,  875,
     699      875,  367,  372,  875,  875,  926,  927,  928,  875,  875,
     700      875,  928,  875,  875,  875,  929,  930,  931,  932,  933,
     701      934,  935,  936,  937,  938,  875,  939,  939,  939,  939,
     702
     703      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     704      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     705      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     706      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     707      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     708      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     709      939,  940,  941,  942,  943,  944,  945,  946,  947,  948,
     710      875,  949,  950,  951,  952,  953,  953,  954,  955,  956,
     711      957,  875,  482,  875,  958,  875,  958,  875,  875,  875,
     712      875,  875,  875,  875,  875,  959,  960,  961,  962,  963,
     713
     714      964,  965,  966,  967,  968,  969,  970,  971,  972,  972,
     715      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     716      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     717      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     718      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     719      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     720      972,  972,  972,  972,  972,  972,  972,  972,  972,  973,
     721      974,  975,  976,  977,  978,  979,  980,  981,  982,  983,
     722      984,  985,  986,  987,  988,  989,  875,  875,  875,  875,
     723      990,  875,  589,  875,  875,  875,  593,  875,  991,  992,
     724
     725      993,  994,  995,  996,  997,  998,  999, 1000, 1001, 1002,
     726     1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
     727     1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
     728     1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
     729     1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
     730     1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
     731     1001, 1001, 1003,  875, 1004, 1005, 1006, 1007, 1008, 1009,
     732     1010, 1011, 1012, 1013,  875, 1014, 1015, 1016, 1017,  875,
     733      680,  875,  875,  875, 1018, 1019, 1020, 1021, 1022, 1023,
     734     1024, 1025, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     735
     736     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     737     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     738     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     739     1026, 1027, 1028, 1029, 1030, 1031, 1032,  875, 1033, 1018,
     740     1020, 1034, 1035, 1025, 1026, 1026, 1026, 1026, 1026, 1026,
     741     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     742     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     743     1026, 1026, 1026, 1026, 1026, 1036, 1037, 1030, 1038, 1031,
     744     1039, 1032, 1040, 1041, 1034, 1042, 1035, 1026, 1026, 1026,
     745     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     746
     747     1026, 1026, 1026, 1026, 1026, 1026, 1043, 1036, 1044, 1037,
     748     1045, 1038, 1046, 1039, 1047, 1040, 1048, 1041, 1042, 1026,
     749     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     750     1026, 1026, 1026, 1026, 1026, 1049, 1043, 1044, 1045, 1046,
     751     1020, 1047, 1048, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     752     1026, 1026, 1026, 1026, 1049, 1020, 1026, 1026, 1026, 1026,
     753     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     754     1026, 1026, 1026, 1026,    0,  875,  875,  875,  875,  875,
     755      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     756      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     757
     758      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     759      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     760      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     761      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     762      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     763      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     764      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     765      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     766      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     767      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     768
     769      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     770      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     771      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     772      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     773      875,  875,  875,  875,  875,  875,  875,  875,  875
    777774    } ;
    778775
    779 static yyconst flex_int16_t yy_nxt[2884] =
     776static yyconst flex_int16_t yy_nxt[2867] =
    780777    {   0,
    781778       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    785782       18,   18,   40,   18,   18,   18,   18,   18,   40,   18,
    786783       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
    787        51,   52,   53,   18,   54,   18,   55,   18,   18,   56,
    788        18,   57,   58,   59,   60,   61,   62,   18,   18,   18,
    789        63,   64,   65,   66,   67,   84,   92,   85,   85,   67,
    790        88,   89,   68,   71,   71,   71,   71,   71,   71,   71,
    791 
    792        71,   71,   71,   72,   71,   71,   71,   71,   71,   71,
     784       51,   52,   53,   18,   54,   18,   55,   18,   18,   18,
     785       18,   56,   57,   58,   59,   60,   61,   18,   18,   18,
     786       62,   63,   64,   65,   66,   83,   91,   84,   84,   66,
     787       87,   88,   67,   70,   70,   70,   70,   70,   70,   70,
     788
     789       70,   70,   70,   71,   70,   70,   70,   70,   70,   70,
     790       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
     791       70,   70,   70,   70,   70,   70,   70,   70,   71,   71,
    793792       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    794        71,   71,   71,   71,   71,   71,   71,   71,   72,   72,
    795        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    796        72,   72,   72,   71,   73,   71,   71,   72,   74,   72,
    797        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    798        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    799        72,   72,   72,   71,   71,   71,   71,   76,   76,   79,
    800        79,  123,  124,   90,  141,   79,   79,   87,   76,   76,
    801        80,   81,   82,   82,   82,   80,   82,   81,   83,   83,
    802 
    803        83,   82,   91,   93,  142,  146,   87,   98,   95,   99,
    804        99,   99,   99,   99,   99,  252,  195,   94,  100,   85,
    805        96,   97,   85,  101,  177,  118,   77,   77,   77,   77,
    806       143,  147,   87,  102,  103,  144,  104,  104,  104,  104,
    807       105,  105,  119,   87,  120,  121,  148,   87,  149,  254,
    808        87,  883,  161,  106,   87,  194,  107,  182,   87,  150,
    809       151,  152,  108,  109,  153,  154,  196,  155,  110,   87,
    810       156,  157,   87,   87,  106,   87,  145,  162,  158,  159,
    811       111,  160,   87,   87,  163,  260,   87,  180,  108,  206,
    812       164,  109,  103,  181,  112,  112,  112,  112,  112,  112,
    813 
    814        87,  169,  317,  170,  230,  250,   87,   87,   87,  165,
    815        87,  106,  171,  166,  113,  207,  178,  183,  167,  188,
    816       114,   87,  168,  179,  249,   87,  115,  189,  193,  251,
    817       231,  143,  106,  263,  190,  264,  144,  263,  116,  264,
    818        87,  283,  248,  200,  201,  172,  114,  125,  200,  191,
    819       249,  126,  127,  173,  128,  174,  129,  130,  175,  131,
    820       258,  132,  176,   87,  202,  202,  202,  202,  202,  202,
    821       133,  134,  135,   87,   87,  184,  185,  145,  197,   81,
    822        82,   82,   82,  197,  259,  186,  198,  263,  187,  264,
    823       136,  192,   87,  137,   80,   81,   82,   82,   82,   80,
    824 
    825        82,   81,   82,   82,   82,   82,   82,   81,   83,   83,
    826        83,   82,  265,   87,  285,  242,  242,  242,  242,  248,
    827       138,  139,  209,  210,  256,  249,  263,  209,  264,  211,
    828       257,  263,  271,  264,  211,   99,   99,   99,   99,   99,
    829        99,  265,  883,  212,  212,  212,  212,  243,  257,  883,
    830       883,  249,   87,  263,  211,  264,  257,  103,  272,  105,
    831       105,  105,  105,  105,  105,   87,  256,  241,  298,  213,
    832       883,  263,  211,  264,  257,   87,  106,  211,  211,  883,
    833       278,  211,  211,   87,  255,  266,  263,  279,  264,  211,
    834       883,  244,  211,  280,  211,  214,  211,  106,  215,  217,
    835 
    836       263,  267,  264,  218,  219,  299,  883,  883,  220,  221,
    837       245,  222,  245,  223,   87,  246,  246,  246,  246,  246,
    838       246,   87,  224,  225,  226,  263,  263,  264,  264,  143,
    839       282,   87,  281,   87,  144,   87,   87,   87,   87,   87,
    840       374,   87,  227,   87,  300,  228,   87,  247,  286,  284,
    841       305,  287,  288,  289,  447,  290,  291,   87,  307,  292,
    842       310,  293,  301,  302,   87,  309,  294,  295,  296,  303,
    843       297,   87,   87,  229,  233,  233,  233,  233,  233,  233,
    844       308,  306,  304,   87,   87,   87,   87,   87,   87,  311,
    845       234,  235,   87,  236,  237,   87,   87,   87,   87,   87,
    846 
    847       314,  323,   87,  315,   87,  313,  238,  312,  329,  324,
    848       316,  234,  235,  234,  318,  322,  236,  319,  237,  320,
    849        87,   87,   87,   87,   87,  330,  321,   87,  331,  335,
    850       143,  325,   87,   87,   87,  333,   87,   87,  345,  328,
    851       368,  326,  327,  332,  334,  338,  336,  340,   87,  341,
    852       342,  401,  368,  339,  197,   81,   82,   82,   82,  197,
    853       200,  201,  198,  368,  346,  200,  200,  201,  406,  209,
    854       210,  200,   87,   87,  209,  368,  337,  351,  351,  351,
    855       351,  202,  202,  202,  202,  202,  202,  202,  202,  202,
    856       202,  202,  202,  343,  201,  359,  360,  360,  343,  359,
    857 
    858       344,  360,  359,  359,  360,  360,   87,  883,  360,  352,
    859       359,  359,  360,  360,  202,  202,  202,  202,  202,  202,
    860       359,  377,  360,  361,  359,  387,  360,  359,  362,  360,
    861       359,  359,  360,  360,  369,  263,  369,  264,   87,  370,
    862       370,  370,  370,  370,  370,  372,  263,  377,  264,  372,
    863        87,  387,  389,  234,  235,  404,  236,  237,   87,   87,
    864       105,  105,  105,  105,  105,  105,  372,  419,  372,  434,
    865        87,  371,  400,  372,  234,  235,  234,  106,  390,  236,
    866        87,  237,  246,  246,  246,  246,  246,  246,  402,   87,
    867        87,   87,  255,   87,  405,  407,  403,   87,  106,  375,
    868 
    869       375,  375,  375,  375,  375,  105,  105,  105,  105,  105,
    870       105,  380,   87,  408,  412,  234,   87,   87,  236,  237,
    871       245,  425,  245,  414,  883,  246,  246,  246,  246,  246,
    872       246,  376,  415,  382,  413,  383,  234,  255,  234,  384,
    873        87,  236,   87,  237,   87,  385,  112,  112,  112,  112,
    874       112,  112,   87,  420,   87,   87,   87,  386,  416,  417,
    875       418,  383,   87,   87,   87,  384,  660,  409,  424,   87,
    876        87,  421,  422,  410,  411,   87,  426,   87,  260,   87,
    877       423,   87,  431,   87,  427,  433,  432,   87,  428,   87,
    878        87,   87,  435,  436,   87,   87,  429,  430,   87,  438,
    879 
    880       440,   87,   87,  441,   87,  437,  439,  442,   87,   87,
    881        87,   87,   87,  444,   87,   87,   87,  446,   87,  445,
    882        87,   87,   87,  448,  443,  450,  143,  455,   87,   87,
    883       449,  454,  451,   87,  452,  453,   87,  460,  456,  459,
    884        87,  464,   87,  457,  458,  201,  462,  461,  463,  343,
    885       201,  199,   87,  359,  343,  360,  344,  465,  211,  211,
    886       211,  211,  351,  351,  351,  351,  359,  515,  360,   87,
    887       370,  370,  370,  370,  370,  370,  369,  490,  369,  490,
    888       498,  370,  370,  370,  370,  370,  370,  491,  864,  492,
    889       475,  486,  486,  486,  486,  486,  486,  233,  233,  233,
    890 
    891       233,  233,  233,  490,  499,  490,   87,  234,  494,   87,
    892       236,  237,  242,  242,  242,  242,  105,  105,  493,   87,
    893       513,  380,  514,  487,  494,   87,  493,   87,  234,  373,
    894       234,   87,  522,  236,  494,  237,  375,  375,  375,  375,
    895       375,  375,  518,  382,  374,  383,  516,  520,  883,  384,
    896       494,  495,  883,  495,   87,  385,  496,  496,  496,  496,
    897       496,  496,   87,  517,   87,   87,   87,  386,  376,   87,
    898       382,  383,  383,  519,  521,  384,  384,   87,  523,  525,
    899        87,   87,  500,   87,   87,   87,  530,   87,  497,   87,
    900       533,  524,   87,   87,  386,   87,  526,  527,  383,  528,
    901 
    902       531,  529,  384,  535,  537,   87,   87,  532,  534,  538,
    903        87,   87,  536,   87,   87,   87,   87,  539,   87,   87,
    904       542,  545,   87,   87,  543,  547,   87,  540,   87,  546,
    905        87,   87,  541,  548,   87,   87,  544,   87,  551,  549,
    906       555,   87,   87,  553,  550,   87,  558,   87,  552,   87,
    907       554,  556,   87,   87,   87,   87,  566,   87,  557,   87,
    908        87,  563,  559,   87,  562,  560,  567,  561,  565,   87,
    909        87,  564,  574,   87,  571,   87,  883,  569,  201,  568,
    910       623,  572,  573,  490,  575,   87,  617,  570,  211,  211,
    911       211,  211,  486,  486,  486,  486,  486,  486,  375,  375,
    912 
    913       375,  375,  375,  375,   87,  619,  490,  490,  234,  490,
    914        87,  236,  237,  593,  597,  593,  491,  596,  594,  594,
    915       594,  594,  594,  594,  487,   87,  621,  616,   87,  234,
    916       488,  234,  490,  490,  236,   87,  237,  883,  620,  624,
    917       597,  496,  496,  496,  496,  496,  496,   87,  622,   87,
    918       595,  598,  598,  598,  598,  598,  598,   87,   87,   87,
    919       625,   87,  618,   87,   87,   87,  631,  599,  630,  626,
    920       600,  601,  495,  627,  495,   87,  633,  496,  496,  496,
    921       496,  496,  496,  602,  628,  629,  632,  634,  599,   87,
    922       599,   87,   87,  600,   87,  601,   87,   87,  635,  640,
    923 
    924        87,  639,   87,  638,   87,   87,  641,   87,   87,  637,
    925        87,   87,   87,  636,   87,   87,  649,   87,   87,  643,
    926       646,  647,  644,  645,   87,   87,  642,  648,   87,  650,
    927       652,   87,  651,  653,   87,   87,   87,  654,   87,   87,
    928       655,   87,   87,  664,  659,  661,   87,  657,   87,   87,
    929       665,   87,  658,  656,  663,   87,  666,   87,  688,  688,
    930       709,  662,  701,  883,  668,  667,  486,  486,  486,  486,
    931       486,  486,  594,  594,  594,  594,  594,  594,  593,   87,
    932       593,  688,  688,  594,  594,  594,  594,  594,  594,  598,
    933       598,  598,  598,  598,  598,   87,  704,   87,  592,  686,
    934 
    935       686,  686,  686,  686,  686,  689,   87,   87,  703,  689,
    936        87,  699,   87,   87,   87,  599,  702,  706,  600,  601,
    937       705,  602,  707,  718,  700,   87,  689,   87,  689,  708,
    938        87,  687,   87,  689,   87,  711,  599,   87,  599,   87,
    939       710,  600,  716,  601,   87,  712,   87,  713,   87,  714,
    940        87,   87,   87,   87,  717,   87,  715,  721,   87,  719,
    941        87,   87,  724,   87,   87,   87,  720,   87,   87,  722,
    942       728,   87,  734,   87,  723,   87,   87,  725,   87,   87,
    943       733,  726,  727,  729,  731,  735,  732,   87,  736,  753,
    944       738,  730,   87,   87,  752,   87,  737,  686,  686,  686,
    945 
    946       686,  686,  686,  598,  598,  598,  598,  598,  598,   87,
    947       863,  760,   87,  599,  756,  757,  600,  601,  754,  755,
    948        87,   87,   87,  758,  759,   87,   87,   87,  761,  687,
    949       764,   87,  766,  769,  599,  690,  599,   87,  762,  600,
    950       763,  601,   87,   87,   87,  767,  768,  765,   87,   87,
    951        87,  770,  772,   87,   87,   87,  771,   87,   87,  773,
    952        87,   87,   87,  774,  776,   87,   87,  778,   87,   87,
    953        87,   87,   87,   87,  775,  783,  782,  777,   87,   87,
    954        87,  779,  800,   87,  780,  798,  781,  686,  686,  686,
    955       686,  686,  686,  796,  799,  797,   87,  803,   87,   87,
    956 
    957       806,  804,   87,   87,   87,  807,  801,  808,   87,   87,
    958       809,  810,  805,  802,   87,   87,   87,  811,   87,  745,
    959        87,   87,   87,   87,  812,   87,  831,   87,  833,   87,
    960        87,  836,  834,   87,   87,   87,  837,  839,  813,  814,
    961       830,  829,   87,  832,   87,  828,   87,  840,  835,   87,
    962        87,  841,   87,   87,   87,   87,   87,  838,  854,  853,
    963        87,   87,  842,  855,  857,  843,   87,   87,   87,  859,
    964       858,  852,   87,   87,   87,  860,  861,  862,  856,  866,
    965        87,   87,  865,  867,   87,   87,   87,  869,  870,  871,
    966        87,  868,   87,   87,   87,   87,  874,   87,  876,   87,
    967 
    968        87,   87,   87,   87,  875,   87,   87,  873,   87,  879,
    969       872,  883,  882,  883,  851,  883,  850,  883,  848,  877,
    970       878,  881,  883,  880,   69,   69,   69,   69,   69,   69,
    971        69,   69,   69,   69,   69,   69,   69,   75,   75,   75,
    972        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
    973        78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
    974        78,   78,   78,   86,  847,  883,   86,  846,   86,   86,
    975        86,   86,   86,  140,  883,  845,   87,  140,  140,  140,
    976       140,  140,  140,  199,  199,  199,  199,  199,  199,  199,
    977       199,  199,  199,  199,  199,  199,  204,   87,   87,  204,
    978 
    979       883,  204,  204,  204,  204,  204,  208,  827,  208,  208,
    980       883,  208,  208,  208,  208,  208,  208,  826,  208,  216,
    981       824,  883,  216,  216,  216,  216,  216,  216,  216,  216,
    982       822,  216,  239,  239,  239,  239,  239,  239,  239,  239,
    983       239,  239,  239,  239,  239,  253,  253,  883,  253,  820,
    984       883,  818,  253,  269,  816,   87,  269,   87,  269,  269,
    985       269,  269,  269,  273,   87,  273,   87,   87,   87,  273,
    986       275,   87,  275,   87,   87,   87,  275,  347,   87,  347,
    987        87,   87,  883,  347,  349,  795,  349,  793,  883,  883,
    988       349,  353,  790,  353,  788,  786,   87,  353,  355,   87,
    989 
    990       355,   87,   87,   87,  355,  357,   87,  357,   87,   87,
    991       751,  357,  364,  748,  364,  747,  745,  205,  364,  366,
    992       741,  366,  740,  670,   87,  366,  239,  239,  239,  239,
    993       239,  239,  239,  239,  239,  239,  239,  239,  239,  379,
    994        87,  379,  381,  381,   87,  381,  381,  381,   87,  381,
    995       253,  253,   87,  253,  391,   87,  391,   87,   87,   87,
    996       391,  393,   87,  393,   87,   87,   87,  393,  395,   87,
    997       395,   87,  697,  696,  395,  273,  694,  273,  397,  692,
    998       397,  690,  596,  685,  397,  275,  684,  275,   86,  682,
    999       680,   86,  678,   86,   86,   86,   86,   86,  199,  199,
    1000 
    1001       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
    1002       199,  466,  466,  466,  466,  466,  466,  466,  466,  466,
    1003       466,  466,  466,  466,  467,  676,  467,  674,  672,  670,
    1004       467,  469,   87,  469,   87,   87,   87,  469,  471,   87,
    1005       471,   87,   87,   87,  471,  347,   87,  347,  473,  615,
    1006       473,  613,  611,  609,  473,  349,  607,  349,  476,  605,
    1007       476,  500,  603,  603,  476,  353,  592,  353,  478,  591,
    1008       478,  589,  481,  481,  478,  355,  587,  355,  480,  585,
    1009       480,  583,  581,  579,  480,  357,  577,  357,  482,   87,
    1010       482,   87,   87,   87,  482,  364,   87,  364,  484,   87,
    1011 
    1012       484,   87,   87,  512,  484,  366,  510,  366,  489,  508,
    1013       489,  506,  489,  504,  489,  379,  502,  379,  488,  379,
    1014       485,  379,  381,  381,  483,  381,  381,  381,  360,  381,
    1015       501,  360,  501,  481,  479,  477,  501,  503,  474,  503,
    1016       472,  470,  468,  503,  505,   87,  505,   87,   87,  399,
    1017       505,  391,  398,  391,  507,  396,  507,  394,  392,  270,
    1018       507,  393,  265,  393,  509,  264,  509,  388,  388,  252,
    1019       509,  395,  378,  395,  511,  378,  511,  240,  373,  367,
    1020       511,  397,  365,  397,   86,  363,  359,   86,  358,   86,
    1021        86,   86,   86,   86,  466,  466,  466,  466,  466,  466,
    1022 
    1023       466,  466,  466,  466,  466,  466,  466,  576,  356,  576,
    1024       354,  350,  348,  576,  467,  205,  467,  578,  201,  578,
    1025        87,  277,  276,  578,  469,  274,  469,  580,  270,  580,
    1026       265,  268,  265,  580,  471,  263,  471,  582,  262,  582,
    1027       261,  240,  232,  582,  473,   85,  473,  584,   85,  584,
    1028        87,  205,  203,  584,  476,   85,  476,  586,  122,  586,
    1029       117,   87,  883,  586,  478,   70,  478,  480,   70,  480,
    1030       883,  883,  883,  480,  588,  883,  588,  883,  883,  883,
    1031       588,  482,  883,  482,  590,  883,  590,  883,  883,  883,
    1032       590,  484,  883,  484,  489,  883,  489,  883,  489,  883,
    1033 
    1034       489,  381,  883,  381,  883,  883,  883,  381,  604,  883,
    1035       604,  883,  883,  883,  604,  501,  883,  501,  606,  883,
    1036       606,  883,  883,  883,  606,  503,  883,  503,  608,  883,
    1037       608,  883,  883,  883,  608,  505,  883,  505,  610,  883,
    1038       610,  883,  883,  883,  610,  507,  883,  507,  612,  883,
    1039       612,  883,  883,  883,  612,  509,  883,  509,  614,  883,
    1040       614,  883,  883,  883,  614,  511,  883,  511,   86,  883,
    1041       883,   86,  883,   86,   86,   86,   86,   86,  669,  669,
    1042       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
    1043       669,  671,  883,  671,  883,  883,  883,  671,  576,  883,
    1044 
    1045       576,  673,  883,  673,  883,  883,  883,  673,  578,  883,
    1046       578,  675,  883,  675,  883,  883,  883,  675,  580,  883,
    1047       580,  677,  883,  677,  883,  883,  883,  677,  582,  883,
    1048       582,  679,  883,  679,  883,  883,  883,  679,  584,  883,
    1049       584,  681,  883,  681,  883,  883,  883,  681,  586,  883,
    1050       586,  683,  883,  683,  883,  883,  883,  683,  588,  883,
    1051       588,   86,  883,   86,  883,  883,  883,   86,  590,  883,
    1052       590,  489,  883,  489,  883,  883,  883,  489,  691,  883,
    1053       691,  883,  883,  883,  691,  604,  883,  604,  693,  883,
    1054       693,  883,  883,  883,  693,  606,  883,  606,  695,  883,
    1055 
    1056       695,  883,  883,  883,  695,  608,  883,  608,  140,  883,
    1057       140,  883,  883,  883,  140,  610,  883,  610,  698,  883,
    1058       698,  612,  883,  612,   86,  883,  883,   86,  883,   86,
    1059        86,   86,   86,   86,  614,  883,  614,  669,  669,  669,
    1060       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
    1061       739,  883,  739,  883,  883,  883,  739,  671,  883,  671,
    1062       204,  883,  204,  883,  883,  883,  204,  673,  883,  673,
    1063       742,  883,  742,  675,  883,  675,  204,  883,  883,  204,
    1064       883,  204,  204,  204,  204,  204,  677,  883,  677,  743,
    1065       883,  743,  679,  883,  679,  681,  883,  681,  744,  883,
    1066 
    1067       744,  683,  883,  683,   86,  883,   86,  746,  883,  746,
    1068       883,  883,  883,  746,  691,  883,  691,  269,  883,  269,
    1069       883,  883,  883,  269,  693,  883,  693,  749,  883,  749,
    1070       695,  883,  695,  140,  883,  140,  750,  883,  750,  883,
    1071       883,  883,  750,   86,  883,  883,   86,  883,   86,   86,
    1072        86,   86,   86,  784,  883,  784,  739,  883,  739,  204,
    1073       883,  204,  785,  883,  785,  883,  883,  883,  785,  787,
    1074       883,  787,  883,  883,  883,  787,  789,  883,  789,  883,
    1075       883,  883,  789,  791,  883,  791,  792,  883,  792,  883,
    1076       883,  883,  792,  794,  883,  794,  883,  883,  883,  794,
    1077 
    1078       815,  883,  815,  883,  883,  883,  815,  817,  883,  817,
    1079       883,  883,  883,  817,  819,  883,  819,  883,  883,  883,
    1080       819,  821,  883,  821,  883,  883,  883,  821,  823,  883,
    1081       823,  883,  883,  883,  823,  825,  883,  825,  883,  883,
    1082       883,  825,  614,  883,  614,  883,  883,  883,  614,  844,
    1083       883,  844,  883,  883,  883,  844,  677,  883,  677,  883,
    1084       883,  883,  677,  681,  883,  681,  883,  883,  883,  681,
    1085        86,  883,   86,  883,  883,  883,   86,  849,  883,  849,
    1086       883,  883,  883,  849,  140,  883,  140,  883,  883,  883,
    1087       140,  204,  883,  204,  883,  883,  883,  204,   11,  883,
    1088 
    1089       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1090       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1091       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1092       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1093       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1094       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1095       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1096       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1097       883,  883,  883
     793       71,   71,   71,   70,   72,   70,   70,   71,   73,   71,
     794       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     795       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     796       71,   71,   71,   70,   70,   70,   70,   75,   75,   78,
     797       78,  122,  123,   89,  140,   78,   78,   86,   75,   75,
     798       79,   80,   81,   81,   81,   79,   81,   80,   82,   82,
     799
     800       82,   81,   90,   92,  141,  145,   86,   97,   94,   98,
     801       98,   98,   98,   98,   98,  250,  875,   93,   99,   84,
     802       95,   96,   84,  100,  176,  117,   76,   76,   76,   76,
     803      142,  146,   86,  101,  102,  143,  103,  103,  103,  103,
     804      104,  104,  118,   86,  119,  120,  147,   86,  148,  252,
     805      258,   86,  160,  105,  193,  192,  106,   86,   86,  149,
     806      150,  151,  107,  108,  152,  153,  181,  154,  109,   86,
     807      155,  156,   86,   86,  105,   86,  144,  161,  157,  158,
     808      110,  159,  204,  261,  162,  262,   86,  179,  107,  228,
     809      163,  108,  102,  180,  111,  111,  111,  111,  111,  111,
     810
     811       86,  168,   86,  169,  194,   86,   86,   86,  205,  164,
     812       86,  105,  170,  165,  112,  229,  177,   86,  166,  186,
     813      113,  281,  167,  178,  269,   86,  114,  187,  191,  182,
     814      183,  142,  105,  261,  188,  262,  143,  284,  115,  184,
     815       86,   86,  185,  198,  199,  171,  113,  124,  198,  189,
     816      270,  125,  126,  172,  127,  173,  128,  129,  174,  130,
     817      248,  131,  175,  256,  200,  200,  200,  200,  200,  200,
     818      132,  133,  134,  261,   86,  262,   86,  144,  195,   80,
     819       81,   81,   81,  195,  249,  280,  196,  257,   86,   86,
     820      135,  190,   86,  136,   79,   80,   81,   81,   81,   79,
     821
     822       81,   80,   81,   81,   81,   81,   81,   80,   82,   82,
     823       82,   81,  261,  305,  262,  240,  240,  240,  240,  246,
     824      137,  138,  207,  208,  875,  247,  254,  207,   86,  209,
     825      247,  261,  255,  262,  209,   98,   98,   98,   98,   98,
     826       98,  263,  875,  210,  210,  210,  210,  241,  246,  308,
     827      875,  247,  263,  261,  209,  262,  247,  102,  255,  104,
     828      104,  104,  104,  104,  104,   86,  261,  239,  262,  211,
     829      875,  261,  209,  262,   86,  255,  105,  209,  209,  875,
     830      276,  209,  209,   86,  253,  264,  261,  277,  262,  209,
     831      296,  242,  209,  254,  209,  212,  209,  105,  213,  215,
     832
     833      261,  255,  262,  216,  217,  283,   86,  875,  218,  219,
     834      243,  220,  243,  221,   86,  244,  244,  244,  244,  244,
     835      244,   86,  222,  223,  224,  261,  265,  262,  142,  306,
     836       86,   86,  278,  143,   86,   86,  285,  286,  287,  279,
     837      288,  289,  225,   86,  290,  226,  291,  245,  282,   86,
     838       86,  292,  293,  294,   86,  295,  297,  875,  298,  301,
     839       86,   86,  307,   86,  299,  300,  309,  303,   86,   86,
     840      304,   86,  302,  227,  231,  231,  231,  231,  231,  231,
     841       86,   86,   86,  312,  310,  311,  313,   86,   86,   86,
     842      232,  233,   86,  234,  235,   86,  142,   86,  314,   86,
     843
     844      321,  315,  330,   86,  320,   86,  236,  318,   86,  316,
     845      317,  232,  233,  232,  319,  325,  234,   86,  235,  322,
     846       86,   86,   86,  331,  333,  328,  332,  629,  326,  323,
     847      324,   86,  207,  208,  337,  335,  338,  207,  365,   86,
     848      329,  342,  334,  336,  339,  327,  195,   80,   81,   81,
     849       81,  195,  198,  199,  196,   86,   86,  198,  198,  199,
     850      356,  365,  357,  198,  340,  199,  356,  343,  357,  340,
     851      356,  341,  357,  200,  200,  200,  200,  200,  200,  200,
     852      200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
     853      200,  348,  348,  348,  348,  357,  357,  356,   86,  357,
     854
     855      358,  356,  356,  357,  357,  356,  359,  357,  356,  356,
     856      357,  357,  356,  356,  357,  357,  369,  365,  403,  366,
     857      369,  366,   86,  349,  367,  367,  367,  367,  367,  367,
     858      875,  232,  233,   86,  234,  235,  261,  369,  262,  369,
     859      365,  261,  405,  262,  369,  104,  104,  104,  104,  104,
     860      104,  398,  232,  233,  232,  374,  368,  234,   86,  235,
     861       86,   86,  105,   86,  371,  244,  244,  244,  244,  244,
     862      244,  384,  386,  397,   86,   86,  399,  253,  401,  400,
     863      402,  374,   86,  105,  372,  372,  372,  372,  372,  372,
     864      104,  104,  104,  104,  104,  104,  377,  384,  387,   86,
     865
     866      232,   86,   86,  234,  235,  243,  404,  243,  411,   86,
     867      244,  244,  244,  244,  244,  244,  373,  410,  379,   86,
     868      380,  232,  253,  232,  381,  409,  234,  419,  235,   86,
     869      382,  111,  111,  111,  111,  111,  111,   86,   86,   86,
     870       86,   86,  383,   86,  412,  415,  380,   86,  416,   86,
     871      381,   86,  406,   86,  413,  414,  417,   86,  407,  408,
     872      422,   86,  421,  258,   86,  420,   86,   86,  418,  424,
     873       86,  423,  428,   86,  426,  427,  430,   86,  429,  425,
     874       86,   86,   86,   86,   86,  431,  432,  433,   86,  437,
     875       86,  435,   86,  438,   86,  439,  434,   86,  436,   86,
     876
     877       86,   86,   86,   86,   86,   86,   86,  443,   86,   86,
     878      444,  441,  440,  446,   86,  442,  445,  451,   86,   86,
     879      142,  450,   86,   86,  447,  449,  448,  456,  452,   86,
     880       86,  459,  453,   86,  494,  460,  454,  455,  340,  199,
     881      457,  199,  458,  340,  356,  341,  357,  197,  461,  209,
     882      209,  209,  209,  348,  348,  348,  348,  356,  495,  357,
     883       86,   86,   86,   86,  367,  367,  367,  367,  367,  367,
     884      366,  509,  366,  514,   86,  367,  367,  367,  367,  367,
     885      367,  471,  482,  482,  482,  482,  482,  482,  231,  231,
     886      231,  231,  231,  231,   86,   86,  516,   86,  232,  486,
     887
     888      875,  234,  235,  240,  240,  240,  240,  104,  104,  487,
     889      489,  510,  486,  512,  483,  377,  490,  545,  490,  232,
     890      370,  232,  488,   86,  234,  486,  235,  372,  372,  372,
     891      372,  372,  372,   86,  875,  371,  489,  379,  486,  380,
     892       86,  525,  490,  381,  490,  491,  529,  491,  511,  382,
     893      492,  492,  492,  492,  492,  492,  379,   86,  380,  373,
     894       86,  383,  381,   86,   86,  380,  513,   86,  496,  381,
     895       86,   86,  515,  517,   86,   86,  519,   86,   86,   86,
     896      383,   86,  493,  518,  380,   86,  526,  521,  381,  520,
     897       86,  522,  523,  524,  527,   86,  531,  532,  530,   86,
     898
     899       86,  528,   86,   86,   86,  533,   86,   86,   86,  534,
     900       86,  535,  538,  541,   86,  543,  539,   86,   86,   86,
     901       86,  536,   86,  542,  537,  544,   86,  540,   86,  551,
     902       86,   86,  547,   86,  549,   86,  546,   86,   86,   86,
     903      548,   86,  550,  552,   86,   86,  558,   86,   86,   86,
     904      555,  553,  554,  556,  560,  561,  559,  557,   86,   86,
     905      567,  566,   86,  716,  563,  562,  199,  564,   86,  568,
     906      486,  569,  570,  209,  209,  209,  209,  565,  482,  482,
     907      482,  482,  482,  482,  372,  372,  372,  372,  372,  372,
     908      616,   86,  486,  486,  232,  592,  486,  234,  235,  588,
     909
     910       86,  588,  487,  591,  589,  589,  589,  589,  589,  589,
     911      483,  614,   86,  612,   86,  232,  484,  232,  486,  486,
     912      234,  592,  235,  492,  492,  492,  492,  492,  492,  611,
     913       86,   86,   86,   86,  621,  620,  590,  593,  593,  593,
     914      593,  593,  593,   86,  615,  613,  617,   86,  618,   86,
     915       86,   86,   86,  594,  626,  875,  595,  596,  491,  856,
     916      491,  619,  622,  492,  492,  492,  492,  492,  492,  597,
     917      623,   86,   86,  624,  594,   86,  594,   86,   86,  595,
     918      625,  596,   86,  627,   86,   86,  630,   86,  628,  635,
     919      634,   86,   86,  633,   86,   86,  636,   86,   86,  632,
     920
     921      631,   86,   86,  641,   86,   86,   86,   86,   86,  638,
     922      642,   86,  639,  640,   86,   86,  644,  637,   86,  643,
     923      645,  646,   86,  647,  648,  652,   86,  651,   86,  650,
     924       86,  649,   86,  656,  653,  658,   86,  655,  654,   86,
     925       86,   86,   86,   86,  657,  659,   86,   86,  682,  660,
     926      682,   86,  696,  695,  700,  662,  749,  661,  482,  482,
     927      482,  482,  482,  482,  589,  589,  589,  589,  589,  589,
     928      588,  682,  588,  682,   86,  589,  589,  589,  589,  589,
     929      589,  593,  593,  593,  593,  593,  593,  697,   86,   86,
     930      587,  680,  680,  680,  680,  680,  680,  683,   86,   86,
     931
     932       86,  683,   86,  693,   86,  698,   86,  594,  701,  703,
     933      595,  596,  699,  597,   86,   86,  694,  704,  683,  702,
     934      683,  705,   86,  681,   86,  683,   86,  712,  594,  706,
     935      594,   86,   86,  595,  710,  596,   86,  707,   86,  708,
     936       86,   86,   86,  711,   86,   86,  709,  713,   86,  715,
     937      718,   86,   86,   86,   86,   86,  714,   86,   86,   86,
     938      717,  722,  726,   86,  719,  723,  727,  720,   86,   86,
     939      721,   86,  725,  729,   86,  875,  875,  728,  724,  745,
     940      730,  748,   86,  747,  731,  680,  680,  680,  680,  680,
     941      680,  593,  593,  593,  593,  593,  593,   86,   86,   86,
     942
     943       86,  594,  750,  751,  595,  596,   86,  746,   86,  752,
     944       86,   86,  755,  759,  754,   86,  753,  681,  757,  756,
     945      762,   86,  594,  684,  594,   86,   86,  595,  760,  596,
     946      761,   86,  758,   86,  763,   86,   86,   86,   86,  764,
     947       86,   86,   86,  765,   86,   86,  766,  769,   86,   86,
     948      767,   86,   86,   86,  768,   86,   86,  774,  790,   86,
     949      775,   86,  771,  770,   86,  792,  772,  791,   86,  773,
     950      680,  680,  680,  680,  680,  680,  788,   86,  789,   86,
     951      796,  794,  793,  798,   86,   86,   86,  799,  800,   86,
     952       86,   86,  797,  801,  795,   86,   86,   86,  802,  803,
     953
     954       86,   86,  738,   86,  804,   86,  823,   86,   86,   86,
     955       86,  825,  826,  805,  806,  828,   86,   86,   86,  822,
     956      829,  821,   86,   86,  820,  827,  831,  824,   86,   86,
     957       86,  832,   86,   86,  834,   86,  846,   86,  830,  833,
     958       86,  847,  845,  844,   86,  835,   86,  849,   86,   86,
     959       86,  851,  852,   86,   86,  848,   86,  859,   86,  853,
     960       86,   86,  854,  850,   86,  857,  858,  861,  860,   86,
     961       86,   86,  862,  863,   86,   86,   86,  866,   86,  868,
     962      864,   86,   86,   86,   86,  867,  865,  875,   86,  875,
     963      855,  871,   86,   86,  874,   86,   86,   86,  875,  875,
     964
     965      869,  843,  870,  875,  842,  872,  873,   68,   68,   68,
     966       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
     967       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
     968       74,   74,   74,   77,   77,   77,   77,   77,   77,   77,
     969       77,   77,   77,   77,   77,   77,   85,  875,  840,   85,
     970      875,   85,   85,   85,   85,   85,  139,  839,  875,  838,
     971      139,  139,  139,  139,  139,  139,  197,  197,  197,  197,
     972      197,  197,  197,  197,  197,  197,  197,  197,  197,  202,
     973      875,  837,  202,   86,  202,  202,  202,  202,  202,  206,
     974       86,  206,  206,   86,  206,  206,  206,  206,  206,  206,
     975
     976      875,  206,  214,  819,  875,  214,  214,  214,  214,  214,
     977      214,  214,  214,  818,  214,  237,  237,  237,  237,  237,
     978      237,  237,  237,  237,  237,  237,  237,  237,  251,  251,
     979      816,  251,  875,  814,  875,  251,  267,  812,  875,  267,
     980      810,  267,  267,  267,  267,  267,  271,  808,  271,   86,
     981       86,   86,  271,  273,   86,  273,   86,   86,   86,  273,
     982      344,   86,  344,   86,   86,   86,  344,  346,   86,  346,
     983      875,  787,  785,  346,  350,  875,  350,  875,  782,  780,
     984      350,  352,  778,  352,   86,   86,   86,  352,  354,   86,
     985      354,   86,   86,   86,  354,  361,   86,  361,  744,  741,
     986
     987      740,  361,  363,  738,  363,  203,  734,  733,  363,  237,
     988      237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
     989      237,  237,  376,  664,  376,  378,  378,   86,  378,  378,
     990      378,   86,  378,  251,  251,   86,  251,  388,   86,  388,
     991       86,   86,   86,  388,  390,   86,  390,   86,   86,   86,
     992      390,  392,   86,  392,   86,   86,   86,  392,  271,  691,
     993      271,  394,  690,  394,  688,  686,  684,  394,  273,  591,
     994      273,   85,  679,  678,   85,  676,   85,   85,   85,   85,
     995       85,  197,  197,  197,  197,  197,  197,  197,  197,  197,
     996      197,  197,  197,  197,  462,  462,  462,  462,  462,  462,
     997
     998      462,  462,  462,  462,  462,  462,  462,  463,  674,  463,
     999      672,  670,  668,  463,  465,  666,  465,  664,   86,   86,
     1000      465,  467,   86,  467,   86,   86,   86,  467,  344,   86,
     1001      344,  469,   86,  469,   86,  610,  608,  469,  346,  606,
     1002      346,  472,  604,  472,  602,  600,  496,  472,  350,  598,
     1003      350,  474,  598,  474,  587,  586,  584,  474,  352,  477,
     1004      352,  476,  477,  476,  582,  580,  578,  476,  354,  576,
     1005      354,  478,  574,  478,  572,   86,   86,  478,  361,   86,
     1006      361,  480,   86,  480,   86,   86,   86,  480,  363,   86,
     1007      363,  485,  508,  485,  506,  485,  504,  485,  376,  502,
     1008
     1009      376,  500,  376,  498,  376,  378,  378,  484,  378,  378,
     1010      378,  481,  378,  497,  479,  497,  357,  357,  477,  497,
     1011      499,  475,  499,  473,  470,  468,  499,  501,  466,  501,
     1012      464,   86,   86,  501,  388,   86,  388,  503,  396,  503,
     1013      395,  393,  391,  503,  390,  389,  390,  505,  268,  505,
     1014      263,  262,  385,  505,  392,  385,  392,  507,  250,  507,
     1015      375,  375,  238,  507,  394,  370,  394,   85,  364,  362,
     1016       85,  360,   85,   85,   85,   85,   85,  462,  462,  462,
     1017      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
     1018      571,  356,  571,  355,  353,  351,  571,  463,  347,  463,
     1019
     1020      573,  345,  573,  203,  199,   86,  573,  465,  275,  465,
     1021      575,  274,  575,  272,  268,  263,  575,  467,  266,  467,
     1022      577,  263,  577,  261,  260,  259,  577,  469,  238,  469,
     1023      579,  230,  579,   84,   84,   86,  579,  472,  203,  472,
     1024      581,  201,  581,   84,  121,  116,  581,  474,   86,  474,
     1025      476,  875,  476,   69,   69,  875,  476,  583,  875,  583,
     1026      875,  875,  875,  583,  478,  875,  478,  585,  875,  585,
     1027      875,  875,  875,  585,  480,  875,  480,  485,  875,  485,
     1028      875,  485,  875,  485,  378,  875,  378,  875,  875,  875,
     1029      378,  599,  875,  599,  875,  875,  875,  599,  497,  875,
     1030
     1031      497,  601,  875,  601,  875,  875,  875,  601,  499,  875,
     1032      499,  603,  875,  603,  875,  875,  875,  603,  501,  875,
     1033      501,  605,  875,  605,  875,  875,  875,  605,  503,  875,
     1034      503,  607,  875,  607,  875,  875,  875,  607,  505,  875,
     1035      505,  609,  875,  609,  875,  875,  875,  609,  507,  875,
     1036      507,   85,  875,  875,   85,  875,   85,   85,   85,   85,
     1037       85,  663,  663,  663,  663,  663,  663,  663,  663,  663,
     1038      663,  663,  663,  663,  665,  875,  665,  875,  875,  875,
     1039      665,  571,  875,  571,  667,  875,  667,  875,  875,  875,
     1040      667,  573,  875,  573,  669,  875,  669,  875,  875,  875,
     1041
     1042      669,  575,  875,  575,  671,  875,  671,  875,  875,  875,
     1043      671,  577,  875,  577,  673,  875,  673,  875,  875,  875,
     1044      673,  579,  875,  579,  675,  875,  675,  875,  875,  875,
     1045      675,  581,  875,  581,  677,  875,  677,  875,  875,  875,
     1046      677,  583,  875,  583,   85,  875,   85,  875,  875,  875,
     1047       85,  585,  875,  585,  485,  875,  485,  875,  875,  875,
     1048      485,  685,  875,  685,  875,  875,  875,  685,  599,  875,
     1049      599,  687,  875,  687,  875,  875,  875,  687,  601,  875,
     1050      601,  689,  875,  689,  875,  875,  875,  689,  603,  875,
     1051      603,  139,  875,  139,  875,  875,  875,  139,  605,  875,
     1052
     1053      605,  692,  875,  692,  607,  875,  607,   85,  875,  875,
     1054       85,  875,   85,   85,   85,   85,   85,  609,  875,  609,
     1055      663,  663,  663,  663,  663,  663,  663,  663,  663,  663,
     1056      663,  663,  663,  732,  875,  732,  875,  875,  875,  732,
     1057      665,  875,  665,  202,  875,  202,  875,  875,  875,  202,
     1058      667,  875,  667,  735,  875,  735,  669,  875,  669,  202,
     1059      875,  875,  202,  875,  202,  202,  202,  202,  202,  671,
     1060      875,  671,  736,  875,  736,  673,  875,  673,  675,  875,
     1061      675,  737,  875,  737,  677,  875,  677,   85,  875,   85,
     1062      739,  875,  739,  875,  875,  875,  739,  685,  875,  685,
     1063
     1064      267,  875,  267,  875,  875,  875,  267,  687,  875,  687,
     1065      742,  875,  742,  689,  875,  689,  139,  875,  139,  743,
     1066      875,  743,  875,  875,  875,  743,   85,  875,  875,   85,
     1067      875,   85,   85,   85,   85,   85,  776,  875,  776,  732,
     1068      875,  732,  202,  875,  202,  777,  875,  777,  875,  875,
     1069      875,  777,  779,  875,  779,  875,  875,  875,  779,  781,
     1070      875,  781,  875,  875,  875,  781,  783,  875,  783,  784,
     1071      875,  784,  875,  875,  875,  784,  786,  875,  786,  875,
     1072      875,  875,  786,  807,  875,  807,  875,  875,  875,  807,
     1073      809,  875,  809,  875,  875,  875,  809,  811,  875,  811,
     1074
     1075      875,  875,  875,  811,  813,  875,  813,  875,  875,  875,
     1076      813,  815,  875,  815,  875,  875,  875,  815,  817,  875,
     1077      817,  875,  875,  875,  817,  609,  875,  609,  875,  875,
     1078      875,  609,  836,  875,  836,  875,  875,  875,  836,  671,
     1079      875,  671,  875,  875,  875,  671,  675,  875,  675,  875,
     1080      875,  875,  675,   85,  875,   85,  875,  875,  875,   85,
     1081      841,  875,  841,  875,  875,  875,  841,  139,  875,  139,
     1082      875,  875,  875,  139,  202,  875,  202,  875,  875,  875,
     1083      202,   11,  875,  875,  875,  875,  875,  875,  875,  875,
     1084      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1085
     1086      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1087      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1088      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1089      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1090      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1091      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1092      875,  875,  875,  875,  875,  875
    10981093    } ;
    10991094
    1100 static yyconst flex_int16_t yy_chk[2884] =
     1095static yyconst flex_int16_t yy_chk[2867] =
    11011096    {   0,
    11021097        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11191114        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11201115        5,    5,    5,    5,    5,    5,    5,    7,    8,    9,
    1121        10,   37,   37,   20,   39,    9,   10,  882,    7,    8,
     1116       10,   37,   37,   20,   39,    9,   10,  874,    7,    8,
    11221117       13,   13,   13,   13,   13,   13,   15,   15,   15,   15,
    11231118
    11241119       15,   15,   20,   25,   39,   42,   53,   28,   27,   28,
    1125        28,   28,   28,   28,   28,  109,   64,   25,   29,   25,
     1120       28,   28,   28,   28,   28,  108,  114,   25,   29,   25,
    11261121       27,   27,   27,   29,   53,   35,    7,    8,    9,   10,
    11271122       40,   42,   48,   29,   30,   40,   30,   30,   30,   30,
    1128        30,   30,   35,   62,   35,   35,   44,   56,   44,  109,
    1129       877,  115,   48,   30,  876,   62,   30,   56,   47,   45,
    1130        45,   45,   30,   30,   45,   45,   64,   45,   30,   55,
     1123       30,   30,   35,   61,   35,   35,   44,  869,   44,  108,
     1124      114,  868,   48,   30,   63,   61,   30,   56,   47,   45,
     1125       45,   45,   30,   30,   45,   45,   56,   45,   30,   55,
    11311126       45,   45,   49,   40,   30,   45,   40,   49,   45,   47,
    1132        30,   47,  175,  874,   49,  115,   51,   55,   30,   73,
     1127       30,   47,   72,  125,   49,  125,   51,   55,   30,   86,
    11331128       49,   30,   31,   55,   31,   31,   31,   31,   31,   31,
    11341129
    1135        50,   51,  175,   51,   87,  108,   54,   59,   57,   50,
    1136        61,   31,   51,   50,   31,   73,   54,   57,   50,   59,
    1137        31,  873,   50,   54,  111,  154,   31,   59,   61,  108,
    1138        87,   60,   31,  126,   59,  126,   60,  127,   31,  127,
    1139        52,  154,  111,   68,   68,   52,   31,   38,   68,   60,
    1140       111,   38,   38,   52,   38,   52,   38,   38,   52,   38,
    1141       114,   38,   52,   58,   68,   68,   68,   68,   68,   68,
    1142        38,   38,   38,  871,   60,   58,   58,   60,   67,   67,
    1143        67,   67,   67,   67,  114,   58,   67,  129,   58,  129,
    1144        38,   60,  156,   38,   80,   80,   80,   80,   80,   80,
    1145 
    1146        82,   82,   82,   82,   82,   82,   83,   83,   83,   83,
    1147        83,   83,  130,  870,  156,  104,  104,  104,  104,  107,
    1148        38,   38,   77,   77,  113,  107,  130,   77,  130,   77,
    1149       113,  132,  142,  132,   77,  103,  103,  103,  103,  103,
    1150       103,  131,  104,   77,   77,   77,   77,  104,  116,  864,
    1151       110,  107,  159,  131,   77,  131,  113,  105,  142,  105,
    1152       105,  105,  105,  105,  105,  150,  116,  103,  159,   77,
    1153       104,  134,   77,  134,  116,  151,  105,   77,   77,  110,
    1154       150,   77,   77,  160,  110,  133,  133,  150,  133,   77,
    1155       863,  105,   77,  151,   77,   77,   77,  105,   77,   85,
    1156 
    1157       135,  135,  135,   85,   85,  160,  243,  110,   85,   85,
    1158       106,   85,  106,   85,  152,  106,  106,  106,  106,  106,
    1159       106,  153,   85,   85,   85,  137,  139,  137,  139,  145,
    1160       153,  155,  152,  164,  145,  161,  157,  166,  168,  169,
    1161       243,  162,   85,  322,  161,   85,  158,  106,  157,  155,
    1162       164,  158,  158,  158,  322,  158,  158,  167,  166,  158,
    1163       169,  158,  162,  162,  163,  168,  158,  158,  158,  163,
    1164       158,  165,  145,   85,   99,   99,   99,   99,   99,   99,
    1165       167,  165,  163,  171,  170,  172,  173,  176,  862,  170,
    1166        99,   99,  174,   99,   99,  177,  181,  185,  180,  182,
    1167 
    1168       172,  181,  189,  173,  179,  171,   99,  170,  185,  182,
    1169       174,   99,   99,   99,  176,  180,   99,  177,   99,  179,
    1170       183,  184,  187,  186,  188,  185,  179,  190,  186,  189,
    1171       191,  183,  192,  279,  193,  187,  861,  194,  205,  184,
    1172       234,  183,  183,  186,  188,  192,  190,  193,  284,  193,
    1173       194,  279,  237,  192,  197,  197,  197,  197,  197,  197,
    1174       198,  198,  197,  234,  205,  198,  200,  200,  284,  209,
    1175       209,  200,  857,  191,  209,  237,  191,  212,  212,  212,
    1176       212,  198,  198,  198,  198,  198,  198,  200,  200,  200,
    1177       200,  200,  200,  202,  202,  218,  221,  218,  202,  219,
    1178 
    1179       202,  219,  220,  223,  220,  223,  854,  851,  222,  212,
    1180       221,  225,  221,  225,  202,  202,  202,  202,  202,  202,
    1181       222,  248,  222,  224,  224,  256,  224,  226,  226,  226,
    1182       228,  229,  228,  229,  235,  266,  235,  266,  282,  235,
    1183       235,  235,  235,  235,  235,  236,  267,  248,  267,  236,
    1184       309,  256,  270,  241,  241,  282,  241,  241,  294,  278,
    1185       244,  244,  244,  244,  244,  244,  236,  294,  236,  309,
    1186       280,  235,  278,  236,  241,  241,  241,  244,  270,  241,
    1187       281,  241,  245,  245,  245,  245,  245,  245,  280,  283,
    1188       285,  288,  244,  286,  283,  285,  281,  290,  244,  246,
    1189 
    1190       246,  246,  246,  246,  246,  255,  255,  255,  255,  255,
    1191       255,  253,  301,  286,  288,  246,  289,  291,  246,  246,
    1192       247,  301,  247,  290,  850,  247,  247,  247,  247,  247,
    1193       247,  246,  291,  253,  289,  253,  246,  255,  246,  253,
    1194       295,  246,  292,  246,  296,  253,  260,  260,  260,  260,
    1195       260,  260,  287,  295,  297,  293,  564,  253,  292,  292,
    1196       293,  253,  299,  300,  303,  253,  564,  287,  300,  302,
    1197       304,  296,  297,  287,  287,  305,  302,  306,  260,  308,
    1198       299,  307,  306,  310,  303,  308,  307,  311,  304,  312,
    1199       313,  314,  310,  311,  318,  315,  305,  305,  316,  313,
    1200 
    1201       315,  319,  317,  316,  320,  312,  314,  317,  323,  324,
    1202       326,  327,  325,  318,  329,  328,  331,  320,  330,  319,
    1203       332,  334,  333,  323,  317,  325,  337,  330,  336,  338,
    1204       324,  329,  326,  339,  327,  328,  341,  336,  331,  334,
    1205       340,  341,  342,  332,  333,  344,  339,  338,  340,  343,
    1206       343,  344,  402,  361,  343,  361,  343,  342,  351,  351,
    1207       351,  351,  352,  352,  352,  352,  362,  402,  362,  337,
    1208       369,  369,  369,  369,  369,  369,  371,  379,  371,  380,
    1209       384,  371,  371,  371,  371,  371,  371,  379,  849,  380,
    1210       351,  370,  370,  370,  370,  370,  370,  373,  373,  373,
    1211 
    1212       373,  373,  373,  379,  384,  380,  401,  370,  386,  400,
    1213       370,  370,  374,  374,  374,  374,  374,  374,  382,  409,
    1214       400,  381,  401,  370,  382,  407,  386,  403,  370,  373,
    1215       370,  405,  409,  370,  386,  370,  375,  375,  375,  375,
    1216       375,  375,  405,  381,  374,  381,  403,  407,  385,  381,
    1217       382,  383,  848,  383,  404,  381,  383,  383,  383,  383,
    1218       383,  383,  410,  404,  406,  408,  412,  381,  375,  411,
    1219       385,  381,  385,  406,  408,  381,  385,  414,  410,  412,
    1220       413,  416,  385,  415,  418,  417,  416,  419,  383,  422,
    1221       418,  411,  420,  421,  385,  424,  413,  413,  385,  414,
    1222 
    1223       417,  415,  385,  420,  422,  426,  428,  417,  419,  424,
    1224       429,  430,  421,  431,  433,  432,  434,  426,  436,  438,
    1225       430,  432,  439,  440,  430,  434,  441,  428,  442,  433,
    1226       443,  444,  429,  436,  446,  448,  431,  449,  440,  438,
    1227       444,  450,  453,  442,  439,  451,  449,  452,  441,  457,
    1228       443,  446,  454,  455,  459,  456,  457,  461,  448,  458,
    1229       464,  454,  450,  465,  453,  451,  458,  452,  456,  460,
    1230       462,  455,  465,  514,  461,  521,  847,  460,  466,  459,
    1231       521,  462,  464,  492,  466,  517,  514,  460,  475,  475,
    1232       475,  475,  486,  486,  486,  486,  486,  486,  488,  488,
    1233 
    1234       488,  488,  488,  488,  519,  517,  489,  491,  486,  492,
    1235       513,  486,  486,  490,  493,  490,  489,  491,  490,  490,
    1236       490,  490,  490,  490,  486,  518,  519,  513,  522,  486,
    1237       488,  486,  489,  491,  486,  520,  486,  846,  518,  522,
    1238       493,  495,  495,  495,  495,  495,  495,  516,  520,  524,
    1239       490,  496,  496,  496,  496,  496,  496,  523,  525,  528,
    1240       523,  529,  516,  531,  527,  526,  529,  496,  528,  524,
    1241       496,  496,  497,  525,  497,  530,  531,  497,  497,  497,
    1242       497,  497,  497,  496,  526,  527,  530,  532,  496,  533,
    1243       496,  534,  535,  496,  536,  496,  537,  540,  533,  539,
    1244 
    1245       542,  537,  543,  536,  550,  539,  540,  544,  545,  535,
    1246       549,  546,  548,  534,  551,  532,  550,  553,  558,  543,
    1247       546,  548,  544,  545,  556,  554,  542,  549,  557,  551,
    1248       554,  559,  553,  556,  560,  561,  563,  557,  565,  566,
    1249       558,  569,  567,  568,  563,  565,  570,  560,  572,  568,
    1250       569,  573,  561,  559,  567,  617,  570,  625,  599,  601,
    1251       625,  566,  617,  845,  573,  572,  592,  592,  592,  592,
    1252       592,  592,  593,  593,  593,  593,  593,  593,  595,  620,
    1253       595,  599,  601,  595,  595,  595,  595,  595,  595,  598,
    1254       598,  598,  598,  598,  598,  619,  620,  621,  592,  594,
    1255 
    1256       594,  594,  594,  594,  594,  600,  616,  618,  619,  600,
    1257       622,  616,  624,  627,  623,  594,  618,  622,  594,  594,
    1258       621,  598,  623,  634,  616,  629,  600,  626,  600,  624,
    1259       628,  594,  630,  600,  631,  627,  594,  633,  594,  632,
    1260       626,  594,  632,  594,  635,  628,  636,  629,  637,  630,
    1261       634,  638,  639,  640,  633,  642,  631,  637,  643,  635,
    1262       644,  645,  640,  649,  650,  657,  636,  652,  655,  638,
    1263       645,  656,  657,  699,  639,  668,  664,  642,  665,  700,
    1264       656,  643,  644,  649,  652,  664,  655,  667,  665,  700,
    1265       668,  650,  702,  708,  699,  705,  667,  686,  686,  686,
    1266 
    1267       686,  686,  686,  690,  690,  690,  690,  690,  690,  704,
    1268       844,  708,  703,  686,  704,  705,  686,  686,  702,  703,
    1269       706,  707,  710,  706,  707,  711,  714,  713,  710,  686,
    1270       713,  712,  715,  718,  686,  690,  686,  717,  711,  686,
    1271       712,  686,  716,  720,  721,  716,  717,  714,  719,  722,
    1272       723,  719,  721,  724,  729,  726,  720,  732,  718,  722,
    1273       715,  733,  734,  723,  726,  735,  738,  732,  737,  840,
    1274       839,  763,  760,  756,  724,  738,  737,  729,  757,  759,
    1275       758,  733,  760,  761,  734,  758,  735,  745,  745,  745,
    1276       745,  745,  745,  756,  759,  757,  762,  763,  764,  765,
    1277 
    1278       766,  764,  768,  771,  770,  768,  761,  770,  772,  774,
    1279       771,  772,  765,  762,  773,  775,  781,  773,  796,  745,
    1280       798,  801,  799,  800,  774,  802,  800,  766,  802,  803,
    1281       805,  806,  803,  807,  810,  809,  807,  810,  775,  781,
    1282       799,  798,  812,  801,  811,  796,  813,  811,  805,  814,
    1283       829,  812,  830,  835,  832,  831,  806,  809,  831,  830,
    1284       833,  834,  813,  832,  834,  814,  838,  842,  843,  838,
    1285       835,  829,  841,  852,  853,  841,  842,  843,  833,  853,
    1286       855,  856,  852,  855,  858,  859,  860,  858,  859,  860,
    1287       865,  856,  866,  867,  868,  869,  867,  872,  869,  875,
    1288 
    1289       878,  879,  881,  880,  868,  837,  836,  866,  828,  878,
    1290       865,  827,  881,  826,  825,  824,  823,  822,  821,  872,
    1291       875,  880,  820,  879,  884,  884,  884,  884,  884,  884,
    1292       884,  884,  884,  884,  884,  884,  884,  885,  885,  885,
    1293       885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
    1294       886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
    1295       886,  886,  886,  887,  819,  818,  887,  817,  887,  887,
    1296       887,  887,  887,  888,  816,  815,  808,  888,  888,  888,
    1297       888,  888,  888,  889,  889,  889,  889,  889,  889,  889,
    1298       889,  889,  889,  889,  889,  889,  890,  804,  797,  890,
    1299 
    1300       795,  890,  890,  890,  890,  890,  891,  794,  891,  891,
    1301       793,  891,  891,  891,  891,  891,  891,  792,  891,  892,
    1302       791,  790,  892,  892,  892,  892,  892,  892,  892,  892,
    1303       789,  892,  893,  893,  893,  893,  893,  893,  893,  893,
    1304       893,  893,  893,  893,  893,  894,  894,  788,  894,  787,
    1305       786,  785,  894,  895,  784,  783,  895,  782,  895,  895,
    1306       895,  895,  895,  896,  780,  896,  779,  778,  777,  896,
    1307       897,  776,  897,  769,  767,  755,  897,  898,  754,  898,
    1308       753,  752,  751,  898,  899,  750,  899,  749,  748,  747,
    1309       899,  900,  744,  900,  743,  742,  736,  900,  901,  731,
    1310 
    1311       901,  730,  728,  727,  901,  902,  725,  902,  709,  701,
    1312       698,  902,  903,  693,  903,  691,  687,  677,  903,  904,
    1313       673,  904,  671,  669,  666,  904,  905,  905,  905,  905,
    1314       905,  905,  905,  905,  905,  905,  905,  905,  905,  906,
    1315       663,  906,  907,  907,  662,  907,  907,  907,  661,  907,
    1316       908,  908,  660,  908,  909,  659,  909,  658,  654,  653,
    1317       909,  910,  651,  910,  648,  647,  646,  910,  911,  641,
    1318       911,  614,  610,  608,  911,  912,  606,  912,  913,  604,
    1319       913,  602,  596,  590,  913,  914,  588,  914,  915,  586,
    1320       584,  915,  582,  915,  915,  915,  915,  915,  916,  916,
    1321 
    1322       916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
    1323       916,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    1324       917,  917,  917,  917,  918,  580,  918,  578,  576,  575,
    1325       918,  919,  574,  919,  571,  562,  555,  919,  920,  552,
    1326       920,  547,  541,  538,  920,  921,  515,  921,  922,  511,
    1327       922,  509,  507,  505,  922,  923,  503,  923,  924,  501,
    1328       924,  500,  499,  498,  924,  925,  487,  925,  926,  484,
    1329       926,  482,  481,  480,  926,  927,  478,  927,  928,  476,
    1330       928,  473,  471,  469,  928,  929,  467,  929,  930,  463,
    1331       930,  447,  445,  437,  930,  931,  435,  931,  932,  427,
    1332 
    1333       932,  425,  423,  397,  932,  933,  395,  933,  934,  393,
    1334       934,  391,  934,  390,  934,  935,  389,  935,  376,  935,
    1335       366,  935,  936,  936,  364,  936,  936,  936,  363,  936,
    1336       937,  359,  937,  357,  355,  353,  937,  938,  349,  938,
    1337       347,  346,  345,  938,  939,  335,  939,  321,  298,  277,
    1338       939,  940,  275,  940,  941,  273,  941,  272,  271,  269,
    1339       941,  942,  268,  942,  943,  263,  943,  259,  258,  254,
    1340       943,  944,  251,  944,  945,  250,  945,  239,  238,  231,
    1341       945,  946,  230,  946,  947,  227,  217,  947,  215,  947,
    1342       947,  947,  947,  947,  948,  948,  948,  948,  948,  948,
    1343 
    1344       948,  948,  948,  948,  948,  948,  948,  949,  214,  949,
    1345       213,  207,  206,  949,  950,  204,  950,  951,  199,  951,
    1346       178,  149,  147,  951,  952,  146,  952,  953,  140,  953,
    1347       138,  136,  128,  953,  954,  125,  954,  955,  124,  955,
    1348       120,  101,   98,  955,  956,   95,  956,  957,   93,  957,
    1349        86,   72,   70,  957,  958,   66,  958,  959,   36,  959,
    1350        33,   18,   11,  959,  960,    4,  960,  961,    3,  961,
    1351         0,    0,    0,  961,  962,    0,  962,    0,    0,    0,
    1352       962,  963,    0,  963,  964,    0,  964,    0,    0,    0,
    1353       964,  965,    0,  965,  966,    0,  966,    0,  966,    0,
    1354 
    1355       966,  967,    0,  967,    0,    0,    0,  967,  968,    0,
    1356       968,    0,    0,    0,  968,  969,    0,  969,  970,    0,
    1357       970,    0,    0,    0,  970,  971,    0,  971,  972,    0,
    1358       972,    0,    0,    0,  972,  973,    0,  973,  974,    0,
    1359       974,    0,    0,    0,  974,  975,    0,  975,  976,    0,
    1360       976,    0,    0,    0,  976,  977,    0,  977,  978,    0,
    1361       978,    0,    0,    0,  978,  979,    0,  979,  980,    0,
    1362         0,  980,    0,  980,  980,  980,  980,  980,  981,  981,
    1363       981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
    1364       981,  982,    0,  982,    0,    0,    0,  982,  983,    0,
    1365 
    1366       983,  984,    0,  984,    0,    0,    0,  984,  985,    0,
    1367       985,  986,    0,  986,    0,    0,    0,  986,  987,    0,
    1368       987,  988,    0,  988,    0,    0,    0,  988,  989,    0,
    1369       989,  990,    0,  990,    0,    0,    0,  990,  991,    0,
    1370       991,  992,    0,  992,    0,    0,    0,  992,  993,    0,
    1371       993,  994,    0,  994,    0,    0,    0,  994,  995,    0,
    1372       995,  996,    0,  996,    0,    0,    0,  996,  997,    0,
    1373       997,  998,    0,  998,    0,    0,    0,  998,  999,    0,
    1374       999,    0,    0,    0,  999, 1000,    0, 1000, 1001,    0,
    1375      1001,    0,    0,    0, 1001, 1002,    0, 1002, 1003,    0,
    1376 
    1377      1003,    0,    0,    0, 1003, 1004,    0, 1004, 1005,    0,
    1378      1005,    0,    0,    0, 1005, 1006,    0, 1006, 1007,    0,
    1379      1007, 1008,    0, 1008, 1009,    0,    0, 1009,    0, 1009,
    1380      1009, 1009, 1009, 1009, 1010,    0, 1010, 1011, 1011, 1011,
    1381      1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
    1382      1012,    0, 1012,    0,    0,    0, 1012, 1013,    0, 1013,
    1383      1014,    0, 1014,    0,    0,    0, 1014, 1015,    0, 1015,
    1384      1016,    0, 1016, 1017,    0, 1017, 1018,    0,    0, 1018,
    1385         0, 1018, 1018, 1018, 1018, 1018, 1019,    0, 1019, 1020,
    1386         0, 1020, 1021,    0, 1021, 1022,    0, 1022, 1023,    0,
    1387 
    1388      1023, 1024,    0, 1024, 1025,    0, 1025, 1026,    0, 1026,
    1389         0,    0,    0, 1026, 1027,    0, 1027, 1028,    0, 1028,
    1390         0,    0,    0, 1028, 1029,    0, 1029, 1030,    0, 1030,
    1391      1031,    0, 1031, 1032,    0, 1032, 1033,    0, 1033,    0,
    1392         0,    0, 1033, 1034,    0,    0, 1034,    0, 1034, 1034,
    1393      1034, 1034, 1034, 1035,    0, 1035, 1036,    0, 1036, 1037,
    1394         0, 1037, 1038,    0, 1038,    0,    0,    0, 1038, 1039,
    1395         0, 1039,    0,    0,    0, 1039, 1040,    0, 1040,    0,
    1396         0,    0, 1040, 1041,    0, 1041, 1042,    0, 1042,    0,
    1397         0,    0, 1042, 1043,    0, 1043,    0,    0,    0, 1043,
    1398 
    1399      1044,    0, 1044,    0,    0,    0, 1044, 1045,    0, 1045,
    1400         0,    0,    0, 1045, 1046,    0, 1046,    0,    0,    0,
    1401      1046, 1047,    0, 1047,    0,    0,    0, 1047, 1048,    0,
    1402      1048,    0,    0,    0, 1048, 1049,    0, 1049,    0,    0,
    1403         0, 1049, 1050,    0, 1050,    0,    0,    0, 1050, 1051,
    1404         0, 1051,    0,    0,    0, 1051, 1052,    0, 1052,    0,
    1405         0,    0, 1052, 1053,    0, 1053,    0,    0,    0, 1053,
    1406      1054,    0, 1054,    0,    0,    0, 1054, 1055,    0, 1055,
    1407         0,    0,    0, 1055, 1056,    0, 1056,    0,    0,    0,
    1408      1056, 1057,    0, 1057,    0,    0,    0, 1057,  883,  883,
    1409 
    1410       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1411       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1412       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1413       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1414       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1415       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1416       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1417       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1418       883,  883,  883
     1130       50,   51,  866,   51,   63,  153,   54,   58,   72,   50,
     1131       60,   31,   51,   50,   31,   86,   54,   57,   50,   58,
     1132       31,  153,   50,   54,  141,  156,   31,   58,   60,   57,
     1133       57,   59,   31,  126,   58,  126,   59,  156,   31,   57,
     1134       52,  865,   57,   67,   67,   52,   31,   38,   67,   59,
     1135      141,   38,   38,   52,   38,   52,   38,   38,   52,   38,
     1136      107,   38,   52,  113,   67,   67,   67,   67,   67,   67,
     1137       38,   38,   38,  128,   59,  128,  152,   59,   66,   66,
     1138       66,   66,   66,   66,  107,  152,   66,  113,  863,  862,
     1139       38,   59,  165,   38,   79,   79,   79,   79,   79,   79,
     1140
     1141       81,   81,   81,   81,   81,   81,   82,   82,   82,   82,
     1142       82,   82,  131,  165,  131,  103,  103,  103,  103,  106,
     1143       38,   38,   76,   76,  856,  106,  112,   76,  168,   76,
     1144      110,  133,  112,  133,   76,  102,  102,  102,  102,  102,
     1145      102,  130,  103,   76,   76,   76,   76,  103,  110,  168,
     1146      109,  106,  129,  130,   76,  130,  110,  104,  112,  104,
     1147      104,  104,  104,  104,  104,  149,  129,  102,  129,   76,
     1148      103,  136,   76,  136,  158,  115,  104,   76,   76,  109,
     1149      149,   76,   76,  155,  109,  132,  132,  149,  132,   76,
     1150      158,  104,   76,  115,   76,   76,   76,  104,   76,   84,
     1151
     1152      138,  115,  138,   84,   84,  155,  166,  109,   84,   84,
     1153      105,   84,  105,   84,  150,  105,  105,  105,  105,  105,
     1154      105,  151,   84,   84,   84,  134,  134,  134,  144,  166,
     1155      154,  157,  150,  144,  159,  167,  157,  157,  157,  151,
     1156      157,  157,   84,  161,  157,   84,  157,  105,  154,  160,
     1157      163,  157,  157,  157,  162,  157,  159,  855,  160,  162,
     1158      164,  169,  167,  170,  161,  161,  169,  163,  171,  172,
     1159      164,  144,  162,   84,   98,   98,   98,   98,   98,   98,
     1160      173,  174,  175,  171,  169,  170,  172,  179,  176,  185,
     1161       98,   98,  178,   98,   98,  180,  189,  182,  173,  187,
     1162
     1163      180,  174,  185,  186,  179,  188,   98,  178,  181,  175,
     1164      176,   98,   98,   98,  178,  182,   98,  183,   98,  181,
     1165      184,  191,  190,  186,  188,  184,  187,  528,  183,  181,
     1166      181,  192,  207,  207,  191,  190,  191,  207,  232,  189,
     1167      184,  203,  189,  190,  192,  183,  195,  195,  195,  195,
     1168      195,  195,  196,  196,  195,  528,  854,  196,  198,  198,
     1169      216,  232,  216,  198,  200,  200,  217,  203,  217,  200,
     1170      218,  200,  218,  196,  196,  196,  196,  196,  196,  198,
     1171      198,  198,  198,  198,  198,  200,  200,  200,  200,  200,
     1172      200,  210,  210,  210,  210,  219,  220,  221,  282,  221,
     1173
     1174      222,  222,  223,  222,  223,  224,  224,  224,  220,  219,
     1175      220,  219,  226,  227,  226,  227,  234,  235,  282,  233,
     1176      234,  233,  284,  210,  233,  233,  233,  233,  233,  233,
     1177      241,  239,  239,  277,  239,  239,  264,  234,  264,  234,
     1178      235,  265,  284,  265,  234,  242,  242,  242,  242,  242,
     1179      242,  277,  239,  239,  239,  246,  233,  239,  278,  239,
     1180      276,  280,  242,  279,  241,  243,  243,  243,  243,  243,
     1181      243,  254,  268,  276,  853,  281,  278,  242,  280,  279,
     1182      281,  246,  288,  242,  244,  244,  244,  244,  244,  244,
     1183      253,  253,  253,  253,  253,  253,  251,  254,  268,  287,
     1184
     1185      244,  283,  286,  244,  244,  245,  283,  245,  288,  295,
     1186      245,  245,  245,  245,  245,  245,  244,  287,  251,  849,
     1187      251,  244,  253,  244,  251,  286,  244,  295,  244,  289,
     1188      251,  258,  258,  258,  258,  258,  258,  285,  290,  292,
     1189      291,  294,  251,  293,  289,  291,  251,  297,  292,  301,
     1190      251,  299,  285,  303,  290,  290,  293,  298,  285,  285,
     1191      299,  302,  298,  258,  300,  297,  307,  304,  294,  301,
     1192      306,  300,  304,  305,  303,  303,  306,  308,  305,  302,
     1193      310,  309,  311,  312,  313,  307,  308,  309,  314,  313,
     1194      315,  311,  316,  314,  318,  315,  310,  317,  312,  320,
     1195
     1196      322,  321,  323,  324,  326,  325,  328,  318,  327,  329,
     1197      320,  316,  315,  322,  330,  317,  321,  327,  333,  331,
     1198      334,  326,  335,  337,  323,  325,  324,  333,  328,  336,
     1199      338,  337,  329,  339,  381,  338,  330,  331,  340,  340,
     1200      335,  341,  336,  340,  358,  340,  358,  341,  339,  348,
     1201      348,  348,  348,  349,  349,  349,  349,  359,  381,  359,
     1202      397,  846,  402,  334,  366,  366,  366,  366,  366,  366,
     1203      368,  397,  368,  402,  404,  368,  368,  368,  368,  368,
     1204      368,  348,  367,  367,  367,  367,  367,  367,  370,  370,
     1205      370,  370,  370,  370,  400,  398,  404,  435,  367,  376,
     1206
     1207      843,  367,  367,  371,  371,  371,  371,  371,  371,  376,
     1208      379,  398,  377,  400,  367,  378,  379,  435,  383,  367,
     1209      370,  367,  377,  412,  367,  376,  367,  372,  372,  372,
     1210      372,  372,  372,  399,  382,  371,  383,  378,  377,  378,
     1211      415,  412,  379,  378,  383,  380,  415,  380,  399,  378,
     1212      380,  380,  380,  380,  380,  380,  382,  401,  382,  372,
     1213      407,  378,  382,  403,  405,  378,  401,  408,  382,  378,
     1214      406,  411,  403,  405,  409,  410,  407,  416,  418,  414,
     1215      382,  413,  380,  406,  382,  417,  413,  409,  382,  408,
     1216      419,  410,  410,  411,  414,  421,  417,  418,  416,  423,
     1217
     1218      425,  414,  426,  427,  428,  419,  431,  429,  430,  421,
     1219      433,  423,  427,  429,  436,  431,  427,  437,  438,  439,
     1220      441,  425,  440,  430,  426,  433,  443,  428,  445,  441,
     1221      447,  446,  437,  448,  439,  449,  436,  450,  451,  455,
     1222      438,  452,  440,  443,  457,  633,  450,  460,  453,  458,
     1223      447,  445,  446,  448,  452,  453,  451,  449,  454,  456,
     1224      458,  457,  461,  633,  455,  454,  462,  456,  515,  460,
     1225      488,  461,  462,  471,  471,  471,  471,  456,  482,  482,
     1226      482,  482,  482,  482,  484,  484,  484,  484,  484,  484,
     1227      515,  513,  485,  487,  482,  489,  488,  482,  482,  486,
     1228
     1229      510,  486,  485,  487,  486,  486,  486,  486,  486,  486,
     1230      482,  513,  509,  510,  520,  482,  484,  482,  485,  487,
     1231      482,  489,  482,  491,  491,  491,  491,  491,  491,  509,
     1232      512,  514,  519,  516,  520,  519,  486,  492,  492,  492,
     1233      492,  492,  492,  517,  514,  512,  516,  521,  517,  525,
     1234      518,  522,  523,  492,  525,  842,  492,  492,  493,  841,
     1235      493,  518,  521,  493,  493,  493,  493,  493,  493,  492,
     1236      522,  524,  526,  523,  492,  527,  492,  529,  530,  492,
     1237      524,  492,  531,  526,  532,  533,  529,  536,  527,  535,
     1238      533,  538,  539,  532,  542,  535,  536,  540,  541,  531,
     1239
     1240      530,  544,  545,  542,  546,  547,  549,  554,  556,  539,
     1241      544,  561,  540,  541,  555,  552,  546,  538,  550,  545,
     1242      547,  549,  553,  550,  552,  556,  558,  555,  559,  554,
     1243      560,  553,  562,  561,  558,  563,  564,  560,  559,  565,
     1244      567,  563,  568,  613,  562,  564,  612,  617,  594,  565,
     1245      596,  698,  613,  612,  617,  568,  698,  567,  587,  587,
     1246      587,  587,  587,  587,  588,  588,  588,  588,  588,  588,
     1247      590,  594,  590,  596,  614,  590,  590,  590,  590,  590,
     1248      590,  593,  593,  593,  593,  593,  593,  614,  615,  616,
     1249      587,  589,  589,  589,  589,  589,  589,  595,  611,  622,
     1250
     1251      618,  595,  619,  611,  621,  615,  620,  589,  618,  620,
     1252      589,  589,  616,  593,  623,  624,  611,  621,  595,  619,
     1253      595,  622,  625,  589,  626,  595,  628,  629,  589,  623,
     1254      589,  627,  630,  589,  627,  589,  631,  624,  634,  625,
     1255      632,  635,  637,  628,  638,  644,  626,  630,  639,  632,
     1256      635,  645,  640,  650,  629,  647,  631,  696,  693,  651,
     1257      634,  640,  650,  659,  637,  644,  651,  638,  658,  662,
     1258      639,  661,  647,  659,  697,  840,  839,  658,  645,  693,
     1259      661,  697,  699,  696,  662,  680,  680,  680,  680,  680,
     1260      680,  684,  684,  684,  684,  684,  684,  694,  702,  705,
     1261
     1262      700,  680,  699,  700,  680,  680,  701,  694,  704,  701,
     1263      706,  708,  705,  709,  704,  707,  702,  680,  707,  706,
     1264      712,  711,  680,  684,  680,  710,  714,  680,  710,  680,
     1265      711,  713,  708,  718,  713,  715,  716,  717,  720,  714,
     1266      723,  709,  726,  715,  727,  712,  716,  720,  728,  730,
     1267      717,  731,  752,  751,  718,  753,  749,  730,  751,  754,
     1268      731,  750,  726,  723,  755,  753,  727,  752,  756,  728,
     1269      738,  738,  738,  738,  738,  738,  749,  757,  750,  758,
     1270      757,  755,  754,  759,  761,  763,  764,  761,  763,  767,
     1271      768,  773,  758,  764,  756,  765,  766,  788,  765,  766,
     1272
     1273      790,  791,  738,  792,  767,  793,  792,  797,  794,  795,
     1274      759,  794,  795,  768,  773,  798,  801,  799,  805,  791,
     1275      799,  790,  821,  802,  788,  797,  802,  793,  803,  806,
     1276      804,  803,  824,  823,  805,  822,  823,  825,  801,  804,
     1277      798,  824,  822,  821,  826,  806,  827,  826,  830,  833,
     1278      834,  830,  833,  835,  847,  825,  844,  847,  848,  834,
     1279      857,  845,  835,  827,  850,  844,  845,  850,  848,  851,
     1280      852,  858,  851,  852,  859,  860,  861,  859,  864,  861,
     1281      857,  867,  870,  871,  873,  860,  858,  838,  872,  837,
     1282      836,  870,  832,  831,  873,  829,  828,  820,  819,  818,
     1283
     1284      864,  817,  867,  816,  815,  871,  872,  876,  876,  876,
     1285      876,  876,  876,  876,  876,  876,  876,  876,  876,  876,
     1286      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
     1287      877,  877,  877,  878,  878,  878,  878,  878,  878,  878,
     1288      878,  878,  878,  878,  878,  878,  879,  814,  813,  879,
     1289      812,  879,  879,  879,  879,  879,  880,  811,  810,  809,
     1290      880,  880,  880,  880,  880,  880,  881,  881,  881,  881,
     1291      881,  881,  881,  881,  881,  881,  881,  881,  881,  882,
     1292      808,  807,  882,  800,  882,  882,  882,  882,  882,  883,
     1293      796,  883,  883,  789,  883,  883,  883,  883,  883,  883,
     1294
     1295      787,  883,  884,  786,  785,  884,  884,  884,  884,  884,
     1296      884,  884,  884,  784,  884,  885,  885,  885,  885,  885,
     1297      885,  885,  885,  885,  885,  885,  885,  885,  886,  886,
     1298      783,  886,  782,  781,  780,  886,  887,  779,  778,  887,
     1299      777,  887,  887,  887,  887,  887,  888,  776,  888,  775,
     1300      774,  772,  888,  889,  771,  889,  770,  769,  762,  889,
     1301      890,  760,  890,  748,  747,  746,  890,  891,  745,  891,
     1302      744,  743,  742,  891,  892,  741,  892,  740,  737,  736,
     1303      892,  893,  735,  893,  729,  725,  724,  893,  894,  722,
     1304      894,  721,  719,  703,  894,  895,  695,  895,  692,  687,
     1305
     1306      685,  895,  896,  681,  896,  671,  667,  665,  896,  897,
     1307      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
     1308      897,  897,  898,  663,  898,  899,  899,  660,  899,  899,
     1309      899,  657,  899,  900,  900,  656,  900,  901,  655,  901,
     1310      654,  653,  652,  901,  902,  649,  902,  648,  646,  643,
     1311      902,  903,  642,  903,  641,  636,  609,  903,  904,  605,
     1312      904,  905,  603,  905,  601,  599,  597,  905,  906,  591,
     1313      906,  907,  585,  583,  907,  581,  907,  907,  907,  907,
     1314      907,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1315      908,  908,  908,  908,  909,  909,  909,  909,  909,  909,
     1316
     1317      909,  909,  909,  909,  909,  909,  909,  910,  579,  910,
     1318      577,  575,  573,  910,  911,  571,  911,  570,  569,  566,
     1319      911,  912,  557,  912,  551,  548,  543,  912,  913,  537,
     1320      913,  914,  534,  914,  511,  507,  505,  914,  915,  503,
     1321      915,  916,  501,  916,  499,  497,  496,  916,  917,  495,
     1322      917,  918,  494,  918,  483,  480,  478,  918,  919,  477,
     1323      919,  920,  476,  920,  474,  472,  469,  920,  921,  467,
     1324      921,  922,  465,  922,  463,  459,  444,  922,  923,  442,
     1325      923,  924,  434,  924,  432,  424,  422,  924,  925,  420,
     1326      925,  926,  394,  926,  392,  926,  390,  926,  927,  388,
     1327
     1328      927,  387,  927,  386,  927,  928,  928,  373,  928,  928,
     1329      928,  363,  928,  929,  361,  929,  360,  356,  354,  929,
     1330      930,  352,  930,  350,  346,  344,  930,  931,  343,  931,
     1331      342,  332,  319,  931,  932,  296,  932,  933,  275,  933,
     1332      273,  271,  270,  933,  934,  269,  934,  935,  267,  935,
     1333      266,  261,  257,  935,  936,  256,  936,  937,  252,  937,
     1334      249,  248,  237,  937,  938,  236,  938,  939,  229,  228,
     1335      939,  225,  939,  939,  939,  939,  939,  940,  940,  940,
     1336      940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
     1337      941,  215,  941,  213,  212,  211,  941,  942,  205,  942,
     1338
     1339      943,  204,  943,  202,  197,  177,  943,  944,  148,  944,
     1340      945,  146,  945,  145,  139,  137,  945,  946,  135,  946,
     1341      947,  127,  947,  124,  123,  119,  947,  948,  100,  948,
     1342      949,   97,  949,   94,   92,   85,  949,  950,   71,  950,
     1343      951,   69,  951,   65,   36,   33,  951,  952,   18,  952,
     1344      953,   11,  953,    4,    3,    0,  953,  954,    0,  954,
     1345        0,    0,    0,  954,  955,    0,  955,  956,    0,  956,
     1346        0,    0,    0,  956,  957,    0,  957,  958,    0,  958,
     1347        0,  958,    0,  958,  959,    0,  959,    0,    0,    0,
     1348      959,  960,    0,  960,    0,    0,    0,  960,  961,    0,
     1349
     1350      961,  962,    0,  962,    0,    0,    0,  962,  963,    0,
     1351      963,  964,    0,  964,    0,    0,    0,  964,  965,    0,
     1352      965,  966,    0,  966,    0,    0,    0,  966,  967,    0,
     1353      967,  968,    0,  968,    0,    0,    0,  968,  969,    0,
     1354      969,  970,    0,  970,    0,    0,    0,  970,  971,    0,
     1355      971,  972,    0,    0,  972,    0,  972,  972,  972,  972,
     1356      972,  973,  973,  973,  973,  973,  973,  973,  973,  973,
     1357      973,  973,  973,  973,  974,    0,  974,    0,    0,    0,
     1358      974,  975,    0,  975,  976,    0,  976,    0,    0,    0,
     1359      976,  977,    0,  977,  978,    0,  978,    0,    0,    0,
     1360
     1361      978,  979,    0,  979,  980,    0,  980,    0,    0,    0,
     1362      980,  981,    0,  981,  982,    0,  982,    0,    0,    0,
     1363      982,  983,    0,  983,  984,    0,  984,    0,    0,    0,
     1364      984,  985,    0,  985,  986,    0,  986,    0,    0,    0,
     1365      986,  987,    0,  987,  988,    0,  988,    0,    0,    0,
     1366      988,  989,    0,  989,  990,    0,  990,    0,    0,    0,
     1367      990,  991,    0,  991,    0,    0,    0,  991,  992,    0,
     1368      992,  993,    0,  993,    0,    0,    0,  993,  994,    0,
     1369      994,  995,    0,  995,    0,    0,    0,  995,  996,    0,
     1370      996,  997,    0,  997,    0,    0,    0,  997,  998,    0,
     1371
     1372      998,  999,    0,  999, 1000,    0, 1000, 1001,    0,    0,
     1373     1001,    0, 1001, 1001, 1001, 1001, 1001, 1002,    0, 1002,
     1374     1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
     1375     1003, 1003, 1003, 1004,    0, 1004,    0,    0,    0, 1004,
     1376     1005,    0, 1005, 1006,    0, 1006,    0,    0,    0, 1006,
     1377     1007,    0, 1007, 1008,    0, 1008, 1009,    0, 1009, 1010,
     1378        0,    0, 1010,    0, 1010, 1010, 1010, 1010, 1010, 1011,
     1379        0, 1011, 1012,    0, 1012, 1013,    0, 1013, 1014,    0,
     1380     1014, 1015,    0, 1015, 1016,    0, 1016, 1017,    0, 1017,
     1381     1018,    0, 1018,    0,    0,    0, 1018, 1019,    0, 1019,
     1382
     1383     1020,    0, 1020,    0,    0,    0, 1020, 1021,    0, 1021,
     1384     1022,    0, 1022, 1023,    0, 1023, 1024,    0, 1024, 1025,
     1385        0, 1025,    0,    0,    0, 1025, 1026,    0,    0, 1026,
     1386        0, 1026, 1026, 1026, 1026, 1026, 1027,    0, 1027, 1028,
     1387        0, 1028, 1029,    0, 1029, 1030,    0, 1030,    0,    0,
     1388        0, 1030, 1031,    0, 1031,    0,    0,    0, 1031, 1032,
     1389        0, 1032,    0,    0,    0, 1032, 1033,    0, 1033, 1034,
     1390        0, 1034,    0,    0,    0, 1034, 1035,    0, 1035,    0,
     1391        0,    0, 1035, 1036,    0, 1036,    0,    0,    0, 1036,
     1392     1037,    0, 1037,    0,    0,    0, 1037, 1038,    0, 1038,
     1393
     1394        0,    0,    0, 1038, 1039,    0, 1039,    0,    0,    0,
     1395     1039, 1040,    0, 1040,    0,    0,    0, 1040, 1041,    0,
     1396     1041,    0,    0,    0, 1041, 1042,    0, 1042,    0,    0,
     1397        0, 1042, 1043,    0, 1043,    0,    0,    0, 1043, 1044,
     1398        0, 1044,    0,    0,    0, 1044, 1045,    0, 1045,    0,
     1399        0,    0, 1045, 1046,    0, 1046,    0,    0,    0, 1046,
     1400     1047,    0, 1047,    0,    0,    0, 1047, 1048,    0, 1048,
     1401        0,    0,    0, 1048, 1049,    0, 1049,    0,    0,    0,
     1402     1049,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1403      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1404
     1405      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1406      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1407      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1408      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1409      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1410      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1411      875,  875,  875,  875,  875,  875
    14191412    } ;
    14201413
    14211414/* Table of booleans, true if rule could match eol. */
    1422 static yyconst flex_int32_t yy_rule_can_match_eol[181] =
     1415static yyconst flex_int32_t yy_rule_can_match_eol[180] =
    14231416    {   0,
    142414171, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14271420    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14281421    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1429     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
    1430     0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     1422    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
     1423    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14311424    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14321425    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1433     0,     };
     1426        };
    14341427
    14351428static yy_state_type yy_last_accepting_state;
     
    14591452 * Created On       : Sat Sep 22 08:58:10 2001
    14601453 * Last Modified By : Peter A. Buhr
    1461  * Last Modified On : Sat Jan 30 19:54:39 2016
    1462  * Update Count     : 425
     1454 * Last Modified On : Tue Feb  2 15:06:54 2016
     1455 * Update Count     : 426
    14631456 */
    14641457#line 20 "lex.ll"
     
    15181511
    15191512
    1520 #line 1521 "Parser/lex.cc"
     1513#line 1514 "Parser/lex.cc"
    15211514
    15221515#define INITIAL 0
     
    17131706
    17141707                                   /* line directives */
    1715 #line 1716 "Parser/lex.cc"
     1708#line 1709 "Parser/lex.cc"
    17161709
    17171710        if ( !(yy_init) )
     
    17671760                                {
    17681761                                yy_current_state = (int) yy_def[yy_current_state];
    1769                                 if ( yy_current_state >= 884 )
     1762                                if ( yy_current_state >= 876 )
    17701763                                        yy_c = yy_meta[(unsigned int) yy_c];
    17711764                                }
     
    17731766                        ++yy_cp;
    17741767                        }
    1775                 while ( yy_base[yy_current_state] != 2799 );
     1768                while ( yy_base[yy_current_state] != 2782 );
    17761769
    17771770yy_find_action:
     
    21852178YY_RULE_SETUP
    21862179#line 238 "lex.ll"
    2187 { KEYWORD_RETURN(OFFSETOF); }                   // GCC
     2180{ KEYWORD_RETURN(OFFSETOF); }           // GCC
    21882181        YY_BREAK
    21892182case 71:
    21902183YY_RULE_SETUP
    21912184#line 239 "lex.ll"
    2192 { KEYWORD_RETURN(OFFSETOF); }           // GCC
     2185{ KEYWORD_RETURN(REGISTER); }
    21932186        YY_BREAK
    21942187case 72:
    21952188YY_RULE_SETUP
    21962189#line 240 "lex.ll"
    2197 { KEYWORD_RETURN(REGISTER); }
     2190{ KEYWORD_RETURN(RESTRICT); }                   // C99
    21982191        YY_BREAK
    21992192case 73:
    22002193YY_RULE_SETUP
    22012194#line 241 "lex.ll"
    2202 { KEYWORD_RETURN(RESTRICT); }                   // C99
     2195{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22032196        YY_BREAK
    22042197case 74:
     
    22102203YY_RULE_SETUP
    22112204#line 243 "lex.ll"
    2212 { KEYWORD_RETURN(RESTRICT); }                   // GCC
     2205{ KEYWORD_RETURN(RETURN); }
    22132206        YY_BREAK
    22142207case 76:
    22152208YY_RULE_SETUP
    22162209#line 244 "lex.ll"
    2217 { KEYWORD_RETURN(RETURN); }
     2210{ KEYWORD_RETURN(SHORT); }
    22182211        YY_BREAK
    22192212case 77:
    22202213YY_RULE_SETUP
    22212214#line 245 "lex.ll"
    2222 { KEYWORD_RETURN(SHORT); }
     2215{ KEYWORD_RETURN(SIGNED); }
    22232216        YY_BREAK
    22242217case 78:
    22252218YY_RULE_SETUP
    22262219#line 246 "lex.ll"
    2227 { KEYWORD_RETURN(SIGNED); }
     2220{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22282221        YY_BREAK
    22292222case 79:
     
    22352228YY_RULE_SETUP
    22362229#line 248 "lex.ll"
    2237 { KEYWORD_RETURN(SIGNED); }                             // GCC
     2230{ KEYWORD_RETURN(SIZEOF); }
    22382231        YY_BREAK
    22392232case 81:
    22402233YY_RULE_SETUP
    22412234#line 249 "lex.ll"
    2242 { KEYWORD_RETURN(SIZEOF); }
     2235{ KEYWORD_RETURN(STATIC); }
    22432236        YY_BREAK
    22442237case 82:
    22452238YY_RULE_SETUP
    22462239#line 250 "lex.ll"
    2247 { KEYWORD_RETURN(STATIC); }
     2240{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22482241        YY_BREAK
    22492242case 83:
    22502243YY_RULE_SETUP
    22512244#line 251 "lex.ll"
    2252 { KEYWORD_RETURN(STATICASSERT); }               // C11
     2245{ KEYWORD_RETURN(STRUCT); }
    22532246        YY_BREAK
    22542247case 84:
    22552248YY_RULE_SETUP
    22562249#line 252 "lex.ll"
    2257 { KEYWORD_RETURN(STRUCT); }
     2250{ KEYWORD_RETURN(SWITCH); }
    22582251        YY_BREAK
    22592252case 85:
    22602253YY_RULE_SETUP
    22612254#line 253 "lex.ll"
    2262 { KEYWORD_RETURN(SWITCH); }
     2255{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    22632256        YY_BREAK
    22642257case 86:
    22652258YY_RULE_SETUP
    22662259#line 254 "lex.ll"
    2267 { KEYWORD_RETURN(THREADLOCAL); }                // C11
     2260{ KEYWORD_RETURN(THROW); }                              // CFA
    22682261        YY_BREAK
    22692262case 87:
    22702263YY_RULE_SETUP
    22712264#line 255 "lex.ll"
    2272 { KEYWORD_RETURN(THROW); }                              // CFA
     2265{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    22732266        YY_BREAK
    22742267case 88:
    22752268YY_RULE_SETUP
    22762269#line 256 "lex.ll"
    2277 { KEYWORD_RETURN(THROWRESUME); }                // CFA
     2270{ KEYWORD_RETURN(TRY); }                                // CFA
    22782271        YY_BREAK
    22792272case 89:
    22802273YY_RULE_SETUP
    22812274#line 257 "lex.ll"
    2282 { KEYWORD_RETURN(TRY); }                                // CFA
     2275{ KEYWORD_RETURN(TYPE); }                               // CFA
    22832276        YY_BREAK
    22842277case 90:
    22852278YY_RULE_SETUP
    22862279#line 258 "lex.ll"
    2287 { KEYWORD_RETURN(TYPE); }                               // CFA
     2280{ KEYWORD_RETURN(TYPEDEF); }
    22882281        YY_BREAK
    22892282case 91:
    22902283YY_RULE_SETUP
    22912284#line 259 "lex.ll"
    2292 { KEYWORD_RETURN(TYPEDEF); }
     2285{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22932286        YY_BREAK
    22942287case 92:
     
    23052298YY_RULE_SETUP
    23062299#line 262 "lex.ll"
    2307 { KEYWORD_RETURN(TYPEOF); }                             // GCC
     2300{ KEYWORD_RETURN(UNION); }
    23082301        YY_BREAK
    23092302case 95:
    23102303YY_RULE_SETUP
    23112304#line 263 "lex.ll"
    2312 { KEYWORD_RETURN(UNION); }
     2305{ KEYWORD_RETURN(UNSIGNED); }
    23132306        YY_BREAK
    23142307case 96:
    23152308YY_RULE_SETUP
    23162309#line 264 "lex.ll"
    2317 { KEYWORD_RETURN(UNSIGNED); }
     2310{ KEYWORD_RETURN(VOID); }
    23182311        YY_BREAK
    23192312case 97:
    23202313YY_RULE_SETUP
    23212314#line 265 "lex.ll"
    2322 { KEYWORD_RETURN(VOID); }
     2315{ KEYWORD_RETURN(VOLATILE); }
    23232316        YY_BREAK
    23242317case 98:
    23252318YY_RULE_SETUP
    23262319#line 266 "lex.ll"
    2327 { KEYWORD_RETURN(VOLATILE); }
     2320{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23282321        YY_BREAK
    23292322case 99:
     
    23352328YY_RULE_SETUP
    23362329#line 268 "lex.ll"
    2337 { KEYWORD_RETURN(VOLATILE); }                   // GCC
    2338         YY_BREAK
     2330{ KEYWORD_RETURN(WHILE); }
     2331        YY_BREAK
     2332/* identifier */
    23392333case 101:
    23402334YY_RULE_SETUP
    2341 #line 269 "lex.ll"
    2342 { KEYWORD_RETURN(WHILE); }
    2343         YY_BREAK
    2344 /* identifier */
     2335#line 271 "lex.ll"
     2336{ IDENTIFIER_RETURN(); }
     2337        YY_BREAK
    23452338case 102:
    23462339YY_RULE_SETUP
    23472340#line 272 "lex.ll"
     2341{ ATTRIBUTE_RETURN(); }
     2342        YY_BREAK
     2343case 103:
     2344YY_RULE_SETUP
     2345#line 273 "lex.ll"
     2346{ BEGIN BKQUOTE; }
     2347        YY_BREAK
     2348case 104:
     2349YY_RULE_SETUP
     2350#line 274 "lex.ll"
    23482351{ IDENTIFIER_RETURN(); }
    23492352        YY_BREAK
    2350 case 103:
    2351 YY_RULE_SETUP
    2352 #line 273 "lex.ll"
    2353 { ATTRIBUTE_RETURN(); }
    2354         YY_BREAK
    2355 case 104:
    2356 YY_RULE_SETUP
    2357 #line 274 "lex.ll"
    2358 { BEGIN BKQUOTE; }
    2359         YY_BREAK
    23602353case 105:
    23612354YY_RULE_SETUP
    23622355#line 275 "lex.ll"
    2363 { IDENTIFIER_RETURN(); }
    2364         YY_BREAK
     2356{ BEGIN 0; }
     2357        YY_BREAK
     2358/* numeric constants */
    23652359case 106:
    23662360YY_RULE_SETUP
    2367 #line 276 "lex.ll"
    2368 { BEGIN 0; }
    2369         YY_BREAK
    2370 /* numeric constants */
     2361#line 278 "lex.ll"
     2362{ NUMERIC_RETURN(ZERO); }                               // CFA
     2363        YY_BREAK
    23712364case 107:
    23722365YY_RULE_SETUP
    23732366#line 279 "lex.ll"
    2374 { NUMERIC_RETURN(ZERO); }                               // CFA
     2367{ NUMERIC_RETURN(ONE); }                                // CFA
    23752368        YY_BREAK
    23762369case 108:
    23772370YY_RULE_SETUP
    23782371#line 280 "lex.ll"
    2379 { NUMERIC_RETURN(ONE); }                                // CFA
     2372{ NUMERIC_RETURN(INTEGERconstant); }
    23802373        YY_BREAK
    23812374case 109:
     
    23922385YY_RULE_SETUP
    23932386#line 283 "lex.ll"
    2394 { NUMERIC_RETURN(INTEGERconstant); }
     2387{ NUMERIC_RETURN(FLOATINGconstant); }
    23952388        YY_BREAK
    23962389case 112:
     
    23992392{ NUMERIC_RETURN(FLOATINGconstant); }
    24002393        YY_BREAK
     2394/* character constant, allows empty value */
    24012395case 113:
    24022396YY_RULE_SETUP
    2403 #line 285 "lex.ll"
    2404 { NUMERIC_RETURN(FLOATINGconstant); }
    2405         YY_BREAK
    2406 /* character constant, allows empty value */
     2397#line 287 "lex.ll"
     2398{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2399        YY_BREAK
    24072400case 114:
    24082401YY_RULE_SETUP
    24092402#line 288 "lex.ll"
    2410 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2403{ *strtext += std::string( yytext ); }
    24112404        YY_BREAK
    24122405case 115:
     2406/* rule 115 can match eol */
    24132407YY_RULE_SETUP
    24142408#line 289 "lex.ll"
    2415 { *strtext += std::string( yytext ); }
    2416         YY_BREAK
    2417 case 116:
    2418 /* rule 116 can match eol */
    2419 YY_RULE_SETUP
    2420 #line 290 "lex.ll"
    24212409{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    24222410        YY_BREAK
    24232411/* ' stop highlighting */
    24242412/* string constant */
     2413case 116:
     2414YY_RULE_SETUP
     2415#line 293 "lex.ll"
     2416{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2417        YY_BREAK
    24252418case 117:
    24262419YY_RULE_SETUP
    24272420#line 294 "lex.ll"
    2428 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2421{ *strtext += std::string( yytext ); }
    24292422        YY_BREAK
    24302423case 118:
     2424/* rule 118 can match eol */
    24312425YY_RULE_SETUP
    24322426#line 295 "lex.ll"
    2433 { *strtext += std::string( yytext ); }
    2434         YY_BREAK
    2435 case 119:
    2436 /* rule 119 can match eol */
    2437 YY_RULE_SETUP
    2438 #line 296 "lex.ll"
    24392427{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    24402428        YY_BREAK
    24412429/* " stop highlighting */
    24422430/* common character/string constant */
     2431case 119:
     2432YY_RULE_SETUP
     2433#line 299 "lex.ll"
     2434{ rm_underscore(); *strtext += std::string( yytext ); }
     2435        YY_BREAK
    24432436case 120:
     2437/* rule 120 can match eol */
    24442438YY_RULE_SETUP
    24452439#line 300 "lex.ll"
    2446 { rm_underscore(); *strtext += std::string( yytext ); }
     2440{}                                              // continuation (ALSO HANDLED BY CPP)
    24472441        YY_BREAK
    24482442case 121:
    2449 /* rule 121 can match eol */
    24502443YY_RULE_SETUP
    24512444#line 301 "lex.ll"
    2452 {}                                              // continuation (ALSO HANDLED BY CPP)
    2453         YY_BREAK
     2445{ *strtext += std::string( yytext ); } // unknown escape character
     2446        YY_BREAK
     2447/* punctuation */
    24542448case 122:
    24552449YY_RULE_SETUP
    2456 #line 302 "lex.ll"
    2457 { *strtext += std::string( yytext ); } // unknown escape character
    2458         YY_BREAK
    2459 /* punctuation */
     2450#line 304 "lex.ll"
     2451{ ASCIIOP_RETURN(); }
     2452        YY_BREAK
    24602453case 123:
    24612454YY_RULE_SETUP
     
    24862479YY_RULE_SETUP
    24872480#line 310 "lex.ll"
     2481{ ASCIIOP_RETURN(); }                                   // also operator
     2482        YY_BREAK
     2483case 129:
     2484YY_RULE_SETUP
     2485#line 311 "lex.ll"
    24882486{ ASCIIOP_RETURN(); }
    2489         YY_BREAK
    2490 case 129:
    2491 YY_RULE_SETUP
    2492 #line 311 "lex.ll"
    2493 { ASCIIOP_RETURN(); }                                   // also operator
    24942487        YY_BREAK
    24952488case 130:
     
    25012494YY_RULE_SETUP
    25022495#line 313 "lex.ll"
     2496{ ASCIIOP_RETURN(); }                                   // also operator
     2497        YY_BREAK
     2498case 132:
     2499YY_RULE_SETUP
     2500#line 314 "lex.ll"
     2501{ NAMEDOP_RETURN(ELLIPSIS); }
     2502        YY_BREAK
     2503/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
     2504case 133:
     2505YY_RULE_SETUP
     2506#line 317 "lex.ll"
     2507{ RETURN_VAL('['); }
     2508        YY_BREAK
     2509case 134:
     2510YY_RULE_SETUP
     2511#line 318 "lex.ll"
     2512{ RETURN_VAL(']'); }
     2513        YY_BREAK
     2514case 135:
     2515YY_RULE_SETUP
     2516#line 319 "lex.ll"
     2517{ RETURN_VAL('{'); }
     2518        YY_BREAK
     2519case 136:
     2520YY_RULE_SETUP
     2521#line 320 "lex.ll"
     2522{ RETURN_VAL('}'); }
     2523        YY_BREAK
     2524/* operators */
     2525case 137:
     2526YY_RULE_SETUP
     2527#line 323 "lex.ll"
    25032528{ ASCIIOP_RETURN(); }
    25042529        YY_BREAK
    2505 case 132:
    2506 YY_RULE_SETUP
    2507 #line 314 "lex.ll"
    2508 { ASCIIOP_RETURN(); }                                   // also operator
    2509         YY_BREAK
    2510 case 133:
    2511 YY_RULE_SETUP
    2512 #line 315 "lex.ll"
    2513 { NAMEDOP_RETURN(ELLIPSIS); }
    2514         YY_BREAK
    2515 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2516 case 134:
    2517 YY_RULE_SETUP
    2518 #line 318 "lex.ll"
    2519 { RETURN_VAL('['); }
    2520         YY_BREAK
    2521 case 135:
    2522 YY_RULE_SETUP
    2523 #line 319 "lex.ll"
    2524 { RETURN_VAL(']'); }
    2525         YY_BREAK
    2526 case 136:
    2527 YY_RULE_SETUP
    2528 #line 320 "lex.ll"
    2529 { RETURN_VAL('{'); }
    2530         YY_BREAK
    2531 case 137:
    2532 YY_RULE_SETUP
    2533 #line 321 "lex.ll"
    2534 { RETURN_VAL('}'); }
    2535         YY_BREAK
    2536 /* operators */
    25372530case 138:
    25382531YY_RULE_SETUP
     
    26022595case 151:
    26032596YY_RULE_SETUP
    2604 #line 337 "lex.ll"
    2605 { ASCIIOP_RETURN(); }
     2597#line 338 "lex.ll"
     2598{ NAMEDOP_RETURN(ICR); }
    26062599        YY_BREAK
    26072600case 152:
    26082601YY_RULE_SETUP
    26092602#line 339 "lex.ll"
    2610 { NAMEDOP_RETURN(ICR); }
     2603{ NAMEDOP_RETURN(DECR); }
    26112604        YY_BREAK
    26122605case 153:
    26132606YY_RULE_SETUP
    26142607#line 340 "lex.ll"
    2615 { NAMEDOP_RETURN(DECR); }
     2608{ NAMEDOP_RETURN(EQ); }
    26162609        YY_BREAK
    26172610case 154:
    26182611YY_RULE_SETUP
    26192612#line 341 "lex.ll"
    2620 { NAMEDOP_RETURN(EQ); }
     2613{ NAMEDOP_RETURN(NE); }
    26212614        YY_BREAK
    26222615case 155:
    26232616YY_RULE_SETUP
    26242617#line 342 "lex.ll"
    2625 { NAMEDOP_RETURN(NE); }
     2618{ NAMEDOP_RETURN(LS); }
    26262619        YY_BREAK
    26272620case 156:
    26282621YY_RULE_SETUP
    26292622#line 343 "lex.ll"
    2630 { NAMEDOP_RETURN(LS); }
     2623{ NAMEDOP_RETURN(RS); }
    26312624        YY_BREAK
    26322625case 157:
    26332626YY_RULE_SETUP
    26342627#line 344 "lex.ll"
    2635 { NAMEDOP_RETURN(RS); }
     2628{ NAMEDOP_RETURN(LE); }
    26362629        YY_BREAK
    26372630case 158:
    26382631YY_RULE_SETUP
    26392632#line 345 "lex.ll"
    2640 { NAMEDOP_RETURN(LE); }
     2633{ NAMEDOP_RETURN(GE); }
    26412634        YY_BREAK
    26422635case 159:
    26432636YY_RULE_SETUP
    26442637#line 346 "lex.ll"
    2645 { NAMEDOP_RETURN(GE); }
     2638{ NAMEDOP_RETURN(ANDAND); }
    26462639        YY_BREAK
    26472640case 160:
    26482641YY_RULE_SETUP
    26492642#line 347 "lex.ll"
    2650 { NAMEDOP_RETURN(ANDAND); }
     2643{ NAMEDOP_RETURN(OROR); }
    26512644        YY_BREAK
    26522645case 161:
    26532646YY_RULE_SETUP
    26542647#line 348 "lex.ll"
    2655 { NAMEDOP_RETURN(OROR); }
     2648{ NAMEDOP_RETURN(ARROW); }
    26562649        YY_BREAK
    26572650case 162:
    26582651YY_RULE_SETUP
    26592652#line 349 "lex.ll"
    2660 { NAMEDOP_RETURN(ARROW); }
     2653{ NAMEDOP_RETURN(PLUSassign); }
    26612654        YY_BREAK
    26622655case 163:
    26632656YY_RULE_SETUP
    26642657#line 350 "lex.ll"
    2665 { NAMEDOP_RETURN(PLUSassign); }
     2658{ NAMEDOP_RETURN(MINUSassign); }
    26662659        YY_BREAK
    26672660case 164:
    26682661YY_RULE_SETUP
    26692662#line 351 "lex.ll"
    2670 { NAMEDOP_RETURN(MINUSassign); }
     2663{ NAMEDOP_RETURN(MULTassign); }
    26712664        YY_BREAK
    26722665case 165:
    26732666YY_RULE_SETUP
    26742667#line 352 "lex.ll"
    2675 { NAMEDOP_RETURN(MULTassign); }
     2668{ NAMEDOP_RETURN(DIVassign); }
    26762669        YY_BREAK
    26772670case 166:
    26782671YY_RULE_SETUP
    26792672#line 353 "lex.ll"
    2680 { NAMEDOP_RETURN(DIVassign); }
     2673{ NAMEDOP_RETURN(MODassign); }
    26812674        YY_BREAK
    26822675case 167:
    26832676YY_RULE_SETUP
    26842677#line 354 "lex.ll"
    2685 { NAMEDOP_RETURN(MODassign); }
     2678{ NAMEDOP_RETURN(ANDassign); }
    26862679        YY_BREAK
    26872680case 168:
    26882681YY_RULE_SETUP
    26892682#line 355 "lex.ll"
    2690 { NAMEDOP_RETURN(ANDassign); }
     2683{ NAMEDOP_RETURN(ORassign); }
    26912684        YY_BREAK
    26922685case 169:
    26932686YY_RULE_SETUP
    26942687#line 356 "lex.ll"
    2695 { NAMEDOP_RETURN(ORassign); }
     2688{ NAMEDOP_RETURN(ERassign); }
    26962689        YY_BREAK
    26972690case 170:
    26982691YY_RULE_SETUP
    26992692#line 357 "lex.ll"
    2700 { NAMEDOP_RETURN(ERassign); }
     2693{ NAMEDOP_RETURN(LSassign); }
    27012694        YY_BREAK
    27022695case 171:
    27032696YY_RULE_SETUP
    27042697#line 358 "lex.ll"
    2705 { NAMEDOP_RETURN(LSassign); }
     2698{ NAMEDOP_RETURN(RSassign); }
    27062699        YY_BREAK
    27072700case 172:
    27082701YY_RULE_SETUP
    2709 #line 359 "lex.ll"
    2710 { NAMEDOP_RETURN(RSassign); }
    2711         YY_BREAK
     2702#line 360 "lex.ll"
     2703{ NAMEDOP_RETURN(ATassign); }
     2704        YY_BREAK
     2705/* CFA, operator identifier */
    27122706case 173:
    27132707YY_RULE_SETUP
    2714 #line 361 "lex.ll"
    2715 { NAMEDOP_RETURN(ATassign); }
    2716         YY_BREAK
    2717 /* CFA, operator identifier */
     2708#line 363 "lex.ll"
     2709{ IDENTIFIER_RETURN(); }                                // unary
     2710        YY_BREAK
    27182711case 174:
    27192712YY_RULE_SETUP
    27202713#line 364 "lex.ll"
    2721 { IDENTIFIER_RETURN(); }                                // unary
     2714{ IDENTIFIER_RETURN(); }
    27222715        YY_BREAK
    27232716case 175:
     
    27292722YY_RULE_SETUP
    27302723#line 366 "lex.ll"
    2731 { IDENTIFIER_RETURN(); }
    2732         YY_BREAK
    2733 case 177:
    2734 YY_RULE_SETUP
    2735 #line 367 "lex.ll"
    27362724{ IDENTIFIER_RETURN(); }                // binary
    27372725        YY_BREAK
     
    27622750          an argument list.
    27632751        */
    2764 case 178:
    2765 YY_RULE_SETUP
    2766 #line 394 "lex.ll"
     2752case 177:
     2753YY_RULE_SETUP
     2754#line 393 "lex.ll"
    27672755{
    27682756        // 1 or 2 character unary operator ?
     
    27772765        YY_BREAK
    27782766/* unknown characters */
     2767case 178:
     2768YY_RULE_SETUP
     2769#line 405 "lex.ll"
     2770{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
     2771        YY_BREAK
    27792772case 179:
    27802773YY_RULE_SETUP
    2781 #line 406 "lex.ll"
    2782 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    2783         YY_BREAK
    2784 case 180:
    2785 YY_RULE_SETUP
    2786 #line 408 "lex.ll"
     2774#line 407 "lex.ll"
    27872775ECHO;
    27882776        YY_BREAK
    2789 #line 2790 "Parser/lex.cc"
     2777#line 2778 "Parser/lex.cc"
    27902778case YY_STATE_EOF(INITIAL):
    27912779case YY_STATE_EOF(COMMENT):
     
    30843072                        {
    30853073                        yy_current_state = (int) yy_def[yy_current_state];
    3086                         if ( yy_current_state >= 884 )
     3074                        if ( yy_current_state >= 876 )
    30873075                                yy_c = yy_meta[(unsigned int) yy_c];
    30883076                        }
     
    31123100                {
    31133101                yy_current_state = (int) yy_def[yy_current_state];
    3114                 if ( yy_current_state >= 884 )
     3102                if ( yy_current_state >= 876 )
    31153103                        yy_c = yy_meta[(unsigned int) yy_c];
    31163104                }
    31173105        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3118         yy_is_jam = (yy_current_state == 883);
     3106        yy_is_jam = (yy_current_state == 875);
    31193107
    31203108        return yy_is_jam ? 0 : yy_current_state;
     
    37623750#define YYTABLES_NAME "yytables"
    37633751
    3764 #line 408 "lex.ll"
     3752#line 407 "lex.ll"
    37653753
    37663754
  • src/Parser/lex.ll

    r98735ef rcce7872  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Sat Jan 30 19:54:39 2016
    13  * Update Count     : 425
     12 * Last Modified On : Tue Feb  2 15:06:54 2016
     13 * Update Count     : 426
    1414 */
    1515
     
    236236lvalue                  { KEYWORD_RETURN(LVALUE); }                             // CFA
    237237_Noreturn               { KEYWORD_RETURN(NORETURN); }                   // C11
    238 offsetof                { KEYWORD_RETURN(OFFSETOF); }                   // GCC
    239238__builtin_offsetof { KEYWORD_RETURN(OFFSETOF); }                // GCC
    240239register                { KEYWORD_RETURN(REGISTER); }
  • src/Parser/parser.cc

    r98735ef rcce7872  
    585585
    586586/* YYFINAL -- State number of the termination state.  */
    587 #define YYFINAL  247
     587#define YYFINAL  248
    588588/* YYLAST -- Last index in YYTABLE.  */
    589 #define YYLAST   10929
     589#define YYLAST   11042
    590590
    591591/* YYNTOKENS -- Number of terminals.  */
     
    594594#define YYNNTS  238
    595595/* YYNRULES -- Number of rules.  */
    596 #define YYNRULES  750
     596#define YYNRULES  751
    597597/* YYNRULES -- Number of states.  */
    598 #define YYNSTATES  1576
     598#define YYNSTATES  1578
    599599
    600600/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    653653{
    654654       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    655       17,    19,    21,    23,    25,    27,    29,    32,    34,    36,
    656       40,    44,    46,    53,    58,    62,    70,    74,    82,    85,
    657       88,    96,   101,   103,   107,   108,   110,   114,   122,   132,
    658      134,   138,   140,   144,   152,   156,   164,   166,   168,   170,
    659      173,   176,   179,   182,   185,   188,   191,   196,   203,   205,
    660      210,   215,   218,   223,   226,   228,   230,   232,   234,   236,
    661      241,   246,   248,   252,   256,   260,   262,   266,   270,   272,
    662      276,   280,   282,   286,   290,   294,   298,   300,   304,   308,
    663      310,   314,   316,   320,   322,   326,   328,   332,   334,   338,
    664      340,   346,   351,   357,   359,   361,   365,   369,   372,   373,
    665      375,   378,   384,   391,   399,   401,   405,   407,   409,   411,
    666      413,   415,   417,   419,   421,   423,   425,   427,   431,   432,
    667      434,   436,   438,   440,   442,   444,   446,   448,   450,   457,
    668      462,   465,   473,   475,   479,   481,   484,   486,   489,   491,
    669      494,   497,   503,   511,   517,   527,   533,   543,   545,   549,
    670      551,   553,   557,   561,   564,   566,   569,   572,   573,   575,
    671      578,   582,   583,   585,   588,   592,   596,   601,   602,   604,
    672      606,   609,   615,   623,   630,   637,   642,   646,   651,   654,
    673      658,   661,   665,   669,   673,   677,   683,   687,   691,   696,
    674      698,   704,   711,   717,   724,   734,   745,   755,   766,   769,
    675      771,   774,   777,   780,   782,   789,   798,   809,   822,   837,
    676      838,   840,   841,   843,   845,   849,   854,   862,   863,   865,
    677      869,   871,   875,   877,   879,   881,   885,   887,   889,   891,
    678      895,   896,   898,   902,   907,   909,   913,   915,   917,   921,
    679      925,   929,   933,   937,   940,   944,   951,   955,   959,   964,
    680      966,   969,   972,   976,   982,   991,   999,  1007,  1013,  1023,
    681     1026,  1029,  1035,  1039,  1045,  1050,  1054,  1059,  1064,  1072,
    682     1076,  1080,  1084,  1088,  1093,  1100,  1102,  1104,  1106,  1108,
    683     1110,  1112,  1114,  1116,  1117,  1119,  1121,  1124,  1126,  1128,
    684     1130,  1132,  1134,  1136,  1138,  1139,  1145,  1147,  1150,  1154,
    685     1156,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
     655      17,    19,    21,    23,    25,    27,    29,    31,    34,    36,
     656      38,    42,    46,    48,    55,    60,    64,    72,    76,    84,
     657      87,    90,    98,   103,   105,   109,   110,   112,   116,   124,
     658     134,   136,   140,   142,   146,   154,   158,   166,   168,   170,
     659     172,   175,   178,   181,   184,   187,   190,   193,   198,   205,
     660     207,   212,   217,   220,   225,   228,   230,   232,   234,   236,
     661     238,   243,   248,   250,   254,   258,   262,   264,   268,   272,
     662     274,   278,   282,   284,   288,   292,   296,   300,   302,   306,
     663     310,   312,   316,   318,   322,   324,   328,   330,   334,   336,
     664     340,   342,   348,   353,   359,   361,   363,   367,   371,   374,
     665     375,   377,   380,   386,   393,   401,   403,   407,   409,   411,
     666     413,   415,   417,   419,   421,   423,   425,   427,   429,   433,
     667     434,   436,   438,   440,   442,   444,   446,   448,   450,   452,
     668     459,   464,   467,   475,   477,   481,   483,   486,   488,   491,
     669     493,   496,   499,   505,   513,   519,   529,   535,   545,   547,
     670     551,   553,   555,   559,   563,   566,   568,   571,   574,   575,
     671     577,   580,   584,   585,   587,   590,   594,   598,   603,   604,
     672     606,   608,   611,   617,   625,   632,   639,   644,   648,   653,
     673     656,   660,   663,   667,   671,   675,   679,   685,   689,   693,
     674     698,   700,   706,   713,   719,   726,   736,   747,   757,   768,
     675     771,   773,   776,   779,   782,   784,   791,   800,   811,   824,
     676     839,   840,   842,   843,   845,   847,   851,   856,   864,   865,
     677     867,   871,   873,   877,   879,   881,   883,   887,   889,   891,
     678     893,   897,   898,   900,   904,   909,   911,   915,   917,   919,
     679     923,   927,   931,   935,   939,   942,   946,   953,   957,   961,
     680     966,   968,   971,   974,   978,   984,   993,  1001,  1009,  1015,
     681    1025,  1028,  1031,  1037,  1041,  1047,  1052,  1056,  1061,  1066,
     682    1074,  1078,  1082,  1086,  1090,  1095,  1102,  1104,  1106,  1108,
     683    1110,  1112,  1114,  1116,  1118,  1119,  1121,  1123,  1126,  1128,
     684    1130,  1132,  1134,  1136,  1138,  1140,  1141,  1147,  1149,  1152,
     685    1156,  1158,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
    686686    1177,  1179,  1181,  1183,  1185,  1187,  1189,  1191,  1193,  1195,
    687     1197,  1199,  1201,  1203,  1206,  1209,  1213,  1217,  1219,  1223,
    688     1225,  1228,  1231,  1234,  1239,  1244,  1249,  1254,  1256,  1259,
    689     1262,  1266,  1268,  1271,  1274,  1276,  1279,  1282,  1286,  1288,
    690     1291,  1294,  1296,  1298,  1303,  1306,  1312,  1320,  1323,  1326,
    691     1329,  1331,  1334,  1337,  1341,  1344,  1348,  1350,  1353,  1357,
    692     1360,  1363,  1368,  1369,  1371,  1374,  1377,  1379,  1380,  1382,
    693     1385,  1388,  1394,  1401,  1404,  1407,  1412,  1413,  1416,  1417,
    694     1419,  1421,  1423,  1429,  1435,  1441,  1443,  1449,  1455,  1465,
    695     1467,  1473,  1474,  1476,  1478,  1484,  1486,  1488,  1494,  1500,
    696     1502,  1506,  1510,  1515,  1517,  1519,  1521,  1523,  1526,  1528,
    697     1532,  1536,  1538,  1541,  1543,  1547,  1549,  1551,  1553,  1555,
    698     1557,  1559,  1561,  1563,  1565,  1567,  1569,  1572,  1574,  1576,
    699     1578,  1581,  1582,  1585,  1588,  1590,  1595,  1596,  1598,  1601,
    700     1605,  1610,  1613,  1616,  1618,  1621,  1623,  1626,  1632,  1638,
    701     1646,  1653,  1655,  1658,  1661,  1665,  1667,  1670,  1673,  1678,
    702     1681,  1686,  1687,  1692,  1695,  1697,  1699,  1701,  1702,  1705,
    703     1711,  1717,  1731,  1733,  1735,  1739,  1743,  1746,  1750,  1754,
    704     1757,  1762,  1764,  1771,  1781,  1782,  1794,  1796,  1800,  1804,
    705     1808,  1810,  1812,  1818,  1821,  1827,  1828,  1830,  1832,  1836,
    706     1837,  1839,  1841,  1843,  1845,  1846,  1853,  1856,  1858,  1861,
    707     1866,  1869,  1873,  1877,  1881,  1886,  1892,  1898,  1904,  1911,
    708     1913,  1915,  1917,  1921,  1922,  1928,  1929,  1931,  1933,  1936,
    709     1943,  1945,  1949,  1950,  1952,  1957,  1959,  1961,  1963,  1965,
    710     1968,  1970,  1973,  1976,  1978,  1982,  1985,  1989,  1993,  1996,
    711     2001,  2006,  2010,  2019,  2023,  2026,  2028,  2031,  2038,  2047,
    712     2051,  2054,  2058,  2062,  2067,  2072,  2076,  2078,  2080,  2082,
    713     2087,  2094,  2098,  2101,  2105,  2109,  2114,  2119,  2123,  2126,
    714     2128,  2131,  2134,  2136,  2140,  2143,  2147,  2151,  2154,  2159,
    715     2164,  2168,  2175,  2184,  2188,  2191,  2193,  2196,  2199,  2202,
    716     2206,  2210,  2213,  2218,  2223,  2227,  2234,  2243,  2247,  2250,
    717     2252,  2255,  2258,  2260,  2262,  2265,  2269,  2273,  2276,  2281,
    718     2288,  2297,  2299,  2302,  2305,  2307,  2310,  2313,  2317,  2321,
    719     2323,  2328,  2333,  2337,  2343,  2352,  2356,  2359,  2363,  2365,
    720     2371,  2377,  2384,  2391,  2393,  2396,  2399,  2401,  2404,  2407,
    721     2411,  2415,  2417,  2422,  2427,  2431,  2437,  2446,  2450,  2452,
    722     2455,  2457,  2460,  2467,  2473,  2480,  2488,  2496,  2498,  2501,
    723     2504,  2506,  2509,  2512,  2516,  2520,  2522,  2527,  2532,  2536,
    724     2545,  2549,  2551,  2553,  2556,  2558,  2560,  2563,  2567,  2570,
    725     2574,  2577,  2581,  2585,  2588,  2593,  2597,  2600,  2604,  2607,
    726     2612,  2616,  2619,  2626,  2633,  2640,  2648,  2650,  2653,  2655,
    727     2657,  2659,  2662,  2666,  2669,  2673,  2676,  2680,  2684,  2689,
    728     2692,  2696,  2701,  2704,  2710,  2716,  2723,  2730,  2731,  2733,
    729     2734
     687    1197,  1199,  1201,  1203,  1205,  1208,  1211,  1215,  1219,  1221,
     688    1225,  1227,  1230,  1233,  1236,  1241,  1246,  1251,  1256,  1258,
     689    1261,  1264,  1268,  1270,  1273,  1276,  1278,  1281,  1284,  1288,
     690    1290,  1293,  1296,  1298,  1300,  1305,  1308,  1314,  1322,  1325,
     691    1328,  1331,  1333,  1336,  1339,  1343,  1346,  1350,  1352,  1355,
     692    1359,  1362,  1365,  1370,  1371,  1373,  1376,  1379,  1381,  1382,
     693    1384,  1387,  1390,  1396,  1403,  1406,  1409,  1414,  1415,  1418,
     694    1419,  1421,  1423,  1425,  1431,  1437,  1443,  1445,  1451,  1457,
     695    1467,  1469,  1475,  1476,  1478,  1480,  1486,  1488,  1490,  1496,
     696    1502,  1504,  1508,  1512,  1517,  1519,  1521,  1523,  1525,  1528,
     697    1530,  1534,  1538,  1540,  1543,  1545,  1549,  1551,  1553,  1555,
     698    1557,  1559,  1561,  1563,  1565,  1567,  1569,  1571,  1574,  1576,
     699    1578,  1580,  1583,  1584,  1587,  1590,  1592,  1597,  1598,  1600,
     700    1603,  1607,  1612,  1615,  1618,  1620,  1623,  1625,  1628,  1634,
     701    1640,  1648,  1655,  1657,  1660,  1663,  1667,  1669,  1672,  1675,
     702    1680,  1683,  1688,  1689,  1694,  1697,  1699,  1701,  1703,  1704,
     703    1707,  1713,  1719,  1733,  1735,  1737,  1741,  1745,  1748,  1752,
     704    1756,  1759,  1764,  1766,  1773,  1783,  1784,  1796,  1798,  1802,
     705    1806,  1810,  1812,  1814,  1820,  1823,  1829,  1830,  1832,  1834,
     706    1838,  1839,  1841,  1843,  1845,  1847,  1848,  1855,  1858,  1860,
     707    1863,  1868,  1871,  1875,  1879,  1883,  1888,  1894,  1900,  1906,
     708    1913,  1915,  1917,  1919,  1923,  1924,  1930,  1931,  1933,  1935,
     709    1938,  1945,  1947,  1951,  1952,  1954,  1959,  1961,  1963,  1965,
     710    1967,  1970,  1972,  1975,  1978,  1980,  1984,  1987,  1991,  1995,
     711    1998,  2003,  2008,  2012,  2021,  2025,  2028,  2030,  2033,  2040,
     712    2049,  2053,  2056,  2060,  2064,  2069,  2074,  2078,  2080,  2082,
     713    2084,  2089,  2096,  2100,  2103,  2107,  2111,  2116,  2121,  2125,
     714    2128,  2130,  2133,  2136,  2138,  2142,  2145,  2149,  2153,  2156,
     715    2161,  2166,  2170,  2177,  2186,  2190,  2193,  2195,  2198,  2201,
     716    2204,  2208,  2212,  2215,  2220,  2225,  2229,  2236,  2245,  2249,
     717    2252,  2254,  2257,  2260,  2262,  2264,  2267,  2271,  2275,  2278,
     718    2283,  2290,  2299,  2301,  2304,  2307,  2309,  2312,  2315,  2319,
     719    2323,  2325,  2330,  2335,  2339,  2345,  2354,  2358,  2361,  2365,
     720    2367,  2373,  2379,  2386,  2393,  2395,  2398,  2401,  2403,  2406,
     721    2409,  2413,  2417,  2419,  2424,  2429,  2433,  2439,  2448,  2452,
     722    2454,  2457,  2459,  2462,  2469,  2475,  2482,  2490,  2498,  2500,
     723    2503,  2506,  2508,  2511,  2514,  2518,  2522,  2524,  2529,  2534,
     724    2538,  2547,  2551,  2553,  2555,  2558,  2560,  2562,  2565,  2569,
     725    2572,  2576,  2579,  2583,  2587,  2590,  2595,  2599,  2602,  2606,
     726    2609,  2614,  2618,  2621,  2628,  2635,  2642,  2650,  2652,  2655,
     727    2657,  2659,  2661,  2664,  2668,  2671,  2675,  2678,  2682,  2686,
     728    2691,  2694,  2698,  2703,  2706,  2712,  2718,  2725,  2732,  2733,
     729    2735,  2736
    730730};
    731731
     
    735735     298,     0,    -1,    -1,    -1,    78,    -1,    79,    -1,    80,
    736736      -1,    71,    -1,    75,    -1,   139,    -1,    71,    -1,    75,
    737       -1,    71,    -1,    82,    -1,    83,    -1,    81,    -1,   140,
    738       81,    -1,    71,    -1,   139,    -1,   108,   167,   109,    -1,
    739      108,   171,   109,    -1,   141,    -1,   142,   110,   133,   162,
    740      134,   111,    -1,   142,   108,   143,   109,    -1,   142,   112,
    741      138,    -1,   142,   112,   110,   133,   145,   134,   111,    -1,
    742      142,    84,   138,    -1,   142,    84,   110,   133,   145,   134,
    743      111,    -1,   142,    85,    -1,   142,    86,    -1,   108,   271,
    744      109,   113,   275,   368,   114,    -1,   142,   113,   143,   114,
    745       -1,   144,    -1,   143,   115,   144,    -1,    -1,   162,    -1,
    746      138,   116,   162,    -1,   110,   133,   162,   134,   111,   116,
    747      162,    -1,   110,   133,   162,   115,   165,   134,   111,   116,
    748      162,    -1,   146,    -1,   145,   115,   146,    -1,   138,    -1,
    749      138,   112,   146,    -1,   138,   112,   110,   133,   145,   134,
    750      111,    -1,   138,    84,   146,    -1,   138,    84,   110,   133,
    751      145,   134,   111,    -1,   142,    -1,   135,    -1,   140,    -1,
    752       85,   147,    -1,    86,   147,    -1,    39,   149,    -1,   148,
    753      149,    -1,   117,   149,    -1,   118,   149,    -1,    36,   147,
    754       -1,    36,   108,   271,   109,    -1,    37,   108,   271,   115,
    755      138,   109,    -1,    75,    -1,    75,   108,   272,   109,    -1,
    756       75,   108,   144,   109,    -1,    65,   147,    -1,    65,   108,
    757      271,   109,    -1,    93,   138,    -1,   119,    -1,   120,    -1,
    758      121,    -1,   122,    -1,   147,    -1,   108,   271,   109,   149,
    759       -1,   108,   271,   109,   164,    -1,   149,    -1,   150,   118,
    760      149,    -1,   150,   123,   149,    -1,   150,   124,   149,    -1,
    761      150,    -1,   151,   120,   150,    -1,   151,   121,   150,    -1,
    762      151,    -1,   152,    87,   151,    -1,   152,    88,   151,    -1,
    763      152,    -1,   153,   125,   152,    -1,   153,   126,   152,    -1,
    764      153,    89,   152,    -1,   153,    90,   152,    -1,   153,    -1,
    765      154,    91,   153,    -1,   154,    92,   153,    -1,   154,    -1,
    766      155,   119,   154,    -1,   155,    -1,   156,   127,   155,    -1,
    767      156,    -1,   157,   128,   156,    -1,   157,    -1,   158,    93,
    768      157,    -1,   158,    -1,   159,    94,   158,    -1,   159,    -1,
    769      159,   129,   167,   116,   160,    -1,   159,   129,   116,   160,
    770       -1,   159,   129,   167,   116,   164,    -1,   160,    -1,   160,
    771       -1,   147,   130,   162,    -1,   147,   166,   162,    -1,   164,
    772      369,    -1,    -1,   162,    -1,   110,   111,    -1,   110,   133,
    773      162,   134,   111,    -1,   110,   133,   115,   165,   134,   111,
    774       -1,   110,   133,   162,   115,   165,   134,   111,    -1,   163,
    775       -1,   165,   115,   163,    -1,    96,    -1,    97,    -1,    98,
    776       -1,    99,    -1,   100,    -1,   101,    -1,   102,    -1,   103,
    777       -1,   104,    -1,   105,    -1,   162,    -1,   167,   115,   162,
    778       -1,    -1,   167,    -1,   170,    -1,   171,    -1,   175,    -1,
    779      176,    -1,   188,    -1,   190,    -1,   191,    -1,   196,    -1,
    780      127,   142,   113,   143,   114,   131,    -1,   138,   116,   308,
    781      169,    -1,   113,   114,    -1,   113,   133,   133,   207,   172,
    782      134,   114,    -1,   173,    -1,   172,   133,   173,    -1,   210,
    783       -1,    39,   210,    -1,   304,    -1,   169,   134,    -1,   169,
    784       -1,   174,   169,    -1,   168,   131,    -1,    40,   108,   167,
    785      109,   169,    -1,    40,   108,   167,   109,   169,    41,   169,
    786       -1,    42,   108,   167,   109,   181,    -1,    42,   108,   167,
    787      109,   113,   133,   203,   182,   114,    -1,    52,   108,   167,
    788      109,   181,    -1,    52,   108,   167,   109,   113,   133,   203,
    789      184,   114,    -1,   161,    -1,   161,    95,   161,    -1,   306,
    790       -1,   177,    -1,   178,   115,   177,    -1,    43,   178,   116,
    791       -1,    44,   116,    -1,   179,    -1,   180,   179,    -1,   180,
    792      169,    -1,    -1,   183,    -1,   180,   174,    -1,   183,   180,
    793      174,    -1,    -1,   185,    -1,   180,   187,    -1,   180,   174,
    794      186,    -1,   185,   180,   187,    -1,   185,   180,   174,   186,
    795       -1,    -1,   187,    -1,    55,    -1,    55,   131,    -1,    46,
    796      108,   167,   109,   169,    -1,    45,   169,    46,   108,   167,
    797      109,   131,    -1,    47,   108,   133,   189,   109,   169,    -1,
    798      168,   134,   131,   168,   131,   168,    -1,   210,   168,   131,
    799      168,    -1,    50,   138,   131,    -1,    50,   118,   167,   131,
    800       -1,    49,   131,    -1,    49,   138,   131,    -1,    48,   131,
    801       -1,    48,   138,   131,    -1,    51,   168,   131,    -1,    60,
    802      163,   131,    -1,    61,   163,   131,    -1,    61,   163,    62,
    803      162,   131,    -1,    56,   171,   192,    -1,    56,   171,   194,
    804       -1,    56,   171,   192,   194,    -1,   193,    -1,    57,   108,
    805       95,   109,   171,    -1,   193,    57,   108,    95,   109,   171,
    806       -1,    58,   108,    95,   109,   171,    -1,   193,    58,   108,
    807       95,   109,   171,    -1,    57,   108,   133,   133,   195,   134,
    808      109,   171,   134,    -1,   193,    57,   108,   133,   133,   195,
    809      134,   109,   171,   134,    -1,    58,   108,   133,   133,   195,
    810      134,   109,   171,   134,    -1,   193,    58,   108,   133,   133,
    811      195,   134,   109,   171,   134,    -1,    59,   171,    -1,   223,
    812       -1,   223,   305,    -1,   223,   353,    -1,   362,   138,    -1,
    813      362,    -1,    63,   197,   108,   140,   109,   131,    -1,    63,
    814      197,   108,   140,   116,   198,   109,   131,    -1,    63,   197,
    815      108,   140,   116,   198,   116,   198,   109,   131,    -1,    63,
    816      197,   108,   140,   116,   198,   116,   198,   116,   201,   109,
    817      131,    -1,    63,   197,    50,   108,   140,   116,   116,   198,
    818      116,   201,   116,   202,   109,   131,    -1,    -1,    11,    -1,
    819       -1,   199,    -1,   200,    -1,   199,   115,   200,    -1,   140,
    820      108,   161,   109,    -1,   110,   161,   111,   140,   108,   161,
    821      109,    -1,    -1,   140,    -1,   201,   115,   140,    -1,   138,
    822       -1,   202,   115,   138,    -1,   134,    -1,   204,    -1,   210,
    823       -1,   204,   133,   210,    -1,   134,    -1,   206,    -1,   220,
    824       -1,   206,   133,   220,    -1,    -1,   208,    -1,    28,   209,
    825      131,    -1,   208,    28,   209,   131,    -1,   270,    -1,   209,
    826      115,   270,    -1,   211,    -1,   220,    -1,   212,   134,   131,
    827       -1,   217,   134,   131,    -1,   214,   134,   131,    -1,   289,
    828      134,   131,    -1,   292,   134,   131,    -1,   213,   273,    -1,
    829      229,   213,   273,    -1,   212,   134,   115,   133,   268,   273,
    830       -1,   363,   268,   307,    -1,   366,   268,   307,    -1,   225,
    831      366,   268,   307,    -1,   215,    -1,   225,   215,    -1,   229,
    832      215,    -1,   229,   225,   215,    -1,   214,   134,   115,   133,
    833      268,    -1,   110,   111,   268,   108,   133,   256,   134,   109,
    834       -1,   366,   268,   108,   133,   256,   134,   109,    -1,   216,
    835      268,   108,   133,   256,   134,   109,    -1,   110,   133,   258,
    836      134,   111,    -1,   110,   133,   258,   134,   115,   133,   259,
    837      134,   111,    -1,     3,   213,    -1,     3,   215,    -1,   217,
    838      134,   115,   133,   138,    -1,     3,   223,   305,    -1,   218,
    839      134,   115,   133,   305,    -1,   225,     3,   223,   305,    -1,
    840      223,     3,   305,    -1,   223,     3,   225,   305,    -1,     3,
    841      138,   130,   162,    -1,   219,   134,   115,   133,   138,   130,
    842      162,    -1,   221,   134,   131,    -1,   218,   134,   131,    -1,
    843      219,   134,   131,    -1,   238,   134,   131,    -1,   222,   305,
    844      307,   273,    -1,   221,   115,   308,   305,   307,   273,    -1,
    845      234,    -1,   238,    -1,   240,    -1,   279,    -1,   235,    -1,
    846      239,    -1,   241,    -1,   280,    -1,    -1,   225,    -1,   226,
    847       -1,   225,   226,    -1,   227,    -1,   310,    -1,    10,    -1,
    848       12,    -1,    11,    -1,    14,    -1,    66,    -1,    -1,    13,
    849      108,   228,   282,   109,    -1,   230,    -1,   225,   230,    -1,
    850      229,   225,   230,    -1,   231,    -1,   230,   231,    -1,   232,
    851       -1,     5,    -1,     7,    -1,     4,    -1,     6,    -1,     8,
    852       -1,     9,    -1,    68,    -1,    70,    -1,    16,    -1,    21,
    853       -1,    20,    -1,    18,    -1,    19,    -1,    17,    -1,    22,
    854       -1,    23,    -1,    15,    -1,    24,    -1,    25,    -1,    26,
    855       -1,   235,    -1,   229,   235,    -1,   234,   231,    -1,   234,
    856      231,   225,    -1,   234,   231,   235,    -1,   236,    -1,   224,
    857      237,   224,    -1,   233,    -1,   225,   233,    -1,   236,   226,
    858       -1,   236,   233,    -1,    27,   108,   272,   109,    -1,    27,
    859      108,   167,   109,    -1,    77,   108,   272,   109,    -1,    77,
    860      108,   167,   109,    -1,   239,    -1,   229,   239,    -1,   238,
    861      231,    -1,   238,   231,   225,    -1,   242,    -1,   225,   242,
    862       -1,   239,   226,    -1,   241,    -1,   229,   241,    -1,   240,
    863      231,    -1,   240,   231,   225,    -1,    73,    -1,   225,    73,
    864       -1,   241,   226,    -1,   243,    -1,   253,    -1,   244,   113,
    865      245,   114,    -1,   244,   270,    -1,   244,   270,   113,   245,
    866      114,    -1,   244,   108,   288,   109,   113,   245,   114,    -1,
    867      244,   281,    -1,    30,   308,    -1,    31,   308,    -1,   246,
    868       -1,   245,   246,    -1,   247,   131,    -1,    39,   247,   131,
    869       -1,   248,   131,    -1,    39,   248,   131,    -1,   362,    -1,
    870      362,   270,    -1,   247,   115,   270,    -1,   247,   115,    -1,
    871      223,   249,    -1,   248,   115,   308,   249,    -1,    -1,   251,
    872       -1,   314,   250,    -1,   327,   250,    -1,   353,    -1,    -1,
    873      251,    -1,   116,   161,    -1,    29,   308,    -1,   252,   113,
    874      254,   368,   114,    -1,   252,   270,   113,   254,   368,   114,
    875       -1,   252,   270,    -1,   270,   255,    -1,   254,   115,   270,
    876      255,    -1,    -1,   130,   161,    -1,    -1,   257,    -1,   259,
    877       -1,   258,    -1,   258,   134,   115,   133,   259,    -1,   259,
    878      134,   115,   133,    95,    -1,   258,   134,   115,   133,    95,
    879       -1,   263,    -1,   259,   134,   115,   133,   263,    -1,   258,
    880      134,   115,   133,   263,    -1,   258,   134,   115,   133,   259,
    881      134,   115,   133,   263,    -1,   264,    -1,   259,   134,   115,
    882      133,   264,    -1,    -1,   261,    -1,   262,    -1,   262,   134,
    883      115,   133,    95,    -1,   266,    -1,   265,    -1,   262,   134,
    884      115,   133,   266,    -1,   262,   134,   115,   133,   265,    -1,
    885      265,    -1,   358,   268,   369,    -1,   366,   268,   369,    -1,
    886      225,   366,   268,   369,    -1,   215,    -1,   266,    -1,   358,
    887       -1,   366,    -1,   225,   366,    -1,   367,    -1,   222,   332,
    888      369,    -1,   222,   336,   369,    -1,   222,    -1,   222,   347,
    889       -1,   138,    -1,   267,   115,   138,    -1,   136,    -1,    73,
    890       -1,    74,    -1,   137,    -1,    73,    -1,    74,    -1,   138,
    891       -1,    73,    -1,    74,    -1,   362,    -1,   223,    -1,   223,
    892      353,    -1,   362,    -1,   367,    -1,   223,    -1,   223,   341,
    893       -1,    -1,   130,   274,    -1,   106,   274,    -1,   162,    -1,
    894      113,   275,   368,   114,    -1,    -1,   274,    -1,   276,   274,
    895       -1,   275,   115,   274,    -1,   275,   115,   276,   274,    -1,
    896      277,   116,    -1,   270,   116,    -1,   278,    -1,   277,   278,
    897       -1,    79,    -1,   112,   270,    -1,   110,   133,   162,   134,
    898      111,    -1,   110,   133,   306,   134,   111,    -1,   110,   133,
    899      161,    95,   161,   134,   111,    -1,   112,   110,   133,   145,
    900      134,   111,    -1,   280,    -1,   229,   280,    -1,   279,   231,
    901       -1,   279,   231,   225,    -1,   281,    -1,   225,   281,    -1,
    902      280,   226,    -1,    74,   108,   288,   109,    -1,   283,   369,
    903       -1,   282,   115,   283,   369,    -1,    -1,   285,   270,   284,
    904      286,    -1,   223,   332,    -1,    32,    -1,    34,    -1,    33,
    905       -1,    -1,   286,   287,    -1,   128,   270,   108,   288,   109,
    906       -1,   128,   113,   133,   294,   114,    -1,   128,   108,   133,
    907      282,   134,   109,   113,   133,   294,   114,   108,   288,   109,
    908       -1,   272,    -1,   162,    -1,   288,   115,   272,    -1,   288,
    909      115,   162,    -1,    32,   290,    -1,   230,    32,   290,    -1,
    910      289,   115,   290,    -1,   291,   286,    -1,   291,   286,   130,
    911      272,    -1,   270,    -1,   269,   108,   133,   282,   134,   109,
    912       -1,    35,   270,   108,   133,   282,   134,   109,   113,   114,
    913       -1,    -1,    35,   270,   108,   133,   282,   134,   109,   113,
    914      293,   294,   114,    -1,   295,    -1,   294,   133,   295,    -1,
    915      296,   134,   131,    -1,   297,   134,   131,    -1,   213,    -1,
    916      215,    -1,   296,   134,   115,   133,   268,    -1,   223,   305,
    917       -1,   297,   134,   115,   133,   305,    -1,    -1,   299,    -1,
    918      301,    -1,   299,   133,   301,    -1,    -1,   299,    -1,   210,
    919       -1,   303,    -1,   196,    -1,    -1,     5,    81,   302,   113,
    920      300,   114,    -1,    39,   301,    -1,   304,    -1,   319,   171,
    921       -1,   323,   133,   205,   171,    -1,   214,   171,    -1,   222,
    922      319,   171,    -1,   225,   319,   171,    -1,   229,   319,   171,
    923       -1,   229,   225,   319,   171,    -1,   222,   323,   133,   205,
    924      171,    -1,   225,   323,   133,   205,   171,    -1,   229,   323,
    925      133,   205,   171,    -1,   229,   225,   323,   133,   205,   171,
    926       -1,   314,    -1,   319,    -1,   327,    -1,   161,   122,   161,
    927       -1,    -1,    63,   108,   140,   109,   308,    -1,    -1,   309,
    928       -1,   310,    -1,   309,   310,    -1,    38,   108,   108,   311,
    929      109,   109,    -1,   312,    -1,   311,   115,   312,    -1,    -1,
    930      313,    -1,   313,   108,   168,   109,    -1,   268,    -1,   232,
    931       -1,   233,    -1,   226,    -1,   315,   308,    -1,   316,    -1,
    932      317,   308,    -1,   318,   308,    -1,   136,    -1,   108,   315,
    933      109,    -1,   118,   314,    -1,   118,   225,   314,    -1,   108,
    934      316,   109,    -1,   315,   345,    -1,   108,   316,   109,   345,
    935       -1,   108,   317,   109,   346,    -1,   108,   317,   109,    -1,
    936      108,   316,   109,   108,   133,   260,   134,   109,    -1,   108,
    937      318,   109,    -1,   320,   308,    -1,   321,    -1,   322,   308,
    938       -1,   315,   108,   133,   260,   134,   109,    -1,   108,   321,
    939      109,   108,   133,   260,   134,   109,    -1,   108,   320,   109,
    940       -1,   118,   319,    -1,   118,   225,   319,    -1,   108,   321,
    941      109,    -1,   108,   321,   109,   345,    -1,   108,   322,   109,
    942      346,    -1,   108,   322,   109,    -1,   324,    -1,   325,    -1,
    943      326,    -1,   315,   108,   267,   109,    -1,   108,   325,   109,
    944      108,   267,   109,    -1,   108,   324,   109,    -1,   118,   323,
    945       -1,   118,   225,   323,    -1,   108,   325,   109,    -1,   108,
    946      325,   109,   345,    -1,   108,   326,   109,   346,    -1,   108,
    947      326,   109,    -1,   328,   308,    -1,   329,    -1,   330,   308,
    948       -1,   331,   308,    -1,   337,    -1,   108,   328,   109,    -1,
    949      118,   327,    -1,   118,   225,   327,    -1,   108,   329,   109,
    950       -1,   328,   345,    -1,   108,   329,   109,   345,    -1,   108,
    951      330,   109,   346,    -1,   108,   330,   109,    -1,   328,   108,
    952      133,   260,   134,   109,    -1,   108,   329,   109,   108,   133,
    953      260,   134,   109,    -1,   108,   331,   109,    -1,   315,   308,
    954       -1,   333,    -1,   334,   308,    -1,   335,   308,    -1,   118,
    955      332,    -1,   118,   225,   332,    -1,   108,   333,   109,    -1,
    956      315,   351,    -1,   108,   333,   109,   345,    -1,   108,   334,
    957      109,   346,    -1,   108,   334,   109,    -1,   315,   108,   133,
    958      260,   134,   109,    -1,   108,   333,   109,   108,   133,   260,
    959      134,   109,    -1,   108,   335,   109,    -1,   337,   308,    -1,
    960      338,    -1,   339,   308,    -1,   340,   308,    -1,    73,    -1,
    961       74,    -1,   118,   336,    -1,   118,   225,   336,    -1,   108,
    962      338,   109,    -1,   337,   351,    -1,   108,   338,   109,   351,
    963       -1,   337,   108,   133,   260,   134,   109,    -1,   108,   338,
    964      109,   108,   133,   260,   134,   109,    -1,   342,    -1,   343,
    965      308,    -1,   344,   308,    -1,   118,    -1,   118,   225,    -1,
    966      118,   341,    -1,   118,   225,   341,    -1,   108,   342,   109,
    967       -1,   345,    -1,   108,   342,   109,   345,    -1,   108,   343,
    968      109,   346,    -1,   108,   343,   109,    -1,   108,   133,   260,
    969      134,   109,    -1,   108,   342,   109,   108,   133,   260,   134,
    970      109,    -1,   108,   344,   109,    -1,   110,   111,    -1,   110,
    971      111,   346,    -1,   346,    -1,   110,   133,   162,   134,   111,
    972       -1,   110,   133,   118,   134,   111,    -1,   346,   110,   133,
    973      162,   134,   111,    -1,   346,   110,   133,   118,   134,   111,
    974       -1,   348,    -1,   349,   308,    -1,   350,   308,    -1,   118,
    975       -1,   118,   225,    -1,   118,   347,    -1,   118,   225,   347,
    976       -1,   108,   348,   109,    -1,   351,    -1,   108,   348,   109,
    977      351,    -1,   108,   349,   109,   346,    -1,   108,   349,   109,
    978       -1,   108,   133,   260,   134,   109,    -1,   108,   348,   109,
    979      108,   133,   260,   134,   109,    -1,   108,   350,   109,    -1,
    980      352,    -1,   352,   346,    -1,   346,    -1,   110,   111,    -1,
    981      110,   133,   225,   118,   134,   111,    -1,   110,   133,   225,
    982      134,   111,    -1,   110,   133,   225,   162,   134,   111,    -1,
    983      110,   133,     7,   224,   162,   134,   111,    -1,   110,   133,
    984      225,     7,   162,   134,   111,    -1,   354,    -1,   355,   308,
    985       -1,   356,   308,    -1,   118,    -1,   118,   225,    -1,   118,
    986      353,    -1,   118,   225,   353,    -1,   108,   354,   109,    -1,
    987      345,    -1,   108,   354,   109,   345,    -1,   108,   355,   109,
    988      346,    -1,   108,   355,   109,    -1,   108,   354,   109,   108,
    989      133,   260,   134,   109,    -1,   108,   356,   109,    -1,   358,
    990       -1,   366,    -1,   225,   366,    -1,   359,    -1,   360,    -1,
    991      118,   223,    -1,   225,   118,   223,    -1,   118,   367,    -1,
    992      225,   118,   367,    -1,   118,   357,    -1,   225,   118,   357,
    993       -1,   110,   111,   223,    -1,   361,   223,    -1,   110,   111,
    994      346,   223,    -1,   361,   346,   223,    -1,   346,   223,    -1,
    995      110,   111,   359,    -1,   361,   359,    -1,   110,   111,   346,
    996      359,    -1,   361,   346,   359,    -1,   346,   359,    -1,   110,
    997      133,   225,   118,   134,   111,    -1,   110,   133,   225,   162,
    998      134,   111,    -1,   110,   133,   229,   162,   134,   111,    -1,
    999      110,   133,   229,   225,   162,   134,   111,    -1,   366,    -1,
    1000      225,   366,    -1,   363,    -1,   364,    -1,   365,    -1,   118,
    1001      223,    -1,   225,   118,   223,    -1,   118,   367,    -1,   225,
    1002      118,   367,    -1,   118,   362,    -1,   225,   118,   362,    -1,
    1003      110,   111,   223,    -1,   110,   111,   346,   223,    -1,   346,
    1004      223,    -1,   110,   111,   364,    -1,   110,   111,   346,   364,
    1005       -1,   346,   364,    -1,   110,   133,   259,   134,   111,    -1,
    1006      110,   111,   108,   256,   109,    -1,   366,   108,   133,   256,
    1007      134,   109,    -1,   216,   108,   133,   256,   134,   109,    -1,
    1008       -1,   115,    -1,    -1,   130,   162,    -1
     737      -1,    71,    -1,   139,    -1,    82,    -1,    83,    -1,    81,
     738      -1,   140,    81,    -1,    71,    -1,   139,    -1,   108,   167,
     739     109,    -1,   108,   171,   109,    -1,   141,    -1,   142,   110,
     740     133,   162,   134,   111,    -1,   142,   108,   143,   109,    -1,
     741     142,   112,   138,    -1,   142,   112,   110,   133,   145,   134,
     742     111,    -1,   142,    84,   138,    -1,   142,    84,   110,   133,
     743     145,   134,   111,    -1,   142,    85,    -1,   142,    86,    -1,
     744     108,   271,   109,   113,   275,   368,   114,    -1,   142,   113,
     745     143,   114,    -1,   144,    -1,   143,   115,   144,    -1,    -1,
     746     162,    -1,   138,   116,   162,    -1,   110,   133,   162,   134,
     747     111,   116,   162,    -1,   110,   133,   162,   115,   165,   134,
     748     111,   116,   162,    -1,   146,    -1,   145,   115,   146,    -1,
     749     138,    -1,   138,   112,   146,    -1,   138,   112,   110,   133,
     750     145,   134,   111,    -1,   138,    84,   146,    -1,   138,    84,
     751     110,   133,   145,   134,   111,    -1,   142,    -1,   135,    -1,
     752     140,    -1,    85,   147,    -1,    86,   147,    -1,    39,   149,
     753      -1,   148,   149,    -1,   117,   149,    -1,   118,   149,    -1,
     754      36,   147,    -1,    36,   108,   271,   109,    -1,    37,   108,
     755     271,   115,   138,   109,    -1,    75,    -1,    75,   108,   272,
     756     109,    -1,    75,   108,   144,   109,    -1,    65,   147,    -1,
     757      65,   108,   271,   109,    -1,    93,   138,    -1,   119,    -1,
     758     120,    -1,   121,    -1,   122,    -1,   147,    -1,   108,   271,
     759     109,   149,    -1,   108,   271,   109,   164,    -1,   149,    -1,
     760     150,   118,   149,    -1,   150,   123,   149,    -1,   150,   124,
     761     149,    -1,   150,    -1,   151,   120,   150,    -1,   151,   121,
     762     150,    -1,   151,    -1,   152,    87,   151,    -1,   152,    88,
     763     151,    -1,   152,    -1,   153,   125,   152,    -1,   153,   126,
     764     152,    -1,   153,    89,   152,    -1,   153,    90,   152,    -1,
     765     153,    -1,   154,    91,   153,    -1,   154,    92,   153,    -1,
     766     154,    -1,   155,   119,   154,    -1,   155,    -1,   156,   127,
     767     155,    -1,   156,    -1,   157,   128,   156,    -1,   157,    -1,
     768     158,    93,   157,    -1,   158,    -1,   159,    94,   158,    -1,
     769     159,    -1,   159,   129,   167,   116,   160,    -1,   159,   129,
     770     116,   160,    -1,   159,   129,   167,   116,   164,    -1,   160,
     771      -1,   160,    -1,   147,   130,   162,    -1,   147,   166,   162,
     772      -1,   164,   369,    -1,    -1,   162,    -1,   110,   111,    -1,
     773     110,   133,   162,   134,   111,    -1,   110,   133,   115,   165,
     774     134,   111,    -1,   110,   133,   162,   115,   165,   134,   111,
     775      -1,   163,    -1,   165,   115,   163,    -1,    96,    -1,    97,
     776      -1,    98,    -1,    99,    -1,   100,    -1,   101,    -1,   102,
     777      -1,   103,    -1,   104,    -1,   105,    -1,   162,    -1,   167,
     778     115,   162,    -1,    -1,   167,    -1,   170,    -1,   171,    -1,
     779     175,    -1,   176,    -1,   188,    -1,   190,    -1,   191,    -1,
     780     196,    -1,   127,   142,   113,   143,   114,   131,    -1,   138,
     781     116,   308,   169,    -1,   113,   114,    -1,   113,   133,   133,
     782     207,   172,   134,   114,    -1,   173,    -1,   172,   133,   173,
     783      -1,   210,    -1,    39,   210,    -1,   304,    -1,   169,   134,
     784      -1,   169,    -1,   174,   169,    -1,   168,   131,    -1,    40,
     785     108,   167,   109,   169,    -1,    40,   108,   167,   109,   169,
     786      41,   169,    -1,    42,   108,   167,   109,   181,    -1,    42,
     787     108,   167,   109,   113,   133,   203,   182,   114,    -1,    52,
     788     108,   167,   109,   181,    -1,    52,   108,   167,   109,   113,
     789     133,   203,   184,   114,    -1,   161,    -1,   161,    95,   161,
     790      -1,   306,    -1,   177,    -1,   178,   115,   177,    -1,    43,
     791     178,   116,    -1,    44,   116,    -1,   179,    -1,   180,   179,
     792      -1,   180,   169,    -1,    -1,   183,    -1,   180,   174,    -1,
     793     183,   180,   174,    -1,    -1,   185,    -1,   180,   187,    -1,
     794     180,   174,   186,    -1,   185,   180,   187,    -1,   185,   180,
     795     174,   186,    -1,    -1,   187,    -1,    55,    -1,    55,   131,
     796      -1,    46,   108,   167,   109,   169,    -1,    45,   169,    46,
     797     108,   167,   109,   131,    -1,    47,   108,   133,   189,   109,
     798     169,    -1,   168,   134,   131,   168,   131,   168,    -1,   210,
     799     168,   131,   168,    -1,    50,   138,   131,    -1,    50,   118,
     800     167,   131,    -1,    49,   131,    -1,    49,   138,   131,    -1,
     801      48,   131,    -1,    48,   138,   131,    -1,    51,   168,   131,
     802      -1,    60,   163,   131,    -1,    61,   163,   131,    -1,    61,
     803     163,    62,   162,   131,    -1,    56,   171,   192,    -1,    56,
     804     171,   194,    -1,    56,   171,   192,   194,    -1,   193,    -1,
     805      57,   108,    95,   109,   171,    -1,   193,    57,   108,    95,
     806     109,   171,    -1,    58,   108,    95,   109,   171,    -1,   193,
     807      58,   108,    95,   109,   171,    -1,    57,   108,   133,   133,
     808     195,   134,   109,   171,   134,    -1,   193,    57,   108,   133,
     809     133,   195,   134,   109,   171,   134,    -1,    58,   108,   133,
     810     133,   195,   134,   109,   171,   134,    -1,   193,    58,   108,
     811     133,   133,   195,   134,   109,   171,   134,    -1,    59,   171,
     812      -1,   223,    -1,   223,   305,    -1,   223,   353,    -1,   362,
     813     138,    -1,   362,    -1,    63,   197,   108,   140,   109,   131,
     814      -1,    63,   197,   108,   140,   116,   198,   109,   131,    -1,
     815      63,   197,   108,   140,   116,   198,   116,   198,   109,   131,
     816      -1,    63,   197,   108,   140,   116,   198,   116,   198,   116,
     817     201,   109,   131,    -1,    63,   197,    50,   108,   140,   116,
     818     116,   198,   116,   201,   116,   202,   109,   131,    -1,    -1,
     819      11,    -1,    -1,   199,    -1,   200,    -1,   199,   115,   200,
     820      -1,   140,   108,   161,   109,    -1,   110,   161,   111,   140,
     821     108,   161,   109,    -1,    -1,   140,    -1,   201,   115,   140,
     822      -1,   138,    -1,   202,   115,   138,    -1,   134,    -1,   204,
     823      -1,   210,    -1,   204,   133,   210,    -1,   134,    -1,   206,
     824      -1,   220,    -1,   206,   133,   220,    -1,    -1,   208,    -1,
     825      28,   209,   131,    -1,   208,    28,   209,   131,    -1,   270,
     826      -1,   209,   115,   270,    -1,   211,    -1,   220,    -1,   212,
     827     134,   131,    -1,   217,   134,   131,    -1,   214,   134,   131,
     828      -1,   289,   134,   131,    -1,   292,   134,   131,    -1,   213,
     829     273,    -1,   229,   213,   273,    -1,   212,   134,   115,   133,
     830     268,   273,    -1,   363,   268,   307,    -1,   366,   268,   307,
     831      -1,   225,   366,   268,   307,    -1,   215,    -1,   225,   215,
     832      -1,   229,   215,    -1,   229,   225,   215,    -1,   214,   134,
     833     115,   133,   268,    -1,   110,   111,   268,   108,   133,   256,
     834     134,   109,    -1,   366,   268,   108,   133,   256,   134,   109,
     835      -1,   216,   268,   108,   133,   256,   134,   109,    -1,   110,
     836     133,   258,   134,   111,    -1,   110,   133,   258,   134,   115,
     837     133,   259,   134,   111,    -1,     3,   213,    -1,     3,   215,
     838      -1,   217,   134,   115,   133,   138,    -1,     3,   223,   305,
     839      -1,   218,   134,   115,   133,   305,    -1,   225,     3,   223,
     840     305,    -1,   223,     3,   305,    -1,   223,     3,   225,   305,
     841      -1,     3,   138,   130,   162,    -1,   219,   134,   115,   133,
     842     138,   130,   162,    -1,   221,   134,   131,    -1,   218,   134,
     843     131,    -1,   219,   134,   131,    -1,   238,   134,   131,    -1,
     844     222,   305,   307,   273,    -1,   221,   115,   308,   305,   307,
     845     273,    -1,   234,    -1,   238,    -1,   240,    -1,   279,    -1,
     846     235,    -1,   239,    -1,   241,    -1,   280,    -1,    -1,   225,
     847      -1,   226,    -1,   225,   226,    -1,   227,    -1,   310,    -1,
     848      10,    -1,    12,    -1,    11,    -1,    14,    -1,    66,    -1,
     849      -1,    13,   108,   228,   282,   109,    -1,   230,    -1,   225,
     850     230,    -1,   229,   225,   230,    -1,   231,    -1,   230,   231,
     851      -1,   232,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
     852      -1,     8,    -1,     9,    -1,    68,    -1,    70,    -1,    16,
     853      -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,    17,
     854      -1,    22,    -1,    23,    -1,    15,    -1,    24,    -1,    25,
     855      -1,    26,    -1,   235,    -1,   229,   235,    -1,   234,   231,
     856      -1,   234,   231,   225,    -1,   234,   231,   235,    -1,   236,
     857      -1,   224,   237,   224,    -1,   233,    -1,   225,   233,    -1,
     858     236,   226,    -1,   236,   233,    -1,    27,   108,   272,   109,
     859      -1,    27,   108,   167,   109,    -1,    77,   108,   272,   109,
     860      -1,    77,   108,   167,   109,    -1,   239,    -1,   229,   239,
     861      -1,   238,   231,    -1,   238,   231,   225,    -1,   242,    -1,
     862     225,   242,    -1,   239,   226,    -1,   241,    -1,   229,   241,
     863      -1,   240,   231,    -1,   240,   231,   225,    -1,    73,    -1,
     864     225,    73,    -1,   241,   226,    -1,   243,    -1,   253,    -1,
     865     244,   113,   245,   114,    -1,   244,   270,    -1,   244,   270,
     866     113,   245,   114,    -1,   244,   108,   288,   109,   113,   245,
     867     114,    -1,   244,   281,    -1,    30,   308,    -1,    31,   308,
     868      -1,   246,    -1,   245,   246,    -1,   247,   131,    -1,    39,
     869     247,   131,    -1,   248,   131,    -1,    39,   248,   131,    -1,
     870     362,    -1,   362,   270,    -1,   247,   115,   270,    -1,   247,
     871     115,    -1,   223,   249,    -1,   248,   115,   308,   249,    -1,
     872      -1,   251,    -1,   314,   250,    -1,   327,   250,    -1,   353,
     873      -1,    -1,   251,    -1,   116,   161,    -1,    29,   308,    -1,
     874     252,   113,   254,   368,   114,    -1,   252,   270,   113,   254,
     875     368,   114,    -1,   252,   270,    -1,   270,   255,    -1,   254,
     876     115,   270,   255,    -1,    -1,   130,   161,    -1,    -1,   257,
     877      -1,   259,    -1,   258,    -1,   258,   134,   115,   133,   259,
     878      -1,   259,   134,   115,   133,    95,    -1,   258,   134,   115,
     879     133,    95,    -1,   263,    -1,   259,   134,   115,   133,   263,
     880      -1,   258,   134,   115,   133,   263,    -1,   258,   134,   115,
     881     133,   259,   134,   115,   133,   263,    -1,   264,    -1,   259,
     882     134,   115,   133,   264,    -1,    -1,   261,    -1,   262,    -1,
     883     262,   134,   115,   133,    95,    -1,   266,    -1,   265,    -1,
     884     262,   134,   115,   133,   266,    -1,   262,   134,   115,   133,
     885     265,    -1,   265,    -1,   358,   268,   369,    -1,   366,   268,
     886     369,    -1,   225,   366,   268,   369,    -1,   215,    -1,   266,
     887      -1,   358,    -1,   366,    -1,   225,   366,    -1,   367,    -1,
     888     222,   332,   369,    -1,   222,   336,   369,    -1,   222,    -1,
     889     222,   347,    -1,   138,    -1,   267,   115,   138,    -1,   136,
     890      -1,    73,    -1,    74,    -1,   137,    -1,    73,    -1,    74,
     891      -1,   138,    -1,    73,    -1,    74,    -1,   362,    -1,   223,
     892      -1,   223,   353,    -1,   362,    -1,   367,    -1,   223,    -1,
     893     223,   341,    -1,    -1,   130,   274,    -1,   106,   274,    -1,
     894     162,    -1,   113,   275,   368,   114,    -1,    -1,   274,    -1,
     895     276,   274,    -1,   275,   115,   274,    -1,   275,   115,   276,
     896     274,    -1,   277,   116,    -1,   270,   116,    -1,   278,    -1,
     897     277,   278,    -1,    79,    -1,   112,   270,    -1,   110,   133,
     898     162,   134,   111,    -1,   110,   133,   306,   134,   111,    -1,
     899     110,   133,   161,    95,   161,   134,   111,    -1,   112,   110,
     900     133,   145,   134,   111,    -1,   280,    -1,   229,   280,    -1,
     901     279,   231,    -1,   279,   231,   225,    -1,   281,    -1,   225,
     902     281,    -1,   280,   226,    -1,    74,   108,   288,   109,    -1,
     903     283,   369,    -1,   282,   115,   283,   369,    -1,    -1,   285,
     904     270,   284,   286,    -1,   223,   332,    -1,    32,    -1,    34,
     905      -1,    33,    -1,    -1,   286,   287,    -1,   128,   270,   108,
     906     288,   109,    -1,   128,   113,   133,   294,   114,    -1,   128,
     907     108,   133,   282,   134,   109,   113,   133,   294,   114,   108,
     908     288,   109,    -1,   272,    -1,   162,    -1,   288,   115,   272,
     909      -1,   288,   115,   162,    -1,    32,   290,    -1,   230,    32,
     910     290,    -1,   289,   115,   290,    -1,   291,   286,    -1,   291,
     911     286,   130,   272,    -1,   270,    -1,   269,   108,   133,   282,
     912     134,   109,    -1,    35,   270,   108,   133,   282,   134,   109,
     913     113,   114,    -1,    -1,    35,   270,   108,   133,   282,   134,
     914     109,   113,   293,   294,   114,    -1,   295,    -1,   294,   133,
     915     295,    -1,   296,   134,   131,    -1,   297,   134,   131,    -1,
     916     213,    -1,   215,    -1,   296,   134,   115,   133,   268,    -1,
     917     223,   305,    -1,   297,   134,   115,   133,   305,    -1,    -1,
     918     299,    -1,   301,    -1,   299,   133,   301,    -1,    -1,   299,
     919      -1,   210,    -1,   303,    -1,   196,    -1,    -1,     5,    81,
     920     302,   113,   300,   114,    -1,    39,   301,    -1,   304,    -1,
     921     319,   171,    -1,   323,   133,   205,   171,    -1,   214,   171,
     922      -1,   222,   319,   171,    -1,   225,   319,   171,    -1,   229,
     923     319,   171,    -1,   229,   225,   319,   171,    -1,   222,   323,
     924     133,   205,   171,    -1,   225,   323,   133,   205,   171,    -1,
     925     229,   323,   133,   205,   171,    -1,   229,   225,   323,   133,
     926     205,   171,    -1,   314,    -1,   319,    -1,   327,    -1,   161,
     927     122,   161,    -1,    -1,    63,   108,   140,   109,   308,    -1,
     928      -1,   309,    -1,   310,    -1,   309,   310,    -1,    38,   108,
     929     108,   311,   109,   109,    -1,   312,    -1,   311,   115,   312,
     930      -1,    -1,   313,    -1,   313,   108,   168,   109,    -1,   268,
     931      -1,   232,    -1,   233,    -1,   226,    -1,   315,   308,    -1,
     932     316,    -1,   317,   308,    -1,   318,   308,    -1,   136,    -1,
     933     108,   315,   109,    -1,   118,   314,    -1,   118,   225,   314,
     934      -1,   108,   316,   109,    -1,   315,   345,    -1,   108,   316,
     935     109,   345,    -1,   108,   317,   109,   346,    -1,   108,   317,
     936     109,    -1,   108,   316,   109,   108,   133,   260,   134,   109,
     937      -1,   108,   318,   109,    -1,   320,   308,    -1,   321,    -1,
     938     322,   308,    -1,   315,   108,   133,   260,   134,   109,    -1,
     939     108,   321,   109,   108,   133,   260,   134,   109,    -1,   108,
     940     320,   109,    -1,   118,   319,    -1,   118,   225,   319,    -1,
     941     108,   321,   109,    -1,   108,   321,   109,   345,    -1,   108,
     942     322,   109,   346,    -1,   108,   322,   109,    -1,   324,    -1,
     943     325,    -1,   326,    -1,   315,   108,   267,   109,    -1,   108,
     944     325,   109,   108,   267,   109,    -1,   108,   324,   109,    -1,
     945     118,   323,    -1,   118,   225,   323,    -1,   108,   325,   109,
     946      -1,   108,   325,   109,   345,    -1,   108,   326,   109,   346,
     947      -1,   108,   326,   109,    -1,   328,   308,    -1,   329,    -1,
     948     330,   308,    -1,   331,   308,    -1,   337,    -1,   108,   328,
     949     109,    -1,   118,   327,    -1,   118,   225,   327,    -1,   108,
     950     329,   109,    -1,   328,   345,    -1,   108,   329,   109,   345,
     951      -1,   108,   330,   109,   346,    -1,   108,   330,   109,    -1,
     952     328,   108,   133,   260,   134,   109,    -1,   108,   329,   109,
     953     108,   133,   260,   134,   109,    -1,   108,   331,   109,    -1,
     954     315,   308,    -1,   333,    -1,   334,   308,    -1,   335,   308,
     955      -1,   118,   332,    -1,   118,   225,   332,    -1,   108,   333,
     956     109,    -1,   315,   351,    -1,   108,   333,   109,   345,    -1,
     957     108,   334,   109,   346,    -1,   108,   334,   109,    -1,   315,
     958     108,   133,   260,   134,   109,    -1,   108,   333,   109,   108,
     959     133,   260,   134,   109,    -1,   108,   335,   109,    -1,   337,
     960     308,    -1,   338,    -1,   339,   308,    -1,   340,   308,    -1,
     961      73,    -1,    74,    -1,   118,   336,    -1,   118,   225,   336,
     962      -1,   108,   338,   109,    -1,   337,   351,    -1,   108,   338,
     963     109,   351,    -1,   337,   108,   133,   260,   134,   109,    -1,
     964     108,   338,   109,   108,   133,   260,   134,   109,    -1,   342,
     965      -1,   343,   308,    -1,   344,   308,    -1,   118,    -1,   118,
     966     225,    -1,   118,   341,    -1,   118,   225,   341,    -1,   108,
     967     342,   109,    -1,   345,    -1,   108,   342,   109,   345,    -1,
     968     108,   343,   109,   346,    -1,   108,   343,   109,    -1,   108,
     969     133,   260,   134,   109,    -1,   108,   342,   109,   108,   133,
     970     260,   134,   109,    -1,   108,   344,   109,    -1,   110,   111,
     971      -1,   110,   111,   346,    -1,   346,    -1,   110,   133,   162,
     972     134,   111,    -1,   110,   133,   118,   134,   111,    -1,   346,
     973     110,   133,   162,   134,   111,    -1,   346,   110,   133,   118,
     974     134,   111,    -1,   348,    -1,   349,   308,    -1,   350,   308,
     975      -1,   118,    -1,   118,   225,    -1,   118,   347,    -1,   118,
     976     225,   347,    -1,   108,   348,   109,    -1,   351,    -1,   108,
     977     348,   109,   351,    -1,   108,   349,   109,   346,    -1,   108,
     978     349,   109,    -1,   108,   133,   260,   134,   109,    -1,   108,
     979     348,   109,   108,   133,   260,   134,   109,    -1,   108,   350,
     980     109,    -1,   352,    -1,   352,   346,    -1,   346,    -1,   110,
     981     111,    -1,   110,   133,   225,   118,   134,   111,    -1,   110,
     982     133,   225,   134,   111,    -1,   110,   133,   225,   162,   134,
     983     111,    -1,   110,   133,     7,   224,   162,   134,   111,    -1,
     984     110,   133,   225,     7,   162,   134,   111,    -1,   354,    -1,
     985     355,   308,    -1,   356,   308,    -1,   118,    -1,   118,   225,
     986      -1,   118,   353,    -1,   118,   225,   353,    -1,   108,   354,
     987     109,    -1,   345,    -1,   108,   354,   109,   345,    -1,   108,
     988     355,   109,   346,    -1,   108,   355,   109,    -1,   108,   354,
     989     109,   108,   133,   260,   134,   109,    -1,   108,   356,   109,
     990      -1,   358,    -1,   366,    -1,   225,   366,    -1,   359,    -1,
     991     360,    -1,   118,   223,    -1,   225,   118,   223,    -1,   118,
     992     367,    -1,   225,   118,   367,    -1,   118,   357,    -1,   225,
     993     118,   357,    -1,   110,   111,   223,    -1,   361,   223,    -1,
     994     110,   111,   346,   223,    -1,   361,   346,   223,    -1,   346,
     995     223,    -1,   110,   111,   359,    -1,   361,   359,    -1,   110,
     996     111,   346,   359,    -1,   361,   346,   359,    -1,   346,   359,
     997      -1,   110,   133,   225,   118,   134,   111,    -1,   110,   133,
     998     225,   162,   134,   111,    -1,   110,   133,   229,   162,   134,
     999     111,    -1,   110,   133,   229,   225,   162,   134,   111,    -1,
     1000     366,    -1,   225,   366,    -1,   363,    -1,   364,    -1,   365,
     1001      -1,   118,   223,    -1,   225,   118,   223,    -1,   118,   367,
     1002      -1,   225,   118,   367,    -1,   118,   362,    -1,   225,   118,
     1003     362,    -1,   110,   111,   223,    -1,   110,   111,   346,   223,
     1004      -1,   346,   223,    -1,   110,   111,   364,    -1,   110,   111,
     1005     346,   364,    -1,   346,   364,    -1,   110,   133,   259,   134,
     1006     111,    -1,   110,   111,   108,   256,   109,    -1,   366,   108,
     1007     133,   256,   134,   109,    -1,   216,   108,   133,   256,   134,
     1008     109,    -1,    -1,   115,    -1,    -1,   130,   162,    -1
    10091009};
    10101010
     
    10131013{
    10141014       0,   290,   290,   296,   305,   306,   307,   311,   312,   313,
    1015      317,   318,   323,   327,   328,   332,   333,   339,   341,   343,
    1016      345,   350,   351,   357,   359,   361,   362,   364,   365,   367,
    1017      369,   371,   379,   380,   386,   387,   388,   393,   395,   400,
    1018      401,   405,   407,   409,   411,   413,   418,   421,   423,   425,
    1019      427,   429,   431,   433,   435,   441,   443,   445,   447,   449,
    1020      451,   453,   455,   457,   462,   463,   464,   465,   469,   470,
    1021      472,   477,   478,   480,   482,   487,   488,   490,   495,   496,
    1022      498,   503,   504,   506,   508,   510,   515,   516,   518,   523,
    1023      524,   529,   530,   535,   536,   541,   542,   547,   548,   553,
    1024      554,   556,   558,   563,   568,   569,   571,   573,   579,   580,
    1025      586,   588,   590,   592,   597,   598,   603,   604,   605,   606,
    1026      607,   608,   609,   610,   611,   612,   616,   617,   623,   624,
    1027      630,   631,   632,   633,   634,   635,   636,   637,   638,   647,
    1028      654,   656,   666,   667,   672,   674,   676,   678,   682,   683,
    1029      688,   693,   696,   698,   700,   705,   707,   715,   716,   718,
    1030      722,   723,   728,   729,   734,   735,   739,   744,   745,   749,
    1031      751,   757,   758,   762,   764,   766,   768,   774,   775,   779,
    1032      780,   784,   786,   788,   793,   795,   800,   802,   806,   809,
    1033      813,   816,   820,   822,   826,   828,   835,   837,   839,   848,
    1034      850,   852,   854,   856,   861,   863,   865,   867,   872,   885,
    1035      886,   891,   893,   898,   902,   904,   906,   908,   910,   916,
    1036      917,   923,   924,   928,   929,   934,   936,   942,   943,   945,
    1037      950,   952,   959,   961,   965,   966,   971,   973,   977,   978,
    1038      982,   984,   988,   989,   993,   994,   998,   999,  1014,  1015,
    1039     1016,  1017,  1018,  1022,  1027,  1034,  1044,  1049,  1054,  1062,
    1040     1067,  1072,  1077,  1082,  1090,  1112,  1117,  1124,  1126,  1133,
    1041     1138,  1143,  1154,  1159,  1164,  1169,  1174,  1183,  1188,  1196,
    1042     1197,  1198,  1199,  1205,  1210,  1218,  1219,  1220,  1221,  1225,
    1043     1226,  1227,  1228,  1233,  1234,  1243,  1244,  1249,  1250,  1255,
    1044     1257,  1259,  1261,  1263,  1266,  1265,  1277,  1278,  1280,  1290,
    1045     1291,  1296,  1300,  1302,  1304,  1306,  1308,  1310,  1312,  1314,
    1046     1319,  1321,  1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,
    1047     1339,  1341,  1347,  1348,  1350,  1352,  1354,  1359,  1360,  1366,
    1048     1367,  1369,  1371,  1376,  1378,  1380,  1382,  1387,  1388,  1390,
    1049     1392,  1397,  1398,  1400,  1405,  1406,  1408,  1410,  1415,  1417,
    1050     1419,  1424,  1425,  1429,  1431,  1433,  1435,  1437,  1442,  1444,
    1051     1449,  1451,  1456,  1457,  1459,  1460,  1465,  1466,  1468,  1470,
    1052     1475,  1477,  1483,  1484,  1486,  1489,  1492,  1497,  1498,  1503,
    1053     1508,  1512,  1514,  1516,  1521,  1523,  1529,  1530,  1538,  1539,
    1054     1543,  1544,  1545,  1547,  1549,  1556,  1557,  1559,  1561,  1566,
    1055     1567,  1573,  1574,  1578,  1579,  1584,  1585,  1586,  1588,  1596,
    1056     1597,  1599,  1602,  1604,  1608,  1609,  1610,  1612,  1614,  1618,
    1057     1623,  1631,  1632,  1641,  1643,  1648,  1649,  1650,  1654,  1655,
    1058     1656,  1660,  1661,  1662,  1666,  1667,  1668,  1673,  1674,  1675,
    1059     1676,  1682,  1683,  1685,  1690,  1691,  1696,  1697,  1698,  1699,
    1060     1700,  1715,  1716,  1721,  1722,  1730,  1732,  1734,  1737,  1739,
    1061     1741,  1764,  1765,  1767,  1769,  1774,  1775,  1777,  1782,  1787,
    1062     1788,  1794,  1793,  1797,  1801,  1803,  1805,  1811,  1812,  1817,
    1063     1822,  1824,  1829,  1831,  1832,  1834,  1839,  1841,  1843,  1848,
    1064     1850,  1855,  1860,  1868,  1874,  1873,  1887,  1888,  1893,  1894,
    1065     1898,  1903,  1908,  1916,  1921,  1932,  1933,  1944,  1945,  1951,
    1066     1952,  1956,  1957,  1958,  1961,  1960,  1971,  1976,  1981,  1987,
    1067     1996,  2002,  2008,  2014,  2020,  2028,  2034,  2042,  2048,  2057,
    1068     2058,  2059,  2063,  2067,  2069,  2074,  2075,  2079,  2080,  2085,
    1069     2091,  2092,  2095,  2097,  2098,  2102,  2103,  2104,  2105,  2139,
    1070     2141,  2142,  2144,  2149,  2154,  2159,  2161,  2163,  2168,  2170,
    1071     2172,  2174,  2179,  2181,  2191,  2193,  2194,  2199,  2201,  2203,
    1072     2208,  2210,  2212,  2217,  2219,  2221,  2230,  2231,  2232,  2236,
    1073     2238,  2240,  2245,  2247,  2249,  2254,  2256,  2258,  2273,  2275,
    1074     2276,  2278,  2283,  2284,  2289,  2291,  2293,  2298,  2300,  2302,
    1075     2304,  2309,  2311,  2313,  2323,  2325,  2326,  2328,  2333,  2335,
    1076     2337,  2342,  2344,  2346,  2348,  2353,  2355,  2357,  2388,  2390,
    1077     2391,  2393,  2398,  2403,  2411,  2413,  2415,  2420,  2422,  2427,
    1078     2429,  2443,  2444,  2446,  2451,  2453,  2455,  2457,  2459,  2464,
    1079     2465,  2467,  2469,  2474,  2476,  2478,  2484,  2486,  2488,  2492,
    1080     2494,  2496,  2498,  2512,  2513,  2515,  2520,  2522,  2524,  2526,
    1081     2528,  2533,  2534,  2536,  2538,  2543,  2545,  2547,  2553,  2554,
    1082     2556,  2565,  2568,  2570,  2573,  2575,  2577,  2590,  2591,  2593,
    1083     2598,  2600,  2602,  2604,  2606,  2611,  2612,  2614,  2616,  2621,
    1084     2623,  2631,  2632,  2633,  2638,  2639,  2643,  2645,  2647,  2649,
    1085     2651,  2653,  2660,  2662,  2664,  2666,  2668,  2670,  2672,  2674,
    1086     2676,  2678,  2683,  2685,  2687,  2692,  2718,  2719,  2721,  2725,
    1087     2726,  2730,  2732,  2734,  2736,  2738,  2740,  2747,  2749,  2751,
    1088     2753,  2755,  2757,  2762,  2767,  2769,  2771,  2789,  2791,  2796,
    1089     2797
     1015     317,   318,   322,   323,   327,   328,   332,   333,   339,   341,
     1016     343,   345,   350,   351,   357,   361,   363,   364,   366,   367,
     1017     369,   371,   373,   381,   382,   388,   389,   390,   395,   397,
     1018     402,   403,   407,   411,   413,   415,   417,   422,   425,   427,
     1019     429,   431,   433,   435,   437,   439,   445,   447,   449,   451,
     1020     453,   455,   457,   459,   461,   466,   467,   468,   469,   473,
     1021     474,   476,   481,   482,   484,   486,   491,   492,   494,   499,
     1022     500,   502,   507,   508,   510,   512,   514,   519,   520,   522,
     1023     527,   528,   533,   534,   539,   540,   545,   546,   551,   552,
     1024     557,   558,   560,   562,   567,   572,   573,   575,   577,   583,
     1025     584,   590,   592,   594,   596,   601,   602,   607,   608,   609,
     1026     610,   611,   612,   613,   614,   615,   616,   620,   621,   627,
     1027     628,   634,   635,   636,   637,   638,   639,   640,   641,   642,
     1028     651,   658,   660,   670,   671,   676,   678,   680,   682,   686,
     1029     687,   692,   697,   700,   702,   704,   709,   711,   719,   720,
     1030     722,   726,   727,   732,   733,   738,   739,   743,   748,   749,
     1031     753,   755,   761,   762,   766,   768,   770,   772,   778,   779,
     1032     783,   784,   788,   790,   792,   797,   799,   804,   806,   810,
     1033     813,   817,   820,   824,   826,   830,   832,   839,   841,   843,
     1034     852,   854,   856,   858,   860,   865,   867,   869,   871,   876,
     1035     889,   890,   895,   897,   902,   906,   908,   910,   912,   914,
     1036     920,   921,   927,   928,   932,   933,   938,   940,   946,   947,
     1037     949,   954,   956,   963,   965,   969,   970,   975,   977,   981,
     1038     982,   986,   988,   992,   993,   997,   998,  1002,  1003,  1018,
     1039    1019,  1020,  1021,  1022,  1026,  1031,  1038,  1048,  1053,  1058,
     1040    1066,  1071,  1076,  1081,  1086,  1094,  1116,  1121,  1128,  1130,
     1041    1137,  1142,  1147,  1158,  1163,  1168,  1173,  1178,  1187,  1192,
     1042    1200,  1201,  1202,  1203,  1209,  1214,  1222,  1223,  1224,  1225,
     1043    1229,  1230,  1231,  1232,  1237,  1238,  1247,  1248,  1253,  1254,
     1044    1259,  1261,  1263,  1265,  1267,  1270,  1269,  1281,  1282,  1284,
     1045    1294,  1295,  1300,  1304,  1306,  1308,  1310,  1312,  1314,  1316,
     1046    1318,  1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,
     1047    1341,  1343,  1345,  1351,  1352,  1354,  1356,  1358,  1363,  1364,
     1048    1370,  1371,  1373,  1375,  1380,  1382,  1384,  1386,  1391,  1392,
     1049    1394,  1396,  1401,  1402,  1404,  1409,  1410,  1412,  1414,  1419,
     1050    1421,  1423,  1428,  1429,  1433,  1435,  1437,  1439,  1441,  1446,
     1051    1448,  1453,  1455,  1460,  1461,  1463,  1464,  1469,  1470,  1472,
     1052    1474,  1479,  1481,  1487,  1488,  1490,  1493,  1496,  1501,  1502,
     1053    1507,  1512,  1516,  1518,  1520,  1525,  1527,  1533,  1534,  1542,
     1054    1543,  1547,  1548,  1549,  1551,  1553,  1560,  1561,  1563,  1565,
     1055    1570,  1571,  1577,  1578,  1582,  1583,  1588,  1589,  1590,  1592,
     1056    1600,  1601,  1603,  1606,  1608,  1612,  1613,  1614,  1616,  1618,
     1057    1622,  1627,  1635,  1636,  1645,  1647,  1652,  1653,  1654,  1658,
     1058    1659,  1660,  1664,  1665,  1666,  1670,  1671,  1672,  1677,  1678,
     1059    1679,  1680,  1686,  1687,  1689,  1694,  1695,  1700,  1701,  1702,
     1060    1703,  1704,  1719,  1720,  1725,  1726,  1734,  1736,  1738,  1741,
     1061    1743,  1745,  1768,  1769,  1771,  1773,  1778,  1779,  1781,  1786,
     1062    1791,  1792,  1798,  1797,  1801,  1805,  1807,  1809,  1815,  1816,
     1063    1821,  1826,  1828,  1833,  1835,  1836,  1838,  1843,  1845,  1847,
     1064    1852,  1854,  1859,  1864,  1872,  1878,  1877,  1891,  1892,  1897,
     1065    1898,  1902,  1907,  1912,  1920,  1925,  1936,  1937,  1948,  1949,
     1066    1955,  1956,  1960,  1961,  1962,  1965,  1964,  1975,  1980,  1985,
     1067    1991,  2000,  2006,  2012,  2018,  2024,  2032,  2038,  2046,  2052,
     1068    2061,  2062,  2063,  2067,  2071,  2073,  2078,  2079,  2083,  2084,
     1069    2089,  2095,  2096,  2099,  2101,  2102,  2106,  2107,  2108,  2109,
     1070    2143,  2145,  2146,  2148,  2153,  2158,  2163,  2165,  2167,  2172,
     1071    2174,  2176,  2178,  2183,  2185,  2195,  2197,  2198,  2203,  2205,
     1072    2207,  2212,  2214,  2216,  2221,  2223,  2225,  2234,  2235,  2236,
     1073    2240,  2242,  2244,  2249,  2251,  2253,  2258,  2260,  2262,  2277,
     1074    2279,  2280,  2282,  2287,  2288,  2293,  2295,  2297,  2302,  2304,
     1075    2306,  2308,  2313,  2315,  2317,  2327,  2329,  2330,  2332,  2337,
     1076    2339,  2341,  2346,  2348,  2350,  2352,  2357,  2359,  2361,  2392,
     1077    2394,  2395,  2397,  2402,  2407,  2415,  2417,  2419,  2424,  2426,
     1078    2431,  2433,  2447,  2448,  2450,  2455,  2457,  2459,  2461,  2463,
     1079    2468,  2469,  2471,  2473,  2478,  2480,  2482,  2488,  2490,  2492,
     1080    2496,  2498,  2500,  2502,  2516,  2517,  2519,  2524,  2526,  2528,
     1081    2530,  2532,  2537,  2538,  2540,  2542,  2547,  2549,  2551,  2557,
     1082    2558,  2560,  2569,  2572,  2574,  2577,  2579,  2581,  2594,  2595,
     1083    2597,  2602,  2604,  2606,  2608,  2610,  2615,  2616,  2618,  2620,
     1084    2625,  2627,  2635,  2636,  2637,  2642,  2643,  2647,  2649,  2651,
     1085    2653,  2655,  2657,  2664,  2666,  2668,  2670,  2672,  2674,  2676,
     1086    2678,  2680,  2682,  2687,  2689,  2691,  2696,  2722,  2723,  2725,
     1087    2729,  2730,  2734,  2736,  2738,  2740,  2742,  2744,  2751,  2753,
     1088    2755,  2757,  2759,  2761,  2766,  2771,  2773,  2775,  2793,  2795,
     1089    2800,  2801
    10901090};
    10911091#endif
     
    12301230{
    12311231       0,   132,   133,   134,   135,   135,   135,   136,   136,   136,
    1232      137,   137,   138,   139,   139,   140,   140,   141,   141,   141,
    1233      141,   142,   142,   142,   142,   142,   142,   142,   142,   142,
    1234      142,   142,   143,   143,   144,   144,   144,   144,   144,   145,
    1235      145,   146,   146,   146,   146,   146,   147,   147,   147,   147,
     1232     137,   137,   138,   138,   139,   139,   140,   140,   141,   141,
     1233     141,   141,   142,   142,   142,   142,   142,   142,   142,   142,
     1234     142,   142,   142,   143,   143,   144,   144,   144,   144,   144,
     1235     145,   145,   146,   146,   146,   146,   146,   147,   147,   147,
    12361236     147,   147,   147,   147,   147,   147,   147,   147,   147,   147,
    1237      147,   147,   147,   147,   148,   148,   148,   148,   149,   149,
    1238      149,   150,   150,   150,   150,   151,   151,   151,   152,   152,
    1239      152,   153,   153,   153,   153,   153,   154,   154,   154,   155,
    1240      155,   156,   156,   157,   157,   158,   158,   159,   159,   160,
    1241      160,   160,   160,   161,   162,   162,   162,   162,   163,   163,
    1242      164,   164,   164,   164,   165,   165,   166,   166,   166,   166,
    1243      166,   166,   166,   166,   166,   166,   167,   167,   168,   168,
    1244      169,   169,   169,   169,   169,   169,   169,   169,   169,   170,
    1245      171,   171,   172,   172,   173,   173,   173,   173,   174,   174,
    1246      175,   176,   176,   176,   176,   176,   176,   177,   177,   177,
    1247      178,   178,   179,   179,   180,   180,   181,   182,   182,   183,
    1248      183,   184,   184,   185,   185,   185,   185,   186,   186,   187,
    1249      187,   188,   188,   188,   189,   189,   190,   190,   190,   190,
    1250      190,   190,   190,   190,   190,   190,   191,   191,   191,   192,
    1251      192,   192,   192,   192,   193,   193,   193,   193,   194,   195,
    1252      195,   195,   195,   195,   196,   196,   196,   196,   196,   197,
    1253      197,   198,   198,   199,   199,   200,   200,   201,   201,   201,
    1254      202,   202,   203,   203,   204,   204,   205,   205,   206,   206,
    1255      207,   207,   208,   208,   209,   209,   210,   210,   211,   211,
    1256      211,   211,   211,   212,   212,   212,   213,   213,   213,   214,
    1257      214,   214,   214,   214,   215,   215,   215,   216,   216,   217,
    1258      217,   217,   218,   218,   218,   218,   218,   219,   219,   220,
    1259      220,   220,   220,   221,   221,   222,   222,   222,   222,   223,
    1260      223,   223,   223,   224,   224,   225,   225,   226,   226,   227,
    1261      227,   227,   227,   227,   228,   227,   229,   229,   229,   230,
    1262      230,   231,   232,   232,   232,   232,   232,   232,   232,   232,
    1263      233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
    1264      233,   233,   234,   234,   234,   234,   234,   235,   235,   236,
    1265      236,   236,   236,   237,   237,   237,   237,   238,   238,   238,
    1266      238,   239,   239,   239,   240,   240,   240,   240,   241,   241,
    1267      241,   242,   242,   243,   243,   243,   243,   243,   244,   244,
    1268      245,   245,   246,   246,   246,   246,   247,   247,   247,   247,
    1269      248,   248,   249,   249,   249,   249,   249,   250,   250,   251,
    1270      252,   253,   253,   253,   254,   254,   255,   255,   256,   256,
    1271      257,   257,   257,   257,   257,   258,   258,   258,   258,   259,
    1272      259,   260,   260,   261,   261,   262,   262,   262,   262,   263,
    1273      263,   263,   263,   263,   264,   264,   264,   264,   264,   265,
    1274      265,   266,   266,   267,   267,   268,   268,   268,   269,   269,
    1275      269,   270,   270,   270,   271,   271,   271,   272,   272,   272,
    1276      272,   273,   273,   273,   274,   274,   275,   275,   275,   275,
    1277      275,   276,   276,   277,   277,   278,   278,   278,   278,   278,
    1278      278,   279,   279,   279,   279,   280,   280,   280,   281,   282,
    1279      282,   284,   283,   283,   285,   285,   285,   286,   286,   287,
    1280      287,   287,   288,   288,   288,   288,   289,   289,   289,   290,
    1281      290,   291,   291,   292,   293,   292,   294,   294,   295,   295,
    1282      296,   296,   296,   297,   297,   298,   298,   299,   299,   300,
    1283      300,   301,   301,   301,   302,   301,   301,   303,   303,   303,
    1284      304,   304,   304,   304,   304,   304,   304,   304,   304,   305,
    1285      305,   305,   306,   307,   307,   308,   308,   309,   309,   310,
    1286      311,   311,   312,   312,   312,   313,   313,   313,   313,   314,
    1287      314,   314,   314,   315,   315,   316,   316,   316,   317,   317,
    1288      317,   317,   318,   318,   319,   319,   319,   320,   320,   320,
    1289      321,   321,   321,   322,   322,   322,   323,   323,   323,   324,
    1290      324,   324,   325,   325,   325,   326,   326,   326,   327,   327,
    1291      327,   327,   328,   328,   329,   329,   329,   330,   330,   330,
    1292      330,   331,   331,   331,   332,   332,   332,   332,   333,   333,
    1293      333,   334,   334,   334,   334,   335,   335,   335,   336,   336,
    1294      336,   336,   337,   337,   338,   338,   338,   339,   339,   340,
    1295      340,   341,   341,   341,   342,   342,   342,   342,   342,   343,
    1296      343,   343,   343,   344,   344,   344,   345,   345,   345,   346,
    1297      346,   346,   346,   347,   347,   347,   348,   348,   348,   348,
    1298      348,   349,   349,   349,   349,   350,   350,   350,   351,   351,
    1299      351,   352,   352,   352,   352,   352,   352,   353,   353,   353,
    1300      354,   354,   354,   354,   354,   355,   355,   355,   355,   356,
    1301      356,   357,   357,   357,   358,   358,   359,   359,   359,   359,
    1302      359,   359,   360,   360,   360,   360,   360,   360,   360,   360,
    1303      360,   360,   361,   361,   361,   361,   362,   362,   362,   363,
    1304      363,   364,   364,   364,   364,   364,   364,   365,   365,   365,
    1305      365,   365,   365,   366,   367,   367,   367,   368,   368,   369,
    1306      369
     1237     147,   147,   147,   147,   147,   148,   148,   148,   148,   149,
     1238     149,   149,   150,   150,   150,   150,   151,   151,   151,   152,
     1239     152,   152,   153,   153,   153,   153,   153,   154,   154,   154,
     1240     155,   155,   156,   156,   157,   157,   158,   158,   159,   159,
     1241     160,   160,   160,   160,   161,   162,   162,   162,   162,   163,
     1242     163,   164,   164,   164,   164,   165,   165,   166,   166,   166,
     1243     166,   166,   166,   166,   166,   166,   166,   167,   167,   168,
     1244     168,   169,   169,   169,   169,   169,   169,   169,   169,   169,
     1245     170,   171,   171,   172,   172,   173,   173,   173,   173,   174,
     1246     174,   175,   176,   176,   176,   176,   176,   176,   177,   177,
     1247     177,   178,   178,   179,   179,   180,   180,   181,   182,   182,
     1248     183,   183,   184,   184,   185,   185,   185,   185,   186,   186,
     1249     187,   187,   188,   188,   188,   189,   189,   190,   190,   190,
     1250     190,   190,   190,   190,   190,   190,   190,   191,   191,   191,
     1251     192,   192,   192,   192,   192,   193,   193,   193,   193,   194,
     1252     195,   195,   195,   195,   195,   196,   196,   196,   196,   196,
     1253     197,   197,   198,   198,   199,   199,   200,   200,   201,   201,
     1254     201,   202,   202,   203,   203,   204,   204,   205,   205,   206,
     1255     206,   207,   207,   208,   208,   209,   209,   210,   210,   211,
     1256     211,   211,   211,   211,   212,   212,   212,   213,   213,   213,
     1257     214,   214,   214,   214,   214,   215,   215,   215,   216,   216,
     1258     217,   217,   217,   218,   218,   218,   218,   218,   219,   219,
     1259     220,   220,   220,   220,   221,   221,   222,   222,   222,   222,
     1260     223,   223,   223,   223,   224,   224,   225,   225,   226,   226,
     1261     227,   227,   227,   227,   227,   228,   227,   229,   229,   229,
     1262     230,   230,   231,   232,   232,   232,   232,   232,   232,   232,
     1263     232,   233,   233,   233,   233,   233,   233,   233,   233,   233,
     1264     233,   233,   233,   234,   234,   234,   234,   234,   235,   235,
     1265     236,   236,   236,   236,   237,   237,   237,   237,   238,   238,
     1266     238,   238,   239,   239,   239,   240,   240,   240,   240,   241,
     1267     241,   241,   242,   242,   243,   243,   243,   243,   243,   244,
     1268     244,   245,   245,   246,   246,   246,   246,   247,   247,   247,
     1269     247,   248,   248,   249,   249,   249,   249,   249,   250,   250,
     1270     251,   252,   253,   253,   253,   254,   254,   255,   255,   256,
     1271     256,   257,   257,   257,   257,   257,   258,   258,   258,   258,
     1272     259,   259,   260,   260,   261,   261,   262,   262,   262,   262,
     1273     263,   263,   263,   263,   263,   264,   264,   264,   264,   264,
     1274     265,   265,   266,   266,   267,   267,   268,   268,   268,   269,
     1275     269,   269,   270,   270,   270,   271,   271,   271,   272,   272,
     1276     272,   272,   273,   273,   273,   274,   274,   275,   275,   275,
     1277     275,   275,   276,   276,   277,   277,   278,   278,   278,   278,
     1278     278,   278,   279,   279,   279,   279,   280,   280,   280,   281,
     1279     282,   282,   284,   283,   283,   285,   285,   285,   286,   286,
     1280     287,   287,   287,   288,   288,   288,   288,   289,   289,   289,
     1281     290,   290,   291,   291,   292,   293,   292,   294,   294,   295,
     1282     295,   296,   296,   296,   297,   297,   298,   298,   299,   299,
     1283     300,   300,   301,   301,   301,   302,   301,   301,   303,   303,
     1284     303,   304,   304,   304,   304,   304,   304,   304,   304,   304,
     1285     305,   305,   305,   306,   307,   307,   308,   308,   309,   309,
     1286     310,   311,   311,   312,   312,   312,   313,   313,   313,   313,
     1287     314,   314,   314,   314,   315,   315,   316,   316,   316,   317,
     1288     317,   317,   317,   318,   318,   319,   319,   319,   320,   320,
     1289     320,   321,   321,   321,   322,   322,   322,   323,   323,   323,
     1290     324,   324,   324,   325,   325,   325,   326,   326,   326,   327,
     1291     327,   327,   327,   328,   328,   329,   329,   329,   330,   330,
     1292     330,   330,   331,   331,   331,   332,   332,   332,   332,   333,
     1293     333,   333,   334,   334,   334,   334,   335,   335,   335,   336,
     1294     336,   336,   336,   337,   337,   338,   338,   338,   339,   339,
     1295     340,   340,   341,   341,   341,   342,   342,   342,   342,   342,
     1296     343,   343,   343,   343,   344,   344,   344,   345,   345,   345,
     1297     346,   346,   346,   346,   347,   347,   347,   348,   348,   348,
     1298     348,   348,   349,   349,   349,   349,   350,   350,   350,   351,
     1299     351,   351,   352,   352,   352,   352,   352,   352,   353,   353,
     1300     353,   354,   354,   354,   354,   354,   355,   355,   355,   355,
     1301     356,   356,   357,   357,   357,   358,   358,   359,   359,   359,
     1302     359,   359,   359,   360,   360,   360,   360,   360,   360,   360,
     1303     360,   360,   360,   361,   361,   361,   361,   362,   362,   362,
     1304     363,   363,   364,   364,   364,   364,   364,   364,   365,   365,
     1305     365,   365,   365,   365,   366,   367,   367,   367,   368,   368,
     1306     369,   369
    13071307};
    13081308
     
    13111311{
    13121312       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    1313        1,     1,     1,     1,     1,     1,     2,     1,     1,     3,
    1314        3,     1,     6,     4,     3,     7,     3,     7,     2,     2,
    1315        7,     4,     1,     3,     0,     1,     3,     7,     9,     1,
    1316        3,     1,     3,     7,     3,     7,     1,     1,     1,     2,
    1317        2,     2,     2,     2,     2,     2,     4,     6,     1,     4,
    1318        4,     2,     4,     2,     1,     1,     1,     1,     1,     4,
    1319        4,     1,     3,     3,     3,     1,     3,     3,     1,     3,
    1320        3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
    1321        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
    1322        5,     4,     5,     1,     1,     3,     3,     2,     0,     1,
    1323        2,     5,     6,     7,     1,     3,     1,     1,     1,     1,
    1324        1,     1,     1,     1,     1,     1,     1,     3,     0,     1,
    1325        1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
    1326        2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
    1327        2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
    1328        1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
    1329        3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
    1330        2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
    1331        2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
    1332        5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
    1333        2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
    1334        1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
    1335        1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
    1336        0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
    1337        3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
    1338        2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
    1339        2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
    1340        3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
    1341        1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
    1342        1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
    1343        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1313       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
     1314       3,     3,     1,     6,     4,     3,     7,     3,     7,     2,
     1315       2,     7,     4,     1,     3,     0,     1,     3,     7,     9,
     1316       1,     3,     1,     3,     7,     3,     7,     1,     1,     1,
     1317       2,     2,     2,     2,     2,     2,     2,     4,     6,     1,
     1318       4,     4,     2,     4,     2,     1,     1,     1,     1,     1,
     1319       4,     4,     1,     3,     3,     3,     1,     3,     3,     1,
     1320       3,     3,     1,     3,     3,     3,     3,     1,     3,     3,
     1321       1,     3,     1,     3,     1,     3,     1,     3,     1,     3,
     1322       1,     5,     4,     5,     1,     1,     3,     3,     2,     0,
     1323       1,     2,     5,     6,     7,     1,     3,     1,     1,     1,
     1324       1,     1,     1,     1,     1,     1,     1,     1,     3,     0,
     1325       1,     1,     1,     1,     1,     1,     1,     1,     1,     6,
     1326       4,     2,     7,     1,     3,     1,     2,     1,     2,     1,
     1327       2,     2,     5,     7,     5,     9,     5,     9,     1,     3,
     1328       1,     1,     3,     3,     2,     1,     2,     2,     0,     1,
     1329       2,     3,     0,     1,     2,     3,     3,     4,     0,     1,
     1330       1,     2,     5,     7,     6,     6,     4,     3,     4,     2,
     1331       3,     2,     3,     3,     3,     3,     5,     3,     3,     4,
     1332       1,     5,     6,     5,     6,     9,    10,     9,    10,     2,
     1333       1,     2,     2,     2,     1,     6,     8,    10,    12,    14,
     1334       0,     1,     0,     1,     1,     3,     4,     7,     0,     1,
     1335       3,     1,     3,     1,     1,     1,     3,     1,     1,     1,
     1336       3,     0,     1,     3,     4,     1,     3,     1,     1,     3,
     1337       3,     3,     3,     3,     2,     3,     6,     3,     3,     4,
     1338       1,     2,     2,     3,     5,     8,     7,     7,     5,     9,
     1339       2,     2,     5,     3,     5,     4,     3,     4,     4,     7,
     1340       3,     3,     3,     3,     4,     6,     1,     1,     1,     1,
     1341       1,     1,     1,     1,     0,     1,     1,     2,     1,     1,
     1342       1,     1,     1,     1,     1,     0,     5,     1,     2,     3,
     1343       1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
    13441344       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1345        1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
    1346        2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
    1347        3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
    1348        2,     1,     1,     4,     2,     5,     7,     2,     2,     2,
    1349        1,     2,     2,     3,     2,     3,     1,     2,     3,     2,
    1350        2,     4,     0,     1,     2,     2,     1,     0,     1,     2,
    1351        2,     5,     6,     2,     2,     4,     0,     2,     0,     1,
    1352        1,     1,     5,     5,     5,     1,     5,     5,     9,     1,
    1353        5,     0,     1,     1,     5,     1,     1,     5,     5,     1,
    1354        3,     3,     4,     1,     1,     1,     1,     2,     1,     3,
    1355        3,     1,     2,     1,     3,     1,     1,     1,     1,     1,
    1356        1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
    1357        2,     0,     2,     2,     1,     4,     0,     1,     2,     3,
    1358        4,     2,     2,     1,     2,     1,     2,     5,     5,     7,
    1359        6,     1,     2,     2,     3,     1,     2,     2,     4,     2,
    1360        4,     0,     4,     2,     1,     1,     1,     0,     2,     5,
    1361        5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
    1362        4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
    1363        1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
    1364        1,     1,     1,     1,     0,     6,     2,     1,     2,     4,
    1365        2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
    1366        1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
    1367        1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
     1345       1,     1,     1,     1,     2,     2,     3,     3,     1,     3,
     1346       1,     2,     2,     2,     4,     4,     4,     4,     1,     2,
     1347       2,     3,     1,     2,     2,     1,     2,     2,     3,     1,
     1348       2,     2,     1,     1,     4,     2,     5,     7,     2,     2,
     1349       2,     1,     2,     2,     3,     2,     3,     1,     2,     3,
     1350       2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
     1351       2,     2,     5,     6,     2,     2,     4,     0,     2,     0,
     1352       1,     1,     1,     5,     5,     5,     1,     5,     5,     9,
     1353       1,     5,     0,     1,     1,     5,     1,     1,     5,     5,
     1354       1,     3,     3,     4,     1,     1,     1,     1,     2,     1,
     1355       3,     3,     1,     2,     1,     3,     1,     1,     1,     1,
     1356       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
     1357       1,     2,     0,     2,     2,     1,     4,     0,     1,     2,
     1358       3,     4,     2,     2,     1,     2,     1,     2,     5,     5,
     1359       7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
     1360       2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
     1361       5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
     1362       2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
     1363       3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
     1364       0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
     1365       4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
     1366       1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
     1367       6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
     1368       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
     1369       4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
     1370       3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
     1371       4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
    13681372       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
    1369        4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
    1370        2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
    1371        6,     3,     2,     3,     3,     4,     4,     3,     2,     1,
    1372        2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
    1373        3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
    1374        3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
    1375        2,     2,     1,     1,     2,     3,     3,     2,     4,     6,
    1376        8,     1,     2,     2,     1,     2,     2,     3,     3,     1,
    1377        4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
    1378        5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
    1379        3,     1,     4,     4,     3,     5,     8,     3,     1,     2,
    1380        1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
    1381        1,     2,     2,     3,     3,     1,     4,     4,     3,     8,
    1382        3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
    1383        2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
    1384        3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
    1385        1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
    1386        3,     4,     2,     5,     5,     6,     6,     0,     1,     0,
    1387        2
     1373       4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
     1374       3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
     1375       1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
     1376       6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
     1377       1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
     1378       5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
     1379       3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
     1380       2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
     1381       2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
     1382       8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
     1383       3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
     1384       4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
     1385       1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
     1386       2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
     1387       0,     2
    13881388};
    13891389
     
    13931393static const yytype_uint16 yydefact[] =
    13941394{
    1395      293,   293,   314,   312,   315,   313,   316,   317,   299,   301,
    1396      300,     0,   302,   328,   320,   325,   323,   324,   322,   321,
    1397      326,   327,   329,   330,   331,   545,   545,   545,     0,     0,
    1398        0,   293,   219,   303,   318,   319,     7,   358,     0,     8,
    1399       13,    14,     0,     2,   293,   563,     9,   523,   521,   246,
    1400        3,   451,     3,   259,     0,     3,     3,     3,   247,     3,
    1401        0,     0,     0,   294,   295,   297,   293,   306,   309,   311,
    1402      339,   285,   332,   337,   286,   347,   287,   354,   351,   361,
    1403        0,     0,   362,   288,   471,   475,     3,     3,     0,     2,
    1404      517,   522,   527,   298,     0,     0,   545,   575,   545,     2,
    1405      586,   587,   588,   293,     0,   729,   730,     0,    12,   293,
    1406        0,   269,   270,     0,   294,   289,   290,   291,   292,   524,
    1407      304,   390,   546,   547,   368,   369,    12,   442,   443,    11,
    1408      438,   441,     0,   501,   496,   487,   442,   443,     0,     0,
    1409      526,   220,     0,   293,     0,     0,     0,     0,     0,     0,
    1410        0,     0,   293,   293,     2,     0,   731,   294,   580,   592,
    1411      735,   728,   726,   733,     0,     0,     0,   253,     2,     0,
    1412      530,   436,   437,   435,     0,     0,     0,     0,   545,     0,
    1413      632,   633,     0,     0,   543,   539,   545,   560,   545,   545,
    1414      540,     2,   541,   545,   599,   545,   545,   602,     0,     0,
    1415        0,   293,   293,   312,   359,     2,   293,   260,   296,   307,
    1416      340,   352,   476,     0,     2,     0,   451,   261,   294,   333,
    1417      348,   355,   472,     0,     2,     0,   310,   334,   341,   342,
    1418        0,   349,   353,   356,   360,   443,   293,   293,   364,   367,
    1419        0,   393,   473,   477,     0,     0,     0,     1,   293,     2,
    1420      528,   574,   576,   293,     2,   739,   294,   742,   543,   543,
    1421      294,     0,     0,     0,   272,   545,   540,     2,   293,     0,
    1422        0,   293,   548,     2,   499,     2,   552,     0,     0,     0,
    1423        0,     0,     0,    17,    58,     4,     5,     6,    15,     0,
    1424        0,     0,   293,     2,     0,   293,    64,    65,    66,    67,
    1425       47,    18,    48,    21,    46,    68,     0,    71,    75,    78,
    1426       81,    86,    89,    91,    93,    95,    97,    99,   104,   493,
    1427      749,   449,   492,     0,   447,   448,     0,   564,   579,   582,
    1428      585,   591,   594,   597,   358,     0,     2,   737,     0,   293,
    1429      740,     2,   293,     3,   423,     0,   431,   294,   293,   306,
    1430      332,   286,   347,   354,     3,     3,   405,   409,   419,   424,
    1431      471,   293,   425,   704,   705,   293,   426,   428,   293,     2,
    1432      581,   593,   727,     2,     2,   248,     2,   456,     0,   454,
    1433      453,   452,   140,     2,     2,   250,     2,     2,   249,     2,
    1434      280,     2,   281,     0,   279,     0,     0,     0,     0,     0,
    1435        0,     0,     0,     0,   565,   604,     0,   451,     2,   559,
    1436      568,   658,   561,   562,   531,   293,     2,   598,   607,   600,
    1437      601,     0,   275,   293,   293,   338,   294,     0,   294,     0,
    1438      293,   732,   736,   734,   532,   293,   543,   254,   262,   308,
    1439        0,     2,   533,   293,   497,   335,   336,   282,   350,   357,
    1440        0,   293,     2,   382,   293,   370,     0,     0,   376,   726,
    1441      293,   747,   396,     0,   474,   498,   251,   252,   518,   293,
    1442      433,     0,   293,   236,     0,     2,   238,     0,   294,     0,
    1443      256,     2,   257,   277,     0,     0,     2,   293,   543,   293,
    1444      484,   486,   485,     0,     0,   749,     0,   293,     0,   293,
    1445      488,   293,   558,   556,   557,   555,     0,   550,   553,     0,
    1446        0,   293,    55,   293,    68,    51,   293,    61,   293,   293,
    1447       49,    50,    63,     2,   126,     0,     0,   445,     0,   444,
    1448      110,   293,    53,    54,    16,     0,    28,    29,    34,     2,
    1449        0,    34,   116,   117,   118,   119,   120,   121,   122,   123,
    1450      124,   125,     0,     0,    52,     0,     0,     0,     0,     0,
     1395     294,   294,   315,   313,   316,   314,   317,   318,   300,   302,
     1396     301,     0,   303,   329,   321,   326,   324,   325,   323,   322,
     1397     327,   328,   330,   331,   332,   546,   546,   546,     0,     0,
     1398       0,   294,   220,   304,   319,   320,     7,   359,     0,     8,
     1399      14,    15,     0,     2,   294,   564,     9,   524,   522,   247,
     1400       3,   452,     3,   260,     0,     3,     3,     3,   248,     3,
     1401       0,     0,     0,   295,   296,   298,   294,   307,   310,   312,
     1402     340,   286,   333,   338,   287,   348,   288,   355,   352,   362,
     1403       0,     0,   363,   289,   472,   476,     3,     3,     0,     2,
     1404     518,   523,   528,   299,     0,     0,   546,   576,   546,     2,
     1405     587,   588,   589,   294,     0,   730,   731,     0,    12,   294,
     1406       0,    13,   270,   271,     0,   295,   290,   291,   292,   293,
     1407     525,   305,   391,   547,   548,   369,   370,    12,   443,   444,
     1408      11,   439,   442,     0,   502,   497,   488,   443,   444,     0,
     1409       0,   527,   221,     0,   294,     0,     0,     0,     0,     0,
     1410       0,     0,     0,   294,   294,     2,     0,   732,   295,   581,
     1411     593,   736,   729,   727,   734,     0,     0,     0,   254,     2,
     1412       0,   531,   437,   438,   436,     0,     0,     0,     0,   546,
     1413       0,   633,   634,     0,     0,   544,   540,   546,   561,   546,
     1414     546,   541,     2,   542,   546,   600,   546,   546,   603,     0,
     1415       0,     0,   294,   294,   313,   360,     2,   294,   261,   297,
     1416     308,   341,   353,   477,     0,     2,     0,   452,   262,   295,
     1417     334,   349,   356,   473,     0,     2,     0,   311,   335,   342,
     1418     343,     0,   350,   354,   357,   361,   444,   294,   294,   365,
     1419     368,     0,   394,   474,   478,     0,     0,     0,     1,   294,
     1420       2,   529,   575,   577,   294,     2,   740,   295,   743,   544,
     1421     544,   295,     0,     0,     0,   273,   546,   541,     2,   294,
     1422       0,     0,   294,   549,     2,   500,     2,   553,     0,     0,
     1423       0,     0,     0,     0,    18,    59,     4,     5,     6,    16,
     1424       0,     0,     0,   294,     2,     0,   294,    65,    66,    67,
     1425      68,    48,    19,    49,    22,    47,    69,     0,    72,    76,
     1426      79,    82,    87,    90,    92,    94,    96,    98,   100,   105,
     1427     494,   750,   450,   493,     0,   448,   449,     0,   565,   580,
     1428     583,   586,   592,   595,   598,   359,     0,     2,   738,     0,
     1429     294,   741,     2,   294,     3,   424,     0,   432,   295,   294,
     1430     307,   333,   287,   348,   355,     3,     3,   406,   410,   420,
     1431     425,   472,   294,   426,   705,   706,   294,   427,   429,   294,
     1432       2,   582,   594,   728,     2,     2,   249,     2,   457,     0,
     1433     455,   454,   453,   141,     2,     2,   251,     2,     2,   250,
     1434       2,   281,     2,   282,     0,   280,     0,     0,     0,     0,
     1435       0,     0,     0,     0,     0,   566,   605,     0,   452,     2,
     1436     560,   569,   659,   562,   563,   532,   294,     2,   599,   608,
     1437     601,   602,     0,   276,   294,   294,   339,   295,     0,   295,
     1438       0,   294,   733,   737,   735,   533,   294,   544,   255,   263,
     1439     309,     0,     2,   534,   294,   498,   336,   337,   283,   351,
     1440     358,     0,   294,     2,   383,   294,   371,     0,     0,   377,
     1441     727,   294,   748,   397,     0,   475,   499,   252,   253,   519,
     1442     294,   434,     0,   294,   237,     0,     2,   239,     0,   295,
     1443       0,   257,     2,   258,   278,     0,     0,     2,   294,   544,
     1444     294,   485,   487,   486,     0,     0,   750,     0,   294,     0,
     1445     294,   489,   294,   559,   557,   558,   556,     0,   551,   554,
     1446       0,     0,   294,    56,   294,    69,    52,   294,    62,   294,
     1447     294,    50,    51,    64,     2,   127,     0,     0,   446,     0,
     1448     445,   111,   294,    54,    55,    17,     0,    29,    30,    35,
     1449       2,     0,    35,   117,   118,   119,   120,   121,   122,   123,
     1450     124,   125,   126,     0,     0,    53,     0,     0,     0,     0,
    14511451       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1452        0,     0,     0,     0,     0,   107,     2,   644,   450,   641,
    1453      545,   545,   649,   478,   293,     2,   583,   584,     0,   595,
    1454      596,     0,     2,   738,   741,   110,   293,     2,   293,     0,
    1455      706,   294,   710,   701,   702,   708,     0,     2,     2,   666,
    1456      545,   749,   615,   545,   545,   749,   545,   629,   545,   545,
    1457      680,   432,   663,   545,   545,   671,   678,   293,   427,   294,
    1458        0,     0,   293,   716,   294,   721,   749,   713,   293,   718,
    1459      749,   293,   293,   293,     0,   110,     0,    17,     5,     2,
    1460        0,     0,   457,   747,     0,     0,   463,   240,     0,   293,
    1461        0,     0,     0,   543,   567,   571,   573,   603,   606,   610,
    1462      613,   566,   605,     0,   283,   656,     0,   293,   276,     0,
    1463        0,     0,     0,   274,     2,     0,   258,   534,   293,     0,
    1464        0,     0,     0,   293,   293,     0,     0,   690,   380,   383,
    1465      387,   545,   387,   695,   386,   687,   545,   545,   363,   371,
    1466      379,   372,   545,   374,   377,   293,   748,     0,     0,   394,
    1467      747,   294,     3,   412,     3,   416,   415,   589,     0,   529,
    1468      293,     3,     3,   293,   431,   294,     3,   425,   426,     2,
    1469        0,     0,     0,   483,   305,   293,   479,   481,     3,     2,
    1470        2,     0,   500,     3,     0,   552,   128,     0,     0,   221,
    1471        0,     0,     0,     2,     0,     0,    35,     0,     0,   110,
    1472      293,    19,     0,    20,     0,   690,   446,     0,   108,     3,
    1473        2,    26,     2,     0,    32,     0,     2,    24,     0,   105,
    1474      106,    72,    73,    74,    76,    77,    79,    80,    84,    85,
    1475       82,    83,    87,    88,    90,    92,    94,    96,    98,     0,
    1476        0,   750,   293,     0,     0,     0,   645,   646,   642,   643,
    1477      495,   494,   293,     0,     3,   293,   712,   293,   717,   294,
    1478      293,   293,   293,   660,   703,   659,     2,   293,     0,     0,
    1479        0,     0,     0,     0,     0,     0,   681,     0,   667,   618,
    1480      634,   668,     2,   614,   621,   429,   616,   617,   430,     2,
    1481      628,   637,   630,   631,   664,   665,   679,   707,   711,   709,
    1482      749,   267,     2,   743,     2,   420,   715,   720,   421,     0,
    1483      399,     3,     3,     3,     3,   451,     3,     0,     2,   466,
    1484      462,   748,     0,   458,   465,     2,   461,   464,     0,   293,
    1485      241,   263,     3,   271,   273,     0,   451,     2,   569,   570,
    1486        2,   608,   609,     0,   657,   535,     3,   344,   343,   346,
    1487      345,   293,   536,     0,   537,   293,   373,   375,     2,     0,
    1488        0,     0,     0,   103,   389,   691,   692,   384,   388,   385,
    1489      688,   689,   378,   382,   365,   396,   391,   397,     0,     0,
    1490        0,   434,   239,     0,     0,     3,     2,   666,   427,     0,
    1491      525,     0,   749,   487,     0,   293,   293,   293,     0,   549,
    1492      551,   129,     0,     0,   214,     0,     0,     0,   222,   223,
    1493       56,     0,    62,   293,     0,    60,    59,     0,   127,   691,
    1494      456,    69,    70,   109,   114,     3,   108,     0,     0,     0,
    1495       23,    34,     3,     0,    31,   101,     0,     3,   648,   652,
    1496      655,   647,     3,   590,     3,   714,   719,     2,   293,     3,
    1497        3,   294,     0,     3,   620,   624,   627,   636,   670,   674,
    1498      677,   293,     3,   619,   635,   669,   293,   293,   422,   293,
    1499      293,   744,     0,     0,     0,     0,   255,     0,   103,     0,
    1500        3,     3,     0,   459,     0,   455,     0,     0,   244,   293,
    1501        0,     0,   128,     0,     0,     0,     0,     0,   128,     0,
    1502        0,   108,   108,     2,     0,     0,     0,     3,   130,   131,
    1503        2,   142,   132,   133,   134,   135,   136,   137,   144,   146,
    1504        0,     0,     0,   284,   293,   293,   545,     0,   538,   293,
    1505      110,   694,   698,   700,   693,   381,   395,   392,   577,     2,
    1506      662,   661,     0,   667,     2,   480,   482,   502,     3,   510,
    1507      511,     0,     2,   506,     3,     3,     0,     0,   554,   221,
    1508        0,     0,     0,   221,     0,     0,     3,    36,   747,   108,
    1509        0,     3,   659,    41,     3,    39,     3,    33,     0,     3,
    1510      100,   102,     0,     2,   650,   651,     0,     0,   293,     0,
    1511        0,     0,     3,   636,     0,     2,   622,   623,     2,   638,
    1512        2,   672,   673,     0,     0,     3,     0,     3,     3,     3,
    1513        3,   407,   406,   410,     2,     2,   746,   745,   111,     0,
    1514        0,     0,     0,     3,   460,     3,     0,   242,   145,     3,
    1515      294,   293,     0,     0,     0,     0,     2,   190,     0,   188,
    1516        0,     0,     0,     0,     0,     0,     0,     0,   110,     0,
    1517      545,   150,   147,   293,     0,     0,   266,   278,     3,     3,
    1518      544,   611,   366,     2,   696,   697,   293,   265,   293,     0,
    1519      513,   490,   293,     0,     0,   489,   504,     0,     0,     0,
    1520      215,     0,   224,    57,   108,     0,     0,   115,   112,     0,
    1521        0,     0,     0,     0,     0,    22,     0,   653,   293,   578,
    1522      264,   722,   723,   724,     0,   675,   293,   293,   293,     3,
    1523        3,     0,   683,     0,     0,     0,     0,   293,   293,     3,
    1524      542,   467,   468,     0,     0,   245,   294,     0,     0,     0,
    1525        0,   293,   191,   189,     0,   186,   192,     0,     0,     0,
    1526        0,   196,   199,   197,   193,     0,   194,    34,   128,   143,
    1527      141,   243,     0,     0,   293,   414,   418,   417,     0,   507,
    1528        2,   508,     2,   509,   503,   293,   227,     0,   225,     0,
    1529      227,     3,   659,    30,   113,     2,    44,     2,    42,    40,
    1530       27,   111,    25,     3,   725,     3,     3,     3,     0,     0,
    1531      682,   684,   625,   639,   268,     2,   404,     3,   403,     0,
    1532      470,   467,   128,     0,     0,   128,     3,     0,   128,   187,
    1533        0,     2,     2,   208,   198,     0,     0,     0,     0,   139,
    1534      572,   612,     3,     2,     0,     0,     2,   228,     0,     0,
    1535      216,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1536      685,   686,   293,     0,   469,   151,     0,     0,     2,   164,
    1537      128,   153,     0,   181,     0,   128,     0,     2,   155,     0,
    1538        2,     0,     2,     2,     2,   195,    31,     0,   293,   512,
    1539      514,   505,     0,     0,     0,     0,   113,    37,     3,     3,
    1540      654,   626,   640,   676,   408,   128,   157,   160,     0,   159,
    1541      163,     3,   166,   165,     0,   128,   183,   128,     3,     0,
    1542      293,     0,   293,     0,     2,     0,     2,   138,   699,     2,
    1543      229,   230,     0,   226,   217,     0,     0,     0,   152,     0,
    1544        0,   162,   232,   167,     2,   234,   182,     0,   185,   171,
    1545      200,     3,   209,   213,   202,     3,     0,   293,     0,   293,
    1546        0,     0,     0,    38,    45,    43,   158,   161,   128,     0,
    1547      168,   293,   128,   128,     0,   172,     0,     0,   690,   210,
    1548      211,   212,     0,   201,     3,   203,     3,   293,   218,   231,
    1549      148,   169,   154,   128,   235,   184,   179,   177,   173,   156,
    1550      128,     0,   691,     0,     0,     0,     0,   149,   170,   180,
    1551      174,   178,   177,   175,     3,     3,     0,     0,   491,   176,
    1552      204,   206,     3,     3,   205,   207
     1452       0,     0,     0,     0,     0,     0,   108,     2,   645,   451,
     1453     642,   546,   546,   650,   479,   294,     2,   584,   585,     0,
     1454     596,   597,     0,     2,   739,   742,   111,   294,     2,   294,
     1455       0,   707,   295,   711,   702,   703,   709,     0,     2,     2,
     1456     667,   546,   750,   616,   546,   546,   750,   546,   630,   546,
     1457     546,   681,   433,   664,   546,   546,   672,   679,   294,   428,
     1458     295,     0,     0,   294,   717,   295,   722,   750,   714,   294,
     1459     719,   750,   294,   294,   294,     0,   111,     0,    18,     5,
     1460       2,     0,    19,     0,   458,   748,     0,     0,   464,   241,
     1461       0,   294,     0,     0,     0,   544,   568,   572,   574,   604,
     1462     607,   611,   614,   567,   606,     0,   284,   657,     0,   294,
     1463     277,     0,     0,     0,     0,   275,     2,     0,   259,   535,
     1464     294,     0,     0,     0,     0,   294,   294,     0,     0,   691,
     1465     381,   384,   388,   546,   388,   696,   387,   688,   546,   546,
     1466     364,   372,   380,   373,   546,   375,   378,   294,   749,     0,
     1467       0,   395,   748,   295,     3,   413,     3,   417,   416,   590,
     1468       0,   530,   294,     3,     3,   294,   432,   295,     3,   426,
     1469     427,     2,     0,     0,     0,   484,   306,   294,   480,   482,
     1470       3,     2,     2,     0,   501,     3,     0,   553,   129,     0,
     1471       0,   222,     0,     0,     0,     2,     0,     0,    36,     0,
     1472       0,   111,   294,    20,     0,    21,     0,   691,   447,     0,
     1473     109,     3,     2,    27,     2,     0,    33,     0,     2,    25,
     1474       0,   106,   107,    73,    74,    75,    77,    78,    80,    81,
     1475      85,    86,    83,    84,    88,    89,    91,    93,    95,    97,
     1476      99,     0,     0,   751,   294,     0,     0,     0,   646,   647,
     1477     643,   644,   496,   495,   294,     0,     3,   294,   713,   294,
     1478     718,   295,   294,   294,   294,   661,   704,   660,     2,   294,
     1479       0,     0,     0,     0,     0,     0,     0,     0,   682,     0,
     1480     668,   619,   635,   669,     2,   615,   622,   430,   617,   618,
     1481     431,     2,   629,   638,   631,   632,   665,   666,   680,   708,
     1482     712,   710,   750,   268,     2,   744,     2,   421,   716,   721,
     1483     422,     0,   400,     3,     3,     3,     3,   452,     3,     0,
     1484       2,   467,   463,   749,     0,   459,   466,     2,   462,   465,
     1485       0,   294,   242,   264,     3,   272,   274,     0,   452,     2,
     1486     570,   571,     2,   609,   610,     0,   658,   536,     3,   345,
     1487     344,   347,   346,   294,   537,     0,   538,   294,   374,   376,
     1488       2,     0,     0,     0,     0,   104,   390,   692,   693,   385,
     1489     389,   386,   689,   690,   379,   383,   366,   397,   392,   398,
     1490       0,     0,     0,   435,   240,     0,     0,     3,     2,   667,
     1491     428,     0,   526,     0,   750,   488,     0,   294,   294,   294,
     1492       0,   550,   552,   130,     0,     0,   215,     0,     0,     0,
     1493     223,   224,    57,     0,    63,   294,     0,    61,    60,     0,
     1494     128,   692,   457,    70,    71,   110,   115,     3,   109,     0,
     1495       0,     0,    24,    35,     3,     0,    32,   102,     0,     3,
     1496     649,   653,   656,   648,     3,   591,     3,   715,   720,     2,
     1497     294,     3,     3,   295,     0,     3,   621,   625,   628,   637,
     1498     671,   675,   678,   294,     3,   620,   636,   670,   294,   294,
     1499     423,   294,   294,   745,     0,     0,     0,     0,   256,     0,
     1500     104,     0,     3,     3,     0,   460,     0,   456,     0,     0,
     1501     245,   294,     0,     0,   129,     0,     0,     0,     0,     0,
     1502     129,     0,     0,   109,   109,     2,     0,     0,     0,     3,
     1503     131,   132,     2,   143,   133,   134,   135,   136,   137,   138,
     1504     145,   147,     0,     0,     0,   285,   294,   294,   546,     0,
     1505     539,   294,   111,   695,   699,   701,   694,   382,   396,   393,
     1506     578,     2,   663,   662,     0,   668,     2,   481,   483,   503,
     1507       3,   511,   512,     0,     2,   507,     3,     3,     0,     0,
     1508     555,   222,     0,     0,     0,   222,     0,     0,     3,    37,
     1509     748,   109,     0,     3,   660,    42,     3,    40,     3,    34,
     1510       0,     3,   101,   103,     0,     2,   651,   652,     0,     0,
     1511     294,     0,     0,     0,     3,   637,     0,     2,   623,   624,
     1512       2,   639,     2,   673,   674,     0,     0,     3,     0,     3,
     1513       3,     3,     3,   408,   407,   411,     2,     2,   747,   746,
     1514     112,     0,     0,     0,     0,     3,   461,     3,     0,   243,
     1515     146,     3,   295,   294,     0,     0,     0,     0,     2,   191,
     1516       0,   189,     0,     0,     0,     0,     0,     0,     0,     0,
     1517     111,     0,   546,   151,   148,   294,     0,     0,   267,   279,
     1518       3,     3,   545,   612,   367,     2,   697,   698,   294,   266,
     1519     294,     0,   514,   491,   294,     0,     0,   490,   505,     0,
     1520       0,     0,   216,     0,   225,    58,   109,     0,     0,   116,
     1521     113,     0,     0,     0,     0,     0,     0,    23,     0,   654,
     1522     294,   579,   265,   723,   724,   725,     0,   676,   294,   294,
     1523     294,     3,     3,     0,   684,     0,     0,     0,     0,   294,
     1524     294,     3,   543,   468,   469,     0,     0,   246,   295,     0,
     1525       0,     0,     0,   294,   192,   190,     0,   187,   193,     0,
     1526       0,     0,     0,   197,   200,   198,   194,     0,   195,    35,
     1527     129,   144,   142,   244,     0,     0,   294,   415,   419,   418,
     1528       0,   508,     2,   509,     2,   510,   504,   294,   228,     0,
     1529     226,     0,   228,     3,   660,    31,   114,     2,    45,     2,
     1530      43,    41,    28,   112,    26,     3,   726,     3,     3,     3,
     1531       0,     0,   683,   685,   626,   640,   269,     2,   405,     3,
     1532     404,     0,   471,   468,   129,     0,     0,   129,     3,     0,
     1533     129,   188,     0,     2,     2,   209,   199,     0,     0,     0,
     1534       0,   140,   573,   613,     3,     2,     0,     0,     2,   229,
     1535       0,     0,   217,     0,     0,     0,     0,     0,     0,     0,
     1536       0,     0,   686,   687,   294,     0,   470,   152,     0,     0,
     1537       2,   165,   129,   154,     0,   182,     0,   129,     0,     2,
     1538     156,     0,     2,     0,     2,     2,     2,   196,    32,     0,
     1539     294,   513,   515,   506,     0,     0,     0,     0,   114,    38,
     1540       3,     3,   655,   627,   641,   677,   409,   129,   158,   161,
     1541       0,   160,   164,     3,   167,   166,     0,   129,   184,   129,
     1542       3,     0,   294,     0,   294,     0,     2,     0,     2,   139,
     1543     700,     2,   230,   231,     0,   227,   218,     0,     0,     0,
     1544     153,     0,     0,   163,   233,   168,     2,   235,   183,     0,
     1545     186,   172,   201,     3,   210,   214,   203,     3,     0,   294,
     1546       0,   294,     0,     0,     0,    39,    46,    44,   159,   162,
     1547     129,     0,   169,   294,   129,   129,     0,   173,     0,     0,
     1548     691,   211,   212,   213,     0,   202,     3,   204,     3,   294,
     1549     219,   232,   149,   170,   155,   129,   236,   185,   180,   178,
     1550     174,   157,   129,     0,   692,     0,     0,     0,     0,   150,
     1551     171,   181,   175,   179,   178,   176,     3,     3,     0,     0,
     1552     492,   177,   205,   207,     3,     3,   206,   208
    15531553};
    15541554
     
    15561556static const yytype_int16 yydefgoto[] =
    15571557{
    1558       -1,   837,   473,   300,    45,   130,   131,   301,   302,   303,
    1559      304,   783,   784,  1144,  1145,   305,   306,   307,   308,   309,
    1560      310,   311,   312,   313,   314,   315,   316,   317,   318,  1049,
    1561      524,   994,   320,   995,   553,   971,  1076,  1540,  1078,  1079,
    1562     1080,  1081,  1541,  1082,  1083,  1457,  1458,  1419,  1420,  1421,
    1563     1519,  1520,  1524,  1525,  1560,  1561,  1084,  1377,  1085,  1086,
    1564     1311,  1312,  1313,  1501,  1087,   142,   977,   978,   979,  1398,
    1565     1482,  1493,  1494,   474,   475,   899,   900,  1057,    48,    49,
    1566       50,    51,    52,   344,   155,    55,    56,    57,    58,    59,
    1567      346,    61,    62,   260,    64,    65,   271,   348,   349,    68,
    1568       69,    70,    71,   115,    73,   201,   351,   116,    76,   117,
    1569       78,    79,    80,   454,   455,   456,   457,   698,   937,   699,
    1570       81,    82,   461,   719,   879,   880,   354,   355,   722,   723,
    1571      724,   356,   357,   358,   359,   471,   338,   132,   133,   528,
    1572      322,   167,   652,   653,   654,   655,   656,    83,   118,    85,
    1573      494,   495,   963,   496,   274,   500,   323,    86,   134,   135,
    1574       87,  1335,  1122,  1123,  1124,  1125,    88,    89,   740,    90,
    1575      270,    91,    92,   184,  1051,   686,   409,   122,    93,   506,
    1576      507,   508,   185,   265,   187,   188,   189,   266,    96,    97,
    1577       98,    99,   100,   101,   102,   192,   193,   194,   195,   196,
    1578      849,   612,   613,   614,   615,   197,   617,   618,   619,   578,
    1579      579,   580,   581,   703,   103,   621,   622,   623,   624,   625,
    1580      626,   936,   705,   706,   707,   602,   362,   363,   364,   365,
    1581      324,   161,   105,   106,   107,   367,   717,   575
     1558      -1,   839,   474,   301,    45,   131,   132,   302,   303,   304,
     1559     305,   785,   786,  1146,  1147,   306,   307,   308,   309,   310,
     1560     311,   312,   313,   314,   315,   316,   317,   318,   319,  1051,
     1561     525,   996,   321,   997,   554,   973,  1078,  1542,  1080,  1081,
     1562    1082,  1083,  1543,  1084,  1085,  1459,  1460,  1421,  1422,  1423,
     1563    1521,  1522,  1526,  1527,  1562,  1563,  1086,  1379,  1087,  1088,
     1564    1313,  1314,  1315,  1503,  1089,   143,   979,   980,   981,  1400,
     1565    1484,  1495,  1496,   475,   476,   901,   902,  1059,    48,    49,
     1566      50,    51,    52,   345,   156,    55,    56,    57,    58,    59,
     1567     347,    61,    62,   261,    64,    65,   272,   349,   350,    68,
     1568      69,    70,    71,   116,    73,   202,   352,   117,    76,   118,
     1569      78,    79,    80,   455,   456,   457,   458,   700,   939,   701,
     1570      81,    82,   462,   721,   881,   882,   355,   356,   724,   725,
     1571     726,   357,   358,   359,   360,   472,   339,   133,   134,   529,
     1572     323,   168,   654,   655,   656,   657,   658,    83,   119,    85,
     1573     495,   496,   965,   497,   275,   501,   324,    86,   135,   136,
     1574      87,  1337,  1124,  1125,  1126,  1127,    88,    89,   742,    90,
     1575     271,    91,    92,   185,  1053,   688,   410,   123,    93,   507,
     1576     508,   509,   186,   266,   188,   189,   190,   267,    96,    97,
     1577      98,    99,   100,   101,   102,   193,   194,   195,   196,   197,
     1578     851,   613,   614,   615,   616,   198,   618,   619,   620,   579,
     1579     580,   581,   582,   705,   103,   622,   623,   624,   625,   626,
     1580     627,   938,   707,   708,   709,   603,   363,   364,   365,   366,
     1581     325,   162,   105,   106,   107,   368,   719,   576
    15821582};
    15831583
    15841584/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15851585   STATE-NUM.  */
    1586 #define YYPACT_NINF -1361
     1586#define YYPACT_NINF -1281
    15871587static const yytype_int16 yypact[] =
    15881588{
    1589     5174,  7512, -1361,    10, -1361, -1361, -1361, -1361, -1361, -1361,
    1590    -1361,    37, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
    1591    -1361, -1361, -1361, -1361, -1361,   161,   161,   161,   843,   859,
    1592      111,  6821,   221, -1361, -1361, -1361, -1361, -1361,   155, -1361,
    1593    -1361, -1361,   987,   163,  5874, -1361, -1361, -1361, -1361, -1361,
    1594    -1361,    81,   209, -1361,  1199, -1361, -1361, -1361, -1361,   238,
    1595     1088,   380,    99,  6937, -1361, -1361,  8924,  1148, -1361, -1361,
    1596    -1361,   839,   388,  3333,   858,   581,   839,  1265, -1361, -1361,
    1597       94,   172, -1361,   839,  1598, -1361,   279, -1361,   402,   444,
    1598    -1361, -1361, -1361, -1361,   325,   209,   161, -1361,   161, -1361,
    1599    -1361, -1361, -1361,  9179,  1199, -1361, -1361,  1199, -1361,  9261,
    1600      326, -1361, -1361,  1806,  9290, -1361,  1135,  1135,  1135, -1361,
    1601    -1361, -1361,   161, -1361, -1361, -1361,   435,   468,   557, -1361,
    1602    -1361, -1361,   560, -1361, -1361, -1361, -1361, -1361,   574,   602,
    1603    -1361, -1361,    89,  8398,  1214,   400,   470,   528,   617,   620,
    1604      687,   694,  7699,  6228,   708,   720, -1361,  8962, -1361, -1361,
    1605    -1361, -1361,   741, -1361,   358,  3979,  3979, -1361,   755,   371,
    1606    -1361, -1361, -1361, -1361,   777,   379,   382,   389,   161,   751,
    1607    -1361, -1361,  1088,  2653,   834, -1361,    15, -1361,   161,   161,
    1608      209, -1361, -1361,   199, -1361,   161,   161, -1361,  3078,   802,
    1609      811,  1135,  6378, -1361, -1361,   832,  5874, -1361, -1361,   839,
    1610    -1361, -1361, -1361,   209, -1361,  1199,    81, -1361,  7363, -1361,
    1611     1135,  1135,  1135,   209, -1361,   843, -1361,  6024, -1361, -1361,
    1612      816,  1135, -1361,  1135, -1361,   155,  8398,  8428,   851, -1361,
    1613      859,   880,  1135, -1361,   843,   884,   897, -1361,  6821,   961,
    1614    -1361, -1361, -1361,  8857, -1361, -1361,  5093, -1361,   834,    72,
    1615     9290, 10300,  1806,  3078, -1361,   253, -1361, -1361,  9261,  1199,
    1616      922,  6966, -1361, -1361,   355, -1361, 10631,   941,   965,  4235,
    1617      955,  4451, 10454, -1361,   973, -1361, -1361, -1361, -1361, 10512,
    1618    10512,   961,  8059,   962,  4451,  8511, -1361, -1361, -1361, -1361,
    1619    -1361, -1361,  1002, -1361,   567,  2174,  4451, -1361,   357,   484,
    1620      568,   283,   719,   968,   967,   964,   996,   246, -1361, -1361,
    1621      966,   472, -1361,   270, -1361, -1361,  1214, -1361, -1361,   446,
    1622      989, -1361,   504,   989,   995,   155, -1361, -1361,  1003,  9179,
    1623    -1361,  1004,  8172, -1361, -1361,   747,  1701,  7781,  6378,   839,
    1624    -1361,   839,  1135,  1135, -1361, -1361, -1361, -1361, -1361, -1361,
    1625     1135,  9328,  1199, -1361, -1361,  9399,  1399, -1361,  8549, -1361,
    1626    -1361, -1361, -1361, -1361, -1361, -1361,  1015,  5239,  4451, -1361,
    1627    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
    1628    -1361, -1361, -1361,  1806, -1361,   793,  1019,  1025,  1026,   863,
    1629     1028,  1031,  1032,  2653, -1361, -1361,  1005,    81,  1039, -1361,
    1630    -1361,  1033, -1361, -1361, -1361,  8857, -1361, -1361, -1361, -1361,
    1631    -1361,  3078, -1361,  8398,  8398, -1361,  1135,  1806,  6497,  1199,
    1632     7852, -1361, -1361, -1361, -1361,  8857,    72, -1361, -1361,   839,
    1633      209, -1361, -1361,  8857, -1361,  6143, -1361, -1361,  1135,  1135,
    1634      375,  9437,  1053,  1568,  8775, -1361,   433,   442,   859, -1361,
    1635     8428,  1050,  1037,   859,  1135, -1361, -1361, -1361, -1361,  9692,
    1636    -1361,   526,  6259, -1361,   209,  1055, -1361,  1806, 10712, 10358,
    1637    -1361, -1361, -1361, -1361,   867,  3078, -1361,  7923,   834,  6705,
    1638    -1361, -1361, -1361,  1562,   529,   966,   859,  6966,   285,  9261,
    1639    -1361,  6966, -1361, -1361, -1361, -1361,   613, -1361,  1067,   965,
    1640      260,  8059, -1361,  9437, -1361, -1361,  8059, -1361,  8285,  8059,
    1641    -1361, -1361, -1361,  1065, -1361,   616,  1068,   590,  1070, -1361,
    1642     4969,  5843, -1361, -1361, -1361,    79, -1361, -1361, 10377, -1361,
    1643      173, 10377, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
    1644    -1361, -1361, 10300, 10300, -1361,  4451,  4451,  4451,  4451,  4451,
    1645     4451,  4451,  4451,  4451,  4451,  4451,  4451,  4451,  4451,  4451,
    1646     4451,  4451,  4451,  4825, 10300, -1361,   472,   707, -1361, -1361,
    1647      161,   161, -1361, -1361,  8398, -1361, -1361,  1033,   961, -1361,
    1648     1033, 10435, -1361, -1361, -1361,  8886,  5843,  1071,  8624,  1073,
    1649    -1361,  9466, -1361, -1361,   741, -1361,  1074,   817,  1080,  2410,
    1650      289,   966, -1361,   161,   161,   966,   329, -1361,   161,   161,
    1651     1033, -1361, -1361,   161,   161, -1361,   989,  9548,  1199, 10855,
    1652      627,   641,  9548, -1361,  6736, -1361,   966, -1361,  9328, -1361,
    1653      212,  7478,  7478,  7478,  1199, -1361, 10223,  1076,   366,  1015,
    1654      264,  1077, -1361,  1066,  3979,   524, -1361,  1167,  1199,  7478,
    1655      961,  1806,   961,   834,   732,   989, -1361, -1361,   762,   989,
    1656    -1361, -1361, -1361,   965, -1361,   989,   209,  9692, -1361,   625,
    1657     1090,   646,  1095, -1361,  1086,   209, -1361, -1361,  8857,   209,
    1658     1092,   471,   485,  9577,  6347,  1714,  4451,  2851, -1361, -1361,
    1659     1091,    93,  1091, -1361, -1361, -1361,   161,   161, -1361, -1361,
    1660      859, -1361,   161, -1361, -1361,  9111,   859,  1096,  4451, -1361,
    1661     1050, 10855, -1361, -1361,  1103, -1361, -1361, -1361,   961, -1361,
    1662    10784,  4451, -1361,  7478,   606,  7781, -1361, -1361,   741,  1105,
    1663     1107,  1562,  3179, -1361, -1361,  6966, -1361, -1361,  1102, -1361,
    1664    -1361,  1121, -1361,  1102,  1114, 10631, 10300,   273,  1099,    56,
    1665     1122,  1118,  1125,   962,  1119,  1127, -1361,  1130,  1134,  8315,
    1666     5990, -1361, 10300, -1361,   590,  1176, -1361, 10242, 10300,  1129,
    1667    -1361, -1361,  1015,   670, -1361, 10300, -1361, -1361,   824, -1361,
    1668    -1361, -1361, -1361, -1361,   357,   357,   484,   484,   568,   568,
    1669      568,   568,   283,   283,   719,   968,   967,   964,   996,  4451,
    1670      852, -1361,  9692,  1136,  1139,  1141,   707, -1361, -1361, -1361,
    1671    -1361, -1361,  9692,   675,  4451,  7478, -1361,  9328, -1361,  6466,
    1672     8737,  8662,  6228, -1361, -1361, -1361,   817,  9692,   882,  1147,
    1673     1149,  1154,  1158,  1162,  1178,  1181, -1361,  7167,  2410, -1361,
    1674    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
    1675    -1361, -1361, -1361, -1361, -1361, -1361,  1033, -1361, -1361, -1361,
    1676      966, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,  1182,
    1677    -1361,  1183,  1184, -1361, -1361,    81,  1129, 10223, -1361, -1361,
    1678    -1361,  5239,  1186, -1361, -1361, -1361, -1361, -1361,   859,  5411,
    1679     1267, -1361, -1361, -1361, -1361,  1171,    81, -1361, -1361,  1033,
    1680    -1361, -1361,  1033,    53,  1033, -1361, -1361, -1361, -1361, -1361,
    1681    -1361,  9000, -1361,   209, -1361,  8428, -1361, -1361,  1193,   894,
    1682     1196,  1200,  1201, -1361, -1361,  2851, -1361, -1361, -1361, -1361,
    1683    -1361, -1361, -1361,  1568, -1361,  1037, -1361, -1361,  1194,  1202,
    1684     1203, -1361, -1361,  1204,  1208, -1361,   606,  1611, -1361,   648,
    1685    -1361,  3179,   966, -1361,  1205,  6966,  9615,  8398,  1211, -1361,
    1686    -1361,  1213,  1220,  1207, -1361,  4451,   125,   216,  1218, -1361,
    1687     1222,   961,  1222,  5843, 10300, -1361, -1361,  1222, -1361,  1176,
    1688     5239, -1361, -1361, -1361, -1361,  1221, 10300,  1226,   961, 10223,
    1689    -1361, 10377, -1361,   961, -1361, -1361, 10300, -1361,   803,   989,
    1690    -1361, -1361, -1361, -1361, -1361, -1361, -1361,  1015,  8172, -1361,
    1691    -1361,  6585,  1229, -1361,   836,   989, -1361,   928,   932,   989,
    1692    -1361,  1135,  7244, -1361, -1361, -1361,  9692,  9692, -1361,  7852,
    1693     7852, -1361,  1224,  1225,  1233,  1234, -1361,  1238,   649,   147,
    1694     1129, -1361,   961, -1361,  3979, -1361, 10300,   492, -1361,  5724,
    1695     1236,  1242, 10095,  1246,  1248,     1,    51,    18, 10300,  1250,
    1696      209, 10300, 10300,  1249,   145,  1253,  1231, -1361, -1361, -1361,
    1697     1259, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
    1698      859,  1266, 10300, -1361,  9692,  9692,   161,  1269, -1361,  9149,
    1699     9038,   935,   989, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
    1700    -1361, -1361,  1271,  1611, -1361, -1361,  1254, -1361,  1102, -1361,
    1701    -1361,  1806,  1272, -1361, -1361, -1361,   677,  1268, -1361,    56,
    1702     1277,  4451,  1258,    56,    56,  1281,  1276, -1361,  1066, 10300,
    1703     1287,  1221,   764,    58,  1284, -1361,  1276, -1361,  1290,  1284,
    1704    -1361, -1361,  1293, -1361, -1361,  1033,  1296,  1298,  6109,  1301,
    1705     1302,  1305, -1361, -1361,  1309, -1361, -1361,  1033, -1361, -1361,
    1706    -1361, -1361,  1033, 10300, 10300,  4451,  1311, -1361, -1361, -1361,
    1707    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,  4451,
    1708     4451,  1312,  1315,  1284, -1361, -1361,   859, -1361, -1361, -1361,
    1709     7126,  9615, 10300, 10300,  1384, 10300, -1361, -1361,  1300, -1361,
    1710     1306, 10300,  1310,  1316, 10300,   954,  1318,    50,  8202,   875,
    1711      161, -1361, -1361,  5411,  1319,   498, -1361, -1361, -1361, -1361,
    1712    -1361, -1361, -1361, -1361, -1361,  1033, 10219, -1361,  7923,  1323,
    1713    -1361, -1361,  9615,   502,   527, -1361,  1322,  1327,   965,  1337,
    1714    -1361,   287, -1361, -1361, 10300,  1340,  1338, -1361, -1361,  1342,
    1715      178,   188,   961,  1344,  1347, -1361,  1349, -1361,  9692, -1361,
    1716    -1361, -1361, -1361, -1361,  1352, -1361,  9692,  9692,  9692, -1361,
    1717    -1361,  1356, -1361,  1357,  1360,  1362,   661,  7551,  7666, -1361,
    1718    -1361,   437, -1361,  1364,  1365, -1361,  7994,   679,   699,  1369,
    1719      717,  5593, -1361, -1361,   559, -1361, -1361,   718,  1370,  1371,
    1720      209,  1425,   951, -1361, -1361, 10300, -1361, 10377, 10095, -1361,
    1721    -1361, -1361,  1376,  1382,  9692, -1361, -1361, -1361,  1379, -1361,
    1722    -1361, -1361, -1361, -1361, -1361,  9615,   965,   262, -1361,  1368,
    1723      965,  1221,   334, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
    1724    -1361,  1381, -1361, -1361, -1361, -1361, -1361, -1361,  1389,  1392,
    1725    -1361, -1361, -1361, -1361, -1361, -1361, -1361,  1396, -1361,  1397,
    1726    -1361, -1361, 10095,    75, 10300, 10095, -1361,  1400, 10300, -1361,
    1727       97,  1419,  1424, -1361, -1361,  1407,  1412,  1390,   938, -1361,
    1728    -1361, -1361, -1361, -1361,  1199,  1806,  1409,  1002,   952,  4451,
    1729    -1361,   759,  1414, 10300,   961,   961,  1417,  1423,  1426,  1427,
    1730    -1361, -1361,  7852,  1413, -1361,  1492,  4451,  1429, -1361, -1361,
    1731    10006, -1361,   771, -1361,  1408, 10095,  1410, -1361, -1361,  1439,
    1732    -1361,  1447, -1361,  1463,  1465, -1361,  1431,  1454,  9615, -1361,
    1733    -1361, -1361,   965,   961,  1456,  1435,  1451, -1361,  1284,  1284,
    1734    -1361, -1361, -1361, -1361, -1361, 10095,   316, -1361,   956, -1361,
    1735    -1361,  4664, -1361, -1361,  1438, 10300, -1361, 10300,  4664,   209,
    1736     9437,   209,  9437,  1461, -1361,  1462, -1361, -1361, -1361,  1458,
    1737     1002, -1361,   774, -1361, -1361, 10300,  1467,  1471, -1361,  4451,
    1738     4451, -1361, -1361,  1042,    57, -1361, -1361,  1442, -1361,  1042,
    1739    -1361, -1361,  1766,   961, -1361, -1361,   209,  9437,   209,  9437,
    1740     1466,  1445,   961, -1361, -1361, -1361, -1361, -1361, 10006,  1469,
    1741     1042,  7053, 10300,  9917,  1473,  1042,  1479,  1766,  2991, -1361,
    1742    -1361, -1361,  1480, -1361, -1361, -1361, -1361,  8398, -1361, -1361,
    1743    -1361,  9824, -1361, 10006, -1361, -1361,  1475,  9731, -1361, -1361,
    1744     9917,   209,  2991,   209,  1482,  1485,   778, -1361,  9824, -1361,
    1745    -1361, -1361,  9731, -1361, -1361, -1361,   209,   209, -1361, -1361,
    1746    -1361, -1361, -1361, -1361, -1361, -1361
     1589    3705,  8889, -1281,   104, -1281, -1281, -1281, -1281, -1281, -1281,
     1590   -1281,    44, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1591   -1281, -1281, -1281, -1281, -1281,   155,   155,   155,  1205,   815,
     1592     110,  6006,   222, -1281, -1281, -1281, -1281, -1281,   130, -1281,
     1593   -1281, -1281,  1267,   189,  3199, -1281, -1281, -1281, -1281, -1281,
     1594   -1281,    31,   144, -1281,  1338, -1281, -1281, -1281, -1281,   153,
     1595    1410,   279,    82,  7674, -1281, -1281,  8086,  1234, -1281, -1281,
     1596   -1281,   981,   359,  7231,   925,   669,   981,  1012, -1281, -1281,
     1597     738,   575, -1281,   981,  1119, -1281,   242, -1281,   416,   419,
     1598   -1281, -1281, -1281, -1281,   277,   144,   155, -1281,   155, -1281,
     1599   -1281, -1281, -1281,  9536,  1338, -1281, -1281,  1338, -1281,  9574,
     1600     321, -1281, -1281, -1281,  2195,  9607, -1281,   565,   565,   565,
     1601   -1281, -1281, -1281,   155, -1281, -1281, -1281,   280,   366,   418,
     1602   -1281, -1281, -1281,   425, -1281, -1281, -1281, -1281, -1281,   443,
     1603     475, -1281, -1281,   120,  8972,  3739,   375,   387,   486,   496,
     1604     514,   527,   541,  8273,  7081,   550,   568, -1281,  9460, -1281,
     1605   -1281, -1281, -1281,   602, -1281,   121,  4456,  4456, -1281,   552,
     1606     298, -1281, -1281, -1281, -1281,   634,   302,   306,   327,   155,
     1607     590, -1281, -1281,  1410,  2454,   696, -1281,    90, -1281,   155,
     1608     155,   144, -1281, -1281,   124, -1281,   155,   155, -1281,  2638,
     1609     658,   667,   565,  6993, -1281, -1281,   678,  3199, -1281, -1281,
     1610     981, -1281, -1281, -1281,   144, -1281,  1338,    31, -1281,  8010,
     1611   -1281,   565,   565,   565,   144, -1281,  1205, -1281,  5198, -1281,
     1612   -1281,   673,   565, -1281,   565, -1281,   130,  8972,  9002,   686,
     1613   -1281,   815,   694,   565, -1281,  1205,   728,   736, -1281,  6006,
     1614     544, -1281, -1281, -1281,  9431, -1281, -1281,  3957, -1281,   696,
     1615      79,  9607,  6464,  2195,  2638, -1281,   157, -1281, -1281,  9574,
     1616    1338,   717,  7703, -1281, -1281,   699, -1281, 10744,   783,   831,
     1617    3925,   787,  6306, 10567, -1281,   827, -1281, -1281, -1281, -1281,
     1618   10625, 10625,   544,  8633,   829,  6306,  9085, -1281, -1281, -1281,
     1619   -1281, -1281, -1281,   862, -1281,  1121,  2197,  6306, -1281,   599,
     1620     388,   472,   354,   593,   830,   867,   873,   970,   245, -1281,
     1621   -1281,   874,   650, -1281,   325, -1281, -1281,  3739, -1281, -1281,
     1622     585,   901, -1281,   747,   901,   958,   130, -1281, -1281,   962,
     1623    9536, -1281,   977,  8746, -1281, -1281,   957,   935,  8355,  6993,
     1624     981, -1281,   981,   565,   565, -1281, -1281, -1281, -1281, -1281,
     1625   -1281,   565,  9645,  1338, -1281, -1281,  9683,  1067, -1281,  9123,
     1626   -1281, -1281, -1281, -1281, -1281, -1281, -1281,   990,  5315,  6306,
     1627   -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1628   -1281, -1281, -1281, -1281,  2195, -1281,   846,   996,   998,  1002,
     1629     864,  1005,  1008,  1026,  2454, -1281, -1281,  1031,    31,  1033,
     1630   -1281, -1281,  1061, -1281, -1281, -1281,  9431, -1281, -1281, -1281,
     1631   -1281, -1281,  2638, -1281,  8972,  8972, -1281,   565,  2195,  7112,
     1632    1338,  8426, -1281, -1281, -1281, -1281,  9431,    79, -1281, -1281,
     1633     981,   144, -1281, -1281,  9431, -1281,  6877, -1281, -1281,   565,
     1634     565,   376,  9716,  1035,  1868,  2111, -1281,   334,   338,   815,
     1635   -1281,  9002,  1059,  1047,   815,   565, -1281, -1281, -1281, -1281,
     1636    9940, -1281,   583,  6755, -1281,   144,  1065, -1281,  2195, 10825,
     1637   10471, -1281, -1281, -1281, -1281,   889,  2638, -1281,  8497,   696,
     1638    7558, -1281, -1281, -1281,  1286,   636,   874,   815,  7703,   868,
     1639    9574, -1281,  7703, -1281, -1281, -1281, -1281,   638, -1281,  1073,
     1640     831,   207,  8633, -1281,  9716, -1281, -1281,  8633, -1281,  8859,
     1641    8633, -1281, -1281, -1281,  1071, -1281,   681,  1077,   668,  1078,
     1642   -1281,  4381,  6724, -1281, -1281, -1281,   328, -1281, -1281, 10490,
     1643   -1281,   385, 10490, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1644   -1281, -1281, -1281,  6464,  6464, -1281,  6306,  6306,  6306,  6306,
     1645    6306,  6306,  6306,  6306,  6306,  6306,  6306,  6306,  6306,  6306,
     1646    6306,  6306,  6306,  6306,  4789,  6464, -1281,   650,  1062, -1281,
     1647   -1281,   155,   155, -1281, -1281,  8972, -1281, -1281,  1061,   544,
     1648   -1281,  1061, 10548, -1281, -1281, -1281,  5232,  6724,  1079,  9198,
     1649    1080, -1281,  9754, -1281, -1281,   602, -1281,  1082,  1185,  1084,
     1650    1899,   185,   874, -1281,   155,   155,   874,   233, -1281,   155,
     1651     155,  1061, -1281, -1281,   155,   155, -1281,   901,  9792,  1338,
     1652   10968,   234,   509,  9792, -1281,  5821, -1281,   874, -1281,  9645,
     1653   -1281,   293,  5525,  5525,  5525,  1338, -1281,  5054,  1072,   558,
     1654     990,  1016,  1083,  1086, -1281,  1074,  4456,   592, -1281,  1172,
     1655    1338,  5525,   544,  2195,   544,   696,   809,   901, -1281, -1281,
     1656     814,   901, -1281, -1281, -1281,   831, -1281,   901,   144,  9940,
     1657   -1281,   682,  1095,   691,  1099, -1281,  1098,   144, -1281, -1281,
     1658    9431,   144,  1103,   362,   407,  9825,  7200,  1999,  6306,  1917,
     1659   -1281, -1281,  1101,    94,  1101, -1281, -1281, -1281,   155,   155,
     1660   -1281, -1281,   815, -1281,   155, -1281, -1281,  3122,   815,  1107,
     1661    6306, -1281,  1059, 10968, -1281, -1281,  1102, -1281, -1281, -1281,
     1662     544, -1281, 10897,  6306, -1281,  5525,   675,  8355, -1281, -1281,
     1663     602,  1108,  1109,  1286,  3745, -1281, -1281,  7703, -1281, -1281,
     1664    1111, -1281, -1281,  1116, -1281,  1111,  1128, 10744,  6464,   146,
     1665    1113,    53,  1136,  1115,  1137,   829,  1131,  1139, -1281,  1142,
     1666    1143,  1696,  6843, -1281,  6464, -1281,   668,  1691, -1281,  6022,
     1667    6464,  1138, -1281, -1281,   990,   708, -1281,  6464, -1281, -1281,
     1668     727, -1281, -1281, -1281, -1281, -1281,   599,   599,   388,   388,
     1669     472,   472,   472,   472,   354,   354,   593,   830,   867,   873,
     1670     970,  6306,   755, -1281,  9940,  1148,  1149,  1152,  1062, -1281,
     1671   -1281, -1281, -1281, -1281,  9940,   713,  6306,  5525, -1281,  9645,
     1672   -1281,  7319,  9311,  9236,  7081, -1281, -1281, -1281,  1185,  9940,
     1673     951,  1160,  1163,  1165,  1166,  1175,  1176,  1182, -1281,  3532,
     1674    1899, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1675   -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,  1061, -1281,
     1676   -1281, -1281,   874, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1677   -1281,  1183, -1281,  1187,  1189, -1281, -1281,    31,  1138,  5054,
     1678   -1281, -1281, -1281,  5315,  1180, -1281, -1281, -1281, -1281, -1281,
     1679     815,  6243,  1272, -1281, -1281, -1281, -1281,  1188,    31, -1281,
     1680   -1281,  1061, -1281, -1281,  1061,    70,  1061, -1281, -1281, -1281,
     1681   -1281, -1281, -1281,  9498, -1281,   144, -1281,  9002, -1281, -1281,
     1682    1201,   818,  1208,  1212,  1213, -1281, -1281,  1917, -1281, -1281,
     1683   -1281, -1281, -1281, -1281, -1281,  1868, -1281,  1047, -1281, -1281,
     1684    1210,  1216,  1211, -1281, -1281,  1218,  1223, -1281,   675,  1777,
     1685   -1281,   562, -1281,  3745,   874, -1281,  1226,  7703,  9863,  8972,
     1686    1230, -1281, -1281,  1225,  1235,  1238, -1281,  6306,   252,    40,
     1687    1231, -1281,  1242,   544,  1242,  6724,  6464, -1281, -1281,  1242,
     1688   -1281,  1691,  5315, -1281, -1281, -1281, -1281,  1236,  6464,  1245,
     1689     544,  5054, -1281, 10490, -1281,   544, -1281, -1281,  6464, -1281,
     1690     850,   901, -1281, -1281, -1281, -1281, -1281, -1281, -1281,   990,
     1691    8746, -1281, -1281,  7438,  1249, -1281,   856,   901, -1281,   872,
     1692     904,   901, -1281,   565,  4646, -1281, -1281, -1281,  9940,  9940,
     1693   -1281,  8426,  8426, -1281,  1252,  1255,  1264,  1271, -1281,  1253,
     1694     594,   247,  1138, -1281,   544, -1281,  4456, -1281,  6464,   459,
     1695   -1281,  6603,  1274,  1279, 10343,  1281,  1283,   301,   308,   344,
     1696    6464,  1285,   144,  6464,  6464,  1284,   498,  1282,  1268, -1281,
     1697   -1281, -1281,  1289, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1698   -1281, -1281,   815,  1296,  6464, -1281,  9940,  9940,   155,  1301,
     1699   -1281,  9349,  4935,   934,   901, -1281, -1281, -1281, -1281, -1281,
     1700   -1281, -1281, -1281, -1281,  1305,  1777, -1281, -1281,  1290, -1281,
     1701    1111, -1281, -1281,  2195,  1309, -1281, -1281, -1281,   734,  1312,
     1702   -1281,    53,  1317,  6306,  1303,    53,    53,  1327,  1323, -1281,
     1703    1074,  6464,  1328,  1236,  1036,   113,  1326, -1281,  1323, -1281,
     1704    1331,  1326, -1281, -1281,  1337, -1281, -1281,  1061,  1340,  1343,
     1705    6962,  1342,  1344,  1350, -1281, -1281,  1353, -1281, -1281,  1061,
     1706   -1281, -1281, -1281, -1281,  1061,  6464,  6464,  6306,  1355, -1281,
     1707   -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
     1708   -1281,  6306,  6306,  1356,  1357,  1326, -1281, -1281,   815, -1281,
     1709   -1281, -1281,  7939,  9863,  6464,  6464,  1423,  6464, -1281, -1281,
     1710    1341, -1281,  1345,  6464,  1347,  1358,  6464,  1097,  1360,    74,
     1711    8776,  1197,   155, -1281, -1281,  6243,  1361,   467, -1281, -1281,
     1712   -1281, -1281, -1281, -1281, -1281, -1281, -1281,  1061, 10467, -1281,
     1713    8497,  1362, -1281, -1281,  9863,   482,   494, -1281,  1372,  1383,
     1714     831,  1394, -1281,    66, -1281, -1281,  6464,  1395,  1393, -1281,
     1715   -1281,  1399,   430,   657,   544,  1400,  1401, -1281,  1406, -1281,
     1716    9940, -1281, -1281, -1281, -1281, -1281,  1412, -1281,  9940,  9940,
     1717    9940, -1281, -1281,  1413, -1281,  1415,  1425,  1427,   623,  8125,
     1718    8240, -1281, -1281,   278, -1281,  1426,  1429, -1281,  8568,   745,
     1719     759,  1430,   769,  6445, -1281, -1281,   502, -1281, -1281,   770,
     1720    1434,  1436,   144,  1487,   911, -1281, -1281,  6464, -1281, 10490,
     1721   10343, -1281, -1281, -1281,  1442,  1444,  9940, -1281, -1281, -1281,
     1722    1437, -1281, -1281, -1281, -1281, -1281, -1281,  9863,   831,   269,
     1723   -1281,  1424,   831,  1236,   373, -1281, -1281, -1281, -1281, -1281,
     1724   -1281, -1281, -1281,  1443, -1281, -1281, -1281, -1281, -1281, -1281,
     1725    1452,  1454, -1281, -1281, -1281, -1281, -1281, -1281, -1281,  1458,
     1726   -1281,  1457, -1281, -1281, 10343,   148,  6464, 10343, -1281,  1462,
     1727    6464, -1281,   171,  1484,  1486, -1281, -1281,  1465,  1476,  1455,
     1728     905, -1281, -1281, -1281, -1281, -1281,  1338,  2195,  1471,   862,
     1729     918,  6306, -1281,   772,  1477,  6464,   544,   544,  1480,  1482,
     1730    1483,  1485, -1281, -1281,  8426,  1472, -1281,  1555,  6306,  1493,
     1731   -1281, -1281, 10254, -1281,   790, -1281,  1467, 10343,  1468, -1281,
     1732   -1281,  1511, -1281,  1513, -1281,  1507,  1529, -1281,  1496,  1519,
     1733    9863, -1281, -1281, -1281,   831,   544,  1520,  1499,  1515, -1281,
     1734    1326,  1326, -1281, -1281, -1281, -1281, -1281, 10343,   258, -1281,
     1735     922, -1281, -1281,  7790, -1281, -1281,  1501,  6464, -1281,  6464,
     1736    7790,   144,  9716,   144,  9716,  1528, -1281,  1530, -1281, -1281,
     1737   -1281,  1524,   862, -1281,   794, -1281, -1281,  6464,  1540,  1542,
     1738   -1281,  6306,  6306, -1281, -1281,  1051,   133, -1281, -1281,  1510,
     1739   -1281,  1051, -1281, -1281,  2099,   544, -1281, -1281,   144,  9716,
     1740     144,  9716,  1546,  1525,   544, -1281, -1281, -1281, -1281, -1281,
     1741   10254,  1541,  1051,  7866,  6464, 10165,  1543,  1051,  1551,  2099,
     1742    2338, -1281, -1281, -1281,  1552, -1281, -1281, -1281, -1281,  8972,
     1743   -1281, -1281, -1281, 10072, -1281, 10254, -1281, -1281,  1531,  9979,
     1744   -1281, -1281, 10165,   144,  2338,   144,  1557,  1559,   795, -1281,
     1745   10072, -1281, -1281, -1281,  9979, -1281, -1281, -1281,   144,   144,
     1746   -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281
    17471747};
    17481748
     
    17501750static const yytype_int16 yypgoto[] =
    17511751{
    1752    -1361,  3544,   970, -1361,    20, -1361,    -1,     2,   -74, -1361,
    1753      522,  -526,  -500,  -936,  -243,  4577, -1361,  1460,   543,   548,
    1754      295,   553,  1034,  1038,  1043,  1048,  1057, -1361,   -51,  -392,
    1755     4234,  -943,  -738,  -935, -1361,  -249,  -735,  -441, -1361,   365,
    1756    -1361,   391, -1096, -1361, -1361,   130, -1361, -1360, -1063,   247,
    1757    -1361, -1361, -1361, -1361,    70, -1089, -1361, -1361, -1361, -1361,
    1758    -1361, -1361,   323, -1158,    73, -1361,  -340, -1361,   501,   308,
    1759    -1361,   184, -1361,  -322, -1361, -1361, -1361,   564,  -756, -1361,
    1760    -1361,    12, -1009,   192,  2073, -1361, -1361, -1361,   -15, -1361,
    1761       83,   109,  -196,   768,  3404, -1361, -1361,   205,   194,   733,
    1762     -239,  1824, -1361,  1487, -1361, -1361,   107,  1870, -1361,  2141,
    1763     1985, -1361, -1361,  -425,  -428,  1206,  1210,   713,   957,   377,
    1764    -1361, -1361,  1195,   723,  -403, -1361,  -227,   263,  1518, -1361,
    1765    -1361,  -988,  -991,  -146,  1115,  1075,    26, -1361,  1505,   190,
    1766     -245,  -193,  -158,   681,   781, -1361,  1010, -1361,  2162,  1169,
    1767     -442,   924, -1361, -1361,   711, -1361,  -230, -1361,   137, -1361,
    1768    -1361, -1361, -1237,   439, -1361, -1361, -1361,  1190, -1361,    86,
    1769    -1361, -1361,  -871,   -43, -1329,  -102,  3071, -1361,  3370, -1361,
    1770      927, -1361,  -173,   505,  -181,  -170,  -166,     3,   -38,   -33,
    1771      -31,  1420,    16,    33,    44,  -169,  -160,  -157,  -151,  -142,
    1772     -329,  -550,  -528,  -519,  -571,  -327,  -523, -1361, -1361,  -506,
    1773     1109,  1117,  1120,  1366,  3814,  -567,  -543,  -531,  -530,  -562,
    1774    -1361,  -358,  -675,  -671,  -666,  -600,   354,  -320, -1361, -1361,
    1775      235,   558,   -67, -1361,  3073,   151,  -623,  -463
     1752   -1281,  4254,  1590, -1281,  1409, -1281,    52,     0,  -229, -1281,
     1753     596,  -527,  -497,  -931,   -99,  4508, -1281,   358,   609,   563,
     1754     518,   591,  1104,  1105,  1110,  1117,  1112, -1281,   613,  -339,
     1755    5346,  -893,  -690,  -919, -1281,   401,  -634,   444, -1281,   753,
     1756   -1281,   449, -1224, -1281, -1281,   191, -1281, -1265,  -724,   305,
     1757   -1281, -1281, -1281, -1281,   129, -1170, -1281, -1281, -1281, -1281,
     1758   -1281, -1281,   382, -1175,    71, -1281,  -381, -1281,   560,   356,
     1759   -1281,   229, -1281,  -338, -1281, -1281, -1281,   632,  -691, -1281,
     1760   -1281,    11, -1000,    10,  2865, -1281, -1281, -1281,  -125, -1281,
     1761     275,   363,  -194,  1416,  4157, -1281, -1281,    24,    25,   374,
     1762    -202,  1621, -1281,  2138, -1281, -1281,   112,  2165, -1281,  2832,
     1763     139, -1281, -1281,  -416,  -434,  1276,  1278,   786,  1028,   400,
     1764   -1281, -1281,  1269,   793,  -513, -1281,  -522,   -57,  -636, -1281,
     1765   -1281,  -959,  -994,   122,   819,  1153,   135, -1281,  1441,   296,
     1766    -299,  -212,  -109,   749,   844, -1281,  1087, -1281,  2859,  1478,
     1767    -462,  1000, -1281, -1281,   778, -1281,  -233, -1281,   -72, -1281,
     1768   -1281, -1281, -1232,   504, -1281, -1281, -1281,  1259, -1281,    68,
     1769   -1281, -1281,  -850,   -96, -1280,   -93,  1665, -1281,  2401, -1281,
     1770     993, -1281,  -164,   689,  -177,  -176,  -170,     2,   -39,   -33,
     1771     -28,  1052,    48,    75,    93,  -100,  -167,  -166,  -153,  -148,
     1772    -277,  -569,  -500,  -490,  -543,  -300,  -514, -1281, -1281,  -506,
     1773    1174,  1177,  1181,  2149,  5126,  -572,  -549,  -544,  -523,  -484,
     1774   -1281,  -427,  -665,  -663,  -660,  -602,  -320,  -271, -1281, -1281,
     1775     102,   140,   -84, -1281,  3728,   128,  -603,  -447
    17761776};
    17771777
     
    17791779   positive, shift that token.  If negative, reduce the rule which
    17801780   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1781 #define YYTABLE_NINF -521
     1781#define YYTABLE_NINF -522
    17821782static const yytype_int16 yytable[] =
    17831783{
    1784      110,   396,    46,    95,   146,   425,   450,   380,   381,   147,
    1785      404,   148,   397,   111,   405,   788,   398,   611,   765,   616,
    1786      930,   972,   399,   437,   931,   400,   709,   868,  1089,   932,
    1787      892,   401,   746,    46,    95,   715,   257,   503,   850,   992,
    1788      402,   635,   851,   525,    46,   639,    46,   158,   854,  1183,
    1789     1199,  1181,  1182,    30,   861,   748,    46,   839,   149,   753,
    1790     1463,  1141,    46,   190,   843,    46,   213,  1149,    46,   223,
    1791      264,   817,   108,    47,   173,   150,   844,   845,   216,   840,
    1792      174,   396,   407,    60,   842,   340,   151,  1459,   841,   108,
    1793      404,   119,   397,   676,   405,   704,   398,   948,  1396,   930,
    1794     -233,  -233,   399,   931,    47,   400,    46,    74,   932,    46,
    1795      113,   401,  1315,   685,    60,    46,  1193,   140,  1416,  1417,
    1796      402,   689,   108,   249,   173,   408,   199,   173,  1216,  1217,
    1797      258,    30,  1207,   259,   534,   406,  1211,   288,    74,   277,
    1798     1416,  1417,  1260,  1088,   146,   120,    46,   158,   855,   147,
    1799      108,   148,   858,   156,    46,   422,   480,   482,  1463,    46,
    1800      370,  1459,  1096,  1463,   743,   108,   975,   136,   235,   776,
    1801     1261,  -233,   173,   875,   679,   681,   200,   878,   680,   682,
    1802      481,  1316,  1209,  1463,    46,    46,   158,   165,  1418,   780,
    1803     1463,   839,    53,   112,    67,   163,  1257,   278,   149,    30,
    1804       46,  1479,   236,   408,   510,    66,   534,   237,    46,   158,
    1805     1427,   166,   255,   840,   674,   150,   283,    46,   156,   139,
    1806       46,   440,   841,    53,   146,    67,   151,    40,    41,   147,
    1807      671,   148,   141,  1131,   672,   173,    66,    30,   476,   883,
    1808      884,   436,  1189,   108,   108,   136,   137,  1183,   470,   108,
    1809       46,    95,   321,   519,   752,   207,   902,   209,   217,   108,
    1810      163,   337,   525,   143,    46,    46,   158,   525,  1151,  1190,
    1811      525,    46,   594,   767,   152,   828,   854,  1034,    46,   160,
    1812      700,  1035,   616,   786,   702,   240,   839,   709,  1345,   173,
    1813      522,    30,  1199,   843,   325,   488,   173,  1183,  1347,  1181,
    1814     1182,   340,   505,  1198,   934,   844,   845,   416,   840,   408,
    1815     1011,   427,   671,  1022,  1505,   431,   672,   841,   877,  1341,
    1816      481,    47,   168,   725,   810,  1132,   947,    30,    46,   370,
    1817      955,    60,  1133,  1213,   468,   108,   477,   136,   137,   821,
    1818      572,   534,   574,   534,   160,   321,   453,    46,    46,  1534,
    1819      663,  1536,  1089,   178,   534,    74,   108,   433,   136,   137,
    1820       74,   486,   444,   408,    46,   173,   923,    30,    46,   758,
    1821     1399,   174,   562,   563,   888,   573,   759,   431,   678,   583,
    1822      493,   465,   173,   198,   683,   584,   173,   325,   636,   973,
    1823      851,  -289,   640,   749,   244,    46,  1339,   852,   750,   608,
    1824      476,   527,   247,  1340,   156,    46,   370,  1038,   564,   565,
    1825      438,  1489,   439,   843,   881,   881,   881,   170,   868,   433,
    1826      476,  1183,  1014,    46,  1454,   844,   845,  1547,   476,    46,
    1827     1518,    46,   881,   249,  1548,   757,  1523,   859,  1190,   608,
    1828       53,   432,    67,  -111,  -516,  -465,   163,  1558,   593,   173,
    1829     1403,   600,  1199,    66,  1562,    46,   261,  1543,  1077,  1199,
    1830      250,  1563,  1550,   340,  -111,  1169,  1171,  1088,  1448,  1449,
    1831      633,   110,   458,   374,   637,   555,  -465,   337,  -465,    46,
    1832      556,   557,  -465,   498,   690,   499,   384,    46,   370,   375,
    1833      584,    46,    95,   605,   387,    46,   893,   389,   477,  1115,
    1834     1099,  1147,   385,   432,   391,    94,   881,  1016,   249,   327,
    1835      388,   828,  1199,   390,   396,  1256,   503,   764,   477,  1033,
    1836      392,   616,    74,  1118,   404,   397,   477,   529,   405,   398,
    1837      160,   725,   321,   321,   781,   399,    94,   764,   400,   787,
    1838      764,   209,    74,   -10,   401,  1378,  1035,   145,   710,    94,
    1839       74,  -111,  -111,   402,   585,   414,   408,   712,   104,   104,
    1840      453,   906,    47,   453,   711,   186,  1376,  -111,    94,   453,
    1841      734,    94,    60,   713,   325,   325,  -439,  1104,   434,   328,
    1842      576,   113,   408,  1130,  -290,   704,   710,   470,   442,   104,
    1843      577,     8,     9,    10,    11,    12,    74,    46,   881,   913,
    1844      712,   828,   926,   894,   558,   559,   493,  1196,   321,    46,
    1845      493,    46,   588,  1196,   408,   173,   927,  1330,   904,    30,
    1846      527,  1204,   527,  1197,   104,   527,   340,   321,   527,  1321,
    1847       46,  1104,  1033,  1331,   895,   727,   650,   329,   744,   337,
    1848      896,   728,  1332,  1426,   745,   933,    46,    33,   173,    94,
    1849      325,   535,   536,   537,   870,   560,   561,   526,  1333,   903,
    1850       46,   905,    94,    46,   173,  -440,   725,   933,   273,   325,
    1851      885,   709,   209,   476,   772,   538,   725,   539,   173,   540,
    1852      541,    53,   275,    67,   901,   976,   458,   395,   186,   458,
    1853     1379,   725,  1046,   321,    66,   458,   603,    46,   774,    46,
    1854      408,   760,   340,   761,   826,  1495,   762,   600,   775,   768,
    1855      276,    94,  1495,  1093,   956,   952,   608,     8,     9,    10,
    1856       11,    12,   754,    94,   957,   771,   330,   951,   755,   331,
    1857     1497,   772,  1498,  1053,   917,   325,   867,  1126,   871,  1249,
    1858      772,   600,   872,    46,    46,    30,   529,   876,   529,   605,
    1859      736,   529,   873,    94,   529,   919,   874,    46,  1005,   873,
    1860     -104,   772,   671,  1114,  -104,  1544,   672,   484,    63,   114,
    1861      700,   477,  1364,    33,   702,   173,  1365,   734,   869,  1000,
    1862      828,   505,  1077,   605,  1013,  1001,  1245,  1545,  1372,  1247,
    1863      728,  1388,   584,  1251,   772,    74,   332,  1289,  1290,    63,
    1864      226,   830,   337,   333,   227,   687,   104,   231,  1373,   233,
    1865      566,   567,   157,   477,   772,   576,   242,   408,    36,   368,
    1866      171,   172,    39,   439,   453,   577,  1375,  1380,   369,    40,
    1867       41,    94,   772,   772,   218,  1173,  1048,    74,    46,   729,
    1868      907,   737,   408,     2,   203,     4,     5,     6,     7,   373,
    1869       46,   610,   930,   734,   493,   369,   931,   798,   799,   800,
    1870      801,   932,     2,   203,     4,     5,     6,     7,  1445,   382,
    1871      910,   256,   408,  -111,  1442,  -111,   526,  1389,   337,  -111,
    1872     1464,   526,   394,  1511,   526,   386,   772,  1568,    36,  1512,
    1873      725,   725,    39,   584,  -111,  -111,  1194,   406,  1075,    40,
    1874       41,   249,   327,   408,   882,   882,   882,    34,   186,    35,
    1875      423,  1153,   326,   408,   126,   209,   127,   128,   129,   424,
    1876      256,   347,   882,    46,   933,   836,    34,   608,    35,   209,
    1877      108,  1415,   136,   137,  1423,   609,  1015,    46,  1004,  1001,
    1878      826,   173,   226,   429,  1165,    46,   408,   447,   725,   725,
    1879      458,   403,   603,  1297,  1298,  1150,  1300,   736,   701,   535,
    1880      536,   537,  1304,    46,   460,  1307,   421,   772,  1006,   426,
    1881      428,   416,   667,   408,   157,   486,   327,   408,  1119,  1462,
    1882     1135,   603,    60,   538,  1466,   539,   603,   540,  1317,    -3,
    1883      852,   327,   608,   463,    94,   445,   882,  1143,   610,   448,
    1884      764,   449,  1143,   327,   408,  1048,    74,  1444,  1385,  1386,
    1885      464,  1308,  1309,  1310,  1488,   466,    63,  1346,  1348,  1349,
    1886      164,   478,   169,   209,  1456,   175,   176,   177,   467,   179,
    1887      826,   485,   108,   736,   453,   489,  1168,   830,   608,   428,
    1888     1170,   915,   608,  1233,   230,   408,   288,   104,   737,   509,
    1889      922,  1143,  1436,  1001,   924,   976,   245,   246,    36,   976,
    1890      976,  1075,    39,   513,  1208,  1210,  1212,  1442,  1443,    40,
    1891       41,  1490,  1491,   530,   493,  1121,   321,   938,  1240,   938,
    1892      933,   518,   226,   534,   231,  1416,  1417,   568,   882,   571,
    1893     1326,    53,   570,    67,   569,    42,   574,  1516,  1456,   336,
    1894     1557,   794,   795,  -436,    66,   144,  1557,   256,   796,   797,
    1895      601,   592,   838,   673,   610,   595,   629,  1557,   325,   802,
    1896      803,  1557,   725,    46,   737,  1422,   645,   867,   664,   634,
    1897      725,   725,   725,   634,   665,   666,   256,   668,   933,   933,
    1898      669,   670,   477,   254,  1530,     8,     9,    10,    11,    12,
    1899      675,   340,     2,   203,     4,     5,     6,     7,  1120,    36,
    1900      458,   180,   181,    39,   693,   716,    74,   718,  -237,   869,
    1901       40,    41,   226,    30,  1337,   756,   769,   773,   725,   777,
    1902      225,   891,   831,   478,   833,   835,     8,     9,    10,    11,
    1903       12,   846,   -12,   890,  1104,   898,   182,   921,   347,   918,
    1904      929,    33,   701,   478,   920,   925,   183,   696,   453,   826,
    1905      946,   478,  -413,   216,    30,   439,    34,   745,    35,  -520,
    1906       46,   960,  1075,   969,     8,     9,    10,    11,    12,   967,
    1907      974,   980,   212,   981,   982,   984,   985,   721,   173,   986,
    1908      428,   734,    33,   987,   996,  1008,   838,   610,  1009,   239,
    1909     1010,    53,    30,    67,  1119,   735,  1024,    63,  1025,  1143,
    1910     1143,  1143,  1397,  1026,  1201,   428,  1397,  1027,  -291,   428,
    1911       36,  1028,   171,   172,    39,     8,     9,    10,    11,    12,
    1912       33,    40,    41,   212,   774,    36,   408,  1029,  1098,    39,
    1913     1030,  1041,  -401,  -400,   775,  1090,    40,    41,   256,   347,
    1914     1055,  1092,  1180,    30,  1100,  1101,    60,  1556,  1107,  1102,
    1915     1103,  1108,   599,   606,  1117,  1110,   764,  1075,  1109,  1111,
    1916     1127,   734,    42,  1129,   630,   631,   212,   337,   772,  1128,
    1917       74,    33,   144,  1134,   458,   990,  1139,  1142,  1163,  1184,
    1918     1185,   838,  1186,  1187,  1202,   816,   396,  1119,   933,  1188,
    1919     1203,  1121,  1440,   610,  1205,   404,  1206,   397,  1214,   405,
    1920     1218,   398,  1221,   634,   829,   933,   601,   399,  1480,  1220,
    1921      400,  1075,   603,    -3,  1075,  1226,   401,   848,  1231,   671,
    1922     1237,  1246,   498,   672,   477,   402,  1241,   212,  1248,  1250,
    1923     1253,  1254,   207,   217,   209,   601,    46,    46,  1258,  1262,
    1924      601,  1265,  1267,  1143,  1143,  1269,   634,  1270,    74,   347,
    1925      347,   347,  1271,  1272,   173,    53,  1273,    67,  1275,  1075,
    1926     1439,   736,  1282,  1291,  1075,   212,  1292,   347,    66,   212,
    1927     1299,  1302,  1328,  1320,  1120,  1215,  1334,  1303,   933,   933,
    1928      701,  1305,  1481,  1336,  1121,   721,  1338,  1306,   701,  1314,
    1929     1119,  1342,  1343,  1344,  1075,  1350,   478,   104,  1351,  1529,
    1930     1352,   256,   735,  1354,   159,   935,   610,  1360,  1361,  1362,
    1931       36,  1363,   171,   172,    39,  1370,  1371,  1374,  1381,  1382,
    1932      191,    40,    41,   214,  1310,  1390,   224,    72,   438,   146,
    1933      439,  1391,  1393,    53,   147,    67,   148,  1403,   478,  1400,
    1934     1410,   347,  1531,  1411,    46,  -402,  1201,   373,  1414,  1425,
    1935      961,  1539,   737,   428,  1429,  1433,   212,  1075,    72,  1431,
    1936     1434,  1435,  1075,  1441,   104,  1446,  1450,  1120,  1365,    46,
    1937       46,   158,  1451,  1455,   138,  1452,  1453,   256,   735,  1465,
    1938     1075,  1467,  1075,   989,   477,  1460,  1075,  1121,  1469,  1075,
    1939     1367,   477,   410,   219,    46,   370,  1471,  1075,  1473,   418,
    1940     1475,  1075,  1477,  1478,   159,  1483,  1484,  1485,    74,  1496,
    1941     1506,  1508,  1510,  1522,  1537,    74,  1538,   371,  1514,  1502,
    1942      721,  1502,  1515,  1542,   726,   238,   241,  1549,  1551,  1553,
    1943      721,  1566,   737,   347,  1567,   634,  1219,   212,  1021,   634,
    1944      829,  -292,   804,   159,   477,   721,  1559,   805,     8,     9,
    1945       10,    11,    12,   806,  1319,  1032,  1502,   104,  1502,   807,
    1946     1517,     8,     9,    10,    11,    12,   159,  1428,    74,   808,
    1947     1120,   410,  1569,    36,  1384,  1252,    30,    39,   441,    36,
    1948      350,   180,   181,    39,    40,    41,   321,   212,  1401,    30,
    1949       40,    41,  1499,    53,  1225,    67,  1105,   691,   720,   939,
    1950       53,   692,    67,   823,    33,   897,  1201,    63,  1106,   962,
    1951      741,  1138,  1054,  1201,  1116,  1383,   695,    33,   408,   739,
    1952      742,  1329,   970,     0,   696,   813,   697,   582,   325,   634,
    1953        0,     0,   949,   814,   950,   586,   815,     0,   589,     0,
    1954        0,   953,   954,     0,     0,  1503,   959,  1503,     0,     0,
    1955        0,     0,     0,    53,   446,    67,     0,     0,   964,   956,
    1956        0,   608,     0,   968,     0,  1113,  1201,     0,     0,   957,
    1957        0,     0,     0,   428,   114,    72,     0,     0,     0,     0,
    1958       72,   515,  1503,     0,  1503,   462,   371,     0,     0,   997,
    1959        0,   347,     0,     0,   532,   533,     0,     0,     0,   104,
    1960        0,   410,     0,     0,     0,   418,   554,     0,     0,     0,
    1961      212,     0,    36,     0,   180,   181,    39,     0,     0,     0,
    1962        0,   104,     0,    40,    41,    36,   601,   180,   181,    39,
    1963        0,     0,   726,     0,   599,     0,    40,    41,   212,   426,
    1964      104,     0,   533,   212,   721,   721,     0,   347,   347,   607,
    1965        0,   608,     0,     0,     0,     0,     0,     0,     0,   609,
    1966        0,     0,   695,   371,   408,     0,     0,  1200,     0,     0,
    1967        0,     0,   697,     0,  1500,   219,  1504,    36,   533,   180,
    1968      181,    39,     0,     0,     0,     0,     0,     0,    40,    41,
    1969      410,  1042,  1043,  1044,  1045,     0,  1047,     0,     0,   104,
    1970        0,     0,   721,   721,     0,     0,     0,     0,   634,     0,
    1971       75,  1533,  1091,  1535,  1527,     0,   408,    36,     0,   180,
    1972      181,    39,   651,     0,  1528,     0,  1097,   210,    40,    41,
    1973      212,     0,     0,   104,     0,     0,     0,   229,     0,     0,
    1974        0,    75,    72,     0,   212,     0,     0,     0,     0,     0,
    1975        0,     0,     0,     0,   262,     0,  1564,   350,  1565,     0,
    1976        0,     0,    72,     0,   263,  1112,   735,   726,     0,     0,
    1977       72,  1572,  1573,     0,     0,     0,   220,   726,   210,     0,
    1978        0,     0,   582,   582,     0,     0,     0,     0,     0,     0,
    1979        0,     0,   726,     0,     0,     0,   350,     0,     0,     0,
    1980        0,     0,     0,   714,     0,  1140,     0,     0,   462,  1296,
    1981        0,     0,  1148,     0,   350,     0,    72,  1152,     0,     0,
    1982        0,   210,  1156,     0,  1157,     0,   256,     0,  1159,  1160,
    1983     1161,    63,     0,  1164,     0,     0,   104,     0,   212,     0,
    1984        0,   747,  1176,   751,   721,     0,   735,     0,     0,     0,
    1985      114,     0,     0,     0,     0,   791,   792,   793,   350,   104,
    1986     1191,  1192,     0,   352,     0,     0,   104,     0,     0,     0,
    1987      908,     0,   484,     0,   911,     0,   721,     0,     0,     0,
    1988        0,     0,   210,     0,   721,   721,   721,  1222,   211,     0,
    1989     1224,     0,     0,     0,     0,   347,   347,     0,   533,     0,
    1990        0,     0,     0,     0,     0,     0,     0,   410,     0,  1200,
    1991        0,     0,     0,    54,    54,     0,     0,     0,     0,   104,
    1992      210,     0,     0,   350,   210,     0,     0,     0,  1239,     0,
    1993        0,     0,   721,     0,  1243,  1244,     0,     0,     0,   211,
    1994      504,     0,     0,   114,    54,     0,  1255,     0,     0,     0,
    1995        0,  1259,     0,     0,  1263,     0,  1264,     0,    75,  1266,
    1996        0,     0,     0,    75,     0,     0,     0,     0,   350,   350,
    1997      350,     0,  1274,     0,     0,     0,    54,     0,     0,    54,
    1998        0,    77,   211,     0,     0,  1281,   350,  1283,  1284,  1285,
    1999     1286,   726,   726,     0,     0,   889,     0,     0,     0,     0,
    2000        0,     0,    84,  1293,   350,  1294,     0,     0,     0,   169,
    2001        0,   210,    77,     0,     0,    72,     0,     0,     0,     0,
    2002      347,   350,   582,     0,     0,     0,     0,     0,     0,     0,
    2003      212,   533,     0,    84,     0,   916,     0,     0,  1322,  1323,
    2004        0,     0,     0,   211,     0,     0,   114,   221,     0,   726,
    2005      726,     0,     0,     0,     0,   942,     0,    72,   220,     0,
    2006      350,   945,     0,     0,     0,     0,   345,     0,   222,  1200,
    2007        0,     0,     0,     0,     0,     0,  1200,   991,     0,     0,
    2008        0,   211,     0,     0,     0,   211,     0,     0,     0,  1358,
    2009     1359,     0,   210,     0,     0,     0,     0,   350,     0,  1369,
    2010        0,     0,     0,     0,     0,     0,     0,     0,     0,   210,
    2011      542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
    2012        0,     0,     0,     0,   533,    75,     0,     0,     0,  1200,
    2013        0,    54,     0,     0,   353,   410,  1552,     0,     0,   350,
    2014      352,     0,   210,     0,   552,    75,     0,     0,     0,   350,
    2015        0,  1402,   350,    75,     0,   360,     0,   219,     0,   350,
    2016        0,    54,     0,  1406,   350,  1407,  1408,  1409,     0,     0,
    2017     1007,     0,   211,     0,     0,     0,     0,  1413,     0,   352,
    2018     1012,     0,     0,     0,     0,     0,  1424,     0,     0,     0,
    2019        0,  1327,     0,     0,     0,  1023,     0,   352,     0,    75,
    2020        0,     0,  1437,     0,     0,     0,     0,     0,     0,   212,
    2021        0,     0,     0,     0,  1154,     0,     0,     0,     0,     0,
    2022        0,     0,     0,   726,     0,     0,    72,     0,     0,    77,
    2023     1166,   726,   726,   726,    77,     0,   651,     0,     0,     0,
    2024        0,   352,     0,  1058,     0,     0,     0,     0,     0,     0,
    2025       84,     0,     0,   211,     0,    84,     0,     0,  1486,  1487,
    2026        8,     9,    10,    11,    12,   210,     0,     0,     0,     0,
    2027        0,  1492,     0,     0,     0,     0,     0,     0,  1492,   726,
    2028        0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
    2029        0,     0,     0,   210,     0,     0,     0,     0,   210,     0,
    2030        0,     0,     0,   211,     0,   212,   352,  1234,     0,     0,
    2031      350,  1526,     0,     0,     0,  1532,    33,     0,   533,     0,
    2032        0,    36,     0,   180,   181,    39,     0,     0,     0,   221,
    2033        0,     0,    40,    41,     0,   651,     0,     0,     0,     0,
    2034        0,     0,     0,   345,  1554,     0,  1555,     0,     0,     0,
    2035      222,   352,   352,   352,     0,     0,     0,     0,   607,   515,
    2036      608,     0,     0,   350,   350,     0,   350,   350,   609,   352,
    2037        0,     0,     0,     0,  1570,  1571,     0,     0,     0,     0,
    2038        0,     0,  1574,  1575,     0,   210,    72,   352,     0,     0,
    2039        0,     0,     0,     0,  1178,  1179,    77,     0,    75,   210,
    2040        0,     0,    54,     0,   352,     0,     0,     0,     0,     0,
    2041        0,   353,     0,     0,     0,     0,    77,    84,     0,   504,
    2042        0,   350,   350,     0,    77,     0,   211,     0,     0,     0,
    2043        0,     0,   360,     0,     0,  1058,     0,    84,     0,     0,
    2044       75,     0,     0,   352,   345,    84,     0,     0,     0,     0,
    2045      353,     0,  1228,  1229,   211,     0,     0,     0,     0,   211,
    2046        0,     0,     0,     0,     0,     0,     0,     0,   353,     0,
    2047       77,   360,     0,     0,     0,   533,     0,     0,     0,     0,
    2048      352,     0,     0,     0,     0,   350,     0,     0,     0,   360,
    2049        0,    84,     0,   210,     0,     0,     0,     0,     0,     0,
    2050        0,     0,     0,     8,     9,    10,    11,    12,     0,   345,
    2051        0,     0,   353,     0,     0,     0,     0,     0,     0,     0,
    2052        0,     0,   352,     0,     0,     0,     0,     0,   219,     0,
    2053        0,    30,   352,   360,     0,   352,     0,     0,     0,     0,
    2054      220,  1295,   352,     0,     0,     0,   211,   352,     0,     0,
    2055       72,     0,     0,     0,   345,   345,   345,     0,     0,    33,
    2056      211,     0,     0,   350,    36,   350,   180,   181,    39,     0,
    2057        0,     0,   345,     0,     0,    40,    41,   353,     0,     0,
     1784      46,   111,    95,   147,   451,   438,   397,   398,   426,   148,
     1785      53,   113,   112,   399,   149,   790,   400,   401,   265,   258,
     1786     405,   711,   767,   604,    66,    67,   870,   706,   111,   111,
     1787     402,    46,   932,    95,   933,   403,   750,   934,   853,   841,
     1788     755,    53,    46,   918,    46,   717,   159,   617,  1185,   748,
     1789     511,  1091,   894,   110,    46,    66,    67,   381,   382,   845,
     1790      46,  1201,   191,    46,   846,   214,    46,   852,   224,   341,
     1791     612,    47,   819,   208,  1151,   504,   218,   217,   678,  1143,
     1792     111,   111,  1183,  1184,   406,   847,   397,   398,   210,   994,
     1793     150,   636,   408,   399,   844,   640,   400,   401,   687,   141,
     1794     405,   778,    47,   423,    46,  1398,   691,    46,   842,   200,
     1795     402,   932,    74,   933,    46,   403,   934,   151,   843,   950,
     1796     883,   883,   883,  1195,   974,   682,   684,   856,    30,   477,
     1797     885,   886,    30,   863,   289,   152,  1317,   166,  1461,   883,
     1798     104,   104,   407,    74,   147,    46,   161,   159,   904,  1134,
     1799     148,   535,   121,    46,   445,   149,  1135,  1465,    46,   201,
     1800     371,   167,    30,   977,   406,   857,   481,   483,   739,   860,
     1801     278,   104,   164,   466,   841,  1341,  -234,  -234,  1009,  1098,
     1802    1218,  1219,  1342,    46,    46,   120,   159,   482,  1014,   175,
     1803     877,  1418,  1419,    30,   880,    30,   676,  1262,   250,    46,
     1804     409,   754,   212,  1025,   409,  1318,   104,    46,  1481,   159,
     1805    1090,   161,  1461,   883,  1418,  1419,    46,   745,   140,    46,
     1806     769,   441,   957,    30,   147,  1263,   111,   535,   279,   439,
     1807     148,   150,   417,   142,   409,   149,   375,   164,   144,   259,
     1808     673,   111,   260,   842,   440,   111,  1185,  -234,  1259,    46,
     1809     111,    95,   376,   843,   212,  1465,   595,   169,   151,    53,
     1810    1465,  1420,   975,    46,    46,   487,   159,   409,   179,   841,
     1811      46,    30,   326,    66,    67,    60,   152,    46,  1037,   604,
     1812    1465,   759,   199,   711,  1429,   341,   823,  1465,   535,   845,
     1813     702,   477,   111,   854,   846,   609,  1185,   212,   665,  1507,
     1814     153,  1549,   471,  1201,   674,   883,    60,  1036,   604,   433,
     1815     617,   477,  1013,   604,  1016,   847,   760,   469,  1153,   477,
     1816      47,  1560,   673,   761,  1024,   830,   680,    46,  1564,   371,
     1817    1183,  1184,   685,   535,  1536,   434,  1538,  1343,   842,   573,
     1818     459,   861,  1191,   609,   523,   873,    46,    46,   843,   874,
     1819     535,   437,   925,  1491,   704,  1550,   856,   245,   212,   936,
     1820    1133,    74,  -290,    46,   114,   326,    74,    46,   879,  1192,
     1821    1200,   433,   108,   210,   574,  1091,   739,  1401,   652,   108,
     1822    1192,   949,  1565,    40,    41,   250,   674,   853,   -10,   104,
     1823      40,    41,  -112,  -112,    46,   530,   212,   434,   161,   108,
     1824     212,   482,  1180,  1181,    46,   489,   371,   157,  -112,   845,
     1825      40,    41,   506,   385,   846,   108,   248,   388,   870,  -517,
     1826    1185,   390,    46,   575,   164,  1040,    40,    41,    46,   386,
     1827      46,   738,  1209,   389,   584,   847,  1215,   391,   782,  1211,
     1828     585,   227,   392,   563,   564,   228,   915,   341,   232,   712,
     1829     234,   262,   739,   714,    46,  1456,   108,   243,   393,   111,
     1830    1230,  1231,  1213,  1201,   111,   713,   256,    40,    41,   715,
     1831    1201,   606,   157,   111,  -440,  1450,  1451,   712,    46,   565,
     1832     566,   175,  -112,   250,   328,   692,    46,   212,   371,  1405,
     1833      46,   585,    95,   928,    46,   788,   329,   111,   637,   111,
     1834      53,   108,   641,  -112,   210,  1120,  1149,   322,   559,   560,
     1835    1106,  1101,    40,    41,    66,    67,   338,  1117,   706,   652,
     1836     397,   398,   714,  1201,    60,   110,  -441,   399,    74,   478,
     1837     400,   401,   978,   274,  1090,   405,   111,  1258,   929,   652,
     1838    1347,   111,   652,  1037,   402,  1171,  1173,   895,    74,   403,
     1839     617,   276,   326,   326,   459,   504,    74,   459,  1018,   561,
     1840     562,    47,   830,   459,  1106,   477,   428,   906,   212,   284,
     1841     432,   766,   908,  1035,  1198,     8,     9,    10,    11,    12,
     1842      40,    41,  1198,   277,   227,   884,   884,   884,   783,   111,
     1843    1199,   766,   727,   789,   766,   330,    46,  1332,  1323,   406,
     1844     322,   454,    74,    30,   884,   331,   520,   954,    46,  1334,
     1845      46,   341,  1380,  1333,   530,   108,   530,   774,   212,   530,
     1846     875,   832,   530,   332,   876,  1335,    40,    41,   326,    46,
     1847     104,    33,   432,  1381,  1355,   494,   333,  -466,  1132,   738,
     1848     516,   471,  1357,  1358,  1359,    46,   108,   326,   137,   138,
     1849     334,   111,   830,   533,   534,   440,   528,    40,    41,   157,
     1850      46,   369,   111,    46,   111,   555,   383,   711,  -466,  1378,
     1851    -466,   896,  -291,   875,  -466,  1048,   370,  1116,   884,     8,
     1852       9,    10,    11,    12,   567,   568,  1035,   341,   241,    94,
     1853    1394,   478,   729,   586,   526,   409,  1095,    46,   730,    46,
     1854     604,   534,   897,   594,   651,  -105,   601,    30,   898,  -105,
     1855     374,   478,   111,   326,   905,   738,   907,   556,   111,   478,
     1856      94,   395,   557,   558,   227,   634,   232,   606,   108,   638,
     1857     111,   146,   338,    94,  1366,    33,  1128,   534,  1367,    40,
     1858      41,   212,   387,    46,    46,   746,  1428,   756,   210,   187,
     1859    1249,   747,    94,   757,  1253,    94,   871,    46,   577,   407,
     1860     409,   606,   210,   736,   872,    60,   424,  1349,   578,   212,
     1861     884,  1520,  1497,   673,   212,   425,   776,  1525,   409,  1497,
     1862     887,   702,   953,   958,  1055,   609,   777,   322,   322,   430,
     1863     773,   919,  1390,   959,  1251,   903,   774,   774,  1545,   461,
     1864     921,   727,    74,  1552,   448,   171,   774,   464,   762,   108,
     1865     763,   137,   236,   764,   227,   454,   770,  1002,   454,   459,
     1866      40,    41,  1015,  1003,   454,   681,   683,   499,   730,   500,
     1867     490,   830,  1546,  1499,    94,  1500,   114,   674,    46,  1175,
     1868     739,  1006,  1003,  1247,    74,   704,   237,    94,   251,   585,
     1869      46,   238,  1291,  1292,  1374,   589,   210,   409,   832,   467,
     1870     774,   494,   212,   322,   932,   494,   933,   468,  1375,   934,
     1871     774,  1008,   396,   187,   774,   528,   212,   528,  1377,  1382,
     1872     528,  1447,   322,   528,   774,   774,   108,  1444,   137,   138,
     1873    1547,   510,   506,   652,   338,   514,    94,    40,    41,  1466,
     1874     111,   652,   978,  1513,  1570,   774,   978,   978,    94,  1514,
     1875     585,    53,   289,   526,   793,   794,   795,   909,   526,   409,
     1876     739,   526,   912,    46,   409,    66,    67,   328,   409,     2,
     1877     204,     4,     5,     6,     7,   519,   727,    46,    94,   108,
     1878     531,   137,   138,   535,   415,    46,   727,  1196,   322,   569,
     1879      40,    41,   485,  1077,   250,   328,   409,   534,  1155,   828,
     1880     409,   727,   601,    46,  1167,   478,   409,   435,  1387,  1388,
     1881     212,   736,   417,   669,   409,   812,   751,   443,  1122,  1121,
     1882    1170,   752,   609,   111,  1182,     2,   204,     4,     5,     6,
     1883       7,   869,   652,    34,   570,    35,   601,   487,   328,   409,
     1884     111,   571,   878,   652,   575,   111,    36,   478,   181,   182,
     1885      39,   337,  1172,    74,   609,  -292,    94,    40,    41,  1438,
     1886    1003,  1339,     8,     9,    10,    11,    12,  1242,    36,   459,
     1887     172,   173,    39,  1444,  1445,  1137,   611,  1492,  1493,    40,
     1888      41,   104,  1235,   608,   409,   609,   527,   736,   440,    34,
     1889      30,    35,  1145,   610,   111,   766,    -3,  1145,   338,   854,
     1890     328,   609,  1446,   572,   652,   370,  -437,   111,   111,   111,
     1891     593,    53,     8,     9,    10,    11,    12,  1532,    33,  1458,
     1892     454,   800,   801,   802,   803,  1203,    67,   108,   596,   137,
     1893     138,   534,   111,   187,  1418,  1419,   160,   326,    40,    41,
     1894      30,   646,   940,   738,   940,   666,  1145,   667,   104,  1399,
     1895     494,   668,   192,  1399,   670,   215,  1077,   671,   225,  1210,
     1896    1212,  1214,  -293,    46,   798,   799,   890,  1106,    33,     8,
     1897       9,    10,    11,    12,   338,   672,   341,   993,    36,   675,
     1898     172,   173,    39,   703,   677,  -112,   695,  -112,   871,    40,
     1899      41,  -112,  1518,  1458,  1310,  1311,  1312,    30,   804,   805,
     1900     727,   727,   212,  1348,  1350,  1351,  -112,  -112,   796,   797,
     1901     577,   255,   409,    74,   718,   374,    60,   720,  -238,    94,
     1902     578,   758,   771,   611,   534,    33,   775,   779,   -12,   893,
     1903     833,   835,  1017,   837,   689,   848,   828,   160,   111,   -13,
     1904     900,   104,   892,   459,   920,   536,   537,   538,   922,   923,
     1905     372,  -414,   208,   218,   217,  1482,   927,   698,   727,   727,
     1906      46,   948,  -521,   962,   969,   652,   747,   210,   731,   539,
     1907     983,   540,  1369,   541,   542,    53,   160,   971,     2,   204,
     1908       4,     5,     6,     7,   976,   982,   984,   986,   987,    66,
     1909      67,   988,   989,   998,  1122,  1121,    36,  1010,  1011,   160,
     1910      39,  1012,   111,   111,   111,   527,   226,    40,    41,  1026,
     1911     527,   442,  1027,   527,  1028,  1029,   127,  1077,   128,   129,
     1912     130,   536,   537,   538,  1030,  1031,   828,    40,    41,   728,
     1913     454,  1032,  1043,   838,  1057,   609,  -402,   840,  -401,   611,
     1914    1092,  1442,    34,   610,    35,   539,  1558,   540,   439,   541,
     1915    1319,   935,  1102,    53,  1145,  1145,  1145,  1103,  1094,   652,
     1916     652,  1104,  1105,   440,  1109,  1110,  1111,  1203,    67,  1112,
     1917     494,  1123,   322,   935,  1113,  1119,   478,    74,    36,  1129,
     1918     774,   212,    39,   104,  1130,  1079,  1136,  1122,  1121,    40,
     1919      41,  1141,   397,   398,  1131,   992,  1144,    36,  1165,   399,
     1920    1328,    39,   400,   401,  1190,   104,   405,  1186,    40,    41,
     1921    1187,   766,  1077,  1188,   652,    42,   402,   652,   534,   372,
     1922    1189,   403,  1204,   869,   104,   145,   931,  1205,   703,  1207,
     1923     673,  1208,   727,  1216,   743,  1220,    46,    46,  1222,  1223,
     1924     727,   727,   727,    -3,   744,  1228,   111,   111,  1531,    36,
     1925    1233,   172,   173,    39,  1239,    74,    63,   115,   499,   516,
     1926      40,    41,   652,  1243,  1007,  1248,  1077,   652,  1250,  1077,
     1927     406,   917,   840,   611,  1252,   736,  1255,   212,  1256,  1260,
     1928     924,  1264,  1267,   104,   926,   111,  1269,    63,   727,  1271,
     1929    1122,  1121,  1272,  1273,   674,  1274,   372,   652,  1145,  1145,
     1930     158,  1275,  1277,   174,   454,   828,  1284,  1293,  1294,  1301,
     1931     139,  1330,  1304,    53,  1077,  1322,  1305,   104,  1307,  1077,
     1932      53,    36,   219,   181,   182,    39,  1336,  1203,    67,  1308,
     1933     147,  1316,    40,    41,  1203,    67,   148,  1483,   728,  1338,
     1934      60,   149,  1050,  1340,    46,   111,  1344,  1345,  1206,  1077,
     1935    1346,  1352,  1353,   174,   111,   736,   174,  1354,   183,   257,
     1936     652,   239,   242,  1356,  1362,   652,  1363,   840,   184,    46,
     1937      46,  1441,   159,    53,  1364,   534,  1365,  1372,  1376,   611,
     1938    1373,   213,  1383,   652,  1384,   652,  1312,  1203,    67,   652,
     1939    1395,  1392,   652,  1393,    46,  1402,   371,  1533,   240,  1405,
     1940     652,   327,   174,  1412,   652,  1413,  1541,  -403,  1416,   257,
     1941     348,  1427,  1077,  1435,  1505,    74,  1505,  1077,   478,  1431,
     1942     104,  1433,    74,   338,  1436,  1443,  1437,  1367,  1448,  1452,
     1943     935,  1453,  1454,   213,  1455,  1077,  1457,  1077,  1467,  1469,
     1944     404,  1077,  1475,   104,  1077,  1299,  1300,  1123,  1302,  1462,
     1945     104,  1505,  1077,  1505,  1306,   422,  1077,  1309,   427,   429,
     1946    1471,  1152,  1473,   158,  1477,   174,   703,  1479,  1480,  1485,
     1947    1486,  1487,  1498,   728,   703,    74,   213,  1508,  1512,  1510,
     1948     165,  1524,   170,   728,   446,   176,   177,   178,   449,   180,
     1949     450,  1516,   611,  1517,  1539,  1544,  1540,  1551,   728,   465,
     1950    1553,  1555,  1561,   104,   231,    63,  1568,   326,  1569,  1079,
     1951     479,  1050,  1221,   806,  1321,   807,   246,   247,  1100,   174,
     1952     486,   808,   463,  1519,   211,   810,   174,  1430,   429,   809,
     1953     122,   125,   126,  1571,   230,  1386,  1254,   213,  1403,  1501,
     1954    1123,     8,     9,    10,    11,    12,     8,     9,    10,    11,
     1955      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     1956      22,    23,    24,  -294,  1227,    25,    26,    27,   693,    30,
     1957     694,  1107,   941,   722,    30,   213,   211,  1056,   478,   213,
     1958    1108,  1140,   825,  1118,   899,   478,   935,   964,  1331,   741,
     1959     972,   815,     0,     0,   816,   174,   257,    33,   817,   602,
     1960       0,   252,    33,   253,  1391,   630,     0,     0,     0,    37,
     1961      38,     0,   174,  -294,     0,     0,   174,  1424,   635,   211,
     1962       0,     0,   635,     0,     0,   257,     0,     8,     9,    10,
     1963      11,    12,     0,     0,     0,     0,     0,     0,   478,   776,
     1964       0,   409,     0,  1123,   935,   935,   337,     0,     0,   777,
     1965       0,     0,     0,     0,   109,    30,     0,     0,  1417,   653,
     1966       0,  1425,     0,     0,     0,  1217,   213,     0,     0,     0,
     1967       0,     0,   479,     0,     0,  1504,     0,  1504,     0,   174,
     1968     211,     0,     0,    33,   394,     0,     0,   348,     0,     0,
     1969       0,     0,   479,     0,   413,   414,     0,   728,   728,   418,
     1970     479,   420,   421,     0,     0,     0,  1464,     0,     0,     0,
     1971       0,  1468,  1504,     0,  1504,     0,     0,     0,   211,     0,
     1972       0,     0,   211,     0,     0,   958,   723,   609,     0,   429,
     1973       0,     0,     0,     0,     0,   959,     0,     0,   505,     0,
     1974     716,  1490,   322,     0,   737,   463,    63,   213,     0,     8,
     1975       9,    10,    11,    12,   429,   728,   728,     0,   429,     0,
     1976       0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
     1977      11,    12,     0,   600,   607,     0,     0,    30,   749,    36,
     1978     753,   181,   182,    39,     0,   631,   632,   257,   348,     0,
     1979      40,    41,     0,     0,     0,    30,     0,   213,     0,     0,
     1980       0,     0,     0,     0,     0,    33,     0,     0,     0,   211,
     1981      36,     0,   181,   182,    39,     0,   697,     0,   409,     0,
     1982       0,    40,    41,    33,   698,     0,   699,  1559,    36,     0,
     1983     181,   182,    39,  1559,   818,     0,     0,     0,     0,    40,
     1984      41,     0,     0,     0,  1559,   174,     0,   608,  1559,   609,
     1985       0,     0,   635,   831,   935,   602,     0,   610,     0,     0,
     1986       0,     0,     0,     0,     0,   697,   850,   409,     0,     0,
     1987       0,   935,     0,     0,     0,   699,     0,     0,   174,     0,
     1988       0,     0,     0,     0,   602,     0,     0,     0,     0,   602,
     1989     211,     0,     0,     0,   174,   635,     0,  1329,   348,   348,
     1990     348,     0,     0,     0,     0,  1385,     0,   211,     0,   174,
     1991      36,     0,   181,   182,    39,     0,     0,   348,     0,     0,
     1992     213,    40,    41,     0,     0,     0,     0,     0,     0,   728,
     1993       0,     0,   891,     0,     0,   723,     0,   728,   728,   728,
     1994     211,     0,     0,     0,   935,   935,   479,   697,   213,   409,
     1995       0,   257,   737,   213,     0,   937,     0,   699,     0,     0,
     1996       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     1997      17,    18,    19,    20,    21,    22,    23,    24,    72,     0,
     1998      25,    26,    27,     0,     0,   728,     0,     0,   479,    30,
     1999     452,   348,     0,   944,     0,     0,     0,     0,     0,   947,
     2000     963,     0,     0,   429,     0,    75,   174,     0,     0,    72,
     2001      36,     0,   181,   182,    39,     0,     0,    33,     0,     0,
     2002       0,    40,    41,     0,    37,    38,     0,   257,   737,     0,
     2003       0,     0,     0,   991,     0,     0,    75,     0,     0,     0,
     2004       0,   213,     0,     0,   220,     0,     0,  1529,     0,   409,
     2005       0,     0,     0,     0,     0,   213,     0,  1530,   485,     0,
     2006       0,   453,     0,   211,  1502,   710,  1506,     0,     0,   109,
     2007     723,   221,     0,     0,     0,     0,     0,     0,     0,     0,
     2008     723,     0,     0,   348,     0,   635,   820,   821,  1023,   635,
     2009     831,   211,     0,     0,     0,   723,   211,     0,     0,     0,
     2010       0,  1535,     0,  1537,     0,  1034,    36,     0,   181,   182,
     2011      39,     0,     0,     0,     0,     0,   855,    40,    41,   858,
     2012     859,     0,   862,     0,   864,   865,     0,     0,     0,   866,
     2013     867,     0,   351,   543,   544,   545,   546,   547,   548,   549,
     2014     550,   551,   552,   263,     0,     0,  1566,     0,  1567,   213,
     2015       0,     0,     0,   264,   951,     0,   952,    63,     0,   353,
     2016       0,  1574,  1575,   955,   956,     0,     0,   553,   961,     0,
     2017       0,     0,   174,     0,   653,     0,   411,     0,     0,   635,
     2018     966,  1060,     0,   419,   211,   970,     0,     0,     8,     9,
     2019      10,    11,    12,     0,     0,     0,     0,     0,   211,     0,
     2020       0,     0,     0,     0,     0,     0,   447,     0,     0,     0,
     2021       0,   999,     0,   942,   943,  1115,    30,     0,   505,   945,
     2022       0,     0,     0,   429,   115,     0,     0,    72,     0,     0,
     2023       0,     0,    72,     0,     0,     0,     0,     0,     0,     0,
     2024       0,   348,     0,     0,    33,     0,     0,     0,     0,    36,
     2025       0,   181,   182,    39,    75,   411,   600,     0,     0,    75,
     2026      40,    41,     0,     0,     0,     0,   124,   124,   124,     0,
     2027       0,     0,     0,   653,     0,     0,   602,     0,     0,     0,
     2028       0,     0,     0,     0,     0,     0,  1529,     0,   409,   427,
     2029       0,     0,   211,     0,   723,   723,  1530,   348,   348,     0,
     2030       0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
     2031       0,   583,     0,  1044,  1045,  1046,  1047,  1202,  1049,   587,
     2032       0,     0,   590,     0,     0,     0,     0,   220,     0,     0,
     2033       0,     0,    30,     0,  1093,     0,     0,   124,     0,   124,
     2034       0,   213,     0,     0,     0,     0,     0,     0,  1099,     0,
     2035       0,     0,   723,   723,   221,     0,     0,     0,   635,     0,
     2036      33,     0,     0,     0,   273,    36,     0,   181,   182,    39,
     2037       0,     0,     0,  1060,     0,     0,    40,    41,     0,     0,
     2038       0,     0,     0,     0,     0,   411,     0,  1114,     0,   419,
     2039       0,     0,     0,     0,    72,     0,     0,     0,     0,     0,
     2040       0,     0,   183,     0,     0,     0,     0,     0,     0,   351,
     2041       0,     0,   184,     0,    72,     0,   737,     0,     0,     0,
     2042     124,    75,    72,     0,     0,     0,     0,  1142,   124,     0,
     2043     124,   124,     0,     0,  1150,   124,   353,   124,   124,  1154,
     2044       0,    75,     0,     0,  1158,     0,  1159,     0,   351,    75,
     2045    1161,  1162,  1163,     0,     0,  1166,     0,     0,     0,  1298,
     2046       0,     0,     0,     0,  1178,     0,   351,     0,    72,   174,
     2047       0,     0,     0,     0,   411,   353,   257,     0,     0,  1297,
     2048       0,    63,  1193,  1194,   211,     0,     0,     0,     8,     9,
     2049      10,    11,    12,   353,   723,    75,   737,     0,     0,     0,
     2050     115,     0,     0,     0,     0,     0,     0,   124,     0,  1224,
     2051     351,     0,  1226,     0,     0,     0,    30,     0,     0,     0,
     2052     213,     0,     0,     0,     0,     0,   723,     0,     0,     0,
     2053       0,     0,     0,     0,   723,   723,   723,   353,     0,     0,
     2054       0,     0,     0,     0,    33,   348,   348,     0,     0,    36,
     2055    1241,   181,   182,    39,     0,     0,  1245,  1246,     0,  1202,
     2056      40,    41,     0,     0,     0,     0,   583,   583,  1257,     0,
     2057       0,     0,     0,  1261,     0,   351,  1265,     0,  1266,     0,
     2058       0,  1268,   723,     0,     0,     0,   263,     0,     0,     0,
     2059       0,     0,     0,   115,  1276,     0,   264,     0,     0,     0,
     2060       0,     0,   353,  1232,     0,     0,     0,  1283,     0,  1285,
     2061    1286,  1287,  1288,     0,     0,     0,   213,     0,     0,     0,
     2062     351,   351,   351,     0,     0,  1295,     0,  1296,     0,     0,
     2063       0,   170,     0,     0,     0,     0,     0,     0,     0,   351,
     2064       0,     0,     0,     0,     0,   174,     0,   353,   353,   353,
     2065       0,     0,     0,     0,     0,   910,     0,   351,     0,   913,
     2066    1324,  1325,     0,   211,     0,     0,   353,     0,    72,     0,
     2067     348,     0,    77,     0,   351,     0,     0,     0,     0,     0,
     2068       0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
     2069       0,     0,   411,     0,     0,    75,   115,     0,     0,    84,
     2070       0,   353,     0,    77,     0,    54,    54,     0,     0,     0,
     2071      72,  1360,  1361,   351,     0,     0,     0,     0,     0,  1202,
     2072       0,  1371,     0,     0,     0,     0,  1202,  1320,     0,     0,
     2073      84,     0,     0,     0,     0,     0,    54,    75,   222,     0,
     2074     353,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2075     351,     0,     0,     0,     0,     0,     0,     0,     0,   211,
     2076       0,     0,     0,     0,     0,   223,     0,     0,    54,     0,
     2077       0,    54,     0,  1404,     0,     0,     0,   353,     0,  1202,
     2078       0,     0,     0,     0,     0,  1408,  1554,  1409,  1410,  1411,
     2079       0,     0,   351,     0,     0,     0,     0,     0,     0,  1415,
     2080       0,     0,   351,     0,     0,   351,     0,   583,  1426,     0,
     2081     220,     0,   351,     0,     0,     0,     0,   351,     0,   353,
     2082       0,     0,   124,   124,  1439,     0,   354,     0,     0,   353,
     2083       0,     0,   353,     0,     0,     0,     0,   221,     0,   353,
     2084       0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
     2085       0,     0,   124,   361,     0,   124,   124,     0,   124,   346,
     2086     124,   124,     0,     0,     0,   124,   124,     0,     0,     0,
     2087       0,     0,     0,     0,     0,     0,     0,     0,     0,    72,
     2088    1488,  1489,     0,     0,     0,     0,     0,     0,     0,     0,
     2089       0,     0,     0,  1494,     0,     0,     0,     0,     0,     0,
     2090    1494,     0,     0,     0,     0,     0,    75,     0,     0,     0,
    20582091       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2059        0,     0,     0,     0,     0,   350,     0,     0,   360,     0,
    2060        0,   182,     0,   350,   350,   350,     0,     0,     0,    75,
    2061        0,   183,     0,     0,   350,   350,     0,     0,     0,     0,
    2062        0,     0,   353,   353,   353,     0,  1353,     0,    72,     0,
    2063        0,     0,     0,     0,  1355,  1356,  1357,     0,     0,     0,
    2064      353,     0,     0,   360,   360,   360,   345,     0,     0,     0,
    2065        0,   350,     0,     0,   211,     0,     0,     0,   353,     0,
    2066        0,   360,     0,     0,     0,     0,     0,     0,     0,    77,
    2067        0,     0,     0,     0,     0,   353,     0,     0,     0,   360,
    2068        0,     0,  1392,     0,     0,   210,     0,     0,     0,     0,
    2069       84,     0,     0,   352,     0,     0,   360,     0,     0,     0,
    2070        0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    2071        0,    77,     0,     0,   353,     0,     0,     0,     0,     0,
    2072        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    2073        0,     0,    84,     0,     0,   360,     0,     0,   345,   350,
    2074        0,     0,     0,     0,     0,   345,   352,   352,     0,   352,
    2075      352,   353,     0,     0,     0,     0,     0,    33,     0,     0,
    2076        0,     0,    36,     0,   180,   181,    39,     0,     0,    75,
    2077        0,     0,   360,    40,    41,     0,     0,     0,     0,     0,
    2078        0,     0,     0,     0,     0,     0,     0,     0,    72,     0,
    2079        0,     0,     0,   353,     0,    72,     0,     0,     0,   695,
    2080        0,   408,     0,   353,   352,   352,   353,     0,     0,   697,
    2081        0,   221,    54,   353,   360,     0,     0,     0,   353,     0,
    2082        0,     0,     0,     0,   360,     0,     0,   360,     0,     0,
    2083        0,     0,   222,     0,   360,     0,     0,     0,     0,   360,
    2084        0,     8,     9,    10,    11,    12,   211,     0,    72,     0,
     2092     411,    77,     0,     0,    54,     0,    77,     0,     0,     0,
     2093       0,     0,     0,  1528,     0,     0,     0,  1534,     0,     0,
     2094       0,     0,     0,     0,   124,     0,     0,     0,    84,   124,
     2095     124,     0,     0,    84,    54,   124,     0,     0,     0,     0,
     2096       0,     0,     0,   351,     0,     0,  1556,     0,  1557,     0,
     2097       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2098      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2099     353,    25,    26,    27,     0,     0,  1572,  1573,     0,  1156,
     2100      30,   452,     0,     0,  1576,  1577,     0,     0,     0,     0,
     2101       0,     0,     0,     0,     0,  1168,   351,   351,     0,   351,
     2102     351,   222,     0,     0,     0,     0,     0,     0,    33,     0,
     2103       0,     0,     0,     0,     0,    37,    38,     0,     0,    72,
     2104       0,     0,     0,   353,   353,     0,   353,   353,   223,     8,
     2105       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2106      19,    20,    21,    22,    23,    24,    75,     0,    25,    26,
     2107      27,     0,   453,     0,   351,   351,   946,    30,     0,     0,
     2108     109,     0,     0,     0,     0,     0,     0,     0,    77,     0,
     2109       0,     0,  1236,     0,     0,     0,     0,     0,     0,     0,
     2110       0,   353,   353,   354,     0,    33,     0,     0,    77,     0,
     2111      36,     0,    37,    38,    39,    84,    77,     0,     0,     0,
     2112       0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
     2113     361,     0,     0,     0,     0,    84,   346,     0,   351,     0,
     2114       0,     0,   354,    84,     0,     0,     0,    42,     0,   155,
     2115       0,     0,     0,     0,     0,     0,     0,    44,     0,     0,
     2116     354,     0,    77,     0,     0,   353,     0,     0,     0,   361,
    20852117       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2086        0,     0,     0,     0,   210,     0,     0,     0,   352,    30,
    2087        0,     0,     0,     0,     0,     0,     0,     0,     0,    54,
    2088       77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2089        0,     0,     0,     0,     0,     0,   345,    33,     0,     0,
    2090        0,    84,    36,     0,   180,   181,    39,     0,     0,     0,
    2091        0,   220,     0,    40,    41,     0,     0,     0,     0,     0,
    2092        0,     0,     0,     0,     0,     0,     0,     0,     8,     9,
    2093       10,    11,    12,    75,     0,     0,   121,   124,   125,  1527,
    2094        0,   408,     0,     0,     0,     0,   352,     0,   352,  1528,
    2095        0,     0,   345,   345,     0,     0,    30,   162,     0,     0,
    2096      210,     0,     0,     0,   353,     0,     0,     0,     0,     0,
    2097        0,     0,    54,     0,     0,     0,   215,     0,   352,     0,
    2098        0,     0,     0,     0,    33,   360,   352,   352,   352,    36,
    2099        0,   180,   181,    39,     0,     0,     0,   352,   352,     0,
    2100       40,    41,     0,     0,     0,     0,     0,   251,     0,   252,
    2101        0,    75,     0,     0,     0,     0,     0,   353,   353,     0,
    2102      353,   353,   162,     0,     0,   211,   262,   269,     0,     8,
    2103        9,    10,    11,    12,   352,     0,   263,     0,   360,   360,
    2104       77,   360,   360,     0,     0,     0,     0,     0,     0,     0,
    2105        0,     0,     0,     0,     0,     0,   162,    30,     0,     0,
    2106        0,    84,     0,     0,     0,     0,   366,     0,     0,     0,
    2107      372,     0,     0,     0,     0,   353,   353,     0,     0,     0,
    2108        0,     0,     0,     0,     0,    33,     0,     0,     0,   393,
    2109       36,     0,     0,     0,    39,     0,   360,   360,     0,   412,
    2110      413,    40,    41,     0,   417,     0,   419,   420,     0,     0,
    2111        0,     0,     0,    54,    54,     0,     0,     0,     0,   162,
    2112        0,   211,   352,     0,     0,     0,     0,   741,     0,     0,
    2113        0,   215,     0,     0,     0,     0,    54,   742,     0,   353,
    2114        0,     0,     0,     0,     0,     0,     0,     0,     0,   162,
    2115      459,     0,     0,     0,     0,    54,     0,     0,     0,     0,
    2116      360,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2117        0,    75,     0,   372,     0,     0,     0,     0,    75,     0,
    2118        0,   162,   221,     8,     9,    10,    11,    12,    13,    14,
     2118       0,   220,     0,     0,     0,     0,     0,   361,     0,    84,
     2119       0,     0,     0,     0,     0,    54,     0,     0,     0,     0,
     2120       0,     0,     0,    72,   354,     0,     0,     0,   221,     0,
     2121       0,     0,     0,     0,     0,     0,   351,     0,   351,     0,
     2122       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2123      75,   361,     0,     0,     0,     0,     0,   346,     0,     0,
     2124       0,     0,     0,   353,     0,   353,     0,     0,   351,     0,
     2125       0,     0,     0,     0,     0,     0,   351,   351,   351,     0,
     2126       0,     0,     0,     0,     0,     0,     0,   351,   351,   354,
     2127       0,     0,     0,     0,     0,   353,     0,     0,     0,     0,
     2128       0,    72,     0,   353,   353,   353,     0,     0,     0,     0,
     2129       0,     0,     0,     0,   353,   353,   361,     0,     0,     0,
     2130       0,     0,   346,     0,   351,     0,     0,     0,    75,     0,
     2131       0,     0,     0,     0,   354,   354,   354,     0,     0,     0,
     2132       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2133       0,   353,     0,   354,     0,     0,     0,     0,     0,   124,
     2134       0,   361,   361,   361,     0,     0,     0,   346,   346,   346,
     2135       0,   354,     0,     0,     0,     0,     0,     0,     0,     0,
     2136     361,     0,    77,     0,     0,     0,   346,     0,   354,     0,
     2137       0,     0,     0,     0,     0,     0,     0,     0,   361,  1033,
     2138       0,     0,     8,     9,    10,    11,    12,     0,     0,    84,
     2139       0,     0,   351,     0,     0,   361,     0,     0,     0,     0,
     2140       0,     0,     0,     0,    77,     0,     0,   354,   280,   281,
     2141      30,   282,     0,     0,     0,     0,     0,     0,     0,   353,
     2142       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2143       0,    84,     0,     0,   361,     0,     0,   283,    33,     0,
     2144     346,    72,     0,   284,   354,     0,     0,   285,    72,     0,
     2145     286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
     2146       0,     0,     0,   124,     0,   292,     0,     0,    75,     0,
     2147       0,   361,     0,     0,     0,    75,     0,     0,     0,     0,
     2148     293,     0,   377,     0,     0,     0,   354,     0,     0,   295,
     2149     826,   297,   298,   299,   300,     0,   354,     0,     0,   354,
     2150       0,    72,     0,     0,   222,     0,   354,     0,     0,     0,
     2151       0,   354,     0,   361,     0,     0,     0,     0,     0,     0,
     2152       0,     0,     0,   361,     0,     0,   361,     0,    75,     0,
     2153       0,   223,   346,   361,     0,     0,     0,     0,   361,   346,
     2154       0,     0,     0,     0,     0,  -516,     0,     0,     1,     2,
     2155       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2156      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2157      23,    24,     0,    77,    25,    26,    27,    28,     0,     0,
     2158      29,     0,     0,    30,    31,     0,     0,     0,     0,     8,
     2159       9,    10,    11,    12,     0,     8,     9,    10,    11,    12,
     2160      84,     0,     0,     0,     0,     0,    54,     0,    32,     0,
     2161       0,    33,   163,    34,     0,    35,    36,    30,    37,    38,
     2162      39,     0,     0,    30,     0,     0,     0,    40,    41,     0,
     2163       0,   216,     0,     0,     0,     0,     0,     0,     0,     0,
     2164       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2165      36,    33,     0,    42,    39,    43,    36,   354,     0,     0,
     2166      39,    40,    41,    44,     0,     0,     0,    40,    41,     0,
     2167       0,     0,     0,    54,     0,     0,     0,   163,     0,     0,
     2168       0,     0,     0,   270,   361,     0,     0,    42,     0,     0,
     2169     346,     0,     0,   743,     0,     0,     0,   145,     0,     0,
     2170       0,     0,     0,   744,     0,     0,     0,     0,     0,     0,
     2171     354,   354,   163,   354,   354,     0,     0,     0,     0,     0,
     2172       0,     0,   367,     0,     0,     0,   373,     0,     0,     0,
     2173       0,     0,     0,    77,     0,     0,     0,   361,   361,     0,
     2174     361,   361,     0,     0,     0,     0,   346,   346,     0,     0,
     2175       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2176      84,     0,     0,     0,     0,     0,    54,     0,   354,   354,
     2177       0,     0,     0,     0,     0,   163,     0,     0,     0,     0,
     2178       0,     0,     0,     0,     0,     0,     0,   216,     0,     0,
     2179       0,     0,     0,     0,     0,   361,   361,     0,     0,     0,
     2180       0,   280,   281,     0,   282,   163,   460,     8,     9,    10,
     2181      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2182      21,    22,    23,    24,     0,     0,    25,    26,    27,   373,
     2183     283,     0,   354,     0,     0,    30,   284,   163,     0,     0,
     2184     285,     0,     0,   286,   287,   288,   289,    40,    41,     0,
     2185     290,   291,     0,     0,     0,     0,     0,     0,   292,   361,
     2186       0,   460,     0,    33,   163,     0,     0,     0,     0,     0,
     2187     205,    38,     0,   512,     0,   222,     0,     0,     0,     0,
     2188       0,     0,   295,   379,   297,   298,   299,   300,     0,     0,
     2189       0,     0,     0,     0,     0,     0,     0,    77,     0,     0,
     2190       0,     0,   223,     0,     0,     0,     0,    54,    54,     0,
     2191     354,   605,   354,     0,     0,   269,   629,     0,     0,     0,
     2192       0,     0,     0,     0,    84,     0,     0,     0,     0,     0,
     2193      54,     0,     0,     0,     0,     0,     0,   361,     0,   361,
     2194       0,     0,   354,     0,     0,     0,     0,     0,     0,    54,
     2195     354,   354,   354,     0,     0,     0,     0,     0,     0,     0,
     2196       0,   354,   354,     0,     0,     0,     0,     0,     0,   361,
     2197       0,     0,     0,     0,     0,    77,     0,   361,   361,   361,
     2198       0,     0,     0,     0,     0,     0,     0,     0,   361,   361,
     2199       0,     0,   163,   163,   346,   346,     0,     0,   354,   367,
     2200       0,     0,    84,    54,     0,     0,     0,     0,    54,     0,
     2201       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2202     460,     0,     0,   460,     0,   361,     0,     0,     0,   460,
     2203       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2204       0,     0,    54,     0,     0,     0,     0,     0,     0,     0,
     2205       0,     0,     0,     0,     0,     0,   740,     0,     0,     0,
     2206     209,     0,     0,     0,     0,     0,     0,     0,   163,     0,
     2207     229,     0,   233,     0,   235,     0,     0,     0,     0,     0,
     2208     460,   244,   460,     0,     0,   460,   354,   163,   460,     0,
     2209       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2210     367,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2211       0,     0,   209,   361,   233,   235,   244,     0,     0,   346,
     2212       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2213       0,     0,     0,     0,     0,    77,     0,   154,     0,     0,
     2214       0,     0,    77,     0,     0,    54,     0,     0,     0,     0,
     2215       0,     0,     0,   163,     0,   209,     0,     0,     0,     0,
     2216       0,     0,    84,     0,     0,   367,     0,   605,    54,    84,
     2217     836,     0,     0,     0,     0,    54,     0,     0,     0,     0,
     2218       0,     0,     0,   249,     0,     0,     0,     0,     0,     0,
     2219       0,     0,     0,   254,     0,    77,   605,     0,     0,     0,
     2220       0,   605,     0,     0,     0,     0,     0,     0,     0,     0,
     2221     367,   367,   367,     0,     0,     0,   209,     0,   233,   235,
     2222     244,     0,    84,     0,     0,     0,     0,     0,    54,   367,
     2223       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2224      17,    18,    19,    20,    21,    22,    23,    24,  -294,   154,
     2225      25,    26,    27,     0,   209,     0,     0,     0,   209,    30,
     2226       0,     0,     0,   384,   740,     0,     0,     0,     0,     0,
     2227       0,     0,     0,     0,   503,     0,     0,     0,     0,     0,
     2228       0,     0,     0,     0,     0,   460,   416,    33,     0,     0,
     2229       0,     0,     0,     0,    37,    38,     0,     0,  -294,     0,
     2230     431,     0,     0,   367,     0,   960,     0,     0,     0,   436,
     2231       0,     0,     0,     0,     0,     0,     0,     0,     0,   444,
     2232       0,     0,     0,     0,   209,     0,     0,     0,     0,   642,
     2233       0,   337,   280,   281,     0,   282,     0,     0,     0,   109,
     2234     740,     0,     0,     0,   470,   209,     0,     0,     0,   480,
     2235     233,   235,     0,     0,     0,     0,     0,     0,   244,     0,
     2236       0,   283,   488,     0,     0,     0,     0,   284,   498,     0,
     2237     502,   285,     0,     0,   286,   287,   288,   289,    40,    41,
     2238       0,   290,   291,     0,     0,     0,     0,     0,   532,   292,
     2239       0,     0,     0,     0,     0,   367,     0,     0,     0,   629,
     2240       0,   209,   367,     0,   293,     0,   377,     0,     0,   378,
     2241       0,     0,     0,   295,   379,   297,   298,   299,   300,   209,
     2242       0,     0,     0,     0,   209,     0,   209,     0,     0,     0,
     2243       0,   592,     0,     0,     0,     0,   597,     0,     0,     0,
     2244       0,     0,     0,   209,     0,     0,   209,   209,     0,     0,
     2245       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2246       0,     0,   209,     0,   643,     0,     0,     0,   644,   645,
     2247       0,   647,     0,     0,     0,     0,   209,     0,   659,   660,
     2248       0,   661,   662,   209,   663,     0,   664,     0,     0,     0,
     2249       0,     0,     0,  1176,     0,   460,     8,     9,    10,    11,
     2250      12,     0,     0,   592,     0,     0,     0,     0,     0,     0,
     2251       0,   679,     0,     0,     0,     0,     0,     0,     0,     0,
     2252       0,     0,   280,   281,    30,   282,     0,     0,     0,     0,
     2253       0,     0,     0,     0,     0,     0,   690,   163,     0,     0,
     2254       0,     0,     0,     0,     0,     0,     0,   696,     0,     0,
     2255       0,   283,    33,   367,     0,     0,     0,   284,     0,     0,
     2256       0,   285,     0,     0,   286,   287,   288,   289,    40,    41,
     2257     732,   290,   291,     0,     0,     0,   735,     0,     0,   292,
     2258       0,   470,     0,     0,     0,     0,     0,     0,   605,     0,
     2259       0,     0,     0,     0,   293,     0,   377,     0,     0,   209,
     2260       0,     0,     0,   295,  1177,   297,   298,   299,   300,   367,
     2261     367,     0,     0,     0,     0,     0,     0,     0,   772,     0,
     2262       0,     0,     0,     0,     0,     0,     0,   209,   513,     0,
     2263     515,   518,   209,     0,   787,     0,     0,     0,   521,   522,
     2264       0,     0,     0,   515,   515,     0,     0,     0,     0,     0,
     2265       0,     0,     0,     0,     0,   515,     0,     0,     0,     0,
     2266       0,     0,     0,     0,     0,   280,   281,     0,   282,   460,
     2267       0,   814,     0,     0,     0,     0,     0,     0,     0,     0,
     2268     824,     0,     0,     0,     0,     0,     0,   827,     0,     0,
     2269       0,   515,   834,     0,   283,     0,     0,     0,     0,     0,
     2270     284,     0,     0,   849,   285,     0,     0,   286,   287,   288,
     2271     289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
     2272     209,     0,   292,     0,     0,     0,     0,   515,   740,     0,
     2273       0,     0,     0,     0,   209,     0,     0,   293,     0,   377,
     2274       0,     0,     0,     0,   889,   811,   295,   379,   297,   298,
     2275     299,   300,     0,     0,   503,     0,     0,     0,     0,     0,
     2276       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2277     216,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2278     834,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2279      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2280      23,    24,  -294,     0,    25,    26,    27,     0,   740,     0,
     2281       0,     0,     0,    30,     0,   209,     0,     0,     0,     0,
     2282       0,     0,     0,     0,     0,     0,     0,     0,   209,     0,
     2283       0,     0,     0,     0,     0,   249,     0,     0,     0,     0,
     2284       0,    33,     0,     0,     0,   967,   968,   209,    37,    38,
     2285       0,     0,  -294,     0,     0,     0,     0,   367,   367,   985,
     2286       0,     0,     0,     0,     0,     0,   216,     0,     0,     0,
     2287       0,     0,     0,     0,     0,     0,  1000,     0,  1001,     0,
     2288       0,     0,  1005,   642,     0,   337,     0,     0,     0,     0,
     2289       0,     0,     0,   633,     0,     0,     0,     0,     0,     0,
     2290       0,     0,     0,     0,   515,   515,   515,   515,   515,   515,
     2291     515,   515,   515,   515,   515,   515,   515,   515,   515,   515,
     2292     515,   515,     0,     0,     0,     0,     0,     0,     0,     0,
     2293     280,   281,     0,   282,   209,     0,     0,     0,     0,     0,
     2294       0,     0,     0,     0,     0,     0,     0,   515,  1038,     0,
     2295       0,     0,     0,     0,     0,  1039,     0,     0,     0,   283,
     2296     209,     0,     0,     0,     0,   284,     0,     0,  1041,   285,
     2297    1042,     0,   286,   287,   288,   289,    40,    41,     0,   290,
     2298     291,     0,   367,     0,  1054,     0,     0,   292,   209,     0,
     2299       0,  1058,     0,     0,     0,     0,     0,     0,     0,     0,
     2300       0,     0,   293,  1096,   377,     0,  1097,     0,     0,   780,
     2301       0,   295,   379,   297,   298,   299,   300,     0,     0,     0,
     2302     209,     0,     0,     0,   597,     0,     0,     0,     0,     0,
     2303       0,   209,     0,     0,     0,     0,     0,     0,     0,     0,
     2304     460,     0,   460,     0,     0,     0,   515,     0,     8,     9,
     2305      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2306      20,    21,    22,    23,    24,  -294,     0,     0,   515,     0,
     2307       0,     0,     0,     0,     0,     0,    30,   460,     0,   460,
     2308       0,   515,     8,     9,    10,    11,    12,    13,    14,    15,
     2309      16,    17,    18,    19,    20,    21,    22,    23,    24,  -294,
     2310       0,    25,    26,    27,    33,     0,     0,   163,     0,     0,
     2311      30,     0,   209,  1160,     0,  -294,     0,     0,     0,   340,
     2312     362,     0,     0,     0,     0,     0,     0,   515,     0,     0,
     2313       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2314       0,     0,     0,    36,     0,   335,   336,    39,     0,  -294,
     2315       0,     0,     0,   412,    40,    41,     0,     0,     0,   515,
     2316     412,     0,     0,     0,     0,     0,     0,     0,     0,   532,
     2317       0,     0,     0,     0,   515,     0,  1225,     0,     0,     0,
     2318     642,     0,   337,     0,     0,     0,     0,     0,     0,     0,
     2319     633,   280,   281,     0,   282,     0,     0,     0,     0,   209,
     2320       0,     0,     0,     0,     0,  1238,     0,     0,     0,     0,
     2321    1240,     0,     0,     0,     0,     0,     0,     0,  1244,     0,
     2322     283,     0,     0,     0,     0,     0,   648,     0,   137,   138,
     2323     285,     0,   412,   286,   649,   288,   289,    40,    41,     0,
     2324     290,   291,     0,     0,     0,     0,     0,     0,   292,  1270,
     2325       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2326       0,  1278,     0,   293,  1279,   650,  1280,   651,   378,     0,
     2327       0,     0,   295,   379,   297,   298,   299,   300,     0,     0,
     2328    1289,  1290,     0,     0,     0,     0,     0,     0,   412,     0,
     2329       0,     0,     0,     0,     0,   209,   412,   588,     0,   412,
     2330     591,     0,  1303,     0,     0,     0,     0,     0,     0,   362,
     2331       0,     0,     0,   621,     0,     0,     0,     0,     0,     0,
     2332       0,     0,     0,     0,     0,   515,     0,     0,     0,  1326,
     2333     320,     0,   639,     0,     0,   340,     0,     0,     0,     0,
     2334     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2335       0,     0,   380,   380,     0,     0,   515,     0,     0,     0,
     2336       0,     0,   412,     0,     0,     0,   412,     0,   515,     2,
     2337     204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2338      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2339      23,    24,     0,     0,    25,    26,    27,   362,     0,     0,
     2340       0,     0,     0,    30,     0,     0,     0,     0,     0,   515,
     2341       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2342     412,     0,     0,   320,     0,     0,  1396,     0,  1397,     0,
     2343       0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
     2344       0,  1406,     0,  1407,     0,     0,     0,     0,   484,     0,
     2345       0,   412,     0,     0,   362,     0,     0,     0,     0,     0,
     2346       0,  1414,     0,     0,     0,     0,     0,     0,     0,     0,
     2347       0,     0,     0,     0,  -399,   686,     0,  1432,  1434,     0,
     2348       0,   515,     0,   633,     0,     0,     0,     0,     0,  1440,
     2349       0,     0,  1244,     0,   412,     0,     0,   340,   362,     0,
     2350       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2351       0,     0,     0,     0,  1463,     0,     0,     0,     0,     0,
     2352       0,     0,     0,  1470,     0,   515,  1472,     0,  1474,  1476,
     2353    1478,     0,     0,     0,     0,     0,     0,     0,     0,   515,
     2354     515,     0,     0,   412,   412,     0,     0,     0,     0,     0,
     2355       0,   209,     0,     0,     0,     0,     0,     0,     0,     0,
     2356       0,     0,   829,   362,   380,   362,     0,     0,     0,     0,
     2357    1509,     0,  1511,     0,   621,  1244,   621,   621,     0,     0,
     2358       0,     0,     0,   621,     0,     0,     0,     0,     0,     0,
     2359    1523,     0,     0,   868,   362,     0,     0,     0,     0,   362,
     2360       0,     0,     0,     0,     0,     0,     0,     0,   362,   362,
     2361     362,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2362       0,     0,     0,     0,     0,     0,     0,   362,     0,     0,
     2363       0,     0,   412,   911,     0,     0,   412,   914,     0,     0,
     2364       0,     0,     0,   916,     0,     0,     0,     0,     0,     0,
     2365       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2366       0,   340,   362,   412,     0,   412,   734,     0,     0,   412,
     2367       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2368      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2369      25,    26,    27,     0,     0,     0,     0,     0,     0,    30,
     2370       0,   362,   621,     0,     0,   768,     0,     0,     0,     0,
     2371       0,     0,     0,     0,     0,     0,     0,     0,   781,     0,
     2372       0,     0,     0,     0,     0,   768,     0,    33,   768,     0,
     2373       0,     0,     0,     0,   205,    38,     0,   340,   362,   791,
     2374     792,     0,   412,   412,     0,     0,     0,     0,     0,   515,
     2375       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2376       0,   813,     0,     0,     0,     0,   515,     0,     0,     0,
     2377       0,   822,     0,     0,     0,     0,     0,     0,   344,   628,
     2378       0,     0,     0,   781,   412,     0,     0,     0,     0,     0,
     2379       0,     0,     0,   362,     0,     0,     0,     0,     0,   829,
     2380     362,     0,     0,     0,   621,     0,   621,     0,     0,     0,
     2381       0,     0,     0,     0,     0,     0,   621,     0,     0,     0,
     2382       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2383       0,     0,     0,   888,     0,     0,     0,     0,     0,   515,
     2384     515,     0,   380,     0,     0,     0,     0,     0,     0,     1,
     2385       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     2386      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2387      22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
     2388       0,    29,   344,     0,    30,    31,     0,     0,     0,   829,
     2389       0,     0,     0,     0,     0,     0,     0,   412,   280,   281,
     2390       0,   282,     0,   412,     0,     0,     0,     0,     0,    32,
     2391       0,   412,    33,     0,    34,     0,    35,    36,     0,    37,
     2392      38,    39,     0,     0,   621,   621,     0,   283,    40,    41,
     2393       0,     0,     0,   284,     0,     0,     0,   285,     0,     0,
     2394     286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
     2395       0,   362,     0,     0,    42,   292,    43,   412,   781,     0,
     2396     990,     0,     0,     0,    44,     0,   995,     0,     0,     0,
     2397     293,     0,   377,  1004,     0,   992,   412,  1157,     0,   295,
     2398     379,   297,   298,   299,   300,     0,   362,     0,     0,     0,
     2399       0,     0,   412,  1169,     0,   621,   621,  1174,     0,     0,
     2400       0,     0,     0,     0,     0,     0,     0,   362,   362,     0,
     2401       0,     0,     0,     0,     0,     0,     0,  1021,  1022,     0,
     2402     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2403       0,     0,     0,     0,     0,   344,     0,     0,     0,     0,
     2404       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2405       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2406       0,     0,     0,     0,     0,     0,     0,     0,   829,   412,
     2407    1237,     0,     0,     0,     0,  1052,     0,     0,     0,   380,
     2408       0,   621,     0,     0,     0,     0,     1,     2,   204,     4,
     2409       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    21192410      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2120      345,   345,     0,   222,    77,   459,     0,     0,   162,    54,
    2121        0,    30,     0,     0,    54,     0,     0,   353,     0,   353,
    2122        0,     0,     0,     0,     0,    84,     0,     0,     0,     0,
    2123        0,    75,     0,     0,     0,   123,   123,   123,   360,    33,
    2124      360,     0,     0,     0,     0,     0,     0,     0,    54,   353,
    2125        0,     0,     0,     0,     0,   604,     0,   353,   353,   353,
    2126      628,     0,     0,     0,     0,     0,     0,     0,   353,   353,
    2127      360,     0,     0,     0,     0,     0,     0,     0,   360,   360,
    2128      360,     0,    77,     0,     0,     0,     0,     0,     0,   360,
    2129      360,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2130        0,     0,     0,    84,     0,   353,   123,   208,   123,     0,
    2131        0,     0,     0,     0,     0,     0,     0,   228,     0,   232,
    2132        0,   234,     0,     0,     0,   345,   360,     0,   243,     0,
    2133        0,     0,   272,     0,     0,     0,   162,   162,     0,     0,
    2134        0,     0,     0,   366,     0,     0,     0,     0,     0,     0,
    2135        0,    54,     0,     0,     0,     0,     0,     0,   208,     0,
    2136      232,   234,   243,     0,   459,     0,     0,   459,     0,     0,
    2137        0,     0,     0,   459,    54,     0,     0,     0,     0,     0,
    2138        0,    54,     0,     0,     0,     0,     0,     0,   123,     0,
    2139        0,     0,     0,   353,     0,     0,   123,     0,   123,   123,
    2140      738,   208,     0,   123,     0,   123,   123,     0,     0,     0,
    2141        0,     0,   162,     0,   360,     0,     0,     0,     0,     0,
    2142        0,     0,     0,     0,   459,     0,   459,   153,     0,   459,
    2143        0,   162,   459,     0,    54,     0,     0,     0,     0,     0,
    2144        0,     0,    77,     0,   366,     0,     0,     0,     0,    77,
     2411       0,     0,    25,    26,    27,    28,     0,     0,    29,   280,
     2412     281,    30,  1061,  1062,     0,  1063,   362,     0,  1064,  1065,
     2413    1066,  1067,  1068,  1069,  1070,  1071,     0,     0,     0,  1072,
     2414       0,     0,     0,  1073,  1074,     0,    32,     0,   283,    33,
     2415       0,    34,     0,    35,   648,   320,    37,    38,   285,     0,
     2416       0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
     2417       0,  1138,  1139,     0,     0,     0,   292,     0,   380,     0,
     2418       0,     0,   280,   281,   995,   282,   340,  1148,     0,   768,
     2419       0,   293,     0,  1075,     0,     0,   169,     0,     0,     0,
     2420     295,   296,   297,   298,   299,   300,   362,     0,     0,  1164,
     2421    1076,   283,     0,     0,  -129,     0,     0,   284,     0,     0,
     2422    1179,   285,     0,     0,   286,   287,   288,   289,    40,    41,
     2423       0,   290,   291,     0,     0,     0,     0,     0,     0,   292,
     2424       0,     0,   380,     0,  1197,     0,     0,     0,     0,     0,
     2425       0,     0,     0,     0,   293,   362,   362,     0,     0,   995,
     2426     995,     0,     0,   295,   379,   297,   298,   299,   300,     0,
    21452427       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2146        0,     0,   208,    84,   232,   234,   243,     0,     0,     0,
    2147       84,     0,     0,   248,     0,   123,     0,     0,     0,     0,
    2148        0,     0,     0,   253,     0,     0,     0,     0,     0,     0,
    2149        0,   818,   819,     0,     0,     0,     0,   162,     0,     0,
    2150      208,     0,    77,     0,   208,     0,     0,     0,     0,   366,
    2151        0,   604,     0,     0,   834,     0,     0,     0,     0,     0,
    2152      502,   853,     0,    84,   856,   857,     0,   860,     0,   862,
    2153      863,     0,     0,     0,   864,   865,     0,     0,   153,     0,
    2154      604,     0,     0,     0,     0,   604,     0,     0,     0,     0,
    2155        0,     0,   383,     0,   366,   366,   366,     0,     0,     0,
     2428    1229,     0,     0,     0,     0,     0,     0,     0,     1,     2,
     2429     204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2430      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2431      23,    24,     0,     0,    25,    26,    27,    28,     0,     0,
     2432      29,   280,   281,    30,   282,     0,     0,   995,     0,     0,
    21562433       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2157      208,     0,   366,     0,     0,   415,     0,     0,     0,     0,
    2158        0,     0,     0,     0,     0,     0,     0,     0,     0,   430,
    2159        0,   208,     0,     0,     0,     0,   232,   234,   435,     0,
    2160        0,     0,     0,     0,   243,     0,     0,   738,   443,     0,
    2161        0,     0,     0,     0,     0,     0,     0,   940,   941,     0,
    2162        0,     0,     0,   943,     0,     0,     0,     0,   459,     0,
    2163        0,     0,     0,   469,     0,     0,     0,     0,   479,     0,
    2164        0,     0,     0,     0,     0,     0,   366,   208,   958,     0,
    2165        0,   487,     0,     0,     0,     0,     0,   497,     0,   501,
    2166        0,     0,     0,     0,     0,   208,     0,     0,     0,     0,
    2167      208,     0,   208,     0,     0,     0,     0,   531,     0,     0,
    2168        0,     0,     0,   738,     0,     0,     0,     0,     0,   208,
    2169        0,     0,   208,   208,     0,     0,     0,     0,     0,     0,
    2170        0,     0,     0,     0,     0,     0,     0,     0,   208,     0,
     2434     280,   281,     0,   282,     0,     0,   888,     0,     0,     0,
     2435     283,    33,     0,    34,     0,    35,   284,     0,    37,    38,
     2436     285,  1281,  1282,   286,   287,   288,   289,    40,    41,   283,
     2437     290,   291,     0,     0,     0,   284,     0,     0,   292,   285,
     2438     362,     0,   286,   287,   288,   289,    40,    41,     0,   290,
     2439     291,     0,     0,   293,     0,  1075,     0,   292,     0,     0,
     2440       0,     0,   295,   296,   297,   298,   299,   300,     0,     0,
     2441       0,     0,   293,     0,   377,     0,  -129,     0,     0,     0,
     2442       0,   295,   379,   297,   298,   299,   300,     0,     0,     0,
    21712443       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2172      591,     0,   208,     0,     0,   596,     0,     0,     0,   208,
    2173        0,     0,     0,     0,     0,     0,     0,     0,   366,     0,
    2174        0,     0,   628,     0,     0,   366,     0,     0,     0,     0,
    2175        0,     0,     0,   642,     0,     0,     0,   643,   644,     0,
    2176      646,     0,     0,     0,     0,     0,     0,   657,   658,     0,
    2177      659,   660,     0,   661,     0,   662,     0,     0,     0,     0,
     2444       0,     0,   995,     0,     0,     0,     1,     2,   204,     4,
     2445       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2446      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2447     412,     0,    25,    26,    27,    28,     0,     0,    29,   280,
     2448     281,    30,   282,     0,     0,     0,     0,     0,     0,     0,
     2449       0,     0,     0,     0,     0,   412,   412,     0,     0,     0,
     2450       0,     0,     0,  1389,     0,   768,     0,     0,   283,    33,
     2451       0,    34,     0,    35,   284,     0,    37,    38,   285,     0,
     2452     412,   286,   287,   288,   289,    40,    41,     0,   290,   291,
     2453       0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
    21782454       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2179      123,   123,   591,     0,     0,     0,     0,     0,     0,     0,
    2180      677,     0,     0,     0,     0,     0,   339,   361,     0,     0,
    2181        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2182      123,     0,     0,   123,   123,   688,   123,     0,   123,   123,
    2183        0,     0,     0,   123,   123,     0,   694,     0,   459,     0,
    2184      411,     0,     0,     0,     0,   208,     0,   411,     0,     0,
    2185        0,     0,     0,     0,     0,   279,   280,     0,   281,   730,
    2186        0,     0,     0,     0,     0,   733,     0,     0,     0,     0,
    2187      469,     0,     0,   208,     0,     0,     0,     0,   208,     0,
    2188      162,     0,     0,     0,   282,     0,     0,     0,     0,     0,
    2189      283,     0,     0,     0,   284,     0,   366,   285,   286,   287,
    2190      288,    40,    41,     0,   289,   290,     0,   770,     0,     0,
    2191        0,   123,   291,     0,     0,     0,   123,   123,     0,   411,
    2192        0,     0,   123,   785,     0,     0,     0,   292,     0,   376,
    2193        0,   604,   377,     0,     0,     0,   294,   378,   296,   297,
    2194      298,   299,     0,     0,     0,     0,     0,     0,     0,     0,
    2195        0,     0,   366,   366,     0,     0,     0,     0,     0,     0,
    2196      812,     0,     0,     0,     0,   208,     0,     0,     0,   822,
    2197        0,     0,     0,     0,     0,   411,   825,     0,     0,   208,
    2198        0,   832,     0,   411,   587,     0,   411,   590,     0,     0,
    2199        0,     0,   847,     0,     0,     0,   361,     0,     0,   502,
    2200      620,     0,     0,     0,     0,     0,     0,  1230,     0,     0,
    2201        0,     0,   459,     0,     0,     0,     0,     0,     0,   638,
    2202        0,     0,   339,     0,     0,     0,     0,     0,     0,     0,
    2203        0,     0,     0,   887,     0,     0,     0,     0,     0,     0,
    2204        0,     0,     0,     0,     0,     0,     0,     0,     0,   411,
    2205        0,     0,     0,   411,     0,     0,     0,     0,     0,     0,
    2206      208,     0,     0,     0,     0,     0,     0,     0,   832,     0,
    2207        0,   738,     0,   208,     0,     0,     0,     0,     0,     0,
    2208        0,     0,     0,     0,   361,     0,     0,     0,     0,     0,
    2209        0,     0,   208,     0,     0,     0,     0,     0,     0,     0,
    2210        0,     0,     0,     0,     0,     0,     0,   411,     0,     0,
    2211        0,   279,   280,   215,   281,     0,     0,     0,     0,     0,
    2212        0,     0,     0,   248,     0,     0,     0,     0,     0,     0,
    2213        0,  1318,     0,   965,   966,     0,     0,     0,   411,     0,
    2214      282,   361,     0,     0,     0,     0,   283,   983,     0,     0,
    2215      284,   738,     0,   285,   286,   287,   288,    40,    41,     0,
    2216      289,   290,     0,     0,   998,     0,   999,     0,   291,     0,
    2217     1003,     0,     0,     0,     0,     0,     0,     0,     0,   208,
    2218        0,   411,     0,   511,   339,   361,     0,     0,     0,     0,
    2219        0,     0,   294,   378,   296,   297,   298,   299,     0,     0,
    2220      366,   366,     0,     0,     0,   208,     0,     0,     0,   215,
    2221        0,     0,     0,     0,     0,     0,     0,   319,     0,     0,
    2222        0,     0,     0,     0,     0,     0,     0,   343,     0,     0,
    2223      411,   411,     0,   208,     0,     0,  1036,     0,     0,   379,
    2224      379,     0,     0,  1037,     0,     0,     0,     0,     0,   827,
    2225      361,     0,   361,     0,     0,     0,  1039,     0,  1040,     0,
    2226        0,   620,     0,   620,   620,   208,     0,     0,     0,     0,
    2227      620,     0,  1052,     0,     0,     0,   208,     0,     0,  1056,
    2228      866,   361,     0,     0,     0,     0,   361,     0,     0,     0,
    2229        0,  1094,     0,     0,  1095,   361,   361,   361,     0,     0,
    2230        0,     0,     0,     0,     0,     0,   123,     0,     0,     0,
    2231      319,     0,   596,   361,     0,     0,     0,     0,   411,   909,
    2232        0,     0,   411,   912,     0,   366,     0,   279,   280,   914,
    2233      281,     0,     0,     0,     0,   483,     0,     0,     0,     0,
    2234        0,     0,     0,     0,     0,     0,     0,   339,   361,   411,
    2235        0,   411,     0,     0,     0,   411,   282,   208,     0,     0,
    2236        0,     0,   283,     0,     0,     0,   284,     0,     0,   285,
    2237      286,   287,   288,    40,    41,     0,   289,   290,     0,     0,
    2238        0,     0,     0,   459,   291,   459,     0,   361,   620,     0,
    2239        0,     0,     0,     0,     0,     0,     0,     0,     0,   292,
    2240        0,  1158,     0,     0,     0,     0,     0,     0,   294,   378,
    2241      296,   297,   298,   299,     0,     0,     0,     0,     0,     0,
    2242      459,     0,   459,   339,   361,     0,     0,     0,   411,   411,
    2243      123,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2244        0,     0,     0,     0,   208,     0,     0,     0,     0,     0,
    2245      162,   379,     0,     0,     0,     0,     0,   531,     0,     0,
    2246        0,     0,     0,     0,  1223,     0,     0,     0,     0,     0,
    2247      411,     0,     0,     0,     0,     0,     0,     0,     0,   361,
    2248        0,     0,     0,     0,     0,   827,   361,     0,     0,     0,
    2249      620,     0,   620,  1236,     0,     0,     0,     0,  1238,     0,
    2250        0,     0,   620,     0,     0,     0,  1242,     1,     2,   203,
     2455       0,   293,     0,    43,     0,     0,     0,     0,     0,     0,
     2456     295,   296,   297,   298,   299,   300,     0,     0,     2,   204,
    22512457       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    22522458      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2253       24,  -293,     0,    25,    26,    27,    28,  1268,     0,    29,
    2254      208,     0,    30,     0,     0,     0,     0,     0,     0,  1276,
    2255        0,     0,  1277,   732,  1278,     0,     0,     0,     0,     0,
    2256        0,     0,     0,     0,     0,     0,     0,     0,  1287,  1288,
    2257       33,     0,    34,     0,    35,   827,     0,    37,    38,     0,
    2258        0,  -293,     0,   411,     0,     0,     0,     0,     0,   411,
    2259     1301,     0,   766,     0,     0,     0,     0,   411,     0,     0,
    2260        0,     0,     0,     0,     0,   779,     0,     0,     0,     0,
    2261      620,   620,   766,     0,    43,   766,     0,  1324,     0,     0,
    2262        0,     0,   109,     0,     0,     0,   789,   790,     0,     0,
    2263        0,     0,     0,     0,     0,     0,     0,   361,     0,     0,
    2264        0,     0,     0,   411,     0,     0,     0,     0,   811,     0,
    2265        0,     0,     0,     0,     0,     0,     0,     0,   820,     0,
    2266        0,     0,   411,  1155,     0,   343,     0,     0,     0,     0,
    2267      779,     0,   361,     0,     0,     0,     0,     0,   411,  1167,
    2268        0,   620,   620,  1172,     0,     0,     0,     0,     0,     0,
    2269        0,     0,     0,   361,   361,     0,   512,     0,   514,   517,
    2270        0,   279,   280,     0,   281,     0,   520,   521,     0,     0,
    2271        0,   514,   514,     0,  1394,     0,  1395,     0,     0,     0,
    2272      886,     0,     0,   514,     0,     0,     0,     0,   379,  1404,
    2273      282,  1405,     0,     0,     0,     0,   283,     0,     0,     0,
    2274      284,     0,     0,   285,   286,   287,   288,    40,    41,  1412,
    2275      289,   290,     0,     0,   827,   411,  1235,     0,   291,   514,
    2276        0,     0,     0,     0,     0,  1430,  1432,   620,   343,     0,
    2277        0,     0,     0,   292,     0,   376,     0,  1438,     0,     0,
    2278     1242,   809,   294,   378,   296,   297,   298,   299,     0,     0,
    2279        0,     0,     0,     0,     0,   514,   208,     0,     0,     0,
    2280        0,     0,  1461,     0,     0,     0,     0,     0,     0,     0,
    2281        0,  1468,   361,     0,  1470,     0,  1472,  1474,  1476,     8,
    2282        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2283       19,    20,    21,    22,    23,    24,  -293,     0,    25,    26,
    2284       27,     0,     0,     0,   779,     0,   988,    30,     0,     0,
    2285        0,     0,   993,     0,     0,     0,     0,     0,  1507,  1002,
    2286     1509,     0,     0,  1242,     0,     0,     0,     0,     0,     0,
    2287        0,     0,   339,     0,     0,    33,     0,     0,  1521,     0,
    2288        0,     0,    37,    38,     0,     0,  -293,     0,     0,     0,
    2289        0,     0,   361,     0,     0,     0,     0,     0,     0,     0,
    2290        0,     0,     0,  1019,  1020,     0,   343,     0,     0,     0,
    2291        0,     0,     0,     0,     0,     0,     0,   641,     0,   336,
    2292        0,   343,     0,     0,     0,     0,     0,   109,     0,     0,
    2293        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2294        0,   361,   361,     8,     9,    10,    11,    12,    13,    14,
     2459      24,  1449,     0,    25,    26,    27,     0,     0,     0,     0,
     2460     280,   281,    30,   282,     0,     8,     9,    10,    11,    12,
     2461      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2462      23,    24,     0,     0,    25,    26,    27,     0,     0,   283,
     2463      33,     0,    34,    30,    35,   284,     0,    37,    38,   285,
     2464       0,     0,   286,   287,   288,   289,    40,    41,     0,   290,
     2465     291,     0,     0,     0,     0,     0,     0,   292,     0,     0,
     2466       0,    33,     0,     0,     0,     0,   108,     0,    37,    38,
     2467       0,     0,   293,  1515,   342,     0,     0,    40,    41,   780,
     2468       0,   295,   343,   297,   298,   299,   300,     2,   204,     4,
     2469       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    22952470      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2296        0,  1050,    25,    26,    27,   379,     0,     0,     0,     0,
    2297        0,    30,   514,   514,   514,   514,   514,   514,   514,   514,
    2298      514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
    2299        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2300        0,     0,     0,     0,     0,     0,   204,    38,     0,     0,
    2301        0,     0,     0,     0,  -515,   514,     0,     1,     2,     3,
    2302        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2303       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2304       24,   319,     0,    25,    26,    27,    28,     0,     0,    29,
    2305        0,   268,    30,    31,     0,     0,     0,  1136,  1137,     0,
    2306        0,     0,     0,     0,   379,     0,   361,     0,     0,     0,
    2307      993,     0,     0,  1146,     0,   766,     0,    32,     0,     0,
    2308       33,     0,    34,     0,    35,    36,     0,    37,    38,    39,
    2309        0,     0,     0,     0,     0,  1162,    40,    41,     0,     0,
    2310        0,     0,     0,     0,     0,     0,  1177,     0,     0,     0,
    2311        0,     0,     0,   514,     0,   279,   280,     0,   281,     0,
    2312        0,     0,    42,     0,    43,     0,     0,     0,   379,     0,
    2313     1195,     0,    44,     0,     0,   514,     0,     0,     0,     0,
    2314        0,     0,     0,     0,   282,   993,   993,     0,   514,     0,
    2315      647,     0,   136,   137,   284,     0,   411,   285,   648,   287,
    2316      288,    40,    41,     0,   289,   290,  1227,     0,     0,     0,
    2317        0,     0,   291,     0,     0,     0,     0,     0,     0,     0,
    2318        0,   411,   411,     0,     0,     0,     0,   292,     0,   649,
    2319        0,   650,   377,     0,   514,     0,   294,   378,   296,   297,
    2320      298,   299,     0,     0,     0,     0,   411,     0,     0,     0,
    2321        0,     0,     0,   993,     0,     0,     0,     0,     0,     0,
    2322        0,     0,     0,     0,     0,     0,   514,     0,     0,     0,
    2323        0,     0,   886,     0,     0,     0,     0,     0,     0,     0,
    2324        0,   514,     0,     0,     0,     0,     0,  1279,  1280,     0,
    2325        0,     0,     0,     0,     1,     2,   203,     4,     5,     6,
     2471       0,     0,    25,    26,    27,     0,     0,     0,     0,   280,
     2472     281,    30,   282,     0,     0,   320,     0,     8,     9,    10,
     2473      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2474      21,    22,    23,    24,  -295,     0,     0,     0,   283,    33,
     2475       0,    34,     0,    35,   284,    30,    37,    38,   285,     0,
     2476       0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
     2477       0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
     2478       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2479       0,   293,     0,   930,  -295,     0,     0,     0,   780,     0,
     2480     295,   343,   297,   298,   299,   300,     2,   204,     4,     5,
     2481       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2482      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2483       0,    25,    26,    27,     0,     0,     0,     0,   280,   281,
     2484      30,   282,     0,     8,     9,    10,    11,    12,    13,    14,
     2485      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2486       0,     0,    25,    26,    27,     0,     0,   283,    33,     0,
     2487      34,    30,    35,   284,     0,    37,    38,   285,     0,     0,
     2488     286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
     2489       0,     0,     0,     0,     0,   292,     0,     0,     0,    33,
     2490       0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
     2491     293,     0,   930,     0,     0,     0,     0,   780,     0,   295,
     2492     599,   297,   298,   299,   300,     2,   204,     4,     5,     6,
    23262493       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    23272494      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2328       25,    26,    27,    28,     0,     0,    29,   279,   280,    30,
    2329     1059,  1060,     0,  1061,     0,     0,  1062,  1063,  1064,  1065,
    2330     1066,  1067,  1068,  1069,     0,     0,     0,  1070,     0,     0,
    2331        0,  1071,  1072,     0,    32,     0,   282,    33,     0,    34,
    2332        0,    35,   647,     0,    37,    38,   284,     0,   993,   285,
    2333      286,   287,   288,    40,    41,     0,   289,   290,     0,     0,
    2334        0,     0,     0,     0,   291,     0,     0,     0,     0,     0,
    2335        0,     0,     0,     0,     0,     0,     0,     0,     0,   292,
    2336        0,  1073,     0,     0,   168,     0,     0,     0,   294,   295,
    2337      296,   297,   298,   299,     0,     0,     0,     0,  1074,     0,
    2338        0,     0,  -128,     0,     0,     0,     0,     0,     0,  1387,
    2339        0,   766,   514,     0,     0,     0,     0,     0,     0,     0,
     2495      25,    26,    27,     0,     0,     0,     0,   280,   281,    30,
     2496     282,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2497      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2498       0,    25,    26,    27,     0,     0,   283,    33,     0,    34,
     2499      30,    35,   284,     0,    37,    38,   285,     0,     0,   286,
     2500     287,   288,   289,    40,    41,     0,   290,   291,     0,     0,
     2501       0,     0,     0,     0,   292,     0,     0,     0,    33,     0,
     2502       0,     0,     0,     0,     0,   205,    38,     0,     0,   293,
     2503       0,   342,     0,     0,     0,     0,     0,     0,   295,   343,
     2504     297,   298,   299,   300,     2,   204,     4,     5,     6,     7,
     2505       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2506      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2507      26,    27,     0,     0,     0,     0,   280,   281,    30,   282,
     2508       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2509      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2510       0,     0,     0,     0,     0,   283,    33,     0,    34,    30,
     2511      35,   284,     0,    37,    38,   285,     0,     0,   286,   287,
     2512     288,   289,    40,    41,     0,   290,   291,     0,     0,     0,
     2513       0,     0,     0,   292,     0,     0,     0,    33,     0,     0,
     2514       0,     0,     0,     0,     0,     0,     0,     0,   293,     0,
     2515     930,     0,     0,     0,     0,     0,     0,   295,   343,   297,
     2516     298,   299,   300,     2,   204,     4,     5,     6,     7,     8,
     2517       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2518      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2519      27,     0,     0,     0,     0,   280,   281,    30,   282,     0,
    23402520       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23412521       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2342        0,     0,     0,   514,     0,     0,     0,     0,     0,     0,
    2343        0,     0,     0,     0,     0,   514,     1,     2,   203,     4,
    2344        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2345       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2346        0,     0,    25,    26,    27,    28,     0,     0,    29,   279,
    2347      280,    30,   281,     0,     0,     0,   514,  1447,     0,     0,
    2348        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2349        0,     0,     0,     0,     0,     0,     0,     0,   282,    33,
    2350        0,    34,     0,    35,   283,     0,    37,    38,   284,     0,
    2351        0,   285,   286,   287,   288,    40,    41,     0,   289,   290,
    2352        0,     0,     0,     0,     0,     0,   291,     0,     0,     0,
    2353        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2354        0,   292,     0,  1073,     0,     0,     0,     0,   514,     0,
    2355      294,   295,   296,   297,   298,   299,     0,     0,     0,  1513,
    2356        0,     0,     0,     0,  -128,     0,     0,     1,     2,   203,
    2357        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2358       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2359       24,     0,   514,    25,    26,    27,    28,     0,     0,    29,
    2360      279,   280,    30,   281,     0,     0,   514,   514,     0,     0,
    2361        0,   319,     0,     0,     0,     0,     0,     0,     0,     0,
    2362        0,     0,     0,     0,     0,     0,     0,     0,     0,   282,
    2363       33,     0,    34,     0,    35,   283,     0,    37,    38,   284,
    2364        0,     0,   285,   286,   287,   288,    40,    41,     0,   289,
    2365      290,     0,     0,     0,     0,     0,     0,   291,     0,     0,
    2366        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2367        0,     0,   292,     0,    43,     0,     0,     0,     0,     0,
    2368        0,   294,   295,   296,   297,   298,   299,     2,   203,     4,
    2369        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2370       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2371        0,     0,    25,    26,    27,     0,     0,     0,     0,   279,
    2372      280,    30,   281,     0,     8,     9,    10,    11,    12,    13,
    2373       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2374       24,     0,     0,    25,    26,    27,     0,     0,   282,    33,
    2375        0,    34,    30,    35,   283,     0,    37,    38,   284,     0,
    2376        0,   285,   286,   287,   288,    40,    41,     0,   289,   290,
    2377        0,     0,     0,     0,     0,     0,   291,     0,     0,     0,
    2378       33,     0,     0,     0,     0,    36,     0,    37,    38,    39,
    2379        0,   292,     0,   341,     0,     0,    40,    41,   778,     0,
    2380      294,   342,   296,   297,   298,   299,     0,     0,     0,     0,
    2381        0,     0,     0,     0,     0,     0,   514,     0,     0,     0,
    2382        0,     0,    42,     0,   154,     0,     0,     0,     0,     0,
    2383        0,     0,    44,   514,     2,   203,     4,     5,     6,     7,
    2384        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2385       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2386       26,    27,     0,     0,     0,     0,   279,   280,    30,   281,
    2387        0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2388       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2389       24,  -293,     0,     0,     0,   282,    33,     0,    34,     0,
    2390       35,   283,    30,    37,    38,   284,   514,   514,   285,   286,
    2391      287,   288,    40,    41,     0,   289,   290,     0,     0,     0,
    2392        0,     0,     0,   291,     0,     0,     0,     0,     0,     0,
    2393       33,     0,     0,     0,     0,     0,     0,     0,   292,     0,
    2394      928,  -293,     0,     0,     0,   778,     0,   294,   342,   296,
    2395      297,   298,   299,     2,   203,     4,     5,     6,     7,     8,
    2396        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2397       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2398       27,     0,     0,     0,     0,   279,   280,    30,   281,     0,
    2399        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2400       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2401     -294,     0,     0,     0,   282,    33,     0,    34,     0,    35,
    2402      283,    30,    37,    38,   284,     0,     0,   285,   286,   287,
    2403      288,    40,    41,     0,   289,   290,     0,     0,     0,     0,
    2404        0,     0,   291,     0,     0,     0,     0,     0,     0,    33,
    2405        0,     0,     0,     0,     0,     0,     0,   292,     0,   928,
    2406     -294,     0,     0,     0,   778,     0,   294,   598,   296,   297,
    2407      298,   299,     2,   203,     4,     5,     6,     7,     8,     9,
     2522       0,     0,     0,     0,   283,    33,     0,    34,     0,    35,
     2523     284,     0,   205,    38,   285,     0,     0,   286,   287,   288,
     2524     289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
     2525       0,     0,   292,     0,     0,     0,     0,     0,     0,     0,
     2526       0,     0,     0,     0,     0,     0,     0,   293,     0,  1019,
     2527       0,     0,     0,     0,     0,     0,   295,  1020,   297,   298,
     2528     299,   300,     2,   204,     4,     5,     6,     7,     8,     9,
    24082529      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    24092530      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2410        0,     0,     0,     0,   279,   280,    30,   281,     0,     8,
    2411        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2412       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2413       27,     0,     0,   282,    33,     0,    34,    30,    35,   283,
    2414        0,    37,    38,   284,     0,     0,   285,   286,   287,   288,
    2415       40,    41,     0,   289,   290,     0,     0,     0,     0,     0,
    2416        0,   291,     0,     0,     0,    33,     0,     0,     0,     0,
    2417      108,     0,    37,    38,     0,     0,   292,     0,   341,     0,
    2418        0,     0,     0,     0,     0,   294,   342,   296,   297,   298,
    2419      299,     2,   203,     4,     5,     6,     7,     8,     9,    10,
    2420       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2421       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2422        0,     0,     0,   279,   280,    30,   281,     0,     8,     9,
     2531       0,     0,     0,     0,   280,   281,    30,   282,     0,     0,
     2532       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2533       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2534       0,     0,     0,   283,    33,     0,    34,     0,    35,   284,
     2535       0,   205,    38,   285,     0,     0,   286,   287,   288,   289,
     2536      40,    41,     0,   290,   291,     0,     0,     0,     0,     0,
     2537       0,   292,     0,     0,     0,     0,     0,     0,     0,     0,
     2538       0,     0,     0,     0,     0,     0,   293,     0,   377,     0,
     2539       0,     0,     0,     0,     0,   295,   379,   297,   298,   299,
     2540     300,     1,     2,     3,     4,     5,     6,     7,     8,     9,
    24232541      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    24242542      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2425        0,     0,   282,    33,     0,    34,    30,    35,   283,     0,
    2426       37,    38,   284,     0,     0,   285,   286,   287,   288,    40,
    2427       41,     0,   289,   290,     0,     0,     0,     0,     0,     0,
    2428      291,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2429        0,    37,    38,     0,     0,   292,     0,   928,     0,     0,
    2430        0,     0,     0,     0,   294,   342,   296,   297,   298,   299,
    2431        2,   203,     4,     5,     6,     7,     8,     9,    10,    11,
    2432       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2433       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2434        0,     0,   279,   280,    30,   281,     0,     8,     9,    10,
    2435       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2436       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2437        0,   282,    33,     0,    34,    30,    35,   283,     0,   204,
    2438       38,   284,     0,     0,   285,   286,   287,   288,    40,    41,
    2439        0,   289,   290,     0,     0,     0,     0,     0,     0,   291,
    2440        0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    2441      204,    38,     0,     0,   292,     0,  1017,     0,     0,     0,
    2442        0,     0,     0,   294,  1018,   296,   297,   298,   299,     2,
    2443      203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2444       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2445       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2446        0,   279,   280,    30,   281,     0,     0,     0,     0,     0,
     2543      28,     0,     0,    29,     0,     0,    30,    31,     0,     0,
    24472544       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24482545       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2449      282,    33,     0,    34,     0,    35,   283,     0,   204,    38,
    2450      284,     0,     0,   285,   286,   287,   288,    40,    41,     0,
    2451      289,   290,     0,     0,     0,     0,     0,     0,   291,     0,
     2546       0,    32,     0,     0,    33,     0,    34,     0,    35,    36,
     2547       0,    37,    38,    39,     0,     0,     0,     0,     0,     0,
     2548      40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
    24522549       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2453        0,     0,     0,   292,     0,   376,     0,     0,     0,     0,
    2454        0,     0,   294,   378,   296,   297,   298,   299,     1,     2,
    2455        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2456       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2457       23,    24,     0,     0,    25,    26,    27,    28,     0,     0,
    2458       29,     0,     0,    30,    31,     0,     8,     9,    10,    11,
    2459       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2460       22,    23,    24,     0,     0,    25,    26,    27,    32,     0,
    2461        0,    33,     0,    34,    30,    35,    36,     0,    37,    38,
    2462       39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
    2463        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2464        0,     0,    33,     0,     0,     0,     0,     0,     0,   204,
    2465       38,     0,     0,    42,     0,    43,     0,     0,     0,  -519,
    2466        0,     0,     0,    44,     1,     2,     3,     4,     5,     6,
    2467        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2468       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2469       25,    26,    27,    28,   627,     0,    29,     0,     0,    30,
    2470       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2471        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2472        0,     0,     0,     0,    32,     0,     0,    33,     0,    34,
    2473        0,    35,    36,     0,    37,    38,    39,     0,     0,     0,
    2474        0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
    2475        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2476        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
    2477        0,    43,     0,     0,     0,     0,     0,     0,     0,    44,
    2478      202,     2,   203,     4,     5,     6,     7,     8,     9,    10,
    2479       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2480       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2481        0,     0,     0,     0,     0,    30,     8,     9,    10,    11,
    2482       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2483       22,    23,    24,     0,     0,    25,    26,    27,   490,   491,
    2484      492,     0,     0,    33,    30,    34,     0,    35,    36,     0,
    2485      204,    38,    39,     0,     0,     0,     0,     0,     0,    40,
    2486       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2487        0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2488       38,     0,     0,     0,     0,    42,     0,   205,     0,     0,
    2489        0,     0,     0,     0,     0,   206,     1,     2,   203,     4,
    2490        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2491       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2492        0,     0,    25,    26,    27,    28,     0,     0,    29,     0,
    2493        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    2494        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2495        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2496        0,    34,     0,    35,     0,     0,    37,    38,     0,   202,
    2497        2,   203,     4,     5,     6,     7,     8,     9,    10,    11,
    2498       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2499       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2500        0,     0,     0,    43,    30,     0,     0,     0,     0,     0,
    2501        0,   109,     0,     0,  1031,     0,     0,     8,     9,    10,
    2502       11,    12,     0,     0,     0,     0,     0,     0,     0,     0,
    2503        0,     0,    33,     0,    34,     0,    35,     0,     0,   204,
    2504       38,     0,     0,   279,   280,    30,   281,     0,     0,     0,
    2505        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2506        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2507        0,     0,   282,    33,     0,     0,   205,     0,   283,     0,
    2508        0,     0,   284,     0,   268,   285,   286,   287,   288,    40,
    2509       41,  1174,   289,   290,     8,     9,    10,    11,    12,     0,
    2510      291,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2511        0,     0,     0,     0,     0,   292,     0,   376,     0,     0,
    2512      279,   280,    30,   281,   294,   824,   296,   297,   298,   299,
    2513        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2514        0,     0,     0,     0,     0,     0,     0,     0,     0,   282,
    2515       33,     0,     0,     0,     0,   283,     0,     0,     0,   284,
    2516        0,     0,   285,   286,   287,   288,    40,    41,     0,   289,
    2517      290,     0,     0,     0,     0,     0,     0,   291,     0,     0,
    2518        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2519        0,     0,   292,     0,   376,     0,     0,     0,     0,     0,
    2520        0,   294,  1175,   296,   297,   298,   299,     2,   203,     4,
    2521        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2522       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2523        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2524        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    2525        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2526        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2527        0,    34,     0,    35,    36,     0,   204,    38,    39,     0,
    2528        0,     0,     0,     0,     0,    40,    41,     0,     0,     0,
    2529        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2530        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2531        0,    42,     0,   205,     0,     0,     0,     0,     0,     0,
    2532        0,   206,     2,   203,     4,     5,     6,     7,     8,     9,
    2533       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2534       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2535        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    2536        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2537       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2538        0,    25,    26,    27,    33,     0,    34,     0,    35,     0,
    2539       30,    37,    38,     0,     0,     2,   203,     4,     5,     6,
    2540        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2541       17,    18,    19,    20,    21,    22,    23,    24,    33,     0,
    2542       25,    26,    27,   108,     0,    37,    38,  -398,   684,    30,
    2543        0,     0,     0,     0,     0,     0,   632,     0,     0,     0,
    2544        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2545        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2546        0,    35,    43,     0,    37,    38,     0,     0,     0,     0,
    2547      109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2548        0,     0,     0,     0,     0,     0,  1366,     0,     0,     0,
    2549        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2550        0,   684,     0,     0,     0,     0,     0,     0,     0,   632,
    2551        2,   203,     4,     5,     6,     7,     8,     9,    10,    11,
    2552       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2553       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2554        0,     0,     0,     0,    30,     0,     0,     0,     0,     8,
    2555        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2556       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2557       27,     0,    33,     0,    34,     0,    35,    30,     0,    37,
    2558       38,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2560        0,  1368,     0,     0,     0,    33,     0,     0,     0,     0,
    2561       36,     0,   334,   335,    39,     0,   684,     0,     0,     0,
    2562        0,    40,    41,     0,   632,     2,   203,     4,     5,     6,
    2563        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2564       17,    18,    19,    20,    21,    22,    23,    24,     0,   336,
    2565       25,    26,    27,     0,     0,     0,     0,   109,     0,    30,
    2566        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2567        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2569        0,    35,     0,     0,   204,    38,     2,   203,     4,     5,
    2570        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2571       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2572        0,    25,    26,    27,     0,     0,     0,     0,     0,     0,
    2573       30,   267,     0,     0,     0,     0,     0,     0,     0,   627,
    2574        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2575        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2576       34,     0,    35,     0,     0,    37,    38,     2,   203,     4,
    2577        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2578       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2579        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2580        0,    30,   684,     0,     0,     0,     0,     0,     0,     0,
    2581      632,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2582        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2583        0,    34,     0,    35,     0,     0,    37,    38,     2,   203,
     2550       0,     0,     0,     0,     0,     0,    42,     0,    43,     0,
     2551       0,     0,  -520,     0,     0,     0,    44,   203,     2,   204,
    25842552       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    25852553      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    25862554      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2587        0,     0,    30,   597,     0,     0,     0,     0,     0,     0,
    2588        0,   632,     0,     0,     0,     0,     0,     0,     0,     0,
     2555       0,     0,    30,     8,     9,    10,    11,    12,    13,    14,
     2556      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2557       0,     0,    25,    26,    27,   491,   492,   493,     0,     0,
     2558      33,    30,    34,     0,    35,    36,     0,   205,    38,    39,
     2559       0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
     2560       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2561       0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
     2562       0,     0,    42,     0,   206,     0,     0,     0,     0,     0,
     2563       0,     0,   207,     1,     2,   204,     4,     5,     6,     7,
     2564       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2565      18,    19,    20,    21,    22,    23,    24,  -294,     0,    25,
     2566      26,    27,    28,     0,     0,    29,     0,     0,    30,     0,
    25892567       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2590       33,     0,    34,     0,    35,     0,     0,   204,    38,     8,
     2568       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2569       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2570      35,     0,     0,    37,    38,     0,     0,  -294,     0,     1,
     2571       2,   204,     4,     5,     6,     7,     8,     9,    10,    11,
     2572      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2573      22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
     2574      43,    29,     0,     0,    30,     0,     0,     0,   109,     0,
     2575       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2576       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2577       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     2578      38,     0,   203,     2,   204,     4,     5,     6,     7,     8,
    25912579       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    25922580      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2593       27,     0,     0,     0,     0,   279,   280,    30,   281,     0,
    2594        0,     0,     0,     0,   205,     0,     0,     0,     0,     0,
    2595        0,     0,   268,     0,     0,     0,     0,     0,     0,     0,
    2596        0,     0,     0,     0,   282,    33,     0,     0,     0,     0,
    2597      283,     0,    37,    38,   284,     0,     0,   285,   286,   287,
    2598      288,    40,    41,     0,   289,   290,     0,     0,     0,     0,
    2599        0,     0,   291,     0,     0,     0,     0,     0,     0,     0,
    2600        0,     0,     0,     0,     0,     0,     0,   292,     0,   523,
    2601        0,     0,   168,     0,     0,     0,   294,   295,   296,   297,
    2602      298,   299,     8,     9,    10,    11,    12,    13,    14,    15,
    2603       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2604        0,    25,    26,    27,     0,     0,     0,     0,   279,   280,
    2605       30,   281,     8,     9,    10,    11,    12,    13,    14,    15,
    2606       16,    17,    18,    19,    20,    21,    22,    23,    24,  -293,
    2607        0,    25,    26,    27,     0,     0,     0,   282,    33,     0,
    2608       30,     0,     0,   283,     0,    37,    38,   284,     0,     0,
    2609      285,   286,   287,   288,    40,    41,     0,   289,   290,     0,
    2610        0,     0,     0,     0,     0,   291,     0,     0,    33,     0,
    2611        0,     0,     0,    36,     0,   334,   335,    39,     0,  -293,
    2612      292,     0,   597,    -3,    40,    41,     0,     0,     0,   294,
    2613      598,   296,   297,   298,   299,     8,     9,    10,    11,    12,
     2581      27,     0,     0,     0,     0,     0,    43,    30,     0,     0,
     2582       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2583       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2584       0,     0,     0,     0,     0,    33,     0,    34,     0,    35,
     2585       0,     0,   205,    38,     2,   204,     4,     5,     6,     7,
     2586       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2587      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2588      26,    27,     0,     0,     0,     0,     0,     0,    30,   206,
     2589       0,     0,     0,     0,     0,     0,     0,   269,     0,     0,
     2590       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2591       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2592      35,    36,     0,   205,    38,    39,     0,     0,     0,     0,
     2593       0,     0,    40,    41,     0,     0,     8,     9,    10,    11,
     2594      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2595      22,    23,    24,     0,     0,    25,    26,    27,    42,     0,
     2596     206,     0,     0,     0,    30,     0,     0,     0,   207,     2,
     2597     204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    26142598      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2615       23,    24,   336,     0,    25,    26,    27,     0,     0,     0,
    2616      109,   279,   280,    30,   281,     8,     9,    10,    11,    12,
     2599      23,    24,    33,     0,    25,    26,    27,    36,     0,    37,
     2600      38,    39,     0,    30,     0,     0,     0,     0,    40,    41,
     2601       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2602       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2603       0,    33,     0,    34,    42,    35,    43,     0,    37,    38,
     2604       0,     0,     0,     0,    44,     0,     0,     0,     0,     0,
     2605       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2606    1368,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2607       0,     0,     0,     0,     0,   686,     0,     0,     0,     0,
     2608       0,     0,     0,   633,     2,   204,     4,     5,     6,     7,
     2609       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2610      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2611      26,    27,     0,     0,     0,     0,     0,     0,    30,     0,
     2612       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2613      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2614       0,     0,    25,    26,    27,     0,    33,     0,    34,     0,
     2615      35,    30,     0,    37,    38,     0,     0,     0,     0,     0,
     2616       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2617       0,     0,     0,     0,     0,  1370,     0,     0,     0,    33,
     2618       0,     0,     0,     0,    36,     0,   335,   336,    39,     0,
     2619     686,     0,     0,     0,     0,    40,    41,     0,   633,     2,
     2620     204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    26172621      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2618       23,    24,  -293,     0,    25,    26,    27,     0,     0,     0,
    2619      282,    33,     0,    30,     0,     0,   647,     0,    37,    38,
    2620      284,     0,     0,   285,   286,   287,   288,    40,    41,     0,
    2621      289,   290,     0,     0,     0,     0,     0,     0,   291,     0,
    2622        0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
    2623        0,     0,  -293,   292,   -34,   763,     0,     0,     0,     0,
    2624        0,     0,   294,   295,   296,   297,   298,   299,     8,     9,
    2625       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2626       20,    21,    22,    23,    24,   336,     0,    25,    26,    27,
    2627        0,     0,     0,   109,   279,   280,    30,   281,     8,     9,
     2622      23,    24,     0,   337,    25,    26,    27,     0,     0,     0,
     2623       0,   109,     0,    30,     0,     0,     0,     0,     0,     0,
     2624       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2625       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2626       0,    33,     0,    34,     0,    35,     0,     0,   205,    38,
     2627       2,   204,     4,     5,     6,     7,     8,     9,    10,    11,
     2628      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2629      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2630       0,     0,     0,     0,    30,   268,     0,     0,     0,     0,
     2631       0,     0,     0,   628,     0,     0,     0,     0,     0,     0,
     2632       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2633       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     2634      38,     2,   204,     4,     5,     6,     7,     8,     9,    10,
     2635      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2636      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2637       0,     0,     0,     0,     0,    30,   686,     0,     0,     0,
     2638       0,     0,     0,     0,   633,     0,     0,     0,     0,     0,
     2639       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2640       0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
     2641      37,    38,     2,   204,     4,     5,     6,     7,     8,     9,
    26282642      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    26292643      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2630        0,     0,     0,   282,    33,     0,    30,   451,     0,   283,
    2631        0,    37,    38,   284,     0,     0,   285,   286,   287,   288,
    2632       40,    41,     0,   289,   290,     0,     0,     0,     0,     0,
    2633        0,   291,     0,     0,    33,     0,     0,     0,     0,     0,
    2634        0,    37,    38,     0,     0,     0,   292,     0,   293,     0,
    2635        0,     0,     0,     0,     0,   294,   295,   296,   297,   298,
    2636      299,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2637       17,    18,    19,    20,    21,    22,    23,    24,   452,     0,
    2638       25,    26,    27,     0,     0,     0,   109,   279,   280,    30,
    2639      281,     0,     0,     0,     0,     0,     0,     0,     0,     8,
     2644       0,     0,     0,     0,     0,     0,    30,   598,     0,     0,
     2645       0,     0,     0,     0,     0,   633,     0,     0,     0,     0,
     2646       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2647       0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
     2648       0,   205,    38,     8,     9,    10,    11,    12,    13,    14,
     2649      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2650       0,     0,    25,    26,    27,     0,     0,     0,     0,   280,
     2651     281,    30,   282,     0,     0,     0,     0,     0,   206,     0,
     2652       0,     0,     0,     0,     0,     0,   269,     0,     0,     0,
     2653       0,     0,     0,     0,     0,     0,     0,     0,   283,    33,
     2654       0,     0,     0,     0,   284,     0,    37,    38,   285,     0,
     2655       0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
     2656       0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
     2657       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2658       0,   293,     0,   524,     0,     0,   169,     0,     0,     0,
     2659     295,   296,   297,   298,   299,   300,     8,     9,    10,    11,
     2660      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2661      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2662       0,     0,   280,   281,    30,   282,     8,     9,    10,    11,
     2663      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2664      22,    23,    24,  -294,     0,    25,    26,    27,     0,     0,
     2665       0,   283,    33,     0,    30,     0,     0,   284,     0,    37,
     2666      38,   285,     0,     0,   286,   287,   288,   289,    40,    41,
     2667       0,   290,   291,     0,     0,     0,     0,     0,     0,   292,
     2668       0,     0,    33,     0,     0,     0,     0,    36,     0,   335,
     2669     336,    39,     0,  -294,   293,     0,   598,    -3,    40,    41,
     2670       0,     0,     0,   295,   599,   297,   298,   299,   300,     8,
    26402671       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2641       19,    20,    21,    22,    23,    24,   282,    33,    25,    26,
    2642       27,     0,   283,     0,    37,    38,   284,    30,     0,   285,
    2643      286,   287,   288,    40,    41,     0,   289,   290,     0,     0,
    2644        0,     0,     0,     0,   291,     0,     0,     0,     0,     0,
    2645        0,     0,     0,     0,     0,    33,     0,     0,     0,   292,
    2646        0,   154,    37,    38,     0,     0,     0,     0,   294,   295,
    2647      296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
     2672      19,    20,    21,    22,    23,    24,   337,     0,    25,    26,
     2673      27,     0,     0,     0,   109,   280,   281,    30,   282,     8,
     2674       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2675      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2676      27,     0,     0,     0,   283,    33,     0,    30,     0,     0,
     2677     648,     0,    37,    38,   285,     0,     0,   286,   287,   288,
     2678     289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
     2679       0,     0,   292,     0,     0,    33,     0,     0,     0,     0,
     2680     108,     0,    37,    38,     0,     0,     0,   293,   -35,   765,
     2681       0,    40,    41,     0,     0,     0,   295,   296,   297,   298,
     2682     299,   300,     8,     9,    10,    11,    12,    13,    14,    15,
     2683      16,    17,    18,    19,    20,    21,    22,    23,    24,    43,
     2684       0,    25,    26,    27,     0,     0,     0,   109,   280,   281,
     2685      30,   282,     8,     9,    10,    11,    12,    13,    14,    15,
     2686      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2687       0,    25,    26,    27,     0,     0,     0,   283,    33,     0,
     2688      30,   452,     0,   284,     0,    37,    38,   285,     0,     0,
     2689     286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
     2690       0,     0,     0,     0,     0,   292,     0,     0,    33,     0,
     2691       0,     0,     0,     0,     0,    37,    38,     0,     0,     0,
     2692     293,     0,   294,     0,     0,     0,     0,     0,     0,   295,
     2693     296,   297,   298,   299,   300,     8,     9,    10,    11,    12,
     2694      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2695      23,    24,   453,     0,    25,    26,    27,     0,     0,     0,
     2696     109,   280,   281,    30,   282,     0,     0,     0,     0,     0,
     2697       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2698      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2699     283,    33,    25,    26,    27,     0,   284,     0,    37,    38,
     2700     285,    30,     0,   286,   287,   288,   289,    40,    41,     0,
     2701     290,   291,     0,     0,     0,     0,     0,     0,   292,     0,
     2702       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2703       0,     0,     0,   293,     0,   155,    37,    38,     0,     0,
     2704       0,     0,   295,   296,   297,   298,   299,   300,     8,     9,
     2705      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2706      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2707       0,   642,     0,   337,   280,   281,    30,   282,     0,     0,
     2708       0,   109,     0,     0,     0,     0,     8,     9,    10,    11,
     2709      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2710      22,    23,    24,   283,    33,    25,    26,    27,     0,   284,
     2711       0,    37,    38,   285,    30,     0,   286,   287,   288,   289,
     2712      40,    41,     0,   290,   291,     0,     0,     0,     0,     0,
     2713       0,   292,     0,     0,     0,     0,     0,     0,     0,     0,
     2714       0,     0,    33,     0,     0,     0,   293,     0,   598,    37,
     2715      38,     0,     0,     0,     0,   295,   599,   297,   298,   299,
     2716     300,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2717      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2718      25,    26,    27,     0,   642,     0,   337,   280,   281,    30,
     2719     282,     0,     0,     0,   633,     0,     0,     0,     0,     8,
     2720       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2721      19,    20,    21,    22,    23,    24,   283,    33,    25,    26,
     2722      27,     0,   284,     0,    37,    38,   285,    30,   452,   286,
     2723     287,   288,   289,    40,    41,     0,   290,   291,     0,     0,
     2724       0,     0,     0,     0,   292,     0,     0,     0,     0,     0,
     2725       0,     0,     0,     0,     0,    33,     0,     0,     0,   293,
     2726       0,   377,    37,    38,     0,     0,     0,     0,   295,   379,
     2727     297,   298,   299,   300,   473,     2,   204,     4,     5,     6,
     2728       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2729      17,    18,    19,    20,    21,    22,    23,    24,     0,   453,
     2730      25,    26,    27,  1234,     0,     0,     0,   109,     0,    30,
     2731       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2732      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2733      26,    27,     0,     0,     0,     0,     0,    33,    30,    34,
     2734       0,    35,     0,     0,    37,    38,     0,     0,     8,     9,
     2735      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2736      20,    21,    22,    23,    24,     0,    33,    25,    26,    27,
     2737       0,    36,     0,   205,    38,    39,    30,     0,     0,     0,
     2738       0,     0,    40,    41,    -3,     0,     8,     9,    10,    11,
     2739      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2740      22,    23,    24,     0,    33,    25,    26,    27,    42,    36,
     2741     268,   335,   336,    39,    30,     0,     0,     0,   207,     0,
     2742      40,    41,     0,     0,     8,     9,    10,    11,    12,    13,
    26482743      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2649       24,     0,     0,    25,    26,    27,     0,   641,     0,   336,
    2650      279,   280,    30,   281,     0,     0,     0,   109,     0,     0,
    2651        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2652       16,    17,    18,    19,    20,    21,    22,    23,    24,   282,
    2653       33,    25,    26,    27,     0,   283,     0,    37,    38,   284,
    2654       30,     0,   285,   286,   287,   288,    40,    41,     0,   289,
    2655      290,     0,     0,     0,     0,     0,     0,   291,     0,     0,
    2656        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2657        0,     0,   292,     0,   597,    37,    38,     0,     0,     0,
    2658        0,   294,   598,   296,   297,   298,   299,     8,     9,    10,
     2744      24,     0,    33,    25,    26,    27,   642,     0,   337,    37,
     2745      38,     0,    30,     0,     0,     0,   633,     8,     9,    10,
    26592746      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    26602747      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2661      641,     0,   336,   279,   280,    30,   281,     0,     0,     0,
    2662      632,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2748      33,     0,     0,     0,     0,    30,   255,    37,    38,     0,
     2749       0,     0,     0,     0,   109,     8,     9,    10,    11,    12,
    26632750      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2664       23,    24,   282,    33,    25,    26,    27,     0,   283,     0,
    2665       37,    38,   284,    30,   451,   285,   286,   287,   288,    40,
    2666       41,     0,   289,   290,     0,     0,     0,     0,     0,     0,
    2667      291,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2668        0,    33,     0,     0,     0,   292,     0,   376,    37,    38,
    2669        0,     0,     0,     0,   294,   378,   296,   297,   298,   299,
    2670      472,     2,   203,     4,     5,     6,     7,     8,     9,    10,
    2671       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2672       21,    22,    23,    24,     0,   452,    25,    26,    27,   708,
    2673        0,     0,     0,   109,     0,    30,     8,     9,    10,    11,
     2751      23,    24,     0,    33,    25,    26,    27,     0,     0,     0,
     2752     205,    38,     0,    30,   155,     0,     0,     0,     0,     0,
     2753       0,     0,   109,     8,     9,    10,    11,    12,    13,    14,
     2754      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2755       0,    33,    25,    26,    27,     0,     0,   268,    37,    38,
     2756       0,    30,     0,     0,     0,   269,     8,     9,    10,    11,
    26742757      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2675       22,    23,    24,  -293,     0,    25,    26,    27,     0,     0,
    2676        0,     0,     0,    33,    30,    34,     0,    35,     0,     0,
    2677       37,    38,     0,     0,     8,     9,    10,    11,    12,    13,
     2758      22,    23,    24,     0,     0,    25,    26,    27,     0,    33,
     2759       0,     0,     0,     0,    30,   255,    37,    38,     0,     0,
     2760       0,     0,     0,   633,     8,     9,    10,    11,    12,    13,
    26782761      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2679       24,     0,    33,    25,    26,    27,     0,    36,     0,   334,
    2680      335,    39,    30,  -293,     0,     0,     0,     0,    40,    41,
    2681       -3,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2762      24,     0,    33,    25,    26,    27,     0,     0,     0,    37,
     2763      38,     0,    30,   337,     0,     0,     0,     0,     0,     0,
     2764       0,   633,     8,     9,    10,    11,    12,    13,    14,    15,
    26822765      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2683       33,    25,    26,    27,   641,    36,   336,    37,    38,    39,
    2684       30,     0,     0,     0,   632,     0,    40,    41,     0,     0,
    2685        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2686       18,    19,    20,    21,    22,    23,    24,     0,    33,    25,
    2687       26,    27,    42,    36,    43,   204,    38,    39,    30,     0,
    2688        0,     0,    44,     0,    40,    41,     0,     0,     8,     9,
    2689       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2690       20,    21,    22,    23,    24,  -293,    33,    25,    26,    27,
    2691       42,    36,   267,   334,   335,    39,    30,     0,     0,     0,
    2692      206,     0,    40,    41,     0,     0,     0,     0,     0,     0,
    2693        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2694        0,     0,     0,     0,    33,     0,     0,     0,   641,     0,
    2695      336,    37,    38,     0,     0,  -293,     0,     0,   632,     0,
    2696        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2697       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2698       25,    26,    27,     0,     0,     0,   641,     0,   336,    30,
    2699      451,     0,     0,     0,     0,     0,   632,     0,     0,     8,
    2700        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2701       19,    20,    21,    22,    23,    24,     0,    33,    25,    26,
    2702       27,     0,     0,     0,    37,    38,     0,    30,   451,     8,
    2703        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2704       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2705       27,     0,     0,     0,     0,    33,     0,    30,     0,     0,
    2706        0,   452,    37,    38,     0,   944,     0,     0,     0,   109,
    2707        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2708        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2709        0,     0,    37,    38,     0,     0,     0,     0,     0,   452,
    2710        0,     0,     0,  1232,     0,     0,     0,   109,     0,     0,
    2711        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2712       17,    18,    19,    20,    21,    22,    23,    24,     0,   254,
    2713       25,    26,    27,     0,     0,     0,     0,   109,     0,    30,
     2766      33,    25,    26,    27,     0,     0,   453,   205,    38,     0,
     2767      30,     0,     0,     0,   109,     8,     9,    10,    11,    12,
     2768      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2769      23,    24,     0,     0,    25,    26,    27,     0,    33,     0,
     2770       0,     0,     0,    30,   268,    37,    38,     0,     0,     0,
     2771       0,     0,   628,     8,     9,    10,    11,    12,    13,    14,
     2772      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2773       0,    33,    25,    26,    27,     0,     0,     0,    37,    38,
     2774       0,    30,   598,     0,     0,     0,     0,     0,     0,     0,
     2775     633,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2776       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2777       0,     0,     0,     0,     0,   337,    37,    38,     0,     0,
     2778       0,     0,     0,   109,     2,   204,     4,     5,     6,     7,
    27142779       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    27152780      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2716       26,    27,     0,     0,     0,     0,     0,    33,    30,     0,
    2717        0,     0,     0,     0,    37,    38,     0,     0,     8,     9,
    2718       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2719       20,    21,    22,    23,    24,     0,    33,    25,    26,    27,
    2720        0,     0,     0,   204,    38,     0,    30,     0,     0,     0,
    2721        0,   154,     0,     0,     0,     0,     0,     0,     0,   109,
     2781      26,    27,     0,    43,     0,     0,     0,     0,    30,     0,
     2782       0,   109,     0,     0,     0,     0,     0,     0,     0,     0,
    27222783       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2723        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2724      267,    37,    38,     0,     0,     0,     0,     0,   268,     8,
    2725        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2726       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2727       27,     0,     0,     0,     0,     0,     0,    30,   254,     0,
    2728        0,     0,     0,     0,     0,     0,   632,     8,     9,    10,
    2729       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2730       21,    22,    23,    24,     0,    33,    25,    26,    27,     0,
    2731        0,     0,    37,    38,     0,    30,     8,     9,    10,    11,
    2732       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2733       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2734        0,     0,     0,    33,    30,     0,     0,     0,     0,   336,
    2735       37,    38,     0,     0,     0,     0,     0,   632,     0,     0,
     2784       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2785      35,     0,     0,    37,    38,   280,   281,     0,   282,  1062,
     2786       0,  1063,     0,     0,  1064,  1065,  1066,  1067,  1068,  1069,
     2787    1070,  1071,     0,     0,  1548,  1072,     0,     0,     0,  1073,
     2788    1074,     0,    32,     0,   283,     0,     0,     0,     0,  -412,
     2789     648,     0,     0,     0,   285,     0,     0,   286,   287,   288,
     2790     289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
     2791       0,     0,   292,     0,     0,     0,     0,     0,     0,     0,
     2792       0,     0,     0,     0,     0,     0,     0,   293,     0,   377,
     2793       0,     0,   169,     0,     0,     0,   295,   379,   297,   298,
     2794     299,   300,     0,     0,     0,     0,  1076,     0,   280,   281,
     2795    -129,   282,  1062,     0,  1063,     0,     0,  1064,  1065,  1066,
     2796    1067,  1068,  1069,  1070,  1071,     0,     0,     0,  1072,     0,
     2797       0,     0,  1073,  1074,     0,    32,     0,   283,     0,     0,
     2798       0,     0,     0,   648,     0,     0,     0,   285,     0,     0,
     2799     286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
     2800       0,     0,     0,     0,     0,   292,     0,     0,     0,     0,
    27362801       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2737        0,     0,    33,     0,     0,     0,     0,     0,     0,   204,
    2738       38,     0,     0,     0,     0,     0,     0,   452,     0,     0,
    2739        0,     0,     0,     0,     0,   109,     0,     0,     8,     9,
    2740       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2741       20,    21,    22,    23,    24,     0,   267,    25,    26,    27,
    2742        0,     0,     0,     0,   627,     0,    30,     8,     9,    10,
     2802     293,     0,   377,     0,     0,   169,     0,     0,     0,   295,
     2803     379,   297,   298,   299,   300,     0,     0,     0,     0,  1076,
     2804       0,   280,   281,  -129,   282,  1062,     0,  1063,  1418,  1419,
     2805    1064,  1065,  1066,  1067,  1068,  1069,  1070,  1071,     0,     0,
     2806    1548,  1072,     0,     0,     0,  1073,  1074,     0,    32,     0,
     2807     283,     0,     0,     0,     0,     0,   648,     0,     0,     0,
     2808     285,     0,     0,   286,   287,   288,   289,    40,    41,     0,
     2809     290,   291,     0,     0,     0,     0,     0,     0,   292,     0,
     2810       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2811       0,     0,     0,   293,     0,   377,     0,     0,   169,     0,
     2812       0,     0,   295,   379,   297,   298,   299,   300,     0,     0,
     2813     280,   281,  1076,   282,  1062,     0,  1063,  1418,  1419,  1064,
     2814    1065,  1066,  1067,  1068,  1069,  1070,  1071,     0,     0,     0,
     2815    1072,     0,     0,     0,  1073,  1074,     0,    32,     0,   283,
     2816       0,     0,     0,     0,     0,   648,     0,     0,     0,   285,
     2817       0,     0,   286,   287,   288,   289,    40,    41,     0,   290,
     2818     291,     0,     0,     0,     0,     0,     0,   292,     0,     0,
     2819       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2820       0,     0,   293,     0,   377,     0,     0,   169,     0,     0,
     2821       0,   295,   379,   297,   298,   299,   300,     0,     0,   280,
     2822     281,  1076,   282,  1062,     0,  1063,     0,     0,  1064,  1065,
     2823    1066,  1067,  1068,  1069,  1070,  1071,     0,     0,     0,  1072,
     2824       0,     0,     0,  1073,  1074,     0,    32,     0,   283,     0,
     2825       0,     0,     0,     0,   648,     0,     0,     0,   285,     0,
     2826       0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
     2827       0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
     2828       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2829       0,   293,     0,   377,     0,     0,   169,     0,     0,     0,
     2830     295,   379,   297,   298,   299,   300,     0,     0,     0,     0,
     2831    1076,     2,   204,     4,     5,     6,     7,     8,     9,    10,
    27432832      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    27442833      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2745        0,     0,     0,     0,    33,    30,     0,     0,     0,     0,
    2746        0,    37,    38,     0,     0,     8,     9,    10,    11,    12,
    2747       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2748       23,    24,     0,    33,    25,    26,    27,     0,     0,     0,
    2749       37,    38,     0,    30,     0,     0,     0,     0,   597,     0,
    2750        0,     0,     0,     0,     0,     0,   632,     0,     0,     0,
     2834       0,     0,     0,     0,     0,    30,     0,   280,   281,     0,
     2835     282,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2836       0,     0,     0,     0,     0,     0,   280,   281,     0,   282,
     2837       0,     0,     0,    33,     0,    34,   283,    35,     0,     0,
     2838      37,    38,   284,     0,     0,     0,   285,     0,     0,   286,
     2839     287,   288,   289,    40,    41,   283,   290,   291,     0,     0,
     2840       0,   648,  1327,     0,   292,   285,     0,     0,   286,   287,
     2841     288,   289,    40,    41,     0,   290,   291,     0,     0,   293,
     2842       0,   377,     0,   292,   280,   281,     0,   282,   295,   733,
     2843     297,   298,   299,   300,     0,     0,     0,     0,   293,     0,
     2844     784,     0,     0,   280,   281,     0,   282,   295,   379,   297,
     2845     298,   299,   300,   283,     0,     0,     0,     0,     0,   284,
     2846       0,     0,     0,   285,     0,     0,   286,   287,   288,   289,
     2847      40,    41,   283,   290,   291,     0,     0,     0,   284,     0,
     2848       0,   292,   285,     0,     0,   286,   287,   288,   289,    40,
     2849      41,     0,   290,   291,     0,     0,   293,     0,   377,     0,
     2850     292,   280,   281,     0,   282,   295,   826,   297,   298,   299,
     2851     300,     0,     0,     0,     0,   517,     0,     0,     0,     0,
     2852       0,     0,     0,     0,   295,   379,   297,   298,   299,   300,
     2853     283,     0,     0,     0,     0,     0,   284,     0,     0,     0,
     2854     285,     0,     0,   286,   287,   288,   289,    40,    41,     0,
     2855     290,   291,     0,     0,     0,     0,     0,     0,   292,     0,
    27512856       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2752        0,    33,     0,     0,     0,     0,     0,   336,    37,    38,
    2753        0,     0,     0,     0,     0,   109,     2,   203,     4,     5,
    2754        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2755       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2756        0,    25,    26,    27,     0,    43,     0,     0,     0,     0,
    2757       30,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    2758        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2759        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2760       34,     0,    35,     0,     0,    37,    38,   279,   280,     0,
    2761      281,  1060,     0,  1061,     0,     0,  1062,  1063,  1064,  1065,
    2762     1066,  1067,  1068,  1069,     0,     0,  1546,  1070,     0,     0,
    2763        0,  1071,  1072,     0,    32,     0,   282,     0,     0,     0,
    2764        0,  -411,   647,     0,     0,     0,   284,     0,     0,   285,
    2765      286,   287,   288,    40,    41,     0,   289,   290,     0,     0,
    2766        0,     0,     0,     0,   291,     0,     0,     0,     0,     0,
    2767        0,     0,     0,     0,     0,     0,     0,     0,     0,   292,
    2768        0,   376,     0,     0,   168,     0,     0,     0,   294,   378,
    2769      296,   297,   298,   299,     0,     0,     0,     0,  1074,     0,
    2770      279,   280,  -128,   281,  1060,     0,  1061,     0,     0,  1062,
    2771     1063,  1064,  1065,  1066,  1067,  1068,  1069,     0,     0,     0,
    2772     1070,     0,     0,     0,  1071,  1072,     0,    32,     0,   282,
    2773        0,     0,     0,     0,     0,   647,     0,     0,     0,   284,
    2774        0,     0,   285,   286,   287,   288,    40,    41,     0,   289,
    2775      290,     0,     0,     0,     0,     0,     0,   291,     0,     0,
    2776        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2777        0,     0,   292,     0,   376,     0,     0,   168,     0,     0,
    2778        0,   294,   378,   296,   297,   298,   299,     0,     0,     0,
    2779        0,  1074,     0,   279,   280,  -128,   281,  1060,     0,  1061,
    2780     1416,  1417,  1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,
    2781        0,     0,  1546,  1070,     0,     0,     0,  1071,  1072,     0,
    2782       32,     0,   282,     0,     0,     0,     0,     0,   647,     0,
    2783        0,     0,   284,     0,     0,   285,   286,   287,   288,    40,
    2784       41,     0,   289,   290,     0,     0,     0,     0,     0,     0,
    2785      291,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2786        0,     0,     0,     0,     0,   292,     0,   376,     0,     0,
    2787      168,     0,     0,     0,   294,   378,   296,   297,   298,   299,
    2788        0,     0,   279,   280,  1074,   281,  1060,     0,  1061,  1416,
    2789     1417,  1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,     0,
    2790        0,     0,  1070,     0,     0,     0,  1071,  1072,     0,    32,
    2791        0,   282,     0,     0,     0,     0,     0,   647,     0,     0,
    2792        0,   284,     0,     0,   285,   286,   287,   288,    40,    41,
    2793        0,   289,   290,     0,     0,     0,     0,     0,     0,   291,
    2794        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2795        0,     0,     0,     0,   292,     0,   376,     0,     0,   168,
    2796        0,     0,     0,   294,   378,   296,   297,   298,   299,     0,
    2797        0,   279,   280,  1074,   281,  1060,     0,  1061,     0,     0,
    2798     1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,     0,     0,
    2799        0,  1070,     0,     0,     0,  1071,  1072,     0,    32,     0,
    2800      282,     0,     0,     0,     0,     0,   647,     0,     0,     0,
    2801      284,     0,     0,   285,   286,   287,   288,    40,    41,     0,
    2802      289,   290,     0,     0,     0,     0,     0,     0,   291,     0,
    2803        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2804        0,     0,     0,   292,     0,   376,     0,     0,   168,     0,
    2805        0,     0,   294,   378,   296,   297,   298,   299,     0,     0,
    2806        0,     0,  1074,     2,   203,     4,     5,     6,     7,     8,
    2807        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2808       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2809       27,     0,     0,     0,     0,     0,     0,    30,     0,   279,
    2810      280,     0,   281,     0,     0,     0,     0,     0,     0,     0,
    2811        0,     0,     0,     0,     0,     0,     0,     0,   279,   280,
    2812        0,   281,     0,     0,     0,    33,     0,    34,   282,    35,
    2813        0,     0,    37,    38,   283,     0,     0,     0,   284,     0,
    2814        0,   285,   286,   287,   288,    40,    41,   282,   289,   290,
    2815        0,     0,     0,   283,  1325,     0,   291,   284,     0,     0,
    2816      285,   286,   287,   288,    40,    41,     0,   289,   290,     0,
    2817        0,   292,     0,   376,     0,   291,   279,   280,   778,   281,
    2818      294,   378,   296,   297,   298,   299,     0,     0,     0,     0,
    2819      292,     0,   376,     0,     0,   990,     0,     0,     0,   294,
    2820      378,   296,   297,   298,   299,   282,     0,     0,     0,     0,
    2821        0,   283,     0,     0,     0,   284,     0,     0,   285,   286,
    2822      287,   288,    40,    41,     0,   289,   290,     0,     0,     0,
    2823        0,     0,     0,   291,   279,   280,     0,   281,     0,     0,
    2824        0,     0,     0,     0,     0,     0,     0,     0,   292,     0,
    2825      376,     0,     0,   279,   280,     0,   281,   294,   378,   296,
    2826      297,   298,   299,   282,     0,     0,     0,     0,     0,   283,
    2827        0,     0,     0,   284,     0,     0,   285,   286,   287,   288,
    2828       40,    41,   282,   289,   290,     0,     0,     0,   647,     0,
    2829        0,   291,   284,     0,     0,   285,   286,   287,   288,    40,
    2830       41,     0,   289,   290,     0,     0,   292,     0,   376,     0,
    2831      291,   279,   280,     0,   281,   294,   731,   296,   297,   298,
    2832      299,     0,     0,     0,     0,   292,     0,   782,     0,     0,
    2833      279,   280,     0,   281,   294,   378,   296,   297,   298,   299,
    2834      282,     0,     0,     0,     0,     0,   283,     0,     0,     0,
    2835      284,     0,     0,   285,   286,   287,   288,    40,    41,   282,
    2836      289,   290,     0,     0,     0,   283,     0,     0,   291,   284,
    2837        0,     0,   285,   286,   287,   288,    40,    41,     0,   289,
    2838      290,     0,     0,   292,     0,   376,     0,   291,   279,   280,
    2839        0,   281,   294,   824,   296,   297,   298,   299,     0,     0,
    2840        0,     0,   516,     0,     0,     0,     0,     0,     0,     0,
    2841        0,   294,   378,   296,   297,   298,   299,   282,     0,     0,
    2842        0,     0,     0,   283,     0,     0,     0,   284,     0,     0,
    2843      285,   286,   287,   288,    40,    41,     0,   289,   290,     0,
    2844        0,     0,     0,     0,     0,   291,     0,     0,     0,     0,
    2845        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2846      519,     0,     0,     0,     0,     0,     0,     0,     0,   294,
    2847      378,   296,   297,   298,   299,     2,   203,     4,     5,     6,
    2848        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2849       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2850        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    2851        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2852        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2853        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2854        0,    35,    36,     0,   171,   172,    39,     0,     0,     0,
    2855        0,     0,     0,    40,    41,   202,     2,   203,     4,     5,
    2856        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2857       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2858        0,    25,    26,    27,     0,     0,     0,     0,     0,     0,
    2859       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2860        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2861        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2862       34,     0,    35,     0,     0,   204,    38,   472,     2,   203,
     2857       0,     0,     0,   520,     0,     0,     0,     0,     0,     0,
     2858       0,     0,   295,   379,   297,   298,   299,   300,     2,   204,
    28632859       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    28642860      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2865       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2861      24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28662862       0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
    28672863       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28682864       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2869       33,     0,    34,     0,    35,     0,     0,    37,    38,     2,
    2870      203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2865      33,     0,    34,     0,    35,    36,     0,   172,   173,    39,
     2866       0,     0,     0,     0,     0,     0,    40,    41,   203,     2,
     2867     204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    28712868      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    28722869      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     
    28742871       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28752872       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2876        0,    33,     0,    34,     0,    35,     0,     0,   204,    38
     2873       0,    33,     0,    34,     0,    35,     0,     0,   205,    38,
     2874     473,     2,   204,     4,     5,     6,     7,     8,     9,    10,
     2875      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2876      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2877       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
     2878       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2879       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2880       0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
     2881      37,    38,     2,   204,     4,     5,     6,     7,     8,     9,
     2882      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2883      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2884       0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
     2885       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2886       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2887       0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
     2888       0,   205,    38
    28772889};
    28782890
    28792891#define yypact_value_is_default(yystate) \
    2880   ((yystate) == (-1361))
     2892  ((yystate) == (-1281))
    28812893
    28822894#define yytable_value_is_error(yytable_value) \
     
    28852897static const yytype_int16 yycheck[] =
    28862898{
    2887        1,   182,     0,     0,    42,   201,   236,   165,   166,    42,
    2888      183,    42,   182,     1,   183,   541,   182,   346,   518,   346,
    2889      695,   756,   182,   216,   695,   182,   454,   627,   899,   695,
    2890      653,   182,   495,    31,    31,   460,   103,   276,   609,   777,
    2891      182,   361,   609,   292,    42,   365,    44,    44,   610,  1040,
    2892     1059,  1039,  1040,    38,   616,   497,    54,   607,    42,   501,
    2893     1420,   996,    60,    60,   607,    63,    63,  1003,    66,    66,
    2894      113,   577,    71,     0,    54,    42,   607,   607,    66,   607,
    2895       54,   262,   184,     0,   607,   152,    42,  1416,   607,    71,
    2896      263,    81,   262,   415,   263,   453,   262,   720,  1335,   774,
    2897       43,    44,   262,   774,    31,   262,   104,     0,   774,   107,
    2898        1,   262,    62,   435,    31,   113,  1052,    31,    43,    44,
    2899      262,   443,    71,   108,   104,   110,    27,   107,  1071,  1072,
    2900      104,    38,   131,   107,    81,    63,   118,    81,    31,    50,
    2901       43,    44,    84,   899,   182,   108,   144,   144,   611,   182,
    2902       71,   182,   615,    44,   152,   198,   258,   259,  1518,   157,
    2903      157,  1490,   109,  1523,   493,    71,   110,    73,    74,   527,
    2904      112,   114,   152,   636,   423,   424,    77,   640,   423,   424,
    2905      108,   131,   131,  1543,   182,   183,   183,   106,   113,   110,
    2906     1550,   741,     0,     1,     0,    44,  1139,   108,   182,    38,
    2907      198,  1438,   108,   110,   278,     0,    81,   113,   206,   206,
    2908      113,   130,   103,   741,   407,   182,    71,   215,   109,   108,
    2909      218,   218,   741,    31,   262,    31,   182,    82,    83,   262,
    2910      403,   262,    11,   108,   403,   215,    31,    38,   253,   642,
    2911      643,   215,    95,    71,    71,    73,    74,  1238,   249,    71,
    2912      248,   248,   143,   108,   499,    63,   659,    63,    66,    71,
    2913      109,   152,   511,   108,   262,   263,   263,   516,  1006,   122,
    2914      519,   269,   339,   518,   111,   595,   838,   848,   276,    44,
    2915      453,   848,   609,   110,   453,   113,   836,   715,   110,   269,
    2916      291,    38,  1301,   836,   143,   269,   276,  1288,   110,  1287,
    2917     1288,   368,   276,  1059,   696,   836,   836,   108,   836,   110,
    2918      816,   202,   485,   836,  1472,   206,   485,   836,   638,  1254,
    2919      108,   248,   113,   469,   573,   109,   718,    38,   326,   326,
    2920      733,   248,   116,  1068,   248,    71,   253,    73,    74,   584,
    2921       94,    81,   130,    81,   109,   236,   237,   345,   346,  1507,
    2922      393,  1509,  1223,   115,    81,   248,    71,   206,    73,    74,
    2923      253,   108,   225,   110,   362,   345,   688,    38,   366,   109,
    2924      108,   345,    89,    90,   110,   129,   116,   268,   421,   109,
    2925      271,   244,   362,     3,   427,   115,   366,   236,   362,   116,
    2926      957,     3,   366,   108,   115,   393,   109,   108,   113,   110,
    2927      415,   292,     0,   116,   295,   403,   403,   870,   125,   126,
    2928      218,    95,   218,   956,   641,   642,   643,    52,  1018,   268,
    2929      435,  1412,   825,   421,  1412,   956,   956,  1523,   443,   427,
    2930     1493,   429,   659,   108,  1523,   509,  1499,   108,   122,   110,
    2931      248,   206,   248,   109,     0,    79,   295,  1543,   339,   429,
    2932      116,   342,  1461,   248,  1550,   453,   130,  1520,   899,  1468,
    2933       95,  1550,  1525,   530,   130,  1027,  1028,  1223,  1404,  1405,
    2934      361,   472,   237,   115,   365,   118,   110,   368,   112,   477,
    2935      123,   124,   116,   128,   109,   130,   115,   485,   485,   131,
    2936      115,   489,   489,   342,   115,   493,   654,   115,   415,   962,
    2937      925,  1001,   131,   268,   115,     0,   733,   827,   108,   109,
    2938      131,   831,  1521,   131,   695,  1138,   755,   518,   435,   848,
    2939      131,   848,   415,   965,   697,   695,   443,   292,   697,   695,
    2940      295,   677,   423,   424,   535,   695,    31,   538,   695,   540,
    2941      541,   347,   435,   108,   695,  1301,  1113,    42,   115,    44,
    2942      443,   114,   115,   695,   108,   190,   110,   115,     0,     1,
    2943      451,   663,   489,   454,   131,    60,  1301,   130,    63,   460,
    2944      487,    66,   489,   131,   423,   424,   108,   935,   213,   109,
    2945      108,   472,   110,   975,     3,   943,   115,   588,   223,    31,
    2946      118,    10,    11,    12,    13,    14,   489,   595,   825,   673,
    2947      115,   921,   131,    79,   120,   121,   497,   115,   499,   607,
    2948      501,   609,   108,   115,   110,   595,   131,   115,   661,    38,
    2949      511,  1062,   513,   131,    66,   516,   693,   518,   519,   131,
    2950      628,   989,   961,   131,   110,   109,   112,   109,   109,   530,
    2951      116,   115,   115,  1378,   115,   696,   644,    66,   628,   144,
    2952      499,    84,    85,    86,   628,    87,    88,   292,   131,   660,
    2953      658,   662,   157,   661,   644,   108,   812,   718,   108,   518,
    2954      644,  1099,   478,   688,   115,   108,   822,   110,   658,   112,
    2955      113,   489,   108,   489,   658,   759,   451,   182,   183,   454,
    2956      131,   837,   885,   584,   489,   460,   342,   695,   108,   697,
    2957      110,   511,   769,   513,   595,  1461,   516,   598,   118,   519,
    2958      108,   206,  1468,   906,   108,   730,   110,    10,    11,    12,
    2959       13,    14,   109,   218,   118,   109,   109,   728,   115,   109,
    2960     1465,   115,  1467,   891,   109,   584,   627,   967,   111,  1131,
    2961      115,   632,   115,   741,   742,    38,   511,   638,   513,   598,
    2962      487,   516,   111,   248,   519,   109,   115,   755,   809,   111,
    2963      111,   115,   935,   115,   115,  1521,   935,   262,     0,     1,
    2964      943,   688,   111,    66,   943,   755,   115,   694,   627,   109,
    2965     1100,   755,  1223,   632,   109,   115,   109,  1522,   109,  1129,
    2966      115,  1317,   115,  1133,   115,   688,   109,  1189,  1190,    31,
    2967       67,   596,   693,   109,    71,   440,   248,    74,   109,    76,
    2968       91,    92,    44,   730,   115,   108,    83,   110,    71,   111,
    2969       73,    74,    75,   629,   715,   118,   109,   109,   108,    82,
    2970       83,   326,   115,   115,    66,  1031,   887,   730,   836,   474,
    2971      108,   487,   110,     4,     5,     6,     7,     8,     9,   108,
    2972      848,   346,  1527,   770,   745,   108,  1527,   562,   563,   564,
    2973      565,  1527,     4,     5,     6,     7,     8,     9,   109,   114,
    2974      108,   103,   110,   109,   115,   111,   511,  1318,   769,   115,
    2975      109,   516,   131,   109,   519,   108,   115,   109,    71,   115,
    2976     1036,  1037,    75,   115,   130,   131,  1054,    63,   899,    82,
    2977       83,   108,   109,   110,   641,   642,   643,    68,   403,    70,
    2978      108,   108,   144,   110,    71,   721,    73,    74,    75,   108,
    2979      152,   153,   659,   921,   975,   108,    68,   110,    70,   735,
    2980       71,  1372,    73,    74,  1375,   118,   827,   935,   114,   115,
    2981      831,   921,   209,   111,   108,   943,   110,   131,  1094,  1095,
    2982      715,   183,   598,  1202,  1203,  1006,  1205,   694,   453,    84,
    2983       85,    86,  1211,   961,   113,  1214,   198,   115,   116,   201,
    2984      202,   108,   109,   110,   206,   108,   109,   110,   966,  1420,
    2985      981,   627,   899,   108,  1425,   110,   632,   112,   113,   131,
    2986      108,   109,   110,   113,   489,   227,   733,   998,   493,   231,
    2987     1001,   233,  1003,   109,   110,  1056,   899,  1399,    57,    58,
    2988      242,    57,    58,    59,  1455,   131,   248,  1260,  1261,  1262,
    2989       50,   253,    52,   829,  1416,    55,    56,    57,   131,    59,
    2990      921,   263,    71,   770,   925,   113,   108,   832,   110,   271,
    2991      108,   676,   110,   108,    74,   110,    81,   489,   694,   108,
    2992      685,  1052,   114,   115,   689,  1129,    86,    87,    71,  1133,
    2993     1134,  1062,    75,   108,  1065,  1066,  1067,   115,   116,    82,
    2994       83,   115,   116,   111,   965,   966,   967,   700,  1121,   702,
    2995     1131,   108,   349,    81,   351,    43,    44,   119,   825,    93,
    2996     1236,   899,   128,   899,   127,   108,   130,  1489,  1490,   110,
    2997     1541,   558,   559,   108,   899,   118,  1547,   339,   560,   561,
    2998      342,   108,   607,   108,   609,   111,   348,  1558,   967,   566,
    2999      567,  1562,  1268,  1121,   770,  1374,   111,  1018,   109,   361,
    3000     1276,  1277,  1278,   365,   109,   109,   368,   109,  1189,  1190,
    3001      109,   109,  1059,   110,  1502,    10,    11,    12,    13,    14,
    3002      111,  1218,     4,     5,     6,     7,     8,     9,   966,    71,
    3003      925,    73,    74,    75,   111,   115,  1059,   130,   113,  1018,
    3004       82,    83,   439,    38,  1248,   108,   111,   109,  1324,   109,
    3005       32,   115,   111,   415,   111,   111,    10,    11,    12,    13,
    3006       14,   111,   116,   116,  1552,    28,   108,   111,   430,   109,
    3007      695,    66,   697,   435,   109,   113,   118,   116,  1099,  1100,
    3008      114,   443,   109,  1201,    38,  1021,    68,   115,    70,   114,
    3009     1218,   114,  1223,   109,    10,    11,    12,    13,    14,   108,
    3010      131,   109,    63,   115,   109,   116,   109,   469,  1218,   109,
    3011      472,  1158,    66,   109,   115,   109,   741,   742,   109,    80,
    3012      109,  1059,    38,  1059,  1242,   487,   109,   489,   109,  1260,
    3013     1261,  1262,  1336,   109,  1059,   497,  1340,   109,     3,   501,
    3014       71,   109,    73,    74,    75,    10,    11,    12,    13,    14,
    3015       66,    82,    83,   114,   108,    71,   110,   109,   923,    75,
    3016      109,   109,   109,   109,   118,    28,    82,    83,   530,   531,
    3017      114,   130,  1039,    38,   111,   109,  1223,  1537,   114,   109,
    3018      109,   109,   342,   343,   109,   111,  1317,  1318,   115,   111,
    3019      109,  1238,   108,   116,   354,   355,   157,  1218,   115,   109,
    3020     1223,    66,   118,   115,  1099,   113,   115,   111,   109,   115,
    3021      115,   836,   109,   109,   108,   577,  1527,  1335,  1399,   111,
    3022      108,  1242,  1395,   848,   108,  1528,   108,  1527,   108,  1528,
    3023      111,  1527,   131,   595,   596,  1416,   598,  1527,  1442,   116,
    3024     1527,  1372,  1018,   114,  1375,   109,  1527,   609,   109,  1552,
    3025      109,   113,   128,  1552,  1301,  1527,   114,   218,   111,   131,
    3026      109,   115,  1200,  1201,  1200,   627,  1394,  1395,   111,   115,
    3027      632,   111,   109,  1404,  1405,   109,   638,   109,  1301,   641,
    3028      642,   643,   111,   111,  1394,  1223,   111,  1223,   109,  1420,
    3029     1394,  1158,   111,   111,  1425,   256,   111,   659,  1223,   260,
    3030       46,   131,   109,   114,  1242,  1070,   114,   131,  1489,  1490,
    3031      935,   131,  1443,   116,  1335,   677,   109,   131,   943,   131,
    3032     1438,   111,   114,   111,  1455,   111,   688,   899,   111,  1502,
    3033      111,   693,   694,   111,    44,   697,   961,   111,   111,   109,
    3034       71,   109,    73,    74,    75,   111,   111,   108,   108,   108,
    3035       60,    82,    83,    63,    59,   109,    66,     0,  1296,  1527,
    3036     1296,   109,   113,  1301,  1527,  1301,  1527,   116,   730,   131,
    3037      111,   733,  1503,   111,  1502,   109,  1301,   108,   111,   109,
    3038      742,  1512,  1158,   745,    95,   108,   347,  1518,    31,    95,
    3039      108,   131,  1523,   114,   966,   111,   109,  1335,   115,  1527,
    3040     1528,  1528,   109,    41,    29,   109,   109,   769,   770,   131,
    3041     1541,   131,  1543,   775,  1461,   116,  1547,  1438,   109,  1550,
    3042     1287,  1468,   186,    66,  1552,  1552,   109,  1558,    95,   193,
    3043       95,  1562,   131,   109,   144,   109,   131,   116,  1461,   131,
    3044      109,   109,   114,   131,   108,  1468,   131,   157,   111,  1470,
    3045      812,  1472,   111,   114,   469,    80,    81,   114,   109,   109,
    3046      822,   109,  1238,   825,   109,   827,  1074,   428,   830,   831,
    3047      832,     3,   568,   183,  1521,   837,   131,   569,    10,    11,
    3048       12,    13,    14,   570,  1223,   847,  1507,  1059,  1509,   571,
    3049     1490,    10,    11,    12,    13,    14,   206,  1380,  1521,   572,
    3050     1438,   265,  1562,    71,  1311,  1134,    38,    75,   218,    71,
    3051      153,    73,    74,    75,    82,    83,  1537,   478,  1340,    38,
    3052       82,    83,  1468,  1461,  1090,  1461,   943,   451,   463,   702,
    3053     1468,   451,  1468,   588,    66,   655,  1461,   899,   945,   745,
    3054      108,   990,   891,  1468,   963,  1310,   108,    66,   110,   489,
    3055      118,  1242,   755,    -1,   116,   576,   118,   321,  1537,   921,
    3056       -1,    -1,   722,   576,   724,   329,   576,    -1,   332,    -1,
    3057       -1,   731,   732,    -1,    -1,  1470,   736,  1472,    -1,    -1,
    3058       -1,    -1,    -1,  1521,   227,  1521,    -1,    -1,   748,   108,
    3059       -1,   110,    -1,   753,    -1,   957,  1521,    -1,    -1,   118,
    3060       -1,    -1,    -1,   965,   966,   248,    -1,    -1,    -1,    -1,
    3061      253,   281,  1507,    -1,  1509,   240,   326,    -1,    -1,   779,
    3062       -1,   983,    -1,    -1,   294,   295,    -1,    -1,    -1,  1201,
    3063       -1,   395,    -1,    -1,    -1,   399,   306,    -1,    -1,    -1,
    3064      601,    -1,    71,    -1,    73,    74,    75,    -1,    -1,    -1,
    3065       -1,  1223,    -1,    82,    83,    71,  1018,    73,    74,    75,
    3066       -1,    -1,   677,    -1,   824,    -1,    82,    83,   629,  1031,
    3067     1242,    -1,   342,   634,  1036,  1037,    -1,  1039,  1040,   108,
    3068       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
    3069       -1,    -1,   108,   403,   110,    -1,    -1,  1059,    -1,    -1,
    3070       -1,    -1,   118,    -1,  1469,   348,  1471,    71,   378,    73,
    3071       74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    83,
    3072      484,   881,   882,   883,   884,    -1,   886,    -1,    -1,  1301,
    3073       -1,    -1,  1094,  1095,    -1,    -1,    -1,    -1,  1100,    -1,
    3074        0,  1506,   902,  1508,   108,    -1,   110,    71,    -1,    73,
    3075       74,    75,   377,    -1,   118,    -1,   916,    63,    82,    83,
    3076      721,    -1,    -1,  1335,    -1,    -1,    -1,    73,    -1,    -1,
    3077       -1,    31,   415,    -1,   735,    -1,    -1,    -1,    -1,    -1,
    3078       -1,    -1,    -1,    -1,   108,    -1,  1551,   430,  1553,    -1,
    3079       -1,    -1,   435,    -1,   118,   955,  1158,   812,    -1,    -1,
    3080      443,  1566,  1567,    -1,    -1,    -1,    66,   822,   114,    -1,
    3081       -1,    -1,   576,   577,    -1,    -1,    -1,    -1,    -1,    -1,
    3082       -1,    -1,   837,    -1,    -1,    -1,   469,    -1,    -1,    -1,
    3083       -1,    -1,    -1,   458,    -1,   995,    -1,    -1,   463,  1201,
    3084       -1,    -1,  1002,    -1,   487,    -1,   489,  1007,    -1,    -1,
    3085       -1,   157,  1012,    -1,  1014,    -1,  1218,    -1,  1018,  1019,
    3086     1020,  1223,    -1,  1023,    -1,    -1,  1438,    -1,   829,    -1,
    3087       -1,   496,  1032,   498,  1236,    -1,  1238,    -1,    -1,    -1,
    3088     1242,    -1,    -1,    -1,    -1,   555,   556,   557,   531,  1461,
    3089     1050,  1051,    -1,   153,    -1,    -1,  1468,    -1,    -1,    -1,
    3090      664,    -1,  1527,    -1,   668,    -1,  1268,    -1,    -1,    -1,
    3091       -1,    -1,   218,    -1,  1276,  1277,  1278,  1077,    63,    -1,
    3092     1080,    -1,    -1,    -1,    -1,  1287,  1288,    -1,   598,    -1,
    3093       -1,    -1,    -1,    -1,    -1,    -1,    -1,   701,    -1,  1301,
    3094       -1,    -1,    -1,     0,     1,    -1,    -1,    -1,    -1,  1521,
    3095      256,    -1,    -1,   596,   260,    -1,    -1,    -1,  1118,    -1,
    3096       -1,    -1,  1324,    -1,  1124,  1125,    -1,    -1,    -1,   114,
    3097      276,    -1,    -1,  1335,    31,    -1,  1136,    -1,    -1,    -1,
    3098       -1,  1141,    -1,    -1,  1144,    -1,  1146,    -1,   248,  1149,
    3099       -1,    -1,    -1,   253,    -1,    -1,    -1,    -1,   641,   642,
    3100      643,    -1,  1162,    -1,    -1,    -1,    63,    -1,    -1,    66,
    3101       -1,     0,   157,    -1,    -1,  1175,   659,  1177,  1178,  1179,
    3102     1180,  1036,  1037,    -1,    -1,   650,    -1,    -1,    -1,    -1,
    3103       -1,    -1,     0,  1193,   677,  1195,    -1,    -1,    -1,  1199,
    3104       -1,   347,    31,    -1,    -1,   688,    -1,    -1,    -1,    -1,
    3105     1412,   694,   816,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3106     1021,   731,    -1,    31,    -1,   677,    -1,    -1,  1228,  1229,
    3107       -1,    -1,    -1,   218,    -1,    -1,  1438,    66,    -1,  1094,
    3108     1095,    -1,    -1,    -1,    -1,   710,    -1,   730,   348,    -1,
    3109      733,   716,    -1,    -1,    -1,    -1,   153,    -1,    66,  1461,
    3110       -1,    -1,    -1,    -1,    -1,    -1,  1468,   777,    -1,    -1,
    3111       -1,   256,    -1,    -1,    -1,   260,    -1,    -1,    -1,  1279,
    3112     1280,    -1,   428,    -1,    -1,    -1,    -1,   770,    -1,  1289,
    3113       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   445,
    3114       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
    3115       -1,    -1,    -1,    -1,   824,   415,    -1,    -1,    -1,  1521,
    3116       -1,   218,    -1,    -1,   153,   929,  1528,    -1,    -1,   812,
    3117      430,    -1,   478,    -1,   130,   435,    -1,    -1,    -1,   822,
    3118       -1,  1341,   825,   443,    -1,   153,    -1,   830,    -1,   832,
    3119       -1,   248,    -1,  1353,   837,  1355,  1356,  1357,    -1,    -1,
    3120      812,    -1,   347,    -1,    -1,    -1,    -1,  1367,    -1,   469,
    3121      822,    -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,    -1,
    3122       -1,  1236,    -1,    -1,    -1,   837,    -1,   487,    -1,   489,
    3123       -1,    -1,  1392,    -1,    -1,    -1,    -1,    -1,    -1,  1200,
    3124       -1,    -1,    -1,    -1,  1008,    -1,    -1,    -1,    -1,    -1,
    3125       -1,    -1,    -1,  1268,    -1,    -1,   899,    -1,    -1,   248,
    3126     1024,  1276,  1277,  1278,   253,    -1,   891,    -1,    -1,    -1,
    3127       -1,   531,    -1,   898,    -1,    -1,    -1,    -1,    -1,    -1,
    3128      248,    -1,    -1,   428,    -1,   253,    -1,    -1,  1448,  1449,
    3129       10,    11,    12,    13,    14,   601,    -1,    -1,    -1,    -1,
    3130       -1,  1461,    -1,    -1,    -1,    -1,    -1,    -1,  1468,  1324,
    3131       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,
    3132       -1,    -1,    -1,   629,    -1,    -1,    -1,    -1,   634,    -1,
    3133       -1,    -1,    -1,   478,    -1,  1296,   596,  1101,    -1,    -1,
    3134      983,  1501,    -1,    -1,    -1,  1505,    66,    -1,  1018,    -1,
    3135       -1,    71,    -1,    73,    74,    75,    -1,    -1,    -1,   348,
    3136       -1,    -1,    82,    83,    -1,   990,    -1,    -1,    -1,    -1,
    3137       -1,    -1,    -1,   430,  1534,    -1,  1536,    -1,    -1,    -1,
    3138      348,   641,   642,   643,    -1,    -1,    -1,    -1,   108,  1059,
    3139      110,    -1,    -1,  1036,  1037,    -1,  1039,  1040,   118,   659,
    3140       -1,    -1,    -1,    -1,  1564,  1565,    -1,    -1,    -1,    -1,
    3141       -1,    -1,  1572,  1573,    -1,   721,  1059,   677,    -1,    -1,
    3142       -1,    -1,    -1,    -1,  1036,  1037,   415,    -1,   688,   735,
    3143       -1,    -1,   489,    -1,   694,    -1,    -1,    -1,    -1,    -1,
    3144       -1,   430,    -1,    -1,    -1,    -1,   435,   415,    -1,   755,
    3145       -1,  1094,  1095,    -1,   443,    -1,   601,    -1,    -1,    -1,
    3146       -1,    -1,   430,    -1,    -1,  1090,    -1,   435,    -1,    -1,
    3147      730,    -1,    -1,   733,   531,   443,    -1,    -1,    -1,    -1,
    3148      469,    -1,  1094,  1095,   629,    -1,    -1,    -1,    -1,   634,
    3149       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   487,    -1,
    3150      489,   469,    -1,    -1,    -1,  1175,    -1,    -1,    -1,    -1,
    3151      770,    -1,    -1,    -1,    -1,  1158,    -1,    -1,    -1,   487,
    3152       -1,   489,    -1,   829,    -1,    -1,    -1,    -1,    -1,    -1,
    3153       -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,   596,
    3154       -1,    -1,   531,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3155       -1,    -1,   812,    -1,    -1,    -1,    -1,    -1,  1201,    -1,
    3156       -1,    38,   822,   531,    -1,   825,    -1,    -1,    -1,    -1,
    3157      830,  1196,   832,    -1,    -1,    -1,   721,   837,    -1,    -1,
    3158     1223,    -1,    -1,    -1,   641,   642,   643,    -1,    -1,    66,
    3159      735,    -1,    -1,  1236,    71,  1238,    73,    74,    75,    -1,
    3160       -1,    -1,   659,    -1,    -1,    82,    83,   596,    -1,    -1,
     2899       0,     1,     0,    42,   237,   217,   183,   183,   202,    42,
     2900       0,     1,     1,   183,    42,   542,   183,   183,   114,   103,
     2901     184,   455,   519,   343,     0,     0,   628,   454,    28,    29,
     2902     183,    31,   697,    31,   697,   183,   498,   697,   610,   608,
     2903     502,    31,    42,   679,    44,   461,    44,   347,  1042,   496,
     2904     279,   901,   655,     1,    54,    31,    31,   166,   167,   608,
     2905      60,  1061,    60,    63,   608,    63,    66,   610,    66,   153,
     2906     347,     0,   578,    63,  1005,   277,    66,    66,   416,   998,
     2907      80,    81,  1041,  1042,   184,   608,   263,   263,    63,   779,
     2908      42,   362,   185,   263,   608,   366,   263,   263,   436,    31,
     2909     264,   528,    31,   199,   104,  1337,   444,   107,   608,    27,
     2910     263,   776,     0,   776,   114,   263,   776,    42,   608,   722,
     2911     642,   643,   644,  1054,   758,   424,   425,   611,    38,   254,
     2912     643,   644,    38,   617,    81,    42,    62,   106,  1418,   661,
     2913       0,     1,    63,    31,   183,   145,    44,   145,   661,   109,
     2914     183,    81,   108,   153,   226,   183,   116,  1422,   158,    77,
     2915     158,   130,    38,   110,   264,   612,   259,   260,   488,   616,
     2916      50,    31,    44,   245,   743,   109,    43,    44,   814,   109,
     2917    1073,  1074,   116,   183,   184,    81,   184,   108,   824,    54,
     2918     637,    43,    44,    38,   641,    38,   408,    84,   108,   199,
     2919     110,   500,    63,   839,   110,   131,    66,   207,  1440,   207,
     2920     901,   109,  1492,   735,    43,    44,   216,   494,   108,   219,
     2921     519,   219,   735,    38,   263,   112,   226,    81,   108,   219,
     2922     263,   183,   108,    11,   110,   263,   115,   109,   108,   104,
     2923     404,   241,   107,   743,   219,   245,  1240,   114,  1141,   249,
     2924     250,   249,   131,   743,   115,  1520,   340,   113,   183,   249,
     2925    1525,   113,   116,   263,   264,   108,   264,   110,   115,   838,
     2926     270,    38,   144,   249,   249,     0,   183,   277,   850,   599,
     2927    1545,   510,     3,   717,   113,   369,   585,  1552,    81,   838,
     2928     454,   416,   292,   108,   838,   110,  1290,   158,   394,  1474,
     2929     111,  1525,   250,  1303,   404,   827,    31,   850,   628,   207,
     2930     610,   436,   818,   633,   827,   838,   109,   249,  1008,   444,
     2931     249,  1545,   486,   116,   838,   596,   422,   327,  1552,   327,
     2932    1289,  1290,   428,    81,  1509,   207,  1511,  1256,   838,    94,
     2933     238,   108,    95,   110,   292,   111,   346,   347,   838,   115,
     2934      81,   216,   690,    95,   454,  1525,   840,   115,   219,   698,
     2935     108,   249,     3,   363,     1,   237,   254,   367,   639,   122,
     2936    1061,   269,    71,   348,   129,  1225,   696,   108,   378,    71,
     2937     122,   720,  1552,    82,    83,   108,   486,   959,   108,   249,
     2938      82,    83,   114,   115,   394,   293,   257,   269,   296,    71,
     2939     261,   108,  1038,  1039,   404,   270,   404,    44,   130,   958,
     2940      82,    83,   277,   115,   958,    71,     0,   115,  1020,     0,
     2941    1414,   115,   422,   130,   296,   872,    82,    83,   428,   131,
     2942     430,   488,   131,   131,   109,   958,  1070,   131,   110,   131,
     2943     115,    67,   115,    89,    90,    71,   675,   531,    74,   115,
     2944      76,   130,   772,   115,   454,  1414,    71,    83,   131,   459,
     2945    1096,  1097,   118,  1463,   464,   131,   103,    82,    83,   131,
     2946    1470,   343,   109,   473,   108,  1406,  1407,   115,   478,   125,
     2947     126,   346,   109,   108,   109,   109,   486,   348,   486,   116,
     2948     490,   115,   490,   131,   494,   110,   109,   497,   363,   499,
     2949     490,    71,   367,   130,   479,   967,  1003,   144,   120,   121,
     2950     937,   927,    82,    83,   490,   490,   153,   964,   945,   519,
     2951     697,   697,   115,  1523,   249,   473,   108,   697,   416,   254,
     2952     697,   697,   761,   108,  1225,   699,   536,  1140,   131,   539,
     2953     110,   541,   542,  1115,   697,  1029,  1030,   656,   436,   697,
     2954     850,   108,   424,   425,   452,   757,   444,   455,   829,    87,
     2955      88,   490,   833,   461,   991,   690,   203,   663,   429,    71,
     2956     207,   519,   665,   850,   115,    10,    11,    12,    13,    14,
     2957      82,    83,   115,   108,   210,   642,   643,   644,   536,   589,
     2958     131,   539,   470,   541,   542,   109,   596,   115,   131,   699,
     2959     237,   238,   490,    38,   661,   109,   108,   732,   608,   115,
     2960     610,   695,  1303,   131,   512,    71,   514,   115,   479,   517,
     2961     111,   597,   520,   109,   115,   131,    82,    83,   500,   629,
     2962     490,    66,   269,   131,  1270,   272,   109,    79,   977,   696,
     2963     282,   589,  1278,  1279,  1280,   645,    71,   519,    73,    74,
     2964     109,   651,   923,   295,   296,   630,   293,    82,    83,   296,
     2965     660,   111,   662,   663,   664,   307,   114,  1101,   110,  1303,
     2966     112,    79,     3,   111,   116,   887,   108,   115,   735,    10,
     2967      11,    12,    13,    14,    91,    92,   963,   771,   113,     0,
     2968    1326,   416,   109,   108,   293,   110,   908,   697,   115,   699,
     2969    1020,   343,   110,   340,   112,   111,   343,    38,   116,   115,
     2970     108,   436,   712,   585,   662,   772,   664,   118,   718,   444,
     2971      31,   131,   123,   124,   350,   362,   352,   599,    71,   366,
     2972     730,    42,   369,    44,   111,    66,   969,   379,   115,    82,
     2973      83,   602,   108,   743,   744,   109,  1380,   109,   723,    60,
     2974    1131,   115,    63,   115,  1135,    66,   628,   757,   108,    63,
     2975     110,   633,   737,   488,   629,   490,   108,   110,   118,   630,
     2976     827,  1495,  1463,   937,   635,   108,   108,  1501,   110,  1470,
     2977     645,   945,   730,   108,   893,   110,   118,   424,   425,   111,
     2978     109,   109,  1319,   118,  1133,   660,   115,   115,  1522,   113,
     2979     109,   679,   690,  1527,   131,    52,   115,   113,   512,    71,
     2980     514,    73,    74,   517,   440,   452,   520,   109,   455,   717,
     2981      82,    83,   109,   115,   461,   424,   425,   128,   115,   130,
     2982     113,  1102,  1523,  1467,   145,  1469,   473,   937,   838,  1033,
     2983    1160,   114,   115,   109,   732,   945,   108,   158,    95,   115,
     2984     850,   113,  1191,  1192,   109,   108,   831,   110,   834,   131,
     2985     115,   498,   723,   500,  1529,   502,  1529,   131,   109,  1529,
     2986     115,   116,   183,   184,   115,   512,   737,   514,   109,   109,
     2987     517,   109,   519,   520,   115,   115,    71,   115,    73,    74,
     2988    1524,   108,   757,   893,   531,   108,   207,    82,    83,   109,
     2989     900,   901,  1131,   109,   109,   115,  1135,  1136,   219,   115,
     2990     115,   901,    81,   512,   556,   557,   558,   108,   517,   110,
     2991    1240,   520,   108,   923,   110,   901,   901,   109,   110,     4,
     2992       5,     6,     7,     8,     9,   108,   814,   937,   249,    71,
     2993     111,    73,    74,    81,   191,   945,   824,  1056,   585,   119,
     2994      82,    83,   263,   901,   108,   109,   110,   599,   108,   596,
     2995     110,   839,   599,   963,   108,   690,   110,   214,    57,    58,
     2996     831,   696,   108,   109,   110,   574,   108,   224,   968,   968,
     2997     108,   113,   110,   983,  1041,     4,     5,     6,     7,     8,
     2998       9,   628,   992,    68,   127,    70,   633,   108,   109,   110,
     2999    1000,   128,   639,  1003,   130,  1005,    71,   732,    73,    74,
     3000      75,   110,   108,   901,   110,     3,   327,    82,    83,   114,
     3001     115,  1250,    10,    11,    12,    13,    14,  1123,    71,   927,
     3002      73,    74,    75,   115,   116,   983,   347,   115,   116,    82,
     3003      83,   901,   108,   108,   110,   110,   293,   772,  1023,    68,
     3004      38,    70,  1000,   118,  1054,  1003,   131,  1005,   695,   108,
     3005     109,   110,  1401,    93,  1064,   108,   108,  1067,  1068,  1069,
     3006     108,  1061,    10,    11,    12,    13,    14,  1504,    66,  1418,
     3007     717,   563,   564,   565,   566,  1061,  1061,    71,   111,    73,
     3008      74,   733,  1092,   404,    43,    44,    44,   969,    82,    83,
     3009      38,   111,   702,  1160,   704,   109,  1054,   109,   968,  1338,
     3010     747,   109,    60,  1342,   109,    63,  1064,   109,    66,  1067,
     3011    1068,  1069,     3,  1123,   561,   562,   110,  1554,    66,    10,
     3012      11,    12,    13,    14,   771,   109,  1220,   779,    71,   108,
     3013      73,    74,    75,   454,   111,   109,   111,   111,  1020,    82,
     3014      83,   115,  1491,  1492,    57,    58,    59,    38,   567,   568,
     3015    1038,  1039,  1023,  1262,  1263,  1264,   130,   131,   559,   560,
     3016     108,   110,   110,  1061,   115,   108,   901,   130,   113,   490,
     3017     118,   108,   111,   494,   826,    66,   109,   109,   116,   115,
     3018     111,   111,   829,   111,   441,   111,   833,   145,  1198,   116,
     3019      28,  1061,   116,  1101,   109,    84,    85,    86,   109,   111,
     3020     158,   109,  1202,  1203,  1203,  1444,   113,   116,  1096,  1097,
     3021    1220,   114,   114,   114,   108,  1225,   115,  1202,   475,   108,
     3022     115,   110,  1289,   112,   113,  1225,   184,   109,     4,     5,
     3023       6,     7,     8,     9,   131,   109,   109,   116,   109,  1225,
     3024    1225,   109,   109,   115,  1244,  1244,    71,   109,   109,   207,
     3025      75,   109,  1262,  1263,  1264,   512,    32,    82,    83,   109,
     3026     517,   219,   109,   520,   109,   109,    71,  1225,    73,    74,
     3027      75,    84,    85,    86,   109,   109,   923,    82,    83,   470,
     3028     927,   109,   109,   108,   114,   110,   109,   608,   109,   610,
     3029      28,  1397,    68,   118,    70,   108,  1539,   110,  1298,   112,
     3030     113,   698,   111,  1303,  1262,  1263,  1264,   109,   130,  1319,
     3031    1320,   109,   109,  1298,   114,   109,   115,  1303,  1303,   111,
     3032     967,   968,   969,   720,   111,   109,  1061,  1225,    71,   109,
     3033     115,  1202,    75,  1203,   109,   901,   115,  1337,  1337,    82,
     3034      83,   115,  1529,  1529,   116,   113,   111,    71,   109,  1529,
     3035    1238,    75,  1529,  1529,   111,  1225,  1530,   115,    82,    83,
     3036     115,  1319,  1320,   109,  1374,   108,  1529,  1377,  1020,   327,
     3037     109,  1529,   108,  1020,  1244,   118,   697,   108,   699,   108,
     3038    1554,   108,  1270,   108,   108,   111,  1396,  1397,   116,   131,
     3039    1278,  1279,  1280,   114,   118,   109,  1406,  1407,  1504,    71,
     3040     109,    73,    74,    75,   109,  1303,     0,     1,   128,  1061,
     3041      82,    83,  1422,   114,   811,   113,  1374,  1427,   111,  1377,
     3042    1530,   678,   743,   744,   131,  1160,   109,  1298,   115,   111,
     3043     687,   115,   111,  1303,   691,  1445,   109,    31,  1326,   109,
     3044    1440,  1440,   109,   111,  1554,   111,   404,  1457,  1406,  1407,
     3045      44,   111,   109,    54,  1101,  1102,   111,   111,   111,    46,
     3046      29,   109,   131,  1463,  1422,   114,   131,  1337,   131,  1427,
     3047    1470,    71,    66,    73,    74,    75,   114,  1463,  1463,   131,
     3048    1529,   131,    82,    83,  1470,  1470,  1529,  1445,   679,   116,
     3049    1225,  1529,   889,   109,  1504,  1505,   111,   114,  1064,  1457,
     3050     111,   111,   111,   104,  1514,  1240,   107,   111,   108,   103,
     3051    1520,    80,    81,   111,   111,  1525,   111,   838,   118,  1529,
     3052    1530,  1396,  1530,  1523,   109,  1177,   109,   111,   108,   850,
     3053     111,    63,   108,  1543,   108,  1545,    59,  1523,  1523,  1549,
     3054     113,   109,  1552,   109,  1554,   131,  1554,  1505,    80,   116,
     3055    1560,   145,   153,   111,  1564,   111,  1514,   109,   111,   153,
     3056     154,   109,  1520,   108,  1472,  1463,  1474,  1525,  1303,    95,
     3057    1440,    95,  1470,  1220,   108,   114,   131,   115,   111,   109,
     3058     977,   109,   109,   115,   109,  1543,    41,  1545,   131,   131,
     3059     184,  1549,    95,  1463,  1552,  1204,  1205,  1244,  1207,   116,
     3060    1470,  1509,  1560,  1511,  1213,   199,  1564,  1216,   202,   203,
     3061     109,  1008,   109,   207,    95,   216,   937,   131,   109,   109,
     3062     131,   116,   131,   814,   945,  1523,   158,   109,   114,   109,
     3063      50,   131,    52,   824,   228,    55,    56,    57,   232,    59,
     3064     234,   111,   963,   111,   108,   114,   131,   114,   839,   243,
     3065     109,   109,   131,  1523,    74,   249,   109,  1539,   109,  1225,
     3066     254,  1058,  1076,   569,  1225,   570,    86,    87,   925,   270,
     3067     264,   571,   241,  1492,    63,   573,   277,  1382,   272,   572,
     3068      25,    26,    27,  1564,    73,  1313,  1136,   219,  1342,  1470,
     3069    1337,    10,    11,    12,    13,    14,    10,    11,    12,    13,
     3070      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3071      24,    25,    26,    27,  1092,    29,    30,    31,   452,    38,
     3072     452,   945,   704,   464,    38,   257,   115,   893,  1463,   261,
     3073     947,   992,   589,   965,   657,  1470,  1133,   747,  1244,   490,
     3074     757,   577,    -1,    -1,   577,   346,   340,    66,   577,   343,
     3075      -1,    96,    66,    98,  1320,   349,    -1,    -1,    -1,    73,
     3076      74,    -1,   363,    77,    -1,    -1,   367,  1376,   362,   158,
     3077      -1,    -1,   366,    -1,    -1,   369,    -1,    10,    11,    12,
     3078      13,    14,    -1,    -1,    -1,    -1,    -1,    -1,  1523,   108,
     3079      -1,   110,    -1,  1440,  1191,  1192,   110,    -1,    -1,   118,
     3080      -1,    -1,    -1,    -1,   118,    38,    -1,    -1,  1374,   378,
     3081      -1,  1377,    -1,    -1,    -1,  1072,   348,    -1,    -1,    -1,
     3082      -1,    -1,   416,    -1,    -1,  1472,    -1,  1474,    -1,   430,
     3083     219,    -1,    -1,    66,   179,    -1,    -1,   431,    -1,    -1,
     3084      -1,    -1,   436,    -1,   189,   190,    -1,  1038,  1039,   194,
     3085     444,   196,   197,    -1,    -1,    -1,  1422,    -1,    -1,    -1,
     3086      -1,  1427,  1509,    -1,  1511,    -1,    -1,    -1,   257,    -1,
     3087      -1,    -1,   261,    -1,    -1,   108,   470,   110,    -1,   473,
     3088      -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,   277,    -1,
     3089     459,  1457,  1539,    -1,   488,   464,   490,   429,    -1,    10,
     3090      11,    12,    13,    14,   498,  1096,  1097,    -1,   502,    -1,
     3091      -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
     3092      13,    14,    -1,   343,   344,    -1,    -1,    38,   497,    71,
     3093     499,    73,    74,    75,    -1,   355,   356,   531,   532,    -1,
     3094      82,    83,    -1,    -1,    -1,    38,    -1,   479,    -1,    -1,
     3095      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   348,
     3096      71,    -1,    73,    74,    75,    -1,   108,    -1,   110,    -1,
     3097      -1,    82,    83,    66,   116,    -1,   118,  1543,    71,    -1,
     3098      73,    74,    75,  1549,   578,    -1,    -1,    -1,    -1,    82,
     3099      83,    -1,    -1,    -1,  1560,   596,    -1,   108,  1564,   110,
     3100      -1,    -1,   596,   597,  1401,   599,    -1,   118,    -1,    -1,
     3101      -1,    -1,    -1,    -1,    -1,   108,   610,   110,    -1,    -1,
     3102      -1,  1418,    -1,    -1,    -1,   118,    -1,    -1,   629,    -1,
     3103      -1,    -1,    -1,    -1,   628,    -1,    -1,    -1,    -1,   633,
     3104     429,    -1,    -1,    -1,   645,   639,    -1,  1238,   642,   643,
     3105     644,    -1,    -1,    -1,    -1,  1312,    -1,   446,    -1,   660,
     3106      71,    -1,    73,    74,    75,    -1,    -1,   661,    -1,    -1,
     3107     602,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,  1270,
     3108      -1,    -1,   651,    -1,    -1,   679,    -1,  1278,  1279,  1280,
     3109     479,    -1,    -1,    -1,  1491,  1492,   690,   108,   630,   110,
     3110      -1,   695,   696,   635,    -1,   699,    -1,   118,    -1,    -1,
     3111      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3112      19,    20,    21,    22,    23,    24,    25,    26,     0,    -1,
     3113      29,    30,    31,    -1,    -1,  1326,    -1,    -1,   732,    38,
     3114      39,   735,    -1,   712,    -1,    -1,    -1,    -1,    -1,   718,
     3115     744,    -1,    -1,   747,    -1,     0,   757,    -1,    -1,    31,
     3116      71,    -1,    73,    74,    75,    -1,    -1,    66,    -1,    -1,
     3117      -1,    82,    83,    -1,    73,    74,    -1,   771,   772,    -1,
     3118      -1,    -1,    -1,   777,    -1,    -1,    31,    -1,    -1,    -1,
     3119      -1,   723,    -1,    -1,    66,    -1,    -1,   108,    -1,   110,
     3120      -1,    -1,    -1,    -1,    -1,   737,    -1,   118,  1529,    -1,
     3121      -1,   110,    -1,   602,  1471,   114,  1473,    -1,    -1,   118,
     3122     814,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3123     824,    -1,    -1,   827,    -1,   829,   581,   582,   832,   833,
     3124     834,   630,    -1,    -1,    -1,   839,   635,    -1,    -1,    -1,
     3125      -1,  1508,    -1,  1510,    -1,   849,    71,    -1,    73,    74,
     3126      75,    -1,    -1,    -1,    -1,    -1,   611,    82,    83,   614,
     3127     615,    -1,   617,    -1,   619,   620,    -1,    -1,    -1,   624,
     3128     625,    -1,   154,    96,    97,    98,    99,   100,   101,   102,
     3129     103,   104,   105,   108,    -1,    -1,  1553,    -1,  1555,   831,
     3130      -1,    -1,    -1,   118,   724,    -1,   726,   901,    -1,   154,
     3131      -1,  1568,  1569,   733,   734,    -1,    -1,   130,   738,    -1,
     3132      -1,    -1,   923,    -1,   893,    -1,   187,    -1,    -1,   923,
     3133     750,   900,    -1,   194,   723,   755,    -1,    -1,    10,    11,
     3134      12,    13,    14,    -1,    -1,    -1,    -1,    -1,   737,    -1,
     3135      -1,    -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,    -1,
     3136      -1,   781,    -1,   708,   709,   959,    38,    -1,   757,   714,
     3137      -1,    -1,    -1,   967,   968,    -1,    -1,   249,    -1,    -1,
     3138      -1,    -1,   254,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3139      -1,   985,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
     3140      -1,    73,    74,    75,   249,   266,   826,    -1,    -1,   254,
     3141      82,    83,    -1,    -1,    -1,    -1,    25,    26,    27,    -1,
     3142      -1,    -1,    -1,   992,    -1,    -1,  1020,    -1,    -1,    -1,
     3143      -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,  1033,
     3144      -1,    -1,   831,    -1,  1038,  1039,   118,  1041,  1042,    -1,
     3145      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,
     3146      -1,   322,    -1,   883,   884,   885,   886,  1061,   888,   330,
     3147      -1,    -1,   333,    -1,    -1,    -1,    -1,   349,    -1,    -1,
     3148      -1,    -1,    38,    -1,   904,    -1,    -1,    96,    -1,    98,
     3149      -1,  1023,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
     3150      -1,    -1,  1096,  1097,   349,    -1,    -1,    -1,  1102,    -1,
     3151      66,    -1,    -1,    -1,   123,    71,    -1,    73,    74,    75,
     3152      -1,    -1,    -1,  1092,    -1,    -1,    82,    83,    -1,    -1,
     3153      -1,    -1,    -1,    -1,    -1,   396,    -1,   957,    -1,   400,
     3154      -1,    -1,    -1,    -1,   416,    -1,    -1,    -1,    -1,    -1,
     3155      -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,   431,
     3156      -1,    -1,   118,    -1,   436,    -1,  1160,    -1,    -1,    -1,
     3157     179,   416,   444,    -1,    -1,    -1,    -1,   997,   187,    -1,
     3158     189,   190,    -1,    -1,  1004,   194,   431,   196,   197,  1009,
     3159      -1,   436,    -1,    -1,  1014,    -1,  1016,    -1,   470,   444,
     3160    1020,  1021,  1022,    -1,    -1,  1025,    -1,    -1,    -1,  1203,
     3161      -1,    -1,    -1,    -1,  1034,    -1,   488,    -1,   490,  1220,
     3162      -1,    -1,    -1,    -1,   485,   470,  1220,    -1,    -1,  1198,
     3163      -1,  1225,  1052,  1053,  1023,    -1,    -1,    -1,    10,    11,
     3164      12,    13,    14,   488,  1238,   490,  1240,    -1,    -1,    -1,
     3165    1244,    -1,    -1,    -1,    -1,    -1,    -1,   266,    -1,  1079,
     3166     532,    -1,  1082,    -1,    -1,    -1,    38,    -1,    -1,    -1,
     3167    1202,    -1,    -1,    -1,    -1,    -1,  1270,    -1,    -1,    -1,
     3168      -1,    -1,    -1,    -1,  1278,  1279,  1280,   532,    -1,    -1,
     3169      -1,    -1,    -1,    -1,    66,  1289,  1290,    -1,    -1,    71,
     3170    1120,    73,    74,    75,    -1,    -1,  1126,  1127,    -1,  1303,
     3171      82,    83,    -1,    -1,    -1,    -1,   577,   578,  1138,    -1,
     3172      -1,    -1,    -1,  1143,    -1,   597,  1146,    -1,  1148,    -1,
     3173      -1,  1151,  1326,    -1,    -1,    -1,   108,    -1,    -1,    -1,
     3174      -1,    -1,    -1,  1337,  1164,    -1,   118,    -1,    -1,    -1,
     3175      -1,    -1,   597,  1098,    -1,    -1,    -1,  1177,    -1,  1179,
     3176    1180,  1181,  1182,    -1,    -1,    -1,  1298,    -1,    -1,    -1,
     3177     642,   643,   644,    -1,    -1,  1195,    -1,  1197,    -1,    -1,
     3178      -1,  1201,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   661,
     3179      -1,    -1,    -1,    -1,    -1,  1396,    -1,   642,   643,   644,
     3180      -1,    -1,    -1,    -1,    -1,   666,    -1,   679,    -1,   670,
     3181    1230,  1231,    -1,  1202,    -1,    -1,   661,    -1,   690,    -1,
     3182    1414,    -1,     0,    -1,   696,    -1,    -1,    -1,    -1,    -1,
     3183      -1,    -1,    -1,    -1,   679,    -1,    -1,    -1,    -1,    -1,
     3184      -1,    -1,   703,    -1,    -1,   690,  1440,    -1,    -1,     0,
     3185      -1,   696,    -1,    31,    -1,     0,     1,    -1,    -1,    -1,
     3186     732,  1281,  1282,   735,    -1,    -1,    -1,    -1,    -1,  1463,
     3187      -1,  1291,    -1,    -1,    -1,    -1,  1470,  1222,    -1,    -1,
     3188      31,    -1,    -1,    -1,    -1,    -1,    31,   732,    66,    -1,
     3189     735,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3190     772,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1298,
     3191      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    63,    -1,
     3192      -1,    66,    -1,  1343,    -1,    -1,    -1,   772,    -1,  1523,
     3193      -1,    -1,    -1,    -1,    -1,  1355,  1530,  1357,  1358,  1359,
     3194      -1,    -1,   814,    -1,    -1,    -1,    -1,    -1,    -1,  1369,
     3195      -1,    -1,   824,    -1,    -1,   827,    -1,   818,  1378,    -1,
     3196     832,    -1,   834,    -1,    -1,    -1,    -1,   839,    -1,   814,
     3197      -1,    -1,   581,   582,  1394,    -1,   154,    -1,    -1,   824,
     3198      -1,    -1,   827,    -1,    -1,    -1,    -1,   832,    -1,   834,
     3199      -1,    -1,    -1,    -1,   839,    -1,    -1,    -1,    -1,    -1,
     3200      -1,    -1,   611,   154,    -1,   614,   615,    -1,   617,   154,
     3201     619,   620,    -1,    -1,    -1,   624,   625,    -1,    -1,    -1,
     3202      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   901,
     3203    1450,  1451,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3204      -1,    -1,    -1,  1463,    -1,    -1,    -1,    -1,    -1,    -1,
     3205    1470,    -1,    -1,    -1,    -1,    -1,   901,    -1,    -1,    -1,
    31613206      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3162       -1,    -1,    -1,    -1,    -1,  1268,    -1,    -1,   596,    -1,
    3163       -1,   108,    -1,  1276,  1277,  1278,    -1,    -1,    -1,   899,
    3164       -1,   118,    -1,    -1,  1287,  1288,    -1,    -1,    -1,    -1,
    3165       -1,    -1,   641,   642,   643,    -1,  1268,    -1,  1301,    -1,
    3166       -1,    -1,    -1,    -1,  1276,  1277,  1278,    -1,    -1,    -1,
    3167      659,    -1,    -1,   641,   642,   643,   733,    -1,    -1,    -1,
    3168       -1,  1324,    -1,    -1,   829,    -1,    -1,    -1,   677,    -1,
    3169       -1,   659,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   688,
    3170       -1,    -1,    -1,    -1,    -1,   694,    -1,    -1,    -1,   677,
    3171       -1,    -1,  1324,    -1,    -1,  1021,    -1,    -1,    -1,    -1,
    3172      688,    -1,    -1,   983,    -1,    -1,   694,    -1,    -1,    -1,
    3173       -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
    3174       -1,   730,    -1,    -1,   733,    -1,    -1,    -1,    -1,    -1,
    3175       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,
    3176       -1,    -1,   730,    -1,    -1,   733,    -1,    -1,   825,  1412,
    3177       -1,    -1,    -1,    -1,    -1,   832,  1036,  1037,    -1,  1039,
    3178     1040,   770,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
    3179       -1,    -1,    71,    -1,    73,    74,    75,    -1,    -1,  1059,
    3180       -1,    -1,   770,    82,    83,    -1,    -1,    -1,    -1,    -1,
    3181       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1461,    -1,
    3182       -1,    -1,    -1,   812,    -1,  1468,    -1,    -1,    -1,   108,
    3183       -1,   110,    -1,   822,  1094,  1095,   825,    -1,    -1,   118,
    3184       -1,   830,   899,   832,   812,    -1,    -1,    -1,   837,    -1,
    3185       -1,    -1,    -1,    -1,   822,    -1,    -1,   825,    -1,    -1,
    3186       -1,    -1,   830,    -1,   832,    -1,    -1,    -1,    -1,   837,
    3187       -1,    10,    11,    12,    13,    14,  1021,    -1,  1521,    -1,
     3207     931,   249,    -1,    -1,   219,    -1,   254,    -1,    -1,    -1,
     3208      -1,    -1,    -1,  1503,    -1,    -1,    -1,  1507,    -1,    -1,
     3209      -1,    -1,    -1,    -1,   703,    -1,    -1,    -1,   249,   708,
     3210     709,    -1,    -1,   254,   249,   714,    -1,    -1,    -1,    -1,
     3211      -1,    -1,    -1,   985,    -1,    -1,  1536,    -1,  1538,    -1,
     3212      -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3213      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3214     985,    29,    30,    31,    -1,    -1,  1566,  1567,    -1,  1010,
     3215      38,    39,    -1,    -1,  1574,  1575,    -1,    -1,    -1,    -1,
     3216      -1,    -1,    -1,    -1,    -1,  1026,  1038,  1039,    -1,  1041,
     3217    1042,   349,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
     3218      -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,  1061,
     3219      -1,    -1,    -1,  1038,  1039,    -1,  1041,  1042,   349,    10,
     3220      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3221      21,    22,    23,    24,    25,    26,  1061,    -1,    29,    30,
     3222      31,    -1,   110,    -1,  1096,  1097,   114,    38,    -1,    -1,
     3223     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   416,    -1,
     3224      -1,    -1,  1103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3225      -1,  1096,  1097,   431,    -1,    66,    -1,    -1,   436,    -1,
     3226      71,    -1,    73,    74,    75,   416,   444,    -1,    -1,    -1,
     3227      -1,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3228     431,    -1,    -1,    -1,    -1,   436,   431,    -1,  1160,    -1,
     3229      -1,    -1,   470,   444,    -1,    -1,    -1,   108,    -1,   110,
     3230      -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
     3231     488,    -1,   490,    -1,    -1,  1160,    -1,    -1,    -1,   470,
    31883232      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3189       -1,    -1,    -1,    -1,  1200,    -1,    -1,    -1,  1158,    38,
    3190       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   966,
    3191      899,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3192       -1,    -1,    -1,    -1,    -1,    -1,   983,    66,    -1,    -1,
    3193       -1,   899,    71,    -1,    73,    74,    75,    -1,    -1,    -1,
    3194       -1,  1201,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,
    3195       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
    3196       12,    13,    14,  1223,    -1,    -1,    25,    26,    27,   108,
    3197       -1,   110,    -1,    -1,    -1,    -1,  1236,    -1,  1238,   118,
    3198       -1,    -1,  1039,  1040,    -1,    -1,    38,    44,    -1,    -1,
    3199     1296,    -1,    -1,    -1,   983,    -1,    -1,    -1,    -1,    -1,
    3200       -1,    -1,  1059,    -1,    -1,    -1,    63,    -1,  1268,    -1,
    3201       -1,    -1,    -1,    -1,    66,   983,  1276,  1277,  1278,    71,
    3202       -1,    73,    74,    75,    -1,    -1,    -1,  1287,  1288,    -1,
    3203       82,    83,    -1,    -1,    -1,    -1,    -1,    96,    -1,    98,
    3204       -1,  1301,    -1,    -1,    -1,    -1,    -1,  1036,  1037,    -1,
    3205     1039,  1040,   109,    -1,    -1,  1200,   108,   114,    -1,    10,
    3206       11,    12,    13,    14,  1324,    -1,   118,    -1,  1036,  1037,
    3207     1059,  1039,  1040,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3208       -1,    -1,    -1,    -1,    -1,    -1,   143,    38,    -1,    -1,
    3209       -1,  1059,    -1,    -1,    -1,    -1,   153,    -1,    -1,    -1,
    3210      157,    -1,    -1,    -1,    -1,  1094,  1095,    -1,    -1,    -1,
    3211       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   178,
    3212       71,    -1,    -1,    -1,    75,    -1,  1094,  1095,    -1,   188,
    3213      189,    82,    83,    -1,   193,    -1,   195,   196,    -1,    -1,
    3214       -1,    -1,    -1,  1200,  1201,    -1,    -1,    -1,    -1,   206,
    3215       -1,  1296,  1412,    -1,    -1,    -1,    -1,   108,    -1,    -1,
    3216       -1,   218,    -1,    -1,    -1,    -1,  1223,   118,    -1,  1158,
    3217       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   236,
    3218      237,    -1,    -1,    -1,    -1,  1242,    -1,    -1,    -1,    -1,
    3219     1158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3220       -1,  1461,    -1,   260,    -1,    -1,    -1,    -1,  1468,    -1,
    3221       -1,   268,  1201,    10,    11,    12,    13,    14,    15,    16,
    3222       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3223     1287,  1288,    -1,  1201,  1223,   292,    -1,    -1,   295,  1296,
    3224       -1,    38,    -1,    -1,  1301,    -1,    -1,  1236,    -1,  1238,
    3225       -1,    -1,    -1,    -1,    -1,  1223,    -1,    -1,    -1,    -1,
    3226       -1,  1521,    -1,    -1,    -1,    25,    26,    27,  1236,    66,
    3227     1238,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1335,  1268,
    3228       -1,    -1,    -1,    -1,    -1,   342,    -1,  1276,  1277,  1278,
    3229      347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1287,  1288,
    3230     1268,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1276,  1277,
    3231     1278,    -1,  1301,    -1,    -1,    -1,    -1,    -1,    -1,  1287,
    3232     1288,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3233       -1,    -1,    -1,  1301,    -1,  1324,    96,    63,    98,    -1,
    3234       -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    -1,    75,
    3235       -1,    77,    -1,    -1,    -1,  1412,  1324,    -1,    84,    -1,
    3236       -1,    -1,   122,    -1,    -1,    -1,   423,   424,    -1,    -1,
    3237       -1,    -1,    -1,   430,    -1,    -1,    -1,    -1,    -1,    -1,
    3238       -1,  1438,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
    3239      116,   117,   118,    -1,   451,    -1,    -1,   454,    -1,    -1,
    3240       -1,    -1,    -1,   460,  1461,    -1,    -1,    -1,    -1,    -1,
    3241       -1,  1468,    -1,    -1,    -1,    -1,    -1,    -1,   178,    -1,
    3242       -1,    -1,    -1,  1412,    -1,    -1,   186,    -1,   188,   189,
    3243      487,   157,    -1,   193,    -1,   195,   196,    -1,    -1,    -1,
    3244       -1,    -1,   499,    -1,  1412,    -1,    -1,    -1,    -1,    -1,
    3245       -1,    -1,    -1,    -1,   511,    -1,   513,    43,    -1,   516,
    3246       -1,   518,   519,    -1,  1521,    -1,    -1,    -1,    -1,    -1,
    3247       -1,    -1,  1461,    -1,   531,    -1,    -1,    -1,    -1,  1468,
     3233      -1,  1203,    -1,    -1,    -1,    -1,    -1,   488,    -1,   490,
     3234      -1,    -1,    -1,    -1,    -1,   490,    -1,    -1,    -1,    -1,
     3235      -1,    -1,    -1,  1225,   532,    -1,    -1,    -1,  1203,    -1,
     3236      -1,    -1,    -1,    -1,    -1,    -1,  1238,    -1,  1240,    -1,
    32483237      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3249       -1,    -1,   218,  1461,   220,   221,   222,    -1,    -1,    -1,
    3250     1468,    -1,    -1,    89,    -1,   265,    -1,    -1,    -1,    -1,
    3251       -1,    -1,    -1,    99,    -1,    -1,    -1,    -1,    -1,    -1,
    3252       -1,   580,   581,    -1,    -1,    -1,    -1,   584,    -1,    -1,
    3253      256,    -1,  1521,    -1,   260,    -1,    -1,    -1,    -1,   596,
    3254       -1,   598,    -1,    -1,   601,    -1,    -1,    -1,    -1,    -1,
    3255      276,   610,    -1,  1521,   613,   614,    -1,   616,    -1,   618,
    3256      619,    -1,    -1,    -1,   623,   624,    -1,    -1,   154,    -1,
    3257      627,    -1,    -1,    -1,    -1,   632,    -1,    -1,    -1,    -1,
    3258       -1,    -1,   168,    -1,   641,   642,   643,    -1,    -1,    -1,
     3238    1225,   532,    -1,    -1,    -1,    -1,    -1,   532,    -1,    -1,
     3239      -1,    -1,    -1,  1238,    -1,  1240,    -1,    -1,  1270,    -1,
     3240      -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,  1280,    -1,
     3241      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1289,  1290,   597,
     3242      -1,    -1,    -1,    -1,    -1,  1270,    -1,    -1,    -1,    -1,
     3243      -1,  1303,    -1,  1278,  1279,  1280,    -1,    -1,    -1,    -1,
     3244      -1,    -1,    -1,    -1,  1289,  1290,   597,    -1,    -1,    -1,
     3245      -1,    -1,   597,    -1,  1326,    -1,    -1,    -1,  1303,    -1,
     3246      -1,    -1,    -1,    -1,   642,   643,   644,    -1,    -1,    -1,
    32593247      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3260      326,    -1,   659,    -1,    -1,   191,    -1,    -1,    -1,    -1,
    3261       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   205,
    3262       -1,   347,    -1,    -1,    -1,    -1,   352,   353,   214,    -1,
    3263       -1,    -1,    -1,    -1,   360,    -1,    -1,   694,   224,    -1,
    3264       -1,    -1,    -1,    -1,    -1,    -1,    -1,   706,   707,    -1,
    3265       -1,    -1,    -1,   712,    -1,    -1,    -1,    -1,   715,    -1,
    3266       -1,    -1,    -1,   249,    -1,    -1,    -1,    -1,   254,    -1,
    3267       -1,    -1,    -1,    -1,    -1,    -1,   733,   403,   735,    -1,
    3268       -1,   267,    -1,    -1,    -1,    -1,    -1,   273,    -1,   275,
    3269       -1,    -1,    -1,    -1,    -1,   421,    -1,    -1,    -1,    -1,
    3270      426,    -1,   428,    -1,    -1,    -1,    -1,   293,    -1,    -1,
    3271       -1,    -1,    -1,   770,    -1,    -1,    -1,    -1,    -1,   445,
    3272       -1,    -1,   448,   449,    -1,    -1,    -1,    -1,    -1,    -1,
    3273       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   464,    -1,
     3248      -1,  1326,    -1,   661,    -1,    -1,    -1,    -1,    -1,  1098,
     3249      -1,   642,   643,   644,    -1,    -1,    -1,   642,   643,   644,
     3250      -1,   679,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3251     661,    -1,   690,    -1,    -1,    -1,   661,    -1,   696,    -1,
     3252      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   679,     7,
     3253      -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,   690,
     3254      -1,    -1,  1414,    -1,    -1,   696,    -1,    -1,    -1,    -1,
     3255      -1,    -1,    -1,    -1,   732,    -1,    -1,   735,    36,    37,
     3256      38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1414,
    32743257      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3275      336,    -1,   478,    -1,    -1,   341,    -1,    -1,    -1,   485,
    3276       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   825,    -1,
    3277       -1,    -1,   829,    -1,    -1,   832,    -1,    -1,    -1,    -1,
    3278       -1,    -1,    -1,   369,    -1,    -1,    -1,   373,   374,    -1,
    3279      376,    -1,    -1,    -1,    -1,    -1,    -1,   383,   384,    -1,
    3280      386,   387,    -1,   389,    -1,   391,    -1,    -1,    -1,    -1,
     3258      -1,   732,    -1,    -1,   735,    -1,    -1,    65,    66,    -1,
     3259     735,  1463,    -1,    71,   772,    -1,    -1,    75,  1470,    -1,
     3260      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3261      -1,    -1,    -1,  1222,    -1,    93,    -1,    -1,  1463,    -1,
     3262      -1,   772,    -1,    -1,    -1,  1470,    -1,    -1,    -1,    -1,
     3263     108,    -1,   110,    -1,    -1,    -1,   814,    -1,    -1,   117,
     3264     118,   119,   120,   121,   122,    -1,   824,    -1,    -1,   827,
     3265      -1,  1523,    -1,    -1,   832,    -1,   834,    -1,    -1,    -1,
     3266      -1,   839,    -1,   814,    -1,    -1,    -1,    -1,    -1,    -1,
     3267      -1,    -1,    -1,   824,    -1,    -1,   827,    -1,  1523,    -1,
     3268      -1,   832,   827,   834,    -1,    -1,    -1,    -1,   839,   834,
     3269      -1,    -1,    -1,    -1,    -1,     0,    -1,    -1,     3,     4,
     3270       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3271      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3272      25,    26,    -1,   901,    29,    30,    31,    32,    -1,    -1,
     3273      35,    -1,    -1,    38,    39,    -1,    -1,    -1,    -1,    10,
     3274      11,    12,    13,    14,    -1,    10,    11,    12,    13,    14,
     3275     901,    -1,    -1,    -1,    -1,    -1,   901,    -1,    63,    -1,
     3276      -1,    66,    44,    68,    -1,    70,    71,    38,    73,    74,
     3277      75,    -1,    -1,    38,    -1,    -1,    -1,    82,    83,    -1,
     3278      -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3279      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
     3280      71,    66,    -1,   108,    75,   110,    71,   985,    -1,    -1,
     3281      75,    82,    83,   118,    -1,    -1,    -1,    82,    83,    -1,
     3282      -1,    -1,    -1,   968,    -1,    -1,    -1,   109,    -1,    -1,
     3283      -1,    -1,    -1,   115,   985,    -1,    -1,   108,    -1,    -1,
     3284     985,    -1,    -1,   108,    -1,    -1,    -1,   118,    -1,    -1,
     3285      -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3286    1038,  1039,   144,  1041,  1042,    -1,    -1,    -1,    -1,    -1,
     3287      -1,    -1,   154,    -1,    -1,    -1,   158,    -1,    -1,    -1,
     3288      -1,    -1,    -1,  1061,    -1,    -1,    -1,  1038,  1039,    -1,
     3289    1041,  1042,    -1,    -1,    -1,    -1,  1041,  1042,    -1,    -1,
    32813290      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3282      580,   581,   408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3283      416,    -1,    -1,    -1,    -1,    -1,   152,   153,    -1,    -1,
     3291    1061,    -1,    -1,    -1,    -1,    -1,  1061,    -1,  1096,  1097,
     3292      -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,    -1,
     3293      -1,    -1,    -1,    -1,    -1,    -1,    -1,   219,    -1,    -1,
     3294      -1,    -1,    -1,    -1,    -1,  1096,  1097,    -1,    -1,    -1,
     3295      -1,    36,    37,    -1,    39,   237,   238,    10,    11,    12,
     3296      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3297      23,    24,    25,    26,    -1,    -1,    29,    30,    31,   261,
     3298      65,    -1,  1160,    -1,    -1,    38,    71,   269,    -1,    -1,
     3299      75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3300      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,  1160,
     3301      -1,   293,    -1,    66,   296,    -1,    -1,    -1,    -1,    -1,
     3302      73,    74,    -1,   108,    -1,  1203,    -1,    -1,    -1,    -1,
     3303      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3304      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1225,    -1,    -1,
     3305      -1,    -1,  1203,    -1,    -1,    -1,    -1,  1202,  1203,    -1,
     3306    1238,   343,  1240,    -1,    -1,   118,   348,    -1,    -1,    -1,
     3307      -1,    -1,    -1,    -1,  1225,    -1,    -1,    -1,    -1,    -1,
     3308    1225,    -1,    -1,    -1,    -1,    -1,    -1,  1238,    -1,  1240,
     3309      -1,    -1,  1270,    -1,    -1,    -1,    -1,    -1,    -1,  1244,
     3310    1278,  1279,  1280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3311      -1,  1289,  1290,    -1,    -1,    -1,    -1,    -1,    -1,  1270,
     3312      -1,    -1,    -1,    -1,    -1,  1303,    -1,  1278,  1279,  1280,
     3313      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1289,  1290,
     3314      -1,    -1,   424,   425,  1289,  1290,    -1,    -1,  1326,   431,
     3315      -1,    -1,  1303,  1298,    -1,    -1,    -1,    -1,  1303,    -1,
    32843316      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3285      610,    -1,    -1,   613,   614,   441,   616,    -1,   618,   619,
    3286       -1,    -1,    -1,   623,   624,    -1,   452,    -1,   925,    -1,
    3287      186,    -1,    -1,    -1,    -1,   601,    -1,   193,    -1,    -1,
    3288       -1,    -1,    -1,    -1,    -1,    36,    37,    -1,    39,   475,
    3289       -1,    -1,    -1,    -1,    -1,   481,    -1,    -1,    -1,    -1,
    3290      486,    -1,    -1,   629,    -1,    -1,    -1,    -1,   634,    -1,
    3291      967,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
    3292       71,    -1,    -1,    -1,    75,    -1,   983,    78,    79,    80,
    3293       81,    82,    83,    -1,    85,    86,    -1,   523,    -1,    -1,
    3294       -1,   701,    93,    -1,    -1,    -1,   706,   707,    -1,   265,
    3295       -1,    -1,   712,   539,    -1,    -1,    -1,   108,    -1,   110,
    3296       -1,  1018,   113,    -1,    -1,    -1,   117,   118,   119,   120,
    3297      121,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3298       -1,    -1,  1039,  1040,    -1,    -1,    -1,    -1,    -1,    -1,
    3299      576,    -1,    -1,    -1,    -1,   721,    -1,    -1,    -1,   585,
    3300       -1,    -1,    -1,    -1,    -1,   321,   592,    -1,    -1,   735,
    3301       -1,   597,    -1,   329,   330,    -1,   332,   333,    -1,    -1,
    3302       -1,    -1,   608,    -1,    -1,    -1,   342,    -1,    -1,   755,
    3303      346,    -1,    -1,    -1,    -1,    -1,    -1,  1096,    -1,    -1,
    3304       -1,    -1,  1099,    -1,    -1,    -1,    -1,    -1,    -1,   365,
    3305       -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3306       -1,    -1,    -1,   649,    -1,    -1,    -1,    -1,    -1,    -1,
    3307       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   395,
    3308       -1,    -1,    -1,   399,    -1,    -1,    -1,    -1,    -1,    -1,
    3309      816,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   684,    -1,
    3310       -1,  1158,    -1,   829,    -1,    -1,    -1,    -1,    -1,    -1,
    3311       -1,    -1,    -1,    -1,   430,    -1,    -1,    -1,    -1,    -1,
    3312       -1,    -1,   848,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3317     452,    -1,    -1,   455,    -1,  1326,    -1,    -1,    -1,   461,
     3318      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3319      -1,    -1,  1337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3320      -1,    -1,    -1,    -1,    -1,    -1,   488,    -1,    -1,    -1,
     3321      63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   500,    -1,
     3322      73,    -1,    75,    -1,    77,    -1,    -1,    -1,    -1,    -1,
     3323     512,    84,   514,    -1,    -1,   517,  1414,   519,   520,    -1,
     3324      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3325     532,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3326      -1,    -1,   115,  1414,   117,   118,   119,    -1,    -1,  1414,
     3327      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3328      -1,    -1,    -1,    -1,    -1,  1463,    -1,    43,    -1,    -1,
     3329      -1,    -1,  1470,    -1,    -1,  1440,    -1,    -1,    -1,    -1,
     3330      -1,    -1,    -1,   585,    -1,   158,    -1,    -1,    -1,    -1,
     3331      -1,    -1,  1463,    -1,    -1,   597,    -1,   599,  1463,  1470,
     3332     602,    -1,    -1,    -1,    -1,  1470,    -1,    -1,    -1,    -1,
     3333      -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,
     3334      -1,    -1,    -1,    99,    -1,  1523,   628,    -1,    -1,    -1,
     3335      -1,   633,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3336     642,   643,   644,    -1,    -1,    -1,   219,    -1,   221,   222,
     3337     223,    -1,  1523,    -1,    -1,    -1,    -1,    -1,  1523,   661,
     3338      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3339      19,    20,    21,    22,    23,    24,    25,    26,    27,   155,
     3340      29,    30,    31,    -1,   257,    -1,    -1,    -1,   261,    38,
     3341      -1,    -1,    -1,   169,   696,    -1,    -1,    -1,    -1,    -1,
     3342      -1,    -1,    -1,    -1,   277,    -1,    -1,    -1,    -1,    -1,
     3343      -1,    -1,    -1,    -1,    -1,   717,   192,    66,    -1,    -1,
     3344      -1,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,
     3345     206,    -1,    -1,   735,    -1,   737,    -1,    -1,    -1,   215,
     3346      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   225,
     3347      -1,    -1,    -1,    -1,   327,    -1,    -1,    -1,    -1,   108,
     3348      -1,   110,    36,    37,    -1,    39,    -1,    -1,    -1,   118,
     3349     772,    -1,    -1,    -1,   250,   348,    -1,    -1,    -1,   255,
     3350     353,   354,    -1,    -1,    -1,    -1,    -1,    -1,   361,    -1,
     3351      -1,    65,   268,    -1,    -1,    -1,    -1,    71,   274,    -1,
     3352     276,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
     3353      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,   294,    93,
     3354      -1,    -1,    -1,    -1,    -1,   827,    -1,    -1,    -1,   831,
     3355      -1,   404,   834,    -1,   108,    -1,   110,    -1,    -1,   113,
     3356      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,   422,
     3357      -1,    -1,    -1,    -1,   427,    -1,   429,    -1,    -1,    -1,
     3358      -1,   337,    -1,    -1,    -1,    -1,   342,    -1,    -1,    -1,
     3359      -1,    -1,    -1,   446,    -1,    -1,   449,   450,    -1,    -1,
     3360      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3361      -1,    -1,   465,    -1,   370,    -1,    -1,    -1,   374,   375,
     3362      -1,   377,    -1,    -1,    -1,    -1,   479,    -1,   384,   385,
     3363      -1,   387,   388,   486,   390,    -1,   392,    -1,    -1,    -1,
     3364      -1,    -1,    -1,     7,    -1,   927,    10,    11,    12,    13,
     3365      14,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
     3366      -1,   417,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3367      -1,    -1,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
     3368      -1,    -1,    -1,    -1,    -1,    -1,   442,   969,    -1,    -1,
    33133369      -1,    -1,    -1,    -1,    -1,    -1,    -1,   453,    -1,    -1,
    3314       -1,    36,    37,  1200,    39,    -1,    -1,    -1,    -1,    -1,
    3315       -1,    -1,    -1,   739,    -1,    -1,    -1,    -1,    -1,    -1,
    3316       -1,  1220,    -1,   749,   750,    -1,    -1,    -1,   484,    -1,
    3317       65,   487,    -1,    -1,    -1,    -1,    71,   763,    -1,    -1,
    3318       75,  1238,    -1,    78,    79,    80,    81,    82,    83,    -1,
    3319       85,    86,    -1,    -1,   780,    -1,   782,    -1,    93,    -1,
    3320      786,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   935,
    3321       -1,   527,    -1,   108,   530,   531,    -1,    -1,    -1,    -1,
     3370      -1,    65,    66,   985,    -1,    -1,    -1,    71,    -1,    -1,
     3371      -1,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
     3372     476,    85,    86,    -1,    -1,    -1,   482,    -1,    -1,    93,
     3373      -1,   487,    -1,    -1,    -1,    -1,    -1,    -1,  1020,    -1,
     3374      -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,   602,
     3375      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,  1041,
     3376    1042,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   524,    -1,
     3377      -1,    -1,    -1,    -1,    -1,    -1,    -1,   630,   280,    -1,
     3378     282,   283,   635,    -1,   540,    -1,    -1,    -1,   290,   291,
     3379      -1,    -1,    -1,   295,   296,    -1,    -1,    -1,    -1,    -1,
     3380      -1,    -1,    -1,    -1,    -1,   307,    -1,    -1,    -1,    -1,
     3381      -1,    -1,    -1,    -1,    -1,    36,    37,    -1,    39,  1101,
     3382      -1,   577,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3383     586,    -1,    -1,    -1,    -1,    -1,    -1,   593,    -1,    -1,
     3384      -1,   343,   598,    -1,    65,    -1,    -1,    -1,    -1,    -1,
     3385      71,    -1,    -1,   609,    75,    -1,    -1,    78,    79,    80,
     3386      81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
     3387     723,    -1,    93,    -1,    -1,    -1,    -1,   379,  1160,    -1,
     3388      -1,    -1,    -1,    -1,   737,    -1,    -1,   108,    -1,   110,
     3389      -1,    -1,    -1,    -1,   650,   116,   117,   118,   119,   120,
     3390     121,   122,    -1,    -1,   757,    -1,    -1,    -1,    -1,    -1,
     3391      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3392    1202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3393     686,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3394      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3395      25,    26,    27,    -1,    29,    30,    31,    -1,  1240,    -1,
     3396      -1,    -1,    -1,    38,    -1,   818,    -1,    -1,    -1,    -1,
     3397      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   831,    -1,
     3398      -1,    -1,    -1,    -1,    -1,   741,    -1,    -1,    -1,    -1,
     3399      -1,    66,    -1,    -1,    -1,   751,   752,   850,    73,    74,
     3400      -1,    -1,    77,    -1,    -1,    -1,    -1,  1289,  1290,   765,
     3401      -1,    -1,    -1,    -1,    -1,    -1,  1298,    -1,    -1,    -1,
     3402      -1,    -1,    -1,    -1,    -1,    -1,   782,    -1,   784,    -1,
     3403      -1,    -1,   788,   108,    -1,   110,    -1,    -1,    -1,    -1,
     3404      -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3405      -1,    -1,    -1,    -1,   556,   557,   558,   559,   560,   561,
     3406     562,   563,   564,   565,   566,   567,   568,   569,   570,   571,
     3407     572,   573,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3408      36,    37,    -1,    39,   937,    -1,    -1,    -1,    -1,    -1,
     3409      -1,    -1,    -1,    -1,    -1,    -1,    -1,   599,   854,    -1,
     3410      -1,    -1,    -1,    -1,    -1,   861,    -1,    -1,    -1,    65,
     3411     963,    -1,    -1,    -1,    -1,    71,    -1,    -1,   874,    75,
     3412     876,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3413      86,    -1,  1414,    -1,   890,    -1,    -1,    93,   991,    -1,
     3414      -1,   897,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3415      -1,    -1,   108,   909,   110,    -1,   912,    -1,    -1,   115,
     3416      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3417    1023,    -1,    -1,    -1,   930,    -1,    -1,    -1,    -1,    -1,
     3418      -1,  1034,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3419    1472,    -1,  1474,    -1,    -1,    -1,   698,    -1,    10,    11,
     3420      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3421      22,    23,    24,    25,    26,    27,    -1,    -1,   720,    -1,
     3422      -1,    -1,    -1,    -1,    -1,    -1,    38,  1509,    -1,  1511,
     3423      -1,   733,    10,    11,    12,    13,    14,    15,    16,    17,
     3424      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3425      -1,    29,    30,    31,    66,    -1,    -1,  1539,    -1,    -1,
     3426      38,    -1,  1115,  1019,    -1,    77,    -1,    -1,    -1,   153,
     3427     154,    -1,    -1,    -1,    -1,    -1,    -1,   779,    -1,    -1,
     3428      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
     3429      -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,    77,
     3430      -1,    -1,    -1,   187,    82,    83,    -1,    -1,    -1,   811,
     3431     194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1075,
     3432      -1,    -1,    -1,    -1,   826,    -1,  1082,    -1,    -1,    -1,
     3433     108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3434     118,    36,    37,    -1,    39,    -1,    -1,    -1,    -1,  1202,
     3435      -1,    -1,    -1,    -1,    -1,  1111,    -1,    -1,    -1,    -1,
     3436    1116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1124,    -1,
     3437      65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,
     3438      75,    -1,   266,    78,    79,    80,    81,    82,    83,    -1,
     3439      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,  1155,
     3440      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3441      -1,  1167,    -1,   108,  1170,   110,  1172,   112,   113,    -1,
    33223442      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3323     1287,  1288,    -1,    -1,    -1,   961,    -1,    -1,    -1,  1296,
    3324       -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,
    3325       -1,    -1,    -1,    -1,    -1,    -1,    -1,   153,    -1,    -1,
    3326      576,   577,    -1,   989,    -1,    -1,   852,    -1,    -1,   165,
    3327      166,    -1,    -1,   859,    -1,    -1,    -1,    -1,    -1,   595,
    3328      596,    -1,   598,    -1,    -1,    -1,   872,    -1,   874,    -1,
    3329       -1,   607,    -1,   609,   610,  1021,    -1,    -1,    -1,    -1,
    3330      616,    -1,   888,    -1,    -1,    -1,  1032,    -1,    -1,   895,
    3331      626,   627,    -1,    -1,    -1,    -1,   632,    -1,    -1,    -1,
    3332       -1,   907,    -1,    -1,   910,   641,   642,   643,    -1,    -1,
    3333       -1,    -1,    -1,    -1,    -1,    -1,  1096,    -1,    -1,    -1,
    3334      236,    -1,   928,   659,    -1,    -1,    -1,    -1,   664,   665,
    3335       -1,    -1,   668,   669,    -1,  1412,    -1,    36,    37,   675,
    3336       39,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,    -1,
    3337       -1,    -1,    -1,    -1,    -1,    -1,    -1,   693,   694,   695,
    3338       -1,   697,    -1,    -1,    -1,   701,    65,  1113,    -1,    -1,
    3339       -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    78,
    3340       79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
    3341       -1,    -1,    -1,  1470,    93,  1472,    -1,   733,   734,    -1,
    3342       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,
    3343       -1,  1017,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,
    3344      119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,
    3345     1507,    -1,  1509,   769,   770,    -1,    -1,    -1,   774,   775,
    3346     1220,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3347       -1,    -1,    -1,    -1,  1200,    -1,    -1,    -1,    -1,    -1,
    3348     1537,   377,    -1,    -1,    -1,    -1,    -1,  1073,    -1,    -1,
    3349       -1,    -1,    -1,    -1,  1080,    -1,    -1,    -1,    -1,    -1,
    3350      816,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   825,
    3351       -1,    -1,    -1,    -1,    -1,   831,   832,    -1,    -1,    -1,
    3352      836,    -1,   838,  1109,    -1,    -1,    -1,    -1,  1114,    -1,
    3353       -1,    -1,   848,    -1,    -1,    -1,  1122,     3,     4,     5,
    3354        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3355       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3356       26,    27,    -1,    29,    30,    31,    32,  1153,    -1,    35,
    3357     1296,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,  1165,
    3358       -1,    -1,  1168,   479,  1170,    -1,    -1,    -1,    -1,    -1,
    3359       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1184,  1185,
    3360       66,    -1,    68,    -1,    70,   921,    -1,    73,    74,    -1,
    3361       -1,    77,    -1,   929,    -1,    -1,    -1,    -1,    -1,   935,
    3362     1206,    -1,   518,    -1,    -1,    -1,    -1,   943,    -1,    -1,
    3363       -1,    -1,    -1,    -1,    -1,   531,    -1,    -1,    -1,    -1,
    3364      956,   957,   538,    -1,   110,   541,    -1,  1233,    -1,    -1,
    3365       -1,    -1,   118,    -1,    -1,    -1,   552,   553,    -1,    -1,
    3366       -1,    -1,    -1,    -1,    -1,    -1,    -1,   983,    -1,    -1,
    3367       -1,    -1,    -1,   989,    -1,    -1,    -1,    -1,   574,    -1,
    3368       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   584,    -1,
    3369       -1,    -1,  1008,  1009,    -1,   591,    -1,    -1,    -1,    -1,
    3370      596,    -1,  1018,    -1,    -1,    -1,    -1,    -1,  1024,  1025,
    3371       -1,  1027,  1028,  1029,    -1,    -1,    -1,    -1,    -1,    -1,
    3372       -1,    -1,    -1,  1039,  1040,    -1,   279,    -1,   281,   282,
    3373       -1,    36,    37,    -1,    39,    -1,   289,   290,    -1,    -1,
    3374       -1,   294,   295,    -1,  1330,    -1,  1332,    -1,    -1,    -1,
    3375      646,    -1,    -1,   306,    -1,    -1,    -1,    -1,   654,  1345,
    3376       65,  1347,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
    3377       75,    -1,    -1,    78,    79,    80,    81,    82,    83,  1365,
    3378       85,    86,    -1,    -1,  1100,  1101,  1102,    -1,    93,   342,
    3379       -1,    -1,    -1,    -1,    -1,  1381,  1382,  1113,   694,    -1,
    3380       -1,    -1,    -1,   108,    -1,   110,    -1,  1393,    -1,    -1,
    3381     1396,   116,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3382       -1,    -1,    -1,    -1,    -1,   378,  1552,    -1,    -1,    -1,
    3383       -1,    -1,  1418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3384       -1,  1427,  1158,    -1,  1430,    -1,  1432,  1433,  1434,    10,
    3385       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3386       21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
    3387       31,    -1,    -1,    -1,   770,    -1,   772,    38,    -1,    -1,
    3388       -1,    -1,   778,    -1,    -1,    -1,    -1,    -1,  1474,   785,
    3389     1476,    -1,    -1,  1479,    -1,    -1,    -1,    -1,    -1,    -1,
    3390       -1,    -1,  1218,    -1,    -1,    66,    -1,    -1,  1494,    -1,
    3391       -1,    -1,    73,    74,    -1,    -1,    77,    -1,    -1,    -1,
    3392       -1,    -1,  1238,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3393       -1,    -1,    -1,   829,   830,    -1,   832,    -1,    -1,    -1,
    3394       -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
    3395       -1,   847,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
     3443    1186,  1187,    -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,
     3444      -1,    -1,    -1,    -1,    -1,  1298,   330,   331,    -1,   333,
     3445     334,    -1,  1208,    -1,    -1,    -1,    -1,    -1,    -1,   343,
     3446      -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,
     3447      -1,    -1,    -1,    -1,    -1,   977,    -1,    -1,    -1,  1235,
     3448     144,    -1,   366,    -1,    -1,   369,    -1,    -1,    -1,    -1,
     3449     154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3450      -1,    -1,   166,   167,    -1,    -1,  1008,    -1,    -1,    -1,
     3451      -1,    -1,   396,    -1,    -1,    -1,   400,    -1,  1020,     4,
     3452       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3453      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3454      25,    26,    -1,    -1,    29,    30,    31,   431,    -1,    -1,
     3455      -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,  1061,
    33963456      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3397       -1,  1287,  1288,    10,    11,    12,    13,    14,    15,    16,
    3398       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3399       -1,   887,    29,    30,    31,   891,    -1,    -1,    -1,    -1,
    3400       -1,    38,   555,   556,   557,   558,   559,   560,   561,   562,
    3401      563,   564,   565,   566,   567,   568,   569,   570,   571,   572,
    3402       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3403       -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,
    3404       -1,    -1,    -1,    -1,     0,   598,    -1,     3,     4,     5,
    3405        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3406       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3407       26,   967,    -1,    29,    30,    31,    32,    -1,    -1,    35,
    3408       -1,   118,    38,    39,    -1,    -1,    -1,   983,   984,    -1,
    3409       -1,    -1,    -1,    -1,   990,    -1,  1412,    -1,    -1,    -1,
    3410      996,    -1,    -1,   999,    -1,  1001,    -1,    63,    -1,    -1,
    3411       66,    -1,    68,    -1,    70,    71,    -1,    73,    74,    75,
    3412       -1,    -1,    -1,    -1,    -1,  1021,    82,    83,    -1,    -1,
    3413       -1,    -1,    -1,    -1,    -1,    -1,  1032,    -1,    -1,    -1,
    3414       -1,    -1,    -1,   696,    -1,    36,    37,    -1,    39,    -1,
    3415       -1,    -1,   108,    -1,   110,    -1,    -1,    -1,  1054,    -1,
    3416     1056,    -1,   118,    -1,    -1,   718,    -1,    -1,    -1,    -1,
    3417       -1,    -1,    -1,    -1,    65,  1071,  1072,    -1,   731,    -1,
    3418       71,    -1,    73,    74,    75,    -1,  1502,    78,    79,    80,
    3419       81,    82,    83,    -1,    85,    86,  1092,    -1,    -1,    -1,
    3420       -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3421       -1,  1527,  1528,    -1,    -1,    -1,    -1,   108,    -1,   110,
    3422       -1,   112,   113,    -1,   777,    -1,   117,   118,   119,   120,
    3423      121,   122,    -1,    -1,    -1,    -1,  1552,    -1,    -1,    -1,
    3424       -1,    -1,    -1,  1139,    -1,    -1,    -1,    -1,    -1,    -1,
    3425       -1,    -1,    -1,    -1,    -1,    -1,   809,    -1,    -1,    -1,
    3426       -1,    -1,  1158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3427       -1,   824,    -1,    -1,    -1,    -1,    -1,  1173,  1174,    -1,
    3428       -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
    3429        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3457     454,    -1,    -1,   237,    -1,    -1,  1332,    -1,  1334,    -1,
     3458      -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,
     3459      -1,  1347,    -1,  1349,    -1,    -1,    -1,    -1,   262,    -1,
     3460      -1,   485,    -1,    -1,   488,    -1,    -1,    -1,    -1,    -1,
     3461      -1,  1367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3462      -1,    -1,    -1,    -1,   109,   110,    -1,  1383,  1384,    -1,
     3463      -1,  1133,    -1,   118,    -1,    -1,    -1,    -1,    -1,  1395,
     3464      -1,    -1,  1398,    -1,   528,    -1,    -1,   531,   532,    -1,
     3465      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3466      -1,    -1,    -1,    -1,  1420,    -1,    -1,    -1,    -1,    -1,
     3467      -1,    -1,    -1,  1429,    -1,  1177,  1432,    -1,  1434,  1435,
     3468    1436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1191,
     3469    1192,    -1,    -1,   577,   578,    -1,    -1,    -1,    -1,    -1,
     3470      -1,  1554,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3471      -1,    -1,   596,   597,   378,   599,    -1,    -1,    -1,    -1,
     3472    1476,    -1,  1478,    -1,   608,  1481,   610,   611,    -1,    -1,
     3473      -1,    -1,    -1,   617,    -1,    -1,    -1,    -1,    -1,    -1,
     3474    1496,    -1,    -1,   627,   628,    -1,    -1,    -1,    -1,   633,
     3475      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   642,   643,
     3476     644,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3477      -1,    -1,    -1,    -1,    -1,    -1,    -1,   661,    -1,    -1,
     3478      -1,    -1,   666,   667,    -1,    -1,   670,   671,    -1,    -1,
     3479      -1,    -1,    -1,   677,    -1,    -1,    -1,    -1,    -1,    -1,
     3480      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3481      -1,   695,   696,   697,    -1,   699,   480,    -1,    -1,   703,
     3482      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    34303483      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3431       29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
    3432       39,    40,    -1,    42,    -1,    -1,    45,    46,    47,    48,
    3433       49,    50,    51,    52,    -1,    -1,    -1,    56,    -1,    -1,
    3434       -1,    60,    61,    -1,    63,    -1,    65,    66,    -1,    68,
    3435       -1,    70,    71,    -1,    73,    74,    75,    -1,  1254,    78,
    3436       79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
    3437       -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
    3438       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,
    3439       -1,   110,    -1,    -1,   113,    -1,    -1,    -1,   117,   118,
    3440      119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,    -1,
    3441       -1,    -1,   131,    -1,    -1,    -1,    -1,    -1,    -1,  1315,
    3442       -1,  1317,   975,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3484      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    38,
     3485      -1,   735,   736,    -1,    -1,   519,    -1,    -1,    -1,    -1,
     3486      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   532,    -1,
     3487      -1,    -1,    -1,    -1,    -1,   539,    -1,    66,   542,    -1,
     3488      -1,    -1,    -1,    -1,    73,    74,    -1,   771,   772,   553,
     3489     554,    -1,   776,   777,    -1,    -1,    -1,    -1,    -1,  1401,
     3490      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3491      -1,   575,    -1,    -1,    -1,    -1,  1418,    -1,    -1,    -1,
     3492      -1,   585,    -1,    -1,    -1,    -1,    -1,    -1,   592,   118,
     3493      -1,    -1,    -1,   597,   818,    -1,    -1,    -1,    -1,    -1,
     3494      -1,    -1,    -1,   827,    -1,    -1,    -1,    -1,    -1,   833,
     3495     834,    -1,    -1,    -1,   838,    -1,   840,    -1,    -1,    -1,
     3496      -1,    -1,    -1,    -1,    -1,    -1,   850,    -1,    -1,    -1,
     3497      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3498      -1,    -1,    -1,   647,    -1,    -1,    -1,    -1,    -1,  1491,
     3499    1492,    -1,   656,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     3500       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3501      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3502      24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
     3503      -1,    35,   696,    -1,    38,    39,    -1,    -1,    -1,   923,
     3504      -1,    -1,    -1,    -1,    -1,    -1,    -1,   931,    36,    37,
     3505      -1,    39,    -1,   937,    -1,    -1,    -1,    -1,    -1,    63,
     3506      -1,   945,    66,    -1,    68,    -1,    70,    71,    -1,    73,
     3507      74,    75,    -1,    -1,   958,   959,    -1,    65,    82,    83,
     3508      -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
     3509      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3510      -1,   985,    -1,    -1,   108,    93,   110,   991,   772,    -1,
     3511     774,    -1,    -1,    -1,   118,    -1,   780,    -1,    -1,    -1,
     3512     108,    -1,   110,   787,    -1,   113,  1010,  1011,    -1,   117,
     3513     118,   119,   120,   121,   122,    -1,  1020,    -1,    -1,    -1,
     3514      -1,    -1,  1026,  1027,    -1,  1029,  1030,  1031,    -1,    -1,
     3515      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1041,  1042,    -1,
     3516      -1,    -1,    -1,    -1,    -1,    -1,    -1,   831,   832,    -1,
     3517     834,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3518      -1,    -1,    -1,    -1,    -1,   849,    -1,    -1,    -1,    -1,
    34433519      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34443520      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3445       -1,    -1,    -1,  1006,    -1,    -1,    -1,    -1,    -1,    -1,
    3446       -1,    -1,    -1,    -1,    -1,  1018,     3,     4,     5,     6,
     3521      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1102,  1103,
     3522    1104,    -1,    -1,    -1,    -1,   889,    -1,    -1,    -1,   893,
     3523      -1,  1115,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    34473524       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    34483525      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    34493526      -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
    3450       37,    38,    39,    -1,    -1,    -1,  1059,  1403,    -1,    -1,
     3527      37,    38,    39,    40,    -1,    42,  1160,    -1,    45,    46,
     3528      47,    48,    49,    50,    51,    52,    -1,    -1,    -1,    56,
     3529      -1,    -1,    -1,    60,    61,    -1,    63,    -1,    65,    66,
     3530      -1,    68,    -1,    70,    71,   969,    73,    74,    75,    -1,
     3531      -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3532      -1,   985,   986,    -1,    -1,    -1,    93,    -1,   992,    -1,
     3533      -1,    -1,    36,    37,   998,    39,  1220,  1001,    -1,  1003,
     3534      -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,
     3535     117,   118,   119,   120,   121,   122,  1240,    -1,    -1,  1023,
     3536     127,    65,    -1,    -1,   131,    -1,    -1,    71,    -1,    -1,
     3537    1034,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
     3538      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
     3539      -1,    -1,  1056,    -1,  1058,    -1,    -1,    -1,    -1,    -1,
     3540      -1,    -1,    -1,    -1,   108,  1289,  1290,    -1,    -1,  1073,
     3541    1074,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
    34513542      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3452       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
     3543    1094,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
     3544       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3545      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3546      25,    26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,
     3547      35,    36,    37,    38,    39,    -1,    -1,  1141,    -1,    -1,
     3548      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3549      36,    37,    -1,    39,    -1,    -1,  1160,    -1,    -1,    -1,
     3550      65,    66,    -1,    68,    -1,    70,    71,    -1,    73,    74,
     3551      75,  1175,  1176,    78,    79,    80,    81,    82,    83,    65,
     3552      85,    86,    -1,    -1,    -1,    71,    -1,    -1,    93,    75,
     3553    1414,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
     3554      86,    -1,    -1,   108,    -1,   110,    -1,    93,    -1,    -1,
     3555      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3556      -1,    -1,   108,    -1,   110,    -1,   131,    -1,    -1,    -1,
     3557      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3558      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3559      -1,    -1,  1256,    -1,    -1,    -1,     3,     4,     5,     6,
     3560       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3561      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3562    1504,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
     3563      37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3564      -1,    -1,    -1,    -1,    -1,  1529,  1530,    -1,    -1,    -1,
     3565      -1,    -1,    -1,  1317,    -1,  1319,    -1,    -1,    65,    66,
    34533566      -1,    68,    -1,    70,    71,    -1,    73,    74,    75,    -1,
    3454       -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3567    1554,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
    34553568      -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
    34563569      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3457       -1,   108,    -1,   110,    -1,    -1,    -1,    -1,  1131,    -1,
    3458      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,  1485,
    3459       -1,    -1,    -1,    -1,   131,    -1,    -1,     3,     4,     5,
     3570      -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
     3571     117,   118,   119,   120,   121,   122,    -1,    -1,     4,     5,
    34603572       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    34613573      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3462       26,    -1,  1175,    29,    30,    31,    32,    -1,    -1,    35,
    3463       36,    37,    38,    39,    -1,    -1,  1189,  1190,    -1,    -1,
    3464       -1,  1537,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3465       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3466       66,    -1,    68,    -1,    70,    71,    -1,    73,    74,    75,
     3574      26,  1405,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3575      36,    37,    38,    39,    -1,    10,    11,    12,    13,    14,
     3576      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3577      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    65,
     3578      66,    -1,    68,    38,    70,    71,    -1,    73,    74,    75,
    34673579      -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
    34683580      86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
    3469       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3470       -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
     3581      -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,
     3582      -1,    -1,   108,  1487,   110,    -1,    -1,    82,    83,   115,
    34713583      -1,   117,   118,   119,   120,   121,   122,     4,     5,     6,
    34723584       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    34733585      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    34743586      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
    3475       37,    38,    39,    -1,    10,    11,    12,    13,    14,    15,
    3476       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3477       26,    -1,    -1,    29,    30,    31,    -1,    -1,    65,    66,
    3478       -1,    68,    38,    70,    71,    -1,    73,    74,    75,    -1,
     3587      37,    38,    39,    -1,    -1,  1539,    -1,    10,    11,    12,
     3588      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3589      23,    24,    25,    26,    27,    -1,    -1,    -1,    65,    66,
     3590      -1,    68,    -1,    70,    71,    38,    73,    74,    75,    -1,
    34793591      -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
    34803592      -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
    3481       66,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,    75,
    3482       -1,   108,    -1,   110,    -1,    -1,    82,    83,   115,    -1,
    3483      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
    3484       -1,    -1,    -1,    -1,    -1,    -1,  1399,    -1,    -1,    -1,
    3485       -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
    3486       -1,    -1,   118,  1416,     4,     5,     6,     7,     8,     9,
     3593      -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
     3594      -1,   108,    -1,   110,    77,    -1,    -1,    -1,   115,    -1,
     3595     117,   118,   119,   120,   121,   122,     4,     5,     6,     7,
     3596       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3597      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3598      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
     3599      38,    39,    -1,    10,    11,    12,    13,    14,    15,    16,
     3600      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3601      -1,    -1,    29,    30,    31,    -1,    -1,    65,    66,    -1,
     3602      68,    38,    70,    71,    -1,    73,    74,    75,    -1,    -1,
     3603      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3604      -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    66,
     3605      -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,
     3606     108,    -1,   110,    -1,    -1,    -1,    -1,   115,    -1,   117,
     3607     118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
     3608       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3609      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3610      29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
     3611      39,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3612      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3613      -1,    29,    30,    31,    -1,    -1,    65,    66,    -1,    68,
     3614      38,    70,    71,    -1,    73,    74,    75,    -1,    -1,    78,
     3615      79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
     3616      -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    66,    -1,
     3617      -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,   108,
     3618      -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3619     119,   120,   121,   122,     4,     5,     6,     7,     8,     9,
    34873620      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    34883621      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    34893622      30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    39,
    3490       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3491       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3492       26,    27,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,
    3493       70,    71,    38,    73,    74,    75,  1489,  1490,    78,    79,
     3623      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3624      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3625      -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    38,
     3626      70,    71,    -1,    73,    74,    75,    -1,    -1,    78,    79,
    34943627      80,    81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,
    3495       -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,
    3496       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,
    3497      110,    77,    -1,    -1,    -1,   115,    -1,   117,   118,   119,
     3628      -1,    -1,    -1,    93,    -1,    -1,    -1,    66,    -1,    -1,
     3629      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,
     3630     110,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
    34983631     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
    34993632      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    35003633      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    35013634      31,    -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,
    3502       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3503       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3504       27,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,    70,
    3505       71,    38,    73,    74,    75,    -1,    -1,    78,    79,    80,
    3506       81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
    3507       -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3508       -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
    3509       77,    -1,    -1,    -1,   115,    -1,   117,   118,   119,   120,
    3510      121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
    3511       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3512       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3513       -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,    10,
    3514       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3515       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3516       31,    -1,    -1,    65,    66,    -1,    68,    38,    70,    71,
    3517       -1,    73,    74,    75,    -1,    -1,    78,    79,    80,    81,
    3518       82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
    3519       -1,    93,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
    3520       71,    -1,    73,    74,    -1,    -1,   108,    -1,   110,    -1,
    3521       -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
    3522      122,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3523       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3524       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3525       -1,    -1,    -1,    36,    37,    38,    39,    -1,    10,    11,
    3526       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3527       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3528       -1,    -1,    65,    66,    -1,    68,    38,    70,    71,    -1,
    3529       73,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
    3530       83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
    3531       93,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
    3532       -1,    73,    74,    -1,    -1,   108,    -1,   110,    -1,    -1,
    3533       -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3534        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3535       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3536       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3537       -1,    -1,    36,    37,    38,    39,    -1,    10,    11,    12,
    3538       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3539       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3540       -1,    65,    66,    -1,    68,    38,    70,    71,    -1,    73,
    3541       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
    3542       -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
    3543       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
    3544       73,    74,    -1,    -1,   108,    -1,   110,    -1,    -1,    -1,
    3545       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     4,
    3546        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3547       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3548       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3549       -1,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
    35503635      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35513636      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3552       65,    66,    -1,    68,    -1,    70,    71,    -1,    73,    74,
    3553       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
    3554       85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
    3555       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3556       -1,    -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,
    3557       -1,    -1,   117,   118,   119,   120,   121,   122,     3,     4,
    3558        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3559       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3560       25,    26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,
    3561       35,    -1,    -1,    38,    39,    -1,    10,    11,    12,    13,
    3562       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3563       24,    25,    26,    -1,    -1,    29,    30,    31,    63,    -1,
    3564       -1,    66,    -1,    68,    38,    70,    71,    -1,    73,    74,
    3565       75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    83,    -1,
    3566       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3567       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    73,
    3568       74,    -1,    -1,   108,    -1,   110,    -1,    -1,    -1,   114,
    3569       -1,    -1,    -1,   118,     3,     4,     5,     6,     7,     8,
    3570        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3571       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3572       29,    30,    31,    32,   118,    -1,    35,    -1,    -1,    38,
    3573       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3574       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3575       -1,    -1,    -1,    -1,    63,    -1,    -1,    66,    -1,    68,
    3576       -1,    70,    71,    -1,    73,    74,    75,    -1,    -1,    -1,
    3577       -1,    -1,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,
    3578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,
    3580       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
    3581        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3582       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3583       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3584       -1,    -1,    -1,    -1,    -1,    38,    10,    11,    12,    13,
    3585       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3586       24,    25,    26,    -1,    -1,    29,    30,    31,    32,    33,
    3587       34,    -1,    -1,    66,    38,    68,    -1,    70,    71,    -1,
    3588       73,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,
    3589       83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3590       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    73,
    3591       74,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,
    3592       -1,    -1,    -1,    -1,    -1,   118,     3,     4,     5,     6,
    3593        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3594       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3595       -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,
    3596       -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3597       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3598       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3599       -1,    68,    -1,    70,    -1,    -1,    73,    74,    -1,     3,
    3600        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3601       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3602       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3603       -1,    -1,    -1,   110,    38,    -1,    -1,    -1,    -1,    -1,
    3604       -1,   118,    -1,    -1,     7,    -1,    -1,    10,    11,    12,
    3605       13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3606       -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,
    3607       74,    -1,    -1,    36,    37,    38,    39,    -1,    -1,    -1,
    3608       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3609       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3610       -1,    -1,    65,    66,    -1,    -1,   110,    -1,    71,    -1,
    3611       -1,    -1,    75,    -1,   118,    78,    79,    80,    81,    82,
    3612       83,     7,    85,    86,    10,    11,    12,    13,    14,    -1,
    3613       93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3614       -1,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,
    3615       36,    37,    38,    39,   117,   118,   119,   120,   121,   122,
    3616       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3617       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3618       66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
    3619       -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
    3620       86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
    3621       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3622       -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
    3623       -1,   117,   118,   119,   120,   121,   122,     4,     5,     6,
    3624        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3625       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3626       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3627       -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3628       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3629       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3630       -1,    68,    -1,    70,    71,    -1,    73,    74,    75,    -1,
    3631       -1,    -1,    -1,    -1,    -1,    82,    83,    -1,    -1,    -1,
    3632       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3633       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3634       -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
    3635       -1,   118,     4,     5,     6,     7,     8,     9,    10,    11,
    3636       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3637       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3638       -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,
    3639       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3640       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3641       -1,    29,    30,    31,    66,    -1,    68,    -1,    70,    -1,
    3642       38,    73,    74,    -1,    -1,     4,     5,     6,     7,     8,
    3643        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3644       19,    20,    21,    22,    23,    24,    25,    26,    66,    -1,
    3645       29,    30,    31,    71,    -1,    73,    74,   109,   110,    38,
    3646       -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,
    3647       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3648       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
    3649       -1,    70,   110,    -1,    73,    74,    -1,    -1,    -1,    -1,
    3650      118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3651       -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,
    3652       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3653       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
    3654        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3655       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3656       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3657       -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    10,
    3658       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3659       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3660       31,    -1,    66,    -1,    68,    -1,    70,    38,    -1,    73,
    3661       74,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3662       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3663       -1,    95,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
    3664       71,    -1,    73,    74,    75,    -1,   110,    -1,    -1,    -1,
    3665       -1,    82,    83,    -1,   118,     4,     5,     6,     7,     8,
    3666        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3667       19,    20,    21,    22,    23,    24,    25,    26,    -1,   110,
    3668       29,    30,    31,    -1,    -1,    -1,    -1,   118,    -1,    38,
    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,    -1,    -1,    -1,    -1,    66,    -1,    68,
    3672       -1,    70,    -1,    -1,    73,    74,     4,     5,     6,     7,
    3673        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3674       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3675       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
    3676       38,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
    3677       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3678       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
    3679       68,    -1,    70,    -1,    -1,    73,    74,     4,     5,     6,
    3680        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3681       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3682       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3683       -1,    38,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3684      118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3685       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3686       -1,    68,    -1,    70,    -1,    -1,    73,    74,     4,     5,
    3687        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3688       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3689       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3690       -1,    -1,    38,   110,    -1,    -1,    -1,    -1,    -1,    -1,
    3691       -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3692       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3693       66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,    10,
    3694       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3695       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3696       31,    -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,
    3697       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
    3698       -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3699       -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,
     3637      -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,    70,
    37003638      71,    -1,    73,    74,    75,    -1,    -1,    78,    79,    80,
    37013639      81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
    37023640      -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37033641      -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
    3704       -1,    -1,   113,    -1,    -1,    -1,   117,   118,   119,   120,
     3642      -1,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
     3643     121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
     3644      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3645      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3646      -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,    -1,
     3647      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3648      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3649      -1,    -1,    -1,    65,    66,    -1,    68,    -1,    70,    71,
     3650      -1,    73,    74,    75,    -1,    -1,    78,    79,    80,    81,
     3651      82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
     3652      -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3653      -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,
     3654      -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3655     122,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3656      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3657      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3658      32,    -1,    -1,    35,    -1,    -1,    38,    39,    -1,    -1,
     3659      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3660      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3661      -1,    63,    -1,    -1,    66,    -1,    68,    -1,    70,    71,
     3662      -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
     3663      82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3664      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3665      -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,
     3666      -1,    -1,   114,    -1,    -1,    -1,   118,     3,     4,     5,
     3667       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3668      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3669      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3670      -1,    -1,    38,    10,    11,    12,    13,    14,    15,    16,
     3671      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3672      -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
     3673      66,    38,    68,    -1,    70,    71,    -1,    73,    74,    75,
     3674      -1,    -1,    -1,    -1,    -1,    -1,    82,    83,    -1,    -1,
     3675      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3676      -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,
     3677      -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
     3678      -1,    -1,   118,     3,     4,     5,     6,     7,     8,     9,
     3679      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3680      20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
     3681      30,    31,    32,    -1,    -1,    35,    -1,    -1,    38,    -1,
     3682      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3683      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3684      -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
     3685      70,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,     3,
     3686       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3687      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3688      24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
     3689     110,    35,    -1,    -1,    38,    -1,    -1,    -1,   118,    -1,
     3690      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3691      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3692      -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,
     3693      74,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3694      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3695      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3696      31,    -1,    -1,    -1,    -1,    -1,   110,    38,    -1,    -1,
     3697      -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,
     3698      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3699      -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,
     3700      -1,    -1,    73,    74,     4,     5,     6,     7,     8,     9,
     3701      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3702      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3703      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    38,   110,
     3704      -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
     3705      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3706      -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
     3707      70,    71,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
     3708      -1,    -1,    82,    83,    -1,    -1,    10,    11,    12,    13,
     3709      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3710      24,    25,    26,    -1,    -1,    29,    30,    31,   108,    -1,
     3711     110,    -1,    -1,    -1,    38,    -1,    -1,    -1,   118,     4,
     3712       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3713      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3714      25,    26,    66,    -1,    29,    30,    31,    71,    -1,    73,
     3715      74,    75,    -1,    38,    -1,    -1,    -1,    -1,    82,    83,
     3716      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3717      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3718      -1,    66,    -1,    68,   108,    70,   110,    -1,    73,    74,
     3719      -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,
     3720      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3721      95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3722      -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
     3723      -1,    -1,    -1,   118,     4,     5,     6,     7,     8,     9,
     3724      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3725      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3726      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,
     3727      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3728      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3729      -1,    -1,    29,    30,    31,    -1,    66,    -1,    68,    -1,
     3730      70,    38,    -1,    73,    74,    -1,    -1,    -1,    -1,    -1,
     3731      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3732      -1,    -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,    66,
     3733      -1,    -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,
     3734     110,    -1,    -1,    -1,    -1,    82,    83,    -1,   118,     4,
     3735       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3736      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3737      25,    26,    -1,   110,    29,    30,    31,    -1,    -1,    -1,
     3738      -1,   118,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3739      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3740      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3741      -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,
     3742       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3743      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3744      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3745      -1,    -1,    -1,    -1,    38,   110,    -1,    -1,    -1,    -1,
     3746      -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3747      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3748      -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,
     3749      74,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3750      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3751      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3752      -1,    -1,    -1,    -1,    -1,    38,   110,    -1,    -1,    -1,
     3753      -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,
     3754      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3755      -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,
     3756      73,    74,     4,     5,     6,     7,     8,     9,    10,    11,
     3757      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3758      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3759      -1,    -1,    -1,    -1,    -1,    -1,    38,   110,    -1,    -1,
     3760      -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     3761      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3762      -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,
     3763      -1,    73,    74,    10,    11,    12,    13,    14,    15,    16,
     3764      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3765      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3766      37,    38,    39,    -1,    -1,    -1,    -1,    -1,   110,    -1,
     3767      -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,
     3768      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
     3769      -1,    -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,
     3770      -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3771      -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
     3772      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3773      -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,
     3774     117,   118,   119,   120,   121,   122,    10,    11,    12,    13,
     3775      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3776      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3777      -1,    -1,    36,    37,    38,    39,    10,    11,    12,    13,
     3778      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3779      24,    25,    26,    27,    -1,    29,    30,    31,    -1,    -1,
     3780      -1,    65,    66,    -1,    38,    -1,    -1,    71,    -1,    73,
     3781      74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
     3782      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
     3783      -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    73,
     3784      74,    75,    -1,    77,   108,    -1,   110,   111,    82,    83,
     3785      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,    10,
     3786      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3787      21,    22,    23,    24,    25,    26,   110,    -1,    29,    30,
     3788      31,    -1,    -1,    -1,   118,    36,    37,    38,    39,    10,
     3789      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3790      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3791      31,    -1,    -1,    -1,    65,    66,    -1,    38,    -1,    -1,
     3792      71,    -1,    73,    74,    75,    -1,    -1,    78,    79,    80,
     3793      81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
     3794      -1,    -1,    93,    -1,    -1,    66,    -1,    -1,    -1,    -1,
     3795      71,    -1,    73,    74,    -1,    -1,    -1,   108,   109,   110,
     3796      -1,    82,    83,    -1,    -1,    -1,   117,   118,   119,   120,
    37053797     121,   122,    10,    11,    12,    13,    14,    15,    16,    17,
     3798      18,    19,    20,    21,    22,    23,    24,    25,    26,   110,
     3799      -1,    29,    30,    31,    -1,    -1,    -1,   118,    36,    37,
     3800      38,    39,    10,    11,    12,    13,    14,    15,    16,    17,
    37063801      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3707       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
    3708       38,    39,    10,    11,    12,    13,    14,    15,    16,    17,
    3709       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    37103802      -1,    29,    30,    31,    -1,    -1,    -1,    65,    66,    -1,
    3711       38,    -1,    -1,    71,    -1,    73,    74,    75,    -1,    -1,
     3803      38,    39,    -1,    71,    -1,    73,    74,    75,    -1,    -1,
    37123804      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
    37133805      -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    66,    -1,
    3714       -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,    77,
    3715      108,    -1,   110,   111,    82,    83,    -1,    -1,    -1,   117,
     3806      -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,    -1,
     3807     108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    37163808     118,   119,   120,   121,   122,    10,    11,    12,    13,    14,
    37173809      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37183810      25,    26,   110,    -1,    29,    30,    31,    -1,    -1,    -1,
    3719      118,    36,    37,    38,    39,    10,    11,    12,    13,    14,
    3720       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3721       25,    26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,
    3722       65,    66,    -1,    38,    -1,    -1,    71,    -1,    73,    74,
    3723       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3811     118,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
     3812      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3813      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3814      65,    66,    29,    30,    31,    -1,    71,    -1,    73,    74,
     3815      75,    38,    -1,    78,    79,    80,    81,    82,    83,    -1,
    37243816      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
    3725       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,
    3726       -1,    -1,    77,   108,   109,   110,    -1,    -1,    -1,    -1,
     3817      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3818      -1,    -1,    -1,   108,    -1,   110,    73,    74,    -1,    -1,
    37273819      -1,    -1,   117,   118,   119,   120,   121,   122,    10,    11,
    37283820      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3729       22,    23,    24,    25,    26,   110,    -1,    29,    30,    31,
    3730       -1,    -1,    -1,   118,    36,    37,    38,    39,    10,    11,
    3731       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    37323821      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3733       -1,    -1,    -1,    65,    66,    -1,    38,    39,    -1,    71,
    3734       -1,    73,    74,    75,    -1,    -1,    78,    79,    80,    81,
     3822      -1,   108,    -1,   110,    36,    37,    38,    39,    -1,    -1,
     3823      -1,   118,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3824      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3825      24,    25,    26,    65,    66,    29,    30,    31,    -1,    71,
     3826      -1,    73,    74,    75,    38,    -1,    78,    79,    80,    81,
    37353827      82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
    3736       -1,    93,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
    3737       -1,    73,    74,    -1,    -1,    -1,   108,    -1,   110,    -1,
    3738       -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3828      -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3829      -1,    -1,    66,    -1,    -1,    -1,   108,    -1,   110,    73,
     3830      74,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
    37393831     122,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3740       19,    20,    21,    22,    23,    24,    25,    26,   110,    -1,
    3741       29,    30,    31,    -1,    -1,    -1,   118,    36,    37,    38,
    3742       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,
     3832      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3833      29,    30,    31,    -1,   108,    -1,   110,    36,    37,    38,
     3834      39,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    10,
    37433835      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    37443836      21,    22,    23,    24,    25,    26,    65,    66,    29,    30,
    3745       31,    -1,    71,    -1,    73,    74,    75,    38,    -1,    78,
     3837      31,    -1,    71,    -1,    73,    74,    75,    38,    39,    78,
    37463838      79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
    37473839      -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
    37483840      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   108,
    37493841      -1,   110,    73,    74,    -1,    -1,    -1,    -1,   117,   118,
    3750      119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
     3842     119,   120,   121,   122,     3,     4,     5,     6,     7,     8,
     3843       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3844      19,    20,    21,    22,    23,    24,    25,    26,    -1,   110,
     3845      29,    30,    31,   114,    -1,    -1,    -1,   118,    -1,    38,
     3846      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3847      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3848      30,    31,    -1,    -1,    -1,    -1,    -1,    66,    38,    68,
     3849      -1,    70,    -1,    -1,    73,    74,    -1,    -1,    10,    11,
     3850      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3851      22,    23,    24,    25,    26,    -1,    66,    29,    30,    31,
     3852      -1,    71,    -1,    73,    74,    75,    38,    -1,    -1,    -1,
     3853      -1,    -1,    82,    83,   113,    -1,    10,    11,    12,    13,
     3854      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3855      24,    25,    26,    -1,    66,    29,    30,    31,   108,    71,
     3856     110,    73,    74,    75,    38,    -1,    -1,    -1,   118,    -1,
     3857      82,    83,    -1,    -1,    10,    11,    12,    13,    14,    15,
    37513858      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3752       26,    -1,    -1,    29,    30,    31,    -1,   108,    -1,   110,
    3753       36,    37,    38,    39,    -1,    -1,    -1,   118,    -1,    -1,
    3754       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3755       18,    19,    20,    21,    22,    23,    24,    25,    26,    65,
    3756       66,    29,    30,    31,    -1,    71,    -1,    73,    74,    75,
    3757       38,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
    3758       86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
    3759       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
    3760       -1,    -1,   108,    -1,   110,    73,    74,    -1,    -1,    -1,
    3761       -1,   117,   118,   119,   120,   121,   122,    10,    11,    12,
     3859      26,    -1,    66,    29,    30,    31,   108,    -1,   110,    73,
     3860      74,    -1,    38,    -1,    -1,    -1,   118,    10,    11,    12,
    37623861      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    37633862      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3764      108,    -1,   110,    36,    37,    38,    39,    -1,    -1,    -1,
    3765      118,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3863      66,    -1,    -1,    -1,    -1,    38,   110,    73,    74,    -1,
     3864      -1,    -1,    -1,    -1,   118,    10,    11,    12,    13,    14,
    37663865      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3767       25,    26,    65,    66,    29,    30,    31,    -1,    71,    -1,
    3768       73,    74,    75,    38,    39,    78,    79,    80,    81,    82,
    3769       83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
    3770       93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3771       -1,    66,    -1,    -1,    -1,   108,    -1,   110,    73,    74,
    3772       -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3773        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3774       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3775       23,    24,    25,    26,    -1,   110,    29,    30,    31,   114,
    3776       -1,    -1,    -1,   118,    -1,    38,    10,    11,    12,    13,
     3866      25,    26,    -1,    66,    29,    30,    31,    -1,    -1,    -1,
     3867      73,    74,    -1,    38,   110,    -1,    -1,    -1,    -1,    -1,
     3868      -1,    -1,   118,    10,    11,    12,    13,    14,    15,    16,
     3869      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3870      -1,    66,    29,    30,    31,    -1,    -1,   110,    73,    74,
     3871      -1,    38,    -1,    -1,    -1,   118,    10,    11,    12,    13,
    37773872      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3778       24,    25,    26,    27,    -1,    29,    30,    31,    -1,    -1,
    3779       -1,    -1,    -1,    66,    38,    68,    -1,    70,    -1,    -1,
    3780       73,    74,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3873      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    66,
     3874      -1,    -1,    -1,    -1,    38,   110,    73,    74,    -1,    -1,
     3875      -1,    -1,    -1,   118,    10,    11,    12,    13,    14,    15,
    37813876      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3782       26,    -1,    66,    29,    30,    31,    -1,    71,    -1,    73,
    3783       74,    75,    38,    77,    -1,    -1,    -1,    -1,    82,    83,
    3784      113,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3877      26,    -1,    66,    29,    30,    31,    -1,    -1,    -1,    73,
     3878      74,    -1,    38,   110,    -1,    -1,    -1,    -1,    -1,    -1,
     3879      -1,   118,    10,    11,    12,    13,    14,    15,    16,    17,
    37853880      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3786       66,    29,    30,    31,   108,    71,   110,    73,    74,    75,
    3787       38,    -1,    -1,    -1,   118,    -1,    82,    83,    -1,    -1,
    3788       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3789       20,    21,    22,    23,    24,    25,    26,    -1,    66,    29,
    3790       30,    31,   108,    71,   110,    73,    74,    75,    38,    -1,
    3791       -1,    -1,   118,    -1,    82,    83,    -1,    -1,    10,    11,
    3792       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3793       22,    23,    24,    25,    26,    27,    66,    29,    30,    31,
    3794      108,    71,   110,    73,    74,    75,    38,    -1,    -1,    -1,
    3795      118,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,
    3796       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3797       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   108,    -1,
    3798      110,    73,    74,    -1,    -1,    77,    -1,    -1,   118,    -1,
    3799       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3800       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3801       29,    30,    31,    -1,    -1,    -1,   108,    -1,   110,    38,
    3802       39,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    10,
    3803       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3804       21,    22,    23,    24,    25,    26,    -1,    66,    29,    30,
    3805       31,    -1,    -1,    -1,    73,    74,    -1,    38,    39,    10,
    3806       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3807       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3808       31,    -1,    -1,    -1,    -1,    66,    -1,    38,    -1,    -1,
    3809       -1,   110,    73,    74,    -1,   114,    -1,    -1,    -1,   118,
    3810       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3811       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
    3812       -1,    -1,    73,    74,    -1,    -1,    -1,    -1,    -1,   110,
    3813       -1,    -1,    -1,   114,    -1,    -1,    -1,   118,    -1,    -1,
    3814       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3815       19,    20,    21,    22,    23,    24,    25,    26,    -1,   110,
    3816       29,    30,    31,    -1,    -1,    -1,    -1,   118,    -1,    38,
     3881      66,    29,    30,    31,    -1,    -1,   110,    73,    74,    -1,
     3882      38,    -1,    -1,    -1,   118,    10,    11,    12,    13,    14,
     3883      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3884      25,    26,    -1,    -1,    29,    30,    31,    -1,    66,    -1,
     3885      -1,    -1,    -1,    38,   110,    73,    74,    -1,    -1,    -1,
     3886      -1,    -1,   118,    10,    11,    12,    13,    14,    15,    16,
     3887      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3888      -1,    66,    29,    30,    31,    -1,    -1,    -1,    73,    74,
     3889      -1,    38,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3890     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3891      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3892      -1,    -1,    -1,    -1,    -1,   110,    73,    74,    -1,    -1,
     3893      -1,    -1,    -1,   118,     4,     5,     6,     7,     8,     9,
    38173894      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    38183895      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3819       30,    31,    -1,    -1,    -1,    -1,    -1,    66,    38,    -1,
    3820       -1,    -1,    -1,    -1,    73,    74,    -1,    -1,    10,    11,
    3821       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3822       22,    23,    24,    25,    26,    -1,    66,    29,    30,    31,
    3823       -1,    -1,    -1,    73,    74,    -1,    38,    -1,    -1,    -1,
    3824       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
     3896      30,    31,    -1,   110,    -1,    -1,    -1,    -1,    38,    -1,
     3897      -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38253898      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3826       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
    3827      110,    73,    74,    -1,    -1,    -1,    -1,    -1,   118,    10,
    3828       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3829       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3830       31,    -1,    -1,    -1,    -1,    -1,    -1,    38,   110,    -1,
    3831       -1,    -1,    -1,    -1,    -1,    -1,   118,    10,    11,    12,
    3832       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3833       23,    24,    25,    26,    -1,    66,    29,    30,    31,    -1,
    3834       -1,    -1,    73,    74,    -1,    38,    10,    11,    12,    13,
    3835       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3836       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3837       -1,    -1,    -1,    66,    38,    -1,    -1,    -1,    -1,   110,
    3838       73,    74,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
     3899      -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
     3900      70,    -1,    -1,    73,    74,    36,    37,    -1,    39,    40,
     3901      -1,    42,    -1,    -1,    45,    46,    47,    48,    49,    50,
     3902      51,    52,    -1,    -1,    55,    56,    -1,    -1,    -1,    60,
     3903      61,    -1,    63,    -1,    65,    -1,    -1,    -1,    -1,   109,
     3904      71,    -1,    -1,    -1,    75,    -1,    -1,    78,    79,    80,
     3905      81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
     3906      -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3907      -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
     3908      -1,    -1,   113,    -1,    -1,    -1,   117,   118,   119,   120,
     3909     121,   122,    -1,    -1,    -1,    -1,   127,    -1,    36,    37,
     3910     131,    39,    40,    -1,    42,    -1,    -1,    45,    46,    47,
     3911      48,    49,    50,    51,    52,    -1,    -1,    -1,    56,    -1,
     3912      -1,    -1,    60,    61,    -1,    63,    -1,    65,    -1,    -1,
     3913      -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
     3914      78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
     3915      -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,
    38393916      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3840       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    73,
    3841       74,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
    3842       -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    10,    11,
    3843       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3844       22,    23,    24,    25,    26,    -1,   110,    29,    30,    31,
    3845       -1,    -1,    -1,    -1,   118,    -1,    38,    10,    11,    12,
    3846       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3847       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3848       -1,    -1,    -1,    -1,    66,    38,    -1,    -1,    -1,    -1,
    3849       -1,    73,    74,    -1,    -1,    10,    11,    12,    13,    14,
    3850       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3851       25,    26,    -1,    66,    29,    30,    31,    -1,    -1,    -1,
    3852       73,    74,    -1,    38,    -1,    -1,    -1,    -1,   110,    -1,
    3853       -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,
     3917     108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,   117,
     3918     118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,
     3919      -1,    36,    37,   131,    39,    40,    -1,    42,    43,    44,
     3920      45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
     3921      55,    56,    -1,    -1,    -1,    60,    61,    -1,    63,    -1,
     3922      65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
     3923      75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3924      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
    38543925      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3855       -1,    66,    -1,    -1,    -1,    -1,    -1,   110,    73,    74,
    3856       -1,    -1,    -1,    -1,    -1,   118,     4,     5,     6,     7,
    3857        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3858       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3859       -1,    29,    30,    31,    -1,   110,    -1,    -1,    -1,    -1,
    3860       38,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
    3861       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3862       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
    3863       68,    -1,    70,    -1,    -1,    73,    74,    36,    37,    -1,
    3864       39,    40,    -1,    42,    -1,    -1,    45,    46,    47,    48,
    3865       49,    50,    51,    52,    -1,    -1,    55,    56,    -1,    -1,
    3866       -1,    60,    61,    -1,    63,    -1,    65,    -1,    -1,    -1,
    3867       -1,   109,    71,    -1,    -1,    -1,    75,    -1,    -1,    78,
    3868       79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
    3869       -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
    3870       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,
    3871       -1,   110,    -1,    -1,   113,    -1,    -1,    -1,   117,   118,
    3872      119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,    -1,
    3873       36,    37,   131,    39,    40,    -1,    42,    -1,    -1,    45,
     3926      -1,    -1,    -1,   108,    -1,   110,    -1,    -1,   113,    -1,
     3927      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3928      36,    37,   127,    39,    40,    -1,    42,    43,    44,    45,
    38743929      46,    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,
    38753930      56,    -1,    -1,    -1,    60,    61,    -1,    63,    -1,    65,
     
    38793934      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38803935      -1,    -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,
    3881       -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
    3882       -1,   127,    -1,    36,    37,   131,    39,    40,    -1,    42,
    3883       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
    3884       -1,    -1,    55,    56,    -1,    -1,    -1,    60,    61,    -1,
    3885       63,    -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    -1,
    3886       -1,    -1,    75,    -1,    -1,    78,    79,    80,    81,    82,
    3887       83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
    3888       93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3889       -1,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,
    3890      113,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3891       -1,    -1,    36,    37,   127,    39,    40,    -1,    42,    43,
    3892       44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
    3893       -1,    -1,    56,    -1,    -1,    -1,    60,    61,    -1,    63,
    3894       -1,    65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,
    3895       -1,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
    3896       -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
     3936      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    36,
     3937      37,   127,    39,    40,    -1,    42,    -1,    -1,    45,    46,
     3938      47,    48,    49,    50,    51,    52,    -1,    -1,    -1,    56,
     3939      -1,    -1,    -1,    60,    61,    -1,    63,    -1,    65,    -1,
     3940      -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
     3941      -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
     3942      -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
    38973943      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3898       -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,   113,
    3899       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
    3900       -1,    36,    37,   127,    39,    40,    -1,    42,    -1,    -1,
    3901       45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
    3902       -1,    56,    -1,    -1,    -1,    60,    61,    -1,    63,    -1,
    3903       65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
    3904       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
    3905       85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
    3906       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3907       -1,    -1,    -1,   108,    -1,   110,    -1,    -1,   113,    -1,
    3908       -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3909       -1,    -1,   127,     4,     5,     6,     7,     8,     9,    10,
    3910       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3911       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3912       31,    -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,    36,
    3913       37,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3914       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,    37,
    3915       -1,    39,    -1,    -1,    -1,    66,    -1,    68,    65,    70,
    3916       -1,    -1,    73,    74,    71,    -1,    -1,    -1,    75,    -1,
    3917       -1,    78,    79,    80,    81,    82,    83,    65,    85,    86,
    3918       -1,    -1,    -1,    71,    95,    -1,    93,    75,    -1,    -1,
    3919       78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
    3920       -1,   108,    -1,   110,    -1,    93,    36,    37,   115,    39,
     3944      -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,
    39213945     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
    3922      108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,   117,
    3923      118,   119,   120,   121,   122,    65,    -1,    -1,    -1,    -1,
    3924       -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    78,    79,
    3925       80,    81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,
    3926       -1,    -1,    -1,    93,    36,    37,    -1,    39,    -1,    -1,
    3927       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,
     3946     127,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3947      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3948      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3949      -1,    -1,    -1,    -1,    -1,    38,    -1,    36,    37,    -1,
     3950      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3951      -1,    -1,    -1,    -1,    -1,    -1,    36,    37,    -1,    39,
     3952      -1,    -1,    -1,    66,    -1,    68,    65,    70,    -1,    -1,
     3953      73,    74,    71,    -1,    -1,    -1,    75,    -1,    -1,    78,
     3954      79,    80,    81,    82,    83,    65,    85,    86,    -1,    -1,
     3955      -1,    71,    95,    -1,    93,    75,    -1,    -1,    78,    79,
     3956      80,    81,    82,    83,    -1,    85,    86,    -1,    -1,   108,
     3957      -1,   110,    -1,    93,    36,    37,    -1,    39,   117,   118,
     3958     119,   120,   121,   122,    -1,    -1,    -1,    -1,   108,    -1,
    39283959     110,    -1,    -1,    36,    37,    -1,    39,   117,   118,   119,
    39293960     120,   121,   122,    65,    -1,    -1,    -1,    -1,    -1,    71,
     
    39333964      83,    -1,    85,    86,    -1,    -1,   108,    -1,   110,    -1,
    39343965      93,    36,    37,    -1,    39,   117,   118,   119,   120,   121,
    3935      122,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,
    3936       36,    37,    -1,    39,   117,   118,   119,   120,   121,   122,
     3966     122,    -1,    -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,
     3967      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    39373968      65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
    3938       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    65,
    3939       85,    86,    -1,    -1,    -1,    71,    -1,    -1,    93,    75,
    3940       -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
    3941       86,    -1,    -1,   108,    -1,   110,    -1,    93,    36,    37,
    3942       -1,    39,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3943       -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3944       -1,   117,   118,   119,   120,   121,   122,    65,    -1,    -1,
    3945       -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
    3946       78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
    3947       -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,
     3969      75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
     3970      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
    39483971      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3949      108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    3950      118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
    3951        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3952       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3953       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,
    3954       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3955       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3956       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
    3957       -1,    70,    71,    -1,    73,    74,    75,    -1,    -1,    -1,
    3958       -1,    -1,    -1,    82,    83,     3,     4,     5,     6,     7,
    3959        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3960       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3961       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
    3962       38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3963       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3964       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
    3965       68,    -1,    70,    -1,    -1,    73,    74,     3,     4,     5,
     3972      -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
     3973      -1,    -1,   117,   118,   119,   120,   121,   122,     4,     5,
    39663974       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    39673975      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3968       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3976      26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39693977      -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39703978      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39713979      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3972       66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,     4,
     3980      66,    -1,    68,    -1,    70,    71,    -1,    73,    74,    75,
     3981      -1,    -1,    -1,    -1,    -1,    -1,    82,    83,     3,     4,
    39733982       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    39743983      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    39773986      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39783987      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3979       -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74
     3988      -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,
     3989       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3990      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3991      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3992      -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,
     3993      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3994      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3995      -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,
     3996      73,    74,     4,     5,     6,     7,     8,     9,    10,    11,
     3997      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3998      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3999      -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,
     4000      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4001      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4002      -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,
     4003      -1,    73,    74
    39804004};
    39814005
     
    39954019     301,   303,   304,   310,   315,   319,   320,   321,   322,   323,
    39964020     324,   325,   326,   346,   363,   364,   365,   366,    71,   118,
    3997      138,   213,   215,   223,   225,   235,   239,   241,   280,    81,
    3998      108,   308,   309,   310,   308,   308,    71,    73,    74,    75,
    3999      137,   138,   269,   270,   290,   291,    73,    74,   270,   108,
    4000      301,    11,   197,   108,   118,   315,   320,   321,   322,   324,
    4001      325,   326,   111,   133,   110,   216,   223,   225,   319,   323,
    4002      362,   363,   366,   367,   134,   106,   130,   273,   113,   134,
    4003      171,    73,    74,   136,   268,   134,   134,   134,   115,   134,
    4004       73,    74,   108,   118,   305,   314,   315,   316,   317,   318,
    4005      319,   323,   327,   328,   329,   330,   331,   337,     3,    27,
    4006       77,   237,     3,     5,    73,   110,   118,   215,   226,   230,
    4007      233,   242,   281,   319,   323,   366,   213,   215,   225,   235,
    4008      239,   241,   280,   319,   323,    32,   231,   231,   226,   233,
    4009      134,   231,   226,   231,   226,    74,   108,   113,   270,   281,
    4010      113,   270,   231,   226,   115,   134,   134,     0,   133,   108,
    4011      171,   308,   308,   133,   110,   223,   225,   364,   268,   268,
    4012      225,   130,   108,   118,   305,   315,   319,   110,   118,   366,
    4013      302,   228,   310,   108,   286,   108,   108,    50,   108,    36,
    4014       37,    39,    65,    71,    75,    78,    79,    80,    81,    85,
    4015       86,    93,   108,   110,   117,   118,   119,   120,   121,   122,
    4016      135,   139,   140,   141,   142,   147,   148,   149,   150,   151,
    4017      152,   153,   154,   155,   156,   157,   158,   159,   160,   162,
    4018      164,   223,   272,   288,   362,   367,   225,   109,   109,   109,
    4019      109,   109,   109,   109,    73,    74,   110,   223,   268,   346,
    4020      364,   110,   118,   162,   215,   216,   222,   225,   229,   230,
    4021      235,   238,   239,   241,   258,   259,   263,   264,   265,   266,
    4022      280,   346,   358,   359,   360,   361,   366,   367,   111,   108,
    4023      319,   323,   366,   108,   115,   131,   110,   113,   118,   162,
    4024      274,   274,   114,   133,   115,   131,   108,   115,   131,   115,
    4025      131,   115,   131,   308,   131,   315,   316,   317,   318,   328,
    4026      329,   330,   331,   225,   314,   327,    63,   307,   110,   308,
    4027      345,   346,   308,   308,   171,   133,   108,   308,   345,   308,
    4028      308,   225,   305,   108,   108,   224,   225,   223,   225,   111,
    4029      133,   223,   362,   367,   171,   133,   268,   273,   215,   230,
    4030      319,   323,   171,   133,   290,   225,   235,   131,   225,   225,
    4031      288,    39,   110,   223,   245,   246,   247,   248,   362,   366,
    4032      113,   254,   270,   113,   225,   290,   131,   131,   301,   133,
    4033      138,   267,     3,   134,   205,   206,   220,   222,   225,   133,
    4034      307,   108,   307,   162,   315,   225,   108,   133,   268,   113,
    4035       32,    33,    34,   223,   282,   283,   285,   133,   128,   130,
    4036      287,   133,   226,   232,   233,   268,   311,   312,   313,   108,
    4037      140,   108,   147,   108,   147,   149,   108,   147,   108,   108,
    4038      147,   147,   138,   110,   162,   167,   171,   223,   271,   362,
    4039      111,   133,   149,   149,    81,    84,    85,    86,   108,   110,
    4040      112,   113,    96,    97,    98,    99,   100,   101,   102,   103,
    4041      104,   105,   130,   166,   149,   118,   123,   124,   120,   121,
    4042       87,    88,    89,    90,   125,   126,    91,    92,   119,   127,
    4043      128,    93,    94,   129,   130,   369,   108,   118,   341,   342,
    4044      343,   344,   345,   109,   115,   108,   345,   346,   108,   345,
    4045      346,   133,   108,   223,   364,   111,   133,   110,   118,   134,
    4046      223,   225,   357,   358,   366,   367,   134,   108,   110,   118,
    4047      315,   332,   333,   334,   335,   336,   337,   338,   339,   340,
    4048      346,   347,   348,   349,   350,   351,   352,   118,   366,   225,
    4049      134,   134,   118,   223,   225,   359,   268,   223,   346,   359,
    4050      268,   108,   133,   133,   133,   111,   133,    71,    79,   110,
    4051      112,   270,   274,   275,   276,   277,   278,   133,   133,   133,
    4052      133,   133,   133,   305,   109,   109,   109,   109,   109,   109,
    4053      109,   314,   327,   108,   273,   111,   205,   133,   305,   167,
    4054      272,   167,   272,   305,   110,   205,   307,   171,   133,   205,
    4055      109,   247,   248,   111,   133,   108,   116,   118,   249,   251,
    4056      314,   315,   327,   345,   353,   354,   355,   356,   114,   246,
    4057      115,   131,   115,   131,   270,   245,   115,   368,   130,   255,
    4058      254,   225,   260,   261,   262,   265,   266,   109,   115,   171,
    4059      133,   118,   162,   133,   222,   225,   259,   358,   366,   299,
    4060      300,   108,   118,   332,   109,   115,   369,   270,   282,   108,
    4061      113,   270,   272,   282,   109,   115,   108,   140,   109,   116,
    4062      271,   271,   271,   110,   138,   144,   162,   272,   271,   111,
    4063      133,   109,   115,   109,   108,   118,   353,   109,   115,   162,
    4064      110,   138,   110,   143,   144,   133,   110,   138,   143,   162,
    4065      162,   149,   149,   149,   150,   150,   151,   151,   152,   152,
    4066      152,   152,   153,   153,   154,   155,   156,   157,   158,   116,
    4067      167,   162,   133,   342,   343,   344,   225,   341,   308,   308,
    4068      162,   272,   133,   267,   118,   133,   223,   346,   359,   225,
    4069      229,   111,   133,   111,   366,   111,   108,   133,   315,   333,
    4070      334,   335,   338,   348,   349,   350,   111,   133,   225,   332,
    4071      336,   347,   108,   308,   351,   369,   308,   308,   369,   108,
    4072      308,   351,   308,   308,   308,   308,   346,   223,   357,   367,
    4073      268,   111,   115,   111,   115,   369,   223,   359,   369,   256,
    4074      257,   258,   259,   256,   256,   268,   162,   133,   110,   270,
    4075      116,   115,   368,   274,    79,   110,   116,   278,    28,   207,
    4076      208,   268,   256,   138,   305,   138,   307,   108,   345,   346,
    4077      108,   345,   346,   140,   346,   171,   260,   109,   109,   109,
    4078      109,   111,   171,   205,   171,   113,   131,   131,   110,   315,
    4079      354,   355,   356,   160,   161,   225,   353,   250,   251,   250,
    4080      308,   308,   270,   308,   114,   270,   114,   161,   368,   134,
    4081      134,   138,   220,   134,   134,   256,   108,   118,   366,   134,
    4082      114,   225,   283,   284,   134,   133,   133,   108,   134,   109,
    4083      312,   167,   168,   116,   131,   110,   140,   198,   199,   200,
    4084      109,   115,   109,   133,   116,   109,   109,   109,   162,   225,
    4085      113,   149,   164,   162,   163,   165,   115,   134,   133,   133,
    4086      109,   115,   162,   133,   114,   160,   116,   260,   109,   109,
    4087      109,   341,   260,   109,   256,   223,   359,   110,   118,   162,
    4088      162,   225,   338,   260,   109,   109,   109,   109,   109,   109,
    4089      109,     7,   225,   332,   336,   347,   133,   133,   369,   133,
    4090      133,   109,   134,   134,   134,   134,   273,   134,   160,   161,
    4091      162,   306,   133,   274,   276,   114,   133,   209,   270,    39,
    4092       40,    42,    45,    46,    47,    48,    49,    50,    51,    52,
    4093       56,    60,    61,   110,   127,   138,   168,   169,   170,   171,
    4094      172,   173,   175,   176,   188,   190,   191,   196,   210,   304,
    4095       28,   134,   130,   273,   133,   133,   109,   134,   171,   245,
    4096      111,   109,   109,   109,   353,   249,   255,   114,   109,   115,
    4097      111,   111,   134,   225,   115,   369,   286,   109,   282,   213,
    4098      215,   223,   294,   295,   296,   297,   288,   109,   109,   116,
    4099      161,   108,   109,   116,   115,   138,   162,   162,   275,   115,
    4100      134,   165,   111,   138,   145,   146,   162,   144,   134,   145,
    4101      160,   164,   134,   108,   345,   346,   134,   134,   133,   134,
    4102      134,   134,   162,   109,   134,   108,   345,   346,   108,   351,
    4103      108,   351,   346,   224,     7,   118,   134,   162,   260,   260,
    4104      259,   263,   263,   264,   115,   115,   109,   109,   111,    95,
    4105      122,   134,   134,   145,   274,   162,   115,   131,   210,   214,
    4106      225,   229,   108,   108,   169,   108,   108,   131,   138,   131,
    4107      138,   118,   138,   168,   108,   171,   163,   163,   111,   142,
    4108      116,   131,   134,   133,   134,   209,   109,   162,   260,   260,
    4109      308,   109,   114,   108,   345,   346,   133,   109,   133,   134,
    4110      305,   114,   133,   134,   134,   109,   113,   198,   111,   161,
    4111      131,   198,   200,   109,   115,   134,   368,   163,   111,   134,
    4112       84,   112,   115,   134,   134,   111,   134,   109,   133,   109,
    4113      109,   111,   111,   111,   134,   109,   133,   133,   133,   162,
    4114      162,   134,   111,   134,   134,   134,   134,   133,   133,   161,
    4115      161,   111,   111,   134,   134,   270,   225,   167,   167,    46,
    4116      167,   133,   131,   131,   167,   131,   131,   167,    57,    58,
    4117       59,   192,   193,   194,   131,    62,   131,   113,   308,   173,
    4118      114,   131,   134,   134,   133,    95,   265,   266,   109,   295,
    4119      115,   131,   115,   131,   114,   293,   116,   140,   109,   109,
    4120      116,   165,   111,   114,   111,   110,   146,   110,   146,   146,
    4121      111,   111,   111,   260,   111,   260,   260,   260,   134,   134,
    4122      111,   111,   109,   109,   111,   115,    95,   259,    95,   134,
    4123      111,   111,   109,   109,   108,   109,   168,   189,   210,   131,
    4124      109,   108,   108,   171,   194,    57,    58,   162,   143,   169,
    4125      109,   109,   260,   113,   133,   133,   294,   140,   201,   108,
    4126      131,   201,   134,   116,   133,   133,   134,   134,   134,   134,
    4127      111,   111,   133,   134,   111,   169,    43,    44,   113,   179,
    4128      180,   181,   167,   169,   134,   109,   168,   113,   181,    95,
    4129      133,    95,   133,   108,   108,   131,   114,   134,   133,   268,
    4130      305,   114,   115,   116,   161,   109,   111,   162,   145,   145,
    4131      109,   109,   109,   109,   263,    41,   161,   177,   178,   306,
    4132      116,   133,   169,   179,   109,   131,   169,   131,   133,   109,
    4133      133,   109,   133,    95,   133,    95,   133,   131,   109,   294,
    4134      140,   138,   202,   109,   131,   116,   134,   134,   169,    95,
    4135      115,   116,   134,   203,   204,   210,   131,   168,   168,   203,
    4136      171,   195,   223,   362,   171,   195,   109,   133,   109,   133,
    4137      114,   109,   115,   162,   111,   111,   161,   177,   180,   182,
    4138      183,   133,   131,   180,   184,   185,   134,   108,   118,   305,
    4139      353,   138,   134,   171,   195,   171,   195,   108,   131,   138,
    4140      169,   174,   114,   180,   210,   168,    55,   174,   187,   114,
    4141      180,   109,   225,   109,   134,   134,   288,   169,   174,   131,
    4142      186,   187,   174,   187,   171,   171,   109,   109,   109,   186,
    4143      134,   134,   171,   171,   134,   134
     4021     138,   139,   213,   215,   223,   225,   235,   239,   241,   280,
     4022      81,   108,   308,   309,   310,   308,   308,    71,    73,    74,
     4023      75,   137,   138,   269,   270,   290,   291,    73,    74,   270,
     4024     108,   301,    11,   197,   108,   118,   315,   320,   321,   322,
     4025     324,   325,   326,   111,   133,   110,   216,   223,   225,   319,
     4026     323,   362,   363,   366,   367,   134,   106,   130,   273,   113,
     4027     134,   171,    73,    74,   136,   268,   134,   134,   134,   115,
     4028     134,    73,    74,   108,   118,   305,   314,   315,   316,   317,
     4029     318,   319,   323,   327,   328,   329,   330,   331,   337,     3,
     4030      27,    77,   237,     3,     5,    73,   110,   118,   215,   226,
     4031     230,   233,   242,   281,   319,   323,   366,   213,   215,   225,
     4032     235,   239,   241,   280,   319,   323,    32,   231,   231,   226,
     4033     233,   134,   231,   226,   231,   226,    74,   108,   113,   270,
     4034     281,   113,   270,   231,   226,   115,   134,   134,     0,   133,
     4035     108,   171,   308,   308,   133,   110,   223,   225,   364,   268,
     4036     268,   225,   130,   108,   118,   305,   315,   319,   110,   118,
     4037     366,   302,   228,   310,   108,   286,   108,   108,    50,   108,
     4038      36,    37,    39,    65,    71,    75,    78,    79,    80,    81,
     4039      85,    86,    93,   108,   110,   117,   118,   119,   120,   121,
     4040     122,   135,   139,   140,   141,   142,   147,   148,   149,   150,
     4041     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     4042     162,   164,   223,   272,   288,   362,   367,   225,   109,   109,
     4043     109,   109,   109,   109,   109,    73,    74,   110,   223,   268,
     4044     346,   364,   110,   118,   162,   215,   216,   222,   225,   229,
     4045     230,   235,   238,   239,   241,   258,   259,   263,   264,   265,
     4046     266,   280,   346,   358,   359,   360,   361,   366,   367,   111,
     4047     108,   319,   323,   366,   108,   115,   131,   110,   113,   118,
     4048     162,   274,   274,   114,   133,   115,   131,   108,   115,   131,
     4049     115,   131,   115,   131,   308,   131,   315,   316,   317,   318,
     4050     328,   329,   330,   331,   225,   314,   327,    63,   307,   110,
     4051     308,   345,   346,   308,   308,   171,   133,   108,   308,   345,
     4052     308,   308,   225,   305,   108,   108,   224,   225,   223,   225,
     4053     111,   133,   223,   362,   367,   171,   133,   268,   273,   215,
     4054     230,   319,   323,   171,   133,   290,   225,   235,   131,   225,
     4055     225,   288,    39,   110,   223,   245,   246,   247,   248,   362,
     4056     366,   113,   254,   270,   113,   225,   290,   131,   131,   301,
     4057     133,   138,   267,     3,   134,   205,   206,   220,   222,   225,
     4058     133,   307,   108,   307,   162,   315,   225,   108,   133,   268,
     4059     113,    32,    33,    34,   223,   282,   283,   285,   133,   128,
     4060     130,   287,   133,   226,   232,   233,   268,   311,   312,   313,
     4061     108,   140,   108,   147,   108,   147,   149,   108,   147,   108,
     4062     108,   147,   147,   138,   110,   162,   167,   171,   223,   271,
     4063     362,   111,   133,   149,   149,    81,    84,    85,    86,   108,
     4064     110,   112,   113,    96,    97,    98,    99,   100,   101,   102,
     4065     103,   104,   105,   130,   166,   149,   118,   123,   124,   120,
     4066     121,    87,    88,    89,    90,   125,   126,    91,    92,   119,
     4067     127,   128,    93,    94,   129,   130,   369,   108,   118,   341,
     4068     342,   343,   344,   345,   109,   115,   108,   345,   346,   108,
     4069     345,   346,   133,   108,   223,   364,   111,   133,   110,   118,
     4070     134,   223,   225,   357,   358,   366,   367,   134,   108,   110,
     4071     118,   315,   332,   333,   334,   335,   336,   337,   338,   339,
     4072     340,   346,   347,   348,   349,   350,   351,   352,   118,   366,
     4073     225,   134,   134,   118,   223,   225,   359,   268,   223,   346,
     4074     359,   268,   108,   133,   133,   133,   111,   133,    71,    79,
     4075     110,   112,   139,   270,   274,   275,   276,   277,   278,   133,
     4076     133,   133,   133,   133,   133,   305,   109,   109,   109,   109,
     4077     109,   109,   109,   314,   327,   108,   273,   111,   205,   133,
     4078     305,   167,   272,   167,   272,   305,   110,   205,   307,   171,
     4079     133,   205,   109,   247,   248,   111,   133,   108,   116,   118,
     4080     249,   251,   314,   315,   327,   345,   353,   354,   355,   356,
     4081     114,   246,   115,   131,   115,   131,   270,   245,   115,   368,
     4082     130,   255,   254,   225,   260,   261,   262,   265,   266,   109,
     4083     115,   171,   133,   118,   162,   133,   222,   225,   259,   358,
     4084     366,   299,   300,   108,   118,   332,   109,   115,   369,   270,
     4085     282,   108,   113,   270,   272,   282,   109,   115,   108,   140,
     4086     109,   116,   271,   271,   271,   110,   138,   144,   162,   272,
     4087     271,   111,   133,   109,   115,   109,   108,   118,   353,   109,
     4088     115,   162,   110,   138,   110,   143,   144,   133,   110,   138,
     4089     143,   162,   162,   149,   149,   149,   150,   150,   151,   151,
     4090     152,   152,   152,   152,   153,   153,   154,   155,   156,   157,
     4091     158,   116,   167,   162,   133,   342,   343,   344,   225,   341,
     4092     308,   308,   162,   272,   133,   267,   118,   133,   223,   346,
     4093     359,   225,   229,   111,   133,   111,   366,   111,   108,   133,
     4094     315,   333,   334,   335,   338,   348,   349,   350,   111,   133,
     4095     225,   332,   336,   347,   108,   308,   351,   369,   308,   308,
     4096     369,   108,   308,   351,   308,   308,   308,   308,   346,   223,
     4097     357,   367,   268,   111,   115,   111,   115,   369,   223,   359,
     4098     369,   256,   257,   258,   259,   256,   256,   268,   162,   133,
     4099     110,   270,   116,   115,   368,   274,    79,   110,   116,   278,
     4100      28,   207,   208,   268,   256,   138,   305,   138,   307,   108,
     4101     345,   346,   108,   345,   346,   140,   346,   171,   260,   109,
     4102     109,   109,   109,   111,   171,   205,   171,   113,   131,   131,
     4103     110,   315,   354,   355,   356,   160,   161,   225,   353,   250,
     4104     251,   250,   308,   308,   270,   308,   114,   270,   114,   161,
     4105     368,   134,   134,   138,   220,   134,   134,   256,   108,   118,
     4106     366,   134,   114,   225,   283,   284,   134,   133,   133,   108,
     4107     134,   109,   312,   167,   168,   116,   131,   110,   140,   198,
     4108     199,   200,   109,   115,   109,   133,   116,   109,   109,   109,
     4109     162,   225,   113,   149,   164,   162,   163,   165,   115,   134,
     4110     133,   133,   109,   115,   162,   133,   114,   160,   116,   260,
     4111     109,   109,   109,   341,   260,   109,   256,   223,   359,   110,
     4112     118,   162,   162,   225,   338,   260,   109,   109,   109,   109,
     4113     109,   109,   109,     7,   225,   332,   336,   347,   133,   133,
     4114     369,   133,   133,   109,   134,   134,   134,   134,   273,   134,
     4115     160,   161,   162,   306,   133,   274,   276,   114,   133,   209,
     4116     270,    39,    40,    42,    45,    46,    47,    48,    49,    50,
     4117      51,    52,    56,    60,    61,   110,   127,   138,   168,   169,
     4118     170,   171,   172,   173,   175,   176,   188,   190,   191,   196,
     4119     210,   304,    28,   134,   130,   273,   133,   133,   109,   134,
     4120     171,   245,   111,   109,   109,   109,   353,   249,   255,   114,
     4121     109,   115,   111,   111,   134,   225,   115,   369,   286,   109,
     4122     282,   213,   215,   223,   294,   295,   296,   297,   288,   109,
     4123     109,   116,   161,   108,   109,   116,   115,   138,   162,   162,
     4124     275,   115,   134,   165,   111,   138,   145,   146,   162,   144,
     4125     134,   145,   160,   164,   134,   108,   345,   346,   134,   134,
     4126     133,   134,   134,   134,   162,   109,   134,   108,   345,   346,
     4127     108,   351,   108,   351,   346,   224,     7,   118,   134,   162,
     4128     260,   260,   259,   263,   263,   264,   115,   115,   109,   109,
     4129     111,    95,   122,   134,   134,   145,   274,   162,   115,   131,
     4130     210,   214,   225,   229,   108,   108,   169,   108,   108,   131,
     4131     138,   131,   138,   118,   138,   168,   108,   171,   163,   163,
     4132     111,   142,   116,   131,   134,   133,   134,   209,   109,   162,
     4133     260,   260,   308,   109,   114,   108,   345,   346,   133,   109,
     4134     133,   134,   305,   114,   133,   134,   134,   109,   113,   198,
     4135     111,   161,   131,   198,   200,   109,   115,   134,   368,   163,
     4136     111,   134,    84,   112,   115,   134,   134,   111,   134,   109,
     4137     133,   109,   109,   111,   111,   111,   134,   109,   133,   133,
     4138     133,   162,   162,   134,   111,   134,   134,   134,   134,   133,
     4139     133,   161,   161,   111,   111,   134,   134,   270,   225,   167,
     4140     167,    46,   167,   133,   131,   131,   167,   131,   131,   167,
     4141      57,    58,    59,   192,   193,   194,   131,    62,   131,   113,
     4142     308,   173,   114,   131,   134,   134,   133,    95,   265,   266,
     4143     109,   295,   115,   131,   115,   131,   114,   293,   116,   140,
     4144     109,   109,   116,   165,   111,   114,   111,   110,   146,   110,
     4145     146,   146,   111,   111,   111,   260,   111,   260,   260,   260,
     4146     134,   134,   111,   111,   109,   109,   111,   115,    95,   259,
     4147      95,   134,   111,   111,   109,   109,   108,   109,   168,   189,
     4148     210,   131,   109,   108,   108,   171,   194,    57,    58,   162,
     4149     143,   169,   109,   109,   260,   113,   133,   133,   294,   140,
     4150     201,   108,   131,   201,   134,   116,   133,   133,   134,   134,
     4151     134,   134,   111,   111,   133,   134,   111,   169,    43,    44,
     4152     113,   179,   180,   181,   167,   169,   134,   109,   168,   113,
     4153     181,    95,   133,    95,   133,   108,   108,   131,   114,   134,
     4154     133,   268,   305,   114,   115,   116,   161,   109,   111,   162,
     4155     145,   145,   109,   109,   109,   109,   263,    41,   161,   177,
     4156     178,   306,   116,   133,   169,   179,   109,   131,   169,   131,
     4157     133,   109,   133,   109,   133,    95,   133,    95,   133,   131,
     4158     109,   294,   140,   138,   202,   109,   131,   116,   134,   134,
     4159     169,    95,   115,   116,   134,   203,   204,   210,   131,   168,
     4160     168,   203,   171,   195,   223,   362,   171,   195,   109,   133,
     4161     109,   133,   114,   109,   115,   162,   111,   111,   161,   177,
     4162     180,   182,   183,   133,   131,   180,   184,   185,   134,   108,
     4163     118,   305,   353,   138,   134,   171,   195,   171,   195,   108,
     4164     131,   138,   169,   174,   114,   180,   210,   168,    55,   174,
     4165     187,   114,   180,   109,   225,   109,   134,   134,   288,   169,
     4166     174,   131,   186,   187,   174,   187,   171,   171,   109,   109,
     4167     109,   186,   134,   134,   171,   171,   134,   134
    41444168};
    41454169
     
    50145038    break;
    50155039
    5016   case 15:
     5040  case 16:
    50175041
    50185042/* Line 1806 of yacc.c  */
     
    50215045    break;
    50225046
    5023   case 16:
     5047  case 17:
    50245048
    50255049/* Line 1806 of yacc.c  */
     
    50285052    break;
    50295053
    5030   case 17:
     5054  case 18:
    50315055
    50325056/* Line 1806 of yacc.c  */
     
    50355059    break;
    50365060
    5037   case 18:
     5061  case 19:
    50385062
    50395063/* Line 1806 of yacc.c  */
     
    50425066    break;
    50435067
    5044   case 19:
     5068  case 20:
    50455069
    50465070/* Line 1806 of yacc.c  */
     
    50495073    break;
    50505074
    5051   case 20:
     5075  case 21:
    50525076
    50535077/* Line 1806 of yacc.c  */
     
    50565080    break;
    50575081
    5058   case 22:
     5082  case 23:
    50595083
    50605084/* Line 1806 of yacc.c  */
     
    50635087    break;
    50645088
    5065   case 23:
     5089  case 24:
    50665090
    50675091/* Line 1806 of yacc.c  */
     
    50705094    break;
    50715095
    5072   case 24:
    5073 
    5074 /* Line 1806 of yacc.c  */
    5075 #line 360 "parser.yy"
     5096  case 25:
     5097
     5098/* Line 1806 of yacc.c  */
     5099#line 362 "parser.yy"
    50765100    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    50775101    break;
    50785102
    5079   case 26:
    5080 
    5081 /* Line 1806 of yacc.c  */
    5082 #line 363 "parser.yy"
     5103  case 27:
     5104
     5105/* Line 1806 of yacc.c  */
     5106#line 365 "parser.yy"
    50835107    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    50845108    break;
    50855109
    5086   case 28:
    5087 
    5088 /* Line 1806 of yacc.c  */
    5089 #line 366 "parser.yy"
     5110  case 29:
     5111
     5112/* Line 1806 of yacc.c  */
     5113#line 368 "parser.yy"
    50905114    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    50915115    break;
    50925116
    5093   case 29:
    5094 
    5095 /* Line 1806 of yacc.c  */
    5096 #line 368 "parser.yy"
     5117  case 30:
     5118
     5119/* Line 1806 of yacc.c  */
     5120#line 370 "parser.yy"
    50975121    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    50985122    break;
    50995123
    5100   case 30:
    5101 
    5102 /* Line 1806 of yacc.c  */
    5103 #line 370 "parser.yy"
     5124  case 31:
     5125
     5126/* Line 1806 of yacc.c  */
     5127#line 372 "parser.yy"
    51045128    { (yyval.en) = 0; }
    51055129    break;
    51065130
    5107   case 31:
    5108 
    5109 /* Line 1806 of yacc.c  */
    5110 #line 372 "parser.yy"
     5131  case 32:
     5132
     5133/* Line 1806 of yacc.c  */
     5134#line 374 "parser.yy"
    51115135    {
    51125136                        Token fn; fn.str = new std::string( "?{}" ); // location undefined
     
    51155139    break;
    51165140
    5117   case 33:
    5118 
    5119 /* Line 1806 of yacc.c  */
    5120 #line 381 "parser.yy"
     5141  case 34:
     5142
     5143/* Line 1806 of yacc.c  */
     5144#line 383 "parser.yy"
    51215145    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    51225146    break;
    51235147
    5124   case 34:
    5125 
    5126 /* Line 1806 of yacc.c  */
    5127 #line 386 "parser.yy"
     5148  case 35:
     5149
     5150/* Line 1806 of yacc.c  */
     5151#line 388 "parser.yy"
    51285152    { (yyval.en) = 0; }
    51295153    break;
    51305154
    5131   case 36:
    5132 
    5133 /* Line 1806 of yacc.c  */
    5134 #line 389 "parser.yy"
     5155  case 37:
     5156
     5157/* Line 1806 of yacc.c  */
     5158#line 391 "parser.yy"
    51355159    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    51365160    break;
    51375161
    5138   case 37:
    5139 
    5140 /* Line 1806 of yacc.c  */
    5141 #line 394 "parser.yy"
     5162  case 38:
     5163
     5164/* Line 1806 of yacc.c  */
     5165#line 396 "parser.yy"
    51425166    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    51435167    break;
    51445168
    5145   case 38:
    5146 
    5147 /* Line 1806 of yacc.c  */
    5148 #line 396 "parser.yy"
     5169  case 39:
     5170
     5171/* Line 1806 of yacc.c  */
     5172#line 398 "parser.yy"
    51495173    { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
    51505174    break;
    51515175
    5152   case 40:
    5153 
    5154 /* Line 1806 of yacc.c  */
    5155 #line 401 "parser.yy"
     5176  case 41:
     5177
     5178/* Line 1806 of yacc.c  */
     5179#line 403 "parser.yy"
    51565180    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    51575181    break;
    51585182
    5159   case 41:
    5160 
    5161 /* Line 1806 of yacc.c  */
    5162 #line 406 "parser.yy"
     5183  case 42:
     5184
     5185/* Line 1806 of yacc.c  */
     5186#line 408 "parser.yy"
    51635187    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    51645188    break;
    51655189
    5166   case 42:
    5167 
    5168 /* Line 1806 of yacc.c  */
    5169 #line 408 "parser.yy"
     5190  case 43:
     5191
     5192/* Line 1806 of yacc.c  */
     5193#line 412 "parser.yy"
    51705194    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    51715195    break;
    51725196
    5173   case 43:
    5174 
    5175 /* Line 1806 of yacc.c  */
    5176 #line 410 "parser.yy"
     5197  case 44:
     5198
     5199/* Line 1806 of yacc.c  */
     5200#line 414 "parser.yy"
    51775201    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    51785202    break;
    51795203
    5180   case 44:
    5181 
    5182 /* Line 1806 of yacc.c  */
    5183 #line 412 "parser.yy"
     5204  case 45:
     5205
     5206/* Line 1806 of yacc.c  */
     5207#line 416 "parser.yy"
    51845208    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    51855209    break;
    51865210
    5187   case 45:
    5188 
    5189 /* Line 1806 of yacc.c  */
    5190 #line 414 "parser.yy"
     5211  case 46:
     5212
     5213/* Line 1806 of yacc.c  */
     5214#line 418 "parser.yy"
    51915215    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    51925216    break;
    51935217
    5194   case 47:
    5195 
    5196 /* Line 1806 of yacc.c  */
    5197 #line 422 "parser.yy"
     5218  case 48:
     5219
     5220/* Line 1806 of yacc.c  */
     5221#line 426 "parser.yy"
    51985222    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    51995223    break;
    52005224
    5201   case 48:
    5202 
    5203 /* Line 1806 of yacc.c  */
    5204 #line 424 "parser.yy"
     5225  case 49:
     5226
     5227/* Line 1806 of yacc.c  */
     5228#line 428 "parser.yy"
    52055229    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    52065230    break;
    52075231
    5208   case 49:
    5209 
    5210 /* Line 1806 of yacc.c  */
    5211 #line 426 "parser.yy"
     5232  case 50:
     5233
     5234/* Line 1806 of yacc.c  */
     5235#line 430 "parser.yy"
    52125236    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    52135237    break;
    52145238
    5215   case 50:
    5216 
    5217 /* Line 1806 of yacc.c  */
    5218 #line 428 "parser.yy"
     5239  case 51:
     5240
     5241/* Line 1806 of yacc.c  */
     5242#line 432 "parser.yy"
    52195243    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    52205244    break;
    52215245
    5222   case 51:
    5223 
    5224 /* Line 1806 of yacc.c  */
    5225 #line 430 "parser.yy"
     5246  case 52:
     5247
     5248/* Line 1806 of yacc.c  */
     5249#line 434 "parser.yy"
    52265250    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    52275251    break;
    52285252
    5229   case 52:
    5230 
    5231 /* Line 1806 of yacc.c  */
    5232 #line 432 "parser.yy"
     5253  case 53:
     5254
     5255/* Line 1806 of yacc.c  */
     5256#line 436 "parser.yy"
    52335257    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    52345258    break;
    52355259
    5236   case 53:
    5237 
    5238 /* Line 1806 of yacc.c  */
    5239 #line 434 "parser.yy"
     5260  case 54:
     5261
     5262/* Line 1806 of yacc.c  */
     5263#line 438 "parser.yy"
    52405264    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
    52415265    break;
    52425266
    5243   case 54:
    5244 
    5245 /* Line 1806 of yacc.c  */
    5246 #line 436 "parser.yy"
     5267  case 55:
     5268
     5269/* Line 1806 of yacc.c  */
     5270#line 440 "parser.yy"
    52475271    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
    52485272    break;
    52495273
    5250   case 55:
    5251 
    5252 /* Line 1806 of yacc.c  */
    5253 #line 442 "parser.yy"
     5274  case 56:
     5275
     5276/* Line 1806 of yacc.c  */
     5277#line 446 "parser.yy"
    52545278    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    52555279    break;
    52565280
    5257   case 56:
    5258 
    5259 /* Line 1806 of yacc.c  */
    5260 #line 444 "parser.yy"
     5281  case 57:
     5282
     5283/* Line 1806 of yacc.c  */
     5284#line 448 "parser.yy"
    52615285    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    52625286    break;
    52635287
    5264   case 57:
    5265 
    5266 /* Line 1806 of yacc.c  */
    5267 #line 446 "parser.yy"
     5288  case 58:
     5289
     5290/* Line 1806 of yacc.c  */
     5291#line 450 "parser.yy"
    52685292    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
    52695293    break;
    52705294
    5271   case 58:
    5272 
    5273 /* Line 1806 of yacc.c  */
    5274 #line 448 "parser.yy"
     5295  case 59:
     5296
     5297/* Line 1806 of yacc.c  */
     5298#line 452 "parser.yy"
    52755299    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    52765300    break;
    52775301
    5278   case 59:
    5279 
    5280 /* Line 1806 of yacc.c  */
    5281 #line 450 "parser.yy"
     5302  case 60:
     5303
     5304/* Line 1806 of yacc.c  */
     5305#line 454 "parser.yy"
    52825306    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    52835307    break;
    52845308
    5285   case 60:
    5286 
    5287 /* Line 1806 of yacc.c  */
    5288 #line 452 "parser.yy"
     5309  case 61:
     5310
     5311/* Line 1806 of yacc.c  */
     5312#line 456 "parser.yy"
    52895313    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    52905314    break;
    52915315
    5292   case 61:
    5293 
    5294 /* Line 1806 of yacc.c  */
    5295 #line 454 "parser.yy"
     5316  case 62:
     5317
     5318/* Line 1806 of yacc.c  */
     5319#line 458 "parser.yy"
    52965320    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    52975321    break;
    52985322
    5299   case 62:
    5300 
    5301 /* Line 1806 of yacc.c  */
    5302 #line 456 "parser.yy"
     5323  case 63:
     5324
     5325/* Line 1806 of yacc.c  */
     5326#line 460 "parser.yy"
    53035327    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
    53045328    break;
    53055329
    5306   case 63:
    5307 
    5308 /* Line 1806 of yacc.c  */
    5309 #line 458 "parser.yy"
     5330  case 64:
     5331
     5332/* Line 1806 of yacc.c  */
     5333#line 462 "parser.yy"
    53105334    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); }
    53115335    break;
    53125336
    5313   case 64:
    5314 
    5315 /* Line 1806 of yacc.c  */
    5316 #line 462 "parser.yy"
     5337  case 65:
     5338
     5339/* Line 1806 of yacc.c  */
     5340#line 466 "parser.yy"
    53175341    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    53185342    break;
    53195343
    5320   case 65:
    5321 
    5322 /* Line 1806 of yacc.c  */
    5323 #line 463 "parser.yy"
     5344  case 66:
     5345
     5346/* Line 1806 of yacc.c  */
     5347#line 467 "parser.yy"
    53245348    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    53255349    break;
    53265350
    5327   case 66:
    5328 
    5329 /* Line 1806 of yacc.c  */
    5330 #line 464 "parser.yy"
     5351  case 67:
     5352
     5353/* Line 1806 of yacc.c  */
     5354#line 468 "parser.yy"
    53315355    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    53325356    break;
    53335357
    5334   case 67:
    5335 
    5336 /* Line 1806 of yacc.c  */
    5337 #line 465 "parser.yy"
     5358  case 68:
     5359
     5360/* Line 1806 of yacc.c  */
     5361#line 469 "parser.yy"
    53385362    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    53395363    break;
    53405364
    5341   case 69:
    5342 
    5343 /* Line 1806 of yacc.c  */
    5344 #line 471 "parser.yy"
     5365  case 70:
     5366
     5367/* Line 1806 of yacc.c  */
     5368#line 475 "parser.yy"
    53455369    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    53465370    break;
    53475371
    5348   case 70:
    5349 
    5350 /* Line 1806 of yacc.c  */
    5351 #line 473 "parser.yy"
     5372  case 71:
     5373
     5374/* Line 1806 of yacc.c  */
     5375#line 477 "parser.yy"
    53525376    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    53535377    break;
    53545378
    5355   case 72:
    5356 
    5357 /* Line 1806 of yacc.c  */
    5358 #line 479 "parser.yy"
     5379  case 73:
     5380
     5381/* Line 1806 of yacc.c  */
     5382#line 483 "parser.yy"
    53595383    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53605384    break;
    53615385
    5362   case 73:
    5363 
    5364 /* Line 1806 of yacc.c  */
    5365 #line 481 "parser.yy"
     5386  case 74:
     5387
     5388/* Line 1806 of yacc.c  */
     5389#line 485 "parser.yy"
    53665390    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53675391    break;
    53685392
    5369   case 74:
    5370 
    5371 /* Line 1806 of yacc.c  */
    5372 #line 483 "parser.yy"
     5393  case 75:
     5394
     5395/* Line 1806 of yacc.c  */
     5396#line 487 "parser.yy"
    53735397    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53745398    break;
    53755399
    5376   case 76:
    5377 
    5378 /* Line 1806 of yacc.c  */
    5379 #line 489 "parser.yy"
     5400  case 77:
     5401
     5402/* Line 1806 of yacc.c  */
     5403#line 493 "parser.yy"
    53805404    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53815405    break;
    53825406
    5383   case 77:
    5384 
    5385 /* Line 1806 of yacc.c  */
    5386 #line 491 "parser.yy"
     5407  case 78:
     5408
     5409/* Line 1806 of yacc.c  */
     5410#line 495 "parser.yy"
    53875411    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53885412    break;
    53895413
    5390   case 79:
    5391 
    5392 /* Line 1806 of yacc.c  */
    5393 #line 497 "parser.yy"
     5414  case 80:
     5415
     5416/* Line 1806 of yacc.c  */
     5417#line 501 "parser.yy"
    53945418    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53955419    break;
    53965420
    5397   case 80:
    5398 
    5399 /* Line 1806 of yacc.c  */
    5400 #line 499 "parser.yy"
     5421  case 81:
     5422
     5423/* Line 1806 of yacc.c  */
     5424#line 503 "parser.yy"
    54015425    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54025426    break;
    54035427
    5404   case 82:
    5405 
    5406 /* Line 1806 of yacc.c  */
    5407 #line 505 "parser.yy"
     5428  case 83:
     5429
     5430/* Line 1806 of yacc.c  */
     5431#line 509 "parser.yy"
    54085432    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54095433    break;
    54105434
    5411   case 83:
    5412 
    5413 /* Line 1806 of yacc.c  */
    5414 #line 507 "parser.yy"
     5435  case 84:
     5436
     5437/* Line 1806 of yacc.c  */
     5438#line 511 "parser.yy"
    54155439    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54165440    break;
    54175441
    5418   case 84:
    5419 
    5420 /* Line 1806 of yacc.c  */
    5421 #line 509 "parser.yy"
     5442  case 85:
     5443
     5444/* Line 1806 of yacc.c  */
     5445#line 513 "parser.yy"
    54225446    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54235447    break;
    54245448
    5425   case 85:
    5426 
    5427 /* Line 1806 of yacc.c  */
    5428 #line 511 "parser.yy"
     5449  case 86:
     5450
     5451/* Line 1806 of yacc.c  */
     5452#line 515 "parser.yy"
    54295453    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54305454    break;
    54315455
    5432   case 87:
    5433 
    5434 /* Line 1806 of yacc.c  */
    5435 #line 517 "parser.yy"
     5456  case 88:
     5457
     5458/* Line 1806 of yacc.c  */
     5459#line 521 "parser.yy"
    54365460    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54375461    break;
    54385462
    5439   case 88:
    5440 
    5441 /* Line 1806 of yacc.c  */
    5442 #line 519 "parser.yy"
     5463  case 89:
     5464
     5465/* Line 1806 of yacc.c  */
     5466#line 523 "parser.yy"
    54435467    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54445468    break;
    54455469
    5446   case 90:
    5447 
    5448 /* Line 1806 of yacc.c  */
    5449 #line 525 "parser.yy"
     5470  case 91:
     5471
     5472/* Line 1806 of yacc.c  */
     5473#line 529 "parser.yy"
    54505474    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54515475    break;
    54525476
    5453   case 92:
    5454 
    5455 /* Line 1806 of yacc.c  */
    5456 #line 531 "parser.yy"
     5477  case 93:
     5478
     5479/* Line 1806 of yacc.c  */
     5480#line 535 "parser.yy"
    54575481    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54585482    break;
    54595483
    5460   case 94:
    5461 
    5462 /* Line 1806 of yacc.c  */
    5463 #line 537 "parser.yy"
     5484  case 95:
     5485
     5486/* Line 1806 of yacc.c  */
     5487#line 541 "parser.yy"
    54645488    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54655489    break;
    54665490
    5467   case 96:
    5468 
    5469 /* Line 1806 of yacc.c  */
    5470 #line 543 "parser.yy"
     5491  case 97:
     5492
     5493/* Line 1806 of yacc.c  */
     5494#line 547 "parser.yy"
    54715495    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54725496    break;
    54735497
    5474   case 98:
    5475 
    5476 /* Line 1806 of yacc.c  */
    5477 #line 549 "parser.yy"
     5498  case 99:
     5499
     5500/* Line 1806 of yacc.c  */
     5501#line 553 "parser.yy"
    54785502    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54795503    break;
    54805504
    5481   case 100:
    5482 
    5483 /* Line 1806 of yacc.c  */
    5484 #line 555 "parser.yy"
    5485     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    5486     break;
    5487 
    54885505  case 101:
    5489 
    5490 /* Line 1806 of yacc.c  */
    5491 #line 557 "parser.yy"
    5492     { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5493     break;
    5494 
    5495   case 102:
    54965506
    54975507/* Line 1806 of yacc.c  */
     
    55005510    break;
    55015511
    5502   case 105:
    5503 
    5504 /* Line 1806 of yacc.c  */
    5505 #line 570 "parser.yy"
     5512  case 102:
     5513
     5514/* Line 1806 of yacc.c  */
     5515#line 561 "parser.yy"
     5516    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5517    break;
     5518
     5519  case 103:
     5520
     5521/* Line 1806 of yacc.c  */
     5522#line 563 "parser.yy"
     5523    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5524    break;
     5525
     5526  case 106:
     5527
     5528/* Line 1806 of yacc.c  */
     5529#line 574 "parser.yy"
    55065530    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55075531    break;
    55085532
    5509   case 106:
    5510 
    5511 /* Line 1806 of yacc.c  */
    5512 #line 572 "parser.yy"
     5533  case 107:
     5534
     5535/* Line 1806 of yacc.c  */
     5536#line 576 "parser.yy"
    55135537    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55145538    break;
    55155539
    5516   case 107:
    5517 
    5518 /* Line 1806 of yacc.c  */
    5519 #line 574 "parser.yy"
     5540  case 108:
     5541
     5542/* Line 1806 of yacc.c  */
     5543#line 578 "parser.yy"
    55205544    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    55215545    break;
    55225546
    5523   case 108:
    5524 
    5525 /* Line 1806 of yacc.c  */
    5526 #line 579 "parser.yy"
     5547  case 109:
     5548
     5549/* Line 1806 of yacc.c  */
     5550#line 583 "parser.yy"
    55275551    { (yyval.en) = new NullExprNode; }
    55285552    break;
    55295553
    5530   case 110:
    5531 
    5532 /* Line 1806 of yacc.c  */
    5533 #line 587 "parser.yy"
     5554  case 111:
     5555
     5556/* Line 1806 of yacc.c  */
     5557#line 591 "parser.yy"
    55345558    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    55355559    break;
    55365560
    5537   case 111:
    5538 
    5539 /* Line 1806 of yacc.c  */
    5540 #line 589 "parser.yy"
     5561  case 112:
     5562
     5563/* Line 1806 of yacc.c  */
     5564#line 593 "parser.yy"
    55415565    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    55425566    break;
    55435567
    5544   case 112:
    5545 
    5546 /* Line 1806 of yacc.c  */
    5547 #line 591 "parser.yy"
     5568  case 113:
     5569
     5570/* Line 1806 of yacc.c  */
     5571#line 595 "parser.yy"
    55485572    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    55495573    break;
    55505574
    5551   case 113:
    5552 
    5553 /* Line 1806 of yacc.c  */
    5554 #line 593 "parser.yy"
     5575  case 114:
     5576
     5577/* Line 1806 of yacc.c  */
     5578#line 597 "parser.yy"
    55555579    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    55565580    break;
    55575581
    5558   case 115:
    5559 
    5560 /* Line 1806 of yacc.c  */
    5561 #line 599 "parser.yy"
     5582  case 116:
     5583
     5584/* Line 1806 of yacc.c  */
     5585#line 603 "parser.yy"
    55625586    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    55635587    break;
    55645588
    5565   case 116:
    5566 
    5567 /* Line 1806 of yacc.c  */
    5568 #line 603 "parser.yy"
     5589  case 117:
     5590
     5591/* Line 1806 of yacc.c  */
     5592#line 607 "parser.yy"
    55695593    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    55705594    break;
    55715595
    5572   case 117:
    5573 
    5574 /* Line 1806 of yacc.c  */
    5575 #line 604 "parser.yy"
     5596  case 118:
     5597
     5598/* Line 1806 of yacc.c  */
     5599#line 608 "parser.yy"
    55765600    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    55775601    break;
    55785602
    5579   case 118:
    5580 
    5581 /* Line 1806 of yacc.c  */
    5582 #line 605 "parser.yy"
     5603  case 119:
     5604
     5605/* Line 1806 of yacc.c  */
     5606#line 609 "parser.yy"
    55835607    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    55845608    break;
    55855609
    5586   case 119:
    5587 
    5588 /* Line 1806 of yacc.c  */
    5589 #line 606 "parser.yy"
     5610  case 120:
     5611
     5612/* Line 1806 of yacc.c  */
     5613#line 610 "parser.yy"
    55905614    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    55915615    break;
    55925616
    5593   case 120:
    5594 
    5595 /* Line 1806 of yacc.c  */
    5596 #line 607 "parser.yy"
     5617  case 121:
     5618
     5619/* Line 1806 of yacc.c  */
     5620#line 611 "parser.yy"
    55975621    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    55985622    break;
    55995623
    5600   case 121:
    5601 
    5602 /* Line 1806 of yacc.c  */
    5603 #line 608 "parser.yy"
     5624  case 122:
     5625
     5626/* Line 1806 of yacc.c  */
     5627#line 612 "parser.yy"
    56045628    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    56055629    break;
    56065630
    5607   case 122:
    5608 
    5609 /* Line 1806 of yacc.c  */
    5610 #line 609 "parser.yy"
     5631  case 123:
     5632
     5633/* Line 1806 of yacc.c  */
     5634#line 613 "parser.yy"
    56115635    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    56125636    break;
    56135637
    5614   case 123:
    5615 
    5616 /* Line 1806 of yacc.c  */
    5617 #line 610 "parser.yy"
     5638  case 124:
     5639
     5640/* Line 1806 of yacc.c  */
     5641#line 614 "parser.yy"
    56185642    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    56195643    break;
    56205644
    5621   case 124:
    5622 
    5623 /* Line 1806 of yacc.c  */
    5624 #line 611 "parser.yy"
     5645  case 125:
     5646
     5647/* Line 1806 of yacc.c  */
     5648#line 615 "parser.yy"
    56255649    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    56265650    break;
    56275651
    5628   case 125:
    5629 
    5630 /* Line 1806 of yacc.c  */
    5631 #line 612 "parser.yy"
     5652  case 126:
     5653
     5654/* Line 1806 of yacc.c  */
     5655#line 616 "parser.yy"
    56325656    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    56335657    break;
    56345658
    5635   case 127:
    5636 
    5637 /* Line 1806 of yacc.c  */
    5638 #line 618 "parser.yy"
     5659  case 128:
     5660
     5661/* Line 1806 of yacc.c  */
     5662#line 622 "parser.yy"
    56395663    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56405664    break;
    56415665
    5642   case 128:
    5643 
    5644 /* Line 1806 of yacc.c  */
    5645 #line 623 "parser.yy"
     5666  case 129:
     5667
     5668/* Line 1806 of yacc.c  */
     5669#line 627 "parser.yy"
    56465670    { (yyval.en) = 0; }
    56475671    break;
    56485672
    5649   case 132:
    5650 
    5651 /* Line 1806 of yacc.c  */
    5652 #line 632 "parser.yy"
     5673  case 133:
     5674
     5675/* Line 1806 of yacc.c  */
     5676#line 636 "parser.yy"
    56535677    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56545678    break;
    56555679
    5656   case 138:
    5657 
    5658 /* Line 1806 of yacc.c  */
    5659 #line 639 "parser.yy"
     5680  case 139:
     5681
     5682/* Line 1806 of yacc.c  */
     5683#line 643 "parser.yy"
    56605684    {
    56615685                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
     
    56655689    break;
    56665690
    5667   case 139:
    5668 
    5669 /* Line 1806 of yacc.c  */
    5670 #line 648 "parser.yy"
     5691  case 140:
     5692
     5693/* Line 1806 of yacc.c  */
     5694#line 652 "parser.yy"
    56715695    {
    56725696                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56745698    break;
    56755699
    5676   case 140:
    5677 
    5678 /* Line 1806 of yacc.c  */
    5679 #line 655 "parser.yy"
     5700  case 141:
     5701
     5702/* Line 1806 of yacc.c  */
     5703#line 659 "parser.yy"
    56805704    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    56815705    break;
    56825706
    5683   case 141:
    5684 
    5685 /* Line 1806 of yacc.c  */
    5686 #line 662 "parser.yy"
     5707  case 142:
     5708
     5709/* Line 1806 of yacc.c  */
     5710#line 666 "parser.yy"
    56875711    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    56885712    break;
    56895713
    5690   case 143:
    5691 
    5692 /* Line 1806 of yacc.c  */
    5693 #line 668 "parser.yy"
     5714  case 144:
     5715
     5716/* Line 1806 of yacc.c  */
     5717#line 672 "parser.yy"
    56945718    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56955719    break;
    56965720
    5697   case 144:
    5698 
    5699 /* Line 1806 of yacc.c  */
    5700 #line 673 "parser.yy"
    5701     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    5702     break;
    5703 
    57045721  case 145:
    5705 
    5706 /* Line 1806 of yacc.c  */
    5707 #line 675 "parser.yy"
    5708     { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    5709     break;
    5710 
    5711   case 146:
    57125722
    57135723/* Line 1806 of yacc.c  */
     
    57165726    break;
    57175727
    5718   case 149:
    5719 
    5720 /* Line 1806 of yacc.c  */
    5721 #line 684 "parser.yy"
     5728  case 146:
     5729
     5730/* Line 1806 of yacc.c  */
     5731#line 679 "parser.yy"
     5732    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
     5733    break;
     5734
     5735  case 147:
     5736
     5737/* Line 1806 of yacc.c  */
     5738#line 681 "parser.yy"
     5739    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5740    break;
     5741
     5742  case 150:
     5743
     5744/* Line 1806 of yacc.c  */
     5745#line 688 "parser.yy"
    57225746    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57235747    break;
    57245748
    5725   case 150:
    5726 
    5727 /* Line 1806 of yacc.c  */
    5728 #line 689 "parser.yy"
     5749  case 151:
     5750
     5751/* Line 1806 of yacc.c  */
     5752#line 693 "parser.yy"
    57295753    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    57305754    break;
    57315755
    5732   case 151:
    5733 
    5734 /* Line 1806 of yacc.c  */
    5735 #line 695 "parser.yy"
     5756  case 152:
     5757
     5758/* Line 1806 of yacc.c  */
     5759#line 699 "parser.yy"
    57365760    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57375761    break;
    57385762
    5739   case 152:
    5740 
    5741 /* Line 1806 of yacc.c  */
    5742 #line 697 "parser.yy"
     5763  case 153:
     5764
     5765/* Line 1806 of yacc.c  */
     5766#line 701 "parser.yy"
    57435767    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    57445768    break;
    57455769
    5746   case 153:
    5747 
    5748 /* Line 1806 of yacc.c  */
    5749 #line 699 "parser.yy"
     5770  case 154:
     5771
     5772/* Line 1806 of yacc.c  */
     5773#line 703 "parser.yy"
    57505774    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57515775    break;
    57525776
    5753   case 154:
    5754 
    5755 /* Line 1806 of yacc.c  */
    5756 #line 701 "parser.yy"
     5777  case 155:
     5778
     5779/* Line 1806 of yacc.c  */
     5780#line 705 "parser.yy"
    57575781    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    57585782    break;
    57595783
    5760   case 155:
    5761 
    5762 /* Line 1806 of yacc.c  */
    5763 #line 706 "parser.yy"
     5784  case 156:
     5785
     5786/* Line 1806 of yacc.c  */
     5787#line 710 "parser.yy"
    57645788    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57655789    break;
    57665790
    5767   case 156:
    5768 
    5769 /* Line 1806 of yacc.c  */
    5770 #line 708 "parser.yy"
     5791  case 157:
     5792
     5793/* Line 1806 of yacc.c  */
     5794#line 712 "parser.yy"
    57715795    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    57725796    break;
    57735797
    5774   case 157:
    5775 
    5776 /* Line 1806 of yacc.c  */
    5777 #line 715 "parser.yy"
     5798  case 158:
     5799
     5800/* Line 1806 of yacc.c  */
     5801#line 719 "parser.yy"
    57785802    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57795803    break;
    57805804
    5781   case 158:
    5782 
    5783 /* Line 1806 of yacc.c  */
    5784 #line 717 "parser.yy"
     5805  case 159:
     5806
     5807/* Line 1806 of yacc.c  */
     5808#line 721 "parser.yy"
    57855809    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57865810    break;
    57875811
    5788   case 161:
    5789 
    5790 /* Line 1806 of yacc.c  */
    5791 #line 724 "parser.yy"
     5812  case 162:
     5813
     5814/* Line 1806 of yacc.c  */
     5815#line 728 "parser.yy"
    57925816    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    57935817    break;
    57945818
    5795   case 162:
    5796 
    5797 /* Line 1806 of yacc.c  */
    5798 #line 728 "parser.yy"
     5819  case 163:
     5820
     5821/* Line 1806 of yacc.c  */
     5822#line 732 "parser.yy"
    57995823    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    58005824    break;
    58015825
    5802   case 163:
    5803 
    5804 /* Line 1806 of yacc.c  */
    5805 #line 729 "parser.yy"
     5826  case 164:
     5827
     5828/* Line 1806 of yacc.c  */
     5829#line 733 "parser.yy"
    58065830    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    58075831    break;
    58085832
    5809   case 165:
    5810 
    5811 /* Line 1806 of yacc.c  */
    5812 #line 735 "parser.yy"
     5833  case 166:
     5834
     5835/* Line 1806 of yacc.c  */
     5836#line 739 "parser.yy"
    58135837    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    58145838    break;
    58155839
    5816   case 166:
    5817 
    5818 /* Line 1806 of yacc.c  */
    5819 #line 739 "parser.yy"
     5840  case 167:
     5841
     5842/* Line 1806 of yacc.c  */
     5843#line 743 "parser.yy"
    58205844    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58215845    break;
    58225846
    5823   case 167:
    5824 
    5825 /* Line 1806 of yacc.c  */
    5826 #line 744 "parser.yy"
     5847  case 168:
     5848
     5849/* Line 1806 of yacc.c  */
     5850#line 748 "parser.yy"
    58275851    { (yyval.sn) = 0; }
    58285852    break;
    58295853
    5830   case 169:
    5831 
    5832 /* Line 1806 of yacc.c  */
    5833 #line 750 "parser.yy"
     5854  case 170:
     5855
     5856/* Line 1806 of yacc.c  */
     5857#line 754 "parser.yy"
    58345858    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58355859    break;
    58365860
    5837   case 170:
    5838 
    5839 /* Line 1806 of yacc.c  */
    5840 #line 752 "parser.yy"
     5861  case 171:
     5862
     5863/* Line 1806 of yacc.c  */
     5864#line 756 "parser.yy"
    58415865    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58425866    break;
    58435867
    5844   case 171:
    5845 
    5846 /* Line 1806 of yacc.c  */
    5847 #line 757 "parser.yy"
     5868  case 172:
     5869
     5870/* Line 1806 of yacc.c  */
     5871#line 761 "parser.yy"
    58485872    { (yyval.sn) = 0; }
    58495873    break;
    58505874
    5851   case 173:
    5852 
    5853 /* Line 1806 of yacc.c  */
    5854 #line 763 "parser.yy"
     5875  case 174:
     5876
     5877/* Line 1806 of yacc.c  */
     5878#line 767 "parser.yy"
    58555879    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58565880    break;
    58575881
    5858   case 174:
    5859 
    5860 /* Line 1806 of yacc.c  */
    5861 #line 765 "parser.yy"
     5882  case 175:
     5883
     5884/* Line 1806 of yacc.c  */
     5885#line 769 "parser.yy"
    58625886    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    58635887    break;
    58645888
    5865   case 175:
    5866 
    5867 /* Line 1806 of yacc.c  */
    5868 #line 767 "parser.yy"
     5889  case 176:
     5890
     5891/* Line 1806 of yacc.c  */
     5892#line 771 "parser.yy"
    58695893    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58705894    break;
    58715895
    5872   case 176:
    5873 
    5874 /* Line 1806 of yacc.c  */
    5875 #line 769 "parser.yy"
     5896  case 177:
     5897
     5898/* Line 1806 of yacc.c  */
     5899#line 773 "parser.yy"
    58765900    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
    58775901    break;
    58785902
    5879   case 177:
    5880 
    5881 /* Line 1806 of yacc.c  */
    5882 #line 774 "parser.yy"
     5903  case 178:
     5904
     5905/* Line 1806 of yacc.c  */
     5906#line 778 "parser.yy"
    58835907    { (yyval.sn) = 0; }
    58845908    break;
    58855909
    5886   case 179:
    5887 
    5888 /* Line 1806 of yacc.c  */
    5889 #line 779 "parser.yy"
     5910  case 180:
     5911
     5912/* Line 1806 of yacc.c  */
     5913#line 783 "parser.yy"
    58905914    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    58915915    break;
    58925916
    5893   case 180:
    5894 
    5895 /* Line 1806 of yacc.c  */
    5896 #line 780 "parser.yy"
     5917  case 181:
     5918
     5919/* Line 1806 of yacc.c  */
     5920#line 784 "parser.yy"
    58975921    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    58985922    break;
    58995923
    5900   case 181:
    5901 
    5902 /* Line 1806 of yacc.c  */
    5903 #line 785 "parser.yy"
     5924  case 182:
     5925
     5926/* Line 1806 of yacc.c  */
     5927#line 789 "parser.yy"
    59045928    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    59055929    break;
    59065930
    5907   case 182:
    5908 
    5909 /* Line 1806 of yacc.c  */
    5910 #line 787 "parser.yy"
     5931  case 183:
     5932
     5933/* Line 1806 of yacc.c  */
     5934#line 791 "parser.yy"
    59115935    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    59125936    break;
    59135937
    5914   case 183:
    5915 
    5916 /* Line 1806 of yacc.c  */
    5917 #line 789 "parser.yy"
     5938  case 184:
     5939
     5940/* Line 1806 of yacc.c  */
     5941#line 793 "parser.yy"
    59185942    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    59195943    break;
    59205944
    5921   case 184:
    5922 
    5923 /* Line 1806 of yacc.c  */
    5924 #line 794 "parser.yy"
     5945  case 185:
     5946
     5947/* Line 1806 of yacc.c  */
     5948#line 798 "parser.yy"
    59255949    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59265950    break;
    59275951
    5928   case 185:
    5929 
    5930 /* Line 1806 of yacc.c  */
    5931 #line 796 "parser.yy"
     5952  case 186:
     5953
     5954/* Line 1806 of yacc.c  */
     5955#line 800 "parser.yy"
    59325956    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59335957    break;
    59345958
    5935   case 186:
    5936 
    5937 /* Line 1806 of yacc.c  */
    5938 #line 801 "parser.yy"
     5959  case 187:
     5960
     5961/* Line 1806 of yacc.c  */
     5962#line 805 "parser.yy"
    59395963    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    59405964    break;
    59415965
    5942   case 187:
    5943 
    5944 /* Line 1806 of yacc.c  */
    5945 #line 805 "parser.yy"
     5966  case 188:
     5967
     5968/* Line 1806 of yacc.c  */
     5969#line 809 "parser.yy"
    59465970    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    59475971    break;
    59485972
    5949   case 188:
    5950 
    5951 /* Line 1806 of yacc.c  */
    5952 #line 808 "parser.yy"
     5973  case 189:
     5974
     5975/* Line 1806 of yacc.c  */
     5976#line 812 "parser.yy"
    59535977    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    59545978    break;
    59555979
    5956   case 189:
    5957 
    5958 /* Line 1806 of yacc.c  */
    5959 #line 812 "parser.yy"
     5980  case 190:
     5981
     5982/* Line 1806 of yacc.c  */
     5983#line 816 "parser.yy"
    59605984    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    59615985    break;
    59625986
    5963   case 190:
    5964 
    5965 /* Line 1806 of yacc.c  */
    5966 #line 815 "parser.yy"
     5987  case 191:
     5988
     5989/* Line 1806 of yacc.c  */
     5990#line 819 "parser.yy"
    59675991    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    59685992    break;
    59695993
    5970   case 191:
    5971 
    5972 /* Line 1806 of yacc.c  */
    5973 #line 819 "parser.yy"
     5994  case 192:
     5995
     5996/* Line 1806 of yacc.c  */
     5997#line 823 "parser.yy"
    59745998    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    59755999    break;
    59766000
    5977   case 192:
    5978 
    5979 /* Line 1806 of yacc.c  */
    5980 #line 821 "parser.yy"
     6001  case 193:
     6002
     6003/* Line 1806 of yacc.c  */
     6004#line 825 "parser.yy"
    59816005    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    5982     break;
    5983 
    5984   case 193:
    5985 
    5986 /* Line 1806 of yacc.c  */
    5987 #line 823 "parser.yy"
    5988     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    59896006    break;
    59906007
     
    59996016
    60006017/* Line 1806 of yacc.c  */
    6001 #line 829 "parser.yy"
     6018#line 831 "parser.yy"
     6019    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
     6020    break;
     6021
     6022  case 196:
     6023
     6024/* Line 1806 of yacc.c  */
     6025#line 833 "parser.yy"
    60026026    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    60036027    break;
    60046028
    6005   case 196:
    6006 
    6007 /* Line 1806 of yacc.c  */
    6008 #line 836 "parser.yy"
     6029  case 197:
     6030
     6031/* Line 1806 of yacc.c  */
     6032#line 840 "parser.yy"
    60096033    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60106034    break;
    60116035
    6012   case 197:
    6013 
    6014 /* Line 1806 of yacc.c  */
    6015 #line 838 "parser.yy"
     6036  case 198:
     6037
     6038/* Line 1806 of yacc.c  */
     6039#line 842 "parser.yy"
    60166040    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60176041    break;
    60186042
    6019   case 198:
    6020 
    6021 /* Line 1806 of yacc.c  */
    6022 #line 840 "parser.yy"
     6043  case 199:
     6044
     6045/* Line 1806 of yacc.c  */
     6046#line 844 "parser.yy"
    60236047    {
    60246048                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    60276051    break;
    60286052
    6029   case 200:
    6030 
    6031 /* Line 1806 of yacc.c  */
    6032 #line 851 "parser.yy"
    6033     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    6034     break;
    6035 
    60366053  case 201:
    6037 
    6038 /* Line 1806 of yacc.c  */
    6039 #line 853 "parser.yy"
    6040     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    6041     break;
    6042 
    6043   case 202:
    60446054
    60456055/* Line 1806 of yacc.c  */
     
    60486058    break;
    60496059
    6050   case 203:
     6060  case 202:
    60516061
    60526062/* Line 1806 of yacc.c  */
     
    60556065    break;
    60566066
     6067  case 203:
     6068
     6069/* Line 1806 of yacc.c  */
     6070#line 859 "parser.yy"
     6071    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
     6072    break;
     6073
    60576074  case 204:
    60586075
    60596076/* Line 1806 of yacc.c  */
    6060 #line 862 "parser.yy"
    6061     { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
     6077#line 861 "parser.yy"
     6078    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60626079    break;
    60636080
    60646081  case 205:
    6065 
    6066 /* Line 1806 of yacc.c  */
    6067 #line 864 "parser.yy"
    6068     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    6069     break;
    6070 
    6071   case 206:
    60726082
    60736083/* Line 1806 of yacc.c  */
     
    60766086    break;
    60776087
    6078   case 207:
     6088  case 206:
    60796089
    60806090/* Line 1806 of yacc.c  */
     
    60836093    break;
    60846094
     6095  case 207:
     6096
     6097/* Line 1806 of yacc.c  */
     6098#line 870 "parser.yy"
     6099    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
     6100    break;
     6101
    60856102  case 208:
    60866103
    60876104/* Line 1806 of yacc.c  */
    6088 #line 873 "parser.yy"
     6105#line 872 "parser.yy"
     6106    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
     6107    break;
     6108
     6109  case 209:
     6110
     6111/* Line 1806 of yacc.c  */
     6112#line 877 "parser.yy"
    60896113    {
    60906114                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    60936117    break;
    60946118
    6095   case 210:
    6096 
    6097 /* Line 1806 of yacc.c  */
    6098 #line 887 "parser.yy"
     6119  case 211:
     6120
     6121/* Line 1806 of yacc.c  */
     6122#line 891 "parser.yy"
    60996123    {
    61006124                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61036127    break;
    61046128
    6105   case 211:
    6106 
    6107 /* Line 1806 of yacc.c  */
    6108 #line 892 "parser.yy"
     6129  case 212:
     6130
     6131/* Line 1806 of yacc.c  */
     6132#line 896 "parser.yy"
    61096133    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61106134    break;
    61116135
    6112   case 212:
    6113 
    6114 /* Line 1806 of yacc.c  */
    6115 #line 894 "parser.yy"
     6136  case 213:
     6137
     6138/* Line 1806 of yacc.c  */
     6139#line 898 "parser.yy"
    61166140    {
    61176141                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61206144    break;
    61216145
    6122   case 214:
    6123 
    6124 /* Line 1806 of yacc.c  */
    6125 #line 903 "parser.yy"
     6146  case 215:
     6147
     6148/* Line 1806 of yacc.c  */
     6149#line 907 "parser.yy"
    61266150    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    61276151    break;
    61286152
    6129   case 215:
    6130 
    6131 /* Line 1806 of yacc.c  */
    6132 #line 905 "parser.yy"
     6153  case 216:
     6154
     6155/* Line 1806 of yacc.c  */
     6156#line 909 "parser.yy"
    61336157    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    61346158    break;
    61356159
    6136   case 216:
    6137 
    6138 /* Line 1806 of yacc.c  */
    6139 #line 907 "parser.yy"
     6160  case 217:
     6161
     6162/* Line 1806 of yacc.c  */
     6163#line 911 "parser.yy"
    61406164    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    61416165    break;
    61426166
    6143   case 217:
    6144 
    6145 /* Line 1806 of yacc.c  */
    6146 #line 909 "parser.yy"
     6167  case 218:
     6168
     6169/* Line 1806 of yacc.c  */
     6170#line 913 "parser.yy"
    61476171    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    61486172    break;
    61496173
    6150   case 218:
    6151 
    6152 /* Line 1806 of yacc.c  */
    6153 #line 911 "parser.yy"
     6174  case 219:
     6175
     6176/* Line 1806 of yacc.c  */
     6177#line 915 "parser.yy"
    61546178    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    61556179    break;
    61566180
    6157   case 219:
    6158 
    6159 /* Line 1806 of yacc.c  */
    6160 #line 916 "parser.yy"
     6181  case 220:
     6182
     6183/* Line 1806 of yacc.c  */
     6184#line 920 "parser.yy"
    61616185    { (yyval.flag) = false; }
    61626186    break;
    61636187
    6164   case 220:
    6165 
    6166 /* Line 1806 of yacc.c  */
    6167 #line 918 "parser.yy"
     6188  case 221:
     6189
     6190/* Line 1806 of yacc.c  */
     6191#line 922 "parser.yy"
    61686192    { (yyval.flag) = true; }
    61696193    break;
    61706194
    6171   case 221:
    6172 
    6173 /* Line 1806 of yacc.c  */
    6174 #line 923 "parser.yy"
     6195  case 222:
     6196
     6197/* Line 1806 of yacc.c  */
     6198#line 927 "parser.yy"
    61756199    { (yyval.en) = 0; }
    61766200    break;
    61776201
    6178   case 224:
    6179 
    6180 /* Line 1806 of yacc.c  */
    6181 #line 930 "parser.yy"
     6202  case 225:
     6203
     6204/* Line 1806 of yacc.c  */
     6205#line 934 "parser.yy"
    61826206    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    61836207    break;
    61846208
    6185   case 225:
    6186 
    6187 /* Line 1806 of yacc.c  */
    6188 #line 935 "parser.yy"
     6209  case 226:
     6210
     6211/* Line 1806 of yacc.c  */
     6212#line 939 "parser.yy"
    61896213    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    61906214    break;
    61916215
    6192   case 226:
    6193 
    6194 /* Line 1806 of yacc.c  */
    6195 #line 937 "parser.yy"
     6216  case 227:
     6217
     6218/* Line 1806 of yacc.c  */
     6219#line 941 "parser.yy"
    61966220    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    61976221    break;
    61986222
    6199   case 227:
    6200 
    6201 /* Line 1806 of yacc.c  */
    6202 #line 942 "parser.yy"
     6223  case 228:
     6224
     6225/* Line 1806 of yacc.c  */
     6226#line 946 "parser.yy"
    62036227    { (yyval.constant) = 0; }
    62046228    break;
    62056229
    6206   case 228:
    6207 
    6208 /* Line 1806 of yacc.c  */
    6209 #line 944 "parser.yy"
     6230  case 229:
     6231
     6232/* Line 1806 of yacc.c  */
     6233#line 948 "parser.yy"
    62106234    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    62116235    break;
    62126236
    6213   case 229:
    6214 
    6215 /* Line 1806 of yacc.c  */
    6216 #line 946 "parser.yy"
     6237  case 230:
     6238
     6239/* Line 1806 of yacc.c  */
     6240#line 950 "parser.yy"
    62176241    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    62186242    break;
    62196243
    6220   case 230:
    6221 
    6222 /* Line 1806 of yacc.c  */
    6223 #line 951 "parser.yy"
     6244  case 231:
     6245
     6246/* Line 1806 of yacc.c  */
     6247#line 955 "parser.yy"
    62246248    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    62256249    break;
    62266250
    6227   case 231:
    6228 
    6229 /* Line 1806 of yacc.c  */
    6230 #line 953 "parser.yy"
     6251  case 232:
     6252
     6253/* Line 1806 of yacc.c  */
     6254#line 957 "parser.yy"
    62316255    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    62326256    break;
    62336257
    6234   case 232:
    6235 
    6236 /* Line 1806 of yacc.c  */
    6237 #line 960 "parser.yy"
     6258  case 233:
     6259
     6260/* Line 1806 of yacc.c  */
     6261#line 964 "parser.yy"
    62386262    { (yyval.decl) = 0; }
    62396263    break;
    62406264
    6241   case 235:
    6242 
    6243 /* Line 1806 of yacc.c  */
    6244 #line 967 "parser.yy"
     6265  case 236:
     6266
     6267/* Line 1806 of yacc.c  */
     6268#line 971 "parser.yy"
    62456269    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62466270    break;
    62476271
    6248   case 236:
    6249 
    6250 /* Line 1806 of yacc.c  */
    6251 #line 972 "parser.yy"
     6272  case 237:
     6273
     6274/* Line 1806 of yacc.c  */
     6275#line 976 "parser.yy"
    62526276    { (yyval.decl) = 0; }
    62536277    break;
    62546278
    6255   case 239:
    6256 
    6257 /* Line 1806 of yacc.c  */
    6258 #line 979 "parser.yy"
     6279  case 240:
     6280
     6281/* Line 1806 of yacc.c  */
     6282#line 983 "parser.yy"
    62596283    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62606284    break;
    62616285
    6262   case 244:
    6263 
    6264 /* Line 1806 of yacc.c  */
    6265 #line 993 "parser.yy"
     6286  case 245:
     6287
     6288/* Line 1806 of yacc.c  */
     6289#line 997 "parser.yy"
    62666290    {}
    62676291    break;
    62686292
    6269   case 245:
    6270 
    6271 /* Line 1806 of yacc.c  */
    6272 #line 994 "parser.yy"
     6293  case 246:
     6294
     6295/* Line 1806 of yacc.c  */
     6296#line 998 "parser.yy"
    62736297    {}
    62746298    break;
    62756299
    6276   case 253:
    6277 
    6278 /* Line 1806 of yacc.c  */
    6279 #line 1023 "parser.yy"
     6300  case 254:
     6301
     6302/* Line 1806 of yacc.c  */
     6303#line 1027 "parser.yy"
    62806304    {
    62816305                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62846308    break;
    62856309
    6286   case 254:
    6287 
    6288 /* Line 1806 of yacc.c  */
    6289 #line 1030 "parser.yy"
     6310  case 255:
     6311
     6312/* Line 1806 of yacc.c  */
     6313#line 1034 "parser.yy"
    62906314    {
    62916315                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62946318    break;
    62956319
    6296   case 255:
    6297 
    6298 /* Line 1806 of yacc.c  */
    6299 #line 1035 "parser.yy"
     6320  case 256:
     6321
     6322/* Line 1806 of yacc.c  */
     6323#line 1039 "parser.yy"
    63006324    {
    63016325                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63046328    break;
    63056329
    6306   case 256:
    6307 
    6308 /* Line 1806 of yacc.c  */
    6309 #line 1045 "parser.yy"
     6330  case 257:
     6331
     6332/* Line 1806 of yacc.c  */
     6333#line 1049 "parser.yy"
    63106334    {
    63116335                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63146338    break;
    63156339
    6316   case 257:
    6317 
    6318 /* Line 1806 of yacc.c  */
    6319 #line 1050 "parser.yy"
     6340  case 258:
     6341
     6342/* Line 1806 of yacc.c  */
     6343#line 1054 "parser.yy"
    63206344    {
    63216345                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63246348    break;
    63256349
    6326   case 258:
    6327 
    6328 /* Line 1806 of yacc.c  */
    6329 #line 1055 "parser.yy"
     6350  case 259:
     6351
     6352/* Line 1806 of yacc.c  */
     6353#line 1059 "parser.yy"
    63306354    {
    63316355                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63346358    break;
    63356359
    6336   case 259:
    6337 
    6338 /* Line 1806 of yacc.c  */
    6339 #line 1063 "parser.yy"
     6360  case 260:
     6361
     6362/* Line 1806 of yacc.c  */
     6363#line 1067 "parser.yy"
    63406364    {
    63416365                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63446368    break;
    63456369
    6346   case 260:
    6347 
    6348 /* Line 1806 of yacc.c  */
    6349 #line 1068 "parser.yy"
     6370  case 261:
     6371
     6372/* Line 1806 of yacc.c  */
     6373#line 1072 "parser.yy"
    63506374    {
    63516375                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63546378    break;
    63556379
    6356   case 261:
    6357 
    6358 /* Line 1806 of yacc.c  */
    6359 #line 1073 "parser.yy"
     6380  case 262:
     6381
     6382/* Line 1806 of yacc.c  */
     6383#line 1077 "parser.yy"
    63606384    {
    63616385                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63646388    break;
    63656389
    6366   case 262:
    6367 
    6368 /* Line 1806 of yacc.c  */
    6369 #line 1078 "parser.yy"
     6390  case 263:
     6391
     6392/* Line 1806 of yacc.c  */
     6393#line 1082 "parser.yy"
    63706394    {
    63716395                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63746398    break;
    63756399
    6376   case 263:
    6377 
    6378 /* Line 1806 of yacc.c  */
    6379 #line 1083 "parser.yy"
     6400  case 264:
     6401
     6402/* Line 1806 of yacc.c  */
     6403#line 1087 "parser.yy"
    63806404    {
    63816405                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63846408    break;
    63856409
    6386   case 264:
    6387 
    6388 /* Line 1806 of yacc.c  */
    6389 #line 1091 "parser.yy"
     6410  case 265:
     6411
     6412/* Line 1806 of yacc.c  */
     6413#line 1095 "parser.yy"
    63906414    {
    63916415                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
    6392                 }
    6393     break;
    6394 
    6395   case 265:
    6396 
    6397 /* Line 1806 of yacc.c  */
    6398 #line 1114 "parser.yy"
    6399     {
    6400                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
    64016416                }
    64026417    break;
     
    64146429
    64156430/* Line 1806 of yacc.c  */
    6416 #line 1125 "parser.yy"
     6431#line 1122 "parser.yy"
     6432    {
     6433                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     6434                }
     6435    break;
     6436
     6437  case 268:
     6438
     6439/* Line 1806 of yacc.c  */
     6440#line 1129 "parser.yy"
    64176441    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64186442    break;
    64196443
    6420   case 268:
    6421 
    6422 /* Line 1806 of yacc.c  */
    6423 #line 1129 "parser.yy"
     6444  case 269:
     6445
     6446/* Line 1806 of yacc.c  */
     6447#line 1133 "parser.yy"
    64246448    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64256449    break;
    64266450
    6427   case 269:
    6428 
    6429 /* Line 1806 of yacc.c  */
    6430 #line 1134 "parser.yy"
     6451  case 270:
     6452
     6453/* Line 1806 of yacc.c  */
     6454#line 1138 "parser.yy"
    64316455    {
    64326456                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64356459    break;
    64366460
    6437   case 270:
    6438 
    6439 /* Line 1806 of yacc.c  */
    6440 #line 1139 "parser.yy"
     6461  case 271:
     6462
     6463/* Line 1806 of yacc.c  */
     6464#line 1143 "parser.yy"
    64416465    {
    64426466                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64456469    break;
    64466470
    6447   case 271:
    6448 
    6449 /* Line 1806 of yacc.c  */
    6450 #line 1144 "parser.yy"
     6471  case 272:
     6472
     6473/* Line 1806 of yacc.c  */
     6474#line 1148 "parser.yy"
    64516475    {
    64526476                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64556479    break;
    64566480
    6457   case 272:
    6458 
    6459 /* Line 1806 of yacc.c  */
    6460 #line 1155 "parser.yy"
     6481  case 273:
     6482
     6483/* Line 1806 of yacc.c  */
     6484#line 1159 "parser.yy"
    64616485    {
    64626486                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64656489    break;
    64666490
    6467   case 273:
    6468 
    6469 /* Line 1806 of yacc.c  */
    6470 #line 1160 "parser.yy"
     6491  case 274:
     6492
     6493/* Line 1806 of yacc.c  */
     6494#line 1164 "parser.yy"
    64716495    {
    64726496                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64756499    break;
    64766500
    6477   case 274:
    6478 
    6479 /* Line 1806 of yacc.c  */
    6480 #line 1165 "parser.yy"
     6501  case 275:
     6502
     6503/* Line 1806 of yacc.c  */
     6504#line 1169 "parser.yy"
    64816505    {
    64826506                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64856509    break;
    64866510
    6487   case 275:
    6488 
    6489 /* Line 1806 of yacc.c  */
    6490 #line 1170 "parser.yy"
     6511  case 276:
     6512
     6513/* Line 1806 of yacc.c  */
     6514#line 1174 "parser.yy"
    64916515    {
    64926516                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64956519    break;
    64966520
    6497   case 276:
    6498 
    6499 /* Line 1806 of yacc.c  */
    6500 #line 1175 "parser.yy"
     6521  case 277:
     6522
     6523/* Line 1806 of yacc.c  */
     6524#line 1179 "parser.yy"
    65016525    {
    65026526                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65056529    break;
    65066530
    6507   case 277:
    6508 
    6509 /* Line 1806 of yacc.c  */
    6510 #line 1184 "parser.yy"
     6531  case 278:
     6532
     6533/* Line 1806 of yacc.c  */
     6534#line 1188 "parser.yy"
    65116535    {
    65126536                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65156539    break;
    65166540
    6517   case 278:
    6518 
    6519 /* Line 1806 of yacc.c  */
    6520 #line 1189 "parser.yy"
     6541  case 279:
     6542
     6543/* Line 1806 of yacc.c  */
     6544#line 1193 "parser.yy"
    65216545    {
    65226546                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65256549    break;
    65266550
    6527   case 283:
    6528 
    6529 /* Line 1806 of yacc.c  */
    6530 #line 1206 "parser.yy"
     6551  case 284:
     6552
     6553/* Line 1806 of yacc.c  */
     6554#line 1210 "parser.yy"
    65316555    {
    65326556                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65356559    break;
    65366560
    6537   case 284:
    6538 
    6539 /* Line 1806 of yacc.c  */
    6540 #line 1211 "parser.yy"
     6561  case 285:
     6562
     6563/* Line 1806 of yacc.c  */
     6564#line 1215 "parser.yy"
    65416565    {
    65426566                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65456569    break;
    65466570
    6547   case 293:
    6548 
    6549 /* Line 1806 of yacc.c  */
    6550 #line 1233 "parser.yy"
     6571  case 294:
     6572
     6573/* Line 1806 of yacc.c  */
     6574#line 1237 "parser.yy"
    65516575    { (yyval.decl) = 0; }
    65526576    break;
    65536577
    6554   case 296:
    6555 
    6556 /* Line 1806 of yacc.c  */
    6557 #line 1245 "parser.yy"
     6578  case 297:
     6579
     6580/* Line 1806 of yacc.c  */
     6581#line 1249 "parser.yy"
    65586582    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65596583    break;
    65606584
    6561   case 299:
    6562 
    6563 /* Line 1806 of yacc.c  */
    6564 #line 1256 "parser.yy"
     6585  case 300:
     6586
     6587/* Line 1806 of yacc.c  */
     6588#line 1260 "parser.yy"
    65656589    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65666590    break;
    65676591
    6568   case 300:
    6569 
    6570 /* Line 1806 of yacc.c  */
    6571 #line 1258 "parser.yy"
     6592  case 301:
     6593
     6594/* Line 1806 of yacc.c  */
     6595#line 1262 "parser.yy"
    65726596    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    65736597    break;
    65746598
    6575   case 301:
    6576 
    6577 /* Line 1806 of yacc.c  */
    6578 #line 1260 "parser.yy"
     6599  case 302:
     6600
     6601/* Line 1806 of yacc.c  */
     6602#line 1264 "parser.yy"
    65796603    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    65806604    break;
    65816605
    6582   case 302:
    6583 
    6584 /* Line 1806 of yacc.c  */
    6585 #line 1262 "parser.yy"
     6606  case 303:
     6607
     6608/* Line 1806 of yacc.c  */
     6609#line 1266 "parser.yy"
    65866610    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    65876611    break;
    65886612
    6589   case 303:
    6590 
    6591 /* Line 1806 of yacc.c  */
    6592 #line 1264 "parser.yy"
     6613  case 304:
     6614
     6615/* Line 1806 of yacc.c  */
     6616#line 1268 "parser.yy"
    65936617    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    65946618    break;
    65956619
    6596   case 304:
    6597 
    6598 /* Line 1806 of yacc.c  */
    6599 #line 1266 "parser.yy"
     6620  case 305:
     6621
     6622/* Line 1806 of yacc.c  */
     6623#line 1270 "parser.yy"
    66006624    {
    66016625                        typedefTable.enterScope();
     
    66036627    break;
    66046628
    6605   case 305:
    6606 
    6607 /* Line 1806 of yacc.c  */
    6608 #line 1270 "parser.yy"
     6629  case 306:
     6630
     6631/* Line 1806 of yacc.c  */
     6632#line 1274 "parser.yy"
    66096633    {
    66106634                        typedefTable.leaveScope();
     
    66136637    break;
    66146638
    6615   case 307:
    6616 
    6617 /* Line 1806 of yacc.c  */
    6618 #line 1279 "parser.yy"
     6639  case 308:
     6640
     6641/* Line 1806 of yacc.c  */
     6642#line 1283 "parser.yy"
    66196643    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66206644    break;
    66216645
    6622   case 308:
    6623 
    6624 /* Line 1806 of yacc.c  */
    6625 #line 1281 "parser.yy"
     6646  case 309:
     6647
     6648/* Line 1806 of yacc.c  */
     6649#line 1285 "parser.yy"
    66266650    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66276651    break;
    66286652
    6629   case 310:
    6630 
    6631 /* Line 1806 of yacc.c  */
    6632 #line 1292 "parser.yy"
     6653  case 311:
     6654
     6655/* Line 1806 of yacc.c  */
     6656#line 1296 "parser.yy"
    66336657    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66346658    break;
    66356659
    6636   case 312:
    6637 
    6638 /* Line 1806 of yacc.c  */
    6639 #line 1301 "parser.yy"
     6660  case 313:
     6661
     6662/* Line 1806 of yacc.c  */
     6663#line 1305 "parser.yy"
    66406664    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66416665    break;
    66426666
    6643   case 313:
    6644 
    6645 /* Line 1806 of yacc.c  */
    6646 #line 1303 "parser.yy"
     6667  case 314:
     6668
     6669/* Line 1806 of yacc.c  */
     6670#line 1307 "parser.yy"
    66476671    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66486672    break;
    66496673
    6650   case 314:
    6651 
    6652 /* Line 1806 of yacc.c  */
    6653 #line 1305 "parser.yy"
     6674  case 315:
     6675
     6676/* Line 1806 of yacc.c  */
     6677#line 1309 "parser.yy"
    66546678    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66556679    break;
    66566680
    6657   case 315:
    6658 
    6659 /* Line 1806 of yacc.c  */
    6660 #line 1307 "parser.yy"
     6681  case 316:
     6682
     6683/* Line 1806 of yacc.c  */
     6684#line 1311 "parser.yy"
    66616685    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66626686    break;
    66636687
    6664   case 316:
    6665 
    6666 /* Line 1806 of yacc.c  */
    6667 #line 1309 "parser.yy"
     6688  case 317:
     6689
     6690/* Line 1806 of yacc.c  */
     6691#line 1313 "parser.yy"
    66686692    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    66696693    break;
    66706694
    6671   case 317:
    6672 
    6673 /* Line 1806 of yacc.c  */
    6674 #line 1311 "parser.yy"
     6695  case 318:
     6696
     6697/* Line 1806 of yacc.c  */
     6698#line 1315 "parser.yy"
    66756699    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    66766700    break;
    66776701
    6678   case 318:
    6679 
    6680 /* Line 1806 of yacc.c  */
    6681 #line 1313 "parser.yy"
     6702  case 319:
     6703
     6704/* Line 1806 of yacc.c  */
     6705#line 1317 "parser.yy"
    66826706    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    66836707    break;
    66846708
    6685   case 319:
    6686 
    6687 /* Line 1806 of yacc.c  */
    6688 #line 1315 "parser.yy"
     6709  case 320:
     6710
     6711/* Line 1806 of yacc.c  */
     6712#line 1319 "parser.yy"
    66896713    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    66906714    break;
    66916715
    6692   case 320:
    6693 
    6694 /* Line 1806 of yacc.c  */
    6695 #line 1320 "parser.yy"
     6716  case 321:
     6717
     6718/* Line 1806 of yacc.c  */
     6719#line 1324 "parser.yy"
    66966720    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    66976721    break;
    66986722
    6699   case 321:
    6700 
    6701 /* Line 1806 of yacc.c  */
    6702 #line 1322 "parser.yy"
     6723  case 322:
     6724
     6725/* Line 1806 of yacc.c  */
     6726#line 1326 "parser.yy"
    67036727    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67046728    break;
    67056729
    6706   case 322:
    6707 
    6708 /* Line 1806 of yacc.c  */
    6709 #line 1324 "parser.yy"
     6730  case 323:
     6731
     6732/* Line 1806 of yacc.c  */
     6733#line 1328 "parser.yy"
    67106734    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67116735    break;
    67126736
    6713   case 323:
    6714 
    6715 /* Line 1806 of yacc.c  */
    6716 #line 1326 "parser.yy"
     6737  case 324:
     6738
     6739/* Line 1806 of yacc.c  */
     6740#line 1330 "parser.yy"
    67176741    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67186742    break;
    67196743
    6720   case 324:
    6721 
    6722 /* Line 1806 of yacc.c  */
    6723 #line 1328 "parser.yy"
     6744  case 325:
     6745
     6746/* Line 1806 of yacc.c  */
     6747#line 1332 "parser.yy"
    67246748    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    67256749    break;
    67266750
    6727   case 325:
    6728 
    6729 /* Line 1806 of yacc.c  */
    6730 #line 1330 "parser.yy"
     6751  case 326:
     6752
     6753/* Line 1806 of yacc.c  */
     6754#line 1334 "parser.yy"
    67316755    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    67326756    break;
    67336757
    6734   case 326:
    6735 
    6736 /* Line 1806 of yacc.c  */
    6737 #line 1332 "parser.yy"
     6758  case 327:
     6759
     6760/* Line 1806 of yacc.c  */
     6761#line 1336 "parser.yy"
    67386762    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    67396763    break;
    67406764
    6741   case 327:
    6742 
    6743 /* Line 1806 of yacc.c  */
    6744 #line 1334 "parser.yy"
     6765  case 328:
     6766
     6767/* Line 1806 of yacc.c  */
     6768#line 1338 "parser.yy"
    67456769    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    67466770    break;
    67476771
    6748   case 328:
    6749 
    6750 /* Line 1806 of yacc.c  */
    6751 #line 1336 "parser.yy"
     6772  case 329:
     6773
     6774/* Line 1806 of yacc.c  */
     6775#line 1340 "parser.yy"
    67526776    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67536777    break;
    67546778
    6755   case 329:
    6756 
    6757 /* Line 1806 of yacc.c  */
    6758 #line 1338 "parser.yy"
     6779  case 330:
     6780
     6781/* Line 1806 of yacc.c  */
     6782#line 1342 "parser.yy"
    67596783    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67606784    break;
    67616785
    6762   case 330:
    6763 
    6764 /* Line 1806 of yacc.c  */
    6765 #line 1340 "parser.yy"
     6786  case 331:
     6787
     6788/* Line 1806 of yacc.c  */
     6789#line 1344 "parser.yy"
    67666790    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    67676791    break;
    67686792
    6769   case 331:
    6770 
    6771 /* Line 1806 of yacc.c  */
    6772 #line 1342 "parser.yy"
     6793  case 332:
     6794
     6795/* Line 1806 of yacc.c  */
     6796#line 1346 "parser.yy"
    67736797    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    67746798    break;
    67756799
    6776   case 333:
    6777 
    6778 /* Line 1806 of yacc.c  */
    6779 #line 1349 "parser.yy"
     6800  case 334:
     6801
     6802/* Line 1806 of yacc.c  */
     6803#line 1353 "parser.yy"
    67806804    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67816805    break;
    67826806
    6783   case 334:
    6784 
    6785 /* Line 1806 of yacc.c  */
    6786 #line 1351 "parser.yy"
     6807  case 335:
     6808
     6809/* Line 1806 of yacc.c  */
     6810#line 1355 "parser.yy"
    67876811    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67886812    break;
    67896813
    6790   case 335:
    6791 
    6792 /* Line 1806 of yacc.c  */
    6793 #line 1353 "parser.yy"
     6814  case 336:
     6815
     6816/* Line 1806 of yacc.c  */
     6817#line 1357 "parser.yy"
    67946818    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67956819    break;
    67966820
    6797   case 336:
    6798 
    6799 /* Line 1806 of yacc.c  */
    6800 #line 1355 "parser.yy"
     6821  case 337:
     6822
     6823/* Line 1806 of yacc.c  */
     6824#line 1359 "parser.yy"
    68016825    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68026826    break;
    68036827
    6804   case 338:
    6805 
    6806 /* Line 1806 of yacc.c  */
    6807 #line 1361 "parser.yy"
     6828  case 339:
     6829
     6830/* Line 1806 of yacc.c  */
     6831#line 1365 "parser.yy"
    68086832    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68096833    break;
    68106834
    6811   case 340:
    6812 
    6813 /* Line 1806 of yacc.c  */
    6814 #line 1368 "parser.yy"
     6835  case 341:
     6836
     6837/* Line 1806 of yacc.c  */
     6838#line 1372 "parser.yy"
    68156839    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68166840    break;
    68176841
    6818   case 341:
    6819 
    6820 /* Line 1806 of yacc.c  */
    6821 #line 1370 "parser.yy"
     6842  case 342:
     6843
     6844/* Line 1806 of yacc.c  */
     6845#line 1374 "parser.yy"
    68226846    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68236847    break;
    68246848
    6825   case 342:
    6826 
    6827 /* Line 1806 of yacc.c  */
    6828 #line 1372 "parser.yy"
     6849  case 343:
     6850
     6851/* Line 1806 of yacc.c  */
     6852#line 1376 "parser.yy"
    68296853    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    68306854    break;
    68316855
    6832   case 343:
    6833 
    6834 /* Line 1806 of yacc.c  */
    6835 #line 1377 "parser.yy"
     6856  case 344:
     6857
     6858/* Line 1806 of yacc.c  */
     6859#line 1381 "parser.yy"
    68366860    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68376861    break;
    68386862
    6839   case 344:
    6840 
    6841 /* Line 1806 of yacc.c  */
    6842 #line 1379 "parser.yy"
     6863  case 345:
     6864
     6865/* Line 1806 of yacc.c  */
     6866#line 1383 "parser.yy"
    68436867    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    68446868    break;
    68456869
    6846   case 345:
    6847 
    6848 /* Line 1806 of yacc.c  */
    6849 #line 1381 "parser.yy"
     6870  case 346:
     6871
     6872/* Line 1806 of yacc.c  */
     6873#line 1385 "parser.yy"
    68506874    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    68516875    break;
    68526876
    6853   case 346:
    6854 
    6855 /* Line 1806 of yacc.c  */
    6856 #line 1383 "parser.yy"
     6877  case 347:
     6878
     6879/* Line 1806 of yacc.c  */
     6880#line 1387 "parser.yy"
    68576881    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    68586882    break;
    68596883
    6860   case 348:
    6861 
    6862 /* Line 1806 of yacc.c  */
    6863 #line 1389 "parser.yy"
     6884  case 349:
     6885
     6886/* Line 1806 of yacc.c  */
     6887#line 1393 "parser.yy"
    68646888    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68656889    break;
    68666890
    6867   case 349:
    6868 
    6869 /* Line 1806 of yacc.c  */
    6870 #line 1391 "parser.yy"
     6891  case 350:
     6892
     6893/* Line 1806 of yacc.c  */
     6894#line 1395 "parser.yy"
    68716895    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68726896    break;
    68736897
    6874   case 350:
    6875 
    6876 /* Line 1806 of yacc.c  */
    6877 #line 1393 "parser.yy"
     6898  case 351:
     6899
     6900/* Line 1806 of yacc.c  */
     6901#line 1397 "parser.yy"
    68786902    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68796903    break;
    68806904
    6881   case 352:
    6882 
    6883 /* Line 1806 of yacc.c  */
    6884 #line 1399 "parser.yy"
     6905  case 353:
     6906
     6907/* Line 1806 of yacc.c  */
     6908#line 1403 "parser.yy"
    68856909    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68866910    break;
    68876911
    6888   case 353:
    6889 
    6890 /* Line 1806 of yacc.c  */
    6891 #line 1401 "parser.yy"
     6912  case 354:
     6913
     6914/* Line 1806 of yacc.c  */
     6915#line 1405 "parser.yy"
    68926916    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68936917    break;
    68946918
    6895   case 355:
    6896 
    6897 /* Line 1806 of yacc.c  */
    6898 #line 1407 "parser.yy"
     6919  case 356:
     6920
     6921/* Line 1806 of yacc.c  */
     6922#line 1411 "parser.yy"
    68996923    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69006924    break;
    69016925
    6902   case 356:
    6903 
    6904 /* Line 1806 of yacc.c  */
    6905 #line 1409 "parser.yy"
     6926  case 357:
     6927
     6928/* Line 1806 of yacc.c  */
     6929#line 1413 "parser.yy"
    69066930    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69076931    break;
    69086932
    6909   case 357:
    6910 
    6911 /* Line 1806 of yacc.c  */
    6912 #line 1411 "parser.yy"
     6933  case 358:
     6934
     6935/* Line 1806 of yacc.c  */
     6936#line 1415 "parser.yy"
    69136937    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69146938    break;
    69156939
    6916   case 358:
    6917 
    6918 /* Line 1806 of yacc.c  */
    6919 #line 1416 "parser.yy"
     6940  case 359:
     6941
     6942/* Line 1806 of yacc.c  */
     6943#line 1420 "parser.yy"
    69206944    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69216945    break;
    69226946
    6923   case 359:
    6924 
    6925 /* Line 1806 of yacc.c  */
    6926 #line 1418 "parser.yy"
     6947  case 360:
     6948
     6949/* Line 1806 of yacc.c  */
     6950#line 1422 "parser.yy"
    69276951    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69286952    break;
    69296953
    6930   case 360:
    6931 
    6932 /* Line 1806 of yacc.c  */
    6933 #line 1420 "parser.yy"
     6954  case 361:
     6955
     6956/* Line 1806 of yacc.c  */
     6957#line 1424 "parser.yy"
    69346958    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69356959    break;
    69366960
    6937   case 363:
    6938 
    6939 /* Line 1806 of yacc.c  */
    6940 #line 1430 "parser.yy"
     6961  case 364:
     6962
     6963/* Line 1806 of yacc.c  */
     6964#line 1434 "parser.yy"
    69416965    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    69426966    break;
    69436967
    6944   case 364:
    6945 
    6946 /* Line 1806 of yacc.c  */
    6947 #line 1432 "parser.yy"
     6968  case 365:
     6969
     6970/* Line 1806 of yacc.c  */
     6971#line 1436 "parser.yy"
    69486972    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    69496973    break;
    69506974
    6951   case 365:
    6952 
    6953 /* Line 1806 of yacc.c  */
    6954 #line 1434 "parser.yy"
     6975  case 366:
     6976
     6977/* Line 1806 of yacc.c  */
     6978#line 1438 "parser.yy"
    69556979    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    69566980    break;
    69576981
    6958   case 366:
    6959 
    6960 /* Line 1806 of yacc.c  */
    6961 #line 1436 "parser.yy"
     6982  case 367:
     6983
     6984/* Line 1806 of yacc.c  */
     6985#line 1440 "parser.yy"
    69626986    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    69636987    break;
    69646988
    6965   case 367:
    6966 
    6967 /* Line 1806 of yacc.c  */
    6968 #line 1438 "parser.yy"
     6989  case 368:
     6990
     6991/* Line 1806 of yacc.c  */
     6992#line 1442 "parser.yy"
    69696993    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69706994    break;
    69716995
    6972   case 368:
    6973 
    6974 /* Line 1806 of yacc.c  */
    6975 #line 1443 "parser.yy"
     6996  case 369:
     6997
     6998/* Line 1806 of yacc.c  */
     6999#line 1447 "parser.yy"
    69767000    { (yyval.aggKey) = DeclarationNode::Struct; }
    69777001    break;
    69787002
    6979   case 369:
    6980 
    6981 /* Line 1806 of yacc.c  */
    6982 #line 1445 "parser.yy"
     7003  case 370:
     7004
     7005/* Line 1806 of yacc.c  */
     7006#line 1449 "parser.yy"
    69837007    { (yyval.aggKey) = DeclarationNode::Union; }
    69847008    break;
    69857009
    6986   case 370:
    6987 
    6988 /* Line 1806 of yacc.c  */
    6989 #line 1450 "parser.yy"
     7010  case 371:
     7011
     7012/* Line 1806 of yacc.c  */
     7013#line 1454 "parser.yy"
    69907014    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    69917015    break;
    69927016
    6993   case 371:
    6994 
    6995 /* Line 1806 of yacc.c  */
    6996 #line 1452 "parser.yy"
     7017  case 372:
     7018
     7019/* Line 1806 of yacc.c  */
     7020#line 1456 "parser.yy"
    69977021    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    69987022    break;
    69997023
    7000   case 373:
    7001 
    7002 /* Line 1806 of yacc.c  */
    7003 #line 1458 "parser.yy"
     7024  case 374:
     7025
     7026/* Line 1806 of yacc.c  */
     7027#line 1462 "parser.yy"
    70047028    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70057029    break;
    70067030
    7007   case 375:
    7008 
    7009 /* Line 1806 of yacc.c  */
    7010 #line 1461 "parser.yy"
     7031  case 376:
     7032
     7033/* Line 1806 of yacc.c  */
     7034#line 1465 "parser.yy"
    70117035    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70127036    break;
    70137037
    7014   case 377:
    7015 
    7016 /* Line 1806 of yacc.c  */
    7017 #line 1467 "parser.yy"
     7038  case 378:
     7039
     7040/* Line 1806 of yacc.c  */
     7041#line 1471 "parser.yy"
    70187042    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    70197043    break;
    70207044
    7021   case 378:
    7022 
    7023 /* Line 1806 of yacc.c  */
    7024 #line 1469 "parser.yy"
     7045  case 379:
     7046
     7047/* Line 1806 of yacc.c  */
     7048#line 1473 "parser.yy"
    70257049    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    70267050    break;
    70277051
    7028   case 379:
    7029 
    7030 /* Line 1806 of yacc.c  */
    7031 #line 1471 "parser.yy"
     7052  case 380:
     7053
     7054/* Line 1806 of yacc.c  */
     7055#line 1475 "parser.yy"
    70327056    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70337057    break;
    70347058
    7035   case 380:
    7036 
    7037 /* Line 1806 of yacc.c  */
    7038 #line 1476 "parser.yy"
     7059  case 381:
     7060
     7061/* Line 1806 of yacc.c  */
     7062#line 1480 "parser.yy"
    70397063    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70407064    break;
    70417065
    7042   case 381:
    7043 
    7044 /* Line 1806 of yacc.c  */
    7045 #line 1478 "parser.yy"
     7066  case 382:
     7067
     7068/* Line 1806 of yacc.c  */
     7069#line 1482 "parser.yy"
    70467070    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70477071    break;
    70487072
    7049   case 382:
    7050 
    7051 /* Line 1806 of yacc.c  */
    7052 #line 1483 "parser.yy"
     7073  case 383:
     7074
     7075/* Line 1806 of yacc.c  */
     7076#line 1487 "parser.yy"
    70537077    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70547078    break;
    70557079
    7056   case 383:
    7057 
    7058 /* Line 1806 of yacc.c  */
    7059 #line 1485 "parser.yy"
     7080  case 384:
     7081
     7082/* Line 1806 of yacc.c  */
     7083#line 1489 "parser.yy"
    70607084    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70617085    break;
    70627086
    7063   case 384:
    7064 
    7065 /* Line 1806 of yacc.c  */
    7066 #line 1488 "parser.yy"
     7087  case 385:
     7088
     7089/* Line 1806 of yacc.c  */
     7090#line 1492 "parser.yy"
    70677091    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70687092    break;
    70697093
    7070   case 385:
    7071 
    7072 /* Line 1806 of yacc.c  */
    7073 #line 1491 "parser.yy"
     7094  case 386:
     7095
     7096/* Line 1806 of yacc.c  */
     7097#line 1495 "parser.yy"
    70747098    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70757099    break;
    70767100
    7077   case 387:
    7078 
    7079 /* Line 1806 of yacc.c  */
    7080 #line 1497 "parser.yy"
     7101  case 388:
     7102
     7103/* Line 1806 of yacc.c  */
     7104#line 1501 "parser.yy"
    70817105    { (yyval.en) = 0; }
    70827106    break;
    70837107
    7084   case 388:
    7085 
    7086 /* Line 1806 of yacc.c  */
    7087 #line 1499 "parser.yy"
     7108  case 389:
     7109
     7110/* Line 1806 of yacc.c  */
     7111#line 1503 "parser.yy"
    70887112    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    70897113    break;
    70907114
    7091   case 389:
    7092 
    7093 /* Line 1806 of yacc.c  */
    7094 #line 1504 "parser.yy"
     7115  case 390:
     7116
     7117/* Line 1806 of yacc.c  */
     7118#line 1508 "parser.yy"
    70957119    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70967120    break;
    70977121
    7098   case 391:
    7099 
    7100 /* Line 1806 of yacc.c  */
    7101 #line 1513 "parser.yy"
     7122  case 392:
     7123
     7124/* Line 1806 of yacc.c  */
     7125#line 1517 "parser.yy"
    71027126    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    71037127    break;
    71047128
    7105   case 392:
    7106 
    7107 /* Line 1806 of yacc.c  */
    7108 #line 1515 "parser.yy"
     7129  case 393:
     7130
     7131/* Line 1806 of yacc.c  */
     7132#line 1519 "parser.yy"
    71097133    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    71107134    break;
    71117135
    7112   case 393:
    7113 
    7114 /* Line 1806 of yacc.c  */
    7115 #line 1517 "parser.yy"
     7136  case 394:
     7137
     7138/* Line 1806 of yacc.c  */
     7139#line 1521 "parser.yy"
    71167140    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    71177141    break;
    71187142
    7119   case 394:
    7120 
    7121 /* Line 1806 of yacc.c  */
    7122 #line 1522 "parser.yy"
     7143  case 395:
     7144
     7145/* Line 1806 of yacc.c  */
     7146#line 1526 "parser.yy"
    71237147    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    71247148    break;
    71257149
    7126   case 395:
    7127 
    7128 /* Line 1806 of yacc.c  */
    7129 #line 1524 "parser.yy"
     7150  case 396:
     7151
     7152/* Line 1806 of yacc.c  */
     7153#line 1528 "parser.yy"
    71307154    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71317155    break;
    71327156
    7133   case 396:
    7134 
    7135 /* Line 1806 of yacc.c  */
    7136 #line 1529 "parser.yy"
     7157  case 397:
     7158
     7159/* Line 1806 of yacc.c  */
     7160#line 1533 "parser.yy"
    71377161    { (yyval.en) = 0; }
    71387162    break;
    71397163
    7140   case 397:
    7141 
    7142 /* Line 1806 of yacc.c  */
    7143 #line 1531 "parser.yy"
     7164  case 398:
     7165
     7166/* Line 1806 of yacc.c  */
     7167#line 1535 "parser.yy"
    71447168    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71457169    break;
    71467170
    7147   case 398:
    7148 
    7149 /* Line 1806 of yacc.c  */
    7150 #line 1538 "parser.yy"
     7171  case 399:
     7172
     7173/* Line 1806 of yacc.c  */
     7174#line 1542 "parser.yy"
    71517175    { (yyval.decl) = 0; }
    71527176    break;
    71537177
    7154   case 402:
    7155 
    7156 /* Line 1806 of yacc.c  */
    7157 #line 1546 "parser.yy"
     7178  case 403:
     7179
     7180/* Line 1806 of yacc.c  */
     7181#line 1550 "parser.yy"
    71587182    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71597183    break;
    71607184
    7161   case 403:
    7162 
    7163 /* Line 1806 of yacc.c  */
    7164 #line 1548 "parser.yy"
     7185  case 404:
     7186
     7187/* Line 1806 of yacc.c  */
     7188#line 1552 "parser.yy"
    71657189    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    71667190    break;
    71677191
    7168   case 404:
    7169 
    7170 /* Line 1806 of yacc.c  */
    7171 #line 1550 "parser.yy"
     7192  case 405:
     7193
     7194/* Line 1806 of yacc.c  */
     7195#line 1554 "parser.yy"
    71727196    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    71737197    break;
    71747198
    7175   case 406:
    7176 
    7177 /* Line 1806 of yacc.c  */
    7178 #line 1558 "parser.yy"
     7199  case 407:
     7200
     7201/* Line 1806 of yacc.c  */
     7202#line 1562 "parser.yy"
    71797203    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71807204    break;
    71817205
    7182   case 407:
    7183 
    7184 /* Line 1806 of yacc.c  */
    7185 #line 1560 "parser.yy"
     7206  case 408:
     7207
     7208/* Line 1806 of yacc.c  */
     7209#line 1564 "parser.yy"
    71867210    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71877211    break;
    71887212
    7189   case 408:
    7190 
    7191 /* Line 1806 of yacc.c  */
    7192 #line 1562 "parser.yy"
     7213  case 409:
     7214
     7215/* Line 1806 of yacc.c  */
     7216#line 1566 "parser.yy"
    71937217    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    71947218    break;
    71957219
    7196   case 410:
    7197 
    7198 /* Line 1806 of yacc.c  */
    7199 #line 1568 "parser.yy"
     7220  case 411:
     7221
     7222/* Line 1806 of yacc.c  */
     7223#line 1572 "parser.yy"
    72007224    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72017225    break;
    72027226
    7203   case 411:
    7204 
    7205 /* Line 1806 of yacc.c  */
    7206 #line 1573 "parser.yy"
     7227  case 412:
     7228
     7229/* Line 1806 of yacc.c  */
     7230#line 1577 "parser.yy"
    72077231    { (yyval.decl) = 0; }
    72087232    break;
    72097233
    7210   case 414:
    7211 
    7212 /* Line 1806 of yacc.c  */
    7213 #line 1580 "parser.yy"
     7234  case 415:
     7235
     7236/* Line 1806 of yacc.c  */
     7237#line 1584 "parser.yy"
    72147238    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72157239    break;
    72167240
    7217   case 417:
    7218 
    7219 /* Line 1806 of yacc.c  */
    7220 #line 1587 "parser.yy"
     7241  case 418:
     7242
     7243/* Line 1806 of yacc.c  */
     7244#line 1591 "parser.yy"
    72217245    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72227246    break;
    72237247
    7224   case 418:
    7225 
    7226 /* Line 1806 of yacc.c  */
    7227 #line 1589 "parser.yy"
     7248  case 419:
     7249
     7250/* Line 1806 of yacc.c  */
     7251#line 1593 "parser.yy"
    72287252    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72297253    break;
    72307254
    7231   case 420:
    7232 
    7233 /* Line 1806 of yacc.c  */
    7234 #line 1598 "parser.yy"
     7255  case 421:
     7256
     7257/* Line 1806 of yacc.c  */
     7258#line 1602 "parser.yy"
    72357259    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72367260    break;
    72377261
    7238   case 421:
    7239 
    7240 /* Line 1806 of yacc.c  */
    7241 #line 1601 "parser.yy"
     7262  case 422:
     7263
     7264/* Line 1806 of yacc.c  */
     7265#line 1605 "parser.yy"
    72427266    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72437267    break;
    72447268
    7245   case 422:
    7246 
    7247 /* Line 1806 of yacc.c  */
    7248 #line 1603 "parser.yy"
     7269  case 423:
     7270
     7271/* Line 1806 of yacc.c  */
     7272#line 1607 "parser.yy"
    72497273    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72507274    break;
    72517275
    7252   case 427:
    7253 
    7254 /* Line 1806 of yacc.c  */
    7255 #line 1613 "parser.yy"
     7276  case 428:
     7277
     7278/* Line 1806 of yacc.c  */
     7279#line 1617 "parser.yy"
    72567280    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72577281    break;
    72587282
    7259   case 429:
    7260 
    7261 /* Line 1806 of yacc.c  */
    7262 #line 1619 "parser.yy"
     7283  case 430:
     7284
     7285/* Line 1806 of yacc.c  */
     7286#line 1623 "parser.yy"
    72637287    {
    72647288                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72677291    break;
    72687292
    7269   case 430:
    7270 
    7271 /* Line 1806 of yacc.c  */
    7272 #line 1624 "parser.yy"
     7293  case 431:
     7294
     7295/* Line 1806 of yacc.c  */
     7296#line 1628 "parser.yy"
    72737297    {
    72747298                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72777301    break;
    72787302
    7279   case 432:
    7280 
    7281 /* Line 1806 of yacc.c  */
    7282 #line 1633 "parser.yy"
     7303  case 433:
     7304
     7305/* Line 1806 of yacc.c  */
     7306#line 1637 "parser.yy"
    72837307    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72847308    break;
    72857309
    7286   case 433:
    7287 
    7288 /* Line 1806 of yacc.c  */
    7289 #line 1642 "parser.yy"
     7310  case 434:
     7311
     7312/* Line 1806 of yacc.c  */
     7313#line 1646 "parser.yy"
    72907314    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    72917315    break;
    72927316
    7293   case 434:
    7294 
    7295 /* Line 1806 of yacc.c  */
    7296 #line 1644 "parser.yy"
     7317  case 435:
     7318
     7319/* Line 1806 of yacc.c  */
     7320#line 1648 "parser.yy"
    72977321    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    72987322    break;
    72997323
    7300   case 446:
    7301 
    7302 /* Line 1806 of yacc.c  */
    7303 #line 1669 "parser.yy"
     7324  case 447:
     7325
     7326/* Line 1806 of yacc.c  */
     7327#line 1673 "parser.yy"
    73047328    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73057329    break;
    73067330
    7307   case 450:
    7308 
    7309 /* Line 1806 of yacc.c  */
    7310 #line 1677 "parser.yy"
     7331  case 451:
     7332
     7333/* Line 1806 of yacc.c  */
     7334#line 1681 "parser.yy"
    73117335    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73127336    break;
    73137337
    7314   case 451:
    7315 
    7316 /* Line 1806 of yacc.c  */
    7317 #line 1682 "parser.yy"
     7338  case 452:
     7339
     7340/* Line 1806 of yacc.c  */
     7341#line 1686 "parser.yy"
    73187342    { (yyval.in) = 0; }
    73197343    break;
    73207344
    7321   case 452:
    7322 
    7323 /* Line 1806 of yacc.c  */
    7324 #line 1684 "parser.yy"
     7345  case 453:
     7346
     7347/* Line 1806 of yacc.c  */
     7348#line 1688 "parser.yy"
    73257349    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    73267350    break;
    73277351
    7328   case 453:
    7329 
    7330 /* Line 1806 of yacc.c  */
    7331 #line 1686 "parser.yy"
     7352  case 454:
     7353
     7354/* Line 1806 of yacc.c  */
     7355#line 1690 "parser.yy"
    73327356    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    73337357    break;
    73347358
    7335   case 454:
    7336 
    7337 /* Line 1806 of yacc.c  */
    7338 #line 1690 "parser.yy"
     7359  case 455:
     7360
     7361/* Line 1806 of yacc.c  */
     7362#line 1694 "parser.yy"
    73397363    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    73407364    break;
    73417365
    7342   case 455:
    7343 
    7344 /* Line 1806 of yacc.c  */
    7345 #line 1691 "parser.yy"
     7366  case 456:
     7367
     7368/* Line 1806 of yacc.c  */
     7369#line 1695 "parser.yy"
    73467370    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    73477371    break;
    73487372
    7349   case 456:
    7350 
    7351 /* Line 1806 of yacc.c  */
    7352 #line 1696 "parser.yy"
     7373  case 457:
     7374
     7375/* Line 1806 of yacc.c  */
     7376#line 1700 "parser.yy"
    73537377    { (yyval.in) = 0; }
    73547378    break;
    73557379
    7356   case 458:
    7357 
    7358 /* Line 1806 of yacc.c  */
    7359 #line 1698 "parser.yy"
     7380  case 459:
     7381
     7382/* Line 1806 of yacc.c  */
     7383#line 1702 "parser.yy"
    73607384    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    73617385    break;
    73627386
    7363   case 459:
    7364 
    7365 /* Line 1806 of yacc.c  */
    7366 #line 1699 "parser.yy"
     7387  case 460:
     7388
     7389/* Line 1806 of yacc.c  */
     7390#line 1703 "parser.yy"
    73677391    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    73687392    break;
    73697393
    7370   case 460:
    7371 
    7372 /* Line 1806 of yacc.c  */
    7373 #line 1701 "parser.yy"
     7394  case 461:
     7395
     7396/* Line 1806 of yacc.c  */
     7397#line 1705 "parser.yy"
    73747398    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    73757399    break;
    73767400
    7377   case 462:
    7378 
    7379 /* Line 1806 of yacc.c  */
    7380 #line 1717 "parser.yy"
     7401  case 463:
     7402
     7403/* Line 1806 of yacc.c  */
     7404#line 1721 "parser.yy"
    73817405    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    73827406    break;
    73837407
    7384   case 464:
    7385 
    7386 /* Line 1806 of yacc.c  */
    7387 #line 1723 "parser.yy"
     7408  case 465:
     7409
     7410/* Line 1806 of yacc.c  */
     7411#line 1727 "parser.yy"
    73887412    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    73897413    break;
    73907414
    7391   case 465:
    7392 
    7393 /* Line 1806 of yacc.c  */
    7394 #line 1731 "parser.yy"
     7415  case 466:
     7416
     7417/* Line 1806 of yacc.c  */
     7418#line 1735 "parser.yy"
    73957419    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    73967420    break;
    73977421
    7398   case 466:
    7399 
    7400 /* Line 1806 of yacc.c  */
    7401 #line 1733 "parser.yy"
     7422  case 467:
     7423
     7424/* Line 1806 of yacc.c  */
     7425#line 1737 "parser.yy"
    74027426    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    74037427    break;
    74047428
    7405   case 467:
    7406 
    7407 /* Line 1806 of yacc.c  */
    7408 #line 1736 "parser.yy"
     7429  case 468:
     7430
     7431/* Line 1806 of yacc.c  */
     7432#line 1740 "parser.yy"
    74097433    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    74107434    break;
    74117435
    7412   case 468:
    7413 
    7414 /* Line 1806 of yacc.c  */
    7415 #line 1738 "parser.yy"
     7436  case 469:
     7437
     7438/* Line 1806 of yacc.c  */
     7439#line 1742 "parser.yy"
    74167440    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    74177441    break;
    74187442
    7419   case 469:
    7420 
    7421 /* Line 1806 of yacc.c  */
    7422 #line 1740 "parser.yy"
     7443  case 470:
     7444
     7445/* Line 1806 of yacc.c  */
     7446#line 1744 "parser.yy"
    74237447    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    74247448    break;
    74257449
    7426   case 470:
    7427 
    7428 /* Line 1806 of yacc.c  */
    7429 #line 1742 "parser.yy"
     7450  case 471:
     7451
     7452/* Line 1806 of yacc.c  */
     7453#line 1746 "parser.yy"
    74307454    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    74317455    break;
    74327456
    7433   case 472:
    7434 
    7435 /* Line 1806 of yacc.c  */
    7436 #line 1766 "parser.yy"
     7457  case 473:
     7458
     7459/* Line 1806 of yacc.c  */
     7460#line 1770 "parser.yy"
    74377461    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74387462    break;
    74397463
    7440   case 473:
    7441 
    7442 /* Line 1806 of yacc.c  */
    7443 #line 1768 "parser.yy"
     7464  case 474:
     7465
     7466/* Line 1806 of yacc.c  */
     7467#line 1772 "parser.yy"
    74447468    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74457469    break;
    74467470
    7447   case 474:
    7448 
    7449 /* Line 1806 of yacc.c  */
    7450 #line 1770 "parser.yy"
     7471  case 475:
     7472
     7473/* Line 1806 of yacc.c  */
     7474#line 1774 "parser.yy"
    74517475    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    74527476    break;
    74537477
    7454   case 476:
    7455 
    7456 /* Line 1806 of yacc.c  */
    7457 #line 1776 "parser.yy"
     7478  case 477:
     7479
     7480/* Line 1806 of yacc.c  */
     7481#line 1780 "parser.yy"
    74587482    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74597483    break;
    74607484
    7461   case 477:
    7462 
    7463 /* Line 1806 of yacc.c  */
    7464 #line 1778 "parser.yy"
     7485  case 478:
     7486
     7487/* Line 1806 of yacc.c  */
     7488#line 1782 "parser.yy"
    74657489    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74667490    break;
    74677491
    7468   case 478:
    7469 
    7470 /* Line 1806 of yacc.c  */
    7471 #line 1783 "parser.yy"
     7492  case 479:
     7493
     7494/* Line 1806 of yacc.c  */
     7495#line 1787 "parser.yy"
    74727496    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    74737497    break;
    74747498
    7475   case 480:
    7476 
    7477 /* Line 1806 of yacc.c  */
    7478 #line 1789 "parser.yy"
     7499  case 481:
     7500
     7501/* Line 1806 of yacc.c  */
     7502#line 1793 "parser.yy"
    74797503    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    74807504    break;
    74817505
    7482   case 481:
    7483 
    7484 /* Line 1806 of yacc.c  */
    7485 #line 1794 "parser.yy"
     7506  case 482:
     7507
     7508/* Line 1806 of yacc.c  */
     7509#line 1798 "parser.yy"
    74867510    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    74877511    break;
    74887512
    7489   case 482:
    7490 
    7491 /* Line 1806 of yacc.c  */
    7492 #line 1796 "parser.yy"
     7513  case 483:
     7514
     7515/* Line 1806 of yacc.c  */
     7516#line 1800 "parser.yy"
    74937517    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    74947518    break;
    74957519
    7496   case 484:
    7497 
    7498 /* Line 1806 of yacc.c  */
    7499 #line 1802 "parser.yy"
     7520  case 485:
     7521
     7522/* Line 1806 of yacc.c  */
     7523#line 1806 "parser.yy"
    75007524    { (yyval.tclass) = DeclarationNode::Type; }
    75017525    break;
    75027526
    7503   case 485:
    7504 
    7505 /* Line 1806 of yacc.c  */
    7506 #line 1804 "parser.yy"
     7527  case 486:
     7528
     7529/* Line 1806 of yacc.c  */
     7530#line 1808 "parser.yy"
    75077531    { (yyval.tclass) = DeclarationNode::Ftype; }
    75087532    break;
    75097533
    7510   case 486:
    7511 
    7512 /* Line 1806 of yacc.c  */
    7513 #line 1806 "parser.yy"
     7534  case 487:
     7535
     7536/* Line 1806 of yacc.c  */
     7537#line 1810 "parser.yy"
    75147538    { (yyval.tclass) = DeclarationNode::Dtype; }
    75157539    break;
    75167540
    7517   case 487:
    7518 
    7519 /* Line 1806 of yacc.c  */
    7520 #line 1811 "parser.yy"
     7541  case 488:
     7542
     7543/* Line 1806 of yacc.c  */
     7544#line 1815 "parser.yy"
    75217545    { (yyval.decl) = 0; }
    75227546    break;
    75237547
    7524   case 488:
    7525 
    7526 /* Line 1806 of yacc.c  */
    7527 #line 1813 "parser.yy"
     7548  case 489:
     7549
     7550/* Line 1806 of yacc.c  */
     7551#line 1817 "parser.yy"
    75287552    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    75297553    break;
    75307554
    7531   case 489:
    7532 
    7533 /* Line 1806 of yacc.c  */
    7534 #line 1818 "parser.yy"
     7555  case 490:
     7556
     7557/* Line 1806 of yacc.c  */
     7558#line 1822 "parser.yy"
    75357559    {
    75367560                        typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
     
    75397563    break;
    75407564
    7541   case 490:
    7542 
    7543 /* Line 1806 of yacc.c  */
    7544 #line 1823 "parser.yy"
     7565  case 491:
     7566
     7567/* Line 1806 of yacc.c  */
     7568#line 1827 "parser.yy"
    75457569    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    75467570    break;
    75477571
    7548   case 491:
    7549 
    7550 /* Line 1806 of yacc.c  */
    7551 #line 1825 "parser.yy"
     7572  case 492:
     7573
     7574/* Line 1806 of yacc.c  */
     7575#line 1829 "parser.yy"
    75527576    { (yyval.decl) = 0; }
    75537577    break;
    75547578
    7555   case 492:
    7556 
    7557 /* Line 1806 of yacc.c  */
    7558 #line 1830 "parser.yy"
     7579  case 493:
     7580
     7581/* Line 1806 of yacc.c  */
     7582#line 1834 "parser.yy"
    75597583    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    75607584    break;
    75617585
    7562   case 494:
    7563 
    7564 /* Line 1806 of yacc.c  */
    7565 #line 1833 "parser.yy"
     7586  case 495:
     7587
     7588/* Line 1806 of yacc.c  */
     7589#line 1837 "parser.yy"
    75667590    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    75677591    break;
    75687592
    7569   case 495:
    7570 
    7571 /* Line 1806 of yacc.c  */
    7572 #line 1835 "parser.yy"
     7593  case 496:
     7594
     7595/* Line 1806 of yacc.c  */
     7596#line 1839 "parser.yy"
    75737597    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    75747598    break;
    75757599
    7576   case 496:
    7577 
    7578 /* Line 1806 of yacc.c  */
    7579 #line 1840 "parser.yy"
     7600  case 497:
     7601
     7602/* Line 1806 of yacc.c  */
     7603#line 1844 "parser.yy"
    75807604    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    75817605    break;
    75827606
    7583   case 497:
    7584 
    7585 /* Line 1806 of yacc.c  */
    7586 #line 1842 "parser.yy"
     7607  case 498:
     7608
     7609/* Line 1806 of yacc.c  */
     7610#line 1846 "parser.yy"
    75877611    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    75887612    break;
    75897613
    7590   case 498:
    7591 
    7592 /* Line 1806 of yacc.c  */
    7593 #line 1844 "parser.yy"
     7614  case 499:
     7615
     7616/* Line 1806 of yacc.c  */
     7617#line 1848 "parser.yy"
    75947618    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    75957619    break;
    75967620
    7597   case 499:
    7598 
    7599 /* Line 1806 of yacc.c  */
    7600 #line 1849 "parser.yy"
     7621  case 500:
     7622
     7623/* Line 1806 of yacc.c  */
     7624#line 1853 "parser.yy"
    76017625    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76027626    break;
    76037627
    7604   case 500:
    7605 
    7606 /* Line 1806 of yacc.c  */
    7607 #line 1851 "parser.yy"
     7628  case 501:
     7629
     7630/* Line 1806 of yacc.c  */
     7631#line 1855 "parser.yy"
    76087632    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76097633    break;
    76107634
    7611   case 501:
    7612 
    7613 /* Line 1806 of yacc.c  */
    7614 #line 1856 "parser.yy"
     7635  case 502:
     7636
     7637/* Line 1806 of yacc.c  */
     7638#line 1860 "parser.yy"
    76157639    {
    76167640                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76197643    break;
    76207644
    7621   case 502:
    7622 
    7623 /* Line 1806 of yacc.c  */
    7624 #line 1861 "parser.yy"
     7645  case 503:
     7646
     7647/* Line 1806 of yacc.c  */
     7648#line 1865 "parser.yy"
    76257649    {
    76267650                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76297653    break;
    76307654
    7631   case 503:
    7632 
    7633 /* Line 1806 of yacc.c  */
    7634 #line 1869 "parser.yy"
     7655  case 504:
     7656
     7657/* Line 1806 of yacc.c  */
     7658#line 1873 "parser.yy"
    76357659    {
    76367660                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76397663    break;
    76407664
    7641   case 504:
    7642 
    7643 /* Line 1806 of yacc.c  */
    7644 #line 1874 "parser.yy"
     7665  case 505:
     7666
     7667/* Line 1806 of yacc.c  */
     7668#line 1878 "parser.yy"
    76457669    {
    76467670                        typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
     
    76497673    break;
    76507674
    7651   case 505:
    7652 
    7653 /* Line 1806 of yacc.c  */
    7654 #line 1879 "parser.yy"
     7675  case 506:
     7676
     7677/* Line 1806 of yacc.c  */
     7678#line 1883 "parser.yy"
    76557679    {
    76567680                        typedefTable.leaveContext();
     
    76607684    break;
    76617685
    7662   case 507:
    7663 
    7664 /* Line 1806 of yacc.c  */
    7665 #line 1889 "parser.yy"
     7686  case 508:
     7687
     7688/* Line 1806 of yacc.c  */
     7689#line 1893 "parser.yy"
    76667690    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    76677691    break;
    76687692
    7669   case 510:
    7670 
    7671 /* Line 1806 of yacc.c  */
    7672 #line 1899 "parser.yy"
     7693  case 511:
     7694
     7695/* Line 1806 of yacc.c  */
     7696#line 1903 "parser.yy"
    76737697    {
    76747698                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76777701    break;
    76787702
    7679   case 511:
    7680 
    7681 /* Line 1806 of yacc.c  */
    7682 #line 1904 "parser.yy"
     7703  case 512:
     7704
     7705/* Line 1806 of yacc.c  */
     7706#line 1908 "parser.yy"
    76837707    {
    76847708                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76877711    break;
    76887712
    7689   case 512:
    7690 
    7691 /* Line 1806 of yacc.c  */
    7692 #line 1909 "parser.yy"
     7713  case 513:
     7714
     7715/* Line 1806 of yacc.c  */
     7716#line 1913 "parser.yy"
    76937717    {
    76947718                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    76977721    break;
    76987722
    7699   case 513:
    7700 
    7701 /* Line 1806 of yacc.c  */
    7702 #line 1917 "parser.yy"
     7723  case 514:
     7724
     7725/* Line 1806 of yacc.c  */
     7726#line 1921 "parser.yy"
    77037727    {
    77047728                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77077731    break;
    77087732
    7709   case 514:
    7710 
    7711 /* Line 1806 of yacc.c  */
    7712 #line 1922 "parser.yy"
     7733  case 515:
     7734
     7735/* Line 1806 of yacc.c  */
     7736#line 1926 "parser.yy"
    77137737    {
    77147738                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77177741    break;
    77187742
    7719   case 515:
    7720 
    7721 /* Line 1806 of yacc.c  */
    7722 #line 1932 "parser.yy"
     7743  case 516:
     7744
     7745/* Line 1806 of yacc.c  */
     7746#line 1936 "parser.yy"
    77237747    {}
    77247748    break;
    77257749
    7726   case 516:
    7727 
    7728 /* Line 1806 of yacc.c  */
    7729 #line 1934 "parser.yy"
     7750  case 517:
     7751
     7752/* Line 1806 of yacc.c  */
     7753#line 1938 "parser.yy"
    77307754    {
    77317755                        if ( theTree ) {
     
    77377761    break;
    77387762
    7739   case 518:
    7740 
    7741 /* Line 1806 of yacc.c  */
    7742 #line 1946 "parser.yy"
     7763  case 519:
     7764
     7765/* Line 1806 of yacc.c  */
     7766#line 1950 "parser.yy"
    77437767    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    77447768    break;
    77457769
    7746   case 519:
    7747 
    7748 /* Line 1806 of yacc.c  */
    7749 #line 1951 "parser.yy"
     7770  case 520:
     7771
     7772/* Line 1806 of yacc.c  */
     7773#line 1955 "parser.yy"
    77507774    { (yyval.decl) = 0; }
    77517775    break;
    77527776
    7753   case 523:
    7754 
    7755 /* Line 1806 of yacc.c  */
    7756 #line 1959 "parser.yy"
     7777  case 524:
     7778
     7779/* Line 1806 of yacc.c  */
     7780#line 1963 "parser.yy"
    77577781    {}
    77587782    break;
    77597783
    7760   case 524:
    7761 
    7762 /* Line 1806 of yacc.c  */
    7763 #line 1961 "parser.yy"
     7784  case 525:
     7785
     7786/* Line 1806 of yacc.c  */
     7787#line 1965 "parser.yy"
    77647788    {
    77657789                        linkageStack.push( linkage );
     
    77687792    break;
    77697793
    7770   case 525:
    7771 
    7772 /* Line 1806 of yacc.c  */
    7773 #line 1966 "parser.yy"
     7794  case 526:
     7795
     7796/* Line 1806 of yacc.c  */
     7797#line 1970 "parser.yy"
    77747798    {
    77757799                        linkage = linkageStack.top();
     
    77797803    break;
    77807804
    7781   case 526:
    7782 
    7783 /* Line 1806 of yacc.c  */
    7784 #line 1972 "parser.yy"
     7805  case 527:
     7806
     7807/* Line 1806 of yacc.c  */
     7808#line 1976 "parser.yy"
    77857809    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    77867810    break;
    77877811
    7788   case 528:
    7789 
    7790 /* Line 1806 of yacc.c  */
    7791 #line 1982 "parser.yy"
     7812  case 529:
     7813
     7814/* Line 1806 of yacc.c  */
     7815#line 1986 "parser.yy"
    77927816    {
    77937817                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77977821    break;
    77987822
    7799   case 529:
    7800 
    7801 /* Line 1806 of yacc.c  */
    7802 #line 1988 "parser.yy"
     7823  case 530:
     7824
     7825/* Line 1806 of yacc.c  */
     7826#line 1992 "parser.yy"
    78037827    {
    78047828                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78087832    break;
    78097833
    7810   case 530:
    7811 
    7812 /* Line 1806 of yacc.c  */
    7813 #line 1997 "parser.yy"
     7834  case 531:
     7835
     7836/* Line 1806 of yacc.c  */
     7837#line 2001 "parser.yy"
    78147838    {
    78157839                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78197843    break;
    78207844
    7821   case 531:
    7822 
    7823 /* Line 1806 of yacc.c  */
    7824 #line 2003 "parser.yy"
     7845  case 532:
     7846
     7847/* Line 1806 of yacc.c  */
     7848#line 2007 "parser.yy"
    78257849    {
    78267850                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78307854    break;
    78317855
    7832   case 532:
    7833 
    7834 /* Line 1806 of yacc.c  */
    7835 #line 2009 "parser.yy"
     7856  case 533:
     7857
     7858/* Line 1806 of yacc.c  */
     7859#line 2013 "parser.yy"
    78367860    {
    78377861                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78417865    break;
    78427866
    7843   case 533:
    7844 
    7845 /* Line 1806 of yacc.c  */
    7846 #line 2015 "parser.yy"
     7867  case 534:
     7868
     7869/* Line 1806 of yacc.c  */
     7870#line 2019 "parser.yy"
    78477871    {
    78487872                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78527876    break;
    78537877
    7854   case 534:
    7855 
    7856 /* Line 1806 of yacc.c  */
    7857 #line 2021 "parser.yy"
     7878  case 535:
     7879
     7880/* Line 1806 of yacc.c  */
     7881#line 2025 "parser.yy"
    78587882    {
    78597883                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78637887    break;
    78647888
    7865   case 535:
    7866 
    7867 /* Line 1806 of yacc.c  */
    7868 #line 2029 "parser.yy"
     7889  case 536:
     7890
     7891/* Line 1806 of yacc.c  */
     7892#line 2033 "parser.yy"
    78697893    {
    78707894                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78747898    break;
    78757899
    7876   case 536:
    7877 
    7878 /* Line 1806 of yacc.c  */
    7879 #line 2035 "parser.yy"
     7900  case 537:
     7901
     7902/* Line 1806 of yacc.c  */
     7903#line 2039 "parser.yy"
    78807904    {
    78817905                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78857909    break;
    78867910
    7887   case 537:
    7888 
    7889 /* Line 1806 of yacc.c  */
    7890 #line 2043 "parser.yy"
     7911  case 538:
     7912
     7913/* Line 1806 of yacc.c  */
     7914#line 2047 "parser.yy"
    78917915    {
    78927916                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78967920    break;
    78977921
    7898   case 538:
    7899 
    7900 /* Line 1806 of yacc.c  */
    7901 #line 2049 "parser.yy"
     7922  case 539:
     7923
     7924/* Line 1806 of yacc.c  */
     7925#line 2053 "parser.yy"
    79027926    {
    79037927                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79077931    break;
    79087932
    7909   case 542:
    7910 
    7911 /* Line 1806 of yacc.c  */
    7912 #line 2064 "parser.yy"
     7933  case 543:
     7934
     7935/* Line 1806 of yacc.c  */
     7936#line 2068 "parser.yy"
    79137937    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    79147938    break;
    79157939
    7916   case 545:
    7917 
    7918 /* Line 1806 of yacc.c  */
    7919 #line 2074 "parser.yy"
     7940  case 546:
     7941
     7942/* Line 1806 of yacc.c  */
     7943#line 2078 "parser.yy"
    79207944    { (yyval.decl) = 0; }
    79217945    break;
    79227946
    7923   case 548:
    7924 
    7925 /* Line 1806 of yacc.c  */
    7926 #line 2081 "parser.yy"
     7947  case 549:
     7948
     7949/* Line 1806 of yacc.c  */
     7950#line 2085 "parser.yy"
    79277951    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    79287952    break;
    79297953
    7930   case 549:
    7931 
    7932 /* Line 1806 of yacc.c  */
    7933 #line 2087 "parser.yy"
     7954  case 550:
     7955
     7956/* Line 1806 of yacc.c  */
     7957#line 2091 "parser.yy"
    79347958    { (yyval.decl) = 0; }
    79357959    break;
    79367960
    7937   case 555:
    7938 
    7939 /* Line 1806 of yacc.c  */
    7940 #line 2102 "parser.yy"
     7961  case 556:
     7962
     7963/* Line 1806 of yacc.c  */
     7964#line 2106 "parser.yy"
    79417965    {}
    79427966    break;
    79437967
    7944   case 556:
    7945 
    7946 /* Line 1806 of yacc.c  */
    7947 #line 2103 "parser.yy"
     7968  case 557:
     7969
     7970/* Line 1806 of yacc.c  */
     7971#line 2107 "parser.yy"
    79487972    {}
    79497973    break;
    79507974
    7951   case 557:
    7952 
    7953 /* Line 1806 of yacc.c  */
    7954 #line 2104 "parser.yy"
     7975  case 558:
     7976
     7977/* Line 1806 of yacc.c  */
     7978#line 2108 "parser.yy"
    79557979    {}
    79567980    break;
    79577981
    7958   case 558:
    7959 
    7960 /* Line 1806 of yacc.c  */
    7961 #line 2105 "parser.yy"
     7982  case 559:
     7983
     7984/* Line 1806 of yacc.c  */
     7985#line 2109 "parser.yy"
    79627986    {}
    79637987    break;
    79647988
    7965   case 559:
    7966 
    7967 /* Line 1806 of yacc.c  */
    7968 #line 2140 "parser.yy"
     7989  case 560:
     7990
     7991/* Line 1806 of yacc.c  */
     7992#line 2144 "parser.yy"
    79697993    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79707994    break;
    79717995
    7972   case 561:
    7973 
    7974 /* Line 1806 of yacc.c  */
    7975 #line 2143 "parser.yy"
     7996  case 562:
     7997
     7998/* Line 1806 of yacc.c  */
     7999#line 2147 "parser.yy"
    79768000    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79778001    break;
    79788002
    7979   case 562:
    7980 
    7981 /* Line 1806 of yacc.c  */
    7982 #line 2145 "parser.yy"
     8003  case 563:
     8004
     8005/* Line 1806 of yacc.c  */
     8006#line 2149 "parser.yy"
    79838007    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79848008    break;
    79858009
    7986   case 563:
    7987 
    7988 /* Line 1806 of yacc.c  */
    7989 #line 2150 "parser.yy"
     8010  case 564:
     8011
     8012/* Line 1806 of yacc.c  */
     8013#line 2154 "parser.yy"
    79908014    {
    79918015                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    79948018    break;
    79958019
    7996   case 564:
    7997 
    7998 /* Line 1806 of yacc.c  */
    7999 #line 2155 "parser.yy"
     8020  case 565:
     8021
     8022/* Line 1806 of yacc.c  */
     8023#line 2159 "parser.yy"
    80008024    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80018025    break;
    80028026
    8003   case 565:
    8004 
    8005 /* Line 1806 of yacc.c  */
    8006 #line 2160 "parser.yy"
     8027  case 566:
     8028
     8029/* Line 1806 of yacc.c  */
     8030#line 2164 "parser.yy"
    80078031    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80088032    break;
    80098033
    8010   case 566:
    8011 
    8012 /* Line 1806 of yacc.c  */
    8013 #line 2162 "parser.yy"
     8034  case 567:
     8035
     8036/* Line 1806 of yacc.c  */
     8037#line 2166 "parser.yy"
    80148038    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80158039    break;
    80168040
    8017   case 567:
    8018 
    8019 /* Line 1806 of yacc.c  */
    8020 #line 2164 "parser.yy"
     8041  case 568:
     8042
     8043/* Line 1806 of yacc.c  */
     8044#line 2168 "parser.yy"
    80218045    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80228046    break;
    80238047
    8024   case 568:
    8025 
    8026 /* Line 1806 of yacc.c  */
    8027 #line 2169 "parser.yy"
     8048  case 569:
     8049
     8050/* Line 1806 of yacc.c  */
     8051#line 2173 "parser.yy"
    80288052    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80298053    break;
    80308054
    8031   case 569:
    8032 
    8033 /* Line 1806 of yacc.c  */
    8034 #line 2171 "parser.yy"
     8055  case 570:
     8056
     8057/* Line 1806 of yacc.c  */
     8058#line 2175 "parser.yy"
    80358059    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80368060    break;
    80378061
    8038   case 570:
    8039 
    8040 /* Line 1806 of yacc.c  */
    8041 #line 2173 "parser.yy"
     8062  case 571:
     8063
     8064/* Line 1806 of yacc.c  */
     8065#line 2177 "parser.yy"
    80428066    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80438067    break;
    80448068
    8045   case 571:
    8046 
    8047 /* Line 1806 of yacc.c  */
    8048 #line 2175 "parser.yy"
     8069  case 572:
     8070
     8071/* Line 1806 of yacc.c  */
     8072#line 2179 "parser.yy"
    80498073    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80508074    break;
    80518075
    8052   case 572:
    8053 
    8054 /* Line 1806 of yacc.c  */
    8055 #line 2180 "parser.yy"
     8076  case 573:
     8077
     8078/* Line 1806 of yacc.c  */
     8079#line 2184 "parser.yy"
    80568080    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80578081    break;
    80588082
    8059   case 573:
    8060 
    8061 /* Line 1806 of yacc.c  */
    8062 #line 2182 "parser.yy"
     8083  case 574:
     8084
     8085/* Line 1806 of yacc.c  */
     8086#line 2186 "parser.yy"
    80638087    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80648088    break;
    80658089
    8066   case 574:
    8067 
    8068 /* Line 1806 of yacc.c  */
    8069 #line 2192 "parser.yy"
     8090  case 575:
     8091
     8092/* Line 1806 of yacc.c  */
     8093#line 2196 "parser.yy"
    80708094    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80718095    break;
    80728096
    8073   case 576:
    8074 
    8075 /* Line 1806 of yacc.c  */
    8076 #line 2195 "parser.yy"
     8097  case 577:
     8098
     8099/* Line 1806 of yacc.c  */
     8100#line 2199 "parser.yy"
    80778101    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80788102    break;
    80798103
    8080   case 577:
    8081 
    8082 /* Line 1806 of yacc.c  */
    8083 #line 2200 "parser.yy"
     8104  case 578:
     8105
     8106/* Line 1806 of yacc.c  */
     8107#line 2204 "parser.yy"
    80848108    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    80858109    break;
    80868110
    8087   case 578:
    8088 
    8089 /* Line 1806 of yacc.c  */
    8090 #line 2202 "parser.yy"
     8111  case 579:
     8112
     8113/* Line 1806 of yacc.c  */
     8114#line 2206 "parser.yy"
    80918115    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80928116    break;
    80938117
    8094   case 579:
    8095 
    8096 /* Line 1806 of yacc.c  */
    8097 #line 2204 "parser.yy"
     8118  case 580:
     8119
     8120/* Line 1806 of yacc.c  */
     8121#line 2208 "parser.yy"
    80988122    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80998123    break;
    81008124
    8101   case 580:
    8102 
    8103 /* Line 1806 of yacc.c  */
    8104 #line 2209 "parser.yy"
     8125  case 581:
     8126
     8127/* Line 1806 of yacc.c  */
     8128#line 2213 "parser.yy"
    81058129    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81068130    break;
    81078131
    8108   case 581:
    8109 
    8110 /* Line 1806 of yacc.c  */
    8111 #line 2211 "parser.yy"
     8132  case 582:
     8133
     8134/* Line 1806 of yacc.c  */
     8135#line 2215 "parser.yy"
    81128136    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81138137    break;
    81148138
    8115   case 582:
    8116 
    8117 /* Line 1806 of yacc.c  */
    8118 #line 2213 "parser.yy"
     8139  case 583:
     8140
     8141/* Line 1806 of yacc.c  */
     8142#line 2217 "parser.yy"
    81198143    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81208144    break;
    81218145
    8122   case 583:
    8123 
    8124 /* Line 1806 of yacc.c  */
    8125 #line 2218 "parser.yy"
     8146  case 584:
     8147
     8148/* Line 1806 of yacc.c  */
     8149#line 2222 "parser.yy"
    81268150    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81278151    break;
    81288152
    8129   case 584:
    8130 
    8131 /* Line 1806 of yacc.c  */
    8132 #line 2220 "parser.yy"
     8153  case 585:
     8154
     8155/* Line 1806 of yacc.c  */
     8156#line 2224 "parser.yy"
    81338157    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81348158    break;
    81358159
    8136   case 585:
    8137 
    8138 /* Line 1806 of yacc.c  */
    8139 #line 2222 "parser.yy"
     8160  case 586:
     8161
     8162/* Line 1806 of yacc.c  */
     8163#line 2226 "parser.yy"
    81408164    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81418165    break;
    81428166
    8143   case 589:
    8144 
    8145 /* Line 1806 of yacc.c  */
    8146 #line 2237 "parser.yy"
     8167  case 590:
     8168
     8169/* Line 1806 of yacc.c  */
     8170#line 2241 "parser.yy"
    81478171    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    81488172    break;
    81498173
    8150   case 590:
    8151 
    8152 /* Line 1806 of yacc.c  */
    8153 #line 2239 "parser.yy"
     8174  case 591:
     8175
     8176/* Line 1806 of yacc.c  */
     8177#line 2243 "parser.yy"
    81548178    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    81558179    break;
    81568180
    8157   case 591:
    8158 
    8159 /* Line 1806 of yacc.c  */
    8160 #line 2241 "parser.yy"
     8181  case 592:
     8182
     8183/* Line 1806 of yacc.c  */
     8184#line 2245 "parser.yy"
    81618185    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81628186    break;
    81638187
    8164   case 592:
    8165 
    8166 /* Line 1806 of yacc.c  */
    8167 #line 2246 "parser.yy"
     8188  case 593:
     8189
     8190/* Line 1806 of yacc.c  */
     8191#line 2250 "parser.yy"
    81688192    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81698193    break;
    81708194
    8171   case 593:
    8172 
    8173 /* Line 1806 of yacc.c  */
    8174 #line 2248 "parser.yy"
     8195  case 594:
     8196
     8197/* Line 1806 of yacc.c  */
     8198#line 2252 "parser.yy"
    81758199    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81768200    break;
    81778201
    8178   case 594:
    8179 
    8180 /* Line 1806 of yacc.c  */
    8181 #line 2250 "parser.yy"
     8202  case 595:
     8203
     8204/* Line 1806 of yacc.c  */
     8205#line 2254 "parser.yy"
    81828206    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81838207    break;
    81848208
    8185   case 595:
    8186 
    8187 /* Line 1806 of yacc.c  */
    8188 #line 2255 "parser.yy"
     8209  case 596:
     8210
     8211/* Line 1806 of yacc.c  */
     8212#line 2259 "parser.yy"
    81898213    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81908214    break;
    81918215
    8192   case 596:
    8193 
    8194 /* Line 1806 of yacc.c  */
    8195 #line 2257 "parser.yy"
     8216  case 597:
     8217
     8218/* Line 1806 of yacc.c  */
     8219#line 2261 "parser.yy"
    81968220    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81978221    break;
    81988222
    8199   case 597:
    8200 
    8201 /* Line 1806 of yacc.c  */
    8202 #line 2259 "parser.yy"
     8223  case 598:
     8224
     8225/* Line 1806 of yacc.c  */
     8226#line 2263 "parser.yy"
    82038227    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82048228    break;
    82058229
    8206   case 598:
    8207 
    8208 /* Line 1806 of yacc.c  */
    8209 #line 2274 "parser.yy"
     8230  case 599:
     8231
     8232/* Line 1806 of yacc.c  */
     8233#line 2278 "parser.yy"
    82108234    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82118235    break;
    82128236
    8213   case 600:
    8214 
    8215 /* Line 1806 of yacc.c  */
    8216 #line 2277 "parser.yy"
     8237  case 601:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2281 "parser.yy"
    82178241    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82188242    break;
    82198243
    8220   case 601:
    8221 
    8222 /* Line 1806 of yacc.c  */
    8223 #line 2279 "parser.yy"
     8244  case 602:
     8245
     8246/* Line 1806 of yacc.c  */
     8247#line 2283 "parser.yy"
    82248248    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82258249    break;
    82268250
    8227   case 603:
    8228 
    8229 /* Line 1806 of yacc.c  */
    8230 #line 2285 "parser.yy"
     8251  case 604:
     8252
     8253/* Line 1806 of yacc.c  */
     8254#line 2289 "parser.yy"
    82318255    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82328256    break;
    82338257
    8234   case 604:
    8235 
    8236 /* Line 1806 of yacc.c  */
    8237 #line 2290 "parser.yy"
     8258  case 605:
     8259
     8260/* Line 1806 of yacc.c  */
     8261#line 2294 "parser.yy"
    82388262    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82398263    break;
    82408264
    8241   case 605:
    8242 
    8243 /* Line 1806 of yacc.c  */
    8244 #line 2292 "parser.yy"
     8265  case 606:
     8266
     8267/* Line 1806 of yacc.c  */
     8268#line 2296 "parser.yy"
    82458269    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82468270    break;
    82478271
    8248   case 606:
    8249 
    8250 /* Line 1806 of yacc.c  */
    8251 #line 2294 "parser.yy"
     8272  case 607:
     8273
     8274/* Line 1806 of yacc.c  */
     8275#line 2298 "parser.yy"
    82528276    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82538277    break;
    82548278
    8255   case 607:
    8256 
    8257 /* Line 1806 of yacc.c  */
    8258 #line 2299 "parser.yy"
     8279  case 608:
     8280
     8281/* Line 1806 of yacc.c  */
     8282#line 2303 "parser.yy"
    82598283    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82608284    break;
    82618285
    8262   case 608:
    8263 
    8264 /* Line 1806 of yacc.c  */
    8265 #line 2301 "parser.yy"
     8286  case 609:
     8287
     8288/* Line 1806 of yacc.c  */
     8289#line 2305 "parser.yy"
    82668290    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82678291    break;
    82688292
    8269   case 609:
    8270 
    8271 /* Line 1806 of yacc.c  */
    8272 #line 2303 "parser.yy"
     8293  case 610:
     8294
     8295/* Line 1806 of yacc.c  */
     8296#line 2307 "parser.yy"
    82738297    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82748298    break;
    82758299
    8276   case 610:
    8277 
    8278 /* Line 1806 of yacc.c  */
    8279 #line 2305 "parser.yy"
     8300  case 611:
     8301
     8302/* Line 1806 of yacc.c  */
     8303#line 2309 "parser.yy"
    82808304    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82818305    break;
    82828306
    8283   case 611:
    8284 
    8285 /* Line 1806 of yacc.c  */
    8286 #line 2310 "parser.yy"
     8307  case 612:
     8308
     8309/* Line 1806 of yacc.c  */
     8310#line 2314 "parser.yy"
    82878311    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    82888312    break;
    82898313
    8290   case 612:
    8291 
    8292 /* Line 1806 of yacc.c  */
    8293 #line 2312 "parser.yy"
     8314  case 613:
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2316 "parser.yy"
    82948318    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    82958319    break;
    82968320
    8297   case 613:
    8298 
    8299 /* Line 1806 of yacc.c  */
    8300 #line 2314 "parser.yy"
     8321  case 614:
     8322
     8323/* Line 1806 of yacc.c  */
     8324#line 2318 "parser.yy"
    83018325    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83028326    break;
    83038327
    8304   case 614:
    8305 
    8306 /* Line 1806 of yacc.c  */
    8307 #line 2324 "parser.yy"
     8328  case 615:
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2328 "parser.yy"
    83088332    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83098333    break;
    83108334
    8311   case 616:
    8312 
    8313 /* Line 1806 of yacc.c  */
    8314 #line 2327 "parser.yy"
     8335  case 617:
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2331 "parser.yy"
    83158339    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83168340    break;
    83178341
    8318   case 617:
    8319 
    8320 /* Line 1806 of yacc.c  */
    8321 #line 2329 "parser.yy"
     8342  case 618:
     8343
     8344/* Line 1806 of yacc.c  */
     8345#line 2333 "parser.yy"
    83228346    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83238347    break;
    83248348
    8325   case 618:
    8326 
    8327 /* Line 1806 of yacc.c  */
    8328 #line 2334 "parser.yy"
     8349  case 619:
     8350
     8351/* Line 1806 of yacc.c  */
     8352#line 2338 "parser.yy"
    83298353    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83308354    break;
    83318355
    8332   case 619:
    8333 
    8334 /* Line 1806 of yacc.c  */
    8335 #line 2336 "parser.yy"
     8356  case 620:
     8357
     8358/* Line 1806 of yacc.c  */
     8359#line 2340 "parser.yy"
    83368360    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83378361    break;
    83388362
    8339   case 620:
    8340 
    8341 /* Line 1806 of yacc.c  */
    8342 #line 2338 "parser.yy"
     8363  case 621:
     8364
     8365/* Line 1806 of yacc.c  */
     8366#line 2342 "parser.yy"
    83438367    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83448368    break;
    83458369
    8346   case 621:
    8347 
    8348 /* Line 1806 of yacc.c  */
    8349 #line 2343 "parser.yy"
     8370  case 622:
     8371
     8372/* Line 1806 of yacc.c  */
     8373#line 2347 "parser.yy"
    83508374    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83518375    break;
    83528376
    8353   case 622:
    8354 
    8355 /* Line 1806 of yacc.c  */
    8356 #line 2345 "parser.yy"
     8377  case 623:
     8378
     8379/* Line 1806 of yacc.c  */
     8380#line 2349 "parser.yy"
    83578381    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83588382    break;
    83598383
    8360   case 623:
    8361 
    8362 /* Line 1806 of yacc.c  */
    8363 #line 2347 "parser.yy"
     8384  case 624:
     8385
     8386/* Line 1806 of yacc.c  */
     8387#line 2351 "parser.yy"
    83648388    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83658389    break;
    83668390
    8367   case 624:
    8368 
    8369 /* Line 1806 of yacc.c  */
    8370 #line 2349 "parser.yy"
     8391  case 625:
     8392
     8393/* Line 1806 of yacc.c  */
     8394#line 2353 "parser.yy"
    83718395    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83728396    break;
    83738397
    8374   case 625:
    8375 
    8376 /* Line 1806 of yacc.c  */
    8377 #line 2354 "parser.yy"
     8398  case 626:
     8399
     8400/* Line 1806 of yacc.c  */
     8401#line 2358 "parser.yy"
    83788402    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83798403    break;
    83808404
    8381   case 626:
    8382 
    8383 /* Line 1806 of yacc.c  */
    8384 #line 2356 "parser.yy"
     8405  case 627:
     8406
     8407/* Line 1806 of yacc.c  */
     8408#line 2360 "parser.yy"
    83858409    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83868410    break;
    83878411
    8388   case 627:
    8389 
    8390 /* Line 1806 of yacc.c  */
    8391 #line 2358 "parser.yy"
     8412  case 628:
     8413
     8414/* Line 1806 of yacc.c  */
     8415#line 2362 "parser.yy"
    83928416    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83938417    break;
    83948418
    8395   case 628:
    8396 
    8397 /* Line 1806 of yacc.c  */
    8398 #line 2389 "parser.yy"
     8419  case 629:
     8420
     8421/* Line 1806 of yacc.c  */
     8422#line 2393 "parser.yy"
    83998423    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84008424    break;
    84018425
    8402   case 630:
    8403 
    8404 /* Line 1806 of yacc.c  */
    8405 #line 2392 "parser.yy"
     8426  case 631:
     8427
     8428/* Line 1806 of yacc.c  */
     8429#line 2396 "parser.yy"
    84068430    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84078431    break;
    84088432
    8409   case 631:
    8410 
    8411 /* Line 1806 of yacc.c  */
    8412 #line 2394 "parser.yy"
     8433  case 632:
     8434
     8435/* Line 1806 of yacc.c  */
     8436#line 2398 "parser.yy"
    84138437    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84148438    break;
    84158439
    8416   case 632:
    8417 
    8418 /* Line 1806 of yacc.c  */
    8419 #line 2399 "parser.yy"
     8440  case 633:
     8441
     8442/* Line 1806 of yacc.c  */
     8443#line 2403 "parser.yy"
    84208444    {
    84218445                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84248448    break;
    84258449
    8426   case 633:
    8427 
    8428 /* Line 1806 of yacc.c  */
    8429 #line 2404 "parser.yy"
     8450  case 634:
     8451
     8452/* Line 1806 of yacc.c  */
     8453#line 2408 "parser.yy"
    84308454    {
    84318455                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84348458    break;
    84358459
    8436   case 634:
    8437 
    8438 /* Line 1806 of yacc.c  */
    8439 #line 2412 "parser.yy"
     8460  case 635:
     8461
     8462/* Line 1806 of yacc.c  */
     8463#line 2416 "parser.yy"
    84408464    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84418465    break;
    84428466
    8443   case 635:
    8444 
    8445 /* Line 1806 of yacc.c  */
    8446 #line 2414 "parser.yy"
     8467  case 636:
     8468
     8469/* Line 1806 of yacc.c  */
     8470#line 2418 "parser.yy"
    84478471    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84488472    break;
    84498473
    8450   case 636:
    8451 
    8452 /* Line 1806 of yacc.c  */
    8453 #line 2416 "parser.yy"
     8474  case 637:
     8475
     8476/* Line 1806 of yacc.c  */
     8477#line 2420 "parser.yy"
    84548478    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84558479    break;
    84568480
    8457   case 637:
    8458 
    8459 /* Line 1806 of yacc.c  */
    8460 #line 2421 "parser.yy"
     8481  case 638:
     8482
     8483/* Line 1806 of yacc.c  */
     8484#line 2425 "parser.yy"
    84618485    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84628486    break;
    84638487
    8464   case 638:
    8465 
    8466 /* Line 1806 of yacc.c  */
    8467 #line 2423 "parser.yy"
     8488  case 639:
     8489
     8490/* Line 1806 of yacc.c  */
     8491#line 2427 "parser.yy"
    84688492    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84698493    break;
    84708494
    8471   case 639:
    8472 
    8473 /* Line 1806 of yacc.c  */
    8474 #line 2428 "parser.yy"
     8495  case 640:
     8496
     8497/* Line 1806 of yacc.c  */
     8498#line 2432 "parser.yy"
    84758499    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84768500    break;
    84778501
    8478   case 640:
    8479 
    8480 /* Line 1806 of yacc.c  */
    8481 #line 2430 "parser.yy"
     8502  case 641:
     8503
     8504/* Line 1806 of yacc.c  */
     8505#line 2434 "parser.yy"
    84828506    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84838507    break;
    84848508
    8485   case 642:
    8486 
    8487 /* Line 1806 of yacc.c  */
    8488 #line 2445 "parser.yy"
     8509  case 643:
     8510
     8511/* Line 1806 of yacc.c  */
     8512#line 2449 "parser.yy"
    84898513    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84908514    break;
    84918515
    8492   case 643:
    8493 
    8494 /* Line 1806 of yacc.c  */
    8495 #line 2447 "parser.yy"
     8516  case 644:
     8517
     8518/* Line 1806 of yacc.c  */
     8519#line 2451 "parser.yy"
    84968520    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84978521    break;
    84988522
    8499   case 644:
    8500 
    8501 /* Line 1806 of yacc.c  */
    8502 #line 2452 "parser.yy"
     8523  case 645:
     8524
     8525/* Line 1806 of yacc.c  */
     8526#line 2456 "parser.yy"
    85038527    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85048528    break;
    85058529
    8506   case 645:
    8507 
    8508 /* Line 1806 of yacc.c  */
    8509 #line 2454 "parser.yy"
     8530  case 646:
     8531
     8532/* Line 1806 of yacc.c  */
     8533#line 2458 "parser.yy"
    85108534    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85118535    break;
    85128536
    8513   case 646:
    8514 
    8515 /* Line 1806 of yacc.c  */
    8516 #line 2456 "parser.yy"
     8537  case 647:
     8538
     8539/* Line 1806 of yacc.c  */
     8540#line 2460 "parser.yy"
    85178541    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85188542    break;
    85198543
    8520   case 647:
    8521 
    8522 /* Line 1806 of yacc.c  */
    8523 #line 2458 "parser.yy"
     8544  case 648:
     8545
     8546/* Line 1806 of yacc.c  */
     8547#line 2462 "parser.yy"
    85248548    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85258549    break;
    85268550
    8527   case 648:
    8528 
    8529 /* Line 1806 of yacc.c  */
    8530 #line 2460 "parser.yy"
     8551  case 649:
     8552
     8553/* Line 1806 of yacc.c  */
     8554#line 2464 "parser.yy"
    85318555    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85328556    break;
    85338557
    8534   case 650:
    8535 
    8536 /* Line 1806 of yacc.c  */
    8537 #line 2466 "parser.yy"
     8558  case 651:
     8559
     8560/* Line 1806 of yacc.c  */
     8561#line 2470 "parser.yy"
    85388562    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85398563    break;
    85408564
    8541   case 651:
    8542 
    8543 /* Line 1806 of yacc.c  */
    8544 #line 2468 "parser.yy"
     8565  case 652:
     8566
     8567/* Line 1806 of yacc.c  */
     8568#line 2472 "parser.yy"
    85458569    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85468570    break;
    85478571
    8548   case 652:
    8549 
    8550 /* Line 1806 of yacc.c  */
    8551 #line 2470 "parser.yy"
     8572  case 653:
     8573
     8574/* Line 1806 of yacc.c  */
     8575#line 2474 "parser.yy"
    85528576    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85538577    break;
    85548578
    8555   case 653:
    8556 
    8557 /* Line 1806 of yacc.c  */
    8558 #line 2475 "parser.yy"
     8579  case 654:
     8580
     8581/* Line 1806 of yacc.c  */
     8582#line 2479 "parser.yy"
    85598583    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    85608584    break;
    85618585
    8562   case 654:
    8563 
    8564 /* Line 1806 of yacc.c  */
    8565 #line 2477 "parser.yy"
     8586  case 655:
     8587
     8588/* Line 1806 of yacc.c  */
     8589#line 2481 "parser.yy"
    85668590    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85678591    break;
    85688592
    8569   case 655:
    8570 
    8571 /* Line 1806 of yacc.c  */
    8572 #line 2479 "parser.yy"
     8593  case 656:
     8594
     8595/* Line 1806 of yacc.c  */
     8596#line 2483 "parser.yy"
    85738597    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85748598    break;
    85758599
    8576   case 656:
    8577 
    8578 /* Line 1806 of yacc.c  */
    8579 #line 2485 "parser.yy"
     8600  case 657:
     8601
     8602/* Line 1806 of yacc.c  */
     8603#line 2489 "parser.yy"
    85808604    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    85818605    break;
    85828606
    8583   case 657:
    8584 
    8585 /* Line 1806 of yacc.c  */
    8586 #line 2487 "parser.yy"
     8607  case 658:
     8608
     8609/* Line 1806 of yacc.c  */
     8610#line 2491 "parser.yy"
    85878611    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    85888612    break;
    85898613
    8590   case 659:
    8591 
    8592 /* Line 1806 of yacc.c  */
    8593 #line 2493 "parser.yy"
     8614  case 660:
     8615
     8616/* Line 1806 of yacc.c  */
     8617#line 2497 "parser.yy"
    85948618    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    85958619    break;
    85968620
    8597   case 660:
    8598 
    8599 /* Line 1806 of yacc.c  */
    8600 #line 2495 "parser.yy"
     8621  case 661:
     8622
     8623/* Line 1806 of yacc.c  */
     8624#line 2499 "parser.yy"
    86018625    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86028626    break;
    86038627
    8604   case 661:
    8605 
    8606 /* Line 1806 of yacc.c  */
    8607 #line 2497 "parser.yy"
     8628  case 662:
     8629
     8630/* Line 1806 of yacc.c  */
     8631#line 2501 "parser.yy"
    86088632    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86098633    break;
    86108634
    8611   case 662:
    8612 
    8613 /* Line 1806 of yacc.c  */
    8614 #line 2499 "parser.yy"
     8635  case 663:
     8636
     8637/* Line 1806 of yacc.c  */
     8638#line 2503 "parser.yy"
    86158639    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86168640    break;
    86178641
    8618   case 664:
    8619 
    8620 /* Line 1806 of yacc.c  */
    8621 #line 2514 "parser.yy"
     8642  case 665:
     8643
     8644/* Line 1806 of yacc.c  */
     8645#line 2518 "parser.yy"
    86228646    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86238647    break;
    86248648
    8625   case 665:
    8626 
    8627 /* Line 1806 of yacc.c  */
    8628 #line 2516 "parser.yy"
     8649  case 666:
     8650
     8651/* Line 1806 of yacc.c  */
     8652#line 2520 "parser.yy"
    86298653    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86308654    break;
    86318655
    8632   case 666:
    8633 
    8634 /* Line 1806 of yacc.c  */
    8635 #line 2521 "parser.yy"
     8656  case 667:
     8657
     8658/* Line 1806 of yacc.c  */
     8659#line 2525 "parser.yy"
    86368660    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    86378661    break;
    86388662
    8639   case 667:
    8640 
    8641 /* Line 1806 of yacc.c  */
    8642 #line 2523 "parser.yy"
     8663  case 668:
     8664
     8665/* Line 1806 of yacc.c  */
     8666#line 2527 "parser.yy"
    86438667    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    86448668    break;
    86458669
    8646   case 668:
    8647 
    8648 /* Line 1806 of yacc.c  */
    8649 #line 2525 "parser.yy"
     8670  case 669:
     8671
     8672/* Line 1806 of yacc.c  */
     8673#line 2529 "parser.yy"
    86508674    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86518675    break;
    86528676
    8653   case 669:
    8654 
    8655 /* Line 1806 of yacc.c  */
    8656 #line 2527 "parser.yy"
     8677  case 670:
     8678
     8679/* Line 1806 of yacc.c  */
     8680#line 2531 "parser.yy"
    86578681    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86588682    break;
    86598683
    8660   case 670:
    8661 
    8662 /* Line 1806 of yacc.c  */
    8663 #line 2529 "parser.yy"
     8684  case 671:
     8685
     8686/* Line 1806 of yacc.c  */
     8687#line 2533 "parser.yy"
    86648688    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86658689    break;
    86668690
    8667   case 672:
    8668 
    8669 /* Line 1806 of yacc.c  */
    8670 #line 2535 "parser.yy"
     8691  case 673:
     8692
     8693/* Line 1806 of yacc.c  */
     8694#line 2539 "parser.yy"
    86718695    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86728696    break;
    86738697
    8674   case 673:
    8675 
    8676 /* Line 1806 of yacc.c  */
    8677 #line 2537 "parser.yy"
     8698  case 674:
     8699
     8700/* Line 1806 of yacc.c  */
     8701#line 2541 "parser.yy"
    86788702    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86798703    break;
    86808704
    8681   case 674:
    8682 
    8683 /* Line 1806 of yacc.c  */
    8684 #line 2539 "parser.yy"
     8705  case 675:
     8706
     8707/* Line 1806 of yacc.c  */
     8708#line 2543 "parser.yy"
    86858709    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86868710    break;
    86878711
    8688   case 675:
    8689 
    8690 /* Line 1806 of yacc.c  */
    8691 #line 2544 "parser.yy"
     8712  case 676:
     8713
     8714/* Line 1806 of yacc.c  */
     8715#line 2548 "parser.yy"
    86928716    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    86938717    break;
    86948718
    8695   case 676:
    8696 
    8697 /* Line 1806 of yacc.c  */
    8698 #line 2546 "parser.yy"
     8719  case 677:
     8720
     8721/* Line 1806 of yacc.c  */
     8722#line 2550 "parser.yy"
    86998723    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87008724    break;
    87018725
    8702   case 677:
    8703 
    8704 /* Line 1806 of yacc.c  */
    8705 #line 2548 "parser.yy"
     8726  case 678:
     8727
     8728/* Line 1806 of yacc.c  */
     8729#line 2552 "parser.yy"
    87068730    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87078731    break;
    87088732
    8709   case 679:
    8710 
    8711 /* Line 1806 of yacc.c  */
    8712 #line 2555 "parser.yy"
     8733  case 680:
     8734
     8735/* Line 1806 of yacc.c  */
     8736#line 2559 "parser.yy"
    87138737    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87148738    break;
    87158739
    8716   case 681:
    8717 
    8718 /* Line 1806 of yacc.c  */
    8719 #line 2566 "parser.yy"
     8740  case 682:
     8741
     8742/* Line 1806 of yacc.c  */
     8743#line 2570 "parser.yy"
    87208744    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87218745    break;
    87228746
    8723   case 682:
    8724 
    8725 /* Line 1806 of yacc.c  */
    8726 #line 2569 "parser.yy"
     8747  case 683:
     8748
     8749/* Line 1806 of yacc.c  */
     8750#line 2573 "parser.yy"
    87278751    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87288752    break;
    87298753
    8730   case 683:
    8731 
    8732 /* Line 1806 of yacc.c  */
    8733 #line 2571 "parser.yy"
     8754  case 684:
     8755
     8756/* Line 1806 of yacc.c  */
     8757#line 2575 "parser.yy"
    87348758    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    87358759    break;
    87368760
    8737   case 684:
    8738 
    8739 /* Line 1806 of yacc.c  */
    8740 #line 2574 "parser.yy"
     8761  case 685:
     8762
     8763/* Line 1806 of yacc.c  */
     8764#line 2578 "parser.yy"
    87418765    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    87428766    break;
    87438767
    8744   case 685:
    8745 
    8746 /* Line 1806 of yacc.c  */
    8747 #line 2576 "parser.yy"
     8768  case 686:
     8769
     8770/* Line 1806 of yacc.c  */
     8771#line 2580 "parser.yy"
    87488772    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    87498773    break;
    87508774
    8751   case 686:
    8752 
    8753 /* Line 1806 of yacc.c  */
    8754 #line 2578 "parser.yy"
     8775  case 687:
     8776
     8777/* Line 1806 of yacc.c  */
     8778#line 2582 "parser.yy"
    87558779    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    87568780    break;
    87578781
    8758   case 688:
    8759 
    8760 /* Line 1806 of yacc.c  */
    8761 #line 2592 "parser.yy"
     8782  case 689:
     8783
     8784/* Line 1806 of yacc.c  */
     8785#line 2596 "parser.yy"
    87628786    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87638787    break;
    87648788
    8765   case 689:
    8766 
    8767 /* Line 1806 of yacc.c  */
    8768 #line 2594 "parser.yy"
     8789  case 690:
     8790
     8791/* Line 1806 of yacc.c  */
     8792#line 2598 "parser.yy"
    87698793    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87708794    break;
    87718795
    8772   case 690:
    8773 
    8774 /* Line 1806 of yacc.c  */
    8775 #line 2599 "parser.yy"
     8796  case 691:
     8797
     8798/* Line 1806 of yacc.c  */
     8799#line 2603 "parser.yy"
    87768800    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    87778801    break;
    87788802
    8779   case 691:
    8780 
    8781 /* Line 1806 of yacc.c  */
    8782 #line 2601 "parser.yy"
     8803  case 692:
     8804
     8805/* Line 1806 of yacc.c  */
     8806#line 2605 "parser.yy"
    87838807    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87848808    break;
    87858809
    8786   case 692:
    8787 
    8788 /* Line 1806 of yacc.c  */
    8789 #line 2603 "parser.yy"
     8810  case 693:
     8811
     8812/* Line 1806 of yacc.c  */
     8813#line 2607 "parser.yy"
    87908814    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87918815    break;
    87928816
    8793   case 693:
    8794 
    8795 /* Line 1806 of yacc.c  */
    8796 #line 2605 "parser.yy"
     8817  case 694:
     8818
     8819/* Line 1806 of yacc.c  */
     8820#line 2609 "parser.yy"
    87978821    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87988822    break;
    87998823
    8800   case 694:
    8801 
    8802 /* Line 1806 of yacc.c  */
    8803 #line 2607 "parser.yy"
     8824  case 695:
     8825
     8826/* Line 1806 of yacc.c  */
     8827#line 2611 "parser.yy"
    88048828    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88058829    break;
    88068830
    8807   case 696:
    8808 
    8809 /* Line 1806 of yacc.c  */
    8810 #line 2613 "parser.yy"
     8831  case 697:
     8832
     8833/* Line 1806 of yacc.c  */
     8834#line 2617 "parser.yy"
    88118835    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88128836    break;
    88138837
    8814   case 697:
    8815 
    8816 /* Line 1806 of yacc.c  */
    8817 #line 2615 "parser.yy"
     8838  case 698:
     8839
     8840/* Line 1806 of yacc.c  */
     8841#line 2619 "parser.yy"
    88188842    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88198843    break;
    88208844
    8821   case 698:
    8822 
    8823 /* Line 1806 of yacc.c  */
    8824 #line 2617 "parser.yy"
     8845  case 699:
     8846
     8847/* Line 1806 of yacc.c  */
     8848#line 2621 "parser.yy"
    88258849    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88268850    break;
    88278851
    8828   case 699:
    8829 
    8830 /* Line 1806 of yacc.c  */
    8831 #line 2622 "parser.yy"
     8852  case 700:
     8853
     8854/* Line 1806 of yacc.c  */
     8855#line 2626 "parser.yy"
    88328856    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    88338857    break;
    88348858
    8835   case 700:
    8836 
    8837 /* Line 1806 of yacc.c  */
    8838 #line 2624 "parser.yy"
     8859  case 701:
     8860
     8861/* Line 1806 of yacc.c  */
     8862#line 2628 "parser.yy"
    88398863    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88408864    break;
    88418865
    8842   case 703:
    8843 
    8844 /* Line 1806 of yacc.c  */
    8845 #line 2634 "parser.yy"
     8866  case 704:
     8867
     8868/* Line 1806 of yacc.c  */
     8869#line 2638 "parser.yy"
    88468870    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    88478871    break;
    88488872
    8849   case 706:
    8850 
    8851 /* Line 1806 of yacc.c  */
    8852 #line 2644 "parser.yy"
    8853     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8854     break;
    8855 
    88568873  case 707:
    8857 
    8858 /* Line 1806 of yacc.c  */
    8859 #line 2646 "parser.yy"
    8860     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8861     break;
    8862 
    8863   case 708:
    88648874
    88658875/* Line 1806 of yacc.c  */
     
    88688878    break;
    88698879
    8870   case 709:
     8880  case 708:
    88718881
    88728882/* Line 1806 of yacc.c  */
     
    88758885    break;
    88768886
    8877   case 710:
     8887  case 709:
    88788888
    88798889/* Line 1806 of yacc.c  */
     
    88828892    break;
    88838893
    8884   case 711:
     8894  case 710:
    88858895
    88868896/* Line 1806 of yacc.c  */
     
    88898899    break;
    88908900
     8901  case 711:
     8902
     8903/* Line 1806 of yacc.c  */
     8904#line 2656 "parser.yy"
     8905    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8906    break;
     8907
    88918908  case 712:
    88928909
    88938910/* Line 1806 of yacc.c  */
    8894 #line 2661 "parser.yy"
     8911#line 2658 "parser.yy"
     8912    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8913    break;
     8914
     8915  case 713:
     8916
     8917/* Line 1806 of yacc.c  */
     8918#line 2665 "parser.yy"
    88958919    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88968920    break;
    88978921
    8898   case 713:
    8899 
    8900 /* Line 1806 of yacc.c  */
    8901 #line 2663 "parser.yy"
     8922  case 714:
     8923
     8924/* Line 1806 of yacc.c  */
     8925#line 2667 "parser.yy"
    89028926    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89038927    break;
    89048928
    8905   case 714:
    8906 
    8907 /* Line 1806 of yacc.c  */
    8908 #line 2665 "parser.yy"
     8929  case 715:
     8930
     8931/* Line 1806 of yacc.c  */
     8932#line 2669 "parser.yy"
    89098933    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89108934    break;
    89118935
    8912   case 715:
    8913 
    8914 /* Line 1806 of yacc.c  */
    8915 #line 2667 "parser.yy"
     8936  case 716:
     8937
     8938/* Line 1806 of yacc.c  */
     8939#line 2671 "parser.yy"
    89168940    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89178941    break;
    89188942
    8919   case 716:
    8920 
    8921 /* Line 1806 of yacc.c  */
    8922 #line 2669 "parser.yy"
    8923     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8924     break;
    8925 
    89268943  case 717:
    8927 
    8928 /* Line 1806 of yacc.c  */
    8929 #line 2671 "parser.yy"
    8930     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8931     break;
    8932 
    8933   case 718:
    89348944
    89358945/* Line 1806 of yacc.c  */
     
    89388948    break;
    89398949
     8950  case 718:
     8951
     8952/* Line 1806 of yacc.c  */
     8953#line 2675 "parser.yy"
     8954    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8955    break;
     8956
    89408957  case 719:
    89418958
    89428959/* Line 1806 of yacc.c  */
    8943 #line 2675 "parser.yy"
     8960#line 2677 "parser.yy"
     8961    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8962    break;
     8963
     8964  case 720:
     8965
     8966/* Line 1806 of yacc.c  */
     8967#line 2679 "parser.yy"
    89448968    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89458969    break;
    89468970
    8947   case 720:
    8948 
    8949 /* Line 1806 of yacc.c  */
    8950 #line 2677 "parser.yy"
     8971  case 721:
     8972
     8973/* Line 1806 of yacc.c  */
     8974#line 2681 "parser.yy"
    89518975    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89528976    break;
    89538977
    8954   case 721:
    8955 
    8956 /* Line 1806 of yacc.c  */
    8957 #line 2679 "parser.yy"
     8978  case 722:
     8979
     8980/* Line 1806 of yacc.c  */
     8981#line 2683 "parser.yy"
    89588982    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89598983    break;
    89608984
    8961   case 722:
    8962 
    8963 /* Line 1806 of yacc.c  */
    8964 #line 2684 "parser.yy"
     8985  case 723:
     8986
     8987/* Line 1806 of yacc.c  */
     8988#line 2688 "parser.yy"
    89658989    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    89668990    break;
    89678991
    8968   case 723:
    8969 
    8970 /* Line 1806 of yacc.c  */
    8971 #line 2686 "parser.yy"
     8992  case 724:
     8993
     8994/* Line 1806 of yacc.c  */
     8995#line 2690 "parser.yy"
    89728996    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    89738997    break;
    89748998
    8975   case 724:
    8976 
    8977 /* Line 1806 of yacc.c  */
    8978 #line 2691 "parser.yy"
     8999  case 725:
     9000
     9001/* Line 1806 of yacc.c  */
     9002#line 2695 "parser.yy"
    89799003    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    89809004    break;
    89819005
    8982   case 725:
    8983 
    8984 /* Line 1806 of yacc.c  */
    8985 #line 2693 "parser.yy"
     9006  case 726:
     9007
     9008/* Line 1806 of yacc.c  */
     9009#line 2697 "parser.yy"
    89869010    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    89879011    break;
    89889012
    8989   case 727:
    8990 
    8991 /* Line 1806 of yacc.c  */
    8992 #line 2720 "parser.yy"
     9013  case 728:
     9014
     9015/* Line 1806 of yacc.c  */
     9016#line 2724 "parser.yy"
    89939017    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89949018    break;
    89959019
    8996   case 731:
    8997 
    8998 /* Line 1806 of yacc.c  */
    8999 #line 2731 "parser.yy"
    9000     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9001     break;
    9002 
    90039020  case 732:
    9004 
    9005 /* Line 1806 of yacc.c  */
    9006 #line 2733 "parser.yy"
    9007     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9008     break;
    9009 
    9010   case 733:
    90119021
    90129022/* Line 1806 of yacc.c  */
     
    90159025    break;
    90169026
    9017   case 734:
     9027  case 733:
    90189028
    90199029/* Line 1806 of yacc.c  */
     
    90229032    break;
    90239033
    9024   case 735:
     9034  case 734:
    90259035
    90269036/* Line 1806 of yacc.c  */
     
    90299039    break;
    90309040
    9031   case 736:
     9041  case 735:
    90329042
    90339043/* Line 1806 of yacc.c  */
     
    90369046    break;
    90379047
     9048  case 736:
     9049
     9050/* Line 1806 of yacc.c  */
     9051#line 2743 "parser.yy"
     9052    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9053    break;
     9054
    90389055  case 737:
    90399056
    90409057/* Line 1806 of yacc.c  */
    9041 #line 2748 "parser.yy"
     9058#line 2745 "parser.yy"
     9059    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9060    break;
     9061
     9062  case 738:
     9063
     9064/* Line 1806 of yacc.c  */
     9065#line 2752 "parser.yy"
    90429066    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90439067    break;
    90449068
    9045   case 738:
    9046 
    9047 /* Line 1806 of yacc.c  */
    9048 #line 2750 "parser.yy"
     9069  case 739:
     9070
     9071/* Line 1806 of yacc.c  */
     9072#line 2754 "parser.yy"
    90499073    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90509074    break;
    90519075
    9052   case 739:
    9053 
    9054 /* Line 1806 of yacc.c  */
    9055 #line 2752 "parser.yy"
     9076  case 740:
     9077
     9078/* Line 1806 of yacc.c  */
     9079#line 2756 "parser.yy"
    90569080    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90579081    break;
    90589082
    9059   case 740:
    9060 
    9061 /* Line 1806 of yacc.c  */
    9062 #line 2754 "parser.yy"
     9083  case 741:
     9084
     9085/* Line 1806 of yacc.c  */
     9086#line 2758 "parser.yy"
    90639087    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90649088    break;
    90659089
    9066   case 741:
    9067 
    9068 /* Line 1806 of yacc.c  */
    9069 #line 2756 "parser.yy"
     9090  case 742:
     9091
     9092/* Line 1806 of yacc.c  */
     9093#line 2760 "parser.yy"
    90709094    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90719095    break;
    90729096
    9073   case 742:
    9074 
    9075 /* Line 1806 of yacc.c  */
    9076 #line 2758 "parser.yy"
     9097  case 743:
     9098
     9099/* Line 1806 of yacc.c  */
     9100#line 2762 "parser.yy"
    90779101    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90789102    break;
    90799103
    9080   case 743:
    9081 
    9082 /* Line 1806 of yacc.c  */
    9083 #line 2763 "parser.yy"
     9104  case 744:
     9105
     9106/* Line 1806 of yacc.c  */
     9107#line 2767 "parser.yy"
    90849108    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    90859109    break;
    90869110
    9087   case 744:
    9088 
    9089 /* Line 1806 of yacc.c  */
    9090 #line 2768 "parser.yy"
     9111  case 745:
     9112
     9113/* Line 1806 of yacc.c  */
     9114#line 2772 "parser.yy"
    90919115    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    90929116    break;
    90939117
    9094   case 745:
    9095 
    9096 /* Line 1806 of yacc.c  */
    9097 #line 2770 "parser.yy"
     9118  case 746:
     9119
     9120/* Line 1806 of yacc.c  */
     9121#line 2774 "parser.yy"
    90989122    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90999123    break;
    91009124
    9101   case 746:
    9102 
    9103 /* Line 1806 of yacc.c  */
    9104 #line 2772 "parser.yy"
     9125  case 747:
     9126
     9127/* Line 1806 of yacc.c  */
     9128#line 2776 "parser.yy"
    91059129    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91069130    break;
    91079131
    9108   case 749:
    9109 
    9110 /* Line 1806 of yacc.c  */
    9111 #line 2796 "parser.yy"
     9132  case 750:
     9133
     9134/* Line 1806 of yacc.c  */
     9135#line 2800 "parser.yy"
    91129136    { (yyval.en) = 0; }
    91139137    break;
    91149138
    9115   case 750:
    9116 
    9117 /* Line 1806 of yacc.c  */
    9118 #line 2798 "parser.yy"
     9139  case 751:
     9140
     9141/* Line 1806 of yacc.c  */
     9142#line 2802 "parser.yy"
    91199143    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91209144    break;
     
    91239147
    91249148/* Line 1806 of yacc.c  */
    9125 #line 9126 "Parser/parser.cc"
     9149#line 9150 "Parser/parser.cc"
    91269150      default: break;
    91279151    }
     
    93549378
    93559379/* Line 2067 of yacc.c  */
    9356 #line 2801 "parser.yy"
     9380#line 2805 "parser.yy"
    93579381
    93589382// ----end of grammar----
  • src/Parser/parser.yy

    r98735ef rcce7872  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  1 13:51:20 2016
    13 // Update Count     : 1481
     12// Last Modified On : Mon Feb  1 18:22:42 2016
     13// Update Count     : 1483
    1414//
    1515
     
    319319        ;
    320320
    321 // no zero_one because ambiguity with 0.0 : double constant or field selection
    322321no_attr_identifier:
    323322        IDENTIFIER
     323        | zero_one                                                                                      // CFA
    324324        ;
    325325
     
    357357        | postfix_expression '(' argument_expression_list ')'
    358358                { $$ = new CompositeExprNode( $1, $3 ); }
     359        // ambiguity with .0 so space required after field-selection, e.g.
     360                //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
    359361        | postfix_expression '.' no_attr_identifier
    360362                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), $1, new VarRefNode( $3 )); }
     
    405407        no_attr_identifier
    406408                { $$ = new VarRefNode( $1 ); }
     409        // ambiguity with .0 so space required after field-selection, e.g.
     410                //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
    407411        | no_attr_identifier '.' field
    408412                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( $1 ), $3 ); }
  • src/ResolvExpr/CastCost.cc

    r98735ef rcce7872  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 06:57:43 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Mon Oct 05 14:48:45 2015
    13 // Update Count     : 5
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Tue Feb  2 15:34:36 2016
     13// Update Count     : 7
    1414//
    1515
     
    6969                PointerType *destAsPointer = dynamic_cast< PointerType* >( dest );
    7070                if ( destAsPointer && basicType->isInteger() ) {
    71                         cost = Cost( 1, 0, 0 );
     71                        //cost = Cost( 1, 0, 0 );
     72                        cost = Cost::infinity;
    7273                } else {
    7374                        ConversionCost::visit( basicType );
     
    8788                                        cost = Cost( 0, 0, 1 );
    8889                                } else if ( castResult < 0 ) {
    89                                         cost = Cost( 1, 0, 0 );
     90                                        cost = Cost::infinity;
     91                                        //cost = Cost( 1, 0, 0 );
    9092                                } // if
    9193                        } // if
    9294                } else if ( BasicType *destAsBasic = dynamic_cast< BasicType* >( dest ) ) {
    9395                        if ( destAsBasic->isInteger() ) {
    94                                 cost = Cost( 1, 0, 0 );
     96                                //cost = Cost( 1, 0, 0 );
     97                                cost = Cost::infinity;
    9598                        } // if
    9699                }
  • src/ResolvExpr/Resolver.cc

    r98735ef rcce7872  
    1010// Created On       : Sun May 17 12:17:01 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 24 17:33:54 2015
    13 // Update Count     : 178
     12// Last Modified On : Tue Feb  9 21:57:52 2016
     13// Update Count     : 179
    1414//
    1515
     
    322322                                                                                                BasicType::SignedInt);
    323323                                } else {
    324                                         DeclarationWithType * decl = lookupId(n);
     324                                        DeclarationWithType * decl = lookupId( n );
    325325                                        initContext = decl->get_type();
    326326                                }
     
    344344                                        if ( PointerType * pt = dynamic_cast< PointerType *>( newExpr->get_results().front() ) ) {
    345345                                                if ( isCharType( pt->get_base() ) ) {
    346                                                         // strip cast if we're initializing a char[] with a char *, e.g.
    347                                                         // char x[] = "hello";
     346                                                        // strip cast if we're initializing a char[] with a char *, e.g.  char x[] = "hello";
    348347                                                        CastExpr *ce = dynamic_cast< CastExpr * >( newExpr );
    349348                                                        singleInit->set_value( ce->get_arg() );
  • src/examples/abs.c

    r98735ef rcce7872  
    1010// Created On       : Thu Jan 28 18:26:16 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jan 31 09:24:45 2016
    13 // Update Count     : 41
     12// Last Modified On : Wed Feb  3 11:14:58 2016
     13// Update Count     : 43
    1414//
    1515
    1616#include <fstream>
    17 #include <algorithm>
     17#include <stdlib>                                                                               // abs
    1818
    1919int main( void ) {
  • src/examples/alloc.c

    r98735ef rcce7872  
    1 #if 0
     1//                               -*- Mode: C -*-
     2//
     3// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
     4//
     5// The contents of this file are covered under the licence agreement in the
     6// file "LICENCE" distributed with Cforall.
     7//
     8// alloc.c --
     9//
     10// Author           : Peter A. Buhr
     11// Created On       : Wed Feb  3 07:56:22 2016
     12// Last Modified By : Peter A. Buhr
     13// Last Modified On : Wed Feb  3 16:32:04 2016
     14// Update Count     : 38
     15//
     16
     17#include <fstream>
     18#include <stdlib>
    219extern "C" {
    3     typedef long unsigned int size_t;
    4     void *malloc( size_t size );
    5     void *calloc( size_t nmemb, size_t size );
    6     void *realloc( void *ptr, size_t size );
    7     void *memset( void *s, int c, size_t n );
    8     void free( void * ptr );
    9     int printf( const char *, ... );
    10 }
     20#include <stdlib.h>                                                                             // access C malloc, realloc
     21#include <stdio.h>
     22} // exten "C"
    1123
    12 forall( type T ) T * malloc( void ) {
    13     return (T *)malloc( sizeof(T) );
    14 }
    15 forall( type T ) T * calloc( size_t size ) {
    16     return (T *)calloc( size, sizeof(T) );
    17 }
    18 #endif
    19 typedef int size_t;
    20 forall( type T ) T * realloc( T *ptr, size_t n ) {
    21 //    return (T *)(void *)realloc( ptr, sizeof(T) );
    22 }
    23 //forall( type T ) T * realloc( T *ptr, size_t n, T c ) {
    24 //    return (T *)realloc( ptr, n );
    25 //}
    26 
    27 //int *foo( int *p, int c );
    28 //int *bar( int *p, int c );
    29 //int *baz( int *p, int c );
     24int * foo( int * p, int c ) { return p; }
     25int * bar( int * p, int c ) { return p; }
     26int * baz( int * p, int c ) { return p; }
    3027
    3128int main( void ) {
    32     // size_t size = 10;
    33     //int * x = malloc();
    34     int * x;
    35     // x = malloc();
    36     // x = calloc( 10 );                                        // calloc: array set to 0
    37     // x = realloc( x, 10 );
    38     // x = realloc( x, 10, '\0' );
    39     // x = malloc( 5 );
    40     // float *fp = malloc() + 1;
     29    ofstream * sout = ofstream_stdout();
    4130
    42     struct St1 { int x; double y; };
    43     struct St1 * st1;
    44 //    double *y;
    45     x = realloc( st1, 10 );                             // SHOULD FAIL!!
     31    size_t size = 10;
     32    int * p;
     33    struct S { int x; double y; } * s;
     34
     35    p = malloc( sizeof(*p) );                                                   // C malloc, type unsafe
     36        printf( "here1\n" );
     37    free( p );
     38    p = malloc();                                                                               // CFA malloc, type safe
     39        printf( "here2\n" );
     40    free( p );
     41    p = malloc( (char)'\0' );                                                                   // CFA malloc, type safe
     42        printf( "here3\n" );
     43    p = malloc( p, 1000 );                                                              // CFA remalloc, type safe
     44        printf( "here4\n" );
     45    free( p );
     46    p = calloc( size, sizeof(*p) );                                             // C calloc, type unsafe
     47        printf( "here5\n" );
     48    free( p );
     49    p = calloc( size );                                                                 // CFA calloc, type safe
     50        printf( "here6\n" );
     51    free( p );
     52    p = calloc( size );                                                                 // CFA calloc, type safe
     53    p = realloc( p, 1000 );                                                             // C realloc, type unsafe
     54    p = realloc( p, 1000, '\0' );                                               // CFA realloc, type unsafe
     55    p = memset( p );                                                                    // CFA memset, type unsafe
     56        printf( "here7\n" );
     57    free( p );
     58    p = memalign( 16 );
     59        printf( "here8\n" );
     60    free( p );
     61    posix_memalign( &p, 16 );
     62        printf( "here9\n" );
     63    free( p );
    4664#if 0
     65    float * fp = malloc() + 1;
     66    fprintf( stderr, "%p %p\n", fp, fp - 1 );
     67    free( fp - 1 );
     68    p = realloc( st1, size, '\0' );                                             // C realloc, type unsafe
     69
     70    double *y;
     71    x = memset( st1, '\0' );                                                    // SHOULD FAIL!!
     72
    4773    int *p;
    4874    p = foo( bar( baz( malloc(), 0 ), 0 ), 0 );
     
    74100    free( x );
    75101#endif
     102    free( sout );
    76103}
     104
     105// Local Variables: //
     106// tab-width: 4 //
     107// compile-command: "cfa alloc.c" //
     108// End: //
  • src/examples/minmax.c

    r98735ef rcce7872  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  1 11:35:53 2016
    13 // Update Count     : 44
     12// Last Modified On : Wed Feb  3 11:14:49 2016
     13// Update Count     : 46
    1414//
    1515
    1616#include <fstream>
    17 #include <algorithm>
     17#include <stdlib>                                                                               // min, max
    1818
    1919int main( void ) {
  • src/examples/random.c

    r98735ef rcce7872  
    44
    55#include <fstream>
    6 #include <algorithm>                                                                    // random
     6#include <stdlib>                                                                               // random
    77
    88int main() {
  • src/examples/sum.c

    r98735ef rcce7872  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jan 28 17:05:53 2016
    13 // Update Count     : 130
     12// Last Modified On : Sat Feb  6 11:57:42 2016
     13// Update Count     : 182
    1414//
    1515
     
    3434// Required to satisfy sumable as char does not have addition.
    3535const char 0;
    36 char ?+?( char op1, char op2 ) { return (int)op1 + op2; } // cast forces integer addition or recursion
    37 char ++?( char *op ) { *op += 1; return *op; }
    38 char ?++( char *op ) { char temp = *op; *op += 1; return temp; }
     36char ?+?( char t1, char t2 ) { return (int)t1 + t2; }   // cast forces integer addition, otherwise recursion
     37char ?+=?( char *t1, char t2 ) { *t1 = *t1 + t2; return *t1; }
     38char ++?( char *t ) { *t += 1; return *t; }
     39char ?++( char *t ) { char temp = *t; *t += 1; return temp; }
    3940
    4041int main( void ) {
    4142        const int low = 5, High = 15, size = High - low;
    42 
    4343        ofstream *sout = ofstream_stdout();
    4444
    45         char s = 0, a[size];
    46         char v = low;
     45        char s = 0, a[size], v = low;
    4746        for ( int i = 0; i < size; i += 1, v += 1 ) {
    4847                s += v;
    4948                a[i] = v;
    50         }
     49        } // for
    5150        sout | "sum from " | low | " to " | High | " is "
    5251                 | (int)sum( size, a ) | ", check " | (int)s | endl;
    5352
    54         int s = 0, a[size];
    55         int v = low;
     53        int s = 0, a[size], v = low;
    5654        for ( int i = 0; i < size; i += 1, v += 1 ) {
    5755                s += (int)v;
    5856                a[i] = (int)v;
    59         }
     57        } // for
    6058        sout | "sum from " | low | " to " | High | " is "
    6159                 | sum( size, (int *)a ) | ", check " | (int)s | endl;
    6260
    63         float s = 0.0, a[size];
    64         float v = low / 10.0;
     61        float s = 0.0, a[size], v = low / 10.0;
    6562        for ( int i = 0; i < size; i += 1, v += 0.1f ) {
    6663                s += (float)v;
    6764                a[i] = (float)v;
    68         }
     65        } // for
    6966        sout | "sum from " | low / 10.0 | " to " | High / 10.0 | " is "
    7067                 | sum( size, (float *)a ) | ", check " | (float)s | endl;
    7168
    72         double s = 0.0, a[size];
    73         double v = low / 10.0;
     69        double s = 0, a[size], v = low / 10.0;
    7470        for ( int i = 0; i < size; i += 1, v += 0.1 ) {
    7571                s += (double)v;
    7672                a[i] = (double)v;
    77         }
     73        } // for
    7874        sout | "sum from " | low / 10.0 | " to " | High / 10.0 | " is "
    7975                 | sum( size, (double *)a ) | ", check " | (double)s | endl;
     76
     77        struct S { int i, j; } 0 = { 0, 0 }, 1 = { 1, 1 };
     78        S ?+?( S t1, S t2 ) { S s = { t1.i + t2.i, t1.j + t2.j }; return s; }
     79        S ?+=?( S *t1, S t2 ) { *t1 = *t1 + t2; return *t1; }
     80        S ++?( S *t ) { *t += 1; return *t; }
     81        S ?++( S *t ) { S temp = *t; *t += 1; return temp; }
     82        ofstream * ?|?( ofstream * os, S v ) { return os | v.i | ' ' | v.j; }
     83
     84        S s = 0, a[size], v = { low, low };
     85        for ( int i = 0; i < size; i += 1, v += (S)1 ) {
     86                s += (S)v;
     87                a[i] = (S)v;
     88        } // for
     89        sout | "sum from " | low | " to " | High | " is "
     90                 | sum( size, (S *)a ) | ", check " | (S)s | endl;
    8091} // main
    8192
  • src/examples/swap.c

    r98735ef rcce7872  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  1 12:30:15 2016
    13 // Update Count     : 61
     12// Last Modified On : Wed Feb  3 11:14:04 2016
     13// Update Count     : 63
    1414//
    1515
    1616#include <fstream>
    17 #include <algorithm>
     17#include <stdlib>                                                                               // swap
    1818
    1919int main( void ) {
  • src/libcfa/Makefile.am

    r98735ef rcce7872  
    1111## Created On       : Sun May 31 08:54:01 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Sat Jan 30 18:56:45 2016
    14 ## Update Count     : 110
     13## Last Modified On : Wed Feb  3 11:19:35 2016
     14## Update Count     : 117
    1515###############################################################################
    1616
     
    5454
    5555# extension-less header files are overridden by default make rules => explicitly override rule
    56 % : %.c ${abs_top_srcdir}/src/driver/cfa-cpp
     56% : %.c
    5757        true
    5858
    59 libs = algorithm iostream fstream iterator
     59.c.o : ${abs_top_srcdir}/src/driver/cfa-cpp
     60        ${CC} ${CFLAGS} -c -o $@ $<
     61
     62libs = stdlib iostream fstream iterator
    6063libcfa_a_SOURCES = libcfa-prelude.c ${libs:=.c}
    6164
  • src/libcfa/Makefile.in

    r98735ef rcce7872  
    8383libcfa_a_AR = $(AR) $(ARFLAGS)
    8484libcfa_a_LIBADD =
    85 am__objects_1 = algorithm.$(OBJEXT) iostream.$(OBJEXT) \
    86         fstream.$(OBJEXT) iterator.$(OBJEXT)
     85am__objects_1 = stdlib.$(OBJEXT) iostream.$(OBJEXT) fstream.$(OBJEXT) \
     86        iterator.$(OBJEXT)
    8787am_libcfa_a_OBJECTS = libcfa-prelude.$(OBJEXT) $(am__objects_1)
    8888libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS)
     
    213213MAINTAINERCLEANFILES = ${addprefix ${libdir}/,${cfalib_DATA}} \
    214214        ${addprefix ${libdir}/,${lib_LIBRARIES}} ${includedir}/*
    215 libs = algorithm iostream fstream iterator
     215libs = stdlib iostream fstream iterator
    216216libcfa_a_SOURCES = libcfa-prelude.c ${libs:=.c}
    217217cheaders = bfd bfdlink demangle dialog evdns evhttp evrpc expat fcntl form gcrypt math
     
    293293        -rm -f *.tab.c
    294294
    295 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/algorithm.Po@am__quote@
    296295@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstream.Po@am__quote@
    297296@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iostream.Po@am__quote@
    298297@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iterator.Po@am__quote@
    299298@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa-prelude.Po@am__quote@
    300 
    301 .c.o:
    302 @am__fastdepCC_TRUE@    $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
    303 @am__fastdepCC_TRUE@    $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
    304 @AMDEP_TRUE@@am__fastdepCC_FALSE@       source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
    305 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    306 @am__fastdepCC_FALSE@   $(COMPILE) -c $<
     299@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdlib.Po@am__quote@
    307300
    308301.c.obj:
     
    585578
    586579# extension-less header files are overridden by default make rules => explicitly override rule
    587 % : %.c ${abs_top_srcdir}/src/driver/cfa-cpp
     580% : %.c
    588581        true
     582
     583.c.o : ${abs_top_srcdir}/src/driver/cfa-cpp
     584        ${CC} ${CFLAGS} -c -o $@ $<
    589585
    590586# Tell versions [3.59,3.63) of GNU make to not export all variables.
  • src/libcfa/iostream.c

    r98735ef rcce7872  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  1 14:20:30 2016
    13 // Update Count     : 60
     12// Last Modified On : Wed Feb 10 15:48:46 2016
     13// Update Count     : 66
    1414//
    1515
     
    1919#include <stdio.h>
    2020#include <string.h>                                                                             // strlen
     21#include <float.h>                                                                              // DBL_DIG, LDBL_DIG
    2122#include <complex.h>                                                                    // creal, cimag
    2223}
     
    7273ostype * ?|?( ostype *os, double d ) {
    7374        char buffer[32];
    74         return write( os, buffer, sprintf( buffer, "%g", d ) );
     75        return write( os, buffer, sprintf( buffer, "%.*lg", DBL_DIG, d ) );
    7576} // ?|?
    7677
     
    7879ostype * ?|?( ostype *os, long double d ) {
    7980        char buffer[32];
    80         return write( os, buffer, sprintf( buffer, "%Lg", d ) );
     81        return write( os, buffer, sprintf( buffer, "%.*Lg", LDBL_DIG, d ) );
    8182} // ?|?
    8283
Note: See TracChangeset for help on using the changeset viewer.