Changeset 097e2b0


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

constructor/destructor, more example programs

Files:
5 added
10 edited

Legend:

Unmodified
Added
Removed
  • doc/refrat/refrat.tex

    r02e5ab6 r097e2b0  
    105105% adjust listings macros
    106106\lstdefinelanguage{CFA}[ANSI]{C}%
    107 {morekeywords={asm,_At,_Atomic,catch,catchResume,choose,_Complex,context,disable,dtype,enable,
    108 fallthru,finally,forall,ftype,_Imaginary,lvalue,restrict,throw,throwResume,try,type,},
     107{morekeywords={asm,_Alignas,_Alignof,_At,_Atomic,_Bool,catch,catchResume,choose,_Complex,context,disable,dtype,enable,
     108        fallthru,finally,forall,ftype,_Generic,_Imaginary,inline,lvalue,_Noreturn,restrict,_Static_assert,
     109        _Thread_local,throw,throwResume,try,type,},
    109110}%
    110111
  • src/Parser/ExpressionNode.cc

    r02e5ab6 r097e2b0  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:17:07 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Aug 12 13:51:11 2015
    13 // Update Count     : 254
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Oct  5 16:37:24 2015
     13// Update Count     : 255
    1414//
    1515
     
    418418
    419419CompositeExprNode::CompositeExprNode( ExpressionNode *f, ExpressionNode *arg1, ExpressionNode *arg2):
    420         function( f ), arguments( arg1) {
    421         arguments->set_link( arg2);
     420        function( f ), arguments( arg1 ) {
     421        arguments->set_link( arg2 );
    422422}
    423423
  • src/Parser/InitializerNode.cc

    r02e5ab6 r097e2b0  
    1010// Created On       : Sat May 16 13:20:24 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun  6 15:49:42 2015
    13 // Update Count     : 3
     12// Last Modified On : Thu Oct  8 17:18:55 2015
     13// Update Count     : 4
    1414//
    1515
     
    8080
    8181        if ( aggregate ) {
    82                 assert( next_init() != 0 );
     82                //assert( next_init() != 0 );
    8383
    8484                std::list< Initializer *> initlist;
  • src/Parser/lex.cc

    r02e5ab6 r097e2b0  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 177
    385 #define YY_END_OF_BUFFER 178
     384#define YY_NUM_RULES 178
     385#define YY_END_OF_BUFFER 179
    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[851] =
     393static yyconst flex_int16_t yy_accept[852] =
    394394    {   0,
    395395        0,    0,    0,    0,    0,    0,  113,  113,  116,  116,
    396       178,  176,    7,    9,    8,  136,  115,  100,  141,  144,
     396      179,  177,    7,    9,    8,  136,  115,  100,  141,  144,
    397397      112,  123,  124,  139,  137,  127,  138,  130,  140,  105,
    398       106,  107,  128,  129,  146,  148,  147,  149,  176,  100,
    399       121,  176,  122,  142,  100,  102,  100,  100,  100,  100,
     398      106,  107,  128,  129,  146,  148,  147,  149,  177,  100,
     399      121,  177,  122,  142,  100,  102,  100,  100,  100,  100,
    400400      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    401       100,  125,  145,  126,  143,    7,  176,    4,    4,  177,
    402       103,  177,  104,  113,  114,  120,  116,  117,    7,    9,
    403         0,    8,  153,  171,  100,    0,  165,  135,  158,  166,
     401      100,  125,  145,  126,  143,    7,  177,    4,    4,  178,
     402      103,  178,  104,  113,  114,  120,  116,  117,    7,    9,
     403        0,    8,  153,  172,  100,    0,  165,  135,  158,  166,
    404404      163,  150,  161,  151,  162,  160,    0,  110,    3,    0,
    405405
     
    407407      107,  107,  107,    0,  107,  133,  134,  132,  154,  156,
    408408      152,  157,  155,    0,    0,    0,    0,    0,    0,    0,
    409         0,    0,    0,    0,    0,    0,    0,    0,  101,    0,
    410       115,  112,  100,    0,    0,  168,    0,  100,  100,  100,
     409        0,    0,    0,    0,    0,    0,    0,    0,  101,  171,
     410        0,  115,  112,  100,    0,    0,  168,    0,  100,  100,
    411411      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    412       100,  100,  100,  100,   39,  100,  100,  100,  100,  100,
    413       100,  100,  100,  100,  100,   57,  100,  100,  100,  100,
     412      100,  100,  100,  100,  100,   39,  100,  100,  100,  100,
     413      100,  100,  100,  100,  100,  100,   57,  100,  100,  100,
    414414      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    415       100,  167,  159,    7,    0,    0,    0,    2,    0,    5,
    416 
    417       103,    0,    0,    0,  113,    0,  119,  118,  118,    0,
    418         0,    0,  116,    0,    0,    0,    0,    0,    0,    0,
    419         0,    0,    0,    0,    0,    0,    0,    0,  131,  110,
    420         0,  110,    0,    0,    6,    0,  108,    0,    0,    0,
    421       110,    0,  108,  108,  108,  108,    0,  109,    0,    0,
    422       107,  107,  107,  107,    0,  169,  170,    0,  174,  172,
    423         0,    0,    0,  101,    0,    0,    0,    0,    0,    0,
    424         0,    0,  100,   17,  100,  100,  100,  100,  100,  100,
     415      100,  100,  167,  159,    7,    0,    0,    0,    2,    0,
     416
     417        5,  103,    0,    0,    0,  113,    0,  119,  118,  118,
     418        0,    0,    0,  116,    0,    0,    0,    0,    0,    0,
     419        0,    0,    0,    0,    0,    0,    0,    0,    0,  131,
     420      110,    0,  110,    0,    0,    6,    0,  108,    0,    0,
     421        0,  110,    0,  108,  108,  108,  108,    0,  109,    0,
     422        0,  107,  107,  107,  107,    0,  169,  170,    0,  175,
     423      173,    0,    0,    0,  101,    0,    0,    0,    0,    0,
     424        0,    0,    0,  100,   17,  100,  100,  100,  100,  100,
    425425      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    426       100,   14,  100,  100,  100,  100,  100,  100,  100,  100,
     426      100,  100,   14,  100,  100,  100,  100,  100,  100,  100,
    427427
    428428      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    429        51,  100,  100,  100,   64,  100,  100,  100,  100,  100,
    430       100,  100,  100,  100,  100,  100,  100,   87,  100,  100,
    431       100,  100,  100,  100,  100,    0,    0,    0,    0,    0,
    432         0,    0,    0,  118,    0,    0,    0,    0,    0,  118,
    433         0,    0,  175,    0,    0,    0,    0,    0,    0,    0,
    434         0,  110,    0,    0,    0,  110,    0,  108,  108,    0,
    435         0,  109,  109,    0,  109,    0,  109,  107,  107,    0,
    436         0,    0,    0,    0,    0,    0,    0,    0,    0,  173,
     429      100,   51,  100,  100,  100,   64,  100,  100,  100,  100,
     430      100,  100,  100,  100,  100,  100,  100,  100,   87,  100,
     431      100,  100,  100,  100,  100,  100,    0,    0,    0,    0,
     432        0,    0,    0,    0,  118,    0,    0,    0,    0,    0,
     433      118,    0,    0,  176,    0,    0,    0,    0,    0,    0,
     434        0,    0,  110,    0,    0,    0,  110,    0,  108,  108,
     435        0,    0,  109,  109,    0,  109,    0,  109,  107,  107,
     436        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     437      174,  100,  100,  100,  100,  100,  100,  100,  100,  100,
     438
    437439      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    438 
    439       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    440       100,  100,   21,  100,   24,  100,   27,  100,  100,  100,
    441       100,  100,  100,  100,   42,  100,   44,  100,  100,  100,
    442       100,  100,  100,  100,   56,  100,   67,  100,  100,  100,
    443       100,  100,  100,  100,  100,  100,  100,  100,   88,  100,
    444       100,   95,  100,  100,    0,    0,    0,    0,    0,    0,
    445         0,    0,    0,    0,    0,    0,    0,    0,  118,    0,
    446         0,    0,    0,    0,  110,    0,    0,    0,    0,    0,
    447         0,  109,  109,    0,  111,    0,  109,  109,    0,    0,
     440      100,  100,  100,   21,  100,   24,  100,   27,  100,  100,
     441      100,  100,  100,  100,  100,   42,  100,   44,  100,  100,
     442      100,  100,  100,  100,  100,   56,  100,   67,  100,  100,
     443      100,  100,  100,  100,  100,  100,  100,  100,  100,   88,
     444      100,  100,   95,  100,  100,    0,    0,    0,    0,    0,
     445        0,    0,    0,    0,    0,    0,    0,    0,    0,  118,
     446        0,    0,    0,    0,    0,  110,    0,    0,    0,    0,
     447        0,    0,  109,  109,    0,  111,    0,  109,  109,    0,
    448448        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    449449
    450         0,  100,  100,   22,  100,  100,  100,  100,  100,  100,
    451       100,   15,  100,  100,  100,  100,  100,  100,  100,  100,
    452       100,  100,  100,  100,  100,   23,   25,  100,   32,  100,
    453       100,  100,  100,  100,   41,  100,  100,  100,  100,   49,
    454       100,  100,   54,  100,  100,  100,  100,  100,   75,  100,
    455       100,  100,  100,  100,   85,  100,  100,   93,  100,  100,
    456        99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     450        0,    0,  100,  100,   22,  100,  100,  100,  100,  100,
     451      100,  100,   15,  100,  100,  100,  100,  100,  100,  100,
     452      100,  100,  100,  100,  100,  100,   23,   25,  100,   32,
     453      100,  100,  100,  100,  100,   41,  100,  100,  100,  100,
     454       49,  100,  100,   54,  100,  100,  100,  100,  100,   75,
     455      100,  100,  100,  100,  100,   85,  100,  100,   93,  100,
     456      100,   99,    0,    0,    0,    0,    0,    0,    0,    0,
    457457        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    458       111,    0,    0,  109,  111,  111,    0,  109,    0,    0,
    459         0,    0,    0,    0,    0,    0,    0,    0,  100,    0,
    460 
    461       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    462       100,  100,  100,  100,  100,   59,  100,  100,  100,  100,
    463       100,  100,  100,  100,   28,  100,  100,  100,  100,   40,
    464        43,   46,  100,  100,   52,  100,   61,   68,  100,  100,
    465        74,   76,   79,   80,   82,   83,  100,  100,   90,  100,
    466       100,    0,    1,    0,    0,    0,    0,    0,    0,  103,
    467         0,    0,    0,  118,    0,    0,    0,    0,  111,    0,
     458        0,  111,    0,    0,  109,  111,  111,    0,  109,    0,
    468459        0,    0,    0,    0,    0,    0,    0,    0,    0,  100,
    469       100,   18,  100,  100,  100,  100,  100,  100,  100,   16,
    470       100,  100,   33,  100,  100,  100,  100,  100,  100,  100,
    471 
    472       100,  100,  100,  100,   35,  100,   37,   38,  100,   48,
    473        53,  100,  100,  100,   89,  100,  100,    0,    0,    0,
     460
     461        0,  100,  100,  100,  100,  100,  100,  100,  100,  100,
     462      100,  100,  100,  100,  100,  100,   59,  100,  100,  100,
     463      100,  100,  100,  100,  100,   28,  100,  100,  100,  100,
     464       40,   43,   46,  100,  100,   52,  100,   61,   68,  100,
     465      100,   74,   76,   79,   80,   82,   83,  100,  100,   90,
     466      100,  100,    0,    1,    0,    0,    0,    0,    0,    0,
     467      103,    0,    0,    0,  118,    0,    0,    0,    0,  111,
    474468        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    475        10,   11,   29,   55,  100,  100,  100,  100,  100,  100,
    476       100,  100,  100,  100,   60,   62,   65,  100,  100,   77,
    477        91,  100,  100,   36,   47,   70,   71,  100,   94,   96,
     469      100,  100,   18,  100,  100,  100,  100,  100,  100,  100,
     470       16,  100,  100,   33,  100,  100,  100,  100,  100,  100,
     471
     472      100,  100,  100,  100,  100,   35,  100,   37,   38,  100,
     473       48,   53,  100,  100,  100,   89,  100,  100,    0,    0,
    478474        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    479         0,    0,  100,   69,  100,  100,   12,  100,   30,   34,
    480       100,  100,  100,   66,  100,  100,  100,  100,  100,  100,
    481         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    482 
    483         0,    0,    0,   58,  100,  100,  100,  100,  100,  100,
    484        50,   63,   72,   78,   92,   97,  100,  100,    0,    0,
    485         0,    0,    0,    0,    0,    0,  100,  100,   13,   19,
    486        31,  100,  100,  100,   26,   86,    0,    0,  100,  100,
    487       100,  100,   73,   98,  100,   84,   20,   45,   81,    0
     475        0,   10,   11,   29,   55,  100,  100,  100,  100,  100,
     476      100,  100,  100,  100,  100,   60,   62,   65,  100,  100,
     477       77,   91,  100,  100,   36,   47,   70,   71,  100,   94,
     478       96,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     479        0,    0,    0,  100,   69,  100,  100,   12,  100,   30,
     480       34,  100,  100,  100,   66,  100,  100,  100,  100,  100,
     481      100,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     482
     483        0,    0,    0,    0,   58,  100,  100,  100,  100,  100,
     484      100,   50,   63,   72,   78,   92,   97,  100,  100,    0,
     485        0,    0,    0,    0,    0,    0,    0,  100,  100,   13,
     486       19,   31,  100,  100,  100,   26,   86,    0,    0,  100,
     487      100,  100,  100,   73,   98,  100,   84,   20,   45,   81,
     488        0
    488489    } ;
    489490
     
    525526        4,    1,    1,    5,    1,    1,    1,    1,    1,    1,
    526527        6,    1,    7,    7,    7,    7,    7,    7,    1,    1,
    527         1,    1,    1,    1,    1,    8,    8,    8,    8,    8,
    528         8,    4,    4,    9,    4,   10,    4,    4,    4,    9,
    529         4,    1,   11,    1,    1,   12,    1,    8,    8,    8,
    530         8,    8,    8,    4,    4,    4,    4,    9,    4,    4,
    531         4,   10,    4,    4,    4,    9,    4,    4,    4,    4,
     528        1,    8,    1,    1,    1,    9,    9,    9,    9,    9,
     529        9,    4,    4,   10,    4,   11,    4,    4,    4,   10,
     530        4,    1,   12,    1,    1,   13,    1,    9,    9,    9,
     531        9,    9,    9,    4,    4,    4,    4,   10,    4,    4,
     532        4,   11,    4,    4,    4,   10,    4,    4,    4,    4,
    532533        4,    1,    1,    1,    1
    533534    } ;
    534535
    535 static yyconst flex_int16_t yy_base[1024] =
     536static yyconst flex_int16_t yy_base[1025] =
    536537    {   0,
    537         0,   84, 2338, 2332,   94,    0,  177,  178,  179,  180,
    538      2348, 2604,  191, 2604,  197,   55, 2604, 2294,   60,  173,
    539      2604, 2604, 2604,   56,  188, 2604,  191,  189,  204,  216,
    540       275,    0, 2310, 2604,  216, 2310,  152,  344, 2288,  220,
    541      2604,  159, 2604,  217,  226, 2604,  185,  134,  212,  251,
    542       237,  270,  137,  257,  235,  165,  305,  314,  333,  238,
    543       193, 2604,  225, 2604, 2301,  402,  390, 2604, 2312, 2604,
    544      2280,  204, 2604,    0, 2604,  426,    0, 2604,  417, 2604,
    545       439,  451, 2604,  498, 2274,  205, 2604, 2604, 2604, 2604,
    546      2604, 2292, 2604, 2291, 2604, 2604, 2298,  559, 2604, 2315,
    547 
    548      2604,  605,  413,  498,  516,  274,  243,  229,  293,  305,
    549         0,  289,  253,  273,  334, 2604, 2604, 2604, 2285, 2604,
    550      2604, 2604, 2279, 2278,  298,  314, 2293,  356,  429,  439,
    551       366,  400,  433,  448, 2269,  434, 2218,  438, 2248,  319,
    552      2604, 2604,  484, 2239, 2238, 2604, 2211,  310,  282,  377,
    553       329,  409,  424,  422,  421,  503,  438,  434,  451,  474,
    554       475,  430,  348,  461,  441,  479,  494,  499,  437,  502,
    555       492,  520,  281,  514,  521, 2234,  536,  535,  537,  544,
    556       539,  545,  567,  498,  540,  526,  563,  598,  570,  571,
    557       548, 2604, 2604,  653,  662, 2283,  668, 2604,  674, 2604,
    558 
    559      2232,  562, 2223, 2222,    0,  640, 2604, 2604,  680, 2221,
    560      2200, 2199,    0, 2218,  616,  640,  646,  689,  688,  650,
    561       678,  679,  682, 2215,  685,  692, 2192, 2186, 2604,  714,
    562       707, 2604, 2185, 2237, 2604,  703,    0,  596,  760,  725,
    563       767,  778,  603, 2604, 2190, 2165,    0,  768, 2211,  822,
    564       696, 2604, 2182, 2157,  828, 2604, 2604, 2190, 2604, 2604,
    565       725,  728, 2164, 2164,  723, 2160, 2154, 2153,    0, 2152,
    566         0, 2120,  703,  708,  744,  676,  711,  722,  754,  767,
    567       756,  764,  757,  778,  766,  773,  805,  806,  807,  784,
    568       808, 2150,  809,  812,  813,  233,  760,  814,  816,  818,
    569 
    570       819,  315,  821,  830,  715,  828,  833,  834,  836,  843,
    571       845,  835,  829,  846, 2149,  714,  851,  852,  853,  855,
    572       768,  856,  860,  857,  858,  861,  862, 2145,  863,  549,
    573       864,  871,  868,  885,  874,  937,  938, 2140, 2134, 2133,
    574         0, 2132,    0,  925,  929, 2126,    0, 2125,    0, 2124,
    575         0, 2142, 2604,  924,  925, 2121, 2118,    0, 2112,    0,
    576       937,  943,  965,  949,  989,  995, 1003, 2604, 2604,  952,
    577       992, 1011,  957, 1050,  934, 1044,  984, 2604, 2604, 2111,
    578      2110, 2104,    0, 2103,    0, 2102,    0, 2096,    0, 2604,
    579       933,  926,  877,  982,  941,  989,  947,  929,  984,  990,
    580 
    581       927,  987, 1016,  997, 1027, 1031, 1028, 1038,  588, 1029,
    582      1039,  957, 2098, 1042, 2097, 1048, 2091, 1049, 1046, 1052,
    583      1051, 1066, 1054, 1055, 2090, 1062, 2089, 1071, 1057, 1073,
    584      1075, 1078, 1076, 1080, 2083, 1081, 2082, 1082, 1083, 1086,
    585      1087, 1090, 1085, 1084, 1095, 1092, 1103, 1100, 1101, 1111,
    586      1113, 2081, 1114, 1117, 1165, 2072,    0, 2071,    0, 2070,
    587         0, 2049,    0, 1159, 2048,    0, 2043,    0, 2042, 2041,
    588      2035,    0, 2034,    0, 1167, 1173, 1219, 1130, 1230, 1159,
    589      1134, 1137, 2604, 1236, 1243, 1254, 2045, 2015, 2026, 2025,
    590         0, 2019,    0, 2018,    0, 2017,    0, 2013,    0, 2012,
    591 
    592         0, 1118, 1150, 2014, 1151, 1154, 1156, 1157, 1159, 1168,
    593      1175, 1181, 1165, 1180, 1220, 1187, 1230, 1212, 1232, 1265,
    594      1238, 1237, 1239, 1240, 1243, 2010, 1122, 1242, 2009, 1244,
    595      1250, 1254, 1257, 1252, 2008, 1255, 1260, 1262, 1263, 2004,
    596      1266, 1268, 1997, 1271, 1275, 1276, 1279, 1282, 1995,  988,
    597       665, 1283, 1285, 1288, 1293, 1286, 1291, 1991, 1289, 1296,
    598      1989, 2033, 1979,    0, 1978,    0, 1972,    0, 1971,    0,
    599      1970,    0, 1964,    0, 1963,    0, 1962,    0, 1340, 1346,
    600      1353, 1364, 1956, 2604, 1376, 2604, 1387, 2604, 1955,    0,
    601      1954,    0, 1948,    0, 1947,    0,    0,    0, 1949,    0,
    602 
    603      1365, 1297, 1294, 1332, 1305, 1330, 1333, 1366, 1352, 1373,
    604      1342, 1372, 1371, 1377, 1381, 1382, 1384, 1408, 1389, 1392,
    605      1396, 1388, 1395, 1398, 1943, 1399, 1400, 1409, 1410, 1942,
    606      1941, 1935, 1413, 1171, 1934, 1411, 1933, 1929, 1415, 1418,
    607      1928, 1927, 1923, 1922, 1921, 1888, 1420, 1416, 1887, 1427,
    608      1422, 1932, 2604, 1878,    0, 1877,    0,    0,    0, 1874,
    609         0,    0,    0, 2604,    0,    0,    0,    0, 1468, 1474,
    610      1520, 1870,    0, 1869,    0,    0,    0,    0, 1865, 1414,
    611      1450, 1867, 1432, 1454, 1452, 1453, 1463, 1464, 1451, 1866,
    612      1302, 1470, 1472, 1434, 1497, 1482, 1487, 1500, 1498, 1486,
    613 
    614      1480, 1502, 1503, 1504, 1862, 1505, 1861, 1860, 1506, 1853,
    615      1832, 1507, 1508, 1510, 1831, 1509, 1511,    0,    0, 1827,
    616      1823, 1822, 1821, 1562,    0, 1817, 1816, 1815, 1811, 1810,
    617      1812, 1808, 1807, 1806, 1518, 1522, 1476, 1513, 1540, 1519,
    618      1515, 1521, 1543, 1554, 1802, 1544, 1801, 1545, 1546, 1549,
    619      1555, 1551, 1557, 1800, 1796, 1795, 1794, 1559, 1790, 1789,
    620      1785, 1781, 1780, 1779, 1770, 1769, 1766, 1765, 1764, 1747,
    621      1739, 1738, 1560, 1738, 1562, 1561, 1564, 1563, 1568, 1732,
    622      1570, 1595, 1572, 1729, 1574, 1573, 1578, 1577, 1584, 1589,
    623      1718, 1717, 1698, 1697, 1696, 1688, 1687, 1648, 1647, 1646,
    624 
    625      1645, 1644, 1643, 1645, 1590, 1591, 1594, 1592, 1599, 1593,
    626      1644, 1643, 1603, 1642, 1640, 1604, 1608, 1609, 1636, 1635,
    627      1634, 1633, 1631, 1630, 1427, 1351, 1612, 1614, 1167, 1613,
    628      1120, 1620, 1622, 1624,  870,  613,  578,  452, 1615, 1626,
    629      1628, 1629,  372,  287, 1630,  236,  200,  199,  166, 2604,
    630      1705, 1717, 1729, 1738, 1747, 1759, 1768, 1780, 1792, 1804,
    631      1811, 1820, 1826, 1832, 1838, 1844, 1850, 1856, 1862, 1868,
    632      1874, 1886, 1892, 1895, 1902, 1904, 1910, 1916, 1922, 1924,
    633      1930, 1935, 1947, 1959, 1965, 1971, 1977, 1983, 1985, 1991,
    634      1993, 1999, 2001, 2007, 2009, 2015, 2017, 2023, 2025, 2031,
    635 
    636      2033, 2039, 2046, 2052, 2058, 2064, 2070, 2072, 2078, 2080,
    637      2086, 2088, 2094, 2099, 2111, 2117, 2123, 2125, 2131, 2133,
    638      2139, 2141, 2147, 2149, 2155, 2157, 2163, 2165, 2171, 2177,
    639      2179, 2185, 2187, 2193, 2199, 2205, 2207, 2213, 2215, 2221,
    640      2223, 2229, 2231, 2237, 2239, 2245, 2250, 2262, 2268, 2274,
    641      2276, 2282, 2284, 2290, 2292, 2298, 2300, 2306, 2308, 2314,
    642      2316, 2322, 2324, 2330, 2332, 2338, 2344, 2346, 2352, 2354,
    643      2360, 2362, 2368, 2370, 2372, 2377, 2383, 2391, 2397, 2403,
    644      2405, 2411, 2413, 2415, 2420, 2426, 2428, 2430, 2432, 2434,
    645      2436, 2438, 2440, 2446, 2448, 2454, 2456, 2458, 2460, 2462,
    646 
    647      2471, 2477, 2479, 2481, 2487, 2493, 2499, 2501, 2507, 2513,
    648      2519, 2525, 2531, 2537, 2543, 2549, 2555, 2561, 2567, 2573,
    649      2579, 2585, 2591
     538        0,   84, 2247, 2245,   94,    0,  177,  178,  179,  180,
     539     2259, 2762,  191, 2762,  197,   55, 2762, 2203,   60,  173,
     540     2762, 2762, 2762,   56,  188, 2762,  191,  189,  204,  216,
     541      275,    0, 2222, 2762,  216, 2222,  152,  344,  155,  220,
     542     2762,  159, 2762,  217,  226, 2762,  185,  154,  212,  251,
     543      237,  270,  235,  257,  241,  193,  305,  314,  333,  238,
     544      228, 2762,  225, 2762, 2218,  402,  390, 2762, 2227, 2762,
     545     2193,  204, 2762,    0, 2762,  426,    0, 2762,  417, 2762,
     546      439,  451, 2762,  498, 2192,  235, 2762, 2762, 2762, 2762,
     547     2762, 2210, 2762, 2208, 2762, 2762, 2218,  559, 2762, 2235,
     548
     549     2762,  605,  413,  498,  516,  289,  253,  197,  293,  305,
     550        0,  319,  280,  231,  334, 2762, 2762, 2762, 2205, 2762,
     551     2762, 2762, 2203, 2200,  298,  356, 2213,  366,  429,  439,
     552      398,  434,  438,  448, 2194,  443, 2143,  459, 2172, 2762,
     553      335, 2762, 2762,  495, 2166, 2163, 2762, 2136,  460,  282,
     554      297,  329,  409,  437,  442,  281,  503,  414,  474,  372,
     555      484,  493,  378,  434,  433,  325,  494,  459,  499,  492,
     556      502,  509,  461,  301,  515,  535, 2164,  536,  520,  538,
     557      544,  541,  545,  567,  539,  421,  554,  563,  597,  570,
     558      571,  548, 2762, 2762,  652,  662, 2212,  668, 2762,  674,
     559
     560     2762, 2159,  567, 2153, 2152,    0,  645, 2762, 2762,  680,
     561     2151, 2149, 2146,    0, 2167,  466,  640,  646,  689,  688,
     562      650,  678,  679,  682, 2164,  685,  692, 2141, 2139, 2762,
     563      714,  707, 2762, 2136, 2186, 2762,  703,    0,  697,  760,
     564      766,  779,  801,  696, 2762, 2144, 2119,    0,  787, 2164,
     565      825,  698, 2762, 2138, 2111,  841, 2762, 2762, 2144, 2762,
     566     2762,  717,  718, 2123, 2122,  719, 2099, 2097, 2096,    0,
     567     2093,    0, 2062,  585,  589,  704,  610,  675,  703,  540,
     568      706,  707,  743,  726,  720,  745,  787,  709,  748,  715,
     569      756,  759, 2092,  761,  781,  792,  817,  785,  791,  808,
     570
     571      788,  818,  819,  807,  822,  821,  820,  832,  833,  834,
     572      835,  837,  838,  843,  845, 2091,  276,  847,  850,  846,
     573      849,  851,  852,  855,  853,  854,  856,  865, 2089,  867,
     574      904,  866,  873,  197,  874,  870,  938,  939, 2083, 2080,
     575     2079,    0, 2078,    0,  926,  930, 2076,    0, 2073,    0,
     576     2070,    0, 2091, 2762,  901,  912, 2070, 2066,    0, 2063,
     577        0,  935,  942,  953,  964,  976,  989,  998, 2762, 2762,
     578      939,  962, 1014,  987, 1023,  928, 1041, 1005, 2762, 2762,
     579     2060, 2059, 2058,    0, 2056,    0, 2053,    0, 2052,    0,
     580     2762,  911,  940,  976,  966,  881, 1003,  944, 1000,  974,
     581
     582      941, 1015, 1018, 1019, 1021, 1006, 1025, 1027, 1039, 1041,
     583     1012, 1046, 1048, 2054, 1047, 2052,  975, 2049, 1050, 1051,
     584     1057, 1052, 1053, 1054, 1058, 2048, 1068, 2047, 1072, 1055,
     585     1074, 1076, 1078, 1079, 1081, 2045, 1080, 2042, 1082, 1085,
     586     1084, 1087, 1086, 1091, 1094, 1088, 1095, 1096,  588, 1109,
     587     1111, 1110, 2038, 1113, 1114, 1166, 2031,    0, 2029,    0,
     588     2027,    0, 2024,    0, 1159, 2022,    0, 2020,    0, 2017,
     589     2014, 2013,    0, 2012,    0, 1166, 1172, 1218, 1131, 1229,
     590     1155, 1132, 1129, 2762, 1235, 1242, 1253, 2022, 1995, 2004,
     591     2003,    0, 2002,    0, 2000,    0, 1997,    0, 1994,    0,
     592
     593     1993,    0, 1149, 1120, 1995, 1153, 1159, 1164, 1156, 1167,
     594     1165, 1161,  233, 1211, 1219, 1162, 1186, 1229, 1173, 1185,
     595      166, 1235, 1236, 1222, 1237, 1242, 1993, 1249, 1241, 1990,
     596     1171, 1248, 1240, 1251, 1253, 1987, 1254, 1256, 1259, 1260,
     597     1986, 1261, 1264, 1985, 1268, 1270, 1267, 1272, 1274, 1983,
     598     1278,  921, 1280, 1281, 1282, 1290, 1283, 1288, 1980, 1293,
     599     1295, 1977, 2026, 1972,    0, 1970,    0, 1967,    0, 1964,
     600        0, 1963,    0, 1962,    0, 1960,    0, 1957,    0, 1341,
     601     1347, 1354, 1365, 1954, 2762, 1377, 2762, 1388, 2762, 1953,
     602        0, 1952,    0, 1950,    0, 1947,    0,    0,    0, 1949,
     603
     604        0, 1366, 1297, 1296, 1333, 1306, 1331, 1300, 1301, 1353,
     605     1115, 1343, 1367, 1355, 1372, 1373, 1299, 1383, 1402, 1375,
     606     1381, 1385, 1378, 1386, 1388, 1948, 1393, 1399, 1404, 1405,
     607     1946, 1943, 1942, 1407, 1406, 1941, 1411, 1939, 1906, 1409,
     608     1334, 1904, 1903, 1900, 1897, 1896, 1895, 1410, 1413, 1893,
     609     1412, 1416, 1940, 2762, 1884,    0, 1883,    0,    0,    0,
     610     1885,    0,    0,    0, 2762,    0,    0,    0,    0, 1464,
     611     1470, 1516, 1880,    0, 1877,    0,    0,    0,    0, 1876,
     612     1425, 1420, 1878, 1424, 1447, 1448, 1429, 1456, 1457, 1451,
     613     1876, 1462, 1463, 1475, 1471, 1493, 1481, 1494, 1496, 1495,
     614
     615     1497, 1499, 1466, 1500, 1483, 1873, 1502, 1872, 1871, 1482,
     616     1869, 1866, 1501, 1506, 1508, 1862, 1509, 1514,    0,    0,
     617     1855, 1851, 1835, 1834, 1560,    0, 1833, 1831, 1828, 1827,
     618     1826, 1827, 1824, 1823, 1822, 1516, 1520, 1522, 1417, 1515,
     619     1518, 1512, 1539, 1540, 1552, 1820, 1543, 1817, 1544, 1548,
     620     1551, 1556, 1545, 1526, 1816, 1815, 1813, 1810, 1550, 1809,
     621     1808, 1803, 1800, 1799, 1798, 1796, 1793, 1792, 1791, 1789,
     622     1786, 1785, 1784, 1557, 1785, 1558, 1562, 1561, 1565, 1566,
     623     1782, 1567, 1594, 1571, 1781, 1570, 1572, 1578, 1577, 1582,
     624     1583, 1777, 1775, 1768, 1766, 1765, 1762, 1761, 1760, 1758,
     625
     626     1741, 1732, 1731, 1728, 1724, 1576, 1588, 1590, 1591, 1601,
     627     1589, 1721, 1714, 1602, 1712, 1711, 1607, 1603, 1608, 1687,
     628     1686, 1685, 1678, 1676, 1675, 1633, 1632, 1609, 1611, 1632,
     629     1619, 1626, 1620, 1621, 1625, 1596, 1477, 1462, 1152, 1613,
     630     1614, 1627, 1631, 1119, 1016, 1615,  762,  725,  676,  549,
     631     2762, 1690, 1703, 1716, 1726, 1736, 1749, 1759, 1772, 1785,
     632     1798, 1806, 1816, 1823, 1830, 1837, 1844, 1851, 1858, 1865,
     633     1872, 1879, 1892, 1899, 1903, 1911, 1914, 1921, 1928, 1935,
     634     1938, 1945, 1951, 1964, 1977, 1984, 1991, 1998, 2005, 2008,
     635     2015, 2018, 2025, 2028, 2035, 2038, 2045, 2048, 2055, 2058,
     636
     637     2065, 2068, 2075, 2083, 2090, 2097, 2104, 2111, 2114, 2121,
     638     2124, 2131, 2134, 2141, 2147, 2160, 2167, 2174, 2177, 2184,
     639     2187, 2194, 2197, 2204, 2207, 2214, 2217, 2224, 2227, 2234,
     640     2241, 2244, 2251, 2254, 2261, 2268, 2275, 2278, 2285, 2288,
     641     2295, 2298, 2305, 2308, 2315, 2318, 2325, 2331, 2344, 2351,
     642     2358, 2361, 2368, 2371, 2378, 2381, 2388, 2391, 2398, 2401,
     643     2408, 2411, 2418, 2421, 2428, 2431, 2438, 2445, 2448, 2455,
     644     2458, 2465, 2468, 2475, 2478, 2481, 2487, 2494, 2503, 2510,
     645     2517, 2520, 2527, 2530, 2533, 2539, 2546, 2549, 2552, 2555,
     646     2558, 2561, 2564, 2567, 2574, 2577, 2584, 2587, 2590, 2593,
     647
     648     2596, 2606, 2613, 2616, 2619, 2626, 2633, 2640, 2643, 2650,
     649     2657, 2664, 2671, 2678, 2685, 2692, 2699, 2706, 2713, 2720,
     650     2727, 2734, 2741, 2748
    650651    } ;
    651652
    652 static yyconst flex_int16_t yy_def[1024] =
     653static yyconst flex_int16_t yy_def[1025] =
    653654    {   0,
    654       850,    1,  851,  851,  850,    5,  852,  852,  853,  853,
    655       850,  850,  850,  850,  850,  850,  850,  854,  850,  850,
    656       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    657       850,   31,  850,  850,  850,  850,  850,  850,  855,  854,
    658       850,  850,  850,  850,  854,  850,  854,  854,  854,  854,
    659       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    660       854,  850,  850,  850,  850,  850,  856,  850,  850,  850,
    661       857,  850,  850,  858,  850,  850,  859,  850,  850,  850,
    662       850,  850,  850,  850,  854,  850,  850,  850,  850,  850,
    663       850,  850,  850,  850,  850,  850,  850,  850,  850,  860,
    664 
    665       850,  850,   30,  850,  850,  850,  850,  861,   30,  850,
    666        31,  850,  850,   31,  850,  850,  850,  850,  850,  850,
    667       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    668       850,  850,  850,  850,  850,  850,  850,  850,  862,  850,
    669       850,  850,  854,  863,  864,  850,  850,  854,  854,  854,
    670       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    671       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    672       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    673       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    674       854,  850,  850,  850,  856,  856,  856,  850,  856,  850,
    675 
    676       857,  850,  865,  866,  858,  850,  850,  850,  850,  867,
    677       868,  869,  859,  850,  850,  850,  850,  850,  850,  850,
    678       850,  850,  850,  850,  850,  850,  870,  871,  850,  850,
    679       850,  850,  230,  872,  850,  850,  103,  103,  850,  850,
    680       850,  850,  850,  850,  850,  850,  873,  874,  875,  850,
    681       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    682       850,  850,  850,  862,  850,  876,  877,  878,  879,  880,
    683       881,  850,  882,  882,  882,  882,  882,  882,  882,  882,
    684       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    685       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    686 
    687       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    688       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    689       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    690       882,  882,  882,  882,  882,  883,  884,  885,  886,  887,
    691       888,  889,  890,  850,  850,  891,  892,  893,  894,  895,
    692       896,  850,  850,  850,  850,  850,  897,  898,  899,  900,
    693       850,  850,  850,  850,  850,  850,  850,  850,  850,  901,
    694       902,  903,  850,  850,  850,  903,  850,  850,  850,  904,
    695       905,  906,  907,  908,  909,  910,  911,  912,  913,  850,
    696       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    697 
    698       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    699       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    700       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    701       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    702       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    703       914,  914,  914,  914,  915,  916,  917,  918,  919,  920,
    704       921,  922,  923,  850,  924,  925,  926,  927,  928,  928,
    705       929,  930,  931,  932,  850,  850,  850,  933,  850,  933,
    706       850,  850,  850,  850,  850,  850,  850,  850,  934,  935,
     655      851,    1,  852,  852,  851,    5,  853,  853,  854,  854,
     656      851,  851,  851,  851,  851,  851,  851,  855,  851,  851,
     657      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     658      851,   31,  851,  851,  851,  851,  851,  851,  856,  855,
     659      851,  851,  851,  851,  855,  851,  855,  855,  855,  855,
     660      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
     661      855,  851,  851,  851,  851,  851,  857,  851,  851,  851,
     662      858,  851,  851,  859,  851,  851,  860,  851,  851,  851,
     663      851,  851,  851,  851,  855,  851,  851,  851,  851,  851,
     664      851,  851,  851,  851,  851,  851,  851,  851,  851,  861,
     665
     666      851,  851,   30,  851,  851,  851,  851,  862,   30,  851,
     667       31,  851,  851,   31,  851,  851,  851,  851,  851,  851,
     668      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     669      851,  851,  851,  851,  851,  851,  851,  851,  863,  851,
     670      851,  851,  851,  855,  864,  865,  851,  851,  855,  855,
     671      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
     672      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
     673      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
     674      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
     675      855,  855,  851,  851,  851,  857,  857,  857,  851,  857,
     676
     677      851,  858,  851,  866,  867,  859,  851,  851,  851,  851,
     678      868,  869,  870,  860,  851,  851,  851,  851,  851,  851,
     679      851,  851,  851,  851,  851,  851,  851,  871,  872,  851,
     680      851,  851,  851,  231,  873,  851,  851,  103,  103,  851,
     681      851,  851,  851,  851,  851,  851,  851,  874,  875,  876,
     682      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     683      851,  851,  851,  851,  863,  851,  877,  878,  879,  880,
     684      881,  882,  851,  883,  883,  883,  883,  883,  883,  883,
     685      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     686      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     687
     688      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     689      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     690      883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
     691      883,  883,  883,  883,  883,  883,  884,  885,  886,  887,
     692      888,  889,  890,  891,  851,  851,  892,  893,  894,  895,
     693      896,  897,  851,  851,  851,  851,  851,  898,  899,  900,
     694      901,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     695      902,  903,  904,  851,  851,  851,  904,  851,  851,  851,
     696      905,  906,  907,  908,  909,  910,  911,  912,  913,  914,
     697      851,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     698
     699      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     700      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     701      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     702      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     703      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
     704      915,  915,  915,  915,  915,  916,  917,  918,  919,  920,
     705      921,  922,  923,  924,  851,  925,  926,  927,  928,  929,
     706      929,  930,  931,  932,  933,  851,  851,  851,  934,  851,
     707      934,  851,  851,  851,  851,  851,  851,  851,  851,  935,
    707708      936,  937,  938,  939,  940,  941,  942,  943,  944,  945,
    708709
    709       946,  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,  947,  947,  947,  947,  947,
    712       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    713       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    714       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    715       947,  948,  949,  950,  951,  952,  953,  954,  955,  956,
    716       957,  958,  959,  960,  961,  962,  963,  964,  850,  850,
    717       850,  850,  965,  850,  850,  850,  850,  850,  966,  967,
     710      946,  947,  948,  948,  948,  948,  948,  948,  948,  948,
     711      948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
     712      948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
     713      948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
     714      948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
     715      948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
     716      948,  948,  949,  950,  951,  952,  953,  954,  955,  956,
     717      957,  958,  959,  960,  961,  962,  963,  964,  965,  851,
     718      851,  851,  851,  966,  851,  851,  851,  851,  851,  967,
    718719      968,  969,  970,  971,  972,  973,  974,  975,  976,  977,
    719720
    720       976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    721       976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    722       976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    723       976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    724       976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    725       976,  978,  850,  979,  980,  981,  982,  983,  984,  985,
    726       986,  987,  988,  850,  989,  990,  991,  992,  850,  850,
    727       850,  993,  994,  995,  996,  997,  998,  999, 1000, 1001,
    728      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    729      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    730 
    731      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    732      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1003,  981,
    733      1004, 1005, 1006,  850, 1007,  993,  995, 1008, 1009, 1000,
    734      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    735      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    736      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    737      1010, 1011, 1004, 1012, 1005, 1013, 1006, 1014, 1015, 1008,
    738      1016, 1009, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    739      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    740      1017, 1010, 1018, 1011, 1019, 1012, 1020, 1013, 1021, 1014,
    741 
    742      1022, 1015, 1016, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    743      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1023, 1017,
    744      1018, 1019, 1020,  995, 1021, 1022, 1001, 1001, 1001, 1001,
    745      1001, 1001, 1001, 1001, 1001, 1001, 1023,  995, 1001, 1001,
    746      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,    0,
    747       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    748       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    749       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    750       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    751       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    752 
    753       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    754       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    755       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    756       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    757       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    758       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    759       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    760       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    761       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    762       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    763 
    764       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    765       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    766       850,  850,  850
     721      978,  977,  977,  977,  977,  977,  977,  977,  977,  977,
     722      977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
     723      977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
     724      977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
     725      977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
     726      977,  977,  979,  851,  980,  981,  982,  983,  984,  985,
     727      986,  987,  988,  989,  851,  990,  991,  992,  993,  851,
     728      851,  851,  994,  995,  996,  997,  998,  999, 1000, 1001,
     729     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
     730     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
     731
     732     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
     733     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1003, 1004,
     734      982, 1005, 1006, 1007,  851, 1008,  994,  996, 1009, 1010,
     735     1001, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
     736     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
     737     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
     738     1002, 1011, 1012, 1005, 1013, 1006, 1014, 1007, 1015, 1016,
     739     1009, 1017, 1010, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
     740     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
     741     1002, 1018, 1011, 1019, 1012, 1020, 1013, 1021, 1014, 1022,
     742
     743     1015, 1023, 1016, 1017, 1002, 1002, 1002, 1002, 1002, 1002,
     744     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1024,
     745     1018, 1019, 1020, 1021,  996, 1022, 1023, 1002, 1002, 1002,
     746     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1024,  996, 1002,
     747     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
     748        0,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     749      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     750      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     751      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     752      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     753
     754      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     755      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     756      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     757      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     758      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     759      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     760      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     761      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     762      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     763      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     764
     765      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     766      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     767      851,  851,  851,  851
    767768    } ;
    768769
    769 static yyconst flex_int16_t yy_nxt[2690] =
     770static yyconst flex_int16_t yy_nxt[2848] =
    770771    {   0,
    771772       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    788789       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    789790       71,   71,   71,   71,   71,   70,   70,   70,   70,   75,
    790        75,   78,   78,  122,  123,   89,   86,   78,   78,   86,
     791       75,   78,   78,  122,  123,   89,  140,   78,   78,  619,
    791792       75,   75,   79,   80,   81,   81,   81,   79,   81,   80,
    792793
    793        82,   82,   82,   81,   90,   92,  159,  175,  144,   97,
    794        94,   98,   98,   98,   98,   98,   98,   86,   86,   93,
    795        99,   84,   95,   96,   84,  100,  180,  117,  141,   76,
    796        76,   76,   76,  142,  145,  101,  102,   86,  103,  103,
    797       103,  103,  104,  104,  118,   86,  119,  120,  146,  247,
    798       147,   86,   86,  203,  227,  105,  192,  191,  157,  106,
    799       158,  148,  149,  150,   86,  107,  108,  151,  152,  160,
    800       153,  109,   86,  154,  155,  143,  161,  105,   86,  204,
    801       228,  156,  162,  110,  249,   86,  245,   86,   86,   86,
    802        86,  107,  416,  850,  108,  102,  253,  111,  111,  111,
    803 
    804       111,  111,  111,   86,  167,  178,  168,  193,  190,   86,
    805       246,  179,  163,  850,  105,  169,  164,  243,  112,  176,
    806       254,  165,   86,  244,  113,  166,  177,  170,  255,  258,
    807       114,  259,  251,   86,   86,  171,  105,  172,  252,   86,
    808       173,  141,  115,  850,  174,  258,  142,  259,  250,  244,
    809       113,  124,  275,  311,  244,  125,  126,   86,  127,  188,
    810       128,  129,   86,  130,  252,  131,   86,   86,  266,  181,
    811       182,  850,  243,  423,  132,  133,  134,  273,  185,  183,
    812       244,   86,  184,  252,  274,   86,  186,  258,  143,  259,
    813       277,  197,  198,  187,  267,  135,  197,  258,  136,  259,
    814 
    815        86,  251,  189,  194,   80,   81,   81,   81,  194,  252,
    816       300,  195,  199,  199,  199,  199,  199,  199,   79,   80,
    817        81,   81,   81,   79,   86,  137,  138,  206,  207,   86,
    818       261,  258,  206,  259,  208,  237,  237,  237,  237,  208,
    819        81,   80,   81,   81,   81,   81,  260,  276,  209,  209,
    820       209,  209,   81,   80,   82,   82,   82,   81,  260,  208,
    821       258,   86,  259,  850,  258,  258,  259,  259,  238,  258,
    822       258,  259,  259,   86,   86,  210,   86,  278,  208,  258,
    823       262,  259,   86,  208,  208,  281,   86,  208,  208,   86,
    824        86,  850,  141,   86,  279,  208,  280,  142,  208,  299,
    825 
    826       208,  211,  208,   86,  212,  214,  292,  850,  293,  215,
    827       216,  307,  294,   86,  217,  218,  302,  219,  102,  220,
    828       104,  104,  104,  104,  104,  104,   86,   86,  221,  222,
    829       223,   86,  297,  240,  301,  240,   86,  105,  241,  241,
    830       241,  241,  241,  241,   86,  298,   86,  295,  296,  224,
    831        86,   86,  225,  239,   86,   86,  305,  141,  303,  105,
    832       282,  309,  283,  326,  284,  285,   86,  304,  286,  308,
    833       287,  242,   86,   86,  306,  288,  289,  290,   86,  291,
    834       226,  230,  230,  230,  230,  230,  230,   86,   86,   86,
    835       310,   86,   86,  312,  317,  313,   86,   86,  231,  232,
    836 
    837        86,   86,  232,  314,  316,  328,  141,  318,  322,  321,
    838       315,  338,  327,  335,  233,   86,  850,  319,  320,   86,
    839       231,  232,   86,   86,  324,  323,  232,   98,   98,   98,
    840        98,   98,   98,  850,  329,  331,  333,  339,  334,  325,
    841        86,  206,  207,  332,  231,  232,  206,  352,  232,  353,
    842        86,  365,  368,  330,  194,   80,   81,   81,   81,  194,
    843       236,  522,  195,  197,  198,   86,  231,  232,  197,  197,
    844       198,  352,  232,  353,  197,  336,  198,  352,  368,  353,
    845       336,  352,  337,  353,  199,  199,  199,  199,  199,  199,
    846       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
    847 
    848       199,  199,  344,  344,  344,  344,  353,  353,  354,  352,
    849       352,  353,  353,  352,  355,  353,  352,   86,  353,  352,
    850       352,  353,  353,  352,  361,  353,  361,  643,   86,  362,
    851       362,  362,  362,  362,  362,  345,  230,  230,  230,  230,
    852       230,  230,  231,  232,  394,  378,  232,  241,  241,  241,
    853       241,  241,  241,  231,  232,   86,  258,  232,  259,  258,
    854        86,  259,  363,   86,  231,  232,   86,   86,  391,  233,
    855       232,  378,  380,  426,   86,  231,  232,  437,  392,  396,
    856       395,  232,  104,  104,  104,  104,  104,  104,  371,  366,
    857       366,  366,  366,  366,  366,  240,   86,  240,  381,  105,
    858 
    859       241,  241,  241,  241,  241,  241,   86,  232,   86,   86,
    860       232,  373,   86,  374,  393,  250,   86,  375,   86,   86,
    861        86,  105,  367,  376,  398,   86,  397,  403,  399,  232,
    862        86,  400,  417,  405,  232,  377,   86,  401,  402,  374,
    863       442,  406,  407,  375,  104,  104,  104,  104,  104,  104,
    864       111,  111,  111,  111,  111,  111,  404,   86,   86,   86,
    865        86,   86,  408,  411,   86,   86,   86,  409,   86,  414,
    866        86,   86,  410,   86,  415,  421,  422,  250,  412,  413,
    867        86,   86,   86,  255,  418,   86,   86,   86,   86,  419,
    868       420,  425,  424,  430,  428,   86,  427,   86,   86,  435,
    869 
    870       431,  429,  432,   86,   86,   86,  434,   86,   86,   86,
    871        86,  436,   86,   86,   86,   86,   86,  439,  438,  433,
    872        86,  444,   86,   86,  449,  443,   86,  440,  452,   86,
    873       441,  445,  448,  446,  450,  447,  451,   86,  336,  198,
    874       198,  454,  453,  336,  504,  337,  196,  208,  208,  208,
    875       208,  344,  344,  344,  344,  352,  352,  353,  353,  362,
    876       362,  362,  362,  362,  362,  475,  475,  475,  475,  475,
    877       475,  230,  230,  230,  230,  230,  230,  487,   86,   86,
    878       464,   86,  361,  232,  361,   86,  232,  362,  362,  362,
    879       362,  362,  362,   86,  503,  512,  502,  479,  476,   86,
    880 
    881       482,  488,  506,  509,  364,  232,  483,  480,  508,   86,
    882       232,  237,  237,  237,  237,  104,  104,  366,  366,  366,
    883       366,  366,  366,  479,  525,  366,  366,  366,  366,  366,
    884       366,  371,  483,  483,   86,  232,   86,  479,  232,   86,
    885        86,   86,   86,  232,  365,  510,  232,  481,  642,   86,
    886       367,  482,  507,  505,  373,  511,  374,  232,  477,  483,
    887       375,  513,  232,  479,  850,  232,  376,  484,   86,  484,
    888       232,  516,  485,  485,  485,  485,  485,  485,  377,   86,
    889        86,   86,  374,   86,  514,  515,  375,  373,  518,  374,
    890        86,   86,  523,  375,   86,  519,  521,  517,   86,  489,
    891 
    892        86,   86,  520,   86,   86,  486,   86,   86,  526,   86,
    893       524,  377,  527,  530,   86,  374,  535,  531,   86,  375,
    894       529,  534,  528,   86,  533,   86,  532,   86,   86,  536,
    895        86,  538,   86,   86,   86,   86,   86,   86,   86,   86,
    896       539,  543,   86,  537,   86,  541,  550,   86,  542,  540,
    897       544,  553,   86,   86,  551,   86,  546,  545,  547,  548,
    898       552,  556,  554,   86,  549,   86,   86,  198,  624,   86,
    899        86,  557,   86,  562,   86,  479,  559,  555,  561,  479,
    900       558,  208,  208,  208,  208,  480,  584,  601,  560,  475,
    901       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
    902 
    903       475,  479,   86,   86,  479,  479,   86,  232,   86,   86,
    904       232,   86,  584,  232,  583,  602,  232,   86,  603,   86,
    905        86,  605,  476,   86,  607,  608,  604,   86,  579,  232,
    906       479,  606,   86,   86,  232,  232,  610,  611,  609,   86,
    907       232,  366,  366,  366,  366,  366,  366,  580,  614,  580,
    908       710,  612,  581,  581,  581,  581,  581,  581,  485,  485,
    909       485,  485,  485,  485,   86,  585,  585,  585,  585,  585,
    910       585,  484,   86,  484,  477,  616,  485,  485,  485,  485,
    911       485,  485,   86,  586,   86,  582,  586,  615,  618,   86,
    912        86,   86,   86,  613,   86,   86,   86,  617,  587,  619,
    913 
    914       623,  622,   86,  625,   86,  586,   86,   86,  621,   86,
    915       586,  620,   86,  630,   86,   86,  631,   86,   86,  627,
    916        86,  628,  626,   86,  629,  636,  633,   86,   86,  632,
    917       634,   86,  637,  635,   86,   86,  638,   86,   86,  647,
    918        86,   86,  644,   86,  640,   86,   86,  648,   86,   86,
    919       639,  641,  646,  649,   86,  683,  682,   86,  650,  645,
    920       740,  651,  475,  475,  475,  475,  475,  475,  581,  581,
    921       581,  581,  581,  581,  685,  669,  669,  669,  669,  669,
    922       669,  580,   86,  580,   86,   86,  581,  581,  581,  581,
    923       581,  581,  687,  586,   86,  579,  586,  684,  585,  585,
    924 
    925       585,  585,  585,  585,   86,  686,  850,  691,  670,  585,
    926       585,  585,  585,  585,  585,  586,  586,   86,   86,  586,
    927       586,  689,  680,   86,   86,   86,  688,  586,  690,   86,
    928       586,  587,  698,   86,   86,  681,   86,  696,  586,  692,
    929        86,   86,  671,  586,   86,  693,  694,   86,   86,  586,
    930        86,   86,   86,  697,  586,  695,  699,  701,  702,  704,
    931        86,   86,   86,   86,  700,   86,   86,   86,   86,  703,
    932        86,  708,   86,  705,   86,  706,  712,  713,  715,   86,
    933       711,  714,  850,  707,   86,  709,   86,  731,  716,  717,
    934       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
    935 
    936       669,  669,   86,   86,   86,   86,   86,  743,  586,  735,
    937       733,  586,  732,  734,  586,   86,   86,  586,  737,  738,
    938       744,  739,   86,  670,   86,  736,  747,  742,   86,  724,
    939       586,  741,   86,  775,   86,  586,  586,  745,   86,   86,
    940       750,  586,  585,  585,  585,  585,  585,  585,  746,   86,
    941        86,  749,   86,  748,   86,   86,   86,   86,   86,   86,
    942        86,   86,   86,   86,  751,   86,  754,   86,  752,  759,
    943        86,   86,  760,   86,   86,  671,  780,  753,  782,  756,
    944       776,  755,  757,  758,  669,  669,  669,  669,  669,  669,
    945       773,  774,   86,  779,  778,   86,   86,   86,   86,  783,
    946 
    947       784,   86,  777,   86,  786,  785,   86,   86,  781,   86,
    948       787,   86,   86,   86,   86,   86,   86,  724,  788,  807,
    949        86,  811,   86,  809,   86,   86,   86,  812,  814,   86,
    950        86,  806,  789,  815,  790,  805,   86,  808,  816,  804,
    951       810,   86,   86,   86,   86,   86,   86,   86,  813,  829,
    952       828,   86,  817,  830,  831,   86,   86,  818,  833,  834,
    953        86,   86,  832,  827,   86,   86,   86,   86,  841,  835,
    954       836,  840,   86,  839,   86,  842,   86,  843,   86,  844,
    955        86,   86,   86,  847,  848,  838,  850,  845,  850,  850,
    956       850,  837,   86,  846,   86,   86,   86,   86,  850,  850,
    957 
    958       826,  850,  825,  850,  849,   68,   68,   68,   68,   68,
    959        68,   68,   68,   68,   68,   68,   68,   74,   74,   74,
    960        74,   74,   74,   74,   74,   74,   74,   74,   74,   77,
    961        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    962        77,   85,  823,  850,   85,   85,   85,   85,   85,   85,
    963       139,  822,  850,  821,  139,  139,  139,  139,  139,  196,
    964       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
    965       196,  201,  850,  820,  201,  201,  201,  201,  201,  201,
    966       205,   86,  205,  205,   86,  205,  205,  205,  205,  205,
    967        86,  205,  213,  850,  803,  213,  213,  213,  213,  213,
    968 
    969       213,  213,  850,  213,  234,  234,  234,  234,  234,  234,
    970       234,  234,  234,  234,  234,  234,  248,  248,  248,  802,
    971       800,  850,  248,  264,  798,  850,  264,  264,  264,  264,
    972       264,  264,  268,  268,  796,  850,  794,  268,  270,  270,
    973       792,   86,   86,  270,  340,  340,   86,   86,   86,  340,
    974       342,  342,   86,   86,   86,  342,  346,  346,   86,   86,
    975        86,  346,  348,  348,   86,  850,  772,  348,  350,  350,
    976       770,  850,  850,  350,  357,  357,  767,  765,  763,  357,
    977       359,  359,  850,   86,   86,  359,  234,  234,  234,  234,
    978       234,  234,  234,  234,  234,  234,  234,  234,  370,  370,
    979 
    980       372,  372,  372,  372,  372,   86,  372,  248,  248,  248,
    981       382,  382,   86,   86,   86,  382,  384,  384,   86,   86,
    982       730,  384,  386,  386,  727,  726,  202,  386,  268,  268,
    983       388,  388,  720,  719,  653,  388,  270,  270,   85,   86,
    984        86,   85,   85,   85,   85,   85,   85,  196,  196,  196,
    985       196,  196,  196,  196,  196,  196,  196,  196,  196,  455,
    986       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
    987       455,  456,  456,   86,   86,   86,  456,  458,  458,   86,
    988        86,   86,  458,  460,  460,   86,   86,   86,  460,  340,
    989       340,  462,  462,   86,   86,   86,  462,  342,  342,  465,
    990 
    991       465,   86,  678,  677,  465,  346,  346,  467,  467,  675,
    992       673,  583,  467,  348,  348,  469,  469,  668,  667,  665,
    993       469,  350,  350,  471,  471,  663,  661,  659,  471,  357,
    994       357,  473,  473,  657,  655,  653,  473,  359,  359,  478,
    995       478,   86,  478,   86,  478,  370,  370,   86,  370,   86,
    996       370,  372,  372,  372,  372,  372,   86,  372,  490,  490,
    997        86,   86,   86,  490,  492,  492,   86,  600,  598,  492,
    998       494,  494,  596,  594,  592,  494,  382,  382,  496,  496,
    999       590,  489,  588,  496,  384,  384,  498,  498,  588,  578,
    1000       576,  498,  386,  386,  500,  500,  470,  470,  574,  500,
    1001 
    1002       388,  388,   85,  572,  570,   85,   85,   85,   85,   85,
    1003        85,  455,  455,  455,  455,  455,  455,  455,  455,  455,
    1004       455,  455,  455,  563,  563,  568,  566,  564,  563,  456,
    1005       456,  565,  565,   86,   86,   86,  565,  458,  458,  567,
    1006       567,   86,   86,   86,  567,  460,  460,  569,  569,   86,
    1007        86,  501,  569,  462,  462,  571,  571,  499,  497,  495,
    1008       571,  465,  465,  573,  573,  493,  491,  474,  573,  467,
    1009       467,  469,  469,  472,  353,  353,  469,  575,  575,  470,
    1010       468,  466,  575,  471,  471,  577,  577,  463,  461,  459,
    1011       577,  473,  473,  478,  478,  457,  478,   86,  478,  372,
    1012 
    1013       372,   86,   86,  390,  372,  589,  589,  389,  387,  385,
    1014       589,  490,  490,  591,  591,  383,  265,  260,  591,  492,
    1015       492,  593,  593,  259,  379,  379,  593,  494,  494,  595,
    1016       595,  247,  369,  369,  595,  496,  496,  597,  597,  235,
    1017       364,  360,  597,  498,  498,  599,  599,  358,  356,  352,
    1018       599,  500,  500,   85,  351,  349,   85,   85,   85,   85,
    1019        85,   85,  652,  652,  652,  652,  652,  652,  652,  652,
    1020       652,  652,  652,  652,  654,  654,  347,  343,  341,  654,
    1021       563,  563,  656,  656,  202,  198,   86,  656,  565,  565,
    1022       658,  658,  272,  271,  269,  658,  567,  567,  660,  660,
    1023 
    1024       265,  260,  263,  660,  569,  569,  662,  662,  260,  258,
    1025       257,  662,  571,  571,  664,  664,  256,  235,  229,  664,
    1026       573,  573,  666,  666,   84,   84,   86,  666,  575,  575,
    1027        85,   85,  202,  200,   84,   85,  577,  577,  478,  478,
    1028       140,  121,  116,  478,  672,  672,   86,  850,   69,  672,
    1029       589,  589,  674,  674,   69,  850,  850,  674,  591,  591,
    1030       676,  676,  850,  850,  850,  676,  593,  593,  139,  139,
    1031       850,  850,  850,  139,  595,  595,  679,  679,  597,  597,
    1032        85,  850,  850,   85,   85,   85,   85,   85,   85,  599,
    1033       599,  652,  652,  652,  652,  652,  652,  652,  652,  652,
    1034 
    1035       652,  652,  652,  718,  718,  850,  850,  850,  718,  654,
    1036       654,  201,  201,  850,  850,  850,  201,  656,  656,  721,
    1037       721,  658,  658,  201,  850,  850,  201,  201,  201,  201,
    1038       201,  201,  660,  660,  722,  722,  662,  662,  664,  664,
    1039       723,  723,  666,  666,   85,   85,  725,  725,  850,  850,
    1040       850,  725,  672,  672,  264,  264,  850,  850,  850,  264,
    1041       674,  674,  728,  728,  676,  676,  139,  139,  729,  729,
    1042       850,  850,  850,  729,   85,  850,  850,   85,   85,   85,
    1043        85,   85,   85,  761,  761,  718,  718,  762,  762,  850,
    1044       850,  850,  762,  764,  764,  850,  850,  850,  764,  766,
    1045 
    1046       766,  850,  850,  850,  766,  768,  768,  769,  769,  850,
    1047       850,  850,  769,  771,  771,  850,  850,  850,  771,  791,
    1048       791,  850,  850,  850,  791,  793,  793,  850,  850,  850,
    1049       793,  795,  795,  850,  850,  850,  795,  797,  797,  850,
    1050       850,  850,  797,  799,  799,  850,  850,  850,  799,  801,
    1051       801,  850,  850,  850,  801,  599,  599,  850,  850,  850,
    1052       599,  819,  819,  850,  850,  850,  819,  660,  660,  850,
    1053       850,  850,  660,  664,  664,  850,  850,  850,  664,   85,
    1054        85,  850,  850,  850,   85,  824,  824,  850,  850,  850,
    1055       824,  139,  139,  850,  850,  850,  139,  201,  201,  850,
    1056 
    1057       850,  850,  201,   11,  850,  850,  850,  850,  850,  850,
    1058       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1059       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1060       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1061       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1062       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1063       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1064       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1065       850,  850,  850,  850,  850,  850,  850,  850,  850
     794       82,   82,   82,   81,   90,   92,   86,  141,  145,   97,
     795       94,   98,   98,   98,   98,   98,   98,  248,   86,   93,
     796       99,   84,   95,   96,   84,  100,  160,  117,  142,   76,
     797       76,   76,   76,  143,  146,  101,  102,   86,  103,  103,
     798      103,  103,  104,  104,  118,   86,  119,  120,  147,   86,
     799      148,  851,  250,  204,  181,  105,  193,  453,  158,  106,
     800      159,  149,  150,  151,   86,  107,  108,  152,  153,  161,
     801      154,  109,   86,  155,  156,  144,  162,  105,   86,  205,
     802       86,  157,  163,  110,  228,   86,  256,   86,  611,   86,
     803       86,  107,  192,   86,  108,  102,  246,  111,  111,  111,
     804
     805      111,  111,  111,   86,  168,  176,  169,  194,  191,   86,
     806      229,  179,  164,  851,  105,  170,  165,  180,  112,  177,
     807      247,  166,   86,  254,  113,  167,  178,  171,   86,  259,
     808      114,  260,  244,   86,   86,  172,  105,  173,  245,  438,
     809      174,  142,  115,  851,  175,  282,  143,  255,  251,   86,
     810      113,  124,  276,   86,  245,  125,  126,   86,  127,  189,
     811      128,  129,  252,  130,  245,  131,   86,  277,  253,  182,
     812      183,  851,  244,  312,  132,  133,  134,   86,  186,  184,
     813      245,   86,  185,  253,  267,   86,  187,  259,  144,  260,
     814      278,  198,  199,  188,  253,  135,  198,  259,  136,  260,
     815
     816      303,  252,  190,  195,   80,   81,   81,   81,  195,  253,
     817      268,  196,  200,  200,  200,  200,  200,  200,   79,   80,
     818       81,   81,   81,   79,   86,  137,  138,  207,  208,  259,
     819       86,  260,  207,  295,  209,  238,  238,  238,  238,  209,
     820       81,   80,   81,   81,   81,   81,  261,  300,  210,  210,
     821      210,  210,   81,   80,   82,   82,   82,   81,  261,  209,
     822      259,   86,  260,  851,  262,  259,   86,  260,  239,  259,
     823      259,  260,  260,   86,  259,  211,  260,  279,  209,  259,
     824      263,  260,  293,  209,  209,   86,   86,  209,  209,   86,
     825      259,  851,  260,  328,   86,  209,  301,  353,  209,  354,
     826
     827      209,  212,  209,  142,  213,  215,  302,  280,  143,  216,
     828      217,   86,   86,   86,  218,  219,  281,  220,  102,  221,
     829      104,  104,  104,  104,  104,  104,   86,  274,  222,  223,
     830      224,  311,  305,  241,  275,  241,   86,  105,  242,  242,
     831      242,  242,  242,  242,   86,   86,   86,   86,  294,  225,
     832      298,   86,  226,  240,   86,   86,  306,  296,  297,  105,
     833      283,   86,  284,  299,  285,  286,  308,   86,  287,  309,
     834      288,  243,   86,  304,  307,  289,  290,  291,  310,  292,
     835      227,  231,  231,  231,  231,  231,  231,   86,   86,  317,
     836       86,   86,   86,   86,  313,  318,   86,   86,  232,  233,
     837
     838       86,   86,  233,  315,  327,  142,   86,  319,  323,  314,
     839      316,  322,  398,  336,  234,   86,  339,  320,  321,   86,
     840      232,  233,   86,   86,  325,  324,  233,   98,   98,   98,
     841       98,   98,   98,  329,  330,  332,  334,   86,  335,  326,
     842       86,   86,  340,  333,  232,  233,  207,  208,  233,   86,
     843      392,  207,  331,  195,   80,   81,   81,   81,  195,  393,
     844      237,  196,   86,  198,  199,  556,  232,  233,  198,  198,
     845      199,  353,  233,  354,  198,  337,  199,  353,  395,  354,
     846      337,  353,  338,  354,  200,  200,  200,  200,  200,  200,
     847      200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
     848
     849      200,  200,  345,  345,  345,  345,  354,  354,  355,  353,
     850      353,  354,  354,  353,  356,  354,  353,  851,  354,  353,
     851      353,  354,  354,  353,  362,  354,  362,   86,   86,  363,
     852      363,  363,  363,  363,  363,  346,  231,  231,  231,  231,
     853      231,  231,  232,  233,  396,  369,  233,  379,  259,  259,
     854      260,  260,  366,  232,  233,   86,   86,  233,   86,   86,
     855      397,   86,  364,  399,  232,  233,  409,   86,  381,  234,
     856      233,  369,   86,  379,  394,  232,  233,   86,   86,  400,
     857      411,  233,  104,  104,  104,  104,  104,  104,  242,  242,
     858      242,  242,  242,  242,  382,   86,  404,   86,  405,  105,
     859
     860       86,  367,  367,  367,  367,  367,  367,  372,   86,  410,
     861      401,   86,  406,   86,   86,  251,  402,  403,  241,  233,
     862      241,  105,  233,  242,  242,  242,  242,  242,  242,  413,
     863      374,  414,  375,   86,  368,  412,  376,   86,  415,   86,
     864       86,  233,  377,   86,   86,  422,  233,  104,  104,  104,
     865      104,  104,  104,  416,  378,  407,  408,  418,  375,   86,
     866       86,  419,  376,  111,  111,  111,  111,  111,  111,   86,
     867       86,   86,   86,   86,   86,  423,  417,  424,  425,  427,
     868      251,  420,  421,  426,   86,   86,   86,   86,  428,   86,
     869       86,  431,  432,  429,  433,   86,  256,   86,   86,   86,
     870
     871      430,   86,   86,   86,   86,   86,   86,   86,   86,  435,
     872      437,  434,  142,  436,  439,  440,  445,   86,   86,   86,
     873      441,  444,   86,  443,  442,   86,   86,  446,  450,  447,
     874      448,  454,  353,   86,  354,  449,  451,  455,  452,  337,
     875      199,  199,  507,  353,  337,  354,  338,  197,  209,  209,
     876      209,  209,  345,  345,  345,  345,   86,  363,  363,  363,
     877      363,  363,  363,   86,  476,  476,  476,  476,  476,  476,
     878      362,  488,  362,   86,  503,  363,  363,  363,  363,  363,
     879      363,  465,  233,  644,  480,  233,  231,  231,  231,  231,
     880      231,  231,   86,   86,  481,  489,   86,  477,  238,  238,
     881
     882      238,  238,  104,  104,  233,  509,  512,  480,  504,  233,
     883      480,  367,  367,  367,  367,  367,  367,  482,   86,  365,
     884      367,  367,  367,  367,  367,  367,   86,   86,   86,  233,
     885      483,  366,  233,  480,  372,  511,  484,  506,  233,  528,
     886      485,  233,  485,  505,  368,  486,  486,  486,  486,  486,
     887      486,  233,   86,  478,  484,   86,  233,  374,   86,  375,
     888      233,  851,  484,  376,   86,  233,  508,   86,   86,  377,
     889       86,   86,  483,   86,  510,  524,  518,   86,  487,   86,
     890      484,  378,  519,  513,  374,  375,  375,  515,  516,  376,
     891      376,   86,  514,   86,  520,  517,  490,  522,   86,   86,
     892
     893       86,  521,   86,   86,   86,   86,   86,   86,  378,   86,
     894       86,  534,  375,  527,  523,  526,  376,  525,  531,  536,
     895       86,  535,  532,  529,   86,  530,   86,  533,   86,  539,
     896       86,   86,   86,   86,   86,  537,   86,   86,   86,   86,
     897       86,  540,  544,   86,  538,  542,   86,   86,   86,  545,
     898      541,  543,  551,  553,  554,  555,  548,  546,  547,  549,
     899      550,   86,   86,   86,  552,   86,   86,   86,  199,  557,
     900      691,   86,   86,  560,  563,  562,  480,  480,  585,  558,
     901      559,  209,  209,  209,  209,  603,  481,  561,  476,  476,
     902      476,  476,  476,  476,  476,  476,  476,  476,  476,  476,
     903
     904      480,   86,  480,  480,  585,   86,  233,  851,   86,  233,
     905      584,   86,  233,   86,   86,  233,   86,   86,  602,   86,
     906      604,  477,  609,   86,  610,   86,  480,  580,  233,  606,
     907      607,  605,  608,  233,  233,  614,  617,   86,   86,  233,
     908      367,  367,  367,  367,  367,  367,  581,  615,  581,  627,
     909      618,  582,  582,  582,  582,  582,  582,  486,  486,  486,
     910      486,  486,  486,   86,  586,  586,  586,  586,  586,  586,
     911      485,   86,  485,  478,   86,  486,  486,  486,  486,  486,
     912      486,   86,  587,  612,  583,  587,  616,   86,   86,   86,
     913      613,  622,   86,   86,   86,  625,  620,  588,  623,  624,
     914
     915       86,   86,  626,   86,  587,   86,   86,  629,   86,  587,
     916      621,   86,   86,   86,  631,  632,   86,  628,  630,   86,
     917       86,  637,   86,  634,   86,  633,   86,  635,  636,  638,
     918       86,  639,   86,   86,   86,   86,  648,  641,  643,  645,
     919       86,  640,   86,  642,  649,   86,  647,   86,   86,   86,
     920      650,   86,   86,   86,  697,  646,  683,  684,   86,  688,
     921      652,  689,  651,  476,  476,  476,  476,  476,  476,  582,
     922      582,  582,  582,  582,  582,  686,  670,  670,  670,  670,
     923      670,  670,  581,   86,  581,   86,   86,  582,  582,  582,
     924      582,  582,  582,  714,  587,   86,  580,  587,  685,  586,
     925
     926      586,  586,  586,  586,  586,   86,  687,   86,  692,  671,
     927      586,  586,  586,  586,  586,  586,  587,  587,   86,   86,
     928      587,  587,  690,  681,   86,   86,  699,   86,  587,  694,
     929       86,  587,  588,   86,  693,   86,  682,   86,   86,  587,
     930       86,  695,  700,  672,  587,   86,  702,  696,  703,  705,
     931      587,   86,  698,  701,   86,  587,   86,   86,   86,   86,
     932      704,   86,   86,   86,   86,   86,  709,  706,   86,   86,
     933      713,  715,   86,  717,  707,  716,   86,   86,  708,  710,
     934      712,   86,  733,  718,  777,  711,  670,  670,  670,  670,
     935      670,  670,  670,  670,  670,  670,  670,  670,  732,   86,
     936
     937       86,  737,  734,   86,  587,  736,  735,  587,   86,   86,
     938      587,  738,  739,  587,   86,   86,  745,  851,   86,  671,
     939      741,  740,  748,   86,  742,  725,  587,   86,  752,   86,
     940      743,  587,  587,   86,   86,   86,  746,  587,  586,  586,
     941      586,  586,  586,  586,  744,   86,   86,   86,   86,   86,
     942      749,   86,   86,   86,   86,  747,  754,  756,   86,  751,
     943       86,   86,  750,  755,   86,  753,   86,   86,   86,  760,
     944       86,  672,   86,  757,   86,  761,  783,  778,   86,  776,
     945      758,  759,  670,  670,  670,  670,  670,  670,  774,  775,
     946      780,   86,   86,  779,  781,   86,   86,   86,  784,  785,
     947
     948       86,  790,   86,   86,   86,  782,  787,  786,   86,   86,
     949       86,  788,  789,   86,   86,  725,  808,   86,   86,   86,
     950      812,  810,   86,   86,   86,  791,  813,  815,   86,   86,
     951       86,  806,  807,  816,   86,   86,  805,  811,  817,  809,
     952       86,   86,   86,   86,  814,  830,   86,  829,   86,  828,
     953      818,  819,  831,   86,   86,   86,  832,  834,  833,   86,
     954       86,   86,  835,   86,  836,   86,   86,   86,  841,  837,
     955      840,   86,   86,   86,  842,  843,  844,   86,   86,   86,
     956      845,  847,  848,   86,   86,  846,  849,  851,  851,  850,
     957       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
     958
     959       68,   68,   68,   74,   74,   74,   74,   74,   74,   74,
     960       74,   74,   74,   74,   74,   74,   77,   77,   77,   77,
     961       77,   77,   77,   77,   77,   77,   77,   77,   77,   85,
     962      839,  851,   85,  851,   85,   85,   85,   85,   85,  139,
     963      851,  851,  838,  139,  139,  139,  139,  139,  139,  197,
     964      197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
     965      197,  197,  202,   86,   86,  202,   86,  202,  202,  202,
     966      202,  202,  206,   86,  206,  206,   86,  206,  206,  206,
     967      206,  206,  206,  851,  206,  214,  851,  827,  214,  214,
     968      214,  214,  214,  214,  214,  214,  851,  214,  235,  235,
     969
     970      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
     971      235,  249,  249,  826,  249,  851,  824,  851,  249,  265,
     972      823,  851,  265,  822,  265,  265,  265,  265,  265,  269,
     973      851,  269,  821,   86,   86,  269,  271,   86,  271,  851,
     974      804,  851,  271,  341,  803,  341,  801,  851,  799,  341,
     975      343,  851,  343,  797,  851,  795,  343,  347,  793,  347,
     976       86,   86,   86,  347,  349,   86,  349,   86,   86,   86,
     977      349,  351,   86,  351,   86,   86,   86,  351,  358,   86,
     978      358,  851,  773,  771,  358,  360,  851,  360,  851,  768,
     979      766,  360,  235,  235,  235,  235,  235,  235,  235,  235,
     980
     981      235,  235,  235,  235,  235,  371,  764,  371,  373,  373,
     982      851,  373,  373,  373,   86,  373,  249,  249,   86,  249,
     983      383,   86,  383,   86,   86,   86,  383,  385,   86,  385,
     984       86,  731,  728,  385,  387,  727,  387,  203,  721,  720,
     985      387,  269,  654,  269,  389,   86,  389,   86,   86,   86,
     986      389,  271,   86,  271,   85,   86,   86,   85,   86,   85,
     987       85,   85,   85,   85,  197,  197,  197,  197,  197,  197,
     988      197,  197,  197,  197,  197,  197,  197,  456,  456,  456,
     989      456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
     990      457,   86,  457,   86,   86,   86,  457,  459,   86,  459,
     991
     992       86,   86,  679,  459,  461,  678,  461,  676,  674,  584,
     993      461,  341,  669,  341,  463,  668,  463,  666,  664,  662,
     994      463,  343,  660,  343,  466,  658,  466,  656,  654,   86,
     995      466,  347,   86,  347,  468,   86,  468,   86,   86,   86,
     996      468,  349,   86,  349,  470,   86,  470,   86,  601,  599,
     997      470,  351,  597,  351,  472,  595,  472,  593,  591,  490,
     998      472,  358,  589,  358,  474,  589,  474,  579,  577,  471,
     999      474,  360,  471,  360,  479,  575,  479,  573,  479,  571,
     1000      479,  371,  569,  371,  567,  371,  565,  371,  373,  373,
     1001       86,  373,  373,  373,   86,  373,  491,   86,  491,   86,
     1002
     1003       86,   86,  491,  493,   86,  493,   86,  502,  500,  493,
     1004      495,  498,  495,  496,  494,  492,  495,  383,  475,  383,
     1005      497,  473,  497,  354,  354,  471,  497,  385,  469,  385,
     1006      499,  467,  499,  464,  462,  460,  499,  387,  458,  387,
     1007      501,   86,  501,   86,   86,  391,  501,  389,  390,  389,
     1008       85,  388,  386,   85,  384,   85,   85,   85,   85,   85,
     1009      456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
     1010      456,  456,  456,  564,  266,  564,  261,  260,  380,  564,
     1011      457,  380,  457,  566,  248,  566,  370,  370,  236,  566,
     1012      459,  365,  459,  568,  361,  568,  359,  357,  353,  568,
     1013
     1014      461,  352,  461,  570,  350,  570,  348,  344,  342,  570,
     1015      463,  203,  463,  572,  199,  572,   86,  273,  272,  572,
     1016      466,  270,  466,  574,  266,  574,  261,  264,  261,  574,
     1017      468,  259,  468,  470,  258,  470,  257,  236,  230,  470,
     1018      576,   84,  576,   84,   86,  203,  576,  472,  201,  472,
     1019      578,   84,  578,  121,  116,   86,  578,  474,  851,  474,
     1020      479,   69,  479,   69,  479,  851,  479,  373,  851,  373,
     1021      851,  851,  851,  373,  590,  851,  590,  851,  851,  851,
     1022      590,  491,  851,  491,  592,  851,  592,  851,  851,  851,
     1023      592,  493,  851,  493,  594,  851,  594,  851,  851,  851,
     1024
     1025      594,  495,  851,  495,  596,  851,  596,  851,  851,  851,
     1026      596,  497,  851,  497,  598,  851,  598,  851,  851,  851,
     1027      598,  499,  851,  499,  600,  851,  600,  851,  851,  851,
     1028      600,  501,  851,  501,   85,  851,  851,   85,  851,   85,
     1029       85,   85,   85,   85,  653,  653,  653,  653,  653,  653,
     1030      653,  653,  653,  653,  653,  653,  653,  655,  851,  655,
     1031      851,  851,  851,  655,  564,  851,  564,  657,  851,  657,
     1032      851,  851,  851,  657,  566,  851,  566,  659,  851,  659,
     1033      851,  851,  851,  659,  568,  851,  568,  661,  851,  661,
     1034      851,  851,  851,  661,  570,  851,  570,  663,  851,  663,
     1035
     1036      851,  851,  851,  663,  572,  851,  572,  665,  851,  665,
     1037      851,  851,  851,  665,  574,  851,  574,  667,  851,  667,
     1038      851,  851,  851,  667,  576,  851,  576,   85,  851,   85,
     1039      851,  851,  851,   85,  578,  851,  578,  479,  851,  479,
     1040      851,  851,  851,  479,  673,  851,  673,  851,  851,  851,
     1041      673,  590,  851,  590,  675,  851,  675,  851,  851,  851,
     1042      675,  592,  851,  592,  677,  851,  677,  851,  851,  851,
     1043      677,  594,  851,  594,  139,  851,  139,  851,  851,  851,
     1044      139,  596,  851,  596,  680,  851,  680,  598,  851,  598,
     1045       85,  851,  851,   85,  851,   85,   85,   85,   85,   85,
     1046
     1047      600,  851,  600,  653,  653,  653,  653,  653,  653,  653,
     1048      653,  653,  653,  653,  653,  653,  719,  851,  719,  851,
     1049      851,  851,  719,  655,  851,  655,  202,  851,  202,  851,
     1050      851,  851,  202,  657,  851,  657,  722,  851,  722,  659,
     1051      851,  659,  202,  851,  851,  202,  851,  202,  202,  202,
     1052      202,  202,  661,  851,  661,  723,  851,  723,  663,  851,
     1053      663,  665,  851,  665,  724,  851,  724,  667,  851,  667,
     1054       85,  851,   85,  726,  851,  726,  851,  851,  851,  726,
     1055      673,  851,  673,  265,  851,  265,  851,  851,  851,  265,
     1056      675,  851,  675,  729,  851,  729,  677,  851,  677,  139,
     1057
     1058      851,  139,  730,  851,  730,  851,  851,  851,  730,   85,
     1059      851,  851,   85,  851,   85,   85,   85,   85,   85,  762,
     1060      851,  762,  719,  851,  719,  763,  851,  763,  851,  851,
     1061      851,  763,  765,  851,  765,  851,  851,  851,  765,  767,
     1062      851,  767,  851,  851,  851,  767,  769,  851,  769,  770,
     1063      851,  770,  851,  851,  851,  770,  772,  851,  772,  851,
     1064      851,  851,  772,  792,  851,  792,  851,  851,  851,  792,
     1065      794,  851,  794,  851,  851,  851,  794,  796,  851,  796,
     1066      851,  851,  851,  796,  798,  851,  798,  851,  851,  851,
     1067      798,  800,  851,  800,  851,  851,  851,  800,  802,  851,
     1068
     1069      802,  851,  851,  851,  802,  600,  851,  600,  851,  851,
     1070      851,  600,  820,  851,  820,  851,  851,  851,  820,  661,
     1071      851,  661,  851,  851,  851,  661,  665,  851,  665,  851,
     1072      851,  851,  665,   85,  851,   85,  851,  851,  851,   85,
     1073      825,  851,  825,  851,  851,  851,  825,  139,  851,  139,
     1074      851,  851,  851,  139,  202,  851,  202,  851,  851,  851,
     1075      202,   11,  851,  851,  851,  851,  851,  851,  851,  851,
     1076      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1077      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1078      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1079
     1080      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1081      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1082      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1083      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1084      851,  851,  851,  851,  851,  851,  851
    10661085    } ;
    10671086
    1068 static yyconst flex_int16_t yy_chk[2690] =
     1087static yyconst flex_int16_t yy_chk[2848] =
    10691088    {   0,
    10701089        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    10871106        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    10881107        5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1089         8,    9,   10,   37,   37,   20,   48,    9,   10,   53,
     1108        8,    9,   10,   37,   37,   20,   39,    9,   10,  521,
    10901109        7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    10911110
    1092        15,   15,   15,   15,   20,   25,   48,   53,   42,   28,
    1093        27,   28,   28,   28,   28,   28,   28,   56,  849,   25,
    1094        29,   25,   27,   27,   27,   29,   56,   35,   40,    7,
     1111       15,   15,   15,   15,   20,   25,   48,   39,   42,   28,
     1112       27,   28,   28,   28,   28,   28,   28,  108,  521,   25,
     1113       29,   25,   27,   27,   27,   29,   48,   35,   40,    7,
    10951114        8,    9,   10,   40,   42,   29,   30,   47,   30,   30,
    1096        30,   30,   30,   30,   35,   61,   35,   35,   44,  108,
    1097        44,  848,  847,   72,   86,   30,   63,   61,   47,   30,
     1115       30,   30,   30,   30,   35,   56,   35,   35,   44,  334,
     1116       44,  114,  108,   72,   56,   30,   63,  334,   47,   30,
    10981117       47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    10991118       45,   30,   40,   45,   45,   40,   49,   30,   45,   72,
    1100        86,   45,   49,   30,  108,  296,  107,   55,  846,   51,
    1101        60,   30,  296,  114,   30,   31,  113,   31,   31,   31,
    1102 
    1103        31,   31,   31,   50,   51,   55,   51,   63,   60,   54,
    1104       107,   55,   50,  109,   31,   51,   50,  106,   31,   54,
    1105       113,   50,   52,  106,   31,   50,   54,   52,  114,  125,
    1106        31,  125,  112,  173,  149,   52,   31,   52,  112,  844,
    1107        52,   59,   31,  109,   52,  126,   59,  126,  109,  106,
    1108        31,   38,  149,  173,  110,   38,   38,   57,   38,   59,
    1109        38,   38,  148,   38,  112,   38,   58,  302,  140,   57,
    1110        57,  109,  110,  302,   38,   38,   38,  148,   58,   57,
    1111       110,  151,   57,  115,  148,   59,   58,  128,   59,  128,
    1112       151,   67,   67,   58,  140,   38,   67,  131,   38,  131,
    1113 
    1114       163,  115,   59,   66,   66,   66,   66,   66,   66,  115,
    1115       163,   66,   67,   67,   67,   67,   67,   67,   79,   79,
    1116        79,   79,   79,   79,  843,   38,   38,   76,   76,  150,
    1117       132,  132,   76,  132,   76,  103,  103,  103,  103,   76,
    1118        81,   81,   81,   81,   81,   81,  129,  150,   76,   76,
     1119       61,   45,   49,   30,   86,  513,  114,   53,  513,   51,
     1120       60,   30,   61,   55,   30,   31,  107,   31,   31,   31,
     1121
     1122       31,   31,   31,   50,   51,   53,   51,   63,   60,   54,
     1123       86,   55,   50,  109,   31,   51,   50,   55,   31,   54,
     1124      107,   50,   52,  113,   31,   50,   54,   52,  317,  125,
     1125       31,  125,  106,  156,  150,   52,   31,   52,  106,  317,
     1126       52,   59,   31,  109,   52,  156,   59,  113,  109,  151,
     1127       31,   38,  150,  174,  110,   38,   38,   57,   38,   59,
     1128       38,   38,  112,   38,  106,   38,   58,  151,  112,   57,
     1129       57,  109,  110,  174,   38,   38,   38,  166,   58,   57,
     1130      110,  152,   57,  115,  141,   59,   58,  126,   59,  126,
     1131      152,   67,   67,   58,  112,   38,   67,  128,   38,  128,
     1132
     1133      166,  115,   59,   66,   66,   66,   66,   66,   66,  115,
     1134      141,   66,   67,   67,   67,   67,   67,   67,   79,   79,
     1135       79,   79,   79,   79,  160,   38,   38,   76,   76,  131,
     1136      163,  131,   76,  160,   76,  103,  103,  103,  103,   76,
     1137       81,   81,   81,   81,   81,   81,  129,  163,   76,   76,
    11191138       76,   76,   82,   82,   82,   82,   82,   82,  130,   76,
    1120       129,  152,  129,  103,  133,  136,  133,  136,  103,  138,
    1121       130,  138,  130,  155,  154,   76,  153,  152,   76,  134,
    1122       134,  134,  162,   76,   76,  155,  158,   76,   76,  169,
    1123       157,  103,  143,  165,  153,   76,  154,  143,   76,  162,
    1124 
    1125        76,   76,   76,  159,   76,   84,  157,  838,  158,   84,
    1126        84,  169,  159,  164,   84,   84,  165,   84,  104,   84,
    1127       104,  104,  104,  104,  104,  104,  160,  161,   84,   84,
    1128        84,  166,  161,  105,  164,  105,  143,  104,  105,  105,
    1129       105,  105,  105,  105,  171,  161,  167,  160,  160,   84,
    1130       184,  168,   84,  104,  170,  156,  168,  330,  166,  104,
    1131       156,  171,  156,  184,  156,  156,  174,  167,  156,  170,
    1132       156,  105,  172,  175,  168,  156,  156,  156,  186,  156,
    1133        84,   98,   98,   98,   98,   98,   98,  178,  177,  179,
    1134       172,  181,  185,  174,  179,  175,  180,  182,   98,   98,
    1135 
    1136       191,  330,   98,  177,  178,  186,  188,  180,  182,  181,
    1137       177,  202,  185,  191,   98,  187,  238,  180,  180,  183,
    1138        98,   98,  189,  190,  183,  182,   98,  102,  102,  102,
    1139       102,  102,  102,  837,  187,  189,  190,  202,  190,  183,
    1140       409,  206,  206,  189,  102,  102,  206,  215,  102,  215,
    1141       188,  238,  243,  188,  194,  194,  194,  194,  194,  194,
    1142       102,  409,  194,  195,  195,  836,  102,  102,  195,  197,
    1143       197,  216,  102,  216,  197,  199,  199,  217,  243,  217,
    1144       199,  220,  199,  220,  195,  195,  195,  195,  195,  195,
    1145       197,  197,  197,  197,  197,  197,  199,  199,  199,  199,
    1146 
    1147       199,  199,  209,  209,  209,  209,  218,  219,  221,  221,
    1148       222,  221,  222,  223,  223,  223,  225,  551,  225,  219,
    1149       218,  219,  218,  226,  231,  226,  231,  551,  276,  231,
    1150       231,  231,  231,  231,  231,  209,  230,  230,  230,  230,
    1151       230,  230,  236,  236,  276,  251,  236,  240,  240,  240,
    1152       240,  240,  240,  230,  230,  273,  261,  230,  261,  262,
    1153       274,  262,  231,  277,  236,  236,  316,  305,  273,  230,
    1154       236,  251,  265,  305,  278,  230,  230,  316,  274,  278,
    1155       277,  230,  239,  239,  239,  239,  239,  239,  248,  241,
    1156       241,  241,  241,  241,  241,  242,  275,  242,  265,  239,
    1157 
    1158       242,  242,  242,  242,  242,  242,  279,  241,  281,  283,
    1159       241,  248,  297,  248,  275,  239,  282,  248,  285,  280,
    1160       321,  239,  241,  248,  280,  286,  279,  283,  281,  241,
    1161       284,  282,  297,  285,  241,  248,  290,  282,  282,  248,
    1162       321,  286,  286,  248,  250,  250,  250,  250,  250,  250,
    1163       255,  255,  255,  255,  255,  255,  284,  287,  288,  289,
    1164       291,  293,  287,  290,  294,  295,  298,  288,  299,  294,
    1165       300,  301,  289,  303,  295,  300,  301,  250,  291,  293,
    1166       306,  313,  304,  255,  298,  307,  308,  312,  309,  299,
    1167       299,  304,  303,  309,  307,  310,  306,  311,  314,  313,
    1168 
    1169       310,  308,  311,  317,  318,  319,  312,  320,  322,  324,
    1170       325,  314,  323,  326,  327,  329,  331,  318,  317,  311,
    1171       333,  323,  835,  332,  329,  322,  335,  319,  333,  393,
    1172       320,  324,  327,  325,  331,  326,  332,  334,  336,  336,
    1173       337,  335,  334,  336,  393,  336,  337,  344,  344,  344,
    1174       344,  345,  345,  345,  345,  354,  355,  354,  355,  361,
    1175       361,  361,  361,  361,  361,  362,  362,  362,  362,  362,
    1176       362,  364,  364,  364,  364,  364,  364,  375,  392,  401,
    1177       344,  398,  363,  362,  363,  391,  362,  363,  363,  363,
    1178       363,  363,  363,  395,  392,  401,  391,  370,  362,  397,
    1179 
    1180       373,  375,  395,  398,  364,  362,  373,  370,  397,  412,
    1181       362,  365,  365,  365,  365,  365,  365,  366,  366,  366,
    1182       366,  366,  366,  370,  412,  367,  367,  367,  367,  367,
    1183       367,  372,  373,  377,  394,  366,  399,  371,  366,  402,
    1184       550,  396,  400,  367,  365,  399,  367,  371,  550,  404,
    1185       366,  377,  396,  394,  372,  400,  372,  366,  367,  377,
    1186       372,  402,  366,  371,  376,  367,  372,  374,  403,  374,
    1187       367,  404,  374,  374,  374,  374,  374,  374,  372,  405,
    1188       407,  410,  372,  406,  403,  403,  372,  376,  406,  376,
    1189       408,  411,  410,  376,  414,  407,  408,  405,  419,  376,
    1190 
    1191       416,  418,  407,  421,  420,  374,  423,  424,  414,  429,
    1192       411,  376,  416,  420,  426,  376,  424,  420,  422,  376,
    1193       419,  423,  418,  428,  422,  430,  421,  431,  433,  426,
    1194       432,  429,  434,  436,  438,  439,  444,  443,  440,  441,
    1195       430,  434,  442,  428,  446,  432,  443,  445,  433,  431,
    1196       436,  446,  448,  449,  444,  447,  439,  438,  440,  441,
    1197       445,  449,  447,  450,  442,  451,  453,  455,  527,  454,
    1198       502,  449,  831,  455,  527,  478,  451,  448,  454,  481,
    1199       450,  464,  464,  464,  464,  478,  482,  502,  453,  475,
    1200       475,  475,  475,  475,  475,  476,  476,  476,  476,  476,
    1201 
    1202       476,  478,  503,  505,  480,  481,  506,  475,  507,  508,
    1203       475,  509,  482,  476,  480,  503,  476,  513,  505,  829,
    1204       510,  507,  475,  634,  509,  510,  506,  511,  476,  475,
    1205       480,  508,  514,  512,  475,  476,  512,  513,  511,  516,
    1206       476,  477,  477,  477,  477,  477,  477,  479,  516,  479,
    1207       634,  514,  479,  479,  479,  479,  479,  479,  484,  484,
    1208       484,  484,  484,  484,  518,  485,  485,  485,  485,  485,
    1209       485,  486,  515,  486,  477,  518,  486,  486,  486,  486,
    1210       486,  486,  517,  485,  519,  479,  485,  517,  520,  522,
    1211       521,  523,  524,  515,  528,  525,  530,  519,  485,  521,
    1212 
    1213       525,  524,  531,  528,  534,  485,  532,  536,  523,  533,
    1214       485,  522,  537,  534,  538,  539,  536,  520,  541,  531,
    1215       542,  532,  530,  544,  533,  542,  538,  545,  546,  537,
    1216       539,  547,  544,  541,  548,  552,  545,  553,  556,  555,
    1217       554,  559,  552,  557,  547,  555,  603,  556,  560,  602,
    1218       546,  548,  554,  557,  691,  603,  602,  605,  559,  553,
    1219       691,  560,  579,  579,  579,  579,  579,  579,  580,  580,
    1220       580,  580,  580,  580,  605,  581,  581,  581,  581,  581,
    1221       581,  582,  606,  582,  604,  607,  582,  582,  582,  582,
    1222       582,  582,  607,  581,  611,  579,  581,  604,  585,  585,
    1223 
    1224       585,  585,  585,  585,  609,  606,  826,  611,  581,  587,
    1225       587,  587,  587,  587,  587,  581,  585,  601,  608,  585,
    1226       581,  609,  601,  613,  612,  610,  608,  587,  610,  614,
    1227       587,  585,  618,  615,  616,  601,  617,  616,  585,  612,
    1228       622,  619,  587,  585,  620,  613,  614,  623,  621,  587,
    1229       624,  626,  627,  617,  587,  615,  619,  621,  622,  624,
    1230       618,  628,  629,  636,  620,  633,  680,  639,  648,  623,
    1231       640,  629,  647,  626,  651,  627,  639,  640,  648,  650,
    1232       636,  647,  825,  628,  683,  633,  694,  680,  650,  651,
    1233       669,  669,  669,  669,  669,  669,  670,  670,  670,  670,
    1234 
    1235       670,  670,  681,  689,  685,  686,  684,  694,  669,  685,
    1236       683,  669,  681,  684,  670,  687,  688,  670,  687,  688,
    1237       695,  689,  692,  669,  693,  686,  698,  693,  737,  670,
    1238       669,  692,  701,  737,  696,  669,  670,  696,  700,  697,
    1239       701,  670,  671,  671,  671,  671,  671,  671,  697,  695,
    1240       699,  700,  698,  699,  702,  703,  704,  706,  709,  712,
    1241       713,  716,  714,  717,  702,  738,  706,  741,  703,  716,
    1242       735,  740,  717,  742,  736,  671,  742,  704,  744,  712,
    1243       738,  709,  713,  714,  724,  724,  724,  724,  724,  724,
    1244       735,  736,  739,  741,  740,  743,  746,  748,  749,  746,
    1245 
    1246       748,  750,  739,  752,  750,  749,  744,  751,  743,  753,
    1247       751,  758,  773,  776,  775,  778,  777,  724,  752,  777,
    1248       779,  782,  781,  779,  783,  786,  785,  783,  786,  788,
    1249       787,  776,  753,  787,  758,  775,  789,  778,  788,  773,
    1250       781,  790,  805,  806,  808,  810,  807,  782,  785,  807,
    1251       806,  809,  789,  808,  809,  813,  816,  790,  813,  816,
    1252       817,  818,  810,  805,  827,  830,  828,  839,  830,  817,
    1253       818,  828,  832,  827,  833,  832,  834,  833,  840,  834,
    1254       841,  842,  845,  841,  842,  824,  823,  839,  822,  821,
    1255       820,  819,  815,  840,  814,  812,  811,  804,  803,  802,
    1256 
    1257       801,  800,  799,  798,  845,  851,  851,  851,  851,  851,
    1258       851,  851,  851,  851,  851,  851,  851,  852,  852,  852,
    1259       852,  852,  852,  852,  852,  852,  852,  852,  852,  853,
    1260       853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
    1261       853,  854,  797,  796,  854,  854,  854,  854,  854,  854,
    1262       855,  795,  794,  793,  855,  855,  855,  855,  855,  856,
    1263       856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
    1264       856,  857,  792,  791,  857,  857,  857,  857,  857,  857,
    1265       858,  784,  858,  858,  780,  858,  858,  858,  858,  858,
    1266       774,  858,  859,  772,  771,  859,  859,  859,  859,  859,
    1267 
    1268       859,  859,  770,  859,  860,  860,  860,  860,  860,  860,
    1269       860,  860,  860,  860,  860,  860,  861,  861,  861,  769,
    1270       768,  767,  861,  862,  766,  765,  862,  862,  862,  862,
    1271       862,  862,  863,  863,  764,  763,  762,  863,  864,  864,
    1272       761,  760,  759,  864,  865,  865,  757,  756,  755,  865,
    1273       866,  866,  754,  747,  745,  866,  867,  867,  734,  733,
    1274       732,  867,  868,  868,  731,  730,  729,  868,  869,  869,
    1275       728,  727,  726,  869,  870,  870,  723,  722,  721,  870,
    1276       871,  871,  720,  715,  711,  871,  872,  872,  872,  872,
    1277       872,  872,  872,  872,  872,  872,  872,  872,  873,  873,
    1278 
    1279       874,  874,  874,  874,  874,  710,  874,  875,  875,  875,
    1280       876,  876,  708,  707,  705,  876,  877,  877,  690,  682,
    1281       679,  877,  878,  878,  674,  672,  660,  878,  879,  879,
    1282       880,  880,  656,  654,  652,  880,  881,  881,  882,  649,
    1283       646,  882,  882,  882,  882,  882,  882,  883,  883,  883,
    1284       883,  883,  883,  883,  883,  883,  883,  883,  883,  884,
    1285       884,  884,  884,  884,  884,  884,  884,  884,  884,  884,
    1286       884,  885,  885,  645,  644,  643,  885,  886,  886,  642,
    1287       641,  638,  886,  887,  887,  637,  635,  632,  887,  888,
    1288       888,  889,  889,  631,  630,  625,  889,  890,  890,  891,
    1289 
    1290       891,  599,  595,  593,  891,  892,  892,  893,  893,  591,
    1291       589,  583,  893,  894,  894,  895,  895,  577,  575,  573,
    1292       895,  896,  896,  897,  897,  571,  569,  567,  897,  898,
    1293       898,  899,  899,  565,  563,  562,  899,  900,  900,  901,
    1294       901,  561,  901,  558,  901,  902,  902,  549,  902,  543,
    1295       902,  903,  903,  903,  903,  903,  540,  903,  904,  904,
    1296       535,  529,  526,  904,  905,  905,  504,  500,  498,  905,
    1297       906,  906,  496,  494,  492,  906,  907,  907,  908,  908,
    1298       490,  489,  488,  908,  909,  909,  910,  910,  487,  473,
    1299       471,  910,  911,  911,  912,  912,  470,  469,  467,  912,
    1300 
    1301       913,  913,  914,  465,  462,  914,  914,  914,  914,  914,
    1302       914,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    1303       915,  915,  915,  916,  916,  460,  458,  456,  916,  917,
    1304       917,  918,  918,  452,  437,  435,  918,  919,  919,  920,
    1305       920,  427,  425,  417,  920,  921,  921,  922,  922,  415,
    1306       413,  388,  922,  923,  923,  924,  924,  386,  384,  382,
    1307       924,  925,  925,  926,  926,  381,  380,  359,  926,  927,
    1308       927,  928,  928,  357,  356,  352,  928,  929,  929,  350,
    1309       348,  346,  929,  930,  930,  931,  931,  342,  340,  339,
    1310       931,  932,  932,  933,  933,  338,  933,  328,  933,  934,
    1311 
    1312       934,  315,  292,  272,  934,  935,  935,  270,  268,  267,
    1313       935,  936,  936,  937,  937,  266,  264,  263,  937,  938,
    1314       938,  939,  939,  258,  254,  253,  939,  940,  940,  941,
    1315       941,  249,  246,  245,  941,  942,  942,  943,  943,  234,
    1316       233,  228,  943,  944,  944,  945,  945,  227,  224,  214,
    1317       945,  946,  946,  947,  212,  211,  947,  947,  947,  947,
    1318       947,  947,  948,  948,  948,  948,  948,  948,  948,  948,
    1319       948,  948,  948,  948,  949,  949,  210,  204,  203,  949,
    1320       950,  950,  951,  951,  201,  196,  176,  951,  952,  952,
    1321       953,  953,  147,  145,  144,  953,  954,  954,  955,  955,
    1322 
    1323       139,  137,  135,  955,  956,  956,  957,  957,  127,  124,
    1324       123,  957,  958,  958,  959,  959,  119,  100,   97,  959,
    1325       960,  960,  961,  961,   94,   92,   85,  961,  962,  962,
    1326       963,  963,   71,   69,   65,  963,  964,  964,  965,  965,
    1327        39,   36,   33,  965,  966,  966,   18,   11,    4,  966,
    1328       967,  967,  968,  968,    3,    0,    0,  968,  969,  969,
    1329       970,  970,    0,    0,    0,  970,  971,  971,  972,  972,
    1330         0,    0,    0,  972,  973,  973,  974,  974,  975,  975,
    1331       976,    0,    0,  976,  976,  976,  976,  976,  976,  977,
    1332       977,  978,  978,  978,  978,  978,  978,  978,  978,  978,
    1333 
    1334       978,  978,  978,  979,  979,    0,    0,    0,  979,  980,
    1335       980,  981,  981,    0,    0,    0,  981,  982,  982,  983,
    1336       983,  984,  984,  985,    0,    0,  985,  985,  985,  985,
    1337       985,  985,  986,  986,  987,  987,  988,  988,  989,  989,
    1338       990,  990,  991,  991,  992,  992,  993,  993,    0,    0,
    1339         0,  993,  994,  994,  995,  995,    0,    0,    0,  995,
    1340       996,  996,  997,  997,  998,  998,  999,  999, 1000, 1000,
    1341         0,    0,    0, 1000, 1001,    0,    0, 1001, 1001, 1001,
    1342      1001, 1001, 1001, 1002, 1002, 1003, 1003, 1004, 1004,    0,
    1343         0,    0, 1004, 1005, 1005,    0,    0,    0, 1005, 1006,
    1344 
    1345      1006,    0,    0,    0, 1006, 1007, 1007, 1008, 1008,    0,
    1346         0,    0, 1008, 1009, 1009,    0,    0,    0, 1009, 1010,
    1347      1010,    0,    0,    0, 1010, 1011, 1011,    0,    0,    0,
    1348      1011, 1012, 1012,    0,    0,    0, 1012, 1013, 1013,    0,
    1349         0,    0, 1013, 1014, 1014,    0,    0,    0, 1014, 1015,
    1350      1015,    0,    0,    0, 1015, 1016, 1016,    0,    0,    0,
    1351      1016, 1017, 1017,    0,    0,    0, 1017, 1018, 1018,    0,
    1352         0,    0, 1018, 1019, 1019,    0,    0,    0, 1019, 1020,
    1353      1020,    0,    0,    0, 1020, 1021, 1021,    0,    0,    0,
    1354      1021, 1022, 1022,    0,    0,    0, 1022, 1023, 1023,    0,
    1355 
    1356         0,    0, 1023,  850,  850,  850,  850,  850,  850,  850,
    1357       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1358       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1359       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1360       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1361       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1362       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1363       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1364       850,  850,  850,  850,  850,  850,  850,  850,  850
     1139      129,  153,  129,  103,  132,  132,  158,  132,  103,  133,
     1140      130,  133,  130,  186,  136,   76,  136,  153,   76,  134,
     1141      134,  134,  158,   76,   76,  165,  164,   76,   76,  154,
     1142      138,  103,  138,  186,  155,   76,  164,  216,   76,  216,
     1143
     1144       76,   76,   76,  144,   76,   84,  165,  154,  144,   84,
     1145       84,  168,  149,  173,   84,   84,  155,   84,  104,   84,
     1146      104,  104,  104,  104,  104,  104,  159,  149,   84,   84,
     1147       84,  173,  168,  105,  149,  105,  161,  104,  105,  105,
     1148      105,  105,  105,  105,  170,  162,  167,  144,  159,   84,
     1149      162,  169,   84,  104,  171,  157,  169,  161,  161,  104,
     1150      157,  172,  157,  162,  157,  157,  170,  175,  157,  171,
     1151      157,  105,  179,  167,  169,  157,  157,  157,  172,  157,
     1152       84,   98,   98,   98,   98,   98,   98,  176,  178,  179,
     1153      180,  185,  280,  182,  175,  180,  181,  183,   98,   98,
     1154
     1155      192,  850,   98,  178,  185,  189,  187,  181,  183,  176,
     1156      178,  182,  280,  192,   98,  188,  203,  181,  181,  184,
     1157       98,   98,  190,  191,  184,  183,   98,  102,  102,  102,
     1158      102,  102,  102,  187,  188,  190,  191,  274,  191,  184,
     1159      449,  275,  203,  190,  102,  102,  207,  207,  102,  189,
     1160      274,  207,  189,  195,  195,  195,  195,  195,  195,  275,
     1161      102,  195,  277,  196,  196,  449,  102,  102,  196,  198,
     1162      198,  217,  102,  217,  198,  200,  200,  218,  277,  218,
     1163      200,  221,  200,  221,  196,  196,  196,  196,  196,  196,
     1164      198,  198,  198,  198,  198,  198,  200,  200,  200,  200,
     1165
     1166      200,  200,  210,  210,  210,  210,  219,  220,  222,  222,
     1167      223,  222,  223,  224,  224,  224,  226,  239,  226,  220,
     1168      219,  220,  219,  227,  232,  227,  232,  278,  849,  232,
     1169      232,  232,  232,  232,  232,  210,  231,  231,  231,  231,
     1170      231,  231,  237,  237,  278,  244,  237,  252,  262,  263,
     1171      262,  263,  239,  231,  231,  279,  276,  231,  281,  282,
     1172      279,  288,  232,  281,  237,  237,  288,  290,  266,  231,
     1173      237,  244,  285,  252,  276,  231,  231,  848,  284,  282,
     1174      290,  231,  240,  240,  240,  240,  240,  240,  241,  241,
     1175      241,  241,  241,  241,  266,  283,  284,  286,  285,  240,
     1176
     1177      289,  242,  242,  242,  242,  242,  242,  249,  291,  289,
     1178      283,  292,  286,  294,  847,  240,  283,  283,  243,  242,
     1179      243,  240,  242,  243,  243,  243,  243,  243,  243,  292,
     1180      249,  294,  249,  295,  242,  291,  249,  298,  295,  287,
     1181      301,  242,  249,  299,  296,  301,  242,  251,  251,  251,
     1182      251,  251,  251,  296,  249,  287,  287,  298,  249,  304,
     1183      300,  299,  249,  256,  256,  256,  256,  256,  256,  297,
     1184      302,  303,  307,  306,  305,  302,  297,  303,  304,  306,
     1185      251,  300,  300,  305,  308,  309,  310,  311,  307,  312,
     1186      313,  310,  311,  308,  312,  314,  256,  315,  320,  318,
     1187
     1188      309,  321,  319,  322,  323,  325,  326,  324,  327,  313,
     1189      315,  312,  331,  314,  318,  319,  324,  328,  332,  330,
     1190      320,  323,  336,  322,  321,  333,  335,  325,  330,  326,
     1191      327,  335,  355,  396,  355,  328,  332,  336,  333,  337,
     1192      337,  338,  396,  356,  337,  356,  337,  338,  345,  345,
     1193      345,  345,  346,  346,  346,  346,  331,  362,  362,  362,
     1194      362,  362,  362,  392,  363,  363,  363,  363,  363,  363,
     1195      364,  376,  364,  552,  392,  364,  364,  364,  364,  364,
     1196      364,  345,  363,  552,  371,  363,  365,  365,  365,  365,
     1197      365,  365,  393,  401,  371,  376,  398,  363,  366,  366,
     1198
     1199      366,  366,  366,  366,  363,  398,  401,  372,  393,  363,
     1200      371,  367,  367,  367,  367,  367,  367,  372,  395,  365,
     1201      368,  368,  368,  368,  368,  368,  400,  417,  394,  367,
     1202      374,  366,  367,  372,  373,  400,  374,  395,  368,  417,
     1203      375,  368,  375,  394,  367,  375,  375,  375,  375,  375,
     1204      375,  367,  399,  368,  378,  397,  367,  373,  406,  373,
     1205      368,  377,  374,  373,  411,  368,  397,  402,  845,  373,
     1206      403,  404,  378,  405,  399,  411,  406,  407,  375,  408,
     1207      378,  373,  407,  402,  377,  373,  377,  404,  404,  373,
     1208      377,  409,  403,  410,  408,  405,  377,  409,  412,  415,
     1209
     1210      413,  408,  419,  420,  422,  423,  424,  430,  377,  421,
     1211      425,  423,  377,  415,  410,  413,  377,  412,  421,  425,
     1212      427,  424,  421,  419,  429,  420,  431,  422,  432,  430,
     1213      433,  434,  437,  435,  439,  427,  441,  440,  443,  442,
     1214      446,  431,  435,  444,  429,  433,  445,  447,  448,  437,
     1215      432,  434,  444,  446,  447,  448,  441,  439,  440,  442,
     1216      443,  450,  452,  451,  445,  454,  455,  611,  456,  450,
     1217      611,  844,  504,  452,  456,  455,  479,  482,  483,  450,
     1218      451,  465,  465,  465,  465,  504,  479,  454,  476,  476,
     1219      476,  476,  476,  476,  477,  477,  477,  477,  477,  477,
     1220
     1221      481,  503,  479,  482,  483,  506,  476,  839,  509,  476,
     1222      481,  507,  477,  512,  516,  477,  508,  511,  503,  510,
     1223      506,  476,  511,  531,  512,  519,  481,  477,  476,  508,
     1224      509,  507,  510,  476,  477,  516,  519,  520,  517,  477,
     1225      478,  478,  478,  478,  478,  478,  480,  517,  480,  531,
     1226      520,  480,  480,  480,  480,  480,  480,  485,  485,  485,
     1227      485,  485,  485,  514,  486,  486,  486,  486,  486,  486,
     1228      487,  515,  487,  478,  524,  487,  487,  487,  487,  487,
     1229      487,  518,  486,  514,  480,  486,  518,  522,  523,  525,
     1230      515,  524,  533,  529,  526,  528,  522,  486,  525,  526,
     1231
     1232      532,  528,  529,  534,  486,  535,  537,  533,  538,  486,
     1233      523,  539,  540,  542,  535,  537,  543,  532,  534,  547,
     1234      545,  543,  546,  539,  548,  538,  549,  540,  542,  545,
     1235      551,  546,  553,  554,  555,  557,  556,  548,  551,  553,
     1236      558,  547,  556,  549,  557,  560,  555,  561,  604,  603,
     1237      558,  617,  608,  609,  617,  554,  603,  604,  606,  608,
     1238      561,  609,  560,  580,  580,  580,  580,  580,  580,  581,
     1239      581,  581,  581,  581,  581,  606,  582,  582,  582,  582,
     1240      582,  582,  583,  607,  583,  605,  641,  583,  583,  583,
     1241      583,  583,  583,  641,  582,  612,  580,  582,  605,  586,
     1242
     1243      586,  586,  586,  586,  586,  610,  607,  614,  612,  582,
     1244      588,  588,  588,  588,  588,  588,  582,  586,  602,  613,
     1245      586,  582,  610,  602,  615,  616,  619,  620,  588,  614,
     1246      623,  588,  586,  621,  613,  618,  602,  622,  624,  586,
     1247      625,  615,  620,  588,  586,  627,  622,  616,  623,  625,
     1248      588,  628,  618,  621,  619,  588,  629,  630,  635,  634,
     1249      624,  640,  648,  637,  651,  649,  630,  627,  652,  739,
     1250      640,  648,  682,  651,  628,  649,  684,  681,  629,  634,
     1251      637,  687,  682,  652,  739,  635,  670,  670,  670,  670,
     1252      670,  670,  671,  671,  671,  671,  671,  671,  681,  685,
     1253
     1254      686,  687,  684,  690,  670,  686,  685,  670,  688,  689,
     1255      671,  688,  689,  671,  692,  693,  696,  838,  703,  670,
     1256      692,  690,  699,  695,  693,  671,  670,  694,  703,  837,
     1257      694,  670,  671,  697,  710,  705,  697,  671,  672,  672,
     1258      672,  672,  672,  672,  695,  696,  698,  700,  699,  701,
     1259      700,  702,  704,  713,  707,  698,  705,  710,  714,  702,
     1260      715,  717,  701,  707,  742,  704,  718,  740,  736,  717,
     1261      741,  672,  737,  713,  738,  718,  745,  740,  754,  738,
     1262      714,  715,  725,  725,  725,  725,  725,  725,  736,  737,
     1263      742,  743,  744,  741,  743,  747,  749,  753,  747,  749,
     1264
     1265      750,  754,  759,  751,  745,  744,  751,  750,  752,  774,
     1266      776,  752,  753,  778,  777,  725,  778,  779,  780,  782,
     1267      783,  780,  786,  784,  787,  759,  784,  787,  806,  789,
     1268      788,  776,  777,  788,  790,  791,  774,  782,  789,  779,
     1269      807,  811,  808,  809,  786,  808,  783,  807,  836,  806,
     1270      790,  791,  809,  810,  814,  818,  810,  814,  811,  817,
     1271      819,  828,  817,  829,  818,  840,  841,  846,  829,  819,
     1272      828,  831,  833,  834,  831,  833,  834,  835,  832,  842,
     1273      835,  841,  842,  843,  830,  840,  843,  827,  826,  846,
     1274      852,  852,  852,  852,  852,  852,  852,  852,  852,  852,
     1275
     1276      852,  852,  852,  853,  853,  853,  853,  853,  853,  853,
     1277      853,  853,  853,  853,  853,  853,  854,  854,  854,  854,
     1278      854,  854,  854,  854,  854,  854,  854,  854,  854,  855,
     1279      825,  824,  855,  823,  855,  855,  855,  855,  855,  856,
     1280      822,  821,  820,  856,  856,  856,  856,  856,  856,  857,
     1281      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     1282      857,  857,  858,  816,  815,  858,  813,  858,  858,  858,
     1283      858,  858,  859,  812,  859,  859,  805,  859,  859,  859,
     1284      859,  859,  859,  804,  859,  860,  803,  802,  860,  860,
     1285      860,  860,  860,  860,  860,  860,  801,  860,  861,  861,
     1286
     1287      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
     1288      861,  862,  862,  800,  862,  799,  798,  797,  862,  863,
     1289      796,  795,  863,  794,  863,  863,  863,  863,  863,  864,
     1290      793,  864,  792,  785,  781,  864,  865,  775,  865,  773,
     1291      772,  771,  865,  866,  770,  866,  769,  768,  767,  866,
     1292      867,  766,  867,  765,  764,  763,  867,  868,  762,  868,
     1293      761,  760,  758,  868,  869,  757,  869,  756,  755,  748,
     1294      869,  870,  746,  870,  735,  734,  733,  870,  871,  732,
     1295      871,  731,  730,  729,  871,  872,  728,  872,  727,  724,
     1296      723,  872,  873,  873,  873,  873,  873,  873,  873,  873,
     1297
     1298      873,  873,  873,  873,  873,  874,  722,  874,  875,  875,
     1299      721,  875,  875,  875,  716,  875,  876,  876,  712,  876,
     1300      877,  711,  877,  709,  708,  706,  877,  878,  691,  878,
     1301      683,  680,  675,  878,  879,  673,  879,  661,  657,  655,
     1302      879,  880,  653,  880,  881,  650,  881,  647,  646,  645,
     1303      881,  882,  644,  882,  883,  643,  642,  883,  639,  883,
     1304      883,  883,  883,  883,  884,  884,  884,  884,  884,  884,
     1305      884,  884,  884,  884,  884,  884,  884,  885,  885,  885,
     1306      885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
     1307      886,  638,  886,  636,  633,  632,  886,  887,  631,  887,
     1308
     1309      626,  600,  596,  887,  888,  594,  888,  592,  590,  584,
     1310      888,  889,  578,  889,  890,  576,  890,  574,  572,  570,
     1311      890,  891,  568,  891,  892,  566,  892,  564,  563,  562,
     1312      892,  893,  559,  893,  894,  550,  894,  544,  541,  536,
     1313      894,  895,  530,  895,  896,  527,  896,  505,  501,  499,
     1314      896,  897,  497,  897,  898,  495,  898,  493,  491,  490,
     1315      898,  899,  489,  899,  900,  488,  900,  474,  472,  471,
     1316      900,  901,  470,  901,  902,  468,  902,  466,  902,  463,
     1317      902,  903,  461,  903,  459,  903,  457,  903,  904,  904,
     1318      453,  904,  904,  904,  438,  904,  905,  436,  905,  428,
     1319
     1320      426,  418,  905,  906,  416,  906,  414,  389,  387,  906,
     1321      907,  385,  907,  383,  382,  381,  907,  908,  360,  908,
     1322      909,  358,  909,  357,  353,  351,  909,  910,  349,  910,
     1323      911,  347,  911,  343,  341,  340,  911,  912,  339,  912,
     1324      913,  329,  913,  316,  293,  273,  913,  914,  271,  914,
     1325      915,  269,  268,  915,  267,  915,  915,  915,  915,  915,
     1326      916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
     1327      916,  916,  916,  917,  265,  917,  264,  259,  255,  917,
     1328      918,  254,  918,  919,  250,  919,  247,  246,  235,  919,
     1329      920,  234,  920,  921,  229,  921,  228,  225,  215,  921,
     1330
     1331      922,  213,  922,  923,  212,  923,  211,  205,  204,  923,
     1332      924,  202,  924,  925,  197,  925,  177,  148,  146,  925,
     1333      926,  145,  926,  927,  139,  927,  137,  135,  127,  927,
     1334      928,  124,  928,  929,  123,  929,  119,  100,   97,  929,
     1335      930,   94,  930,   92,   85,   71,  930,  931,   69,  931,
     1336      932,   65,  932,   36,   33,   18,  932,  933,   11,  933,
     1337      934,    4,  934,    3,  934,    0,  934,  935,    0,  935,
     1338        0,    0,    0,  935,  936,    0,  936,    0,    0,    0,
     1339      936,  937,    0,  937,  938,    0,  938,    0,    0,    0,
     1340      938,  939,    0,  939,  940,    0,  940,    0,    0,    0,
     1341
     1342      940,  941,    0,  941,  942,    0,  942,    0,    0,    0,
     1343      942,  943,    0,  943,  944,    0,  944,    0,    0,    0,
     1344      944,  945,    0,  945,  946,    0,  946,    0,    0,    0,
     1345      946,  947,    0,  947,  948,    0,    0,  948,    0,  948,
     1346      948,  948,  948,  948,  949,  949,  949,  949,  949,  949,
     1347      949,  949,  949,  949,  949,  949,  949,  950,    0,  950,
     1348        0,    0,    0,  950,  951,    0,  951,  952,    0,  952,
     1349        0,    0,    0,  952,  953,    0,  953,  954,    0,  954,
     1350        0,    0,    0,  954,  955,    0,  955,  956,    0,  956,
     1351        0,    0,    0,  956,  957,    0,  957,  958,    0,  958,
     1352
     1353        0,    0,    0,  958,  959,    0,  959,  960,    0,  960,
     1354        0,    0,    0,  960,  961,    0,  961,  962,    0,  962,
     1355        0,    0,    0,  962,  963,    0,  963,  964,    0,  964,
     1356        0,    0,    0,  964,  965,    0,  965,  966,    0,  966,
     1357        0,    0,    0,  966,  967,    0,  967,    0,    0,    0,
     1358      967,  968,    0,  968,  969,    0,  969,    0,    0,    0,
     1359      969,  970,    0,  970,  971,    0,  971,    0,    0,    0,
     1360      971,  972,    0,  972,  973,    0,  973,    0,    0,    0,
     1361      973,  974,    0,  974,  975,    0,  975,  976,    0,  976,
     1362      977,    0,    0,  977,    0,  977,  977,  977,  977,  977,
     1363
     1364      978,    0,  978,  979,  979,  979,  979,  979,  979,  979,
     1365      979,  979,  979,  979,  979,  979,  980,    0,  980,    0,
     1366        0,    0,  980,  981,    0,  981,  982,    0,  982,    0,
     1367        0,    0,  982,  983,    0,  983,  984,    0,  984,  985,
     1368        0,  985,  986,    0,    0,  986,    0,  986,  986,  986,
     1369      986,  986,  987,    0,  987,  988,    0,  988,  989,    0,
     1370      989,  990,    0,  990,  991,    0,  991,  992,    0,  992,
     1371      993,    0,  993,  994,    0,  994,    0,    0,    0,  994,
     1372      995,    0,  995,  996,    0,  996,    0,    0,    0,  996,
     1373      997,    0,  997,  998,    0,  998,  999,    0,  999, 1000,
     1374
     1375        0, 1000, 1001,    0, 1001,    0,    0,    0, 1001, 1002,
     1376        0,    0, 1002,    0, 1002, 1002, 1002, 1002, 1002, 1003,
     1377        0, 1003, 1004,    0, 1004, 1005,    0, 1005,    0,    0,
     1378        0, 1005, 1006,    0, 1006,    0,    0,    0, 1006, 1007,
     1379        0, 1007,    0,    0,    0, 1007, 1008,    0, 1008, 1009,
     1380        0, 1009,    0,    0,    0, 1009, 1010,    0, 1010,    0,
     1381        0,    0, 1010, 1011,    0, 1011,    0,    0,    0, 1011,
     1382     1012,    0, 1012,    0,    0,    0, 1012, 1013,    0, 1013,
     1383        0,    0,    0, 1013, 1014,    0, 1014,    0,    0,    0,
     1384     1014, 1015,    0, 1015,    0,    0,    0, 1015, 1016,    0,
     1385
     1386     1016,    0,    0,    0, 1016, 1017,    0, 1017,    0,    0,
     1387        0, 1017, 1018,    0, 1018,    0,    0,    0, 1018, 1019,
     1388        0, 1019,    0,    0,    0, 1019, 1020,    0, 1020,    0,
     1389        0,    0, 1020, 1021,    0, 1021,    0,    0,    0, 1021,
     1390     1022,    0, 1022,    0,    0,    0, 1022, 1023,    0, 1023,
     1391        0,    0,    0, 1023, 1024,    0, 1024,    0,    0,    0,
     1392     1024,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1393      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1394      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1395      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1396
     1397      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1398      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1399      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1400      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
     1401      851,  851,  851,  851,  851,  851,  851
    13651402    } ;
    13661403
    13671404/* Table of booleans, true if rule could match eol. */
    1368 static yyconst flex_int32_t yy_rule_can_match_eol[178] =
     1405static yyconst flex_int32_t yy_rule_can_match_eol[179] =
    13691406    {   0,
    137014071, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    13761413    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    13771414    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1378     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
     1415    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
    13791416
    13801417static yy_state_type yy_last_accepting_state;
     
    14041441 * Created On       : Sat Sep 22 08:58:10 2001
    14051442 * Last Modified By : Peter A. Buhr
    1406  * Last Modified On : Mon Sep 28 17:07:48 2015
    1407  * Update Count     : 402
     1443 * Last Modified On : Thu Oct  8 16:13:07 2015
     1444 * Update Count     : 404
    14081445 */
    14091446#line 20 "lex.ll"
     
    14621499
    14631500
    1464 #line 1465 "Parser/lex.cc"
     1501#line 1502 "Parser/lex.cc"
    14651502
    14661503#define INITIAL 0
     
    16571694
    16581695                                   /* line directives */
    1659 #line 1660 "Parser/lex.cc"
     1696#line 1697 "Parser/lex.cc"
    16601697
    16611698        if ( !(yy_init) )
     
    17111748                                {
    17121749                                yy_current_state = (int) yy_def[yy_current_state];
    1713                                 if ( yy_current_state >= 851 )
     1750                                if ( yy_current_state >= 852 )
    17141751                                        yy_c = yy_meta[(unsigned int) yy_c];
    17151752                                }
     
    17171754                        ++yy_cp;
    17181755                        }
    1719                 while ( yy_base[yy_current_state] != 2604 );
     1756                while ( yy_base[yy_current_state] != 2762 );
    17201757
    17211758yy_find_action:
     
    26442681{ NAMEDOP_RETURN(RSassign); }
    26452682        YY_BREAK
     2683case 171:
     2684YY_RULE_SETUP
     2685#line 358 "lex.ll"
     2686{ NAMEDOP_RETURN(ATassign); }
     2687        YY_BREAK
    26462688/* CFA, operator identifier */
    2647 case 171:
    2648 YY_RULE_SETUP
    2649 #line 359 "lex.ll"
     2689case 172:
     2690YY_RULE_SETUP
     2691#line 361 "lex.ll"
    26502692{ IDENTIFIER_RETURN(); }                                // unary
    26512693        YY_BREAK
    2652 case 172:
    2653 YY_RULE_SETUP
    2654 #line 360 "lex.ll"
     2694case 173:
     2695YY_RULE_SETUP
     2696#line 362 "lex.ll"
    26552697{ IDENTIFIER_RETURN(); }
    26562698        YY_BREAK
    2657 case 173:
    2658 YY_RULE_SETUP
    2659 #line 361 "lex.ll"
     2699case 174:
     2700YY_RULE_SETUP
     2701#line 363 "lex.ll"
    26602702{ IDENTIFIER_RETURN(); }
    26612703        YY_BREAK
    2662 case 174:
    2663 YY_RULE_SETUP
    2664 #line 362 "lex.ll"
     2704case 175:
     2705YY_RULE_SETUP
     2706#line 364 "lex.ll"
    26652707{ IDENTIFIER_RETURN(); }                // binary
    26662708        YY_BREAK
     
    26912733          an argument list.
    26922734        */
    2693 case 175:
    2694 YY_RULE_SETUP
    2695 #line 389 "lex.ll"
     2735case 176:
     2736YY_RULE_SETUP
     2737#line 391 "lex.ll"
    26962738{
    26972739        // 1 or 2 character unary operator ?
     
    27062748        YY_BREAK
    27072749/* unknown characters */
    2708 case 176:
    2709 YY_RULE_SETUP
    2710 #line 401 "lex.ll"
     2750case 177:
     2751YY_RULE_SETUP
     2752#line 403 "lex.ll"
    27112753{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    27122754        YY_BREAK
    2713 case 177:
    2714 YY_RULE_SETUP
    2715 #line 403 "lex.ll"
     2755case 178:
     2756YY_RULE_SETUP
     2757#line 405 "lex.ll"
    27162758ECHO;
    27172759        YY_BREAK
    2718 #line 2719 "Parser/lex.cc"
     2760#line 2761 "Parser/lex.cc"
    27192761case YY_STATE_EOF(INITIAL):
    27202762case YY_STATE_EOF(COMMENT):
     
    30133055                        {
    30143056                        yy_current_state = (int) yy_def[yy_current_state];
    3015                         if ( yy_current_state >= 851 )
     3057                        if ( yy_current_state >= 852 )
    30163058                                yy_c = yy_meta[(unsigned int) yy_c];
    30173059                        }
     
    30413083                {
    30423084                yy_current_state = (int) yy_def[yy_current_state];
    3043                 if ( yy_current_state >= 851 )
     3085                if ( yy_current_state >= 852 )
    30443086                        yy_c = yy_meta[(unsigned int) yy_c];
    30453087                }
    30463088        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3047         yy_is_jam = (yy_current_state == 850);
     3089        yy_is_jam = (yy_current_state == 851);
    30483090
    30493091        return yy_is_jam ? 0 : yy_current_state;
     
    36913733#define YYTABLES_NAME "yytables"
    36923734
    3693 #line 403 "lex.ll"
     3735#line 405 "lex.ll"
    36943736
    36953737
  • src/Parser/lex.ll

    r02e5ab6 r097e2b0  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Mon Sep 28 17:07:48 2015
    13  * Update Count     : 402
     12 * Last Modified On : Thu Oct  8 16:13:07 2015
     13 * Update Count     : 404
    1414 */
    1515
     
    356356">>="                   { NAMEDOP_RETURN(RSassign); }
    357357
     358"@="                    { NAMEDOP_RETURN(ATassign); }
     359
    358360                                /* CFA, operator identifier */
    359361{op_unary}"?"   { IDENTIFIER_RETURN(); }                                // unary
  • src/Parser/parser.cc

    r02e5ab6 r097e2b0  
    219219     ERassign = 358,
    220220     ORassign = 359,
    221      THEN = 360
     221     ATassign = 360,
     222     THEN = 361
    222223   };
    223224#endif
     
    325326#define ERassign 358
    326327#define ORassign 359
    327 #define THEN 360
     328#define ATassign 360
     329#define THEN 361
    328330
    329331
     
    335337
    336338/* Line 293 of yacc.c  */
    337 #line 108 "parser.yy"
     339#line 110 "parser.yy"
    338340
    339341        Token tok;
     
    352354
    353355/* Line 293 of yacc.c  */
    354 #line 355 "Parser/parser.cc"
     356#line 357 "Parser/parser.cc"
    355357} YYSTYPE;
    356358# define YYSTYPE_IS_TRIVIAL 1
     
    364366
    365367/* Line 343 of yacc.c  */
    366 #line 367 "Parser/parser.cc"
     368#line 369 "Parser/parser.cc"
    367369
    368370#ifdef short
     
    581583
    582584/* YYFINAL -- State number of the termination state.  */
    583 #define YYFINAL  246
     585#define YYFINAL  247
    584586/* YYLAST -- Last index in YYTABLE.  */
    585 #define YYLAST   11027
     587#define YYLAST   10817
    586588
    587589/* YYNTOKENS -- Number of terminals.  */
    588 #define YYNTOKENS  130
     590#define YYNTOKENS  131
    589591/* YYNNTS -- Number of nonterminals.  */
    590 #define YYNNTS  240
     592#define YYNNTS  238
    591593/* YYNRULES -- Number of rules.  */
    592 #define YYNRULES  750
     594#define YYNRULES  749
    593595/* YYNRULES -- Number of states.  */
    594 #define YYNSTATES  1574
     596#define YYNSTATES  1570
    595597
    596598/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    597599#define YYUNDEFTOK  2
    598 #define YYMAXUTOK   360
     600#define YYMAXUTOK   361
    599601
    600602#define YYTRANSLATE(YYX)                                                \
     
    607609       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    608610       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    609        2,     2,     2,   115,     2,     2,     2,   122,   117,     2,
    610      106,   107,   116,   118,   113,   119,   110,   121,     2,     2,
    611        2,     2,     2,     2,     2,     2,     2,     2,   114,   129,
    612      123,   128,   124,   127,     2,     2,     2,     2,     2,     2,
     611       2,     2,     2,   116,     2,     2,     2,   123,   118,     2,
     612     107,   108,   117,   119,   114,   120,   111,   122,     2,     2,
     613       2,     2,     2,     2,     2,     2,     2,     2,   115,   130,
     614     124,   129,   125,   128,     2,     2,     2,     2,     2,     2,
    613615       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    614616       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    615        2,   108,     2,   109,   125,     2,     2,     2,     2,     2,
     617       2,   109,     2,   110,   126,     2,     2,     2,     2,     2,
    616618       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    617619       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    618        2,     2,     2,   111,   126,   112,   120,     2,     2,     2,
     620       2,     2,     2,   112,   127,   113,   121,     2,     2,     2,
    619621       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    620622       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    640642      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    641643      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    642      105
     644     105,   106
    643645};
    644646
     
    649651{
    650652       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    651       17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
    652       38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
    653       86,    89,    92,   100,   102,   106,   107,   109,   113,   121,
    654      131,   133,   137,   139,   143,   151,   155,   163,   165,   167,
    655      169,   172,   175,   178,   181,   184,   187,   190,   195,   197,
    656      202,   207,   210,   215,   218,   220,   222,   224,   226,   228,
    657      233,   238,   240,   244,   248,   252,   254,   258,   262,   264,
    658      268,   272,   274,   278,   282,   286,   290,   292,   296,   300,
    659      302,   306,   308,   312,   314,   318,   320,   324,   326,   330,
    660      332,   338,   343,   349,   351,   353,   357,   361,   364,   365,
    661      367,   370,   376,   383,   391,   393,   397,   399,   401,   403,
    662      405,   407,   409,   411,   413,   415,   417,   419,   423,   424,
    663      426,   428,   430,   432,   434,   436,   438,   440,   442,   444,
    664      449,   452,   460,   462,   466,   468,   471,   473,   476,   478,
    665      481,   484,   490,   498,   504,   514,   520,   530,   532,   536,
    666      538,   540,   544,   548,   551,   553,   556,   559,   560,   562,
    667      565,   569,   570,   572,   575,   579,   583,   588,   589,   591,
    668      593,   596,   602,   610,   617,   624,   629,   633,   638,   641,
    669      645,   648,   652,   656,   660,   664,   670,   674,   678,   683,
    670      685,   691,   698,   704,   711,   721,   732,   742,   753,   756,
    671      758,   761,   764,   767,   769,   776,   785,   796,   809,   824,
    672      825,   827,   828,   830,   832,   836,   841,   849,   850,   852,
    673      856,   858,   862,   868,   874,   876,   878,   880,   884,   886,
    674      888,   890,   894,   895,   897,   901,   906,   908,   912,   914,
    675      916,   920,   924,   928,   932,   936,   939,   943,   950,   954,
    676      958,   963,   965,   968,   971,   975,   981,   990,   998,  1006,
    677     1012,  1022,  1025,  1028,  1034,  1038,  1044,  1049,  1053,  1058,
    678     1063,  1071,  1075,  1079,  1083,  1087,  1092,  1099,  1101,  1103,
    679     1105,  1107,  1109,  1111,  1113,  1115,  1116,  1118,  1120,  1123,
    680     1125,  1127,  1129,  1131,  1133,  1135,  1137,  1138,  1144,  1146,
    681     1149,  1153,  1155,  1158,  1160,  1162,  1164,  1166,  1168,  1170,
     653      17,    19,    21,    23,    25,    27,    29,    32,    34,    36,
     654      40,    44,    46,    53,    58,    62,    70,    74,    82,    85,
     655      88,    96,   101,   103,   107,   108,   110,   114,   122,   132,
     656     134,   138,   140,   144,   152,   156,   164,   166,   168,   170,
     657     173,   176,   179,   182,   185,   188,   191,   196,   198,   203,
     658     208,   211,   216,   219,   221,   223,   225,   227,   229,   234,
     659     239,   241,   245,   249,   253,   255,   259,   263,   265,   269,
     660     273,   275,   279,   283,   287,   291,   293,   297,   301,   303,
     661     307,   309,   313,   315,   319,   321,   325,   327,   331,   333,
     662     339,   344,   350,   352,   354,   358,   362,   365,   366,   368,
     663     371,   377,   384,   392,   394,   398,   400,   402,   404,   406,
     664     408,   410,   412,   414,   416,   418,   420,   424,   425,   427,
     665     429,   431,   433,   435,   437,   439,   441,   443,   450,   455,
     666     458,   466,   468,   472,   474,   477,   479,   482,   484,   487,
     667     490,   496,   504,   510,   520,   526,   536,   538,   542,   544,
     668     546,   550,   554,   557,   559,   562,   565,   566,   568,   571,
     669     575,   576,   578,   581,   585,   589,   594,   595,   597,   599,
     670     602,   608,   616,   623,   630,   635,   639,   644,   647,   651,
     671     654,   658,   662,   666,   670,   676,   680,   684,   689,   691,
     672     697,   704,   710,   717,   727,   738,   748,   759,   762,   764,
     673     767,   770,   773,   775,   782,   791,   802,   815,   830,   831,
     674     833,   834,   836,   838,   842,   847,   855,   856,   858,   862,
     675     864,   868,   870,   872,   874,   878,   880,   882,   884,   888,
     676     889,   891,   895,   900,   902,   906,   908,   910,   914,   918,
     677     922,   926,   930,   933,   937,   944,   948,   952,   957,   959,
     678     962,   965,   969,   975,   984,   992,  1000,  1006,  1016,  1019,
     679    1022,  1028,  1032,  1038,  1043,  1047,  1052,  1057,  1065,  1069,
     680    1073,  1077,  1081,  1086,  1093,  1095,  1097,  1099,  1101,  1103,
     681    1105,  1107,  1109,  1110,  1112,  1114,  1117,  1119,  1121,  1123,
     682    1125,  1127,  1129,  1131,  1132,  1138,  1140,  1143,  1147,  1149,
     683    1152,  1154,  1156,  1158,  1160,  1162,  1164,  1166,  1168,  1170,
    682684    1172,  1174,  1176,  1178,  1180,  1182,  1184,  1186,  1188,  1190,
    683     1192,  1194,  1196,  1198,  1200,  1202,  1205,  1208,  1212,  1216,
    684     1218,  1222,  1224,  1227,  1230,  1233,  1238,  1243,  1248,  1253,
    685     1255,  1258,  1261,  1265,  1267,  1270,  1273,  1275,  1278,  1281,
    686     1285,  1287,  1290,  1293,  1295,  1297,  1302,  1305,  1311,  1319,
    687     1322,  1325,  1328,  1330,  1333,  1336,  1340,  1343,  1347,  1349,
    688     1352,  1356,  1359,  1362,  1367,  1368,  1370,  1373,  1376,  1378,
    689     1379,  1381,  1384,  1387,  1393,  1400,  1403,  1406,  1411,  1412,
    690     1415,  1416,  1418,  1420,  1422,  1428,  1434,  1440,  1442,  1448,
    691     1454,  1464,  1466,  1472,  1473,  1475,  1477,  1483,  1485,  1487,
    692     1493,  1499,  1501,  1505,  1509,  1514,  1516,  1518,  1520,  1522,
    693     1525,  1527,  1531,  1535,  1537,  1540,  1542,  1546,  1548,  1550,
    694     1552,  1554,  1556,  1558,  1560,  1562,  1564,  1566,  1568,  1571,
    695     1573,  1575,  1577,  1580,  1581,  1584,  1586,  1591,  1593,  1596,
    696     1600,  1605,  1608,  1611,  1613,  1616,  1618,  1621,  1627,  1633,
    697     1641,  1648,  1650,  1653,  1656,  1660,  1662,  1665,  1668,  1673,
    698     1676,  1681,  1682,  1687,  1690,  1692,  1694,  1696,  1697,  1700,
    699     1706,  1712,  1726,  1728,  1730,  1734,  1738,  1741,  1745,  1749,
    700     1752,  1757,  1759,  1766,  1776,  1777,  1789,  1791,  1795,  1799,
    701     1803,  1805,  1807,  1813,  1816,  1822,  1823,  1825,  1827,  1831,
    702     1832,  1834,  1836,  1838,  1840,  1841,  1848,  1851,  1853,  1856,
    703     1861,  1864,  1868,  1872,  1876,  1881,  1887,  1893,  1899,  1906,
    704     1908,  1910,  1912,  1916,  1917,  1923,  1924,  1926,  1928,  1931,
    705     1938,  1940,  1944,  1945,  1947,  1952,  1954,  1956,  1958,  1960,
    706     1963,  1965,  1968,  1971,  1973,  1977,  1980,  1984,  1988,  1991,
    707     1996,  2001,  2005,  2014,  2018,  2021,  2023,  2026,  2033,  2042,
    708     2046,  2049,  2053,  2057,  2062,  2067,  2071,  2073,  2075,  2077,
    709     2082,  2089,  2093,  2096,  2100,  2104,  2109,  2114,  2118,  2121,
    710     2123,  2126,  2129,  2131,  2135,  2138,  2142,  2146,  2149,  2154,
    711     2159,  2163,  2170,  2179,  2183,  2186,  2188,  2191,  2194,  2197,
    712     2201,  2205,  2208,  2213,  2218,  2222,  2229,  2238,  2242,  2245,
    713     2247,  2250,  2253,  2255,  2257,  2260,  2264,  2268,  2271,  2276,
    714     2283,  2292,  2294,  2297,  2300,  2302,  2305,  2308,  2312,  2316,
    715     2318,  2323,  2328,  2332,  2338,  2347,  2351,  2354,  2358,  2360,
    716     2366,  2372,  2379,  2386,  2388,  2391,  2394,  2396,  2399,  2402,
    717     2406,  2410,  2412,  2417,  2422,  2426,  2432,  2441,  2445,  2447,
    718     2450,  2452,  2455,  2462,  2468,  2475,  2483,  2491,  2493,  2496,
    719     2499,  2501,  2504,  2507,  2511,  2515,  2517,  2522,  2527,  2531,
    720     2540,  2544,  2546,  2548,  2551,  2553,  2555,  2558,  2562,  2565,
    721     2569,  2572,  2576,  2580,  2583,  2588,  2592,  2595,  2599,  2602,
    722     2607,  2611,  2614,  2621,  2628,  2635,  2643,  2645,  2648,  2650,
    723     2652,  2654,  2657,  2661,  2664,  2668,  2671,  2675,  2679,  2684,
    724     2687,  2691,  2696,  2699,  2705,  2711,  2718,  2725,  2726,  2728,
    725     2729
     685    1192,  1194,  1196,  1199,  1202,  1206,  1210,  1212,  1216,  1218,
     686    1221,  1224,  1227,  1232,  1237,  1242,  1247,  1249,  1252,  1255,
     687    1259,  1261,  1264,  1267,  1269,  1272,  1275,  1279,  1281,  1284,
     688    1287,  1289,  1291,  1296,  1299,  1305,  1313,  1316,  1319,  1322,
     689    1324,  1327,  1330,  1334,  1337,  1341,  1343,  1346,  1350,  1353,
     690    1356,  1361,  1362,  1364,  1367,  1370,  1372,  1373,  1375,  1378,
     691    1381,  1387,  1394,  1397,  1400,  1405,  1406,  1409,  1410,  1412,
     692    1414,  1416,  1422,  1428,  1434,  1436,  1442,  1448,  1458,  1460,
     693    1466,  1467,  1469,  1471,  1477,  1479,  1481,  1487,  1493,  1495,
     694    1499,  1503,  1508,  1510,  1512,  1514,  1516,  1519,  1521,  1525,
     695    1529,  1531,  1534,  1536,  1540,  1542,  1544,  1546,  1548,  1550,
     696    1552,  1554,  1556,  1558,  1560,  1562,  1565,  1567,  1569,  1571,
     697    1574,  1575,  1578,  1581,  1583,  1588,  1589,  1591,  1594,  1598,
     698    1603,  1606,  1609,  1611,  1614,  1616,  1619,  1625,  1631,  1639,
     699    1646,  1648,  1651,  1654,  1658,  1660,  1663,  1666,  1671,  1674,
     700    1679,  1680,  1685,  1688,  1690,  1692,  1694,  1695,  1698,  1704,
     701    1710,  1724,  1726,  1728,  1732,  1736,  1739,  1743,  1747,  1750,
     702    1755,  1757,  1764,  1774,  1775,  1787,  1789,  1793,  1797,  1801,
     703    1803,  1805,  1811,  1814,  1820,  1821,  1823,  1825,  1829,  1830,
     704    1832,  1834,  1836,  1838,  1839,  1846,  1849,  1851,  1854,  1859,
     705    1862,  1866,  1870,  1874,  1879,  1885,  1891,  1897,  1904,  1906,
     706    1908,  1910,  1914,  1915,  1921,  1922,  1924,  1926,  1929,  1936,
     707    1938,  1942,  1943,  1945,  1950,  1952,  1954,  1956,  1958,  1961,
     708    1963,  1966,  1969,  1971,  1975,  1978,  1982,  1986,  1989,  1994,
     709    1999,  2003,  2012,  2016,  2019,  2021,  2024,  2031,  2040,  2044,
     710    2047,  2051,  2055,  2060,  2065,  2069,  2071,  2073,  2075,  2080,
     711    2087,  2091,  2094,  2098,  2102,  2107,  2112,  2116,  2119,  2121,
     712    2124,  2127,  2129,  2133,  2136,  2140,  2144,  2147,  2152,  2157,
     713    2161,  2168,  2177,  2181,  2184,  2186,  2189,  2192,  2195,  2199,
     714    2203,  2206,  2211,  2216,  2220,  2227,  2236,  2240,  2243,  2245,
     715    2248,  2251,  2253,  2255,  2258,  2262,  2266,  2269,  2274,  2281,
     716    2290,  2292,  2295,  2298,  2300,  2303,  2306,  2310,  2314,  2316,
     717    2321,  2326,  2330,  2336,  2345,  2349,  2352,  2356,  2358,  2364,
     718    2370,  2377,  2384,  2386,  2389,  2392,  2394,  2397,  2400,  2404,
     719    2408,  2410,  2415,  2420,  2424,  2430,  2439,  2443,  2445,  2448,
     720    2450,  2453,  2460,  2466,  2473,  2481,  2489,  2491,  2494,  2497,
     721    2499,  2502,  2505,  2509,  2513,  2515,  2520,  2525,  2529,  2538,
     722    2542,  2544,  2546,  2549,  2551,  2553,  2556,  2560,  2563,  2567,
     723    2570,  2574,  2578,  2581,  2586,  2590,  2593,  2597,  2600,  2605,
     724    2609,  2612,  2619,  2626,  2633,  2641,  2643,  2646,  2648,  2650,
     725    2652,  2655,  2659,  2662,  2666,  2669,  2673,  2677,  2682,  2685,
     726    2689,  2694,  2697,  2703,  2709,  2716,  2723,  2724,  2726,  2727
    726727};
    727728
     
    729730static const yytype_int16 yyrhs[] =
    730731{
    731      298,     0,    -1,    -1,    -1,    77,    -1,    78,    -1,    79,
     732     297,     0,    -1,    -1,    -1,    77,    -1,    78,    -1,    79,
    732733      -1,    70,    -1,    74,    -1,   138,    -1,    70,    -1,    74,
    733       -1,    70,    -1,    70,    -1,   138,    -1,    81,    -1,    82,
    734       -1,    80,    -1,   139,    80,    -1,    70,    -1,   138,    -1,
    735      106,   166,   107,    -1,   106,   170,   107,    -1,   140,    -1,
    736      141,   108,   131,   161,   132,   109,    -1,   141,   106,   142,
    737      107,    -1,   141,   110,   136,    -1,   141,   110,   108,   131,
    738      144,   132,   109,    -1,   141,    83,   136,    -1,   141,    83,
    739      108,   131,   144,   132,   109,    -1,   141,    84,    -1,   141,
    740       85,    -1,   106,   271,   107,   111,   275,   368,   112,    -1,
    741      143,    -1,   142,   113,   143,    -1,    -1,   161,    -1,   136,
    742      114,   161,    -1,   108,   131,   161,   132,   109,   114,   161,
    743       -1,   108,   131,   161,   113,   164,   132,   109,   114,   161,
    744       -1,   145,    -1,   144,   113,   145,    -1,   136,    -1,   136,
    745      110,   145,    -1,   136,   110,   108,   131,   144,   132,   109,
    746       -1,   136,    83,   145,    -1,   136,    83,   108,   131,   144,
    747      132,   109,    -1,   141,    -1,   133,    -1,   139,    -1,    84,
    748      146,    -1,    85,   146,    -1,    38,   148,    -1,   147,   148,
    749       -1,   115,   148,    -1,   116,   148,    -1,    36,   146,    -1,
    750       36,   106,   271,   107,    -1,    74,    -1,    74,   106,   272,
    751      107,    -1,    74,   106,   143,   107,    -1,    64,   146,    -1,
    752       64,   106,   271,   107,    -1,    92,   136,    -1,   117,    -1,
    753      118,    -1,   119,    -1,   120,    -1,   146,    -1,   106,   271,
    754      107,   148,    -1,   106,   271,   107,   163,    -1,   148,    -1,
    755      149,   116,   148,    -1,   149,   121,   148,    -1,   149,   122,
    756      148,    -1,   149,    -1,   150,   118,   149,    -1,   150,   119,
    757      149,    -1,   150,    -1,   151,    86,   150,    -1,   151,    87,
    758      150,    -1,   151,    -1,   152,   123,   151,    -1,   152,   124,
    759      151,    -1,   152,    88,   151,    -1,   152,    89,   151,    -1,
    760      152,    -1,   153,    90,   152,    -1,   153,    91,   152,    -1,
    761      153,    -1,   154,   117,   153,    -1,   154,    -1,   155,   125,
    762      154,    -1,   155,    -1,   156,   126,   155,    -1,   156,    -1,
    763      157,    92,   156,    -1,   157,    -1,   158,    93,   157,    -1,
    764      158,    -1,   158,   127,   166,   114,   159,    -1,   158,   127,
    765      114,   159,    -1,   158,   127,   166,   114,   163,    -1,   159,
    766       -1,   159,    -1,   146,   128,   161,    -1,   146,   165,   161,
    767       -1,   163,   369,    -1,    -1,   161,    -1,   108,   109,    -1,
    768      108,   131,   161,   132,   109,    -1,   108,   131,   113,   164,
    769      132,   109,    -1,   108,   131,   161,   113,   164,   132,   109,
    770       -1,   162,    -1,   164,   113,   162,    -1,    95,    -1,    96,
    771       -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,   101,
    772       -1,   102,    -1,   103,    -1,   104,    -1,   161,    -1,   166,
    773      113,   161,    -1,    -1,   166,    -1,   169,    -1,   170,    -1,
    774      174,    -1,   175,    -1,   187,    -1,   189,    -1,   190,    -1,
    775      195,    -1,   202,    -1,   136,   114,   308,   168,    -1,   111,
    776      112,    -1,   111,   131,   131,   207,   171,   132,   112,    -1,
    777      172,    -1,   171,   131,   172,    -1,   210,    -1,    38,   210,
    778       -1,   304,    -1,   168,   132,    -1,   168,    -1,   173,   168,
    779       -1,   167,   129,    -1,    39,   106,   166,   107,   168,    -1,
    780       39,   106,   166,   107,   168,    40,   168,    -1,    41,   106,
    781      166,   107,   180,    -1,    41,   106,   166,   107,   111,   131,
    782      203,   181,   112,    -1,    51,   106,   166,   107,   180,    -1,
    783       51,   106,   166,   107,   111,   131,   203,   183,   112,    -1,
    784      160,    -1,   160,    94,   160,    -1,   306,    -1,   176,    -1,
    785      177,   113,   176,    -1,    42,   177,   114,    -1,    43,   114,
    786       -1,   178,    -1,   179,   178,    -1,   179,   168,    -1,    -1,
    787      182,    -1,   179,   173,    -1,   182,   179,   173,    -1,    -1,
    788      184,    -1,   179,   186,    -1,   179,   173,   185,    -1,   184,
    789      179,   186,    -1,   184,   179,   173,   185,    -1,    -1,   186,
    790       -1,    54,    -1,    54,   129,    -1,    45,   106,   166,   107,
    791      168,    -1,    44,   168,    45,   106,   166,   107,   129,    -1,
    792       46,   106,   131,   188,   107,   168,    -1,   167,   132,   129,
    793      167,   129,   167,    -1,   210,   167,   129,   167,    -1,    49,
    794      136,   129,    -1,    49,   116,   166,   129,    -1,    48,   129,
    795       -1,    48,   136,   129,    -1,    47,   129,    -1,    47,   136,
    796      129,    -1,    50,   167,   129,    -1,    59,   162,   129,    -1,
    797       60,   162,   129,    -1,    60,   162,    61,   161,   129,    -1,
    798       55,   170,   191,    -1,    55,   170,   193,    -1,    55,   170,
    799      191,   193,    -1,   192,    -1,    56,   106,    94,   107,   170,
    800       -1,   192,    56,   106,    94,   107,   170,    -1,    57,   106,
    801       94,   107,   170,    -1,   192,    57,   106,    94,   107,   170,
    802       -1,    56,   106,   131,   131,   194,   132,   107,   170,   132,
    803       -1,   192,    56,   106,   131,   131,   194,   132,   107,   170,
    804      132,    -1,    57,   106,   131,   131,   194,   132,   107,   170,
    805      132,    -1,   192,    57,   106,   131,   131,   194,   132,   107,
    806      170,   132,    -1,    58,   170,    -1,   223,    -1,   223,   305,
    807       -1,   223,   353,    -1,   362,   136,    -1,   362,    -1,    62,
    808      196,   106,   139,   107,   129,    -1,    62,   196,   106,   139,
    809      114,   197,   107,   129,    -1,    62,   196,   106,   139,   114,
    810      197,   114,   197,   107,   129,    -1,    62,   196,   106,   139,
    811      114,   197,   114,   197,   114,   200,   107,   129,    -1,    62,
    812      196,    49,   106,   139,   114,   114,   197,   114,   200,   114,
    813      201,   107,   129,    -1,    -1,    11,    -1,    -1,   198,    -1,
    814      199,    -1,   198,   113,   199,    -1,   139,   106,   160,   107,
    815       -1,   108,   160,   109,   139,   106,   160,   107,    -1,    -1,
    816      139,    -1,   200,   113,   139,    -1,   136,    -1,   201,   113,
    817      136,    -1,   137,   111,   142,   112,   129,    -1,   125,   137,
    818      111,   112,   129,    -1,   132,    -1,   204,    -1,   210,    -1,
    819      204,   131,   210,    -1,   132,    -1,   206,    -1,   220,    -1,
    820      206,   131,   220,    -1,    -1,   208,    -1,    28,   209,   129,
    821       -1,   208,    28,   209,   129,    -1,   270,    -1,   209,   113,
    822      270,    -1,   211,    -1,   220,    -1,   212,   132,   129,    -1,
    823      217,   132,   129,    -1,   214,   132,   129,    -1,   289,   132,
    824      129,    -1,   292,   132,   129,    -1,   213,   273,    -1,   229,
    825      213,   273,    -1,   212,   132,   113,   131,   268,   273,    -1,
    826      363,   268,   307,    -1,   366,   268,   307,    -1,   225,   366,
    827      268,   307,    -1,   215,    -1,   225,   215,    -1,   229,   215,
    828       -1,   229,   225,   215,    -1,   214,   132,   113,   131,   268,
    829       -1,   108,   109,   268,   106,   131,   256,   132,   107,    -1,
    830      366,   268,   106,   131,   256,   132,   107,    -1,   216,   268,
    831      106,   131,   256,   132,   107,    -1,   108,   131,   258,   132,
    832      109,    -1,   108,   131,   258,   132,   113,   131,   259,   132,
    833      109,    -1,     3,   213,    -1,     3,   215,    -1,   217,   132,
    834      113,   131,   136,    -1,     3,   223,   305,    -1,   218,   132,
    835      113,   131,   305,    -1,   225,     3,   223,   305,    -1,   223,
    836        3,   305,    -1,   223,     3,   225,   305,    -1,     3,   136,
    837      128,   161,    -1,   219,   132,   113,   131,   136,   128,   161,
    838       -1,   221,   132,   129,    -1,   218,   132,   129,    -1,   219,
    839      132,   129,    -1,   238,   132,   129,    -1,   222,   305,   307,
    840      273,    -1,   221,   113,   308,   305,   307,   273,    -1,   234,
    841       -1,   238,    -1,   240,    -1,   279,    -1,   235,    -1,   239,
    842       -1,   241,    -1,   280,    -1,    -1,   225,    -1,   226,    -1,
    843      225,   226,    -1,   227,    -1,   310,    -1,    10,    -1,    12,
    844       -1,    11,    -1,    14,    -1,    65,    -1,    -1,    13,   106,
    845      228,   282,   107,    -1,   230,    -1,   225,   230,    -1,   229,
    846      225,   230,    -1,   231,    -1,   230,   231,    -1,   232,    -1,
    847        5,    -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,
    848        9,    -1,    67,    -1,    69,    -1,    16,    -1,    21,    -1,
    849       20,    -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,
    850       23,    -1,    15,    -1,    24,    -1,    25,    -1,    26,    -1,
    851      235,    -1,   229,   235,    -1,   234,   231,    -1,   234,   231,
    852      225,    -1,   234,   231,   235,    -1,   236,    -1,   224,   237,
    853      224,    -1,   233,    -1,   225,   233,    -1,   236,   226,    -1,
    854      236,   233,    -1,    27,   106,   272,   107,    -1,    27,   106,
    855      166,   107,    -1,    76,   106,   272,   107,    -1,    76,   106,
    856      166,   107,    -1,   239,    -1,   229,   239,    -1,   238,   231,
    857       -1,   238,   231,   225,    -1,   242,    -1,   225,   242,    -1,
    858      239,   226,    -1,   241,    -1,   229,   241,    -1,   240,   231,
    859       -1,   240,   231,   225,    -1,    72,    -1,   225,    72,    -1,
    860      241,   226,    -1,   243,    -1,   253,    -1,   244,   111,   245,
    861      112,    -1,   244,   270,    -1,   244,   270,   111,   245,   112,
    862       -1,   244,   106,   288,   107,   111,   245,   112,    -1,   244,
    863      281,    -1,    30,   308,    -1,    31,   308,    -1,   246,    -1,
    864      245,   246,    -1,   247,   129,    -1,    38,   247,   129,    -1,
    865      248,   129,    -1,    38,   248,   129,    -1,   362,    -1,   362,
    866      270,    -1,   247,   113,   270,    -1,   247,   113,    -1,   223,
    867      249,    -1,   248,   113,   308,   249,    -1,    -1,   251,    -1,
    868      314,   250,    -1,   327,   250,    -1,   353,    -1,    -1,   251,
    869       -1,   114,   160,    -1,    29,   308,    -1,   252,   111,   254,
    870      368,   112,    -1,   252,   270,   111,   254,   368,   112,    -1,
    871      252,   270,    -1,   270,   255,    -1,   254,   113,   270,   255,
    872       -1,    -1,   128,   160,    -1,    -1,   257,    -1,   259,    -1,
    873      258,    -1,   258,   132,   113,   131,   259,    -1,   259,   132,
    874      113,   131,    94,    -1,   258,   132,   113,   131,    94,    -1,
    875      263,    -1,   259,   132,   113,   131,   263,    -1,   258,   132,
    876      113,   131,   263,    -1,   258,   132,   113,   131,   259,   132,
    877      113,   131,   263,    -1,   264,    -1,   259,   132,   113,   131,
    878      264,    -1,    -1,   261,    -1,   262,    -1,   262,   132,   113,
    879      131,    94,    -1,   266,    -1,   265,    -1,   262,   132,   113,
    880      131,   266,    -1,   262,   132,   113,   131,   265,    -1,   265,
    881       -1,   358,   268,   369,    -1,   366,   268,   369,    -1,   225,
    882      366,   268,   369,    -1,   215,    -1,   266,    -1,   358,    -1,
    883      366,    -1,   225,   366,    -1,   367,    -1,   222,   332,   369,
    884       -1,   222,   336,   369,    -1,   222,    -1,   222,   347,    -1,
    885      136,    -1,   267,   113,   136,    -1,   134,    -1,    72,    -1,
    886       73,    -1,   135,    -1,    72,    -1,    73,    -1,   136,    -1,
    887       72,    -1,    73,    -1,   362,    -1,   223,    -1,   223,   353,
    888       -1,   362,    -1,   367,    -1,   223,    -1,   223,   341,    -1,
    889       -1,   128,   274,    -1,   161,    -1,   111,   275,   368,   112,
    890       -1,   274,    -1,   276,   274,    -1,   275,   113,   274,    -1,
    891      275,   113,   276,   274,    -1,   277,   114,    -1,   270,   114,
    892       -1,   278,    -1,   277,   278,    -1,    78,    -1,   110,   270,
    893       -1,   108,   131,   161,   132,   109,    -1,   108,   131,   306,
    894      132,   109,    -1,   108,   131,   160,    94,   160,   132,   109,
    895       -1,   110,   108,   131,   144,   132,   109,    -1,   280,    -1,
    896      229,   280,    -1,   279,   231,    -1,   279,   231,   225,    -1,
    897      281,    -1,   225,   281,    -1,   280,   226,    -1,    73,   106,
    898      288,   107,    -1,   283,   369,    -1,   282,   113,   283,   369,
    899       -1,    -1,   285,   270,   284,   286,    -1,   223,   332,    -1,
    900       32,    -1,    34,    -1,    33,    -1,    -1,   286,   287,    -1,
    901      126,   270,   106,   288,   107,    -1,   126,   111,   131,   294,
    902      112,    -1,   126,   106,   131,   282,   132,   107,   111,   131,
    903      294,   112,   106,   288,   107,    -1,   272,    -1,   161,    -1,
    904      288,   113,   272,    -1,   288,   113,   161,    -1,    32,   290,
    905       -1,   230,    32,   290,    -1,   289,   113,   290,    -1,   291,
    906      286,    -1,   291,   286,   128,   272,    -1,   270,    -1,   269,
    907      106,   131,   282,   132,   107,    -1,    35,   270,   106,   131,
    908      282,   132,   107,   111,   112,    -1,    -1,    35,   270,   106,
    909      131,   282,   132,   107,   111,   293,   294,   112,    -1,   295,
    910       -1,   294,   131,   295,    -1,   296,   132,   129,    -1,   297,
    911      132,   129,    -1,   213,    -1,   215,    -1,   296,   132,   113,
    912      131,   268,    -1,   223,   305,    -1,   297,   132,   113,   131,
    913      305,    -1,    -1,   299,    -1,   301,    -1,   299,   131,   301,
    914       -1,    -1,   299,    -1,   210,    -1,   303,    -1,   195,    -1,
    915       -1,     5,    80,   302,   111,   300,   112,    -1,    38,   301,
    916       -1,   304,    -1,   319,   170,    -1,   323,   131,   205,   170,
    917       -1,   214,   170,    -1,   222,   319,   170,    -1,   225,   319,
    918      170,    -1,   229,   319,   170,    -1,   229,   225,   319,   170,
    919       -1,   222,   323,   131,   205,   170,    -1,   225,   323,   131,
    920      205,   170,    -1,   229,   323,   131,   205,   170,    -1,   229,
    921      225,   323,   131,   205,   170,    -1,   314,    -1,   319,    -1,
    922      327,    -1,   160,   120,   160,    -1,    -1,    62,   106,   139,
    923      107,   308,    -1,    -1,   309,    -1,   310,    -1,   309,   310,
    924       -1,    37,   106,   106,   311,   107,   107,    -1,   312,    -1,
    925      311,   113,   312,    -1,    -1,   313,    -1,   313,   106,   167,
    926      107,    -1,   268,    -1,   232,    -1,   233,    -1,   226,    -1,
    927      315,   308,    -1,   316,    -1,   317,   308,    -1,   318,   308,
    928       -1,   134,    -1,   106,   315,   107,    -1,   116,   314,    -1,
    929      116,   225,   314,    -1,   106,   316,   107,    -1,   315,   345,
    930       -1,   106,   316,   107,   345,    -1,   106,   317,   107,   346,
    931       -1,   106,   317,   107,    -1,   106,   316,   107,   106,   131,
    932      260,   132,   107,    -1,   106,   318,   107,    -1,   320,   308,
    933       -1,   321,    -1,   322,   308,    -1,   315,   106,   131,   260,
    934      132,   107,    -1,   106,   321,   107,   106,   131,   260,   132,
    935      107,    -1,   106,   320,   107,    -1,   116,   319,    -1,   116,
    936      225,   319,    -1,   106,   321,   107,    -1,   106,   321,   107,
    937      345,    -1,   106,   322,   107,   346,    -1,   106,   322,   107,
    938       -1,   324,    -1,   325,    -1,   326,    -1,   315,   106,   267,
    939      107,    -1,   106,   325,   107,   106,   267,   107,    -1,   106,
    940      324,   107,    -1,   116,   323,    -1,   116,   225,   323,    -1,
    941      106,   325,   107,    -1,   106,   325,   107,   345,    -1,   106,
    942      326,   107,   346,    -1,   106,   326,   107,    -1,   328,   308,
    943       -1,   329,    -1,   330,   308,    -1,   331,   308,    -1,   337,
    944       -1,   106,   328,   107,    -1,   116,   327,    -1,   116,   225,
    945      327,    -1,   106,   329,   107,    -1,   328,   345,    -1,   106,
    946      329,   107,   345,    -1,   106,   330,   107,   346,    -1,   106,
    947      330,   107,    -1,   328,   106,   131,   260,   132,   107,    -1,
    948      106,   329,   107,   106,   131,   260,   132,   107,    -1,   106,
    949      331,   107,    -1,   315,   308,    -1,   333,    -1,   334,   308,
    950       -1,   335,   308,    -1,   116,   332,    -1,   116,   225,   332,
    951       -1,   106,   333,   107,    -1,   315,   351,    -1,   106,   333,
    952      107,   345,    -1,   106,   334,   107,   346,    -1,   106,   334,
    953      107,    -1,   315,   106,   131,   260,   132,   107,    -1,   106,
    954      333,   107,   106,   131,   260,   132,   107,    -1,   106,   335,
    955      107,    -1,   337,   308,    -1,   338,    -1,   339,   308,    -1,
    956      340,   308,    -1,    72,    -1,    73,    -1,   116,   336,    -1,
    957      116,   225,   336,    -1,   106,   338,   107,    -1,   337,   351,
    958       -1,   106,   338,   107,   351,    -1,   337,   106,   131,   260,
    959      132,   107,    -1,   106,   338,   107,   106,   131,   260,   132,
    960      107,    -1,   342,    -1,   343,   308,    -1,   344,   308,    -1,
    961      116,    -1,   116,   225,    -1,   116,   341,    -1,   116,   225,
    962      341,    -1,   106,   342,   107,    -1,   345,    -1,   106,   342,
    963      107,   345,    -1,   106,   343,   107,   346,    -1,   106,   343,
    964      107,    -1,   106,   131,   260,   132,   107,    -1,   106,   342,
    965      107,   106,   131,   260,   132,   107,    -1,   106,   344,   107,
    966       -1,   108,   109,    -1,   108,   109,   346,    -1,   346,    -1,
    967      108,   131,   161,   132,   109,    -1,   108,   131,   116,   132,
    968      109,    -1,   346,   108,   131,   161,   132,   109,    -1,   346,
    969      108,   131,   116,   132,   109,    -1,   348,    -1,   349,   308,
    970       -1,   350,   308,    -1,   116,    -1,   116,   225,    -1,   116,
    971      347,    -1,   116,   225,   347,    -1,   106,   348,   107,    -1,
    972      351,    -1,   106,   348,   107,   351,    -1,   106,   349,   107,
    973      346,    -1,   106,   349,   107,    -1,   106,   131,   260,   132,
    974      107,    -1,   106,   348,   107,   106,   131,   260,   132,   107,
    975       -1,   106,   350,   107,    -1,   352,    -1,   352,   346,    -1,
    976      346,    -1,   108,   109,    -1,   108,   131,   225,   116,   132,
    977      109,    -1,   108,   131,   225,   132,   109,    -1,   108,   131,
    978      225,   161,   132,   109,    -1,   108,   131,     7,   224,   161,
    979      132,   109,    -1,   108,   131,   225,     7,   161,   132,   109,
    980       -1,   354,    -1,   355,   308,    -1,   356,   308,    -1,   116,
    981       -1,   116,   225,    -1,   116,   353,    -1,   116,   225,   353,
    982       -1,   106,   354,   107,    -1,   345,    -1,   106,   354,   107,
    983      345,    -1,   106,   355,   107,   346,    -1,   106,   355,   107,
    984       -1,   106,   354,   107,   106,   131,   260,   132,   107,    -1,
    985      106,   356,   107,    -1,   358,    -1,   366,    -1,   225,   366,
    986       -1,   359,    -1,   360,    -1,   116,   223,    -1,   225,   116,
    987      223,    -1,   116,   367,    -1,   225,   116,   367,    -1,   116,
    988      357,    -1,   225,   116,   357,    -1,   108,   109,   223,    -1,
    989      361,   223,    -1,   108,   109,   346,   223,    -1,   361,   346,
    990      223,    -1,   346,   223,    -1,   108,   109,   359,    -1,   361,
    991      359,    -1,   108,   109,   346,   359,    -1,   361,   346,   359,
    992       -1,   346,   359,    -1,   108,   131,   225,   116,   132,   109,
    993       -1,   108,   131,   225,   161,   132,   109,    -1,   108,   131,
    994      229,   161,   132,   109,    -1,   108,   131,   229,   225,   161,
    995      132,   109,    -1,   366,    -1,   225,   366,    -1,   363,    -1,
    996      364,    -1,   365,    -1,   116,   223,    -1,   225,   116,   223,
    997       -1,   116,   367,    -1,   225,   116,   367,    -1,   116,   362,
    998       -1,   225,   116,   362,    -1,   108,   109,   223,    -1,   108,
    999      109,   346,   223,    -1,   346,   223,    -1,   108,   109,   364,
    1000       -1,   108,   109,   346,   364,    -1,   346,   364,    -1,   108,
    1001      131,   259,   132,   109,    -1,   108,   109,   106,   256,   107,
    1002       -1,   366,   106,   131,   256,   132,   107,    -1,   216,   106,
    1003      131,   256,   132,   107,    -1,    -1,   113,    -1,    -1,   128,
    1004      161,    -1
     734      -1,    70,    -1,    81,    -1,    82,    -1,    80,    -1,   139,
     735      80,    -1,    70,    -1,   138,    -1,   107,   166,   108,    -1,
     736     107,   170,   108,    -1,   140,    -1,   141,   109,   132,   161,
     737     133,   110,    -1,   141,   107,   142,   108,    -1,   141,   111,
     738     137,    -1,   141,   111,   109,   132,   144,   133,   110,    -1,
     739     141,    83,   137,    -1,   141,    83,   109,   132,   144,   133,
     740     110,    -1,   141,    84,    -1,   141,    85,    -1,   107,   270,
     741     108,   112,   274,   367,   113,    -1,   141,   112,   142,   113,
     742      -1,   143,    -1,   142,   114,   143,    -1,    -1,   161,    -1,
     743     137,   115,   161,    -1,   109,   132,   161,   133,   110,   115,
     744     161,    -1,   109,   132,   161,   114,   164,   133,   110,   115,
     745     161,    -1,   145,    -1,   144,   114,   145,    -1,   137,    -1,
     746     137,   111,   145,    -1,   137,   111,   109,   132,   144,   133,
     747     110,    -1,   137,    83,   145,    -1,   137,    83,   109,   132,
     748     144,   133,   110,    -1,   141,    -1,   134,    -1,   139,    -1,
     749      84,   146,    -1,    85,   146,    -1,    38,   148,    -1,   147,
     750     148,    -1,   116,   148,    -1,   117,   148,    -1,    36,   146,
     751      -1,    36,   107,   270,   108,    -1,    74,    -1,    74,   107,
     752     271,   108,    -1,    74,   107,   143,   108,    -1,    64,   146,
     753      -1,    64,   107,   270,   108,    -1,    92,   137,    -1,   118,
     754      -1,   119,    -1,   120,    -1,   121,    -1,   146,    -1,   107,
     755     270,   108,   148,    -1,   107,   270,   108,   163,    -1,   148,
     756      -1,   149,   117,   148,    -1,   149,   122,   148,    -1,   149,
     757     123,   148,    -1,   149,    -1,   150,   119,   149,    -1,   150,
     758     120,   149,    -1,   150,    -1,   151,    86,   150,    -1,   151,
     759      87,   150,    -1,   151,    -1,   152,   124,   151,    -1,   152,
     760     125,   151,    -1,   152,    88,   151,    -1,   152,    89,   151,
     761      -1,   152,    -1,   153,    90,   152,    -1,   153,    91,   152,
     762      -1,   153,    -1,   154,   118,   153,    -1,   154,    -1,   155,
     763     126,   154,    -1,   155,    -1,   156,   127,   155,    -1,   156,
     764      -1,   157,    92,   156,    -1,   157,    -1,   158,    93,   157,
     765      -1,   158,    -1,   158,   128,   166,   115,   159,    -1,   158,
     766     128,   115,   159,    -1,   158,   128,   166,   115,   163,    -1,
     767     159,    -1,   159,    -1,   146,   129,   161,    -1,   146,   165,
     768     161,    -1,   163,   368,    -1,    -1,   161,    -1,   109,   110,
     769      -1,   109,   132,   161,   133,   110,    -1,   109,   132,   114,
     770     164,   133,   110,    -1,   109,   132,   161,   114,   164,   133,
     771     110,    -1,   162,    -1,   164,   114,   162,    -1,    95,    -1,
     772      96,    -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,
     773     101,    -1,   102,    -1,   103,    -1,   104,    -1,   161,    -1,
     774     166,   114,   161,    -1,    -1,   166,    -1,   169,    -1,   170,
     775      -1,   174,    -1,   175,    -1,   187,    -1,   189,    -1,   190,
     776      -1,   195,    -1,   126,   141,   112,   142,   113,   130,    -1,
     777     137,   115,   307,   168,    -1,   112,   113,    -1,   112,   132,
     778     132,   206,   171,   133,   113,    -1,   172,    -1,   171,   132,
     779     172,    -1,   209,    -1,    38,   209,    -1,   303,    -1,   168,
     780     133,    -1,   168,    -1,   173,   168,    -1,   167,   130,    -1,
     781      39,   107,   166,   108,   168,    -1,    39,   107,   166,   108,
     782     168,    40,   168,    -1,    41,   107,   166,   108,   180,    -1,
     783      41,   107,   166,   108,   112,   132,   202,   181,   113,    -1,
     784      51,   107,   166,   108,   180,    -1,    51,   107,   166,   108,
     785     112,   132,   202,   183,   113,    -1,   160,    -1,   160,    94,
     786     160,    -1,   305,    -1,   176,    -1,   177,   114,   176,    -1,
     787      42,   177,   115,    -1,    43,   115,    -1,   178,    -1,   179,
     788     178,    -1,   179,   168,    -1,    -1,   182,    -1,   179,   173,
     789      -1,   182,   179,   173,    -1,    -1,   184,    -1,   179,   186,
     790      -1,   179,   173,   185,    -1,   184,   179,   186,    -1,   184,
     791     179,   173,   185,    -1,    -1,   186,    -1,    54,    -1,    54,
     792     130,    -1,    45,   107,   166,   108,   168,    -1,    44,   168,
     793      45,   107,   166,   108,   130,    -1,    46,   107,   132,   188,
     794     108,   168,    -1,   167,   133,   130,   167,   130,   167,    -1,
     795     209,   167,   130,   167,    -1,    49,   137,   130,    -1,    49,
     796     117,   166,   130,    -1,    48,   130,    -1,    48,   137,   130,
     797      -1,    47,   130,    -1,    47,   137,   130,    -1,    50,   167,
     798     130,    -1,    59,   162,   130,    -1,    60,   162,   130,    -1,
     799      60,   162,    61,   161,   130,    -1,    55,   170,   191,    -1,
     800      55,   170,   193,    -1,    55,   170,   191,   193,    -1,   192,
     801      -1,    56,   107,    94,   108,   170,    -1,   192,    56,   107,
     802      94,   108,   170,    -1,    57,   107,    94,   108,   170,    -1,
     803     192,    57,   107,    94,   108,   170,    -1,    56,   107,   132,
     804     132,   194,   133,   108,   170,   133,    -1,   192,    56,   107,
     805     132,   132,   194,   133,   108,   170,   133,    -1,    57,   107,
     806     132,   132,   194,   133,   108,   170,   133,    -1,   192,    57,
     807     107,   132,   132,   194,   133,   108,   170,   133,    -1,    58,
     808     170,    -1,   222,    -1,   222,   304,    -1,   222,   352,    -1,
     809     361,   137,    -1,   361,    -1,    62,   196,   107,   139,   108,
     810     130,    -1,    62,   196,   107,   139,   115,   197,   108,   130,
     811      -1,    62,   196,   107,   139,   115,   197,   115,   197,   108,
     812     130,    -1,    62,   196,   107,   139,   115,   197,   115,   197,
     813     115,   200,   108,   130,    -1,    62,   196,    49,   107,   139,
     814     115,   115,   197,   115,   200,   115,   201,   108,   130,    -1,
     815      -1,    11,    -1,    -1,   198,    -1,   199,    -1,   198,   114,
     816     199,    -1,   139,   107,   160,   108,    -1,   109,   160,   110,
     817     139,   107,   160,   108,    -1,    -1,   139,    -1,   200,   114,
     818     139,    -1,   137,    -1,   201,   114,   137,    -1,   133,    -1,
     819     203,    -1,   209,    -1,   203,   132,   209,    -1,   133,    -1,
     820     205,    -1,   219,    -1,   205,   132,   219,    -1,    -1,   207,
     821      -1,    28,   208,   130,    -1,   207,    28,   208,   130,    -1,
     822     269,    -1,   208,   114,   269,    -1,   210,    -1,   219,    -1,
     823     211,   133,   130,    -1,   216,   133,   130,    -1,   213,   133,
     824     130,    -1,   288,   133,   130,    -1,   291,   133,   130,    -1,
     825     212,   272,    -1,   228,   212,   272,    -1,   211,   133,   114,
     826     132,   267,   272,    -1,   362,   267,   306,    -1,   365,   267,
     827     306,    -1,   224,   365,   267,   306,    -1,   214,    -1,   224,
     828     214,    -1,   228,   214,    -1,   228,   224,   214,    -1,   213,
     829     133,   114,   132,   267,    -1,   109,   110,   267,   107,   132,
     830     255,   133,   108,    -1,   365,   267,   107,   132,   255,   133,
     831     108,    -1,   215,   267,   107,   132,   255,   133,   108,    -1,
     832     109,   132,   257,   133,   110,    -1,   109,   132,   257,   133,
     833     114,   132,   258,   133,   110,    -1,     3,   212,    -1,     3,
     834     214,    -1,   216,   133,   114,   132,   137,    -1,     3,   222,
     835     304,    -1,   217,   133,   114,   132,   304,    -1,   224,     3,
     836     222,   304,    -1,   222,     3,   304,    -1,   222,     3,   224,
     837     304,    -1,     3,   137,   129,   161,    -1,   218,   133,   114,
     838     132,   137,   129,   161,    -1,   220,   133,   130,    -1,   217,
     839     133,   130,    -1,   218,   133,   130,    -1,   237,   133,   130,
     840      -1,   221,   304,   306,   272,    -1,   220,   114,   307,   304,
     841     306,   272,    -1,   233,    -1,   237,    -1,   239,    -1,   278,
     842      -1,   234,    -1,   238,    -1,   240,    -1,   279,    -1,    -1,
     843     224,    -1,   225,    -1,   224,   225,    -1,   226,    -1,   309,
     844      -1,    10,    -1,    12,    -1,    11,    -1,    14,    -1,    65,
     845      -1,    -1,    13,   107,   227,   281,   108,    -1,   229,    -1,
     846     224,   229,    -1,   228,   224,   229,    -1,   230,    -1,   229,
     847     230,    -1,   231,    -1,     5,    -1,     7,    -1,     4,    -1,
     848       6,    -1,     8,    -1,     9,    -1,    67,    -1,    69,    -1,
     849      16,    -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,
     850      17,    -1,    22,    -1,    23,    -1,    15,    -1,    24,    -1,
     851      25,    -1,    26,    -1,   234,    -1,   228,   234,    -1,   233,
     852     230,    -1,   233,   230,   224,    -1,   233,   230,   234,    -1,
     853     235,    -1,   223,   236,   223,    -1,   232,    -1,   224,   232,
     854      -1,   235,   225,    -1,   235,   232,    -1,    27,   107,   271,
     855     108,    -1,    27,   107,   166,   108,    -1,    76,   107,   271,
     856     108,    -1,    76,   107,   166,   108,    -1,   238,    -1,   228,
     857     238,    -1,   237,   230,    -1,   237,   230,   224,    -1,   241,
     858      -1,   224,   241,    -1,   238,   225,    -1,   240,    -1,   228,
     859     240,    -1,   239,   230,    -1,   239,   230,   224,    -1,    72,
     860      -1,   224,    72,    -1,   240,   225,    -1,   242,    -1,   252,
     861      -1,   243,   112,   244,   113,    -1,   243,   269,    -1,   243,
     862     269,   112,   244,   113,    -1,   243,   107,   287,   108,   112,
     863     244,   113,    -1,   243,   280,    -1,    30,   307,    -1,    31,
     864     307,    -1,   245,    -1,   244,   245,    -1,   246,   130,    -1,
     865      38,   246,   130,    -1,   247,   130,    -1,    38,   247,   130,
     866      -1,   361,    -1,   361,   269,    -1,   246,   114,   269,    -1,
     867     246,   114,    -1,   222,   248,    -1,   247,   114,   307,   248,
     868      -1,    -1,   250,    -1,   313,   249,    -1,   326,   249,    -1,
     869     352,    -1,    -1,   250,    -1,   115,   160,    -1,    29,   307,
     870      -1,   251,   112,   253,   367,   113,    -1,   251,   269,   112,
     871     253,   367,   113,    -1,   251,   269,    -1,   269,   254,    -1,
     872     253,   114,   269,   254,    -1,    -1,   129,   160,    -1,    -1,
     873     256,    -1,   258,    -1,   257,    -1,   257,   133,   114,   132,
     874     258,    -1,   258,   133,   114,   132,    94,    -1,   257,   133,
     875     114,   132,    94,    -1,   262,    -1,   258,   133,   114,   132,
     876     262,    -1,   257,   133,   114,   132,   262,    -1,   257,   133,
     877     114,   132,   258,   133,   114,   132,   262,    -1,   263,    -1,
     878     258,   133,   114,   132,   263,    -1,    -1,   260,    -1,   261,
     879      -1,   261,   133,   114,   132,    94,    -1,   265,    -1,   264,
     880      -1,   261,   133,   114,   132,   265,    -1,   261,   133,   114,
     881     132,   264,    -1,   264,    -1,   357,   267,   368,    -1,   365,
     882     267,   368,    -1,   224,   365,   267,   368,    -1,   214,    -1,
     883     265,    -1,   357,    -1,   365,    -1,   224,   365,    -1,   366,
     884      -1,   221,   331,   368,    -1,   221,   335,   368,    -1,   221,
     885      -1,   221,   346,    -1,   137,    -1,   266,   114,   137,    -1,
     886     135,    -1,    72,    -1,    73,    -1,   136,    -1,    72,    -1,
     887      73,    -1,   137,    -1,    72,    -1,    73,    -1,   361,    -1,
     888     222,    -1,   222,   352,    -1,   361,    -1,   366,    -1,   222,
     889      -1,   222,   340,    -1,    -1,   129,   273,    -1,   105,   273,
     890      -1,   161,    -1,   112,   274,   367,   113,    -1,    -1,   273,
     891      -1,   275,   273,    -1,   274,   114,   273,    -1,   274,   114,
     892     275,   273,    -1,   276,   115,    -1,   269,   115,    -1,   277,
     893      -1,   276,   277,    -1,    78,    -1,   111,   269,    -1,   109,
     894     132,   161,   133,   110,    -1,   109,   132,   305,   133,   110,
     895      -1,   109,   132,   160,    94,   160,   133,   110,    -1,   111,
     896     109,   132,   144,   133,   110,    -1,   279,    -1,   228,   279,
     897      -1,   278,   230,    -1,   278,   230,   224,    -1,   280,    -1,
     898     224,   280,    -1,   279,   225,    -1,    73,   107,   287,   108,
     899      -1,   282,   368,    -1,   281,   114,   282,   368,    -1,    -1,
     900     284,   269,   283,   285,    -1,   222,   331,    -1,    32,    -1,
     901      34,    -1,    33,    -1,    -1,   285,   286,    -1,   127,   269,
     902     107,   287,   108,    -1,   127,   112,   132,   293,   113,    -1,
     903     127,   107,   132,   281,   133,   108,   112,   132,   293,   113,
     904     107,   287,   108,    -1,   271,    -1,   161,    -1,   287,   114,
     905     271,    -1,   287,   114,   161,    -1,    32,   289,    -1,   229,
     906      32,   289,    -1,   288,   114,   289,    -1,   290,   285,    -1,
     907     290,   285,   129,   271,    -1,   269,    -1,   268,   107,   132,
     908     281,   133,   108,    -1,    35,   269,   107,   132,   281,   133,
     909     108,   112,   113,    -1,    -1,    35,   269,   107,   132,   281,
     910     133,   108,   112,   292,   293,   113,    -1,   294,    -1,   293,
     911     132,   294,    -1,   295,   133,   130,    -1,   296,   133,   130,
     912      -1,   212,    -1,   214,    -1,   295,   133,   114,   132,   267,
     913      -1,   222,   304,    -1,   296,   133,   114,   132,   304,    -1,
     914      -1,   298,    -1,   300,    -1,   298,   132,   300,    -1,    -1,
     915     298,    -1,   209,    -1,   302,    -1,   195,    -1,    -1,     5,
     916      80,   301,   112,   299,   113,    -1,    38,   300,    -1,   303,
     917      -1,   318,   170,    -1,   322,   132,   204,   170,    -1,   213,
     918     170,    -1,   221,   318,   170,    -1,   224,   318,   170,    -1,
     919     228,   318,   170,    -1,   228,   224,   318,   170,    -1,   221,
     920     322,   132,   204,   170,    -1,   224,   322,   132,   204,   170,
     921      -1,   228,   322,   132,   204,   170,    -1,   228,   224,   322,
     922     132,   204,   170,    -1,   313,    -1,   318,    -1,   326,    -1,
     923     160,   121,   160,    -1,    -1,    62,   107,   139,   108,   307,
     924      -1,    -1,   308,    -1,   309,    -1,   308,   309,    -1,    37,
     925     107,   107,   310,   108,   108,    -1,   311,    -1,   310,   114,
     926     311,    -1,    -1,   312,    -1,   312,   107,   167,   108,    -1,
     927     267,    -1,   231,    -1,   232,    -1,   225,    -1,   314,   307,
     928      -1,   315,    -1,   316,   307,    -1,   317,   307,    -1,   135,
     929      -1,   107,   314,   108,    -1,   117,   313,    -1,   117,   224,
     930     313,    -1,   107,   315,   108,    -1,   314,   344,    -1,   107,
     931     315,   108,   344,    -1,   107,   316,   108,   345,    -1,   107,
     932     316,   108,    -1,   107,   315,   108,   107,   132,   259,   133,
     933     108,    -1,   107,   317,   108,    -1,   319,   307,    -1,   320,
     934      -1,   321,   307,    -1,   314,   107,   132,   259,   133,   108,
     935      -1,   107,   320,   108,   107,   132,   259,   133,   108,    -1,
     936     107,   319,   108,    -1,   117,   318,    -1,   117,   224,   318,
     937      -1,   107,   320,   108,    -1,   107,   320,   108,   344,    -1,
     938     107,   321,   108,   345,    -1,   107,   321,   108,    -1,   323,
     939      -1,   324,    -1,   325,    -1,   314,   107,   266,   108,    -1,
     940     107,   324,   108,   107,   266,   108,    -1,   107,   323,   108,
     941      -1,   117,   322,    -1,   117,   224,   322,    -1,   107,   324,
     942     108,    -1,   107,   324,   108,   344,    -1,   107,   325,   108,
     943     345,    -1,   107,   325,   108,    -1,   327,   307,    -1,   328,
     944      -1,   329,   307,    -1,   330,   307,    -1,   336,    -1,   107,
     945     327,   108,    -1,   117,   326,    -1,   117,   224,   326,    -1,
     946     107,   328,   108,    -1,   327,   344,    -1,   107,   328,   108,
     947     344,    -1,   107,   329,   108,   345,    -1,   107,   329,   108,
     948      -1,   327,   107,   132,   259,   133,   108,    -1,   107,   328,
     949     108,   107,   132,   259,   133,   108,    -1,   107,   330,   108,
     950      -1,   314,   307,    -1,   332,    -1,   333,   307,    -1,   334,
     951     307,    -1,   117,   331,    -1,   117,   224,   331,    -1,   107,
     952     332,   108,    -1,   314,   350,    -1,   107,   332,   108,   344,
     953      -1,   107,   333,   108,   345,    -1,   107,   333,   108,    -1,
     954     314,   107,   132,   259,   133,   108,    -1,   107,   332,   108,
     955     107,   132,   259,   133,   108,    -1,   107,   334,   108,    -1,
     956     336,   307,    -1,   337,    -1,   338,   307,    -1,   339,   307,
     957      -1,    72,    -1,    73,    -1,   117,   335,    -1,   117,   224,
     958     335,    -1,   107,   337,   108,    -1,   336,   350,    -1,   107,
     959     337,   108,   350,    -1,   336,   107,   132,   259,   133,   108,
     960      -1,   107,   337,   108,   107,   132,   259,   133,   108,    -1,
     961     341,    -1,   342,   307,    -1,   343,   307,    -1,   117,    -1,
     962     117,   224,    -1,   117,   340,    -1,   117,   224,   340,    -1,
     963     107,   341,   108,    -1,   344,    -1,   107,   341,   108,   344,
     964      -1,   107,   342,   108,   345,    -1,   107,   342,   108,    -1,
     965     107,   132,   259,   133,   108,    -1,   107,   341,   108,   107,
     966     132,   259,   133,   108,    -1,   107,   343,   108,    -1,   109,
     967     110,    -1,   109,   110,   345,    -1,   345,    -1,   109,   132,
     968     161,   133,   110,    -1,   109,   132,   117,   133,   110,    -1,
     969     345,   109,   132,   161,   133,   110,    -1,   345,   109,   132,
     970     117,   133,   110,    -1,   347,    -1,   348,   307,    -1,   349,
     971     307,    -1,   117,    -1,   117,   224,    -1,   117,   346,    -1,
     972     117,   224,   346,    -1,   107,   347,   108,    -1,   350,    -1,
     973     107,   347,   108,   350,    -1,   107,   348,   108,   345,    -1,
     974     107,   348,   108,    -1,   107,   132,   259,   133,   108,    -1,
     975     107,   347,   108,   107,   132,   259,   133,   108,    -1,   107,
     976     349,   108,    -1,   351,    -1,   351,   345,    -1,   345,    -1,
     977     109,   110,    -1,   109,   132,   224,   117,   133,   110,    -1,
     978     109,   132,   224,   133,   110,    -1,   109,   132,   224,   161,
     979     133,   110,    -1,   109,   132,     7,   223,   161,   133,   110,
     980      -1,   109,   132,   224,     7,   161,   133,   110,    -1,   353,
     981      -1,   354,   307,    -1,   355,   307,    -1,   117,    -1,   117,
     982     224,    -1,   117,   352,    -1,   117,   224,   352,    -1,   107,
     983     353,   108,    -1,   344,    -1,   107,   353,   108,   344,    -1,
     984     107,   354,   108,   345,    -1,   107,   354,   108,    -1,   107,
     985     353,   108,   107,   132,   259,   133,   108,    -1,   107,   355,
     986     108,    -1,   357,    -1,   365,    -1,   224,   365,    -1,   358,
     987      -1,   359,    -1,   117,   222,    -1,   224,   117,   222,    -1,
     988     117,   366,    -1,   224,   117,   366,    -1,   117,   356,    -1,
     989     224,   117,   356,    -1,   109,   110,   222,    -1,   360,   222,
     990      -1,   109,   110,   345,   222,    -1,   360,   345,   222,    -1,
     991     345,   222,    -1,   109,   110,   358,    -1,   360,   358,    -1,
     992     109,   110,   345,   358,    -1,   360,   345,   358,    -1,   345,
     993     358,    -1,   109,   132,   224,   117,   133,   110,    -1,   109,
     994     132,   224,   161,   133,   110,    -1,   109,   132,   228,   161,
     995     133,   110,    -1,   109,   132,   228,   224,   161,   133,   110,
     996      -1,   365,    -1,   224,   365,    -1,   362,    -1,   363,    -1,
     997     364,    -1,   117,   222,    -1,   224,   117,   222,    -1,   117,
     998     366,    -1,   224,   117,   366,    -1,   117,   361,    -1,   224,
     999     117,   361,    -1,   109,   110,   222,    -1,   109,   110,   345,
     1000     222,    -1,   345,   222,    -1,   109,   110,   363,    -1,   109,
     1001     110,   345,   363,    -1,   345,   363,    -1,   109,   132,   258,
     1002     133,   110,    -1,   109,   110,   107,   255,   108,    -1,   365,
     1003     107,   132,   255,   133,   108,    -1,   215,   107,   132,   255,
     1004     133,   108,    -1,    -1,   114,    -1,    -1,   129,   161,    -1
    10051005};
    10061006
     
    10081008static const yytype_uint16 yyrline[] =
    10091009{
    1010        0,   288,   288,   294,   303,   304,   305,   309,   310,   311,
    1011      315,   316,   320,   324,   325,   329,   330,   334,   335,   341,
    1012      343,   345,   347,   352,   353,   359,   361,   363,   364,   366,
    1013      367,   369,   372,   377,   378,   384,   385,   386,   391,   393,
    1014      398,   399,   403,   405,   407,   409,   411,   416,   419,   421,
    1015      423,   425,   427,   429,   431,   433,   439,   441,   443,   445,
    1016      447,   449,   451,   453,   458,   459,   460,   461,   465,   466,
    1017      468,   473,   474,   476,   478,   483,   484,   486,   491,   492,
    1018      494,   499,   500,   502,   504,   506,   511,   512,   514,   519,
    1019      520,   525,   526,   531,   532,   537,   538,   543,   544,   549,
    1020      550,   552,   554,   559,   564,   565,   567,   569,   575,   576,
    1021      582,   584,   586,   588,   593,   594,   599,   600,   601,   602,
    1022      603,   604,   605,   606,   607,   608,   612,   613,   619,   620,
    1023      626,   627,   628,   629,   630,   631,   632,   633,   634,   638,
    1024      645,   647,   657,   658,   663,   665,   667,   669,   673,   674,
    1025      679,   684,   687,   689,   691,   696,   698,   706,   707,   709,
    1026      713,   714,   719,   720,   725,   726,   730,   735,   736,   740,
    1027      742,   748,   749,   753,   755,   757,   759,   765,   766,   770,
    1028      771,   775,   777,   779,   784,   786,   791,   793,   797,   800,
    1029      804,   807,   811,   813,   817,   819,   826,   828,   830,   839,
    1030      841,   843,   845,   847,   852,   854,   856,   858,   863,   876,
    1031      877,   882,   884,   889,   893,   895,   897,   899,   901,   907,
    1032      908,   914,   915,   919,   920,   925,   927,   933,   934,   936,
    1033      941,   943,   948,   954,   965,   967,   971,   972,   977,   979,
    1034      983,   984,   988,   990,   994,   995,   999,  1000,  1004,  1005,
    1035     1020,  1021,  1022,  1023,  1024,  1028,  1033,  1040,  1050,  1055,
    1036     1060,  1068,  1073,  1078,  1083,  1088,  1096,  1118,  1123,  1130,
    1037     1132,  1139,  1144,  1149,  1160,  1165,  1170,  1175,  1180,  1189,
    1038     1194,  1202,  1203,  1204,  1205,  1211,  1216,  1224,  1225,  1226,
    1039     1227,  1231,  1232,  1233,  1234,  1239,  1240,  1249,  1250,  1255,
    1040     1256,  1261,  1263,  1265,  1267,  1269,  1272,  1271,  1283,  1284,
    1041     1286,  1296,  1297,  1302,  1306,  1308,  1310,  1312,  1314,  1316,
    1042     1318,  1320,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,
    1043     1341,  1343,  1345,  1347,  1353,  1354,  1356,  1358,  1360,  1365,
    1044     1366,  1372,  1373,  1375,  1377,  1382,  1384,  1386,  1388,  1393,
    1045     1394,  1396,  1398,  1403,  1404,  1406,  1411,  1412,  1414,  1416,
    1046     1421,  1423,  1425,  1430,  1431,  1435,  1437,  1439,  1441,  1443,
    1047     1448,  1450,  1455,  1457,  1462,  1463,  1465,  1466,  1471,  1472,
    1048     1474,  1476,  1481,  1483,  1489,  1490,  1492,  1495,  1498,  1503,
    1049     1504,  1509,  1514,  1518,  1520,  1522,  1527,  1529,  1535,  1536,
    1050     1544,  1545,  1549,  1550,  1551,  1553,  1555,  1562,  1563,  1565,
    1051     1567,  1572,  1573,  1579,  1580,  1584,  1585,  1590,  1591,  1592,
    1052     1594,  1602,  1603,  1605,  1608,  1610,  1614,  1615,  1616,  1618,
    1053     1620,  1624,  1629,  1637,  1638,  1647,  1649,  1654,  1655,  1656,
    1054     1660,  1661,  1662,  1666,  1667,  1668,  1672,  1673,  1674,  1679,
    1055     1680,  1681,  1682,  1688,  1689,  1694,  1695,  1699,  1700,  1701,
    1056     1702,  1717,  1718,  1723,  1724,  1732,  1734,  1736,  1739,  1741,
    1057     1743,  1766,  1767,  1769,  1771,  1776,  1777,  1779,  1784,  1789,
    1058     1790,  1796,  1795,  1799,  1803,  1805,  1807,  1813,  1814,  1819,
    1059     1824,  1826,  1831,  1833,  1834,  1836,  1841,  1843,  1845,  1850,
    1060     1852,  1857,  1862,  1870,  1876,  1875,  1889,  1890,  1895,  1896,
    1061     1900,  1905,  1910,  1918,  1923,  1934,  1935,  1946,  1947,  1953,
    1062     1954,  1958,  1959,  1960,  1963,  1962,  1973,  1978,  1983,  1989,
    1063     1998,  2004,  2010,  2016,  2022,  2030,  2036,  2044,  2050,  2059,
    1064     2060,  2061,  2065,  2069,  2071,  2076,  2077,  2081,  2082,  2087,
    1065     2093,  2094,  2097,  2099,  2100,  2104,  2105,  2106,  2107,  2141,
    1066     2143,  2144,  2146,  2151,  2156,  2161,  2163,  2165,  2170,  2172,
    1067     2174,  2176,  2181,  2183,  2193,  2195,  2196,  2201,  2203,  2205,
    1068     2210,  2212,  2214,  2219,  2221,  2223,  2232,  2233,  2234,  2238,
    1069     2240,  2242,  2247,  2249,  2251,  2256,  2258,  2260,  2275,  2277,
    1070     2278,  2280,  2285,  2286,  2291,  2293,  2295,  2300,  2302,  2304,
    1071     2306,  2311,  2313,  2315,  2325,  2327,  2328,  2330,  2335,  2337,
    1072     2339,  2344,  2346,  2348,  2350,  2355,  2357,  2359,  2390,  2392,
    1073     2393,  2395,  2400,  2405,  2413,  2415,  2417,  2422,  2424,  2429,
    1074     2431,  2445,  2446,  2448,  2453,  2455,  2457,  2459,  2461,  2466,
    1075     2467,  2469,  2471,  2476,  2478,  2480,  2486,  2488,  2490,  2494,
    1076     2496,  2498,  2500,  2514,  2515,  2517,  2522,  2524,  2526,  2528,
    1077     2530,  2535,  2536,  2538,  2540,  2545,  2547,  2549,  2555,  2556,
    1078     2558,  2567,  2570,  2572,  2575,  2577,  2579,  2592,  2593,  2595,
    1079     2600,  2602,  2604,  2606,  2608,  2613,  2614,  2616,  2618,  2623,
    1080     2625,  2633,  2634,  2635,  2640,  2641,  2645,  2647,  2649,  2651,
    1081     2653,  2655,  2662,  2664,  2666,  2668,  2670,  2672,  2674,  2676,
    1082     2678,  2680,  2685,  2687,  2689,  2694,  2720,  2721,  2723,  2727,
    1083     2728,  2732,  2734,  2736,  2738,  2740,  2742,  2749,  2751,  2753,
    1084     2755,  2757,  2759,  2764,  2769,  2771,  2773,  2791,  2793,  2798,
    1085     2799
     1010       0,   290,   290,   296,   305,   306,   307,   311,   312,   313,
     1011     317,   318,   323,   327,   328,   332,   333,   339,   341,   343,
     1012     345,   350,   351,   357,   359,   361,   362,   364,   365,   367,
     1013     369,   371,   379,   380,   386,   387,   388,   393,   395,   400,
     1014     401,   405,   407,   409,   411,   413,   418,   421,   423,   425,
     1015     427,   429,   431,   433,   435,   441,   443,   445,   447,   449,
     1016     451,   453,   455,   460,   461,   462,   463,   467,   468,   470,
     1017     475,   476,   478,   480,   485,   486,   488,   493,   494,   496,
     1018     501,   502,   504,   506,   508,   513,   514,   516,   521,   522,
     1019     527,   528,   533,   534,   539,   540,   545,   546,   551,   552,
     1020     554,   556,   561,   566,   567,   569,   571,   577,   578,   584,
     1021     586,   588,   590,   595,   596,   601,   602,   603,   604,   605,
     1022     606,   607,   608,   609,   610,   614,   615,   621,   622,   628,
     1023     629,   630,   631,   632,   633,   634,   635,   636,   645,   652,
     1024     654,   664,   665,   670,   672,   674,   676,   680,   681,   686,
     1025     691,   694,   696,   698,   703,   705,   713,   714,   716,   720,
     1026     721,   726,   727,   732,   733,   737,   742,   743,   747,   749,
     1027     755,   756,   760,   762,   764,   766,   772,   773,   777,   778,
     1028     782,   784,   786,   791,   793,   798,   800,   804,   807,   811,
     1029     814,   818,   820,   824,   826,   833,   835,   837,   846,   848,
     1030     850,   852,   854,   859,   861,   863,   865,   870,   883,   884,
     1031     889,   891,   896,   900,   902,   904,   906,   908,   914,   915,
     1032     921,   922,   926,   927,   932,   934,   940,   941,   943,   948,
     1033     950,   957,   959,   963,   964,   969,   971,   975,   976,   980,
     1034     982,   986,   987,   991,   992,   996,   997,  1012,  1013,  1014,
     1035    1015,  1016,  1020,  1025,  1032,  1042,  1047,  1052,  1060,  1065,
     1036    1070,  1075,  1080,  1088,  1110,  1115,  1122,  1124,  1131,  1136,
     1037    1141,  1152,  1157,  1162,  1167,  1172,  1181,  1186,  1194,  1195,
     1038    1196,  1197,  1203,  1208,  1216,  1217,  1218,  1219,  1223,  1224,
     1039    1225,  1226,  1231,  1232,  1241,  1242,  1247,  1248,  1253,  1255,
     1040    1257,  1259,  1261,  1264,  1263,  1275,  1276,  1278,  1288,  1289,
     1041    1294,  1298,  1300,  1302,  1304,  1306,  1308,  1310,  1312,  1317,
     1042    1319,  1321,  1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,
     1043    1339,  1345,  1346,  1348,  1350,  1352,  1357,  1358,  1364,  1365,
     1044    1367,  1369,  1374,  1376,  1378,  1380,  1385,  1386,  1388,  1390,
     1045    1395,  1396,  1398,  1403,  1404,  1406,  1408,  1413,  1415,  1417,
     1046    1422,  1423,  1427,  1429,  1431,  1433,  1435,  1440,  1442,  1447,
     1047    1449,  1454,  1455,  1457,  1458,  1463,  1464,  1466,  1468,  1473,
     1048    1475,  1481,  1482,  1484,  1487,  1490,  1495,  1496,  1501,  1506,
     1049    1510,  1512,  1514,  1519,  1521,  1527,  1528,  1536,  1537,  1541,
     1050    1542,  1543,  1545,  1547,  1554,  1555,  1557,  1559,  1564,  1565,
     1051    1571,  1572,  1576,  1577,  1582,  1583,  1584,  1586,  1594,  1595,
     1052    1597,  1600,  1602,  1606,  1607,  1608,  1610,  1612,  1616,  1621,
     1053    1629,  1630,  1639,  1641,  1646,  1647,  1648,  1652,  1653,  1654,
     1054    1658,  1659,  1660,  1664,  1665,  1666,  1671,  1672,  1673,  1674,
     1055    1680,  1681,  1683,  1688,  1689,  1694,  1695,  1696,  1697,  1698,
     1056    1713,  1714,  1719,  1720,  1728,  1730,  1732,  1735,  1737,  1739,
     1057    1762,  1763,  1765,  1767,  1772,  1773,  1775,  1780,  1785,  1786,
     1058    1792,  1791,  1795,  1799,  1801,  1803,  1809,  1810,  1815,  1820,
     1059    1822,  1827,  1829,  1830,  1832,  1837,  1839,  1841,  1846,  1848,
     1060    1853,  1858,  1866,  1872,  1871,  1885,  1886,  1891,  1892,  1896,
     1061    1901,  1906,  1914,  1919,  1930,  1931,  1942,  1943,  1949,  1950,
     1062    1954,  1955,  1956,  1959,  1958,  1969,  1974,  1979,  1985,  1994,
     1063    2000,  2006,  2012,  2018,  2026,  2032,  2040,  2046,  2055,  2056,
     1064    2057,  2061,  2065,  2067,  2072,  2073,  2077,  2078,  2083,  2089,
     1065    2090,  2093,  2095,  2096,  2100,  2101,  2102,  2103,  2137,  2139,
     1066    2140,  2142,  2147,  2152,  2157,  2159,  2161,  2166,  2168,  2170,
     1067    2172,  2177,  2179,  2189,  2191,  2192,  2197,  2199,  2201,  2206,
     1068    2208,  2210,  2215,  2217,  2219,  2228,  2229,  2230,  2234,  2236,
     1069    2238,  2243,  2245,  2247,  2252,  2254,  2256,  2271,  2273,  2274,
     1070    2276,  2281,  2282,  2287,  2289,  2291,  2296,  2298,  2300,  2302,
     1071    2307,  2309,  2311,  2321,  2323,  2324,  2326,  2331,  2333,  2335,
     1072    2340,  2342,  2344,  2346,  2351,  2353,  2355,  2386,  2388,  2389,
     1073    2391,  2396,  2401,  2409,  2411,  2413,  2418,  2420,  2425,  2427,
     1074    2441,  2442,  2444,  2449,  2451,  2453,  2455,  2457,  2462,  2463,
     1075    2465,  2467,  2472,  2474,  2476,  2482,  2484,  2486,  2490,  2492,
     1076    2494,  2496,  2510,  2511,  2513,  2518,  2520,  2522,  2524,  2526,
     1077    2531,  2532,  2534,  2536,  2541,  2543,  2545,  2551,  2552,  2554,
     1078    2563,  2566,  2568,  2571,  2573,  2575,  2588,  2589,  2591,  2596,
     1079    2598,  2600,  2602,  2604,  2609,  2610,  2612,  2614,  2619,  2621,
     1080    2629,  2630,  2631,  2636,  2637,  2641,  2643,  2645,  2647,  2649,
     1081    2651,  2658,  2660,  2662,  2664,  2666,  2668,  2670,  2672,  2674,
     1082    2676,  2681,  2683,  2685,  2690,  2716,  2717,  2719,  2723,  2724,
     1083    2728,  2730,  2732,  2734,  2736,  2738,  2745,  2747,  2749,  2751,
     1084    2753,  2755,  2760,  2765,  2767,  2769,  2787,  2789,  2794,  2795
    10861085};
    10871086#endif
     
    11081107  "GE", "EQ", "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign",
    11091108  "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign",
    1110   "RSassign", "ANDassign", "ERassign", "ORassign", "THEN", "'('", "')'",
    1111   "'['", "']'", "'.'", "'{'", "'}'", "','", "':'", "'!'", "'*'", "'&'",
    1112   "'+'", "'-'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'",
    1113   "'='", "';'", "$accept", "push", "pop", "constant", "identifier",
    1114   "no_01_identifier", "no_attr_identifier", "no_attr_identifier_01",
    1115   "zero_one", "string_literal_list", "primary_expression",
    1116   "postfix_expression", "argument_expression_list", "argument_expression",
    1117   "field_list", "field", "unary_expression", "unary_operator",
    1118   "cast_expression", "multiplicative_expression", "additive_expression",
    1119   "shift_expression", "relational_expression", "equality_expression",
    1120   "AND_expression", "exclusive_OR_expression", "inclusive_OR_expression",
     1109  "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN",
     1110  "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "':'", "'!'",
     1111  "'*'", "'&'", "'+'", "'-'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'",
     1112  "'|'", "'?'", "'='", "';'", "$accept", "push", "pop", "constant",
     1113  "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
     1114  "string_literal_list", "primary_expression", "postfix_expression",
     1115  "argument_expression_list", "argument_expression", "field_list", "field",
     1116  "unary_expression", "unary_operator", "cast_expression",
     1117  "multiplicative_expression", "additive_expression", "shift_expression",
     1118  "relational_expression", "equality_expression", "AND_expression",
     1119  "exclusive_OR_expression", "inclusive_OR_expression",
    11211120  "logical_AND_expression", "logical_OR_expression",
    11221121  "conditional_expression", "constant_expression", "assignment_expression",
     
    11331132  "finally_clause", "exception_declaration", "asm_statement",
    11341133  "asm_volatile_opt", "asm_operands_opt", "asm_operands_list",
    1135   "asm_operand", "asm_clobbers_list_opt", "label_list", "ctor_dtor",
     1134  "asm_operand", "asm_clobbers_list_opt", "label_list",
    11361135  "declaration_list_opt", "declaration_list", "old_declaration_list_opt",
    11371136  "old_declaration_list", "local_label_declaration_opt",
     
    12151214     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12161215     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1217      355,   356,   357,   358,   359,   360,    40,    41,    91,    93,
    1218       46,   123,   125,    44,    58,    33,    42,    38,    43,    45,
    1219      126,    47,    37,    60,    62,    94,   124,    63,    61,    59
     1216     355,   356,   357,   358,   359,   360,   361,    40,    41,    91,
     1217      93,    46,   123,   125,    44,    58,    33,    42,    38,    43,
     1218      45,   126,    47,    37,    60,    62,    94,   124,    63,    61,
     1219      59
    12201220};
    12211221# endif
     
    12241224static const yytype_uint16 yyr1[] =
    12251225{
    1226        0,   130,   131,   132,   133,   133,   133,   134,   134,   134,
    1227      135,   135,   136,   137,   137,   138,   138,   139,   139,   140,
    1228      140,   140,   140,   141,   141,   141,   141,   141,   141,   141,
    1229      141,   141,   141,   142,   142,   143,   143,   143,   143,   143,
    1230      144,   144,   145,   145,   145,   145,   145,   146,   146,   146,
     1226       0,   131,   132,   133,   134,   134,   134,   135,   135,   135,
     1227     136,   136,   137,   138,   138,   139,   139,   140,   140,   140,
     1228     140,   141,   141,   141,   141,   141,   141,   141,   141,   141,
     1229     141,   141,   142,   142,   143,   143,   143,   143,   143,   144,
     1230     144,   145,   145,   145,   145,   145,   146,   146,   146,   146,
    12311231     146,   146,   146,   146,   146,   146,   146,   146,   146,   146,
    1232      146,   146,   146,   146,   147,   147,   147,   147,   148,   148,
    1233      148,   149,   149,   149,   149,   150,   150,   150,   151,   151,
    1234      151,   152,   152,   152,   152,   152,   153,   153,   153,   154,
    1235      154,   155,   155,   156,   156,   157,   157,   158,   158,   159,
    1236      159,   159,   159,   160,   161,   161,   161,   161,   162,   162,
    1237      163,   163,   163,   163,   164,   164,   165,   165,   165,   165,
    1238      165,   165,   165,   165,   165,   165,   166,   166,   167,   167,
    1239      168,   168,   168,   168,   168,   168,   168,   168,   168,   169,
    1240      170,   170,   171,   171,   172,   172,   172,   172,   173,   173,
    1241      174,   175,   175,   175,   175,   175,   175,   176,   176,   176,
    1242      177,   177,   178,   178,   179,   179,   180,   181,   181,   182,
    1243      182,   183,   183,   184,   184,   184,   184,   185,   185,   186,
    1244      186,   187,   187,   187,   188,   188,   189,   189,   189,   189,
    1245      189,   189,   189,   189,   189,   189,   190,   190,   190,   191,
    1246      191,   191,   191,   191,   192,   192,   192,   192,   193,   194,
    1247      194,   194,   194,   194,   195,   195,   195,   195,   195,   196,
    1248      196,   197,   197,   198,   198,   199,   199,   200,   200,   200,
    1249      201,   201,   202,   202,   203,   203,   204,   204,   205,   205,
    1250      206,   206,   207,   207,   208,   208,   209,   209,   210,   210,
    1251      211,   211,   211,   211,   211,   212,   212,   212,   213,   213,
    1252      213,   214,   214,   214,   214,   214,   215,   215,   215,   216,
    1253      216,   217,   217,   217,   218,   218,   218,   218,   218,   219,
    1254      219,   220,   220,   220,   220,   221,   221,   222,   222,   222,
    1255      222,   223,   223,   223,   223,   224,   224,   225,   225,   226,
    1256      226,   227,   227,   227,   227,   227,   228,   227,   229,   229,
    1257      229,   230,   230,   231,   232,   232,   232,   232,   232,   232,
    1258      232,   232,   233,   233,   233,   233,   233,   233,   233,   233,
    1259      233,   233,   233,   233,   234,   234,   234,   234,   234,   235,
    1260      235,   236,   236,   236,   236,   237,   237,   237,   237,   238,
    1261      238,   238,   238,   239,   239,   239,   240,   240,   240,   240,
    1262      241,   241,   241,   242,   242,   243,   243,   243,   243,   243,
    1263      244,   244,   245,   245,   246,   246,   246,   246,   247,   247,
    1264      247,   247,   248,   248,   249,   249,   249,   249,   249,   250,
    1265      250,   251,   252,   253,   253,   253,   254,   254,   255,   255,
    1266      256,   256,   257,   257,   257,   257,   257,   258,   258,   258,
    1267      258,   259,   259,   260,   260,   261,   261,   262,   262,   262,
    1268      262,   263,   263,   263,   263,   263,   264,   264,   264,   264,
    1269      264,   265,   265,   266,   266,   267,   267,   268,   268,   268,
    1270      269,   269,   269,   270,   270,   270,   271,   271,   271,   272,
    1271      272,   272,   272,   273,   273,   274,   274,   275,   275,   275,
    1272      275,   276,   276,   277,   277,   278,   278,   278,   278,   278,
    1273      278,   279,   279,   279,   279,   280,   280,   280,   281,   282,
    1274      282,   284,   283,   283,   285,   285,   285,   286,   286,   287,
    1275      287,   287,   288,   288,   288,   288,   289,   289,   289,   290,
    1276      290,   291,   291,   292,   293,   292,   294,   294,   295,   295,
    1277      296,   296,   296,   297,   297,   298,   298,   299,   299,   300,
    1278      300,   301,   301,   301,   302,   301,   301,   303,   303,   303,
    1279      304,   304,   304,   304,   304,   304,   304,   304,   304,   305,
    1280      305,   305,   306,   307,   307,   308,   308,   309,   309,   310,
    1281      311,   311,   312,   312,   312,   313,   313,   313,   313,   314,
    1282      314,   314,   314,   315,   315,   316,   316,   316,   317,   317,
    1283      317,   317,   318,   318,   319,   319,   319,   320,   320,   320,
    1284      321,   321,   321,   322,   322,   322,   323,   323,   323,   324,
    1285      324,   324,   325,   325,   325,   326,   326,   326,   327,   327,
    1286      327,   327,   328,   328,   329,   329,   329,   330,   330,   330,
    1287      330,   331,   331,   331,   332,   332,   332,   332,   333,   333,
    1288      333,   334,   334,   334,   334,   335,   335,   335,   336,   336,
    1289      336,   336,   337,   337,   338,   338,   338,   339,   339,   340,
    1290      340,   341,   341,   341,   342,   342,   342,   342,   342,   343,
    1291      343,   343,   343,   344,   344,   344,   345,   345,   345,   346,
    1292      346,   346,   346,   347,   347,   347,   348,   348,   348,   348,
    1293      348,   349,   349,   349,   349,   350,   350,   350,   351,   351,
    1294      351,   352,   352,   352,   352,   352,   352,   353,   353,   353,
    1295      354,   354,   354,   354,   354,   355,   355,   355,   355,   356,
    1296      356,   357,   357,   357,   358,   358,   359,   359,   359,   359,
    1297      359,   359,   360,   360,   360,   360,   360,   360,   360,   360,
    1298      360,   360,   361,   361,   361,   361,   362,   362,   362,   363,
    1299      363,   364,   364,   364,   364,   364,   364,   365,   365,   365,
    1300      365,   365,   365,   366,   367,   367,   367,   368,   368,   369,
    1301      369
     1232     146,   146,   146,   147,   147,   147,   147,   148,   148,   148,
     1233     149,   149,   149,   149,   150,   150,   150,   151,   151,   151,
     1234     152,   152,   152,   152,   152,   153,   153,   153,   154,   154,
     1235     155,   155,   156,   156,   157,   157,   158,   158,   159,   159,
     1236     159,   159,   160,   161,   161,   161,   161,   162,   162,   163,
     1237     163,   163,   163,   164,   164,   165,   165,   165,   165,   165,
     1238     165,   165,   165,   165,   165,   166,   166,   167,   167,   168,
     1239     168,   168,   168,   168,   168,   168,   168,   168,   169,   170,
     1240     170,   171,   171,   172,   172,   172,   172,   173,   173,   174,
     1241     175,   175,   175,   175,   175,   175,   176,   176,   176,   177,
     1242     177,   178,   178,   179,   179,   180,   181,   181,   182,   182,
     1243     183,   183,   184,   184,   184,   184,   185,   185,   186,   186,
     1244     187,   187,   187,   188,   188,   189,   189,   189,   189,   189,
     1245     189,   189,   189,   189,   189,   190,   190,   190,   191,   191,
     1246     191,   191,   191,   192,   192,   192,   192,   193,   194,   194,
     1247     194,   194,   194,   195,   195,   195,   195,   195,   196,   196,
     1248     197,   197,   198,   198,   199,   199,   200,   200,   200,   201,
     1249     201,   202,   202,   203,   203,   204,   204,   205,   205,   206,
     1250     206,   207,   207,   208,   208,   209,   209,   210,   210,   210,
     1251     210,   210,   211,   211,   211,   212,   212,   212,   213,   213,
     1252     213,   213,   213,   214,   214,   214,   215,   215,   216,   216,
     1253     216,   217,   217,   217,   217,   217,   218,   218,   219,   219,
     1254     219,   219,   220,   220,   221,   221,   221,   221,   222,   222,
     1255     222,   222,   223,   223,   224,   224,   225,   225,   226,   226,
     1256     226,   226,   226,   227,   226,   228,   228,   228,   229,   229,
     1257     230,   231,   231,   231,   231,   231,   231,   231,   231,   232,
     1258     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
     1259     232,   233,   233,   233,   233,   233,   234,   234,   235,   235,
     1260     235,   235,   236,   236,   236,   236,   237,   237,   237,   237,
     1261     238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
     1262     241,   241,   242,   242,   242,   242,   242,   243,   243,   244,
     1263     244,   245,   245,   245,   245,   246,   246,   246,   246,   247,
     1264     247,   248,   248,   248,   248,   248,   249,   249,   250,   251,
     1265     252,   252,   252,   253,   253,   254,   254,   255,   255,   256,
     1266     256,   256,   256,   256,   257,   257,   257,   257,   258,   258,
     1267     259,   259,   260,   260,   261,   261,   261,   261,   262,   262,
     1268     262,   262,   262,   263,   263,   263,   263,   263,   264,   264,
     1269     265,   265,   266,   266,   267,   267,   267,   268,   268,   268,
     1270     269,   269,   269,   270,   270,   270,   271,   271,   271,   271,
     1271     272,   272,   272,   273,   273,   274,   274,   274,   274,   274,
     1272     275,   275,   276,   276,   277,   277,   277,   277,   277,   277,
     1273     278,   278,   278,   278,   279,   279,   279,   280,   281,   281,
     1274     283,   282,   282,   284,   284,   284,   285,   285,   286,   286,
     1275     286,   287,   287,   287,   287,   288,   288,   288,   289,   289,
     1276     290,   290,   291,   292,   291,   293,   293,   294,   294,   295,
     1277     295,   295,   296,   296,   297,   297,   298,   298,   299,   299,
     1278     300,   300,   300,   301,   300,   300,   302,   302,   302,   303,
     1279     303,   303,   303,   303,   303,   303,   303,   303,   304,   304,
     1280     304,   305,   306,   306,   307,   307,   308,   308,   309,   310,
     1281     310,   311,   311,   311,   312,   312,   312,   312,   313,   313,
     1282     313,   313,   314,   314,   315,   315,   315,   316,   316,   316,
     1283     316,   317,   317,   318,   318,   318,   319,   319,   319,   320,
     1284     320,   320,   321,   321,   321,   322,   322,   322,   323,   323,
     1285     323,   324,   324,   324,   325,   325,   325,   326,   326,   326,
     1286     326,   327,   327,   328,   328,   328,   329,   329,   329,   329,
     1287     330,   330,   330,   331,   331,   331,   331,   332,   332,   332,
     1288     333,   333,   333,   333,   334,   334,   334,   335,   335,   335,
     1289     335,   336,   336,   337,   337,   337,   338,   338,   339,   339,
     1290     340,   340,   340,   341,   341,   341,   341,   341,   342,   342,
     1291     342,   342,   343,   343,   343,   344,   344,   344,   345,   345,
     1292     345,   345,   346,   346,   346,   347,   347,   347,   347,   347,
     1293     348,   348,   348,   348,   349,   349,   349,   350,   350,   350,
     1294     351,   351,   351,   351,   351,   351,   352,   352,   352,   353,
     1295     353,   353,   353,   353,   354,   354,   354,   354,   355,   355,
     1296     356,   356,   356,   357,   357,   358,   358,   358,   358,   358,
     1297     358,   359,   359,   359,   359,   359,   359,   359,   359,   359,
     1298     359,   360,   360,   360,   360,   361,   361,   361,   362,   362,
     1299     363,   363,   363,   363,   363,   363,   364,   364,   364,   364,
     1300     364,   364,   365,   366,   366,   366,   367,   367,   368,   368
    13021301};
    13031302
     
    13061305{
    13071306       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    1308        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1309        1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
    1310        2,     2,     7,     1,     3,     0,     1,     3,     7,     9,
    1311        1,     3,     1,     3,     7,     3,     7,     1,     1,     1,
    1312        2,     2,     2,     2,     2,     2,     2,     4,     1,     4,
    1313        4,     2,     4,     2,     1,     1,     1,     1,     1,     4,
    1314        4,     1,     3,     3,     3,     1,     3,     3,     1,     3,
    1315        3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
    1316        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
    1317        5,     4,     5,     1,     1,     3,     3,     2,     0,     1,
    1318        2,     5,     6,     7,     1,     3,     1,     1,     1,     1,
    1319        1,     1,     1,     1,     1,     1,     1,     3,     0,     1,
    1320        1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
    1321        2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
    1322        2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
    1323        1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
    1324        3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
    1325        2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
    1326        2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
    1327        5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
    1328        2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
    1329        1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
    1330        1,     3,     5,     5,     1,     1,     1,     3,     1,     1,
    1331        1,     3,     0,     1,     3,     4,     1,     3,     1,     1,
    1332        3,     3,     3,     3,     3,     2,     3,     6,     3,     3,
    1333        4,     1,     2,     2,     3,     5,     8,     7,     7,     5,
    1334        9,     2,     2,     5,     3,     5,     4,     3,     4,     4,
    1335        7,     3,     3,     3,     3,     4,     6,     1,     1,     1,
    1336        1,     1,     1,     1,     1,     0,     1,     1,     2,     1,
    1337        1,     1,     1,     1,     1,     1,     0,     5,     1,     2,
    1338        3,     1,     2,     1,     1,     1,     1,     1,     1,     1,
     1307       1,     1,     1,     1,     1,     1,     2,     1,     1,     3,
     1308       3,     1,     6,     4,     3,     7,     3,     7,     2,     2,
     1309       7,     4,     1,     3,     0,     1,     3,     7,     9,     1,
     1310       3,     1,     3,     7,     3,     7,     1,     1,     1,     2,
     1311       2,     2,     2,     2,     2,     2,     4,     1,     4,     4,
     1312       2,     4,     2,     1,     1,     1,     1,     1,     4,     4,
     1313       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
     1314       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
     1315       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
     1316       4,     5,     1,     1,     3,     3,     2,     0,     1,     2,
     1317       5,     6,     7,     1,     3,     1,     1,     1,     1,     1,
     1318       1,     1,     1,     1,     1,     1,     3,     0,     1,     1,
     1319       1,     1,     1,     1,     1,     1,     1,     6,     4,     2,
     1320       7,     1,     3,     1,     2,     1,     2,     1,     2,     2,
     1321       5,     7,     5,     9,     5,     9,     1,     3,     1,     1,
     1322       3,     3,     2,     1,     2,     2,     0,     1,     2,     3,
     1323       0,     1,     2,     3,     3,     4,     0,     1,     1,     2,
     1324       5,     7,     6,     6,     4,     3,     4,     2,     3,     2,
     1325       3,     3,     3,     3,     5,     3,     3,     4,     1,     5,
     1326       6,     5,     6,     9,    10,     9,    10,     2,     1,     2,
     1327       2,     2,     1,     6,     8,    10,    12,    14,     0,     1,
     1328       0,     1,     1,     3,     4,     7,     0,     1,     3,     1,
     1329       3,     1,     1,     1,     3,     1,     1,     1,     3,     0,
     1330       1,     3,     4,     1,     3,     1,     1,     3,     3,     3,
     1331       3,     3,     2,     3,     6,     3,     3,     4,     1,     2,
     1332       2,     3,     5,     8,     7,     7,     5,     9,     2,     2,
     1333       5,     3,     5,     4,     3,     4,     4,     7,     3,     3,
     1334       3,     3,     4,     6,     1,     1,     1,     1,     1,     1,
     1335       1,     1,     0,     1,     1,     2,     1,     1,     1,     1,
     1336       1,     1,     1,     0,     5,     1,     2,     3,     1,     2,
    13391337       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1340        1,     1,     1,     1,     1,     2,     2,     3,     3,     1,
    1341        3,     1,     2,     2,     2,     4,     4,     4,     4,     1,
    1342        2,     2,     3,     1,     2,     2,     1,     2,     2,     3,
    1343        1,     2,     2,     1,     1,     4,     2,     5,     7,     2,
    1344        2,     2,     1,     2,     2,     3,     2,     3,     1,     2,
    1345        3,     2,     2,     4,     0,     1,     2,     2,     1,     0,
    1346        1,     2,     2,     5,     6,     2,     2,     4,     0,     2,
    1347        0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
    1348        9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
    1349        5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
    1350        1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
    1351        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1352        1,     1,     2,     0,     2,     1,     4,     1,     2,     3,
    1353        4,     2,     2,     1,     2,     1,     2,     5,     5,     7,
    1354        6,     1,     2,     2,     3,     1,     2,     2,     4,     2,
    1355        4,     0,     4,     2,     1,     1,     1,     0,     2,     5,
    1356        5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
    1357        4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
    1358        1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
    1359        1,     1,     1,     1,     0,     6,     2,     1,     2,     4,
    1360        2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
    1361        1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
    1362        1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
    1363        1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
    1364        4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
    1365        2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
    1366        6,     3,     2,     3,     3,     4,     4,     3,     2,     1,
     1338       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1339       1,     1,     2,     2,     3,     3,     1,     3,     1,     2,
     1340       2,     2,     4,     4,     4,     4,     1,     2,     2,     3,
     1341       1,     2,     2,     1,     2,     2,     3,     1,     2,     2,
     1342       1,     1,     4,     2,     5,     7,     2,     2,     2,     1,
     1343       2,     2,     3,     2,     3,     1,     2,     3,     2,     2,
     1344       4,     0,     1,     2,     2,     1,     0,     1,     2,     2,
     1345       5,     6,     2,     2,     4,     0,     2,     0,     1,     1,
     1346       1,     5,     5,     5,     1,     5,     5,     9,     1,     5,
     1347       0,     1,     1,     5,     1,     1,     5,     5,     1,     3,
     1348       3,     4,     1,     1,     1,     1,     2,     1,     3,     3,
     1349       1,     2,     1,     3,     1,     1,     1,     1,     1,     1,
     1350       1,     1,     1,     1,     1,     2,     1,     1,     1,     2,
     1351       0,     2,     2,     1,     4,     0,     1,     2,     3,     4,
     1352       2,     2,     1,     2,     1,     2,     5,     5,     7,     6,
     1353       1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
     1354       0,     4,     2,     1,     1,     1,     0,     2,     5,     5,
     1355      13,     1,     1,     3,     3,     2,     3,     3,     2,     4,
     1356       1,     6,     9,     0,    11,     1,     3,     3,     3,     1,
     1357       1,     5,     2,     5,     0,     1,     1,     3,     0,     1,
     1358       1,     1,     1,     0,     6,     2,     1,     2,     4,     2,
     1359       3,     3,     3,     4,     5,     5,     5,     6,     1,     1,
     1360       1,     3,     0,     5,     0,     1,     1,     2,     6,     1,
     1361       3,     0,     1,     4,     1,     1,     1,     1,     2,     1,
    13671362       2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
    1368        3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
    1369        3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
    1370        2,     2,     1,     1,     2,     3,     3,     2,     4,     6,
    1371        8,     1,     2,     2,     1,     2,     2,     3,     3,     1,
    1372        4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
    1373        5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
    1374        3,     1,     4,     4,     3,     5,     8,     3,     1,     2,
    1375        1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
    1376        1,     2,     2,     3,     3,     1,     4,     4,     3,     8,
    1377        3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
    1378        2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
    1379        3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
    1380        1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
    1381        3,     4,     2,     5,     5,     6,     6,     0,     1,     0,
    1382        2
     1363       3,     8,     3,     2,     1,     2,     6,     8,     3,     2,
     1364       3,     3,     4,     4,     3,     1,     1,     1,     4,     6,
     1365       3,     2,     3,     3,     4,     4,     3,     2,     1,     2,
     1366       2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
     1367       6,     8,     3,     2,     1,     2,     2,     2,     3,     3,
     1368       2,     4,     4,     3,     6,     8,     3,     2,     1,     2,
     1369       2,     1,     1,     2,     3,     3,     2,     4,     6,     8,
     1370       1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
     1371       4,     3,     5,     8,     3,     2,     3,     1,     5,     5,
     1372       6,     6,     1,     2,     2,     1,     2,     2,     3,     3,
     1373       1,     4,     4,     3,     5,     8,     3,     1,     2,     1,
     1374       2,     6,     5,     6,     7,     7,     1,     2,     2,     1,
     1375       2,     2,     3,     3,     1,     4,     4,     3,     8,     3,
     1376       1,     1,     2,     1,     1,     2,     3,     2,     3,     2,
     1377       3,     3,     2,     4,     3,     2,     3,     2,     4,     3,
     1378       2,     6,     6,     6,     7,     1,     2,     1,     1,     1,
     1379       2,     3,     2,     3,     2,     3,     3,     4,     2,     3,
     1380       4,     2,     5,     5,     6,     6,     0,     1,     0,     2
    13831381};
    13841382
     
    13881386static const yytype_uint16 yydefact[] =
    13891387{
    1390      295,   295,   316,   314,   317,   315,   318,   319,   301,   303,
    1391      302,     0,   304,   330,   322,   327,   325,   326,   324,   323,
    1392      328,   329,   331,   332,   333,   545,   545,   545,     0,     0,
    1393        0,   295,   219,   305,   320,   321,     7,   360,     0,     8,
    1394       15,    16,     0,     2,   295,   563,     9,   523,   521,   248,
    1395        3,   453,     3,   261,     0,     3,     3,     3,   249,     3,
    1396        0,     0,     0,   296,   297,   299,   295,   308,   311,   313,
    1397      341,   287,   334,   339,   288,   349,   289,   356,   353,   363,
    1398        0,     0,   364,   290,   471,   475,     3,     3,     0,     2,
    1399      517,   522,   527,   300,     0,     0,   545,   575,   545,     2,
    1400      586,   587,   588,   295,     0,   729,   730,     0,    12,   295,
    1401        0,   271,   272,     0,   296,   291,   292,   293,   294,   524,
    1402      306,   392,   546,   547,   370,   371,    12,   444,   445,    11,
    1403      440,   443,     0,   501,   496,   487,   444,   445,     0,     0,
    1404      526,   220,     0,   295,     0,     0,     0,     0,     0,     0,
    1405        0,     0,   295,   295,     2,     0,   731,   296,   580,   592,
    1406      735,   728,   726,   733,     0,     0,   255,     2,     0,   530,
    1407      438,   439,   437,     0,     0,     0,     0,   545,     0,   632,
    1408      633,     0,     0,   543,   539,   545,   560,   545,   545,   540,
    1409        2,   541,   545,   599,   545,   545,   602,     0,     0,     0,
    1410      295,   295,   314,   361,     2,   295,   262,   298,   309,   342,
    1411      354,   476,     0,     2,     0,   453,   263,   296,   335,   350,
    1412      357,   472,     0,     2,     0,   312,   336,   343,   344,     0,
    1413      351,   355,   358,   362,   445,   295,   295,   366,   369,     0,
    1414      395,   473,   477,     0,     0,     0,     1,   295,     2,   528,
    1415      574,   576,   295,     2,   739,   296,   742,   543,   543,   296,
    1416        0,     0,     0,   274,   545,   540,     2,   295,     0,     0,
    1417      295,   548,     2,   499,     2,   552,     0,     0,     0,     0,
    1418        0,    19,    58,     4,     5,     6,    17,     0,     0,     0,
    1419      295,     2,     0,   295,    64,    65,    66,    67,    48,    20,
    1420       49,    23,    47,    68,     0,    71,    75,    78,    81,    86,
    1421       89,    91,    93,    95,    97,    99,   104,   493,   749,   451,
    1422      492,     0,   449,   450,     0,   564,   579,   582,   585,   591,
    1423      594,   597,   360,     0,     2,   737,     0,   295,   740,     2,
    1424      295,     3,   425,     0,   433,   296,   295,   308,   334,   288,
    1425      349,   356,     3,     3,   407,   411,   421,   426,   471,   295,
    1426      427,   704,   705,   295,   428,   430,   295,     2,   581,   593,
    1427      727,     2,     2,   250,     2,     0,     0,   455,   454,   140,
    1428        2,     2,   252,     2,     2,   251,     2,   282,     2,   283,
    1429        0,   281,     0,     0,     0,     0,     0,     0,     0,     0,
    1430        0,   565,   604,     0,   453,     2,   559,   568,   658,   561,
    1431      562,   531,   295,     2,   598,   607,   600,   601,     0,   277,
    1432      295,   295,   340,   296,     0,   296,     0,   295,   732,   736,
    1433      734,   532,   295,   543,   256,   264,   310,     0,     2,   533,
    1434      295,   497,   337,   338,   284,   352,   359,     0,   295,     2,
    1435      384,   295,   372,     0,     0,   378,   726,   295,   747,   398,
    1436        0,   474,   498,   253,   254,   518,   295,   435,     0,   295,
    1437      238,     0,     2,   240,     0,   296,     0,   258,     2,   259,
    1438      279,     0,     0,     2,   295,   543,   295,   484,   486,   485,
    1439        0,     0,   749,     0,   295,     0,   295,   488,   295,   558,
    1440      556,   557,   555,     0,   550,   553,     0,     0,   295,    56,
    1441       68,    52,   295,    61,   295,   295,    50,    51,    63,     2,
    1442      126,     0,     0,   447,     0,   446,   110,   295,    54,    55,
    1443       18,     0,    30,    31,    35,     2,     0,   116,   117,   118,
    1444      119,   120,   121,   122,   123,   124,   125,     0,     0,    53,
     1388     292,   292,   313,   311,   314,   312,   315,   316,   298,   300,
     1389     299,     0,   301,   327,   319,   324,   322,   323,   321,   320,
     1390     325,   326,   328,   329,   330,   544,   544,   544,     0,     0,
     1391       0,   292,   218,   302,   317,   318,     7,   357,     0,     8,
     1392      13,    14,     0,     2,   292,   562,     9,   522,   520,   245,
     1393       3,   450,     3,   258,     0,     3,     3,     3,   246,     3,
     1394       0,     0,     0,   293,   294,   296,   292,   305,   308,   310,
     1395     338,   284,   331,   336,   285,   346,   286,   353,   350,   360,
     1396       0,     0,   361,   287,   470,   474,     3,     3,     0,     2,
     1397     516,   521,   526,   297,     0,     0,   544,   574,   544,     2,
     1398     585,   586,   587,   292,     0,   728,   729,     0,    12,   292,
     1399       0,   268,   269,     0,   293,   288,   289,   290,   291,   523,
     1400     303,   389,   545,   546,   367,   368,    12,   441,   442,    11,
     1401     437,   440,     0,   500,   495,   486,   441,   442,     0,     0,
     1402     525,   219,     0,   292,     0,     0,     0,     0,     0,     0,
     1403       0,     0,   292,   292,     2,     0,   730,   293,   579,   591,
     1404     734,   727,   725,   732,     0,     0,     0,   252,     2,     0,
     1405     529,   435,   436,   434,     0,     0,     0,     0,   544,     0,
     1406     631,   632,     0,     0,   542,   538,   544,   559,   544,   544,
     1407     539,     2,   540,   544,   598,   544,   544,   601,     0,     0,
     1408       0,   292,   292,   311,   358,     2,   292,   259,   295,   306,
     1409     339,   351,   475,     0,     2,     0,   450,   260,   293,   332,
     1410     347,   354,   471,     0,     2,     0,   309,   333,   340,   341,
     1411       0,   348,   352,   355,   359,   442,   292,   292,   363,   366,
     1412       0,   392,   472,   476,     0,     0,     0,     1,   292,     2,
     1413     527,   573,   575,   292,     2,   738,   293,   741,   542,   542,
     1414     293,     0,     0,     0,   271,   544,   539,     2,   292,     0,
     1415       0,   292,   547,     2,   498,     2,   551,     0,     0,     0,
     1416       0,     0,    17,    57,     4,     5,     6,    15,     0,     0,
     1417       0,   292,     2,     0,   292,    63,    64,    65,    66,    47,
     1418      18,    48,    21,    46,    67,     0,    70,    74,    77,    80,
     1419      85,    88,    90,    92,    94,    96,    98,   103,   492,   748,
     1420     448,   491,     0,   446,   447,     0,   563,   578,   581,   584,
     1421     590,   593,   596,   357,     0,     2,   736,     0,   292,   739,
     1422       2,   292,     3,   422,     0,   430,   293,   292,   305,   331,
     1423     285,   346,   353,     3,     3,   404,   408,   418,   423,   470,
     1424     292,   424,   703,   704,   292,   425,   427,   292,     2,   580,
     1425     592,   726,     2,     2,   247,     2,   455,     0,   453,   452,
     1426     451,   139,     2,     2,   249,     2,     2,   248,     2,   279,
     1427       2,   280,     0,   278,     0,     0,     0,     0,     0,     0,
     1428       0,     0,     0,   564,   603,     0,   450,     2,   558,   567,
     1429     657,   560,   561,   530,   292,     2,   597,   606,   599,   600,
     1430       0,   274,   292,   292,   337,   293,     0,   293,     0,   292,
     1431     731,   735,   733,   531,   292,   542,   253,   261,   307,     0,
     1432       2,   532,   292,   496,   334,   335,   281,   349,   356,     0,
     1433     292,     2,   381,   292,   369,     0,     0,   375,   725,   292,
     1434     746,   395,     0,   473,   497,   250,   251,   517,   292,   432,
     1435       0,   292,   235,     0,     2,   237,     0,   293,     0,   255,
     1436       2,   256,   276,     0,     0,     2,   292,   542,   292,   483,
     1437     485,   484,     0,     0,   748,     0,   292,     0,   292,   487,
     1438     292,   557,   555,   556,   554,     0,   549,   552,     0,     0,
     1439     292,    55,    67,    51,   292,    60,   292,   292,    49,    50,
     1440      62,     2,   125,     0,     0,   444,     0,   443,   109,   292,
     1441      53,    54,    16,     0,    28,    29,    34,     2,     0,    34,
     1442     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     1443       0,     0,    52,     0,     0,     0,     0,     0,     0,     0,
    14451444       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1446        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1447      107,     2,   644,   452,   641,   545,   545,   649,   478,   295,
    1448        2,   583,   584,     0,   595,   596,     0,     2,   738,   741,
    1449      110,   295,     2,   295,     0,   706,   296,   710,   701,   702,
    1450      708,     0,     2,     2,   666,   545,   749,   615,   545,   545,
    1451      749,   545,   629,   545,   545,   680,   434,   663,   545,   545,
    1452      671,   678,   295,   429,   296,     0,     0,   295,   716,   296,
    1453      721,   749,   713,   295,   718,   749,   295,   295,   295,     0,
    1454      110,     0,    19,     5,     2,     0,     0,   457,   747,     0,
    1455        0,   463,   242,     0,   295,     0,     0,     0,   543,   567,
    1456      571,   573,   603,   606,   610,   613,   566,   605,     0,   285,
    1457      656,     0,   295,   278,     0,     0,     0,     0,   276,     2,
    1458        0,   260,   534,   295,     0,     0,     0,     0,   295,   295,
    1459        0,     0,   690,   382,   385,   389,   545,   389,   695,   388,
    1460      687,   545,   545,   365,   373,   381,   374,   545,   376,   379,
    1461      295,   748,     0,     0,   396,   747,   296,     3,   414,     3,
    1462      418,   417,   589,     0,   529,   295,     3,     3,   295,   433,
    1463      296,     3,   427,   428,     2,     0,     0,     0,   483,   307,
    1464      295,   479,   481,     3,     2,     2,     0,   500,     3,     0,
    1465      552,   128,     0,     0,   221,     0,     0,     2,     0,     0,
    1466       36,     0,     0,   110,   295,    21,     0,    22,     0,   690,
    1467      448,     0,   108,     3,     2,    28,     2,     0,    33,     0,
    1468        2,    26,   105,   106,    72,    73,    74,    76,    77,    79,
    1469       80,    84,    85,    82,    83,    87,    88,    90,    92,    94,
    1470       96,    98,     0,     0,   750,   295,     0,     0,     0,   645,
    1471      646,   642,   643,   495,   494,   295,     0,     3,   295,   712,
    1472      295,   717,   296,   295,   295,   295,   660,   703,   659,     2,
    1473      295,     0,     0,     0,     0,     0,     0,     0,     0,   681,
    1474        0,   667,   618,   634,   668,     2,   614,   621,   431,   616,
    1475      617,   432,     2,   628,   637,   630,   631,   664,   665,   679,
    1476      707,   711,   709,   749,   269,     2,   743,     2,   422,   715,
    1477      720,   423,     0,   401,     3,     3,     3,     3,   453,     3,
    1478        0,     2,   466,   462,   748,     0,   458,   465,     2,   461,
    1479      464,     0,   295,   243,   265,     3,   273,   275,     0,   453,
    1480        2,   569,   570,     2,   608,   609,     0,   657,   535,     3,
    1481      346,   345,   348,   347,   295,   536,     0,   537,   295,   375,
    1482      377,     2,     0,     0,     0,     0,   103,   391,   691,   692,
    1483      386,   390,   387,   688,   689,   380,   384,   367,   398,   393,
    1484      399,     0,     0,     0,   436,   241,     0,     0,     3,     2,
    1485      666,   429,     0,   525,     0,   749,   487,     0,   295,   295,
    1486      295,     0,   549,   551,   129,     0,     0,   214,     0,     0,
    1487        0,   222,   223,    57,    62,   295,     0,    60,    59,     0,
    1488      127,   691,     0,    69,    70,   109,   114,     3,   108,     0,
    1489        0,     0,    25,    35,     3,     0,   101,     0,     3,   648,
    1490      652,   655,   647,     3,   590,     3,   714,   719,     2,   295,
    1491        3,     3,   296,     0,     3,   620,   624,   627,   636,   670,
    1492      674,   677,   295,     3,   619,   635,   669,   295,   295,   424,
    1493      295,   295,   744,     0,     0,     0,     0,   257,     0,   103,
    1494        0,     3,     3,     0,   459,     0,   456,     0,     0,   246,
    1495      295,     0,     0,   128,     0,     0,     0,     0,     0,   128,
    1496        0,     0,   108,   108,    19,     2,     0,     0,     0,    20,
    1497        0,     3,   130,   131,     2,   142,   132,   133,   134,   135,
    1498      136,   137,   138,   144,   146,     0,     0,     0,   286,   295,
    1499      295,   545,     0,   538,   295,   110,   694,   698,   700,   693,
    1500      383,   397,   394,   577,     2,   662,   661,     0,   667,     2,
    1501      480,   482,   502,     3,   510,   511,     0,     2,   506,     3,
    1502        3,     0,     0,   554,   221,     0,     0,     0,   221,     0,
    1503        3,    37,   747,   108,     0,     3,   659,    42,     3,    40,
    1504        3,    34,     0,     3,   100,   102,     0,     2,   650,   651,
    1505        0,     0,   295,     0,     0,     0,     3,   636,     0,     2,
    1506      622,   623,     2,   638,     2,   672,   673,     0,     0,     3,
    1507        0,     3,     3,     3,     3,   409,   408,   412,     2,     2,
    1508      746,   745,   111,     0,     0,     0,     0,     3,   460,     3,
    1509        0,   244,   145,     3,   296,   295,     0,     0,     0,     0,
    1510        2,   190,     0,   188,     0,     0,     0,     0,     0,     0,
    1511        0,     0,   110,    13,     0,    14,   545,    35,   150,   147,
    1512      295,     0,     0,   268,   280,     3,     3,   544,   611,   368,
    1513        2,   696,   697,   295,   267,   295,     0,   513,   490,   295,
    1514        0,     0,   489,   504,     0,     0,     0,   215,     0,   224,
    1515      108,     0,     0,   115,   112,     0,     0,     0,     0,     0,
    1516        0,    24,     0,   653,   295,   578,   266,   722,   723,   724,
    1517        0,   675,   295,   295,   295,     3,     3,     0,   683,     0,
    1518        0,     0,     0,   295,   295,     3,   542,   467,   468,     0,
    1519        0,   247,   296,     0,     0,     0,     0,   295,   191,   189,
    1520        0,   186,   192,     0,     0,     0,     0,   196,   199,   197,
    1521      193,     0,   194,     0,   128,     0,   143,   141,   245,     0,
    1522        0,   295,   416,   420,   419,     0,   507,     2,   508,     2,
    1523      509,   503,   295,   227,     0,   225,     0,   227,     3,   659,
    1524       32,   113,     2,    45,     2,    43,    41,    29,   111,    27,
    1525        3,   725,     3,     3,     3,     0,     0,   682,   684,   625,
    1526      639,   270,     2,   406,     3,   405,     0,   470,   467,   128,
    1527        0,     0,   128,     3,     0,   128,   187,     0,     2,     2,
    1528      208,   198,     0,     0,     0,     0,   139,     0,   572,   612,
    1529        3,     2,     0,     0,     2,   228,     0,     0,   216,     0,
    1530        0,     0,     0,     0,     0,     0,     0,     0,   685,   686,
    1531      295,     0,   469,   151,     0,     0,     2,   164,   128,   153,
    1532        0,   181,     0,   128,     0,     2,   155,     0,     2,     0,
    1533        2,     2,     2,   195,   233,   232,     0,   295,   512,   514,
    1534      505,     0,     0,     0,     0,   113,    38,     3,     3,   654,
    1535      626,   640,   676,   410,   128,   157,   160,     0,   159,   163,
    1536        3,   166,   165,     0,   128,   183,   128,     3,     0,   295,
    1537        0,   295,     0,     2,     0,     2,   699,     2,   229,   230,
    1538        0,   226,   217,     0,     0,     0,   152,     0,     0,   162,
    1539      234,   167,     2,   236,   182,     0,   185,   171,   200,     3,
    1540      209,   213,   202,     3,     0,   295,     0,   295,     0,     0,
    1541        0,    39,    46,    44,   158,   161,   128,     0,   168,   295,
    1542      128,   128,     0,   172,     0,     0,   690,   210,   211,   212,
    1543        0,   201,     3,   203,     3,   295,   218,   231,   148,   169,
    1544      154,   128,   237,   184,   179,   177,   173,   156,   128,     0,
    1545      691,     0,     0,     0,     0,   149,   170,   180,   174,   178,
    1546      177,   175,     3,     3,     0,     0,   491,   176,   204,   206,
    1547        3,     3,   205,   207
     1445       0,     0,     0,   106,     2,   643,   449,   640,   544,   544,
     1446     648,   477,   292,     2,   582,   583,     0,   594,   595,     0,
     1447       2,   737,   740,   109,   292,     2,   292,     0,   705,   293,
     1448     709,   700,   701,   707,     0,     2,     2,   665,   544,   748,
     1449     614,   544,   544,   748,   544,   628,   544,   544,   679,   431,
     1450     662,   544,   544,   670,   677,   292,   426,   293,     0,     0,
     1451     292,   715,   293,   720,   748,   712,   292,   717,   748,   292,
     1452     292,   292,     0,   109,     0,    17,     5,     2,     0,     0,
     1453     456,   746,     0,     0,   462,   239,     0,   292,     0,     0,
     1454       0,   542,   566,   570,   572,   602,   605,   609,   612,   565,
     1455     604,     0,   282,   655,     0,   292,   275,     0,     0,     0,
     1456       0,   273,     2,     0,   257,   533,   292,     0,     0,     0,
     1457       0,   292,   292,     0,     0,   689,   379,   382,   386,   544,
     1458     386,   694,   385,   686,   544,   544,   362,   370,   378,   371,
     1459     544,   373,   376,   292,   747,     0,     0,   393,   746,   293,
     1460       3,   411,     3,   415,   414,   588,     0,   528,   292,     3,
     1461       3,   292,   430,   293,     3,   424,   425,     2,     0,     0,
     1462       0,   482,   304,   292,   478,   480,     3,     2,     2,     0,
     1463     499,     3,     0,   551,   127,     0,     0,   220,     0,     0,
     1464       2,     0,     0,    35,     0,     0,   109,   292,    19,     0,
     1465      20,     0,   689,   445,     0,   107,     3,     2,    26,     2,
     1466       0,    32,     0,     2,    24,     0,   104,   105,    71,    72,
     1467      73,    75,    76,    78,    79,    83,    84,    81,    82,    86,
     1468      87,    89,    91,    93,    95,    97,     0,     0,   749,   292,
     1469       0,     0,     0,   644,   645,   641,   642,   494,   493,   292,
     1470       0,     3,   292,   711,   292,   716,   293,   292,   292,   292,
     1471     659,   702,   658,     2,   292,     0,     0,     0,     0,     0,
     1472       0,     0,     0,   680,     0,   666,   617,   633,   667,     2,
     1473     613,   620,   428,   615,   616,   429,     2,   627,   636,   629,
     1474     630,   663,   664,   678,   706,   710,   708,   748,   266,     2,
     1475     742,     2,   419,   714,   719,   420,     0,   398,     3,     3,
     1476       3,     3,   450,     3,     0,     2,   465,   461,   747,     0,
     1477     457,   464,     2,   460,   463,     0,   292,   240,   262,     3,
     1478     270,   272,     0,   450,     2,   568,   569,     2,   607,   608,
     1479       0,   656,   534,     3,   343,   342,   345,   344,   292,   535,
     1480       0,   536,   292,   372,   374,     2,     0,     0,     0,     0,
     1481     102,   388,   690,   691,   383,   387,   384,   687,   688,   377,
     1482     381,   364,   395,   390,   396,     0,     0,     0,   433,   238,
     1483       0,     0,     3,     2,   665,   426,     0,   524,     0,   748,
     1484     486,     0,   292,   292,   292,     0,   548,   550,   128,     0,
     1485       0,   213,     0,     0,     0,   221,   222,    56,    61,   292,
     1486       0,    59,    58,     0,   126,   690,   455,    68,    69,   108,
     1487     113,     3,   107,     0,     0,     0,    23,    34,     3,     0,
     1488      31,   100,     0,     3,   647,   651,   654,   646,     3,   589,
     1489       3,   713,   718,     2,   292,     3,     3,   293,     0,     3,
     1490     619,   623,   626,   635,   669,   673,   676,   292,     3,   618,
     1491     634,   668,   292,   292,   421,   292,   292,   743,     0,     0,
     1492       0,     0,   254,     0,   102,     0,     3,     3,     0,   458,
     1493       0,   454,     0,     0,   243,   292,     0,     0,   127,     0,
     1494       0,     0,     0,     0,   127,     0,     0,   107,   107,     2,
     1495       0,     0,     0,     3,   129,   130,     2,   141,   131,   132,
     1496     133,   134,   135,   136,   143,   145,     0,     0,     0,   283,
     1497     292,   292,   544,     0,   537,   292,   109,   693,   697,   699,
     1498     692,   380,   394,   391,   576,     2,   661,   660,     0,   666,
     1499       2,   479,   481,   501,     3,   509,   510,     0,     2,   505,
     1500       3,     3,     0,     0,   553,   220,     0,     0,     0,   220,
     1501       0,     3,    36,   746,   107,     0,     3,   658,    41,     3,
     1502      39,     3,    33,     0,     3,    99,   101,     0,     2,   649,
     1503     650,     0,     0,   292,     0,     0,     0,     3,   635,     0,
     1504       2,   621,   622,     2,   637,     2,   671,   672,     0,     0,
     1505       3,     0,     3,     3,     3,     3,   406,   405,   409,     2,
     1506       2,   745,   744,   110,     0,     0,     0,     0,     3,   459,
     1507       3,     0,   241,   144,     3,   293,   292,     0,     0,     0,
     1508       0,     2,   189,     0,   187,     0,     0,     0,     0,     0,
     1509       0,     0,     0,   109,     0,   544,   149,   146,   292,     0,
     1510       0,   265,   277,     3,     3,   543,   610,   365,     2,   695,
     1511     696,   292,   264,   292,     0,   512,   489,   292,     0,     0,
     1512     488,   503,     0,     0,     0,   214,     0,   223,   107,     0,
     1513       0,   114,   111,     0,     0,     0,     0,     0,     0,    22,
     1514       0,   652,   292,   577,   263,   721,   722,   723,     0,   674,
     1515     292,   292,   292,     3,     3,     0,   682,     0,     0,     0,
     1516       0,   292,   292,     3,   541,   466,   467,     0,     0,   244,
     1517     293,     0,     0,     0,     0,   292,   190,   188,     0,   185,
     1518     191,     0,     0,     0,     0,   195,   198,   196,   192,     0,
     1519     193,    34,   127,   142,   140,   242,     0,     0,   292,   413,
     1520     417,   416,     0,   506,     2,   507,     2,   508,   502,   292,
     1521     226,     0,   224,     0,   226,     3,   658,    30,   112,     2,
     1522      44,     2,    42,    40,    27,   110,    25,     3,   724,     3,
     1523       3,     3,     0,     0,   681,   683,   624,   638,   267,     2,
     1524     403,     3,   402,     0,   469,   466,   127,     0,     0,   127,
     1525       3,     0,   127,   186,     0,     2,     2,   207,   197,     0,
     1526       0,     0,     0,   138,   571,   611,     3,     2,     0,     0,
     1527       2,   227,     0,     0,   215,     0,     0,     0,     0,     0,
     1528       0,     0,     0,     0,   684,   685,   292,     0,   468,   150,
     1529       0,     0,     2,   163,   127,   152,     0,   180,     0,   127,
     1530       0,     2,   154,     0,     2,     0,     2,     2,     2,   194,
     1531      31,     0,   292,   511,   513,   504,     0,     0,     0,     0,
     1532     112,    37,     3,     3,   653,   625,   639,   675,   407,   127,
     1533     156,   159,     0,   158,   162,     3,   165,   164,     0,   127,
     1534     182,   127,     3,     0,   292,     0,   292,     0,     2,     0,
     1535       2,   137,   698,     2,   228,   229,     0,   225,   216,     0,
     1536       0,     0,   151,     0,     0,   161,   231,   166,     2,   233,
     1537     181,     0,   184,   170,   199,     3,   208,   212,   201,     3,
     1538       0,   292,     0,   292,     0,     0,     0,    38,    45,    43,
     1539     157,   160,   127,     0,   167,   292,   127,   127,     0,   171,
     1540       0,     0,   689,   209,   210,   211,     0,   200,     3,   202,
     1541       3,   292,   217,   230,   147,   168,   153,   127,   234,   183,
     1542     178,   176,   172,   155,   127,     0,   690,     0,     0,     0,
     1543       0,   148,   169,   179,   173,   177,   176,   174,     3,     3,
     1544       0,     0,   490,   175,   203,   205,     3,     3,   204,   206
    15481545};
    15491546
     
    15511548static const yytype_int16 yydefgoto[] =
    15521549{
    1553       -1,   830,   470,   298,    45,   130,   131,  1068,   299,   300,
    1554      301,   302,   777,   778,  1138,  1139,   303,   304,   305,   306,
    1555      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
    1556     1040,   520,   986,   318,   987,   548,   964,  1070,  1538,  1072,
    1557     1073,  1074,  1075,  1539,  1076,  1077,  1456,  1457,  1417,  1418,
    1558     1419,  1517,  1518,  1522,  1523,  1558,  1559,  1078,  1374,  1079,
    1559     1080,  1307,  1308,  1309,  1499,  1081,   142,   970,   971,   972,
    1560     1396,  1480,  1082,  1491,  1492,   471,   472,   892,   893,  1048,
    1561       48,    49,    50,    51,    52,   342,   155,    55,    56,    57,
    1562       58,    59,   344,    61,    62,   259,    64,    65,   270,   346,
    1563      347,    68,    69,    70,    71,   115,    73,   200,   349,   116,
    1564       76,   117,    78,    79,    80,   451,   452,   453,   454,   693,
    1565      930,   694,    81,    82,   458,   714,   872,   873,   352,   353,
    1566      717,   718,   719,   354,   355,   356,   357,   468,   336,   132,
    1567      133,   524,   320,   166,   647,   648,   649,   650,   651,    83,
    1568      118,    85,   491,   492,   956,   493,   273,   497,   321,    86,
    1569      134,   135,    87,  1332,  1117,  1118,  1119,  1120,    88,    89,
    1570      735,    90,   269,    91,    92,   183,  1042,   681,   406,   122,
    1571       93,   503,   504,   505,   184,   264,   186,   187,   188,   265,
    1572       96,    97,    98,    99,   100,   101,   102,   191,   192,   193,
    1573      194,   195,   842,   607,   608,   609,   610,   196,   612,   613,
    1574      614,   573,   574,   575,   576,   698,   103,   616,   617,   618,
    1575      619,   620,   621,   929,   700,   701,   702,   597,   360,   361,
    1576      362,   363,   322,   161,   105,   106,   107,   365,   712,   570
     1550      -1,   834,   472,   299,    45,   130,   131,   300,   301,   302,
     1551     303,   780,   781,  1139,  1140,   304,   305,   306,   307,   308,
     1552     309,   310,   311,   312,   313,   314,   315,   316,   317,  1045,
     1553     522,   990,   319,   991,   551,   968,  1072,  1534,  1074,  1075,
     1554    1076,  1077,  1535,  1078,  1079,  1451,  1452,  1413,  1414,  1415,
     1555    1513,  1514,  1518,  1519,  1554,  1555,  1080,  1371,  1081,  1082,
     1556    1305,  1306,  1307,  1495,  1083,   142,   974,   975,   976,  1392,
     1557    1476,  1487,  1488,   473,   474,   896,   897,  1053,    48,    49,
     1558      50,    51,    52,   343,   155,    55,    56,    57,    58,    59,
     1559     345,    61,    62,   260,    64,    65,   271,   347,   348,    68,
     1560      69,    70,    71,   115,    73,   201,   350,   116,    76,   117,
     1561      78,    79,    80,   453,   454,   455,   456,   696,   934,   697,
     1562      81,    82,   460,   717,   876,   877,   353,   354,   720,   721,
     1563     722,   355,   356,   357,   358,   470,   337,   132,   133,   526,
     1564     321,   167,   650,   651,   652,   653,   654,    83,   118,    85,
     1565     493,   494,   960,   495,   274,   499,   322,    86,   134,   135,
     1566      87,  1329,  1118,  1119,  1120,  1121,    88,    89,   738,    90,
     1567     270,    91,    92,   184,  1047,   684,   408,   122,    93,   505,
     1568     506,   507,   185,   265,   187,   188,   189,   266,    96,    97,
     1569      98,    99,   100,   101,   102,   192,   193,   194,   195,   196,
     1570     846,   610,   611,   612,   613,   197,   615,   616,   617,   576,
     1571     577,   578,   579,   701,   103,   619,   620,   621,   622,   623,
     1572     624,   933,   703,   704,   705,   600,   361,   362,   363,   364,
     1573     323,   161,   105,   106,   107,   366,   715,   573
    15771574};
    15781575
    15791576/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15801577   STATE-NUM.  */
    1581 #define YYPACT_NINF -1316
     1578#define YYPACT_NINF -1362
    15821579static const yytype_int16 yypact[] =
    15831580{
    1584     6783,  8392, -1316,    55, -1316, -1316, -1316, -1316, -1316, -1316,
    1585    -1316,    11, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,
    1586    -1316, -1316, -1316, -1316, -1316,   133,   133,   133,   919,   740,
    1587       44,  7011,   189, -1316, -1316, -1316, -1316, -1316,    85, -1316,
    1588    -1316, -1316,   970,   146,  8955, -1316, -1316, -1316, -1316, -1316,
    1589    -1316,   144,   178, -1316,  1050, -1316, -1316, -1316, -1316,   186,
    1590     1120,   320,   110,  7125, -1316, -1316,  9028,   826, -1316, -1316,
    1591    -1316,   995,   338,  4376,   747,  1012,   995,  1148, -1316, -1316,
    1592      364,   299, -1316,   995,  1376, -1316,   274, -1316,   407,   417,
    1593    -1316, -1316, -1316, -1316,   316,   178,   133, -1316,   133, -1316,
    1594    -1316, -1316, -1316,  8614,  1050, -1316, -1316,  1050, -1316,  8725,
    1595      341, -1316, -1316,  1604,  9568, -1316,  1022,  1022,  1022, -1316,
    1596    -1316, -1316,   133, -1316, -1316, -1316,   343,   366,   371, -1316,
    1597    -1316, -1316,   377, -1316, -1316, -1316, -1316, -1316,   412,   455,
    1598    -1316, -1316,    59,  8473,  2169,   225,   435,   476,   504,   507,
    1599      518,   554,  8281,  6311,   464,   562, -1316,  9101, -1316, -1316,
    1600    -1316, -1316,   573, -1316,   331,  3537, -1316,   570,   339, -1316,
    1601    -1316, -1316, -1316,   601,   351,   379,   436,   133,   589, -1316,
    1602    -1316,  1120,  2645,   672, -1316,   129, -1316,   133,   133,   178,
    1603    -1316, -1316,   140, -1316,   133,   133, -1316,  2885,   651,   654,
    1604     1022,  6457, -1316, -1316,   678,  8955, -1316, -1316,   995, -1316,
    1605    -1316, -1316,   178, -1316,  1050,   144, -1316,  7455, -1316,  1022,
    1606     1022,  1022,   178, -1316,   919, -1316,  2451, -1316, -1316,   667,
    1607     1022, -1316,  1022, -1316,    85,  8473,  8503,   728, -1316,   740,
    1608      739,  1022, -1316,   919,   735,   745, -1316,  7011,   821, -1316,
    1609    -1316, -1316,  8924, -1316, -1316,  5872, -1316,   672,   137,  9568,
    1610    10445,  1604,  2885, -1316,   171, -1316, -1316,  8725,  1050,   788,
    1611     6340, -1316, -1316,    32, -1316, 10733,   796,   844,  3414,  4017,
    1612    10597, -1316,   823, -1316, -1316, -1316, -1316, 10616, 10616,   821,
    1613     8140,   848,  4017,  8584, -1316, -1316, -1316, -1316, -1316, -1316,
    1614      871, -1316,   692,  1755,  4017, -1316,   617,   842,   610,   288,
    1615      736,   853,   851,   856,   938,    35, -1316, -1316,   878,   468,
    1616    -1316,   509, -1316, -1316,  2169, -1316, -1316,   388,   933, -1316,
    1617      637,   933,   937,    85, -1316, -1316,   939,  8614, -1316,   949,
    1618     8251, -1316, -1316,  1676,  1100,  7866,  6457,   995, -1316,   995,
    1619     1022,  1022, -1316, -1316, -1316, -1316, -1316, -1316,  1022,  9597,
    1620     1050, -1316, -1316,  9677,  1826, -1316,  9461, -1316, -1316, -1316,
    1621    -1316, -1316, -1316, -1316,   954,  5529,  4017, -1316, -1316, -1316,
    1622    -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,
    1623     1604, -1316,   814,   963,   968,   971,   827,   978,   981,   997,
    1624     2645, -1316, -1316,  1009,   144,  1008, -1316, -1316,  1010, -1316,
    1625    -1316, -1316,  8924, -1316, -1316, -1316, -1316, -1316,  2885, -1316,
    1626     8473,  8473, -1316,  1022,  1604,  6574,  1050,  7936, -1316, -1316,
    1627    -1316, -1316,  8924,   137, -1316, -1316,   995,   178, -1316, -1316,
    1628     8924, -1316,  5991, -1316, -1316,  1022,  1022,   634,  9706,  1016,
    1629     1063,  5013, -1316,   440,   443,   740, -1316,  8503,  1006,   998,
    1630      740,  1022, -1316, -1316, -1316, -1316,  9992, -1316,   652,  6108,
    1631    -1316,   178,  1018, -1316,  1604, 10813, 10464, -1316, -1316, -1316,
    1632    -1316,   858,  2885, -1316,  8006,   672,  6897, -1316, -1316, -1316,
    1633      986,   665,   878,   740,  6340,   370,  8725, -1316,  6340, -1316,
    1634    -1316, -1316, -1316,   677, -1316,  1032,   844,   321,  8140, -1316,
    1635    -1316, -1316,  8140, -1316,  8362,  8140, -1316, -1316, -1316,  1031,
    1636    -1316,   694,  1035,   613,  1040, -1316,  9247,  5960, -1316, -1316,
    1637    -1316,    70, -1316, -1316, 10521, -1316,   145, -1316, -1316, -1316,
    1638    -1316, -1316, -1316, -1316, -1316, -1316, -1316, 10445, 10445, -1316,
    1639     4017,  4017,  4017,  4017,  4017,  4017,  4017,  4017,  4017,  4017,
    1640     4017,  4017,  4017,  4017,  4017,  4017,  4017,  4017,  4481, 10445,
    1641    -1316,   468,   703, -1316, -1316,   133,   133, -1316, -1316,  8473,
    1642    -1316, -1316,  1010,   821, -1316,  1010, 10540, -1316, -1316, -1316,
    1643     4224,  5960,  1041,  8695,  1048, -1316,  9743, -1316, -1316,   573,
    1644    -1316,  1055,   578,  1058,  1876,   201,   878, -1316,   133,   133,
    1645      878,   255, -1316,   133,   133,  1010, -1316, -1316,   133,   133,
    1646    -1316,   933,  9813,  1050, 10954,   400,   408,  9813, -1316,  6223,
    1647    -1316,   878, -1316,  9597, -1316,   240,  7568,  7568,  7568,  1050,
    1648    -1316,  5299,  1054,   520,   954,   285,  1061, -1316,  1071,  3537,
    1649      535, -1316,  1150,  1050,  7568,   821,  1604,   821,   672,   640,
    1650      933, -1316, -1316,   734,   933, -1316, -1316, -1316,   844, -1316,
    1651      933,   178,  9992, -1316,   708,  1080,   710,  1081, -1316,  1086,
    1652      178, -1316, -1316,  8924,   178,  1078,   457,   466,  9850,  6428,
    1653     1598,  4017,  2005, -1316, -1316,  1082,    86,  1082, -1316, -1316,
    1654    -1316,   133,   133, -1316, -1316,   740, -1316,   133, -1316, -1316,
    1655     9314,   740,  1087,  4017, -1316,  1006, 10954, -1316, -1316,  1096,
    1656    -1316, -1316, -1316,   821, -1316, 10884,  4017, -1316,  7568,   689,
    1657     7866, -1316, -1316,   573,  1092,  1095,   986,  2631, -1316, -1316,
    1658     6340, -1316, -1316,  1098, -1316, -1316,  1104, -1316,  1098,  1107,
    1659    10733, 10445,    58,  1088,   265,  1114,  1115,   848,  1109,  1118,
    1660    -1316,  1122,  1124,  9394,  6077, -1316, 10445, -1316,   613,   833,
    1661    -1316,  5722, 10445,  1119, -1316, -1316,   954,   752, -1316, 10445,
    1662    -1316, -1316, -1316, -1316, -1316, -1316, -1316,   617,   617,   842,
    1663      842,   610,   610,   610,   610,   288,   288,   736,   853,   851,
    1664      856,   938,  4017,   872, -1316,  9992,  1126,  1128,  1132,   703,
    1665    -1316, -1316, -1316, -1316, -1316,  9992,   759,  4017,  7568, -1316,
    1666     9597, -1316,  6545,  8806,  9531,  6311, -1316, -1316, -1316,   578,
    1667     9992,   889,  1138,  1141,  1144,  1145,  1146,  1149,  1153, -1316,
    1668     3720,  1876, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,
    1669    -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,  1010,
    1670    -1316, -1316, -1316,   878, -1316, -1316, -1316, -1316, -1316, -1316,
    1671    -1316, -1316,  1154, -1316,  1155,  1159, -1316, -1316,   144,  1119,
    1672     5299, -1316, -1316, -1316,  5529,  1160, -1316, -1316, -1316, -1316,
    1673    -1316,   740,  5453,  1229, -1316, -1316, -1316, -1316,  1139,   144,
    1674    -1316, -1316,  1010, -1316, -1316,  1010,   152,  1010, -1316, -1316,
    1675    -1316, -1316, -1316, -1316,  9174, -1316,   178, -1316,  8503, -1316,
    1676    -1316,  1162,   902,  1168,  1169,  1171, -1316, -1316,  2005, -1316,
    1677    -1316, -1316, -1316, -1316, -1316, -1316,  1063, -1316,   998, -1316,
    1678    -1316,  1173,  1174,  1167, -1316, -1316,  1177,  1180, -1316,   689,
    1679     1647, -1316,   421, -1316,  2631,   878, -1316,  1183,  6340,  9879,
    1680     8473,  1184, -1316, -1316,  1179,  1186,  1181, -1316,  4017,   335,
    1681      530,  1188, -1316,  1185,  1185,  5960, 10445, -1316, -1316,  1185,
    1682    -1316,   833,  5529, -1316, -1316, -1316, -1316,  1191, 10445,  1190,
    1683      821,  5299, -1316, 10521, -1316,   821, -1316, 10445, -1316,   763,
    1684      933, -1316, -1316, -1316, -1316, -1316, -1316, -1316,   954,  8251,
    1685    -1316, -1316,  6662,  1198, -1316,   778,   933, -1316,   832,   840,
    1686      933, -1316,  1022,  4346, -1316, -1316, -1316,  9992,  9992, -1316,
    1687     7936,  7936, -1316,  1196,  1197,  1204,  1205, -1316,  1206,   484,
    1688      365,  1119, -1316,   821, -1316,  3537, -1316, 10445,   481, -1316,
    1689     5841,  1207,  1211, 10388,  1212,  1218,     5,    66,    52, 10445,
    1690     1219,   178, 10445, 10445,   109,  1217,   630,  1220,  1209,  1221,
    1691     1202, -1316, -1316, -1316,  1225, -1316, -1316, -1316, -1316, -1316,
    1692    -1316, -1316, -1316, -1316, -1316,   740,  1226, 10445, -1316,  9992,
    1693     9992,   133,  1234, -1316,  9423,  9284,   865,   933, -1316, -1316,
    1694    -1316, -1316, -1316, -1316, -1316, -1316, -1316,  1235,  1647, -1316,
    1695    -1316,  1227, -1316,  1098, -1316, -1316,  1604,  1231, -1316, -1316,
    1696    -1316,   766,  1236, -1316,   265,  1237,  4017,  1222,   265,   265,
    1697     1241, -1316,  1071, 10445,  1249,  1191,   846,   153,  1248, -1316,
    1698     1241, -1316,  1254,  1248, -1316, -1316,  1259, -1316, -1316,  1010,
    1699     1267,  1270,  6194,  1271,  1272,  1274, -1316, -1316,  1278, -1316,
    1700    -1316,  1010, -1316, -1316, -1316, -1316,  1010, 10445, 10445,  4017,
    1701     1282, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,
    1702    -1316, -1316, -1316,  4017,  4017,  1285,  1288,  1248, -1316, -1316,
    1703      740, -1316, -1316, -1316,  7385,  9879, 10445, 10445,  1356, 10445,
    1704    -1316, -1316,  1277, -1316,  1279, 10445,  1280,  1281, 10445,  1038,
    1705     1283,    92,  7786, -1316,  1292, -1316,   133, 10521, -1316, -1316,
    1706     5453,  1302,   492, -1316, -1316, -1316, -1316, -1316, -1316, -1316,
    1707    -1316, -1316,  1010, 10214, -1316,  8006,  1304, -1316, -1316,  9879,
    1708      533,   541, -1316,  1308,  1310,   844,  1309, -1316,   551, -1316,
    1709    10445,  1313,  1315, -1316, -1316,  1316,   244,   272,   821,  1321,
    1710     1323, -1316,  1324, -1316,  9992, -1316, -1316, -1316, -1316, -1316,
    1711     1326, -1316,  9992,  9992,  9992, -1316, -1316,  1329, -1316,  1330,
    1712     1335,  1338,   673,  7640,  7753, -1316, -1316,   454, -1316,  1337,
    1713     1339, -1316,  8076,   774,   775,  1341,   794,  5651, -1316, -1316,
    1714      558, -1316, -1316,   797,  1344,  1346,   178,  1395,   956, -1316,
    1715    -1316, 10445, -1316,  1343, 10388,   905, -1316, -1316, -1316,  1350,
    1716     1351,  9992, -1316, -1316, -1316,  1348, -1316, -1316, -1316, -1316,
    1717    -1316, -1316,  9879,   844,   381, -1316,  1333,   844,  1191,   405,
    1718    -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,  1352, -1316,
    1719    -1316, -1316, -1316, -1316, -1316,  1355,  1358, -1316, -1316, -1316,
    1720    -1316, -1316, -1316, -1316,  1363, -1316,  1362, -1316, -1316, 10388,
    1721      167, 10445, 10388, -1316,  1365, 10445, -1316,   170,  1371,  1380,
    1722    -1316, -1316,  1369,  1372,  1353,  1359, -1316,  1361, -1316, -1316,
    1723    -1316, -1316,  1050,  1604,  1367,   871,   914,  4017, -1316,   799,
    1724     1387, 10445,   821,   821,  1374,  1378,  1390,  1391, -1316, -1316,
    1725     7936,  1388, -1316,  1462,  4017,  1389, -1316, -1316, 10303, -1316,
    1726      802, -1316,  1375, 10388,  1379, -1316, -1316,  1398, -1316,  1403,
    1727    -1316,  1418,  1420, -1316, -1316, -1316,  1410,  9879, -1316, -1316,
    1728    -1316,   844,   821,  1411,  1394,  1405, -1316,  1248,  1248, -1316,
    1729    -1316, -1316, -1316, -1316, 10388,   373, -1316,   925, -1316, -1316,
    1730     7239, -1316, -1316,  1404, 10445, -1316, 10445,  7239,   178,  9706,
    1731      178,  9706,  1427, -1316,  1428, -1316, -1316,  1426,   871, -1316,
    1732      804, -1316, -1316, 10445,  1431,  1435, -1316,  4017,  4017, -1316,
    1733    -1316,  1005,   113, -1316, -1316,  1417, -1316,  1005, -1316, -1316,
    1734     1759,   821, -1316, -1316,   178,  9706,   178,  9706,  1445,  1425,
    1735      821, -1316, -1316, -1316, -1316, -1316, 10303,  1443,  1005,  7313,
    1736    10445, 10218,  1449,  1005,  1450,  1759,  2148, -1316, -1316, -1316,
    1737     1457, -1316, -1316, -1316, -1316,  8473, -1316, -1316, -1316, 10088,
    1738    -1316, 10303, -1316, -1316,  1439,  9996, -1316, -1316, 10218,   178,
    1739     2148,   178,  1466,  1468,   812, -1316, 10088, -1316, -1316, -1316,
    1740     9996, -1316, -1316, -1316,   178,   178, -1316, -1316, -1316, -1316,
    1741    -1316, -1316, -1316, -1316
     1581    5182,  8315, -1362,    65, -1362, -1362, -1362, -1362, -1362, -1362,
     1582   -1362,    58, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
     1583   -1362, -1362, -1362, -1362, -1362,    82,    82,    82,   907,   818,
     1584     118,  6817,   261, -1362, -1362, -1362, -1362, -1362,   194, -1362,
     1585   -1362, -1362,   762,   245,  3620, -1362, -1362, -1362, -1362, -1362,
     1586   -1362,   110,   286, -1362,   690, -1362, -1362, -1362, -1362,   307,
     1587    1768,   457,   101,  6932, -1362, -1362,  4184,   407, -1362, -1362,
     1588   -1362,  1616,   474,  5211,   816,  1213,  1616,  2188, -1362, -1362,
     1589     386,   368, -1362,  1616,  2312, -1362,   370, -1362,   505,   519,
     1590   -1362, -1362, -1362, -1362,   390,   286,    82, -1362,    82, -1362,
     1591   -1362, -1362, -1362,  8539,   690, -1362, -1362,   690, -1362,  9099,
     1592     393, -1362, -1362,  2123,  9180, -1362,   951,   951,   951, -1362,
     1593   -1362, -1362,    82, -1362, -1362, -1362,   455,   470,   487, -1362,
     1594   -1362, -1362,   492, -1362, -1362, -1362, -1362, -1362,   517,   553,
     1595   -1362, -1362,    76,  8285,  1659,   753,   483,   539,   586,   596,
     1596     599,   606,  7594,  6229,   641,   646, -1362,  8650, -1362, -1362,
     1597   -1362, -1362,   673, -1362,   126,  3695,  3695, -1362,   682,   235,
     1598   -1362, -1362, -1362, -1362,   693,   419,   442,   449,    82,   685,
     1599   -1362, -1362,  1768,  2932,   768, -1362,    90, -1362,    82,    82,
     1600     286, -1362, -1362,   121, -1362,    82,    82, -1362,  3090,   696,
     1601     779,   951,  6612, -1362, -1362,   728,  3620, -1362, -1362,  1616,
     1602   -1362, -1362, -1362,   286, -1362,   690,   110, -1362,  7263, -1362,
     1603     951,   951,   951,   286, -1362,   907, -1362,  5761, -1362, -1362,
     1604     745,   951, -1362,   951, -1362,   194,  8285,  8427,   777, -1362,
     1605     818,   866,   951, -1362,   907,   775,   789, -1362,  6817,   874,
     1606   -1362, -1362, -1362,  5519, -1362, -1362,  6022, -1362,   768,   173,
     1607    9180, 10174,  2123,  3090, -1362,   265, -1362, -1362,  9099,   690,
     1608     879,  6376, -1362, -1362,   507, -1362, 10523,   887,   920,  3349,
     1609   10328, 10347, -1362,   895, -1362, -1362, -1362, -1362, 10405, 10405,
     1610     874,  7949,   897, 10328,  8397, -1362, -1362, -1362, -1362, -1362,
     1611   -1362,   930, -1362,   797,  2723, 10328, -1362,   688,   806,   843,
     1612     301,   862,   899,   893,   906,   932,    20, -1362, -1362,   934,
     1613     593, -1362,   402, -1362, -1362,  1659, -1362, -1362,   610,   919,
     1614   -1362,   621,   919,   946,   194, -1362, -1362,   962,  8539, -1362,
     1615     961,  8061, -1362, -1362,  1747,  1347,  7675,  6612,  1616, -1362,
     1616    1616,   951,   951, -1362, -1362, -1362, -1362, -1362, -1362,   951,
     1617    9209,   690, -1362, -1362,  9247,  1940, -1362,  9032, -1362, -1362,
     1618   -1362, -1362, -1362, -1362, -1362,   966,  4295, 10328, -1362, -1362,
     1619   -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
     1620   -1362, -1362,  2123, -1362,   446,   964,   972,   978,   719,   979,
     1621     987,   990,  2932, -1362, -1362,   994,   110,   992, -1362, -1362,
     1622     995, -1362, -1362, -1362,  5519, -1362, -1362, -1362, -1362, -1362,
     1623    3090, -1362,  8285,  8285, -1362,   951,  2123,  6731,   690,  7745,
     1624   -1362, -1362, -1362, -1362,  5519,   173, -1362, -1362,  1616,   286,
     1625   -1362, -1362,  5519, -1362,  6258, -1362, -1362,   951,   951,   484,
     1626    9317,   998,  1130,  4716, -1362,   459,   467,   818, -1362,  8427,
     1627     991,   980,   818,   951, -1362, -1362, -1362, -1362,  9608, -1362,
     1628     567,  6494, -1362,   286,   999, -1362,  2123, 10603, 10193, -1362,
     1629   -1362, -1362, -1362,   793,  3090, -1362,  7815,   768,  6702, -1362,
     1630   -1362, -1362,   842,   625,   934,   818,  6376,   494,  9099, -1362,
     1631    6376, -1362, -1362, -1362, -1362,   636, -1362,  1005,   920,   328,
     1632    7949, -1362, -1362, -1362,  7949, -1362,  8173,  7949, -1362, -1362,
     1633   -1362,  1004, -1362,   644,  1013,   617,  1014, -1362,  8787,  5845,
     1634   -1362, -1362, -1362,    93, -1362, -1362, 10251, -1362,   164, 10251,
     1635   -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
     1636   10174, 10174, -1362, 10328, 10328, 10328, 10328, 10328, 10328, 10328,
     1637   10328, 10328, 10328, 10328, 10328, 10328, 10328, 10328, 10328, 10328,
     1638   10328,  4995, 10174, -1362,   593,  1220, -1362, -1362,    82,    82,
     1639   -1362, -1362,  8285, -1362, -1362,   995,   874, -1362,   995, 10270,
     1640   -1362, -1362, -1362,  5874,  5845,  1015,  8509,  1017, -1362,  9355,
     1641   -1362, -1362,   673, -1362,  1019,   506,  1020,  2624,   288,   934,
     1642   -1362,    82,    82,   934,   294, -1362,    82,    82,   995, -1362,
     1643   -1362,    82,    82, -1362,   919,  9384,   690, 10744,   254,   525,
     1644    9384, -1362,  6140, -1362,   934, -1362,  9209, -1362,   255,  7377,
     1645    7377,  7377,   690, -1362, 10097,  1009,   565,   966,   409,  1022,
     1646   -1362,  1018,  3695,   612, -1362,  1103,   690,  7377,   874,  2123,
     1647     874,   768,   628,   919, -1362, -1362,   744,   919, -1362, -1362,
     1648   -1362,   920, -1362,   919,   286,  9608, -1362,   659,  1026,   668,
     1649    1031, -1362,  1032,   286, -1362, -1362,  5519,   286,  1029,   497,
     1650     511,  9465,  6347,  1465, 10328,  2769, -1362, -1362,  1039,    94,
     1651    1039, -1362, -1362, -1362,    82,    82, -1362, -1362,   818, -1362,
     1652      82, -1362, -1362,  8924,   818,  1033, 10328, -1362,   991, 10744,
     1653   -1362, -1362,  1048, -1362, -1362, -1362,   874, -1362, 10674, 10328,
     1654   -1362,  7377,   639,  7675, -1362, -1362,   673,  1034,  1044,   842,
     1655    1987, -1362, -1362,  6376, -1362, -1362,  1045, -1362, -1362,  1051,
     1656   -1362,  1045,  1054, 10523, 10174,   142,  1040,    53,  1055,  1056,
     1657     897,  1057,  1061, -1362,  1063,  1066,  8203,  5993, -1362, 10174,
     1658   -1362,   617,  1650, -1362, 10116, 10174,  1062, -1362, -1362,   966,
     1659     676, -1362, 10174, -1362, -1362,   901, -1362, -1362, -1362, -1362,
     1660   -1362,   688,   688,   806,   806,   843,   843,   843,   843,   301,
     1661     301,   862,   899,   893,   906,   932, 10328,   912, -1362,  9608,
     1662    1069,  1070,  1075,  1220, -1362, -1362, -1362, -1362, -1362,  9608,
     1663     680, 10328,  7377, -1362,  9209, -1362,  6465,  8621,  9070,  6229,
     1664   -1362, -1362, -1362,   506,  9608,   832,  1076,  1078,  1079,  1080,
     1665    1082,  1083,  1088, -1362,  3884,  2624, -1362, -1362, -1362, -1362,
     1666   -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
     1667   -1362, -1362, -1362,   995, -1362, -1362, -1362,   934, -1362, -1362,
     1668   -1362, -1362, -1362, -1362, -1362, -1362,  1089, -1362,  1099,  1101,
     1669   -1362, -1362,   110,  1062, 10097, -1362, -1362, -1362,  4295,  1100,
     1670   -1362, -1362, -1362, -1362, -1362,   818,  5597,  1173, -1362, -1362,
     1671   -1362, -1362,  1085,   110, -1362, -1362,   995, -1362, -1362,   995,
     1672      28,   995, -1362, -1362, -1362, -1362, -1362, -1362,  8758, -1362,
     1673     286, -1362,  8427, -1362, -1362,  1108,   913,  1111,  1112,  1120,
     1674   -1362, -1362,  2769, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
     1675    1130, -1362,   980, -1362, -1362,  1116,  1128,  1124, -1362, -1362,
     1676    1132,  1133, -1362,   639,  1695, -1362,   589, -1362,  1987,   934,
     1677   -1362,  1138,  6376,  9494,  8285,  1140, -1362, -1362,  1137,  1144,
     1678    1147, -1362, 10328,   146,   128,  1150, -1362,  1153,  1153,  5845,
     1679   10174, -1362, -1362,  1153, -1362,  1650,  4295, -1362, -1362, -1362,
     1680   -1362,  1152, 10174,  1158,   874, 10097, -1362, 10251, -1362,   874,
     1681   -1362, -1362, 10174, -1362,   826,   919, -1362, -1362, -1362, -1362,
     1682   -1362, -1362, -1362,   966,  8061, -1362, -1362,  6583,  1161, -1362,
     1683     841,   919, -1362,   865,   883,   919, -1362,   951,  4042, -1362,
     1684   -1362, -1362,  9608,  9608, -1362,  7745,  7745, -1362,  1156,  1157,
     1685    1168,  1169, -1362,  1174,   677,   212,  1062, -1362,   874, -1362,
     1686    3695, -1362, 10174,   515, -1362,  5727,  1176,  1179,  9970,  1180,
     1687    1184,    11,    62,    64, 10174,  1185,   286, 10174, 10174,  1183,
     1688     535,  1182,  1164, -1362, -1362, -1362,  1187, -1362, -1362, -1362,
     1689   -1362, -1362, -1362, -1362, -1362, -1362,   818,  1190, 10174, -1362,
     1690    9608,  9608,    82,  1194, -1362,  8962,  8895,   888,   919, -1362,
     1691   -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,  1195,  1695,
     1692   -1362, -1362,  1186, -1362,  1045, -1362, -1362,  2123,  1196, -1362,
     1693   -1362, -1362,   684,  1203, -1362,    53,  1197, 10328,  1188,    53,
     1694      53,  1205, -1362,  1018, 10174,  1207,  1152,   337,   130,  1206,
     1695   -1362,  1205, -1362,  1214,  1206, -1362, -1362,  1217, -1362, -1362,
     1696     995,  1218,  1222,  6111,  1221,  1223,  1225, -1362, -1362,  1224,
     1697   -1362, -1362,   995, -1362, -1362, -1362, -1362,   995, 10174, 10174,
     1698   10328,  1226, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
     1699   -1362, -1362, -1362, -1362, 10328, 10328,  1232,  1234,  1206, -1362,
     1700   -1362,   818, -1362, -1362, -1362,  7193,  9494, 10174, 10174,  1283,
     1701   10174, -1362, -1362,  1215, -1362,  1219, 10174,  1233,  1242, 10174,
     1702     900,  1243,    37,  8091,  1006,    82, -1362, -1362,  5597,  1239,
     1703     523, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362,
     1704     995, 10093, -1362,  7815,  1256, -1362, -1362,  9494,   540,   555,
     1705   -1362,  1263,  1262,   920,  1270, -1362,   354, -1362, 10174,  1271,
     1706    1269, -1362, -1362,  1273,   206,   262,   874,  1274,  1275, -1362,
     1707    1276, -1362,  9608, -1362, -1362, -1362, -1362, -1362,  1277, -1362,
     1708    9608,  9608,  9608, -1362, -1362,  1279, -1362,  1282,  1286,  1287,
     1709     702,  7447,  7561, -1362, -1362,   388, -1362,  1291,  1292, -1362,
     1710    7885,   700,   705,  1296,   731,  5363, -1362, -1362,   575, -1362,
     1711   -1362,   741,  1297,  1299,   286,  1349,   974, -1362, -1362, 10174,
     1712   -1362, 10251,  9970, -1362, -1362, -1362,  1303,  1304,  9608, -1362,
     1713   -1362, -1362,  1312, -1362, -1362, -1362, -1362, -1362, -1362,  9494,
     1714     920,   263, -1362,  1293,   920,  1152,   273, -1362, -1362, -1362,
     1715   -1362, -1362, -1362, -1362, -1362,  1301, -1362, -1362, -1362, -1362,
     1716   -1362, -1362,  1316,  1317, -1362, -1362, -1362, -1362, -1362, -1362,
     1717   -1362,  1322, -1362,  1329, -1362, -1362,  9970,   107, 10174,  9970,
     1718   -1362,  1332, 10174, -1362,   151,  1351,  1355, -1362, -1362,  1334,
     1719    1335,  1320,   924, -1362, -1362, -1362, -1362, -1362,   690,  2123,
     1720    1338,   930,   937, 10328, -1362,   742,  1343, 10174,   874,   874,
     1721    1352,  1353,  1354,  1357, -1362, -1362,  7745,  1341, -1362,  1417,
     1722   10328,  1344, -1362, -1362,  9884, -1362,   785, -1362,  1333,  9970,
     1723    1340, -1362, -1362,  1363, -1362,  1364, -1362,  1379,  1382, -1362,
     1724    1350,  1371,  9494, -1362, -1362, -1362,   920,   874,  1374,  1365,
     1725    1370, -1362,  1206,  1206, -1362, -1362, -1362, -1362, -1362,  9970,
     1726     258, -1362,   941, -1362, -1362,  7047, -1362, -1362,  1367, 10174,
     1727   -1362, 10174,  7047,   286,  9317,   286,  9317,  1392, -1362,  1396,
     1728   -1362, -1362, -1362,  1393,   930, -1362,   803, -1362, -1362, 10174,
     1729    1397,  1398, -1362, 10328, 10328, -1362, -1362,  1016,    97, -1362,
     1730   -1362,  1383, -1362,  1016, -1362, -1362,  2377,   874, -1362, -1362,
     1731     286,  9317,   286,  9317,  1405,  1384,   874, -1362, -1362, -1362,
     1732   -1362, -1362,  9884,  1402,  1016,  7122, 10174,  9798,  1406,  1016,
     1733    1412,  2377,  2919, -1362, -1362, -1362,  1413, -1362, -1362, -1362,
     1734   -1362,  8285, -1362, -1362, -1362,  9705, -1362,  9884, -1362, -1362,
     1735    1400,  9612, -1362, -1362,  9798,   286,  2919,   286,  1414,  1419,
     1736     807, -1362,  9705, -1362, -1362, -1362,  9612, -1362, -1362, -1362,
     1737     286,   286, -1362, -1362, -1362, -1362, -1362, -1362, -1362, -1362
    17421738};
    17431739
     
    17451741static const yytype_int16 yypgoto[] =
    17461742{
    1747    -1316,  3936,  1551, -1316,  1151, -1316,    26,   510,     0,  -276,
    1748    -1316, -1316,   361,  -491,  -948,  -145,  4629, -1316,   604,   527,
    1749      545,   549,   529,  1024,  1015,  1020,  1023,  1027, -1316,   879,
    1750     -520,  4115,  -823,  -693,  -915, -1316,  -218,  -739,  -446, -1316,
    1751      668, -1316,   376, -1132, -1316, -1316,   111, -1316, -1315,  -817,
    1752      220, -1316, -1316, -1316, -1316,    38, -1279, -1316, -1316, -1316,
    1753    -1316, -1316, -1316,   293, -1124,    51, -1316,  -273, -1316,   473,
    1754      267, -1316, -1316,   138, -1316,  -313, -1316, -1316, -1316,   524,
    1755     -834, -1316, -1316,     3,  -969,    24,  1783, -1316, -1316, -1316,
    1756     -147, -1316,    39,   310,  -194,  1097,  3596, -1316, -1316,   102,
    1757       53,   308,  -253,  1214, -1316,  1761, -1316, -1316,   180,  2112,
    1758    -1316,  2452,  1373, -1316, -1316,  -414,  -443,  1163,  1166,   679,
    1759      921,    76, -1316, -1316,  1156,   681,  -462, -1316,   -19,   224,
    1760     -632, -1316, -1316,  -954,  -981,  1065,  1299,  1037,   -24, -1316,
    1761     1157,   183,    10,  -200,  -160,   645,   738, -1316,   979, -1316,
    1762     2733,   -28,  -453,   890, -1316, -1316,   675, -1316,  -228, -1316,
    1763      196, -1316, -1316, -1316, -1268,   394, -1316, -1316, -1316,  1158,
    1764    -1316,    90, -1316, -1316,  -855,   -85, -1303,  -127,  2247, -1316,
    1765     3418, -1316,   884, -1316,  -166,   101,  -170,  -168,  -163,     2,
    1766      -39,   -33,   -32,  1083,    15,    37,    43,  -148,  -161,  -155,
    1767     -152,  -143,  -327,  -463,  -423,  -415,  -533,  -277,  -553, -1316,
    1768    -1316,  -484,  1064,  1070,  1072,  1481,  4293,  -545,  -541,  -528,
    1769     -476,  -464, -1316,  -429,  -676,  -671,  -658,  -586,  -189,  -239,
    1770    -1316, -1316,   499,   256,    22, -1316,  3254,    45,  -600,  -232
     1743   -1362,  3493,  1093, -1362,  1502, -1362,    -1,     2,   435, -1362,
     1744     458,  -522,  -509,  -926,  -270,  4585, -1362,  1298,   508,   516,
     1745     480,   518,   965,   977,   985,   963,   975, -1362,   450,  -552,
     1746    3932,  -889,  -691,  -949, -1362,   269,  -657,  -346, -1362,  1391,
     1747   -1362,   339, -1080, -1362, -1362,    75, -1362, -1321,  -831,   188,
     1748   -1362, -1362, -1362, -1362,     7, -1083, -1362, -1362, -1362, -1362,
     1749   -1362, -1362,   268, -1220,    39, -1362,  -255, -1362,   439,   242,
     1750   -1362,   117, -1362,  -360, -1362, -1362, -1362,   498,  -843, -1362,
     1751   -1362,    12, -1020,    26,  1825, -1362, -1362, -1362,  -118, -1362,
     1752     513,    86,  -185,   665,  2995, -1362, -1362,    55,   143,   302,
     1753    -254,  1799, -1362,  1348, -1362, -1362,   259,  1704, -1362,  2086,
     1754    1311, -1362, -1362,  -430,  -428,  1135,  1143,   640,   890,   313,
     1755   -1362, -1362,  1126,   652,  -484, -1362,  -469,  -299,   976, -1362,
     1756   -1362,  -931,  -975,  -226,  1098,  1011,    22, -1362,   189,   264,
     1757     -13,  -195,  -156,   609,   711, -1362,   947, -1362,  2242,   541,
     1758    -458,   859, -1362, -1362,   647, -1362,  -235, -1362,    24, -1362,
     1759   -1362, -1362, -1279,   371, -1362, -1362, -1362,  1122, -1362,    46,
     1760   -1362, -1362,  -859,  -108, -1361,   -83,  2954, -1362,  2772, -1362,
     1761     858, -1362,  -175,   138,  -168,  -167,  -163,     3,   -38,   -31,
     1762     -30,   910,    25,    70,    79,  -147,  -162,  -159,  -152,  -151,
     1763    -287,  -573,  -525,  -485,  -559,  -293,  -488, -1362, -1362,  -496,
     1764    1038,  1041,  1042,  2149,  4025,  -548,  -554,  -520,  -498,  -453,
     1765   -1362,  -411,  -687,  -675,  -653,  -597,  -296,  -300, -1362, -1362,
     1766     829,    71,   -28, -1362,  3030,   124,  -627,  -190
    17711767};
    17721768
     
    17741770   positive, shift that token.  If negative, reduce the rule which
    17751771   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1776 #define YYTABLE_NINF -521
     1772#define YYTABLE_NINF -520
    17771773static const yytype_int16 yytable[] =
    17781774{
    1779       46,   507,    95,   146,   111,   378,   422,   447,   704,   147,
    1780      148,   393,   965,   394,   923,   434,   401,   606,   395,   924,
    1781      396,   699,   500,   759,    53,   112,   397,   110,   263,   398,
    1782      173,    46,   925,    95,   402,   211,   861,  1084,   399,    60,
    1783      909,   743,    46,   710,    46,   748,   158,  1143,   885,   835,
    1784     1177,    47,   238,    67,    46,    53,   404,   149,  1083,   844,
    1785       46,   836,   189,    46,  1394,   212,    46,   611,   222,   215,
    1786       60,   843,   521,  1135,   837,   108,  1175,  1176,   984,   150,
    1787      257,  1193,    47,   258,    67,   151,   211,   206,   810,   163,
    1788      216,   393,   923,   394,   770,  1187,   401,   924,   395,   671,
    1789      396,    94,    66,  1462,    46,   473,   397,    46,   276,   398,
    1790      925,  1458,   419,    46,   402,   941,   208,   120,   399,   680,
    1791      630,   140,   108,    30,   634,   256,   838,   684,   567,   211,
    1792      477,   479,    94,    66,  1201,   119,   108,   198,   530,   832,
    1793      108,   847,   146,   145,    46,    94,   158,   854,   147,   148,
    1794      139,   598,    46,  1311,   163,  -235,  -235,    46,   495,   368,
    1795      496,   185,   568,   738,    94,   277,    30,    94,  1205,  1477,
    1796       30,   927,   966,   998,   338,   876,   877,    30,   774,   833,
    1797       74,    46,    46,  1003,   158,  1458,   199,   834,   323,   211,
    1798      433,   143,   895,   940,   405,  1203,   149,    46,  1014,   403,
    1799      141,  1462,   674,   676,   669,    46,  1462,   158,    30,  1414,
    1800     1415,    74,  1414,  1415,    46,   108,  1192,    46,   150,   437,
    1801      -13,  1312,   146,   -12,   151,  -235,  1462,   211,   147,   148,
    1802      752,   211,   530,  1462,   666,   248,  1256,   405,    30,  1210,
    1803     1211,   435,  1546,   478,   485,    94,   413,    46,   405,    95,
    1804      430,   502,   667,   780,  1177,   152,   104,   104,    94,  1091,
    1805      741,    46,    46,  1257,   158,   473,   948,   704,    46,  1561,
    1806      436,    53,   165,   832,   467,    46,  1013,   483,  1416,   405,
    1807      323,  1425,   392,   185,   695,   473,    60,   104,   836,   167,
    1808      521,   474,    30,   473,   521,   732,  1026,   521,    47,   177,
    1809       67,   837,   697,  1177,  1145,   658,    94,   845,  1025,   603,
    1810     1253,   113,   430,   833,   108,   518,   666,   211,    94,   173,
    1811     1207,   834,   104,   197,    46,  1002,   368,   611,  1193,  1175,
    1812     1176,   248,   325,   673,   667,  1338,   631,   465,   163,   678,
    1813      635,  -291,   108,    46,    46,   286,   478,  1503,    94,    66,
    1814      803,   821,  1342,   838,   156,   108,  1005,   136,   137,   589,
    1815       46,   852,   481,   603,    46,  1084,   832,   847,   569,   108,
    1816      916,   136,   137,   968,   848,   225,   557,   558,   851,   226,
    1817     1344,  1532,   230,  1534,   232,   600,  1083,   243,   338,  1545,
    1818       46,   241,   906,   881,   870,  1172,  1173,   211,   208,   868,
    1819       46,   530,   368,   871,   598,   844,   833,   246,   836,  1556,
    1820      239,   559,   560,   254,   834,   530,  1560,  -516,    46,   156,
    1821      441,   837,   248,   861,    46,    94,    46,    74,   753,  1177,
    1822      675,   677,    74,   598,   108,   754,   136,   234,   598,   462,
    1823      108,  1126,   136,   137,   372,   605,  1071,   211,  1125,   -10,
    1824       46,   474,   381,   319,  1447,  1448,  1453,  1225,  1226,  1183,
    1825      373,   530,   335,  1375,   384,   323,   323,  1487,   382,   260,
    1826      235,   474,  -441,   838,    46,   236,   744,  -442,   969,   474,
    1827      385,   745,    46,   272,   368,  1184,    46,  1397,    95,   886,
    1828       46,  1193,   386,  1184,   580,   110,   405,   500,  1193,  1099,
    1829      732,   185,  1141,   104,  1094,  1113,   747,   699,   387,   864,
    1830       53,   424,  -111,   865,  1024,   428,   225,   866,   274,  1401,
    1831      393,   867,   394,   729,   761,    60,   401,   395,   208,   396,
    1832      866,   899,  1252,  -111,  1109,   397,   473,    47,   398,    67,
    1833      758,   323,   326,   160,   402,   319,   450,   399,   338,   388,
    1834     1193,   696,  1099,   705,  1163,  1165,   707,   775,  1373,   323,
    1835      758,   275,   781,  1026,   611,   389,  -111,  -111,   211,   706,
    1836      705,   897,   708,   366,   571,   732,   405,   428,   945,   707,
    1837      490,  1007,  -111,   327,   572,   821,   919,    94,    66,   814,
    1838       46,   605,    74,  -104,  1190,   920,   211,  -104,  -465,   863,
    1839      523,   211,    46,   156,    46,  1190,  1246,  1198,   160,   467,
    1840     1191,   328,    74,   887,   329,   878,   578,   874,   874,   874,
    1841       74,  1318,   579,    46,   323,   330,  1493,  1024,  -465,   894,
    1842     -465,  1029,  1350,  1493,  -465,   874,  1424,  1127,   600,    46,
    1843     1352,  1353,  1354,   888,  1128,   645,  1327,   588,    36,   889,
    1844      595,   704,    39,    46,  1329,   225,    46,   230,  1336,    40,
    1845       41,   331,  1328,  1285,  1286,  1337,    74,   862,   367,   628,
    1846     1330,   766,   600,   632,  1516,   821,   335,   436,  1037,   371,
    1847     1521,   896,   379,   898,   829,  1542,   603,  1376,   211,  1390,
    1848       46,   755,    46,   823,   604,   756,   555,   556,   762,  1088,
    1849     1213,  1541,   211,   831,   429,   605,  1548,   383,   731,   874,
    1850      338,    40,    41,     8,     9,    10,    11,    12,   391,   768,
    1851      169,   405,   474,  1110,  1044,  1495,   502,  1496,   729,   769,
    1852      319,   319,  1121,   550,   403,   455,    46,    46,   551,   552,
    1853       30,   685,   104,   583,   225,   405,   900,   579,   405,   944,
    1854       46,     2,   202,     4,     5,     6,     7,   420,   450,   722,
    1855      421,   450,   666,   249,   474,   723,   429,   450,    33,   208,
    1856      695,   931,   739,   931,  1071,   531,   532,   533,   740,   113,
    1857      667,  1543,  1361,   208,   749,   338,  1362,   426,   697,   525,
    1858      750,   922,   160,   696,   211,   949,   444,   603,   534,   874,
    1859      535,   765,   536,   729,   490,   950,   319,   766,   490,   571,
    1860      108,   405,   136,   137,    34,   910,    35,   912,   523,   572,
    1861      598,   766,   523,   766,   319,   523,   561,   562,  1167,    46,
    1862        2,   202,     4,     5,     6,     7,   335,   831,   605,   457,
    1863      903,    46,   405,     8,     9,    10,    11,    12,   969,   923,
    1864      460,  1244,   969,   969,   924,  1248,   821,   411,   224,   992,
    1865      875,   875,   875,    74,   463,   993,  1004,   925,  1386,  1147,
    1866       30,   405,   723,  1242,   464,   208,    -3,  1443,   875,   579,
    1867      431,  1369,  1370,   511,  1159,  1188,   405,   766,   766,   319,
    1868      439,   108,  1069,    34,  1455,    35,   528,   529,    33,   486,
    1869      819,  1372,   506,   595,  1377,    74,  1444,   766,   549,  1463,
    1870      766,  1509,  1441,   731,    46,   766,    53,  1510,  1067,  1566,
    1871      248,   325,   405,  1413,   286,   579,  1421,   823,    46,   514,
    1872      831,    60,   860,   413,   662,   405,    46,   595,  1162,   768,
    1873      603,   405,   605,   869,   529,    67,  1164,   455,   603,   769,
    1874      455,   530,   875,  -111,    46,  -111,   455,   526,   522,  -111,
    1875      553,   554,  1114,   732,   483,   325,   405,  1514,  1455,  1334,
    1876      563,  1230,  1461,   405,  -111,  -111,   564,  1465,  1293,  1294,
    1877      529,  1296,   565,  1115,   211,   766,   997,  1300,   731,   126,
    1878     1303,   127,   128,   129,    66,   845,   325,   603,   335,     2,
    1879      202,     4,     5,     6,     7,   323,   569,   525,  1486,   325,
    1880      405,   525,  1382,  1383,   525,  -292,  1137,  1387,   993,   758,
    1881      450,  1137,     8,     9,    10,    11,    12,  1441,  1442,   696,
    1882      566,  1237,     8,     9,    10,    11,    12,   696,  1488,  1489,
    1883       36,   334,   875,  -438,    39,   587,   732,  1414,  1415,    30,
    1884      490,    40,    41,  1069,   862,   605,    36,  1395,   590,    30,
    1885       39,  1395,    34,   640,    35,   436,  1215,    40,    41,  1137,
    1886      659,  1528,    74,   335,    53,   660,    42,    33,   661,  1067,
    1887      787,   788,  1202,  1204,  1206,   663,   144,    33,   664,   474,
    1888      795,   796,   736,  1555,  1304,  1305,  1306,    63,   114,  1555,
    1889      789,   790,   737,    67,   665,   682,   791,   792,   793,   794,
    1890     1555,  1343,  1345,  1346,  1555,   668,    46,   670,   253,   711,
    1891       36,  1099,   170,   171,    39,   688,   713,   159,    63,  -239,
    1892     1006,    40,    41,    36,   819,   179,   180,    39,   751,   724,
    1893      763,   157,   767,   190,    40,    41,   213,   771,   104,   223,
    1894      824,  -293,  1195,  1420,   784,   785,   786,   826,     8,     9,
    1895       10,    11,    12,   217,   828,  1478,   211,   839,   -12,   690,
    1896       36,   405,   179,   180,    39,   883,   522,   691,   891,   692,
    1897      522,    40,    41,   522,   884,    30,   138,   911,   913,   918,
    1898       36,   729,   179,   180,    39,   914,   691,   529,   215,   939,
    1899      255,    40,    41,  -415,  -520,   172,   602,   953,   603,   455,
    1900      960,   740,    46,    33,   962,   104,   604,   967,   206,   216,
    1901     1069,   973,   974,   976,   819,   977,   181,   159,   450,   978,
    1902       74,   979,   988,   999,   338,  1000,   182,   237,   240,  1001,
    1903      369,   324,  1114,   758,    53,  1015,  1067,   208,  1016,   255,
    1904      345,  1017,  1018,  1019,  1174,   172,  1020,  1085,   172,    60,
    1905     1021,  1032,  -403,  1115,   211,   159,  -402,  1087,   490,  1116,
    1906      319,  1095,  1046,    67,   729,  1096,  1097,   209,  1098,   400,
    1907     1104,  1103,  1137,  1137,  1137,  1102,  1105,   228,   159,  1106,
    1908     1112,  1122,   766,  1123,   418,  1124,   982,   423,   425,  1136,
    1909      438,  1129,   157,   172,  1133,  1157,   104,  1554,  1439,  1178,
    1910     1179,  1180,  1181,  1196,  1069,  1182,   435,  1197,  1199,   860,
    1911     1217,    53,    66,   442,  1200,  1208,  1212,   445,   209,   446,
    1912      529,  1218,   -14,  1223,  1216,  1114,   474,    -3,   461,   908,
    1913     1067,  1228,  1234,  1238,    63,   436,  1245,  1243,   915,   475,
    1914       67,  1247,   917,   495,  1250,   393,  1115,   394,  1254,   482,
    1915      401,  1258,   395,  1261,   396,   172,  1263,   425,  1438,  1069,
    1916      397,   209,  1069,   398,  1265,   983,   731,  1266,   402,  -294,
    1917     1267,  1268,   399,  1269,   666,  1271,     8,     9,    10,    11,
    1918       12,  1278,    46,    46,  1287,  1067,   459,  1288,  1067,  1195,
    1919       74,  1295,   667,  1313,   450,   819,  1298,   369,  1299,  1301,
    1920     1302,  1325,  1310,    30,  1317,  1527,  1335,   455,  1069,   172,
    1921     1331,   529,  1339,  1069,  1333,  1341,   172,  1340,  1137,  1137,
    1922     1347,   209,  1348,  1349,   255,  1351,   210,   596,  1357,  1358,
    1923     1114,    33,  1359,   624,  1067,  1360,  1367,  1371,  1368,  1067,
    1924     1378,   104,  1379,  1306,  1069,  1385,   629,  1388,  1389,  1391,
    1925      629,  1115,  1398,   255,  1408,  1427,  1401,  1409,  1479,   209,
    1926     -404,  1412,  1423,   209,  1429,  1431,   104,    74,  1432,  1440,
    1927     1067,  1449,  1433,   369,    53,  1450,   146,   210,  1434,   501,
    1928     1435,    53,   147,   148,   172,   104,  1445,  1451,  1452,   474,
    1929       46,  1362,  1454,  1459,  1464,  1468,   474,  1364,  1466,   475,
    1930     1470,   172,  1472,    67,  1474,   172,  1069,  1476,  1481,  1483,
    1931       67,  1069,   335,  1482,   345,    46,    46,  1529,   158,   475,
    1932      210,   720,   646,  1494,  1504,  1506,  1537,   475,  1508,  1069,
    1933     1512,  1069,  1067,    53,  1513,  1069,  1520,  1067,  1069,  1116,
    1934       46,  1535,   368,   104,  1536,  1540,  1069,  1549,   474,   209,
    1935     1069,  1547,  1195,   716,  1551,  1067,   425,  1067,  1557,  1195,
    1936      926,  1067,    67,  1564,  1067,  1565,  1214,   172,  1315,   798,
    1937      323,   730,  1067,    63,  1093,   799,  1067,   797,   104,   800,
    1938      210,   425,   926,   455,   801,   425,  1316,  1426,  1567,  1515,
    1939     1381,   164,  1249,   168,  1399,  1497,   174,   175,   176,  1222,
    1940      178,   686,   709,   529,   687,  1100,   715,   459,   932,  1101,
    1941      816,  1195,  1045,   255,   345,   229,   481,  1132,   210,   890,
    1942      955,  1111,   210,  1326,   963,   806,     0,   244,   245,   209,
    1943       74,   807,  1116,   808,   734,     0,     0,    74,     0,     0,
    1944      742,     0,   746,     0,   511,     0,   209,     8,     9,    10,
    1945       11,    12,     0,     0,     0,     0,   407,     0,    36,   809,
    1946      179,   180,    39,   415,    36,     0,   179,   180,    39,    40,
    1947       41,   996,     0,     0,    30,    40,    41,   629,   822,   209,
    1948      596,     0,     0,   104,     0,     0,     0,     0,     0,    74,
    1949        0,   841,     0,     0,   690,     0,   405,     0,     0,     0,
    1950      261,     0,    33,     0,   692,     0,   104,     0,   210,   596,
    1951      262,     0,     0,   104,   596,     0,     0,     0,     0,  1209,
    1952      629,     0,     0,   345,   345,   345,     0,   720,     0,     0,
    1953        0,   172,     0,     0,     0,   407,    36,  1116,   170,   171,
    1954       39,   345,     0,   949,     0,   603,     0,    40,    41,  1039,
    1955        0,    72,     0,   950,     0,   721,     0,     0,     0,   716,
    1956        0,     0,     0,   529,   172,   104,     0,     0,     0,  1500,
    1957      475,  1500,   367,    54,    54,   255,   730,     0,     0,   928,
    1958      172,     0,    72,     0,     0,     0,     0,     0,   210,     0,
    1959      577,     0,   882,     0,   172,     0,     0,     0,   581,     0,
    1960      209,   584,     0,     0,    54,  1500,     0,  1500,     0,     0,
    1961        0,     0,   475,     0,     0,   345,     0,   218,     0,    36,
    1962        0,   179,   180,    39,   954,     0,     0,   425,   209,     0,
    1963       40,    41,     0,   209,     0,   319,    54,   926,   210,    54,
    1964      537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
    1965      255,   730,   935,     0,     0,  1525,   981,   405,   938,     0,
    1966      720,     0,     0,   407,     0,  1526,  1144,   415,     0,     0,
    1967      720,     0,     0,   547,     0,     0,     8,     9,    10,    11,
    1968       12,   594,   601,     0,     0,   720,    36,     0,   170,   171,
    1969       39,   172,   716,   625,   626,     0,     0,    40,    41,     0,
    1970        0,     0,   716,    30,   348,   345,     0,   629,     0,     0,
    1971     1012,   629,   822,     0,     0,     0,  1039,   716,     0,     0,
    1972      209,     0,   371,     0,     0,     0,   343,  1023,     0,     0,
    1973        0,    33,     0,     0,   209,     0,    36,     0,   179,   180,
    1974       39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
    1975        0,     0,   407,     0,   501,     0,     0,     0,  1501,   210,
    1976     1501,   721,     0,     0,  1380,     0,     0,     0,     0,     0,
    1977        0,     0,   602,     0,   603,     0,     0,   443,     0,    63,
    1978        0,     0,   604,     0,     0,     0,     0,   210,     0,     0,
    1979       54,     0,   210,     0,  1501,   926,  1501,     0,    72,     0,
    1980        0,   629,     0,    72,     0,     8,     9,    10,    11,    12,
     1775     110,   449,    46,    95,   146,   264,   927,   762,   403,   379,
     1776     380,   147,   148,   111,   395,   396,   424,   785,   928,   397,
     1777     398,   436,   502,   399,   889,   707,    53,   112,   865,   713,
     1778     400,   401,   836,    46,    95,  1194,   404,  1085,   746,    47,
     1779     929,   702,   751,  1136,    46,   601,    46,   158,   847,  1453,
     1780    1390,   840,   614,  1084,   674,    66,    46,    53,   609,   848,
     1781     633,  1178,    46,   190,   637,    46,   213,   149,    46,   223,
     1782      47,   104,   104,  1144,   683,   257,   174,   140,   216,   814,
     1783     837,   108,   687,   988,   927,   841,    66,   113,   403,   207,
     1784     421,   945,   217,  1457,   395,   396,   928,   969,  1309,   397,
     1785     398,   406,   104,   399,  1176,  1177,    46,   842,   532,    46,
     1786     400,   401,   150,   570,   773,    46,   404,   839,   929,    30,
     1787     838,   151,  1188,  1453,   339,   277,   258,    30,   199,   259,
     1788     156,    30,   108,   287,   108,   475,  1092,   104,    94,  -232,
     1789    -232,  1202,   931,    67,   146,   119,    46,   158,   571,  1410,
     1790    1411,   147,   148,  1473,    46,   851,   880,   881,    30,    46,
     1791     369,   858,   972,   108,   944,   120,   836,  1310,   163,    94,
     1792     878,   878,   878,   899,    67,   479,   481,   200,  1211,  1212,
     1793     145,  1206,    94,   278,    46,    46,   158,   734,   878,   255,
     1794     735,  1457,  1204,  1410,  1411,   156,  1457,   249,   186,   407,
     1795      46,    94,   777,   407,    94,   741,   209,   149,    46,   158,
     1796    -232,   672,  1193,  1254,   837,   165,  1457,    46,   138,  1412,
     1797      46,   439,   532,  1457,   146,   139,   532,   669,   415,   320,
     1798     407,   147,   148,   163,   108,   405,  1128,   435,   336,   166,
     1799     373,  1255,   723,  1129,   437,  1251,  1499,   952,   469,   443,
     1800      46,    95,   150,  1127,   838,   670,   374,   970,  1178,    74,
     1801     836,   151,   878,  1421,    46,    46,   158,   324,   464,   238,
     1802     241,    46,   141,   783,    53,  1194,   108,   698,    46,   840,
     1803     480,  1528,    94,  1530,   661,   707,  1030,    47,   426,   520,
     1804      74,   487,   430,   825,   467,    94,   475,  1031,   504,  1335,
     1805     601,   143,    30,    66,   744,   700,  1184,  1178,   837,   669,
     1806     592,  1146,   676,   841,   614,  1339,   475,  1007,   681,   104,
     1807     394,   186,   320,   452,   475,    30,   920,    46,   369,   601,
     1808     432,    30,   108,  1185,   601,   842,   874,   670,  1010,   339,
     1809     879,   879,   879,   532,    94,  1018,    46,    46,   838,   383,
     1810    1176,  1177,  1483,   878,   430,   152,    94,   492,   879,  1085,
     1811     324,   438,   480,    46,   868,   384,   174,    46,   869,   226,
     1812    1393,  1341,   485,   227,   407,  1084,   231,   525,   233,  1185,
     1813     156,  -110,   851,   634,   572,   242,    94,   638,  1397,   560,
     1814     561,    67,   432,   734,    46,   849,   735,   606,   168,   840,
     1815     483,   856,  -110,   606,    46,   369,   848,  1208,   532,   678,
     1816     680,     2,   203,     4,     5,     6,     7,   865,   163,   852,
     1817    1126,   178,    46,   855,   591,   562,   563,   598,    46,   461,
     1818      46,  1178,   879,   841,  1542,  1194,   756,  1541,   108,   225,
     1819     136,   137,  1194,   757,   872,  -110,   631,  -110,   875,   723,
     1820     635,  -110,  1372,   336,    46,   842,   108,  1552,   136,   235,
     1821     198,  1557,  1333,    94,  1556,   603,  -110,  -110,   734,  1334,
     1822     110,   735,  1442,  1443,    34,  1448,    35,  -288,    46,   108,
     1823     240,   136,   137,   608,   244,   750,    46,   369,  1142,   209,
     1824      46,    95,  1095,   236,    46,  1194,   890,   249,   237,   502,
     1825     339,  -110,  -110,   764,  1114,   247,  1250,    74,   320,   320,
     1826     581,   226,    74,    60,    53,   761,   582,  -110,   885,  -515,
     1827     403,  1100,   261,   879,  1012,   395,   396,    47,   825,   702,
     1828     397,   398,   778,   386,   399,   761,   452,   784,   761,   452,
     1829     186,   400,   401,    66,    60,   452,   324,   324,   404,   387,
     1830    1073,   901,   614,   249,   326,   407,   388,   113,  1029,   104,
     1831     523,  1031,   -10,   390,   108,   649,   136,   137,   475,   818,
     1832    1164,  1166,   389,   708,  1100,  1244,    36,  -438,   903,   391,
     1833      39,   710,   492,   723,   320,   469,   492,    40,    41,   709,
     1834     699,   327,   688,   723,  -439,    46,   525,   711,   582,   273,
     1835     525,   747,   320,   525,   212,   282,   748,    46,   723,    46,
     1836     949,   708,  1489,   833,   336,   606,    40,    41,   825,  1489,
     1837     209,   239,   324,   607,   275,   710,    94,   923,    46,  1191,
     1838     608,    67,  1283,  1284,   497,   870,   498,  1191,  1370,   871,
     1839     324,   924,   517,  -464,    46,  1192,   712,   328,   867,   827,
     1840     226,   461,   231,  1315,  1324,   212,  1512,   900,    46,   902,
     1841     276,    46,  1517,   339,   882,    63,   114,   707,   320,  1326,
     1842    1325,  1029,  1538,    74,  -464,   725,  -464,  1034,   898,   823,
     1843    -464,   726,   598,  1537,   745,  1327,   749,  1042,  1544,   769,
     1844     891,   677,   679,    74,   329,    46,    63,    46,   212,   870,
     1845     574,    74,   407,  1110,   330,  1373,   324,   331,  1089,   157,
     1846     575,   864,  1199,   509,   332,  1420,   598,   583,   601,   407,
     1847     603,   892,   873,   648,   771,   948,   407,   893,   586,  1122,
     1848     407,   218,  1049,   742,   772,   904,  1175,   407,   339,   743,
     1849     226,    46,    46,   835,   752,   608,   953,    74,   606,   866,
     1850     753,   367,   768,   368,   603,    46,   954,   669,   769,   212,
     1851      36,    60,   171,   172,    39,   698,   476,   914,   256,  1111,
     1852     438,    40,    41,   769,   758,   504,   916,   336,   759,   523,
     1853     372,   765,   769,   523,   996,   670,   523,  -103,  1009,  1382,
     1854     997,  -103,  1240,   700,   726,   381,   825,   212,   582,   452,
     1855     385,   212,  1491,   422,  1492,   553,   723,   723,  1366,   325,
     1856     554,   555,  1358,  1367,   769,   393,  1359,   256,   346,   769,
     1857       2,   203,     4,     5,     6,     7,   415,   665,   407,   492,
     1858     405,   926,    36,   699,   927,    46,    39,   886,   428,  1369,
     1859     807,  1438,  1168,    40,    41,   769,   928,    46,   402,  1374,
     1860    1439,   907,   336,   407,   734,   769,  1436,   735,  1450,  1539,
     1861     249,   326,   209,   420,   723,   723,   425,   427,   929,    42,
     1862    1242,   157,  1073,   160,  1246,   446,   209,   835,   608,   144,
     1863     533,   534,   535,    34,   827,    35,   423,   212,   108,   459,
     1864     136,   137,   444,  1458,  1189,  1071,   447,   939,   448,   769,
     1865     485,   326,   407,   942,   536,   465,   537,   463,   538,   539,
     1866    1011,  1505,    36,    63,   823,  1562,    39,  1506,   477,   466,
     1867      46,   582,    53,    40,    41,   556,   557,   476,   484,   558,
     1868     559,  1510,  1450,  1148,    46,   407,   427,   735,   160,   849,
     1869     326,   606,    46,   755,   108,    74,    -3,   476,  1160,   739,
     1870     407,    66,   564,   565,   159,   476,  1302,  1303,  1304,   740,
     1871      46,     8,     9,    10,    11,    12,  1383,   104,   212,   209,
     1872     191,   835,  1163,   214,   606,  1115,   224,   126,   462,   127,
     1873     128,   129,  1361,   608,  1340,  1342,  1343,    74,    30,  1116,
     1874    1165,   488,   606,  1138,   508,  1228,   761,   407,  1138,   732,
     1875     287,    60,   516,   256,   823,  1320,   599,   528,   452,  1235,
     1876     532,   935,   627,   935,  1000,   997,    33,   566,   212,   567,
     1877    1409,   326,   407,  1417,   569,   632,   769,  1002,   335,   632,
     1878    1379,  1380,   256,   568,   104,   431,   723,  1430,   997,    67,
     1879     795,   796,   797,   798,   723,   723,   723,  1138,   492,  1117,
     1880     320,  1436,  1437,  -435,   159,  1484,  1485,  1071,  1410,  1411,
     1881    1203,  1205,  1207,   572,   791,   792,   457,   370,  1456,   590,
     1882     699,   593,   662,  1460,   793,   794,   643,   649,   699,   477,
     1883     663,    53,   799,   800,  1054,  1524,   664,   666,   324,   533,
     1884     534,   535,   723,   159,   346,   667,   608,   431,   668,   477,
     1885     864,   671,   673,  1482,   254,   714,   910,   477,   691,   716,
     1886    1196,  -236,   754,   536,   766,   537,   159,   538,  1311,    46,
     1887     527,   770,   774,   160,   -12,   828,   104,   830,   440,   832,
     1888     843,   895,   888,   719,   915,  1100,   427,   887,   866,   917,
     1889     212,   922,   918,   164,   930,   169,   943,  -519,   175,   176,
     1890     177,   733,   179,    63,   694,    74,  -412,   957,   964,   743,
     1891     438,   427,   966,   977,   978,   427,   930,   230,   212,   981,
     1892     971,   982,   980,   212,   983,   649,   992,  1004,  1005,   245,
     1893     246,   452,   823,  1006,  1020,   339,  1021,  1022,  1023,  1551,
     1894    1024,  1025,   973,   256,   346,  1551,  1026,  1037,    67,   476,
     1895      36,  1086,   180,   181,    39,   732,  1551,  -400,   216,  -399,
     1896    1551,    40,    41,  1051,  1088,    46,  -289,  1071,  1096,  1097,
     1897    1098,   207,   217,     8,     9,    10,    11,    12,  1099,  1103,
     1898       8,     9,    10,    11,    12,   370,  1104,   693,  1105,   407,
     1899     813,   476,  1106,  1107,    53,   694,  1113,   695,  1123,  1115,
     1900      30,   769,  1124,  1138,  1138,  1138,  1001,    30,   632,   826,
     1901     212,   599,  1125,  1116,  1130,   986,  1134,   104,  1137,  1158,
     1902    1179,  1180,   845,    66,   212,  1054,  1181,  1182,    33,   457,
     1903     732,  1434,   457,  1197,  1183,    33,  1198,  1200,   457,   104,
     1904     599,  1201,  1209,  1213,  1216,   599,  1550,  1215,  1221,   336,
     1905      -3,   632,  1226,  1232,   346,   346,   346,  1243,   104,  1236,
     1906     761,  1071,   370,   497,    74,  1241,   437,  1252,  1245,  1248,
     1907    1256,    53,   346,  1117,  1259,  1261,  1263,   574,  1293,   407,
     1908    1264,  1265,  1269,  1266,  1044,  1267,  1276,   575,   209,   527,
     1909     719,  1115,  1285,   527,  1286,  1296,   527,   403,    72,  1297,
     1910    1196,   477,  1314,   395,   396,  1116,   256,   733,   397,   398,
     1911     932,    67,   399,  1299,  1322,  1071,   104,   212,  1071,   400,
     1912     401,   669,  1300,  1308,   211,   404,  1328,  1330,  1332,    72,
     1913    1289,  1336,  1337,  1338,  1344,  1345,  1346,  1348,  1523,  1354,
     1914      46,    46,  1355,   477,  1356,  1357,   346,  1138,  1138,   670,
     1915     104,  1364,  1365,  1368,  1375,   958,  1376,  1304,   427,    60,
     1916    1433,  1384,  1385,  1071,   219,  1117,  1397,    36,  1071,   180,
     1917     181,    39,   930,  1394,  1387,   211,  1404,  1405,    40,    41,
     1918    -401,   256,   733,   438,   597,   604,  1475,   985,    67,  1408,
     1919    1419,  1427,  1428,   170,  1115,  1423,   628,   629,  1071,  1425,
     1920    1429,  1435,  1145,  1440,   605,  1359,   606,  1449,  1116,  1454,
     1921    1444,  1445,  1446,  1459,   607,  1447,  1291,  1292,   211,  1294,
     1922    1461,  1463,  1465,  1467,   719,  1298,  1469,    74,  1301,  1472,
     1923    1471,    53,  1477,   146,   719,  1479,   250,   346,    53,   632,
     1924     147,   148,  1017,   632,   826,  1478,  1525,  1490,    46,   719,
     1925    1500,   349,  1044,   104,  1502,  1533,  1504,  1508,  1509,  1028,
     1926    1196,  1071,  1531,  1516,  1532,  1536,  1071,  1196,  1117,  1543,
     1927    1545,  1547,  1560,    46,    46,   158,   104,  1561,  1214,   211,
     1928    1553,   801,   804,   104,  1071,    36,  1071,   180,   181,    39,
     1929    1071,    53,   457,  1071,   802,   805,    40,    41,    46,   369,
     1930    1496,  1071,  1496,   803,    74,  1071,   173,  1313,   212,  1511,
     1931     973,    63,  1422,  1563,   973,   973,   724,   211,   476,  1247,
     1932    1196,   211,   693,  1378,   407,   445,  1395,   930,   513,  1493,
     1933    1101,   413,   695,   632,  1220,   689,   104,  1496,   718,  1496,
     1934     936,   530,   531,   690,  1102,  1133,    72,   820,    67,  1050,
     1935     894,    72,   959,   552,   433,    67,   173,  1112,  1323,   173,
     1936     737,   967,   810,     0,   441,   811,   812,   320,     0,  1109,
     1937       2,   203,     4,     5,     6,     7,     0,   427,   114,     0,
     1938       0,     0,     0,     0,   930,   930,     0,  1416,     0,   531,
     1939       0,     0,     0,     0,   346,     0,     0,     0,     0,     0,
     1940       0,   913,     0,     0,   173,   324,     0,   211,    67,   483,
     1941       8,     9,    10,    11,    12,     0,   732,     0,     0,     8,
     1942       9,    10,    11,    12,     0,   531,     0,     0,  1331,   599,
     1943       0,     0,   524,    34,     0,    35,     0,    30,     0,     0,
     1944       0,     0,   425,     0,     0,   219,    30,   719,   719,     0,
     1945     346,   346,     0,     0,    75,     8,     9,    10,    11,    12,
     1946       0,     0,     0,     0,    74,    33,     0,   173,     0,     0,
     1947    1195,    74,     0,     0,    33,     0,     0,     0,     0,    36,
     1948       0,    60,    30,    39,     0,    75,   212,     0,   211,     0,
     1949      40,    41,     0,     0,     0,     0,   732,     0,     0,     0,
     1950       0,   457,     0,     0,     0,   719,   719,   771,     0,   407,
     1951      33,   632,    72,     0,     0,  1391,    42,   772,     0,  1391,
     1952     220,   173,     0,   724,    74,     0,   144,   349,   173,     0,
     1953       0,     0,    72,     0,     0,  1003,     0,     0,   211,     0,
     1954      72,     0,     0,     0,     0,  1008,     0,     0,     0,     0,
     1955       0,     0,   953,     0,   606,     0,     0,     0,   476,     0,
     1956    1019,     0,   954,   946,     0,   947,   349,    36,   733,   171,
     1957     172,    39,   950,   951,     0,    54,    54,   956,    40,    41,
     1958     685,   212,     0,     0,   349,     0,    72,     0,    36,   961,
     1959     180,   181,    39,   930,   965,     0,   173,     0,     0,    40,
     1960      41,   788,   789,   790,   368,     0,    54,   351,     0,     0,
     1961     930,  1290,   210,   173,   727,     0,     0,   173,     0,   993,
     1962       0,  1474,   229,     0,     0,   182,     0,   349,   256,     0,
     1963       0,     0,     0,    63,     0,   183,     0,     0,    54,     0,
     1964       0,    54,     0,     0,   531,     0,   719,     0,   733,     0,
     1965       0,   524,   114,     0,     0,   524,     0,   724,   524,     0,
     1966     211,     0,     0,   210,   597,     0,     0,   724,     0,     0,
     1967       0,     0,     0,     0,   457,     0,     0,   719,     0,     0,
     1968     173,     0,   724,   930,   930,   719,   719,   719,   211,     0,
     1969       0,     0,   349,   211,     0,     0,   346,   346,     0,     0,
     1970       0,     0,    75,     0,     0,     0,   210,    75,     0,     0,
     1971    1195,     0,     0,     0,     0,     0,     0,     0,   476,     0,
     1972       0,  1038,  1039,  1040,  1041,   476,  1043,     0,   344,     0,
     1973       0,     0,     0,   719,     0,     0,     0,   349,   349,   349,
     1974       0,     0,  1087,     0,   114,     0,     0,     8,     9,    10,
     1975      11,    12,     0,     0,     0,   349,  1093,     0,  1173,  1174,
     1976      36,     0,   171,   172,    39,     0,     0,   210,     0,     0,
     1977       0,    40,    41,   349,    30,     0,     0,   531,   476,     0,
     1978     211,     0,     0,     0,    72,     0,     0,     0,     0,     0,
     1979     349,     0,     0,    54,   211,  1108,     0,   372,     0,     0,
     1980       0,   220,    33,     0,     0,   210,     0,    36,     0,   210,
     1981       0,    39,     0,     0,     0,   912,  1223,  1224,    40,    41,
     1982       0,   346,   987,    54,   919,   503,    72,     0,   921,   349,
     1983       0,     0,     0,     0,  1135,     0,    77,     0,     0,     0,
     1984       0,  1143,     0,     0,   739,   173,  1147,   114,     0,     0,
     1985       0,  1151,     0,  1152,   740,     0,     0,  1154,  1155,  1156,
     1986       0,     0,  1159,     0,     0,   349,     0,    77,    75,   531,
     1987    1195,  1171,     0,     0,     0,     0,     0,  1195,   173,     0,
     1988     724,   724,     0,   351,     0,     0,     0,   211,    75,  1186,
     1989    1187,     0,     0,     0,   173,   210,    75,     0,     0,     0,
     1990       0,     0,   221,     0,     0,     0,     0,   349,   173,     0,
     1991       0,     0,     0,     0,     0,     0,  1217,   349,     0,  1219,
     1992     349,     0,   351,     0,     0,   219,     0,   349,     0,     0,
     1993    1195,     0,   349,     0,     0,     0,     0,  1546,   724,   724,
     1994     351,  -290,    75,    36,     0,   180,   181,    39,     8,     9,
     1995      10,    11,    12,     0,    40,    41,     0,  1234,     0,     0,
     1996       0,     0,     0,  1238,  1239,     0,     0,     0,     0,     0,
     1997       0,     0,     0,     0,  1249,    30,   210,     0,     0,  1253,
     1998     262,     0,  1257,   351,  1258,     0,     0,  1260,  1347,   352,
     1999     263,     0,    84,   210,    72,     0,  1349,  1350,  1351,     0,
     2000    1268,     0,     0,    33,   344,   173,     0,     0,     0,     0,
     2001       0,     0,     0,  1275,     0,  1277,  1278,  1279,  1280,     0,
     2002       0,     0,     0,    84,     0,     0,   210,     0,     0,     0,
     2003       0,  1287,     0,  1288,     0,     0,     0,   169,     0,     0,
     2004       0,     0,     0,  1497,  1386,  1497,     0,     0,   351,     0,
     2005       0,     0,     0,     0,     0,     0,     0,     0,   222,     0,
     2006       0,  1094,   531,    54,     0,  -291,  1316,  1317,     0,     0,
     2007       0,     0,     8,     9,    10,    11,    12,   349,   211,  1321,
     2008    1497,     0,  1497,     0,    77,   409,     0,     0,     0,    77,
     2009       0,     0,   417,   351,   351,   351,     0,     0,     0,    30,
     2010       0,     0,     0,   513,   344,     0,     0,     0,     0,     0,
     2011     724,   351,     0,     0,     0,     0,  1352,  1353,   724,   724,
     2012     724,     0,     0,     0,     0,     0,  1363,    33,     0,   351,
     2013     349,   349,     0,   349,   349,     0,     0,     0,     0,     0,
     2014      75,     0,     0,     0,     0,   359,   351,     0,   210,     0,
     2015       0,     0,     0,    72,     0,     0,     0,     0,     0,     0,
     2016       0,     0,     0,     0,   409,     0,   724,     0,     0,   344,
     2017     173,     0,     0,     0,     0,     0,   210,     0,  1396,     0,
     2018       0,   210,    75,   221,     0,   351,     0,     0,   349,   349,
     2019    1400,     0,  1401,  1402,  1403,     0,     0,    36,     0,   180,
     2020     181,    39,     0,     0,  1407,     0,     0,  1210,    40,    41,
     2021       0,     0,     0,  1418,   344,   344,   344,     0,   531,   580,
     2022       0,   351,     0,     0,     0,     0,     0,   584,     0,  1431,
     2023     587,     0,   344,     0,  1521,     0,   407,     0,     0,     0,
     2024      84,     0,     0,     0,  1522,    84,     0,     0,     0,     0,
     2025      77,   349,     0,     0,     0,     0,   211,     0,     0,     0,
     2026       0,     0,     0,   351,     0,   352,     0,     0,   210,     0,
     2027      77,     0,     0,   351,     0,     0,   351,     0,    77,     0,
     2028       0,   220,   210,   351,     0,  1480,  1481,     0,   351,     0,
     2029       0,     0,     0,   409,   219,     0,     0,   417,  1486,     0,
     2030       0,     0,   503,     0,   352,  1486,   344,     0,     0,     0,
     2031       0,     0,     0,     0,     0,     0,    72,     0,     0,     0,
     2032       0,     0,   352,     0,    77,     0,     0,     0,     0,   349,
     2033       0,   349,     0,     0,     0,     0,     0,     0,  1520,   222,
     2034       0,     0,  1526,     0,     0,     0,     0,     0,     0,     0,
     2035      75,   211,     0,     0,     0,     0,     0,     0,     0,     0,
     2036     349,     0,     0,     0,     0,   352,     0,     0,   349,   349,
     2037     349,  1548,     0,  1549,     0,   210,     0,     0,     0,   349,
     2038     349,     0,   409,     0,     8,     9,    10,    11,    12,     0,
     2039       0,     0,     0,    72,     0,     0,     0,   344,     0,     0,
     2040       0,  1564,  1565,     0,   344,     0,    84,     0,     0,  1568,
     2041    1569,    30,     0,     0,     0,     0,   349,     0,     0,     0,
     2042       0,   359,     0,     0,     0,     0,    84,     0,     0,     0,
     2043     352,     0,     0,   351,    84,     0,     0,     0,     0,    33,
     2044       0,     0,     0,     0,    36,  1377,   180,   181,    39,     0,
     2045       0,     0,     0,     0,     0,    40,    41,     0,     0,     0,
     2046     359,     0,     0,     0,     0,   173,     0,     0,     0,     0,
     2047       0,    54,     0,   580,   580,   352,   352,   352,   359,     0,
     2048      84,   605,     0,   606,     0,     0,   351,   351,     0,   351,
     2049     351,   607,     0,   352,     0,     0,     0,     0,     0,     0,
     2050       0,     0,     0,     0,   349,     0,     0,     0,     0,    75,
     2051       0,   352,     0,     0,     0,     0,     0,     0,     0,     0,
     2052       0,   359,    77,     0,     0,     0,     0,     0,   352,     8,
     2053       9,    10,    11,    12,     0,     0,     0,     0,    54,     0,
     2054       0,     0,     0,     0,   351,   351,     0,   123,   123,   123,
     2055       0,     0,     0,    72,   344,     0,    30,     0,     0,     0,
     2056      72,   905,     0,     0,    77,   908,   210,   352,   540,   541,
     2057     542,   543,   544,   545,   546,   547,   548,   549,     0,     0,
     2058       0,     0,     0,     0,    33,     0,   359,     0,     0,    36,
     2059       0,   180,   181,    39,     0,     0,     0,     0,   409,     0,
     2060      40,    41,   550,   352,  1494,     0,  1498,   351,     0,     0,
     2061     344,   344,     0,    72,     0,     0,     0,     0,   123,     0,
     2062     123,     0,     0,     0,     0,     0,   693,     0,   407,     0,
     2063      54,   359,   359,   359,     0,     0,   695,     0,     0,     0,
     2064     173,  1527,     0,  1529,   272,   352,     0,     0,     0,   359,
     2065     220,     0,     0,     0,     0,   352,     0,     0,   352,     0,
     2066       0,     0,     0,   221,     0,   352,     0,   359,     0,     0,
     2067     352,     0,    75,     0,     0,     0,     0,     0,    84,     8,
     2068       9,    10,    11,    12,   359,   351,  1558,   351,  1559,     0,
     2069       0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     2070     123,  1566,  1567,     0,     0,     0,    30,     0,   123,     0,
     2071     123,   123,   580,     0,     0,   123,   351,   123,   123,    30,
     2072      84,     0,     0,   359,   351,   351,   351,     0,     0,   121,
     2073     124,   125,    77,     0,    33,   351,   351,     0,     0,    36,
     2074       0,   180,   181,    39,   210,     0,     0,    33,     0,    75,
     2075      40,    41,    36,     0,   180,   181,    39,     0,     0,   359,
     2076       0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
     2077      54,    54,   351,     0,     0,     0,  1521,     0,   407,     0,
     2078       0,     0,     0,     0,     0,     0,  1522,   123,     0,   182,
     2079       0,     0,     0,    54,     0,     0,     0,     0,     0,   183,
     2080     251,   359,   252,     0,     0,     0,     0,     0,   208,     0,
     2081       0,   359,    54,     0,   359,   352,     0,     0,   228,   222,
     2082     232,   359,   234,     0,   162,   409,   359,     0,     0,   243,
     2083       0,     0,     0,     0,     0,     0,     0,     0,     0,   210,
     2084       0,     0,     0,   215,     0,     0,     0,     0,     0,     0,
     2085       8,     9,    10,    11,    12,     0,   344,   344,     0,   208,
     2086     351,   232,   234,   243,     0,    54,     0,     0,   352,   352,
     2087      54,   352,   352,     0,     0,     0,     0,    30,     0,     0,
     2088       0,     0,   392,     0,     0,     0,     0,     0,    84,   162,
     2089       0,    77,   411,   412,   269,     0,     0,   416,     0,   418,
     2090     419,     0,   208,  1149,    54,    33,     0,     0,     0,    75,
     2091      36,     0,   180,   181,    39,     0,    75,     0,     0,  1161,
     2092       0,    40,    41,   162,     0,     0,   352,   352,     0,     0,
     2093       0,     0,     0,   365,     0,     0,     0,   371,     0,     0,
     2094       0,     0,     0,     0,     0,     0,     0,   262,     0,     0,
     2095       0,     0,     0,     0,     0,     0,     0,   263,     0,     0,
     2096       0,     0,     0,   208,     0,   232,   234,   243,     0,    75,
     2097       0,   359,     0,     0,     0,     0,     0,     0,     0,     0,
     2098       0,   344,     0,     0,     0,     0,   162,     0,     0,   352,
     2099       0,     0,     0,     0,     0,     0,  1229,     0,   215,     0,
     2100       0,   208,     0,     0,     0,   208,     0,    54,     0,     0,
     2101       0,     0,     0,     0,     0,     0,   162,   458,     0,     0,
     2102       0,   501,     0,     0,   359,   359,     0,   359,   359,     0,
     2103      54,     0,   221,     0,     0,     0,     0,    54,     0,     0,
     2104     371,     0,     0,     0,     0,     0,     0,    84,   162,     0,
     2105       0,     0,     0,     0,    77,     0,     0,     0,     0,     0,
     2106       0,     0,     0,     0,     0,     0,     0,   352,     0,   352,
     2107     208,   458,     0,     0,   162,     0,     0,     0,     0,     0,
     2108       0,     0,   359,   359,     0,     0,     0,     0,     0,     0,
     2109      54,   208,     0,     0,     0,     0,   232,   234,   352,     0,
     2110     123,   123,     0,     0,   243,     0,   352,   352,   352,     0,
     2111       0,     0,     0,     0,     0,     0,     0,   352,   352,     0,
     2112       0,   602,     0,     0,     0,     0,   626,     0,     0,     0,
     2113     123,    77,     0,   123,   123,   279,   123,   280,   123,   123,
     2114       0,     0,     0,   123,   123,   359,     0,   208,     0,     0,
     2115       0,     0,     0,     0,   352,     0,     0,     0,     0,     0,
     2116       0,     0,     0,   281,     0,   208,     0,     0,     0,   282,
     2117     208,     0,   208,   283,     0,     0,   284,   285,   286,   287,
     2118      40,    41,     0,   288,   289,     0,     0,     0,   222,   208,
     2119       0,   290,   208,   208,     0,     0,     0,     0,     0,     0,
     2120       0,     0,   162,   162,     0,     0,   510,     0,   208,   365,
     2121      84,     0,     0,     0,     0,   293,   377,   295,   296,   297,
     2122     298,   123,   208,   359,     0,   359,   123,   123,     0,   208,
     2123     458,     0,   123,   458,     0,     0,     0,     0,     0,   458,
     2124       0,     0,   352,     0,     0,     0,     0,     0,     0,     0,
     2125       0,     0,     0,     0,   359,     0,     0,     0,     0,     0,
     2126       0,     0,   359,   359,   359,     0,   736,     0,     0,     0,
     2127       0,     0,     0,   359,   359,     0,     0,     0,   162,     0,
     2128       0,     0,   815,   816,     0,     0,   153,    84,     0,     0,
     2129     458,    77,     0,     0,   458,     0,   162,   458,    77,     0,
     2130       0,     0,     0,     0,     0,     0,     0,     0,     0,   365,
     2131     359,     0,   850,     0,     0,   853,   854,     0,   857,     0,
     2132     859,   860,     0,     0,     0,   861,   862,     0,     0,     0,
     2133       0,     0,   248,     0,     0,     0,     0,     0,     0,     0,
     2134       0,     0,   253,     0,   208,     0,     0,     0,     0,     0,
     2135       0,    77,     0,     0,     0,     0,     0,     0,     0,     0,
     2136       0,     0,   162,     0,     0,     0,     0,     0,     0,     0,
     2137       0,     0,   208,     0,   365,     0,   602,   208,     0,   831,
     2138       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2139      18,    19,    20,    21,    22,    23,    24,   153,   359,    25,
     2140      26,    27,     0,     0,     0,   602,     0,    30,   937,   938,
     2141     602,   382,     0,     0,   940,     0,     0,     0,     0,   365,
     2142     365,   365,     0,     0,     0,     0,     0,     0,     0,     0,
     2143       0,     0,     0,     0,   414,    33,     0,   365,     0,     0,
     2144      36,     0,    37,    38,    39,     0,     0,    84,   429,     0,
     2145       0,    40,    41,     0,    84,     0,     0,   434,     0,     0,
     2146       0,     0,     0,     0,   208,     0,     0,   442,     0,     0,
     2147       0,     0,   736,     0,     0,     0,     0,    42,   208,   154,
     2148       0,   279,     0,   280,     0,     0,     0,    44,     0,     0,
     2149       0,     0,   468,   458,     0,     0,     0,   478,   501,     0,
     2150       0,     0,     0,     0,     0,     0,     0,    84,     0,   281,
     2151     486,   365,     0,   955,     0,   282,   496,     0,   500,   283,
     2152       0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
     2153     289,     0,     0,     0,     0,   529,     0,   290,     0,     0,
     2154       0,     0,     0,     0,     0,     0,     0,   736,     0,     0,
     2155       0,     0,   291,     0,   375,     0,     0,   376,   208,     0,
     2156       0,   293,   377,   295,   296,   297,   298,     0,     0,     0,
     2157       0,   208,     0,     0,     0,     0,     0,     0,   589,     0,
     2158       0,     0,     0,   594,     0,     0,     0,     0,     0,     0,
     2159     208,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2160       0,     0,   365,     0,     0,     0,   626,     0,     0,   365,
     2161       0,   640,     0,     0,   123,   641,   642,     0,   644,     0,
     2162       0,     0,     0,     0,     0,   655,   656,     0,   657,   658,
     2163       0,   659,     0,   660,     0,     0,     0,     0,     0,     0,
     2164       0,  1027,     0,     0,     8,     9,    10,    11,    12,     0,
     2165     589,     0,     0,     0,     0,     0,     0,     0,   675,     0,
    19812166       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1982       54,     0,     0,     0,     0,     0,   209,     0,     0,     0,
    1983        0,   646,    30,     0,     0,     0,     0,  1108,  1049,     0,
    1984        0,     0,   577,   577,     0,   425,   114,     0,     0,     0,
    1985        0,     0,   926,   926,     0,   172,     0,     0,     0,     0,
    1986       33,     0,   345,     0,     0,    36,     0,   179,   180,    39,
    1987        0,     0,     0,     0,     0,     0,    40,    41,     0,   210,
    1988        0,     0,   720,   720,     0,     0,     0,     0,     0,     0,
    1989        0,     0,     0,   210,   721,     0,   596,   218,     0,     0,
    1990        0,   690,    75,   405,   721,     0,     0,     0,     0,   423,
    1991        0,   692,     0,     0,   716,   716,     0,   345,   345,   721,
    1992        0,     0,     0,     0,     0,     0,  1498,     0,  1502,   646,
    1993      901,     0,     0,    75,   904,     0,     0,  1194,     0,     0,
    1994        0,     0,     0,     0,   720,   720,     0,     0,     8,     9,
    1995       10,    11,    12,     0,     0,     0,     0,     0,     0,     0,
    1996        0,     0,  1531,    72,  1533,     0,     0,   407,   219,     8,
    1997        9,    10,    11,    12,     0,    30,   716,   716,   348,     0,
    1998        0,     0,   629,    72,     0,   210,     0,     0,     0,     0,
    1999        0,    72,     0,     0,     0,     0,    30,     0,     0,     0,
    2000      343,     0,     0,    33,     0,     0,     0,  1562,    36,  1563,
    2001      179,   180,    39,     0,     0,     0,   209,   348,     0,    40,
    2002       41,     0,  1570,  1571,    33,     0,     0,     0,     0,    36,
    2003        0,     0,  1049,    39,     0,   348,     0,    72,     0,   730,
    2004       40,    41,     0,     0,  1525,     0,   405,     0,     0,     0,
    2005        0,     0,     0,     0,  1526,   350,     0,     0,   942,    54,
    2006      943,     0,   121,   124,   125,    42,   926,   946,   947,     0,
    2007        0,     0,   952,     0,     0,   144,     0,     0,   348,     0,
    2008      577,     0,  1292,   926,   957,     0,     0,     0,  1323,   961,
    2009        0,     0,     0,     0,     0,     0,     0,     0,     0,   255,
    2010      343,     0,     0,     0,     0,     0,     0,    63,     0,     0,
    2011        0,     0,     0,     0,   989,     0,   721,   721,     0,   720,
    2012      716,     0,   730,     0,     0,     0,   114,   720,   720,   720,
    2013        0,     0,     0,   250,     0,   251,     0,  1291,     0,     0,
    2014        0,     0,   348,     0,     0,     0,     0,     0,     0,    75,
    2015        0,   716,     0,   172,    75,     0,   926,   926,   594,   716,
    2016      716,   716,     0,     0,   343,     0,     0,     0,     0,     0,
    2017      345,   345,     0,     0,     0,   210,   720,     0,   721,   721,
    2018        0,     0,     0,     0,  1194,     0,     0,   348,   348,   348,
    2019        0,     0,     0,   407,     0,     0,     0,     0,   209,     0,
    2020        0,     0,     0,     0,     0,   348,     0,     0,   716,   343,
    2021      343,   343,     0,     0,   390,  1033,  1034,  1035,  1036,   114,
    2022     1038,     0,     0,   348,   409,   410,     0,   343,     0,   414,
    2023        0,   416,   417,     0,    72,     0,  1086,     0,     0,     0,
    2024      348,     0,    77,     0,     0,     0,     0,     0,   219,     0,
    2025     1092,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2026       17,    18,    19,    20,    21,    22,    23,    24,  -295,     0,
    2027     1148,     0,     0,    77,     0,     0,    72,     0,    30,   348,
    2028        0,     0,     0,     0,     0,     0,  1160,     0,     0,  1107,
    2029        0,     0,     0,     0,     0,     0,   209,   345,     0,     0,
    2030        0,   343,     0,     0,     0,     0,    33,     0,   220,     0,
    2031        0,     0,     0,     0,    75,   348,     0,  -295,     0,     0,
    2032        0,     0,  1324,     0,   114,     0,     0,     0,  1134,   350,
    2033        0,     0,     0,   172,    75,  1142,     0,     0,     0,  1146,
    2034        0,     0,    75,     0,  1150,     0,  1151,  1194,     0,     0,
    2035     1153,  1154,  1155,   721,  1194,  1158,   348,   210,     0,     0,
    2036        0,   721,   721,   721,  1170,     0,   348,  1231,   350,   348,
    2037        0,     0,     0,     0,   218,     0,   348,     0,     0,     0,
    2038        0,   348,  1185,  1186,     0,     0,   350,     0,    75,     0,
    2039        0,   343,     0,     0,     0,   351,     0,     0,   343,     0,
    2040        0,     0,     0,     0,     0,     0,  1194,     0,     0,     0,
    2041      721,     0,  1219,  1550,     0,  1221,     0,     0,     0,     0,
    2042        0,     0,     0,     0,     0,     0,     0,     0,     0,   350,
    2043        0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    2044        0,     0,     0,    72,     0,     8,     9,    10,    11,    12,
    2045        0,     0,     0,     0,  1236,   210,     0,     0,    30,     0,
    2046     1240,  1241,     0,     0,     0,    54,     0,     0,     0,     0,
    2047        0,  1251,    30,     0,     0,     0,  1255,     0,     0,  1259,
    2048        0,  1260,     0,     0,  1262,     0,    33,     0,     0,    77,
    2049        0,    36,     0,   350,    77,    39,     0,  1270,     0,     0,
    2050       33,     0,    40,    41,     0,    36,     0,   179,   180,    39,
    2051     1277,     0,  1279,  1280,  1281,  1282,    40,    41,     0,     0,
    2052        0,     0,     0,    84,     0,     0,   348,   736,  1289,     0,
    2053     1290,     0,    54,     0,   168,     0,     0,   737,   350,   350,
    2054      350,   181,     0,     0,     0,     0,     0,     0,   343,     0,
    2055        0,   182,     0,     0,    84,     0,   350,     0,     0,     0,
    2056        0,     0,     0,     0,     0,     0,  1319,  1320,     0,     0,
    2057        0,     0,     0,     0,   350,     0,     0,     0,   348,   348,
    2058        0,   348,   348,     0,     0,    75,     0,     0,   220,   221,
    2059        0,   350,     0,     0,     0,     0,     0,     0,     0,     0,
    2060        0,    72,     0,   343,   343,     0,     0,     0,     0,     0,
    2061        0,     0,   811,   812,     0,     0,  1355,  1356,     0,     0,
    2062        0,     0,     0,    54,     0,     0,  1366,    75,     0,     0,
    2063      350,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2064      348,   348,   846,     0,     0,   849,   850,     0,   853,     0,
    2065      855,   856,     0,     0,    77,   857,   858,     0,     0,     0,
    2066        0,     0,     0,     0,     0,     0,   350,     0,     0,   351,
    2067        0,     0,     0,     0,    77,     0,   358,     0,     0,  1400,
    2068        0,     0,    77,     0,     0,     8,     9,    10,    11,    12,
    2069        0,  1404,     0,  1405,  1406,  1407,     0,     0,     0,     0,
    2070        0,     0,     0,   348,     0,  1411,     0,   350,   351,     0,
    2071        0,     0,    30,     0,  1422,     0,     0,   350,     0,     0,
    2072      350,     0,     0,     0,     0,   219,   351,   350,    77,     0,
    2073        0,  1436,   350,     0,     0,     0,     0,     0,   933,   934,
    2074       33,     0,     0,     0,   936,    36,   218,   179,   180,    39,
    2075        0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
    2076        0,     0,     0,     0,     0,     0,     0,    54,    54,   351,
    2077       84,    72,     0,     0,     0,    84,     0,     0,     0,     0,
    2078        0,   261,     0,     0,   348,     0,   348,     0,  1484,  1485,
    2079        0,   262,     0,    54,    75,     0,     0,     0,     0,     0,
    2080        0,  1490,     0,     0,     0,     0,     0,     0,  1490,     0,
    2081        0,     0,    54,     0,     0,   348,     0,     0,     0,     0,
    2082        0,     0,     0,   348,   348,   348,     0,     0,     0,     0,
    2083        0,     0,     0,   351,   348,   348,     0,     0,     0,     0,
    2084     1524,     0,     0,     0,  1530,     0,     0,     0,    72,     0,
    2085        0,     0,     0,     0,     0,     0,   343,   343,     0,     0,
    2086        0,     0,     0,     0,     0,    54,     0,     0,     0,   221,
    2087       54,     0,   348,  1552,     0,  1553,     0,   350,   351,   351,
    2088      351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2089        0,     0,     0,     0,     0,     0,   351,     0,     0,     0,
    2090        0,     0,     0,  1568,  1569,    54,     0,     0,     0,     0,
    2091        0,  1572,  1573,     0,   351,     0,     0,     0,     0,     0,
    2092        0,     0,     0,     0,     0,    77,     0,     0,     0,   350,
    2093      350,   351,   350,   350,     0,    84,     0,     0,     0,     0,
     2167     279,    30,   280,     0,     0,     0,     0,   208,     0,     0,
     2168       0,     0,     0,   686,     0,     0,     0,     0,     0,     0,
     2169       0,     0,     0,     0,   692,     0,     0,     0,   281,    33,
     2170       0,     0,   458,   208,   282,     0,     0,     0,   283,     0,
     2171       0,   284,   285,   286,   287,    40,    41,   728,   288,   289,
     2172       0,     0,     0,   731,     0,     0,   290,     0,   468,     0,
     2173     208,     0,     0,     0,     0,     0,     0,   123,     0,     0,
     2174       0,   291,     0,   375,   162,     0,     0,     0,     0,     0,
     2175     293,   821,   295,   296,   297,   298,     0,     0,     0,   365,
     2176       0,     0,   208,     0,   767,     0,     0,     0,     0,     0,
     2177       0,     0,     0,   208,     0,     0,     0,     0,     0,     0,
     2178     782,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2179       0,     0,     0,     0,   602,     0,  1225,     0,     0,  1169,
     2180       0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     2181       0,     0,     0,     0,     0,   365,   365,   809,     0,     0,
     2182       0,     0,     0,     0,     0,   318,   819,     0,   279,    30,
     2183     280,     0,     0,   822,     0,   342,     0,     0,   829,     0,
     2184       0,     0,     0,     0,     0,     0,     0,   378,   378,   844,
     2185       0,     0,     0,     0,   208,     0,   281,    33,     0,     0,
     2186       0,     0,   282,     0,     0,     0,   283,     0,     0,   284,
     2187     285,   286,   287,    40,    41,   458,   288,   289,     0,     0,
     2188       0,     0,     0,     0,   290,     0,     0,     0,     0,     0,
     2189     884,     0,     0,     0,     0,     0,     0,     0,     0,   291,
     2190       0,   375,     0,     0,     0,     0,     0,     0,   293,  1170,
     2191     295,   296,   297,   298,     0,     0,     0,     0,   318,  1312,
     2192       0,     0,     0,     0,     0,   829,     0,   338,   360,     0,
     2193       0,     0,     0,   736,     0,     0,     0,     0,     0,     0,
     2194     208,     0,     0,   482,     8,     9,    10,    11,    12,    13,
     2195      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2196      24,   410,     0,    25,    26,    27,     0,     0,   410,     0,
     2197       0,    30,     0,     0,     0,   215,     0,     0,     0,     0,
     2198     248,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2199     962,   963,     0,     0,     0,     0,     0,     0,     0,    33,
     2200       0,     0,     0,   979,    36,     0,    37,    38,    39,     0,
     2201       0,     0,     0,   736,     0,    40,    41,     0,     0,     0,
     2202     994,     0,   995,     0,     0,     0,   999,     0,     0,     0,
     2203       0,     0,     0,     0,     0,   208,     0,     0,     0,     0,
     2204     410,    42,     0,    43,     0,     0,     0,     0,     0,     0,
     2205       0,    44,     0,     0,     0,     0,     0,     0,   378,     0,
     2206       0,   365,   365,     0,     0,     0,     0,     0,     0,     0,
     2207     215,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2208       0,   279,     0,   280,     0,     0,     0,     0,     0,     0,
     2209       0,     0,  1032,     0,     0,   410,     0,     0,     0,  1033,
     2210       0,     0,     0,   410,   585,     0,   410,   588,     0,   281,
     2211       0,     0,  1035,     0,  1036,   645,   360,   136,   137,   283,
     2212     618,     0,   284,   646,   286,   287,    40,    41,  1048,   288,
     2213     289,     0,     0,     0,     0,  1052,     0,   290,     0,   636,
     2214       0,     0,   338,     0,     0,     0,     0,  1090,     0,     0,
     2215    1091,     0,   291,     0,   647,     0,   648,   376,     0,     0,
     2216     730,   293,   377,   295,   296,   297,   298,     0,   594,   410,
     2217       0,     0,     0,   410,     0,     0,     0,     0,     0,     0,
     2218       0,     0,     0,     0,     0,     0,   365,     0,     0,     0,
     2219       0,     0,     0,     0,     0,     0,     0,     0,   763,     0,
     2220       0,     0,     0,     0,   360,     0,     0,     0,     0,     0,
     2221       0,   776,     0,     0,     0,     0,     0,     0,   763,     0,
     2222       0,   763,     0,     0,     0,     0,     0,   410,     0,     0,
     2223       0,     0,   786,   787,     0,     0,     0,     0,     0,     0,
     2224       0,     0,     0,     0,   458,     0,   458,     0,     0,     0,
     2225       0,     0,     0,     0,   808,     0,  1153,     0,   410,     0,
     2226       0,   360,     0,     0,   817,     0,     0,     0,     0,     0,
     2227       0,   342,     0,     0,     0,     0,   776,     0,     0,     0,
     2228       0,   458,     0,   458,     0,     0,     0,     0,     0,     0,
     2229       0,   208,     0,     0,     0,     0,     0,     0,     0,     0,
     2230     410,     0,     0,   338,   360,     0,     0,     0,     0,     0,
     2231       0,   162,   529,     0,     0,     0,     0,     0,     0,  1218,
     2232       0,     0,     0,     0,     0,     0,   883,     0,     0,     0,
     2233       0,     0,     0,     0,   378,     0,     0,     0,     0,     0,
     2234       0,     0,     0,     0,     0,     0,     0,     0,  1231,   410,
     2235     410,     0,     0,  1233,     0,     0,     0,     0,     0,     0,
     2236       0,  1237,     0,     0,     0,     0,     0,     0,   824,   360,
     2237       0,   360,     0,     0,   342,     0,     0,     0,     0,     0,
     2238     618,     0,   618,   618,     0,     0,     0,     0,     0,   618,
     2239       0,  1262,     0,     0,     0,     0,     0,     0,     0,   863,
     2240     360,     0,     0,  1270,     0,   360,  1271,     0,  1272,     0,
     2241       0,     0,     0,     0,   360,   360,   360,     0,     0,     0,
     2242       0,     0,  1281,  1282,     0,     0,     0,     0,     0,     0,
     2243       0,     0,   360,     0,     0,     0,     0,   410,   906,     0,
     2244       0,   410,   909,     0,  1295,     0,     0,     0,   911,   776,
     2245       0,   984,     0,     0,     0,     0,     0,   989,     0,     0,
     2246       0,     0,     0,     0,   998,     0,   338,   360,   410,     0,
     2247     410,  1318,     0,     0,   410,     0,     8,     9,    10,    11,
     2248      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2249      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2250       0,     0,     0,    30,   450,     0,   360,   618,  1015,  1016,
     2251       0,   342,     0,     0,     0,     0,     0,     0,     0,     0,
     2252       0,     0,     0,     0,     0,     0,   342,     0,     0,     0,
     2253       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
     2254       0,   338,   360,     0,     0,     0,   410,   410,     0,     0,
    20942255       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2095      358,     0,    75,     0,     0,    84,     0,     0,     0,     0,
    2096        0,   348,     0,    84,     0,     0,     0,    77,     0,     0,
    2097      351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2098        0,     0,     0,   343,     0,     0,     0,     0,     0,   358,
    2099        0,   350,   350,     0,     0,     0,     0,     0,     0,     0,
    2100        0,     0,     0,     0,     0,     0,   351,   358,     0,    84,
    2101       54,    72,     0,     0,     0,     0,     0,     0,    72,     0,
     2256       0,     0,     0,     0,     0,     0,  1046,  1388,     0,  1389,
     2257     378,     0,     0,     0,     0,   451,     0,     0,     0,   706,
     2258       0,     0,  1398,   109,  1399,     0,     0,     0,   410,     0,
     2259       0,     0,     0,     0,     0,     0,     0,   360,     0,     0,
     2260       0,     0,  1406,   824,   360,     0,     0,     0,   618,     0,
     2261     618,     0,     0,     0,   511,   512,   515,     0,  1424,  1426,
     2262     618,     0,     0,   518,   519,     0,     0,     0,   512,   512,
     2263    1432,     0,     0,  1237,     0,     0,     0,     0,     0,     0,
     2264     512,     0,     0,     0,     0,     0,   318,     0,     0,     0,
     2265       0,     0,     0,     0,     0,  1455,     0,     0,     0,     0,
     2266       0,  1131,  1132,     0,  1462,     0,     0,  1464,   378,  1466,
     2267    1468,  1470,     0,     0,   989,     0,   512,  1141,     0,   763,
    21022268       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2103        0,     0,     0,    54,     0,     0,     0,     0,     0,     0,
    2104       54,     0,     0,     0,     0,     0,     0,   351,     0,     0,
    2105      358,     0,     0,     0,   350,     0,     0,   351,     0,     0,
    2106      351,     0,     0,     0,     0,   220,     0,   351,     0,     0,
    2107       72,     0,   351,     0,     0,     0,     0,     0,     0,     0,
    2108        0,     0,     0,     0,     0,     0,     0,     0,   162,     0,
    2109        0,     0,    54,     0,     0,     0,     0,   219,     0,     0,
    2110        0,     0,     0,     0,     0,     0,     0,   214,     0,     0,
    2111        0,     0,     0,     0,   358,     0,     0,     0,     0,     0,
    2112        0,     0,    75,     0,     0,     0,     0,     0,  1227,     0,
    2113        0,     0,     0,     0,    77,   350,     0,   350,     0,     0,
     2269       0,     0,     0,   824,     0,     0,     0,     0,     0,  1157,
     2270       0,   410,     0,     0,     0,     0,     0,   410,     0,     0,
     2271    1172,  1501,   512,  1503,     0,   410,  1237,     0,     0,     0,
     2272       0,     0,     0,     0,     0,     0,     0,     0,   618,   618,
     2273       0,  1515,   378,     0,  1190,     0,     0,     0,     0,     0,
     2274       0,     0,     0,     0,     0,     0,     0,     0,     0,   989,
     2275     989,     0,     0,     0,   360,     0,     0,     0,     0,     0,
     2276     410,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2277    1222,     0,     0,     0,     0,     0,     0,     0,     0,   410,
     2278    1150,   279,     0,   280,     0,     0,     0,     0,     0,   360,
     2279       0,     0,     0,     0,     0,   410,  1162,     0,   618,   618,
     2280    1167,     0,     0,     0,     0,     0,     0,     0,     0,   281,
     2281     360,   360,     0,     0,     0,   282,   989,     0,     0,   283,
     2282       0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
     2283     289,     0,     0,     0,     0,   883,     0,   290,     0,     0,
    21142284       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2115        0,     0,     0,   162,     0,     0,     0,     0,   268,   358,
    2116      358,   358,     0,     0,     0,     0,   350,     0,     0,     0,
    2117        0,     0,     0,     0,   350,   350,   350,   358,     0,     0,
    2118        0,     0,     0,     0,     0,   350,   350,   162,     0,     0,
    2119        0,     0,     0,     0,     0,   358,     0,   364,     0,    75,
    2120        0,   370,     0,     0,     0,     0,    84,     0,     0,     0,
    2121        0,     0,   358,     0,     0,     0,     0,   351,     0,     0,
    2122        0,     0,     0,   350,     0,     0,     0,     0,     0,     0,
    2123        0,     0,     0,   123,   123,   123,     0,     0,     0,     0,
    2124      278,     0,   279,     0,     0,     0,     0,     0,    84,   162,
    2125        0,   358,     0,  1314,     0,     0,     0,     0,     0,     0,
    2126        0,   214,     0,     0,     0,     0,     0,     0,   280,   351,
    2127      351,     0,   351,   351,   281,     0,     0,     0,   282,   162,
    2128      456,   283,   284,   285,   286,    40,    41,   358,   287,   288,
    2129        0,     0,    77,     0,     0,     0,   289,     0,     0,     0,
    2130        0,     0,     0,   370,   123,     0,   123,     0,     0,     0,
    2131      508,   162,   350,     0,     0,     0,     0,     0,     0,   292,
    2132      376,   294,   295,   296,   297,     0,     0,     0,   358,     0,
    2133      271,   351,   351,     0,   456,     0,     0,   162,   358,     0,
    2134        0,   358,     0,     0,     0,     0,   221,     0,   358,     0,
    2135        0,     0,     0,   358,     0,     0,     0,     0,     0,     0,
    2136        0,     0,    75,   278,     0,   279,     0,     0,     0,    75,
     2285    1273,  1274,   291,     0,   375,     0,     0,     0,     0,     0,
     2286     806,   293,   377,   295,   296,   297,   298,     0,     0,     0,
     2287       0,   824,   410,  1230,     0,     0,     0,     0,     0,     0,
     2288       0,     0,     0,     0,   618,     0,     0,     0,   512,   512,
     2289     512,   512,   512,   512,   512,   512,   512,   512,   512,   512,
     2290     512,   512,   512,   512,   512,   512,     0,     0,     0,     0,
    21372291       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2138        0,     0,     0,     0,   599,   123,     0,     0,     0,   623,
    2139        0,   280,     0,   123,   351,   123,   123,   281,     0,     0,
    2140      123,   282,   123,   123,   283,   284,   285,   286,    40,    41,
    2141        0,   287,   288,     0,     0,    84,     0,     0,     0,   289,
    2142        0,    75,     0,     0,     0,     0,     0,     0,     0,     0,
    2143        0,     0,     0,   290,     0,   374,     0,   220,   375,     0,
    2144        0,     0,   292,   376,   294,   295,   296,   297,     0,   207,
    2145        0,     0,     0,     0,     0,     0,     0,     0,     0,   227,
    2146        0,   231,    77,   233,   162,   162,     0,     0,     0,     0,
    2147      242,   364,   123,     0,     0,   351,     0,   351,     0,     0,
     2292       0,     0,     0,     0,     0,     0,     0,     0,   360,     0,
     2293     989,   512,  -514,     0,     0,     1,     2,     3,     4,     5,
     2294       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2295      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2296       0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
     2297      31,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2298      17,    18,    19,    20,    21,    22,    23,    24,   338,     0,
     2299       0,  1381,     0,   763,    32,     0,     0,    33,    30,    34,
     2300       0,    35,    36,     0,    37,    38,    39,     0,   360,     0,
     2301       0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
     2302       0,     0,     0,     0,     0,     0,    33,     0,     0,   512,
     2303       0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
     2304       0,    43,     0,     0,     0,     0,     0,     0,     0,    44,
     2305       0,   512,     0,     0,     0,     0,   360,   360,     0,     0,
     2306       0,     0,     0,     0,   512,     0,     0,     0,     0,     0,
     2307       0,     0,     0,     0,     0,     0,     0,     0,     0,  1441,
    21482308       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2149        0,     0,   456,     0,     0,   456,     0,     0,   358,     0,
    2150      207,   456,   231,   233,   242,     0,   351,     0,     0,     0,
    2151        0,     0,     0,     0,   351,   351,   351,  1022,     0,     0,
    2152        8,     9,    10,    11,    12,   351,   351,     0,   733,     0,
    2153        0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
    2154      162,     0,     0,   207,     0,     0,   278,    30,   279,     0,
    2155      358,   358,   456,   358,   358,     0,   456,     0,   162,   456,
    2156        0,     0,     0,   351,     0,     0,     0,     0,     0,     0,
    2157        0,   364,     0,    84,   280,    33,     0,     0,     0,     0,
    2158      281,     0,     0,     0,   282,     0,     0,   283,   284,   285,
    2159      286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    2160        0,     0,   289,   207,     0,   231,   233,   242,     0,     0,
    2161        0,     0,   358,   358,     0,     0,   290,     0,   374,     0,
    2162        0,     0,     0,   162,     0,   292,   817,   294,   295,   296,
    2163      297,     0,     0,     0,     0,   364,     0,   599,     0,     0,
    2164      827,   207,     0,     0,     0,   207,     0,     0,     0,     0,
    2165        0,     0,   351,     0,     0,     0,     0,     0,     0,     0,
    2166        0,   499,     0,     0,     0,     0,   599,     0,     0,     0,
    2167        0,   599,     0,     0,     0,   358,     0,     0,     0,     0,
    2168      364,   364,   364,     0,     0,     0,     0,     0,     0,     0,
    2169        0,     0,     0,     0,     0,     0,     0,     0,   364,     0,
    2170        0,     0,    77,     0,     0,     0,     0,     0,     0,    77,
    2171      207,     0,     0,     0,     0,     0,     0,     0,   221,     0,
    21722309       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2173        0,   207,     0,   733,     0,     0,   231,   233,     0,     0,
    2174        0,     0,     0,    84,   242,     0,     0,     0,     0,     0,
    2175        0,     0,     0,     0,   456,     0,   358,     0,   358,     0,
    2176        0,    77,     0,     0,     0,     0,     0,     0,     0,   153,
    2177        0,     0,   364,     0,   951,     0,     0,     0,     0,     0,
    2178        0,     0,     0,   123,   123,     0,   207,   358,     0,     0,
    2179        0,     0,     0,     0,     0,   358,   358,   358,     0,     0,
    2180        0,     0,     0,     0,   207,     0,   358,   358,   733,   207,
    2181        0,   207,     0,   123,     0,   247,   123,   123,     0,   123,
    2182       84,   123,   123,     0,     0,   252,   123,   123,   207,     0,
    2183        0,   207,   207,     0,     0,     0,     0,     0,     0,     0,
    2184        0,     0,     0,   278,   358,   279,     0,   207,     0,     0,
    2185        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2186        0,   207,   364,     0,     0,     0,   623,     0,   207,   364,
    2187        0,   280,     0,     0,     0,     0,     0,   281,     0,     0,
    2188      153,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2189        0,   287,   288,   380,     0,     0,     0,     0,     0,   289,
    2190        0,     0,     0,     0,   123,     0,     0,     0,     0,   123,
    2191      123,     0,     0,   290,     0,   123,   412,     0,     0,     0,
    2192        0,     0,   292,   376,   294,   295,   296,   297,     0,     0,
    2193      427,     0,     0,   358,     0,     0,     0,     0,     0,   432,
    2194        0,     0,     0,     0,     0,     0,     0,     0,     0,   440,
    2195        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2196        0,     0,   456,     0,     0,     0,     0,     0,     0,     0,
    2197        0,     0,     0,     0,   466,     0,     0,     0,     0,   476,
    2198        0,     0,   207,    84,     0,     0,     0,     0,     0,     0,
    2199       84,     0,   484,     0,     0,     0,     0,     0,   494,     0,
    2200      498,     0,     0,     0,   162,     0,     0,     0,     0,     0,
    2201      207,     0,     0,     0,     0,   207,     0,   527,     0,   364,
    2202        0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2203       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2204       24,  -295,    84,    25,    26,    27,     0,     0,   317,     0,
    2205        0,    30,     0,   599,     0,     0,     0,     0,   341,     0,
    2206      586,     0,     0,     0,     0,   591,     0,     0,     0,     0,
    2207      377,     0,     0,     0,   364,   364,     0,     0,     0,    33,
    2208        0,     0,     0,     0,    36,     0,   332,   333,    39,     0,
    2209     -295,     0,     0,   637,     0,    40,    41,   638,   639,     0,
    2210      641,     0,   207,     0,     0,     0,   652,   653,     0,   654,
    2211      655,     0,   656,     0,   657,     0,   207,     0,     0,     0,
    2212      636,     0,   334,     0,     0,     0,     0,     0,     0,     0,
    2213      627,   586,     0,     0,     0,     0,   499,     0,   456,   672,
    2214      317,     0,     0,  1168,     0,     0,     8,     9,    10,    11,
    2215       12,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2216        0,     0,     0,     0,   683,   480,     0,     0,     0,     0,
    2217        0,     0,   278,    30,   279,   689,     8,     9,    10,    11,
    2218       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2219       22,    23,    24,     0,     0,   207,   733,     0,   725,     0,
    2220      280,    33,     0,    30,   728,     0,   281,     0,   207,   466,
    2221      282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    2222      287,   288,     0,     0,     0,     0,     0,   207,   289,     0,
    2223        0,    33,     0,     0,     0,   337,   359,     0,   214,     0,
    2224        0,     0,   290,     0,   374,   764,     0,     0,     0,     0,
    2225        0,   292,  1169,   294,   295,   296,   297,     0,     0,     0,
    2226        0,   779,     0,     0,     0,     0,     0,     0,   408,     0,
    2227        0,     0,     0,     0,     0,   408,     0,     0,     0,   733,
    2228      377,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2229        0,     0,     0,     0,     0,     0,     0,   805,     0,   123,
    2230        0,     0,     0,     0,     0,     0,   815,   278,     0,   279,
    2231        0,     0,     0,   818,   207,     0,     0,     0,   825,     0,
    2232        0,     0,     0,     0,     0,     0,     0,   364,   364,   840,
    2233        0,     0,     0,     0,     0,   280,   214,     0,     0,     0,
    2234      207,   281,     0,     0,     0,   282,     0,   408,   283,   284,
    2235      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2236        0,     0,     0,   289,     0,     0,     0,   207,     0,     0,
    2237      880,     0,     0,     0,     0,     0,     0,   290,     0,   374,
    2238        0,   727,     0,     0,     0,   802,   292,   376,   294,   295,
    2239      296,   297,     0,     0,     0,     0,     0,     0,   207,     0,
    2240        0,     0,   408,     0,     0,   825,     0,     0,     0,   207,
    2241      408,   582,     0,   408,   585,     0,     0,     0,     0,   760,
    2242        0,     0,     0,   359,   123,     0,     0,   615,     0,     0,
    2243        0,     0,   773,     0,     0,     0,     0,     0,     0,   760,
    2244        0,     0,     0,     0,     0,     0,   633,     0,     0,   337,
    2245        0,     0,   782,   783,   364,     0,     0,     0,     0,     0,
    2246      247,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2247      958,   959,     0,     0,   804,   408,     0,     0,     0,   408,
    2248        0,     0,     0,   975,   813,     0,     0,     0,     0,     0,
    2249        0,   341,     0,     0,   207,     0,   773,     0,     0,     0,
    2250      990,     0,   991,     0,     0,     0,   995,     0,     0,     0,
    2251      359,     0,     0,   456,     0,   456,     0,     0,     0,     0,
    2252        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2253        0,     0,     0,   408,     0,     0,     0,     0,     0,     0,
    2254        0,     0,     0,     0,     0,     0,   879,     0,     0,   456,
    2255        0,   456,     0,     0,   377,     0,     0,     0,     0,     0,
    2256        0,     0,     0,     0,   408,     0,     0,   359,     0,     0,
    2257        0,  1027,     0,     0,     0,     0,     0,     0,  1028,   162,
    2258      207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2259        0,  1030,     0,  1031,   341,     0,     0,     0,     0,     0,
    2260        0,     0,     0,     0,     0,     0,   408,  1043,     0,   337,
    2261      359,     0,     0,     0,  1047,     0,     0,     0,     0,     0,
    2262        0,     0,     0,     0,     0,     0,  1089,     0,     0,  1090,
    2263        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2264        0,     0,     0,     0,     0,     0,     0,   591,     0,     0,
    2265        0,     0,     0,     0,   408,   408,     0,     0,     0,     0,
    2266        0,     0,     0,     0,     0,     0,     0,     0,     0,   773,
    2267        0,   980,     0,   820,   359,     0,   359,   985,   207,     0,
    2268        0,     0,     0,     0,   994,   615,     0,   615,   615,     0,
    2269        0,     0,     0,     0,   615,     0,     0,   509,   510,   513,
    2270        0,     0,     0,     0,   859,   359,   516,   517,     0,     0,
    2271      359,   510,   510,     0,     0,     0,     0,     0,     0,   359,
    2272      359,   359,     0,   510,     0,     0,     0,  1010,  1011,     0,
    2273      341,     0,     0,     0,  1152,     0,     0,   359,     0,     0,
    2274        0,     0,   408,   902,     0,   341,   408,   905,     0,     0,
    2275        0,     0,     0,   907,     0,     0,     0,     0,     0,   510,
    2276        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2277        0,   337,   359,   408,     0,   408,     0,     0,     0,   408,
    2278        0,     0,     0,     0,     0,  1041,     0,     0,     0,   377,
    2279        0,   527,     0,     0,     0,   510,     0,     0,     0,     0,
    2280     1220,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2281        0,   359,   615,     8,     9,    10,    11,    12,    13,    14,
    2282       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2283     1233,     0,    25,    26,    27,  1235,     0,     0,     0,     0,
    2284       30,   448,     0,  1239,     0,     0,   337,   359,     0,     0,
    2285        0,   408,   408,     0,     0,     0,     0,     0,     0,     0,
    2286        0,     0,     0,     0,     0,   317,     0,     0,    33,     0,
    2287        0,     0,     0,  1264,     0,    37,    38,     0,     0,     0,
    2288     1130,  1131,     0,     0,     0,  1272,     0,   377,  1273,     0,
    2289     1274,     0,   408,   985,     0,     0,  1140,     0,   760,     0,
    2290        0,   359,     0,     0,  1283,  1284,     0,   820,   359,     0,
    2291        0,   449,   615,     0,   615,   703,     0,  1156,     0,   109,
    2292        0,     0,     0,     0,   615,     0,  1297,     0,  1171,     0,
    2293        0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
    2294        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2295      377,     0,  1189,     0,     0,     0,  1321,     0,     0,     0,
    2296        0,     0,     0,     0,     0,     0,     0,   985,   985,   510,
    2297      510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
    2298      510,   510,   510,   510,   510,   510,   510,     0,     0,     0,
    2299        0,     0,  1224,     0,     0,     0,     0,   820,     0,     0,
    2300        0,     0,     0,     0,     0,   408,     0,     0,     0,     0,
    2301        0,   408,   510,     0,     0,     0,     0,     0,     0,   408,
    2302        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2303        0,     0,   615,   615,     0,     0,     0,     0,   985,     0,
    2304        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2305        0,     0,     0,  1392,     0,  1393,     0,   879,   359,     0,
    2306        0,     0,     0,     0,   408,     0,     0,     0,  1402,     0,
    2307     1403,     0,  1275,  1276,     0,     0,     0,     0,     0,     0,
    2308        0,     0,   408,  1149,     0,     0,     0,     0,  1410,     0,
    2309        0,     0,   359,     0,     0,     0,     0,     0,   408,  1161,
    2310        0,   615,   615,  1166,  1428,  1430,     0,     0,     0,     0,
    2311      510,     0,     0,   359,   359,     0,     0,  1437,     0,     0,
    2312     1239,     0,   760,     0,     0,   278,     0,   279,     0,     0,
    2313        0,     0,   510,     0,     0,     0,     0,     0,     0,     0,
    2314        0,     0,  1460,     0,     0,   510,     0,     0,     0,     0,
    2315        0,  1467,     0,   280,  1469,   985,  1471,  1473,  1475,   281,
    2316        0,     0,     0,   282,     0,     0,   283,   284,   285,   286,
    2317       40,    41,     0,   287,   288,     0,     0,     0,   820,   408,
    2318     1232,   289,     0,     0,     0,     0,     0,     0,     0,     0,
    2319      510,   615,     0,     0,     0,   290,     0,   374,     0,  1505,
    2320        0,  1507,   772,  1239,   292,   376,   294,   295,   296,   297,
    2321        0,     0,     0,     0,     0,     0,  1384,     0,  1519,     0,
    2322        0,   510,     0,     0,     0,     0,     0,     0,     0,     0,
    2323        0,     0,     0,     0,     0,   359,   510,     0,     0,     0,
    2324        0,     0,     0,     0,     0,     0,     1,     2,   202,     4,
     2310       0,     0,     0,     0,     0,     0,     0,     0,     0,   512,
     2311       0,     0,     0,     0,     0,     0,     1,     2,   203,     4,
    23252312       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    23262313      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2327        0,     0,    25,    26,    27,    28,     0,     0,    29,   278,
    2328       30,  1050,  1051,     0,  1052,     0,     0,  1053,  1054,  1055,
    2329     1056,  1057,  1058,  1059,  1060,   337,     0,     0,  1061,     0,
    2330        0,     0,  1062,  1063,     0,    32,  1446,   280,    33,     0,
    2331       34,     0,    35,  1064,     0,    37,    38,   282,   359,     0,
    2332      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2333        0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
    2334        0,     0,     0,     0,     0,     0,     0,     0,     0,   290,
    2335        0,  1065,     0,     0,   167,   278,     0,   279,   292,   293,
    2336      294,   295,   296,   297,     0,     0,   359,   359,  1066,     0,
    2337        0,     0,  -128,     0,     0,     0,     0,     0,     0,     0,
    2338        0,     0,     0,   280,     0,     0,     0,   510,  1511,   642,
    2339        0,   136,   137,   282,     0,     0,   283,   643,   285,   286,
    2340       40,    41,     0,   287,   288,     0,     0,     0,     0,     0,
    2341        0,   289,     0,     0,     0,     0,   510,     0,     0,     0,
    2342        0,     0,     0,     0,     0,   290,     0,   644,   510,   645,
    2343      375,     0,     0,     0,   292,   376,   294,   295,   296,   297,
    2344      317,     0,     0,     0,     1,     2,   202,     4,     5,     6,
     2314       0,   512,    25,    26,    27,    28,     0,     0,    29,   279,
     2315      30,   280,     0,     0,     0,     0,   512,     0,     0,     0,
     2316       0,  1507,     0,     0,     0,     0,     0,     0,     0,     0,
     2317       0,     0,     0,     0,     0,     0,     0,   281,    33,     0,
     2318      34,   360,    35,   282,     0,    37,    38,   283,     0,     0,
     2319     284,   285,   286,   287,    40,    41,     0,   288,   289,     0,
     2320       0,     0,     0,     0,     0,   290,     0,     0,     0,     0,
     2321       0,     0,     0,   318,     0,     0,     0,     0,     0,     0,
     2322     291,     0,  1069,     0,     0,     0,     0,     0,     0,   293,
     2323     294,   295,   296,   297,   298,     0,     0,     0,     0,     0,
     2324       0,     0,     0,  -127,     0,     0,     0,     0,     0,     0,
     2325       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2326       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2327       0,   410,   471,     2,   203,     4,     5,     6,     7,     8,
     2328       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2329      19,    20,    21,    22,    23,    24,   410,   410,    25,    26,
     2330      27,     0,     0,     0,     0,     0,    30,   512,     0,     0,
     2331       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2332       0,   410,     0,     0,     0,     0,     0,     0,     0,     0,
     2333       0,     0,     0,     0,    33,     0,    34,   512,    35,     0,
     2334       0,    37,    38,     0,     0,     0,     0,     0,     0,   512,
     2335       1,     2,   203,     4,     5,     6,     7,     8,     9,    10,
     2336      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2337      21,    22,    23,    24,     0,     0,    25,    26,    27,    28,
     2338       0,    -3,    29,   279,    30,  1055,  1056,     0,  1057,     0,
     2339     512,  1058,  1059,  1060,  1061,  1062,  1063,  1064,  1065,     0,
     2340       0,     0,  1066,     0,     0,     0,  1067,  1068,     0,    32,
     2341       0,   281,    33,     0,    34,     0,    35,   645,     0,    37,
     2342      38,   283,     0,     0,   284,   285,   286,   287,    40,    41,
     2343       0,   288,   289,     0,     0,     0,     0,     0,     0,   290,
     2344       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2345       0,     0,     0,     0,   291,     0,  1069,     0,     0,   168,
     2346       0,     0,   512,   293,   294,   295,   296,   297,   298,     0,
     2347       0,     0,     0,  1070,     0,     0,     0,  -127,     0,     0,
     2348       1,     2,   203,     4,     5,     6,     7,     8,     9,    10,
     2349      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2350      21,    22,    23,    24,     0,   512,    25,    26,    27,    28,
     2351       0,     0,    29,   279,    30,   280,     0,     0,     0,   512,
     2352     512,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2353      17,    18,    19,    20,    21,    22,    23,    24,  -292,     0,
     2354       0,   281,    33,     0,    34,     0,    35,   282,    30,    37,
     2355      38,   283,     0,     0,   284,   285,   286,   287,    40,    41,
     2356       0,   288,   289,     0,     0,     0,     0,     0,     0,   290,
     2357       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
     2358       0,     0,     0,     0,   291,     0,    43,  -292,     0,     0,
     2359       0,     0,     0,   293,   294,   295,   296,   297,   298,     2,
     2360     203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2361      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2362      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2363       0,   279,    30,   280,     8,     9,    10,    11,    12,    13,
     2364      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2365      24,  -292,     0,    25,    26,    27,     0,     0,     0,   281,
     2366      33,    30,    34,     0,    35,   282,     0,    37,    38,   283,
     2367       0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
     2368     289,     0,     0,     0,     0,     0,     0,   290,     0,    33,
     2369       0,     0,     0,     0,    36,     0,   333,   334,    39,     0,
     2370    -292,     0,   291,     0,   340,    40,    41,     0,     0,   775,
     2371       0,   293,   341,   295,   296,   297,   298,     0,     0,     0,
     2372       0,     0,     0,     0,     0,     0,     0,     0,   512,     0,
     2373       0,   639,     0,   335,     0,     0,     0,     0,     0,     0,
     2374       0,   630,     0,     0,     0,   512,     0,     2,   203,     4,
     2375       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2376      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2377       0,     0,    25,    26,    27,     0,     0,     0,     0,   279,
     2378      30,   280,     8,     9,    10,    11,    12,    13,    14,    15,
     2379      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2380       0,    25,    26,    27,     0,     0,     0,   281,    33,    30,
     2381      34,     0,    35,   282,     0,    37,    38,   283,   512,   512,
     2382     284,   285,   286,   287,    40,    41,     0,   288,   289,     0,
     2383       0,     0,     0,     0,     0,   290,     0,    33,     0,     0,
     2384       0,     0,     0,     0,   204,    38,     0,     0,     0,     0,
     2385     291,     0,   925,     0,     0,     0,     0,   775,     0,   293,
     2386     341,   295,   296,   297,   298,     2,   203,     4,     5,     6,
    23452387       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2346       17,    18,    19,    20,    21,    22,    23,    24,     0,   510,
    2347       25,    26,    27,    28,     0,     0,    29,   278,    30,   279,
    2348        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2349        0,     0,     0,   359,     0,     0,     0,     0,     0,     0,
    2350        0,     0,     0,     0,     0,   280,    33,     0,    34,     0,
    2351       35,   281,     0,    37,    38,   282,     0,     0,   283,   284,
    2352      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2353        0,     0,     0,   289,     0,     0,     0,     0,     0,     0,
    2354        0,     0,     0,     0,     0,   510,     0,   290,   278,  1065,
    2355      279,     0,     0,     0,     0,     0,   292,   293,   294,   295,
    2356      296,   297,     0,     0,     0,     0,     0,     0,     0,     0,
    2357     -128,     0,     0,     0,     0,     0,   280,     0,     0,     0,
    2358        0,     0,   281,   408,     0,     0,   282,     0,   510,   283,
    2359      284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
    2360        0,     0,   510,   510,   289,     0,     0,     0,   408,   408,
    2361        0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
    2362      374,     0,     0,   982,     0,     0,     0,   292,   376,   294,
    2363      295,   296,   297,   408,     1,     2,   202,     4,     5,     6,
    2364        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2365       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2366       25,    26,    27,    28,     0,     0,    29,   278,    30,   279,
    2367        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2368       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2369        0,    25,    26,    27,     0,   280,    33,     0,    34,    30,
    2370       35,   281,     0,    37,    38,   282,     0,     0,   283,   284,
    2371      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2372        0,     0,     0,   289,     0,     0,     0,    33,     0,     0,
    2373        0,     0,     0,     0,   203,    38,     0,   290,     0,    43,
    2374        0,     0,     0,     0,     0,     0,   292,   293,   294,   295,
    2375      296,   297,     0,     0,     2,   202,     4,     5,     6,     7,
     2388      17,    18,    19,    20,    21,    22,    23,    24,     0,   268,
     2389      25,    26,    27,     0,     0,     0,     0,   279,    30,   280,
    23762390       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2377       18,    19,    20,    21,    22,    23,    24,     0,   267,    25,
    2378       26,    27,     0,     0,     0,     0,   278,    30,   279,     0,
    2379        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2380       17,    18,    19,    20,    21,    22,    23,    24,  -296,     0,
    2381        0,     0,     0,     0,   280,    33,   510,    34,    30,    35,
    2382      281,     0,    37,    38,   282,     0,     0,   283,   284,   285,
    2383      286,    40,    41,   510,   287,   288,     0,     0,     0,     0,
    2384        0,     0,   289,     0,     0,     0,    33,     0,     0,     0,
    2385        0,     0,     0,     0,     0,     0,   290,  -296,   339,     0,
    2386        0,     0,     0,   772,     0,   292,   340,   294,   295,   296,
    2387      297,     2,   202,     4,     5,     6,     7,     8,     9,    10,
     2391      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2392      26,    27,     0,     0,     0,   281,    33,    30,    34,     0,
     2393      35,   282,     0,    37,    38,   283,     0,     0,   284,   285,
     2394     286,   287,    40,    41,     0,   288,   289,     0,     0,     0,
     2395       0,     0,     0,   290,     0,    33,     0,     0,     0,     0,
     2396       0,     0,   204,    38,     0,     0,     0,     0,   291,     0,
     2397     925,     0,     0,     0,     0,   775,     0,   293,   596,   295,
     2398     296,   297,   298,     2,   203,     4,     5,     6,     7,     8,
     2399       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2400      19,    20,    21,    22,    23,    24,     0,   625,    25,    26,
     2401      27,     0,     0,     0,     0,   279,    30,   280,     8,     9,
     2402      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2403      20,    21,    22,    23,    24,  -293,     0,     0,     0,     0,
     2404       0,     0,     0,   281,    33,    30,    34,     0,    35,   282,
     2405       0,    37,    38,   283,     0,     0,   284,   285,   286,   287,
     2406      40,    41,     0,   288,   289,     0,     0,     0,     0,     0,
     2407       0,   290,     0,    33,     0,     0,     0,     0,     0,     0,
     2408       0,     0,     0,     0,  -293,     0,   291,     0,   340,     0,
     2409       0,     0,     0,     0,     0,   293,   341,   295,   296,   297,
     2410     298,     2,   203,     4,     5,     6,     7,     8,     9,    10,
    23882411      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    23892412      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2390        0,     0,     0,   278,    30,   279,   510,   510,     8,     9,
    2391       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2392       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2393        0,   280,    33,     0,    34,    30,    35,   281,     0,    37,
    2394       38,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2395        0,   287,   288,     0,     0,     0,     0,     0,     0,   289,
    2396        0,     0,     0,    33,     0,     0,     0,     0,   108,     0,
    2397       37,    38,     0,   290,     0,   921,     0,     0,     0,     0,
    2398      772,     0,   292,   340,   294,   295,   296,   297,     2,   202,
    2399        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2400       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2401       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2402      278,    30,   279,     8,     9,    10,    11,    12,    13,    14,
    2403       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2404        0,     0,    25,    26,    27,     0,     0,     0,   280,    33,
    2405       30,    34,     0,    35,   281,     0,    37,    38,   282,     0,
    2406        0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    2407        0,     0,     0,     0,     0,     0,   289,     0,    33,     0,
    2408        0,     0,     0,     0,     0,   203,    38,     0,     0,     0,
    2409      290,     0,   921,     0,     0,     0,     0,   772,     0,   292,
    2410      593,   294,   295,   296,   297,     2,   202,     4,     5,     6,
    2411        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2412       17,    18,    19,    20,    21,    22,    23,    24,     0,   622,
    2413       25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
    2414        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2415       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2416       26,    27,   487,   488,   489,   280,    33,    30,    34,     0,
    2417       35,   281,     0,    37,    38,   282,     0,     0,   283,   284,
    2418      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2419        0,     0,     0,   289,     0,    33,     0,     0,     0,     0,
    2420        0,     0,    37,    38,     0,     0,     0,   290,     0,   339,
    2421        0,     0,     0,     0,     0,     0,   292,   340,   294,   295,
    2422      296,   297,     2,   202,     4,     5,     6,     7,     8,     9,
    2423       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2424       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2425        0,     0,     0,     0,   278,    30,   279,     8,     9,    10,
    2426       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2427       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2428        0,     0,   280,    33,    30,    34,     0,    35,   281,     0,
    2429       37,    38,   282,     0,     0,   283,   284,   285,   286,    40,
    2430       41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2431      289,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2432       38,     0,     0,     0,   290,     0,   921,     0,     0,     0,
    2433        0,     0,     0,   292,   340,   294,   295,   296,   297,     2,
    2434      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2413       0,     0,     0,   279,    30,   280,     8,     9,    10,    11,
     2414      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2415      22,    23,    24,     0,     0,    25,    26,    27,   489,   490,
     2416     491,   281,    33,    30,    34,     0,    35,   282,     0,    37,
     2417      38,   283,     0,     0,   284,   285,   286,   287,    40,    41,
     2418       0,   288,   289,     0,     0,     0,     0,     0,     0,   290,
     2419       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
     2420       0,     0,     0,     0,   291,     0,   925,     0,     0,     0,
     2421       0,     0,     0,   293,   341,   295,   296,   297,   298,     2,
     2422     203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    24352423      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    24362424      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2437        0,   278,    30,   279,     8,     9,    10,    11,    12,    13,
     2425       0,   279,    30,   280,     8,     9,    10,    11,    12,    13,
    24382426      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2439       24,     0,     0,    25,    26,    27,     0,     0,     0,   280,
    2440       33,    30,    34,     0,    35,   281,     0,   203,    38,   282,
    2441        0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
    2442      288,     0,     0,     0,     0,     0,     0,   289,     0,    33,
    2443        0,     0,     0,     0,     0,     0,   203,    38,     0,     0,
    2444        0,   290,     0,  1008,     0,     0,     0,     0,     0,     0,
    2445      292,  1009,   294,   295,   296,   297,     2,   202,     4,     5,
     2427      24,     0,     0,    25,    26,    27,     0,     0,     0,   281,
     2428      33,    30,    34,     0,    35,   282,     0,   204,    38,   283,
     2429       0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
     2430     289,     0,     0,     0,     0,     0,     0,   290,     0,    33,
     2431       0,     0,     0,     0,   108,     0,    37,    38,     0,     0,
     2432       0,     0,   291,     0,  1013,     0,     0,     0,     0,     0,
     2433       0,   293,  1014,   295,   296,   297,   298,     2,   203,     4,
     2434       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2435      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2436       0,     0,    25,    26,    27,     0,     0,     0,     0,   279,
     2437      30,   280,     8,     9,    10,    11,    12,    13,    14,    15,
     2438      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2439       0,    25,    26,    27,     0,     0,     0,   281,    33,    30,
     2440      34,     0,    35,   282,     0,   204,    38,   283,     0,     0,
     2441     284,   285,   286,   287,    40,    41,     0,   288,   289,     0,
     2442       0,     0,     0,     0,     0,   290,     0,    33,     0,     0,
     2443       0,     0,     0,     0,    37,    38,     0,     0,     0,     0,
     2444     291,     0,   375,     0,     0,     0,     0,     0,     0,   293,
     2445     377,   295,   296,   297,   298,     1,     2,     3,     4,     5,
    24462446       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    24472447      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2448        0,    25,    26,    27,     0,     0,     0,     0,   278,    30,
    2449      279,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2450        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2451        0,     0,     0,     0,     0,     0,   280,    33,     0,    34,
    2452        0,    35,   281,     0,   203,    38,   282,     0,     0,   283,
    2453      284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
    2454        0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
    2455        0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
    2456      374,     0,     0,     0,     0,     0,     0,   292,   376,   294,
    2457      295,   296,   297,  -515,     0,     0,     1,     2,     3,     4,
    2458        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2459       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2460        0,     0,    25,    26,    27,    28,     0,     0,    29,     0,
    2461       30,    31,     0,     0,     0,     0,     0,     0,     0,     0,
    2462        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2463        0,     0,     0,     0,     0,    32,     0,     0,    33,     0,
    2464       34,     0,    35,    36,     0,    37,    38,    39,     0,     0,
    2465        0,     0,     0,     0,    40,    41,     0,     0,     0,     0,
    2466        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2467        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
    2468        0,    43,     0,     0,     0,     0,     0,     0,     0,    44,
     2448       0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
     2449      31,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2450      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2451      25,    26,    27,     0,    32,     0,     0,    33,    30,    34,
     2452       0,    35,    36,     0,    37,    38,    39,     0,     0,     0,
     2453       0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
     2454       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
     2455       0,     0,     0,   204,    38,     0,     0,     0,     0,    42,
     2456       0,    43,     0,     0,     0,  -518,     0,     0,     0,    44,
    24692457       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
    24702458      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     
    24772465       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24782466       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2479        0,     0,     0,    42,     0,    43,     0,     0,     0,  -519,
    2480        0,     0,     0,    44,     1,     2,     3,     4,     5,     6,
    2481        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2482       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2483       25,    26,    27,    28,     0,     0,    29,     0,    30,    31,
     2467       0,     0,     0,     0,    42,     0,    43,     0,     0,     0,
     2468       0,     0,     0,     0,    44,   202,     2,   203,     4,     5,
     2469       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2470      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2471       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    24842472       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24852473       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2486        0,     0,     0,    32,     0,     0,    33,     0,    34,     0,
    2487       35,    36,     0,    37,    38,    39,     0,     0,     0,     0,
    2488        0,     0,    40,    41,     0,     0,     0,     0,     0,     0,
     2474       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2475       0,    35,    36,     0,   204,    38,    39,     0,     0,     0,
     2476       0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
    24892477       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2490        0,     0,     0,     0,     0,     0,     0,    42,     0,    43,
    2491        0,     0,     0,     0,     0,     0,     0,    44,   201,     2,
    2492      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2493       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2494       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2495        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
     2478       0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
     2479       0,   205,     0,     0,     0,     0,     0,     0,     0,   206,
     2480       1,     2,   203,     4,     5,     6,     7,     8,     9,    10,
     2481      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2482      21,    22,    23,    24,  -292,     0,    25,    26,    27,    28,
     2483       0,     0,    29,     0,    30,     0,     0,     0,     0,     0,
    24962484       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24972485       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2498       33,     0,    34,     0,    35,    36,     0,   203,    38,    39,
    2499        0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
     2486       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     2487      38,     0,     0,  -292,     0,     1,     2,   203,     4,     5,
     2488       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2489      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2490       0,    25,    26,    27,    28,     0,    43,    29,     0,    30,
     2491       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
    25002492       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2501        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2502        0,    42,     0,   204,     0,     0,     0,     0,     0,     0,
    2503        0,   205,     1,     2,   202,     4,     5,     6,     7,     8,
    2504        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2505       19,    20,    21,    22,    23,    24,  -295,     0,    25,    26,
    2506       27,    28,     0,     0,    29,     0,    30,     0,     0,     0,
    2507        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2508        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2509        0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
    2510        0,    37,    38,     0,     0,  -295,     1,     2,   202,     4,
    2511        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2512       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2513        0,     0,    25,    26,    27,    28,     0,    43,    29,     0,
    2514       30,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    2515        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2516        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2517       34,     0,    35,     0,     0,    37,    38,     0,   201,     2,
    2518      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2519       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2520       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2521        0,    43,    30,     0,     0,     0,     0,     0,     0,   109,
    2522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2523        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2524       33,     0,    34,     0,    35,     0,     0,   203,    38,     2,
    2525      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2526       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2527       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2528        0,     0,    30,   204,     0,     0,     0,     0,     0,     0,
    2529        0,   267,     0,     0,     0,     0,     0,     0,     0,     0,
    2530        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2531       33,     0,    34,     0,    35,    36,     0,   203,    38,    39,
    2532        0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
    2533        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2534        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2535        0,    42,     0,   204,     0,     0,     0,     0,     0,     0,
    2536        0,   205,     2,   202,     4,     5,     6,     7,     8,     9,
    2537       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2538       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2539        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    2540        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2541        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2542        0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
    2543       37,    38,     0,     0,     2,   202,     4,     5,     6,     7,
    2544        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2545       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2546       26,    27,     0,     0,     0,  -400,   679,    30,     0,     0,
    2547        0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
    2548        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2549        0,     0,     0,     0,     0,    33,     0,    34,     0,    35,
    2550        0,     0,    37,    38,     0,     0,     0,     0,     0,     0,
    2551        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2552        0,     0,     0,     0,  1363,     0,     0,     0,     0,     0,
    2553        0,     0,     0,     0,     0,     0,     0,     0,   679,     0,
    2554        0,     0,     0,     0,     0,     0,   627,     2,   202,     4,
     2493       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2494       0,    35,     0,     0,    37,    38,   202,     2,   203,     4,
    25552495       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25562496      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    25572497       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2558       30,     0,     0,     0,     0,     0,     8,     9,    10,    11,
    2559       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2560       22,    23,    24,  -295,     0,    25,    26,    27,    33,     0,
    2561       34,     0,    35,    30,     0,    37,    38,     0,     0,     0,
     2498      30,    43,     0,     0,     0,     0,     0,     0,     0,   109,
    25622499       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2563        0,     0,     0,     0,     0,     0,     0,  1365,     0,     0,
    2564        0,    33,     0,     0,     0,     0,    36,     0,   332,   333,
    2565       39,   679,  -295,     0,     0,     0,     0,    40,    41,   627,
    2566        2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    2567       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2568       22,    23,    24,     0,   334,    25,    26,    27,     0,     0,
    2569        0,     0,   109,    30,     0,     0,     0,     0,     0,     0,
     2500       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2501      34,     0,    35,     0,     0,   204,    38,     2,   203,     4,
     2502       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2503      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2504       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2505      30,     0,   205,     0,     0,     0,     0,     0,     0,     0,
     2506     268,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2507       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2508      34,     0,    35,    36,     0,   204,    38,    39,     0,     0,
     2509       0,     0,     0,     0,    40,    41,     0,     0,     0,     0,
    25702510       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25712511       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2572        0,    33,     0,    34,     0,    35,     0,     0,   203,    38,
    2573        2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    2574       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2575       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2576        0,     0,     0,    30,   266,     0,     0,     0,     0,     0,
    2577        0,     0,   622,     0,     0,     0,     0,     0,     0,     0,
     2512      42,     0,   205,     0,     0,     0,     0,     0,     0,     0,
     2513     206,     2,   203,     4,     5,     6,     7,     8,     9,    10,
     2514      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2515      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2516       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    25782517       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2579        0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
    2580        2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    2581       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2582       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2583        0,     0,     0,    30,   679,     0,     0,     0,     0,     0,
    2584        0,     0,   627,     0,     0,     0,     0,     0,     0,     0,
    25852518       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2586        0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
    2587        2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    2588       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2589       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2590        0,     0,     0,    30,   592,     0,     0,     0,     0,     0,
    2591        0,     0,   627,     0,     0,     0,     0,     0,     0,     0,
     2519       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     2520      38,     2,   203,     4,     5,     6,     7,     8,     9,    10,
     2521      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2522      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2523       0,     0,     0,     0,    30,  -397,   682,     0,     0,     0,
     2524       0,     0,     0,     0,   630,     0,     0,     0,     0,     0,
    25922525       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2593        0,    33,     0,    34,     0,    35,     0,     0,   203,    38,
     2526       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     2527      38,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2528       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2529       0,  1360,     0,     0,     0,     0,     0,     0,     0,     0,
     2530       0,     0,     0,     0,     0,     0,   682,     0,     0,     0,
     2531       0,     0,     0,     0,   630,     2,   203,     4,     5,     6,
     2532       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2533      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2534      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
     2535       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
     2536      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2537      24,     0,     0,    25,    26,    27,    33,     0,    34,     0,
     2538      35,    30,     0,    37,    38,     0,     0,     0,     0,     0,
     2539       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2540       0,     0,     0,     0,     0,  1362,     0,     0,     0,    33,
     2541       0,     0,     0,     0,    36,     0,   333,   334,    39,     0,
     2542     682,     0,     0,     0,     0,    40,    41,     0,   630,     2,
     2543     203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2544      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2545      23,    24,     0,   335,    25,    26,    27,     0,     0,     0,
     2546       0,   109,    30,     0,     0,     0,     0,     0,     0,     0,
     2547       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2548       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2549      33,     0,    34,     0,    35,     0,     0,   204,    38,     2,
     2550     203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2551      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2552      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2553       0,     0,    30,     0,   267,     0,     0,     0,     0,     0,
     2554       0,     0,   625,     0,     0,     0,     0,     0,     0,     0,
     2555       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2556      33,     0,    34,     0,    35,     0,     0,    37,    38,     2,
     2557     203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2558      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2559      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2560       0,     0,    30,     0,   682,     0,     0,     0,     0,     0,
     2561       0,     0,   630,     0,     0,     0,     0,     0,     0,     0,
     2562       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2563      33,     0,    34,     0,    35,     0,     0,    37,    38,     2,
     2564     203,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2565      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2566      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2567       0,     0,    30,     0,   595,     0,     0,     0,     0,     0,
     2568       0,     0,   630,     0,     0,     0,     0,     0,     0,     0,
     2569       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2570      33,     0,    34,     0,    35,     0,     0,   204,    38,     8,
     2571       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2572      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2573      27,     0,     0,     0,     0,   279,    30,   280,     0,     0,
     2574       0,     0,     0,     0,   205,     0,     0,     0,     0,     0,
     2575       0,     0,   268,     0,     0,     0,     0,     0,     0,     0,
     2576       0,     0,     0,   281,    33,     0,     0,     0,     0,   282,
     2577       0,    37,    38,   283,     0,     0,   284,   285,   286,   287,
     2578      40,    41,     0,   288,   289,     0,     0,     0,     0,     0,
     2579       0,   290,     0,     0,     0,     0,     0,     0,     0,     0,
     2580       0,     0,     0,     0,     0,     0,   291,     0,   521,     0,
     2581       0,   168,     0,     0,     0,   293,   294,   295,   296,   297,
     2582     298,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2583      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2584      25,    26,    27,     0,     0,     0,     0,   279,    30,   280,
     2585       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2586      17,    18,    19,    20,    21,    22,    23,    24,  -292,     0,
     2587      25,    26,    27,     0,     0,   281,    33,     0,    30,     0,
     2588       0,   282,     0,    37,    38,   283,     0,     0,   284,   285,
     2589     286,   287,    40,    41,     0,   288,   289,     0,     0,     0,
     2590       0,     0,     0,   290,     0,     0,    33,     0,     0,     0,
     2591       0,    36,     0,   333,   334,    39,     0,  -292,   291,     0,
     2592     595,    -3,    40,    41,     0,     0,     0,   293,   596,   295,
     2593     296,   297,   298,     8,     9,    10,    11,    12,    13,    14,
     2594      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2595     335,     0,    25,    26,    27,     0,     0,     0,   109,   279,
     2596      30,   280,     0,     8,     9,    10,    11,    12,    13,    14,
     2597      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2598    -292,     0,    25,    26,    27,     0,     0,   281,    33,     0,
     2599      30,     0,     0,   645,     0,    37,    38,   283,     0,     0,
     2600     284,   285,   286,   287,    40,    41,     0,   288,   289,     0,
     2601       0,     0,     0,     0,     0,   290,     0,     0,    33,     0,
     2602       0,     0,     0,     0,     0,    37,    38,     0,     0,  -292,
     2603     291,   -34,   760,     0,     0,     0,     0,     0,     0,   293,
     2604     294,   295,   296,   297,   298,     8,     9,    10,    11,    12,
     2605      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2606      23,    24,   335,     0,    25,    26,    27,     0,     0,     0,
     2607     109,   279,    30,   280,     0,     8,     9,    10,    11,    12,
     2608      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2609      23,    24,     0,     0,    25,    26,    27,     0,     0,   281,
     2610      33,     0,    30,     0,     0,   282,     0,    37,    38,   283,
     2611       0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
     2612     289,     0,     0,     0,     0,     0,     0,   290,     0,     0,
     2613      33,     0,     0,     0,     0,   108,     0,    37,    38,     0,
     2614       0,     0,   291,     0,   292,     0,     0,     0,     0,     0,
     2615       0,   293,   294,   295,   296,   297,   298,     8,     9,    10,
     2616      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2617      21,    22,    23,    24,    43,     0,    25,    26,    27,     0,
     2618       0,     0,   109,   279,    30,   280,     0,     8,     9,    10,
     2619      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2620      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2621       0,   281,    33,     0,    30,   450,     0,   282,     0,    37,
     2622      38,   283,     0,     0,   284,   285,   286,   287,    40,    41,
     2623       0,   288,   289,     0,     0,     0,     0,     0,     0,   290,
     2624       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
     2625      38,     0,     0,     0,   291,     0,   154,     0,     0,     0,
     2626       0,     0,     0,   293,   294,   295,   296,   297,   298,     8,
     2627       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2628      19,    20,    21,    22,    23,    24,   451,     0,    25,    26,
     2629      27,     0,     0,     0,   109,   279,    30,   280,     0,     8,
     2630       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2631      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2632      27,     0,     0,   281,    33,     0,    30,     0,     0,   282,
     2633       0,    37,    38,   283,     0,     0,   284,   285,   286,   287,
     2634      40,    41,     0,   288,   289,     0,     0,     0,     0,     0,
     2635       0,   290,     0,     0,    33,     0,     0,     0,     0,     0,
     2636       0,    37,    38,     0,     0,     0,   291,     0,   595,     0,
     2637       0,     0,     0,     0,     0,   293,   596,   295,   296,   297,
     2638     298,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2639      17,    18,    19,    20,    21,    22,    23,    24,   254,     0,
     2640      25,    26,    27,     0,     0,     0,   109,   279,    30,   280,
    25942641       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    25952642      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2596       26,    27,     0,     0,     0,     0,   278,    30,   279,     0,
    2597        0,     0,     0,     0,   204,     0,     0,     0,     0,     0,
    2598        0,     0,   267,     0,     0,     0,     0,     0,     0,     0,
    2599        0,     0,     0,     0,   280,    33,     0,     0,     0,     0,
    2600      281,     0,    37,    38,   282,     0,     0,   283,   284,   285,
    2601      286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    2602        0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
    2603        0,     0,     0,     0,     0,     0,   290,     0,   519,     0,
    2604        0,   167,     0,     0,     0,   292,   293,   294,   295,   296,
    2605      297,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2606       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2607       25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
    2608        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2609       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2610       25,    26,    27,     0,     0,   280,    33,     0,    30,     0,
    2611        0,   281,     0,    37,    38,   282,     0,     0,   283,   284,
    2612      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2613        0,     0,     0,   289,     0,     0,    33,     0,     0,     0,
    2614        0,    36,     0,   332,   333,    39,     0,   290,     0,   592,
    2615       -3,     0,    40,    41,     0,     0,   292,   593,   294,   295,
    2616      296,   297,     8,     9,    10,    11,    12,    13,    14,    15,
    2617       16,    17,    18,    19,    20,    21,    22,    23,    24,   334,
    2618        0,    25,    26,    27,     0,     0,     0,   109,   278,    30,
    2619      279,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2620       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2621        0,    25,    26,    27,     0,     0,   280,    33,     0,    30,
    2622        0,     0,   642,     0,    37,    38,   282,     0,     0,   283,
    2623      284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
    2624        0,     0,     0,     0,   289,     0,     0,    33,     0,     0,
    2625        0,     0,   108,     0,    37,    38,     0,     0,   290,   -35,
    2626      757,     0,     0,     0,     0,     0,     0,   292,   293,   294,
    2627      295,   296,   297,     8,     9,    10,    11,    12,    13,    14,
    2628       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2629       43,     0,    25,    26,    27,     0,     0,     0,   109,   278,
    2630       30,   279,     0,     8,     9,    10,    11,    12,    13,    14,
    2631       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2632        0,     0,    25,    26,    27,     0,     0,   280,    33,     0,
    2633       30,   448,     0,   281,     0,    37,    38,   282,     0,     0,
    2634      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2635        0,     0,     0,     0,     0,   289,     0,     0,    33,     0,
    2636        0,     0,     0,     0,     0,    37,    38,     0,     0,   290,
    2637        0,   291,     0,     0,     0,     0,     0,     0,   292,   293,
    2638      294,   295,   296,   297,     8,     9,    10,    11,    12,    13,
    2639       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2640       24,   449,     0,    25,    26,    27,     0,     0,     0,   109,
    2641      278,    30,   279,     0,     8,     9,    10,    11,    12,    13,
    2642       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2643       24,     0,     0,    25,    26,    27,     0,     0,   280,    33,
    2644        0,    30,     0,     0,   281,     0,    37,    38,   282,     0,
    2645        0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    2646        0,     0,     0,     0,     0,     0,   289,     0,     0,    33,
    2647        0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
    2648      290,     0,   154,     0,     0,     0,     0,     0,     0,   292,
    2649      293,   294,   295,   296,   297,     8,     9,    10,    11,    12,
     2643      26,    27,     0,     0,     0,   281,    33,    30,     0,     0,
     2644       0,   282,     0,    37,    38,   283,     0,     0,   284,   285,
     2645     286,   287,    40,    41,     0,   288,   289,     0,     0,     0,
     2646       0,     0,     0,   290,     0,    33,     0,     0,     0,     0,
     2647      36,     0,   204,    38,    39,     0,     0,     0,   291,     0,
     2648     375,    40,    41,     0,     0,     0,     0,   293,   377,   295,
     2649     296,   297,   298,     0,     0,     0,     0,     0,     0,     0,
     2650       0,     0,     0,     0,     0,     0,     0,    42,     0,   267,
     2651       0,     0,     0,     0,     0,     0,     0,   206,     8,     9,
     2652      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2653      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2654       0,     0,     0,     0,     0,    30,     0,     8,     9,    10,
     2655      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2656      21,    22,    23,    24,  -292,     0,    25,    26,    27,     0,
     2657       0,     0,     0,    33,    30,     0,     0,     0,    36,     0,
     2658     333,   334,    39,     0,     0,     0,     0,     0,     0,    40,
     2659      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2660       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
     2661      38,     0,     0,  -292,     0,   639,     0,   335,     0,     0,
     2662       0,     0,     0,     0,     0,   630,     0,     0,     0,     0,
     2663       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2664       0,     0,     0,     0,   639,     0,   335,     0,     0,     0,
     2665       0,     0,     0,     0,   109,     8,     9,    10,    11,    12,
    26502666      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2651       23,    24,   253,     0,    25,    26,    27,     0,     0,     0,
    2652      109,   278,    30,   279,     0,     8,     9,    10,    11,    12,
    2653       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2654       23,    24,     0,     0,    25,    26,    27,     0,     0,   280,
    2655       33,     0,    30,     0,     0,   281,     0,    37,    38,   282,
    2656        0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
    2657      288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
    2658       33,     0,     0,     0,     0,     0,     0,    37,    38,     0,
    2659        0,   290,     0,   592,     0,     0,     0,     0,     0,     0,
    2660      292,   593,   294,   295,   296,   297,     8,     9,    10,    11,
    2661       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2662       22,    23,    24,   154,     0,    25,    26,    27,     0,     0,
    2663        0,   109,   278,    30,   279,     0,     0,     0,     0,     0,
    2664        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2665        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2666      280,    33,     0,     0,     0,     0,   281,     0,    37,    38,
    2667      282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    2668      287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
    2669        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2670        0,     0,   290,     0,   374,     0,     0,     0,     0,     0,
    2671        0,   292,   376,   294,   295,   296,   297,   469,     2,   202,
    2672        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2667      23,    24,  -292,     0,    25,    26,    27,     0,     0,     0,
     2668       0,     0,    30,     0,     8,     9,    10,    11,    12,    13,
    26732669      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    26742670      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2675        0,    30,     0,     0,     0,     8,     9,    10,    11,    12,
    2676       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2677       23,    24,     0,     0,    25,    26,    27,     0,     0,    33,
    2678        0,    34,    30,    35,     0,     0,    37,    38,     0,     0,
     2671      33,    30,   450,     0,     0,     0,     0,    37,    38,     0,
     2672       0,  -292,     8,     9,    10,    11,    12,    13,    14,    15,
     2673      16,    17,    18,    19,    20,    21,    22,    23,    24,    33,
     2674       0,    25,    26,    27,     0,     0,    37,    38,     0,    30,
     2675     450,     0,   639,     0,   335,     0,     0,     0,     0,     0,
     2676       0,     0,   630,     0,     0,     0,     0,     0,     0,     0,
     2677       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
     2678       0,     0,     0,   451,    37,    38,     0,   941,     0,     0,
     2679       0,   109,     8,     9,    10,    11,    12,    13,    14,    15,
     2680      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2681       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
     2682       0,   451,     0,     0,     0,  1227,     0,     0,     0,   109,
     2683       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2684      18,    19,    20,    21,    22,    23,    24,    33,     0,    25,
     2685      26,    27,     0,     0,    37,    38,     0,    30,     0,     8,
     2686       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2687      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2688      27,     0,     0,     0,     0,    33,    30,     0,     0,   639,
     2689       0,   335,    37,    38,     0,     0,     0,     0,     0,   109,
    26792690       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2680        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2681       33,     0,     0,     0,     0,    36,     0,    37,    38,    39,
    2682        0,     0,     0,     0,     0,    -3,    40,    41,     8,     9,
    2683       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2684       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2685        0,    42,     0,   154,     0,    30,     0,     0,     0,     0,
    2686        0,    44,     0,     0,     0,     0,     0,     0,     0,     0,
    2687        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2688        0,     0,     0,    33,     0,     0,     0,     0,    36,     0,
    2689       37,    38,    39,     0,     0,     0,     0,     0,     0,    40,
    2690       41,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2691       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2692       25,    26,    27,     0,    42,     0,    43,     0,    30,     0,
    2693        0,     0,     0,     0,    44,     0,     0,     0,     0,     0,
    2694        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2695        0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2696        0,    36,     0,   203,    38,    39,     0,     0,     0,     0,
    2697        0,     0,    40,    41,     8,     9,    10,    11,    12,    13,
    2698       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2699       24,     0,     0,    25,    26,    27,     0,    42,     0,   266,
    2700        0,    30,     0,     0,     0,     0,     0,   205,     0,     0,
    2701        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2702        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2703        0,     0,     0,     0,    36,     0,   332,   333,    39,     0,
    2704        0,     0,     0,     0,     0,    40,    41,     8,     9,    10,
    2705       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2706       21,    22,    23,    24,  -295,     0,    25,    26,    27,     0,
    2707      636,     0,   334,     0,    30,     0,     0,     0,     0,     0,
    2708      627,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2709       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2710       24,  -295,    33,    25,    26,    27,     0,     0,     0,    37,
    2711       38,    30,     0,  -295,     8,     9,    10,    11,    12,    13,
    2712       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2713       24,     0,     0,    25,    26,    27,     0,     0,     0,    33,
    2714        0,    30,   448,   636,     0,   334,    37,    38,     0,     0,
    2715     -295,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    2716        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2717        0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
    2718      636,     0,   334,     0,     0,     0,     0,     0,     0,     0,
    2719      627,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2720       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2721       24,  -295,   449,    25,    26,    27,   937,     0,     0,     0,
    2722      109,    30,     0,     8,     9,    10,    11,    12,    13,    14,
    2723       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2724        0,     0,    25,    26,    27,     0,     0,     0,     0,    33,
    2725       30,   448,     0,     0,     0,     0,    37,    38,     0,     0,
    2726     -295,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2727       17,    18,    19,    20,    21,    22,    23,    24,    33,     0,
    2728       25,    26,    27,     0,     0,    37,    38,     0,    30,     0,
    2729        0,     0,   334,     0,     0,     0,     0,     0,     0,     0,
    2730      109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2731        0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2732        0,   449,     0,    37,    38,  1229,     0,     0,     0,   109,
    2733        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2734       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2735       25,    26,    27,     0,     0,     0,     0,   636,    30,   334,
    2736        0,     0,     0,     0,     0,     0,     0,   109,     8,     9,
    2737       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2738       20,    21,    22,    23,    24,     0,    33,    25,    26,    27,
    2739        0,     0,     0,    37,    38,    30,     0,     8,     9,    10,
    2740       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2741       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2742        0,     0,     0,    33,    30,     0,     0,   636,     0,   334,
    2743      203,    38,     0,     0,     0,     0,     0,   627,     0,     0,
    2744        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2745        0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2746       38,     0,     0,     0,     0,     0,   266,     0,     0,     0,
    2747        0,     0,     0,     0,   267,     0,     0,     8,     9,    10,
    2748       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2749       21,    22,    23,    24,     0,   253,    25,    26,    27,     0,
    2750        0,     0,     0,   627,    30,     0,     8,     9,    10,    11,
    2751       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2752       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2753        0,     0,    33,    30,     0,     0,     0,     0,     0,    37,
    2754       38,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2755       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2756        0,    33,    25,    26,    27,     0,     0,     0,    37,    38,
    2757       30,     0,     0,     0,     0,   334,     0,     0,     0,     0,
    2758        0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
    2759        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2760        0,     0,     0,     0,   449,   203,    38,     0,     0,     0,
    2761        0,     0,   109,     8,     9,    10,    11,    12,    13,    14,
    2762       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2763        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2764       30,   266,     0,     0,     0,     0,     0,     0,     0,   622,
     2691       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2692       0,    37,    38,     0,     0,     0,     0,   639,     0,   335,
     2693       0,     0,     0,     0,     0,     0,     0,   630,     0,     0,
    27652694       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2766       18,    19,    20,    21,    22,    23,    24,     0,    33,    25,
    2767       26,    27,     0,     0,     0,    37,    38,    30,     0,     8,
     2695      18,    19,    20,    21,    22,    23,    24,     0,   154,    25,
     2696      26,    27,     0,     0,     0,     0,   109,    30,     0,     8,
    27682697       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    27692698      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    27702699      27,     0,     0,     0,     0,    33,    30,     0,     0,     0,
    2771        0,   592,    37,    38,     0,     0,     0,     0,     0,   627,
     2700       0,     0,   204,    38,     0,     0,     0,     8,     9,    10,
     2701      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2702      21,    22,    23,    24,    33,     0,    25,    26,    27,     0,
     2703       0,    37,    38,     0,    30,     0,     0,     0,     0,   267,
     2704       0,     0,     0,     0,     0,     0,     0,   268,     0,     0,
    27722705       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2773        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2774        0,    37,    38,     0,     0,     0,     0,     0,   334,     0,
    2775        0,     0,     0,     0,     0,     0,   109,     0,     0,     0,
    2776        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2777        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2778        0,     0,     0,     0,     0,   109,     2,   202,     4,     5,
    2779        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2780       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2781        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2782        0,     0,   278,     0,   279,  1051,     0,  1052,     0,     0,
    2783     1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,     0,     0,
    2784     1544,  1061,     0,     0,     0,  1062,  1063,    33,    32,    34,
    2785      280,    35,     0,     0,    37,    38,  1064,     0,     0,     0,
    2786      282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    2787      287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
    2788        0,     0,     0,     0,     0,     0,     0,     0,     0,  -413,
    2789        0,     0,   290,     0,   374,     0,     0,   167,     0,     0,
    2790        0,   292,   376,   294,   295,   296,   297,     0,     0,     0,
    2791        0,  1066,     0,     0,   278,  -128,   279,  1051,     0,  1052,
    2792        0,     0,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,
    2793        0,     0,     0,  1061,     0,     0,     0,  1062,  1063,     0,
    2794       32,     0,   280,     0,     0,     0,     0,     0,  1064,     0,
    2795        0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
    2796       41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2797      289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2798        0,     0,     0,     0,   290,     0,   374,     0,     0,   167,
    2799        0,     0,     0,   292,   376,   294,   295,   296,   297,     0,
    2800        0,     0,     0,  1066,     0,     0,     0,  -128,     2,   202,
    2801        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2706       0,     0,    33,     0,     0,     0,     0,     0,   254,    37,
     2707      38,     0,     0,     0,     0,     0,   630,     8,     9,    10,
     2708      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2709      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2710       0,     0,     0,     0,    30,     0,   335,     0,     0,     0,
     2711       0,     0,     0,     0,   630,     8,     9,    10,    11,    12,
     2712      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2713      23,    24,    33,     0,    25,    26,    27,     0,     0,    37,
     2714      38,     0,    30,     0,     8,     9,    10,    11,    12,    13,
    28022715      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    28032716      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2804        0,    30,     0,     0,   278,     0,   279,  1051,     0,  1052,
    2805     1414,  1415,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,
    2806        0,     0,  1544,  1061,     0,     0,     0,  1062,  1063,    33,
    2807       32,    34,   280,    35,     0,     0,    37,    38,  1064,     0,
    2808        0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
    2809       41,     0,   287,   288,     0,     0,     0,     0,  1322,     0,
    2810      289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2811        0,     0,     0,     0,   290,     0,   374,     0,     0,   167,
    2812        0,     0,     0,   292,   376,   294,   295,   296,   297,   278,
    2813        0,   279,  1051,  1066,  1052,  1414,  1415,  1053,  1054,  1055,
    2814     1056,  1057,  1058,  1059,  1060,     0,     0,     0,  1061,     0,
    2815        0,     0,  1062,  1063,     0,    32,     0,   280,     0,     0,
    2816        0,     0,     0,  1064,     0,     0,     0,   282,     0,     0,
    2817      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2818        0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
    2819        0,     0,     0,     0,     0,     0,     0,     0,     0,   290,
    2820        0,   374,     0,     0,   167,     0,     0,     0,   292,   376,
    2821      294,   295,   296,   297,   278,     0,   279,  1051,  1066,  1052,
    2822        0,     0,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,
    2823        0,     0,     0,  1061,     0,     0,     0,  1062,  1063,     0,
    2824       32,     0,   280,     0,     0,     0,     0,     0,  1064,     0,
    2825        0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
    2826       41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2827      289,   278,     0,   279,     0,     0,     0,     0,     0,     0,
    2828        0,     0,     0,     0,   290,     0,   374,     0,     0,   167,
    2829      278,     0,   279,   292,   376,   294,   295,   296,   297,   280,
    2830        0,     0,     0,  1066,     0,   281,     0,     0,     0,   282,
    2831        0,     0,   283,   284,   285,   286,    40,    41,   280,   287,
    2832      288,     0,     0,     0,   281,     0,     0,   289,   282,     0,
    2833        0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    2834        0,   290,     0,   374,     0,     0,   289,   278,     0,   279,
    2835      292,   376,   294,   295,   296,   297,     0,     0,     0,     0,
    2836      290,     0,   374,     0,     0,     0,   278,     0,   279,   292,
    2837      726,   294,   295,   296,   297,   280,     0,     0,     0,     0,
    2838        0,   642,     0,     0,     0,   282,     0,     0,   283,   284,
    2839      285,   286,    40,    41,   280,   287,   288,     0,     0,     0,
    2840      281,     0,     0,   289,   282,     0,     0,   283,   284,   285,
    2841      286,    40,    41,     0,   287,   288,     0,   290,     0,   776,
    2842        0,     0,   289,   278,     0,   279,   292,   376,   294,   295,
    2843      296,   297,     0,     0,     0,     0,   290,     0,   374,     0,
    2844        0,     0,   278,     0,   279,   292,   817,   294,   295,   296,
    2845      297,   280,     0,     0,     0,     0,     0,   281,     0,     0,
    2846        0,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2847      280,   287,   288,     0,     0,     0,   281,     0,     0,   289,
    2848      282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    2849      287,   288,     0,   512,     0,     0,     0,     0,   289,     0,
    2850        0,     0,   292,   376,   294,   295,   296,   297,     0,     0,
    2851        0,     0,   515,     0,     0,     0,     0,     0,     0,     0,
    2852        0,   292,   376,   294,   295,   296,   297,     2,   202,     4,
     2717      33,    30,     0,     0,     0,     0,   451,   204,    38,     0,
     2718       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2719       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2720       0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
     2721       0,     0,     0,     0,   267,     0,     0,     0,     0,     0,
     2722       0,     0,   625,     0,     0,     8,     9,    10,    11,    12,
     2723      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2724      23,    24,     0,   595,    25,    26,    27,     0,     0,     0,
     2725       0,   630,    30,     0,     8,     9,    10,    11,    12,    13,
     2726      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2727      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2728      33,    30,     0,     0,     0,     0,     0,    37,    38,     0,
     2729       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2730       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2731       0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
     2732       0,     0,     0,     0,   335,     0,     0,     0,     0,     0,
     2733       0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
     2734       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2735       0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
     2736       0,   109,     2,   203,     4,     5,     6,     7,     8,     9,
     2737      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2738      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2739       0,     0,     0,     0,     0,    30,     0,     0,   279,     0,
     2740     280,  1056,     0,  1057,     0,     0,  1058,  1059,  1060,  1061,
     2741    1062,  1063,  1064,  1065,     0,     0,  1540,  1066,     0,     0,
     2742       0,  1067,  1068,    33,    32,    34,   281,    35,     0,     0,
     2743      37,    38,   645,     0,     0,     0,   283,     0,     0,   284,
     2744     285,   286,   287,    40,    41,     0,   288,   289,     0,     0,
     2745       0,     0,     0,     0,   290,     0,     0,     0,     0,     0,
     2746       0,     0,     0,     0,     0,     0,  -410,     0,     0,   291,
     2747       0,   375,     0,     0,   168,     0,     0,     0,   293,   377,
     2748     295,   296,   297,   298,     0,     0,     0,     0,  1070,     0,
     2749       0,   279,  -127,   280,  1056,     0,  1057,     0,     0,  1058,
     2750    1059,  1060,  1061,  1062,  1063,  1064,  1065,     0,     0,     0,
     2751    1066,     0,     0,     0,  1067,  1068,     0,    32,     0,   281,
     2752       0,     0,     0,     0,     0,   645,     0,     0,     0,   283,
     2753       0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
     2754     289,     0,     0,     0,     0,     0,     0,   290,     0,     0,
     2755       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2756       0,     0,   291,     0,   375,     0,     0,   168,     0,     0,
     2757       0,   293,   377,   295,   296,   297,   298,     0,     0,     0,
     2758       0,  1070,     0,     0,   279,  -127,   280,  1056,     0,  1057,
     2759    1410,  1411,  1058,  1059,  1060,  1061,  1062,  1063,  1064,  1065,
     2760       0,     0,  1540,  1066,     0,     0,     0,  1067,  1068,     0,
     2761      32,     0,   281,     0,     0,     0,     0,     0,   645,     0,
     2762       0,     0,   283,     0,     0,   284,   285,   286,   287,    40,
     2763      41,     0,   288,   289,     0,     0,     0,     0,     0,     0,
     2764     290,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2765       0,     0,     0,     0,     0,   291,     0,   375,     0,     0,
     2766     168,     0,     0,     0,   293,   377,   295,   296,   297,   298,
     2767     279,     0,   280,  1056,  1070,  1057,  1410,  1411,  1058,  1059,
     2768    1060,  1061,  1062,  1063,  1064,  1065,     0,     0,     0,  1066,
     2769       0,     0,     0,  1067,  1068,     0,    32,     0,   281,     0,
     2770       0,     0,     0,     0,   645,     0,     0,     0,   283,     0,
     2771       0,   284,   285,   286,   287,    40,    41,     0,   288,   289,
     2772       0,     0,     0,     0,     0,     0,   290,     0,     0,     0,
     2773       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2774       0,   291,     0,   375,     0,     0,   168,     0,     0,     0,
     2775     293,   377,   295,   296,   297,   298,   279,     0,   280,  1056,
     2776    1070,  1057,     0,     0,  1058,  1059,  1060,  1061,  1062,  1063,
     2777    1064,  1065,     0,     0,     0,  1066,     0,     0,     0,  1067,
     2778    1068,     0,    32,     0,   281,     0,     0,     0,     0,     0,
     2779     645,     0,     0,     0,   283,     0,     0,   284,   285,   286,
     2780     287,    40,    41,     0,   288,   289,     0,     0,     0,     0,
     2781       0,     0,   290,     0,     0,     0,     0,     0,     0,     0,
     2782       0,     0,     0,     0,     0,     0,     0,   291,     0,   375,
     2783       0,     0,   168,     0,     0,     0,   293,   377,   295,   296,
     2784     297,   298,     0,     0,     0,     0,  1070,     2,   203,     4,
     2785       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2786      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2787       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2788      30,     0,     0,   279,     0,   280,     0,     0,     0,     0,
     2789       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2790       0,     0,   279,     0,   280,     0,     0,     0,    33,     0,
     2791      34,   281,    35,     0,     0,    37,    38,   282,     0,     0,
     2792       0,   283,     0,     0,   284,   285,   286,   287,    40,    41,
     2793     281,   288,   289,     0,     0,     0,   282,  1319,     0,   290,
     2794     283,     0,     0,   284,   285,   286,   287,    40,    41,     0,
     2795     288,   289,     0,     0,   291,     0,   375,     0,   290,     0,
     2796     279,   775,   280,   293,   377,   295,   296,   297,   298,     0,
     2797       0,     0,     0,   291,     0,   375,     0,     0,   986,   279,
     2798       0,   280,   293,   377,   295,   296,   297,   298,   281,     0,
     2799       0,     0,     0,     0,   282,     0,     0,     0,   283,     0,
     2800       0,   284,   285,   286,   287,    40,    41,   281,   288,   289,
     2801       0,     0,     0,   282,     0,     0,   290,   283,     0,     0,
     2802     284,   285,   286,   287,    40,    41,     0,   288,   289,     0,
     2803       0,   291,     0,   375,     0,   290,     0,   279,     0,   280,
     2804     293,   377,   295,   296,   297,   298,     0,     0,     0,     0,
     2805     291,     0,   375,     0,     0,     0,   279,     0,   280,   293,
     2806     729,   295,   296,   297,   298,   281,     0,     0,     0,     0,
     2807       0,   645,     0,     0,     0,   283,     0,     0,   284,   285,
     2808     286,   287,    40,    41,   281,   288,   289,     0,     0,     0,
     2809     282,     0,     0,   290,   283,     0,     0,   284,   285,   286,
     2810     287,    40,    41,     0,   288,   289,     0,     0,   291,     0,
     2811     779,     0,   290,     0,   279,     0,   280,   293,   377,   295,
     2812     296,   297,   298,     0,     0,     0,     0,   291,     0,   375,
     2813       0,     0,     0,   279,     0,   280,   293,   821,   295,   296,
     2814     297,   298,   281,     0,     0,     0,     0,     0,   282,     0,
     2815       0,     0,   283,     0,     0,   284,   285,   286,   287,    40,
     2816      41,   281,   288,   289,     0,     0,     0,   282,     0,     0,
     2817     290,   283,     0,     0,   284,   285,   286,   287,    40,    41,
     2818       0,   288,   289,     0,     0,   291,     0,     0,     0,   290,
     2819       0,   279,     0,   280,   293,   377,   295,   296,   297,   298,
     2820       0,     0,     0,     0,   514,     0,     0,     0,     0,     0,
     2821       0,     0,     0,   293,   377,   295,   296,   297,   298,   281,
     2822       0,     0,     0,     0,     0,   282,     0,     0,     0,   283,
     2823       0,     0,   284,   285,   286,   287,    40,    41,     0,   288,
     2824     289,     0,     0,     0,     0,     0,     0,   290,     0,     0,
     2825       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2826       0,     0,   517,     0,     0,     0,     0,     0,     0,     0,
     2827       0,   293,   377,   295,   296,   297,   298,     2,   203,     4,
    28532828       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    28542829      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    28572832       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28582833       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2859       34,     0,    35,    36,     0,   170,   171,    39,     0,     0,
    2860        0,     0,     0,     0,    40,    41,   201,     2,   202,     4,
     2834      34,     0,    35,    36,     0,   171,   172,    39,     0,     0,
     2835       0,     0,     0,     0,    40,    41,   202,     2,   203,     4,
    28612836       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    28622837      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    28652840       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28662841       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2867       34,     0,    35,     0,     0,   203,    38,   469,     2,   202,
     2842      34,     0,    35,     0,     0,   204,    38,   471,     2,   203,
    28682843       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    28692844      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     
    28722847       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28732848       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2874        0,    34,     0,    35,     0,     0,    37,    38,     2,   202,
     2849       0,    34,     0,    35,     0,     0,    37,    38,     2,   203,
    28752850       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    28762851      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     
    28792854       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28802855       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2881        0,    34,     0,    35,     0,     0,   203,    38
     2856       0,    34,     0,    35,     0,     0,   204,    38
    28822857};
    28832858
    28842859#define yypact_value_is_default(yystate) \
    2885   ((yystate) == (-1316))
     2860  ((yystate) == (-1362))
    28862861
    28872862#define yytable_value_is_error(yytable_value) \
     
    28902865static const yytype_int16 yycheck[] =
    28912866{
    2892        0,   277,     0,    42,     1,   165,   200,   235,   451,    42,
    2893       42,   181,   751,   181,   690,   215,   182,   344,   181,   690,
    2894      181,   450,   275,   514,     0,     1,   181,     1,   113,   181,
    2895       54,    31,   690,    31,   182,    63,   622,   892,   181,     0,
    2896      672,   494,    42,   457,    44,   498,    44,   995,   648,   602,
    2897     1031,     0,    80,     0,    54,    31,   183,    42,   892,   604,
    2898       60,   602,    60,    63,  1332,    63,    66,   344,    66,    66,
    2899       31,   604,   290,   988,   602,    70,  1030,  1031,   771,    42,
    2900      104,  1050,    31,   107,    31,    42,   114,    63,   572,    44,
    2901       66,   261,   768,   261,   523,  1043,   262,   768,   261,   412,
    2902      261,     0,     0,  1418,   104,   252,   261,   107,    49,   261,
    2903      768,  1414,   197,   113,   262,   715,    63,   106,   261,   432,
    2904      359,    31,    70,    37,   363,   103,   602,   440,    93,   157,
    2905      257,   258,    31,    31,   129,    80,    70,    27,    80,   602,
    2906       70,   605,   181,    42,   144,    44,   144,   611,   181,   181,
    2907      106,   340,   152,    61,   109,    42,    43,   157,   126,   157,
    2908      128,    60,   127,   490,    63,   106,    37,    66,   116,  1437,
    2909       37,   691,   114,   805,   152,   637,   638,    37,   108,   602,
    2910        0,   181,   182,   815,   182,  1488,    76,   602,   143,   217,
    2911      214,   106,   654,   713,   108,   129,   181,   197,   830,    62,
    2912       11,  1516,   420,   421,   404,   205,  1521,   205,    37,    42,
    2913       43,    31,    42,    43,   214,    70,  1050,   217,   181,   217,
    2914      111,   129,   261,   114,   181,   112,  1541,   255,   261,   261,
    2915      506,   259,    80,  1548,   400,   106,    83,   108,    37,  1062,
    2916     1063,   217,  1521,   106,   268,   144,   106,   247,   108,   247,
    2917      205,   275,   400,   108,  1235,   109,     0,     1,   157,   107,
    2918      492,   261,   262,   110,   262,   412,   728,   710,   268,  1548,
    2919      217,   247,   128,   736,   248,   275,   829,   106,   111,   108,
    2920      235,   111,   181,   182,   450,   432,   247,    31,   829,   111,
    2921      508,   252,    37,   440,   512,   484,   841,   515,   247,   113,
    2922      247,   829,   450,  1284,   997,   390,   205,   106,   841,   108,
    2923     1133,     1,   267,   736,    70,   289,   482,   345,   217,   343,
    2924     1059,   736,    66,     3,   324,   809,   324,   604,  1297,  1283,
    2925     1284,   106,   107,   418,   482,  1250,   360,   247,   293,   424,
    2926      364,     3,    70,   343,   344,    80,   106,  1471,   247,   247,
    2927      568,   590,   108,   829,    44,    70,   818,    72,    73,   337,
    2928      360,   106,   261,   108,   364,  1220,   829,   831,   128,    70,
    2929      683,    72,    73,   108,   606,    67,    88,    89,   610,    71,
    2930      108,  1505,    74,  1507,    76,   340,  1220,   113,   366,  1521,
    2931      390,    83,   668,   108,   633,  1027,  1028,   425,   345,   631,
    2932      400,    80,   400,   635,   593,   950,   829,     0,   949,  1541,
    2933      111,   123,   124,   103,   829,    80,  1548,     0,   418,   109,
    2934      224,   949,   106,  1009,   424,   324,   426,   247,   107,  1410,
    2935      420,   421,   252,   622,    70,   114,    72,    73,   627,   243,
    2936       70,   106,    72,    73,   113,   344,   892,   475,   968,   106,
    2937      450,   412,   113,   143,  1402,  1403,  1410,  1089,  1090,    94,
    2938      129,    80,   152,  1297,   113,   420,   421,    94,   129,   128,
    2939      106,   432,   106,   949,   474,   111,   106,   106,   754,   440,
    2940      129,   111,   482,   106,   482,   120,   486,   106,   486,   649,
    2941      490,  1460,   113,   120,   106,   469,   108,   750,  1467,   928,
    2942      689,   400,   993,   247,   918,   958,   496,   936,   129,   109,
    2943      486,   201,   107,   113,   841,   205,   208,   109,   106,   114,
    2944      690,   113,   690,   484,   514,   486,   692,   690,   475,   690,
    2945      109,   658,  1132,   128,   113,   690,   683,   486,   690,   486,
    2946      514,   496,   107,    44,   692,   235,   236,   690,   526,   113,
    2947     1519,   450,   981,   113,  1018,  1019,   113,   531,  1297,   514,
    2948      534,   106,   536,  1108,   841,   129,   112,   113,   596,   129,
    2949      113,   656,   129,   109,   106,   764,   108,   267,   725,   113,
    2950      270,   820,   128,   107,   116,   824,   129,   486,   486,   579,
    2951      590,   490,   412,   109,   113,   129,   624,   113,    78,   623,
    2952      290,   629,   602,   293,   604,   113,  1126,  1053,   109,   583,
    2953      129,   107,   432,    78,   107,   639,   107,   636,   637,   638,
    2954      440,   129,   113,   623,   579,   107,  1460,   954,   108,   653,
    2955      110,   863,  1264,  1467,   114,   654,  1375,   107,   593,   639,
    2956     1272,  1273,  1274,   108,   114,   110,   113,   337,    70,   114,
    2957      340,  1094,    74,   653,   113,   347,   656,   349,   107,    81,
    2958       82,   107,   129,  1183,  1184,   114,   486,   622,   106,   359,
    2959      129,   113,   627,   363,  1491,   914,   366,   624,   878,   106,
    2960     1497,   655,   112,   657,   106,  1519,   108,   129,   716,  1321,
    2961      690,   508,   692,   591,   116,   512,    86,    87,   515,   899,
    2962       70,  1518,   730,   602,   205,   604,  1523,   106,   484,   728,
    2963      688,    81,    82,    10,    11,    12,    13,    14,   129,   106,
    2964       52,   108,   683,   955,   884,  1464,   750,  1466,   689,   116,
    2965      420,   421,   960,   116,    62,   236,   736,   737,   121,   122,
    2966       37,   107,   486,   106,   436,   108,   106,   113,   108,   723,
    2967      750,     4,     5,     6,     7,     8,     9,   106,   448,   107,
    2968      106,   451,   928,    95,   725,   113,   267,   457,    65,   716,
    2969      936,   695,   107,   697,  1220,    83,    84,    85,   113,   469,
    2970      928,  1520,   109,   730,   107,   763,   113,   109,   936,   290,
    2971      113,   690,   293,   692,   822,   106,   129,   108,   106,   818,
    2972      108,   107,   110,   764,   494,   116,   496,   113,   498,   106,
    2973       70,   108,    72,    73,    67,   107,    69,   107,   508,   116,
    2974     1009,   113,   512,   113,   514,   515,    90,    91,  1022,   829,
    2975        4,     5,     6,     7,     8,     9,   526,   736,   737,   111,
    2976      106,   841,   108,    10,    11,    12,    13,    14,  1124,  1525,
    2977      111,  1124,  1128,  1129,  1525,  1128,  1095,   189,    32,   107,
    2978      636,   637,   638,   683,   129,   113,   107,  1525,  1314,   106,
    2979       37,   108,   113,   107,   129,   822,   129,  1397,   654,   113,
    2980      212,   107,   107,   279,   106,  1045,   108,   113,   113,   579,
    2981      222,    70,   892,    67,  1414,    69,   292,   293,    65,   111,
    2982      590,   107,   106,   593,   107,   725,   107,   113,   304,   107,
    2983      113,   107,   113,   689,   914,   113,   892,   113,   892,   107,
    2984      106,   107,   108,  1369,    80,   113,  1372,   825,   928,   106,
    2985      829,   892,   622,   106,   107,   108,   936,   627,   106,   106,
    2986      108,   108,   841,   633,   340,   892,   106,   448,   108,   116,
    2987      451,    80,   728,   107,   954,   109,   457,   109,   290,   113,
    2988      118,   119,   959,  1152,   106,   107,   108,  1487,  1488,  1245,
    2989      117,   106,  1418,   108,   128,   129,   125,  1423,  1196,  1197,
    2990      376,  1199,   126,   959,  1012,   113,   114,  1205,   764,    70,
    2991     1208,    72,    73,    74,   892,   106,   107,   108,   688,     4,
    2992        5,     6,     7,     8,     9,   960,   128,   508,  1454,   107,
    2993      108,   512,    56,    57,   515,     3,   990,   112,   113,   993,
    2994      710,   995,    10,    11,    12,    13,    14,   113,   114,   928,
    2995       92,  1116,    10,    11,    12,    13,    14,   936,   113,   114,
    2996       70,   108,   818,   106,    74,   106,  1235,    42,    43,    37,
    2997      740,    81,    82,  1053,  1009,   954,    70,  1333,   109,    37,
    2998       74,  1337,    67,   109,    69,  1012,  1066,    81,    82,  1043,
    2999      107,  1500,   892,   763,  1050,   107,   106,    65,   107,  1053,
    3000      553,   554,  1056,  1057,  1058,   107,   116,    65,   107,  1050,
    3001      561,   562,   106,  1539,    56,    57,    58,     0,     1,  1545,
    3002      555,   556,   116,  1050,   107,   437,   557,   558,   559,   560,
    3003     1556,  1256,  1257,  1258,  1560,   106,  1116,   109,   108,   113,
    3004       70,  1550,    72,    73,    74,   109,   128,    44,    31,   111,
    3005      820,    81,    82,    70,   824,    72,    73,    74,   106,   471,
    3006      109,    44,   107,    60,    81,    82,    63,   107,   892,    66,
    3007      109,     3,  1050,  1371,   550,   551,   552,   109,    10,    11,
    3008       12,    13,    14,    66,   109,  1441,  1194,   109,   114,   106,
    3009       70,   108,    72,    73,    74,   114,   508,   114,    28,   116,
    3010      512,    81,    82,   515,   113,    37,    29,   107,   107,   111,
    3011       70,  1152,    72,    73,    74,   109,   114,   593,  1195,   112,
    3012      103,    81,    82,   107,   112,    54,   106,   112,   108,   710,
    3013      106,   113,  1212,    65,   107,   959,   116,   129,  1194,  1195,
    3014     1220,   107,   107,   114,   914,   107,   106,   144,   918,   107,
    3015     1050,   107,   113,   107,  1212,   107,   116,    80,    81,   107,
    3016      157,   144,  1239,  1217,  1220,   107,  1220,  1194,   107,   152,
    3017      153,   107,   107,   107,  1030,   104,   107,    28,   107,  1220,
    3018      107,   107,   107,  1239,  1292,   182,   107,   128,   958,   959,
    3019      960,   109,   112,  1220,  1235,   107,   107,    63,   107,   182,
    3020      113,   107,  1256,  1257,  1258,   112,   109,    73,   205,   109,
    3021      107,   107,   113,   107,   197,   114,   111,   200,   201,   109,
    3022      217,   113,   205,   152,   113,   107,  1050,  1535,  1393,   113,
    3023      113,   107,   107,   106,  1314,   109,  1292,   106,   106,  1009,
    3024      111,  1297,  1220,   226,   106,   106,   109,   230,   114,   232,
    3025      726,   129,   111,   107,   114,  1332,  1297,   112,   241,   671,
    3026     1314,   107,   107,   112,   247,  1292,   109,   111,   680,   252,
    3027     1297,   129,   684,   126,   113,  1525,  1332,  1525,   109,   262,
    3028     1526,   113,  1525,   109,  1525,   214,   107,   270,  1392,  1369,
    3029     1525,   157,  1372,  1525,   107,   771,  1152,   107,  1526,     3,
    3030      109,   109,  1525,   109,  1550,   107,    10,    11,    12,    13,
    3031       14,   109,  1392,  1393,   109,  1369,   239,   109,  1372,  1297,
    3032     1220,    45,  1550,   111,  1094,  1095,   129,   324,   129,   129,
    3033      129,   107,   129,    37,   112,  1500,   107,   918,  1418,   268,
    3034      112,   817,   109,  1423,   114,   109,   275,   112,  1402,  1403,
    3035      109,   217,   109,   109,   337,   109,    63,   340,   109,   109,
    3036     1437,    65,   107,   346,  1418,   107,   109,   106,   109,  1423,
    3037      106,  1195,   106,    58,  1454,   112,   359,   107,   107,   111,
    3038      363,  1437,   129,   366,   109,    94,   114,   109,  1442,   255,
    3039      107,   109,   107,   259,    94,   106,  1220,  1297,   106,   112,
    3040     1454,   107,   129,   400,  1460,   107,  1525,   114,   129,   275,
    3041      129,  1467,  1525,  1525,   343,  1239,   109,   107,   107,  1460,
    3042     1500,   113,    40,   114,   129,   107,  1467,  1283,   129,   412,
    3043      107,   360,    94,  1460,    94,   364,  1516,   107,   107,   114,
    3044     1467,  1521,  1212,   129,   427,  1525,  1526,  1501,  1526,   432,
    3045      157,   466,   375,   129,   107,   107,  1510,   440,   112,  1539,
    3046      109,  1541,  1516,  1519,   109,  1545,   129,  1521,  1548,  1239,
    3047     1550,   106,  1550,  1297,   129,   112,  1556,   107,  1519,   345,
    3048     1560,   112,  1460,   466,   107,  1539,   469,  1541,   129,  1467,
    3049      691,  1545,  1519,   107,  1548,   107,  1066,   426,  1217,   564,
    3050     1535,   484,  1556,   486,   916,   565,  1560,   563,  1332,   566,
    3051      217,   494,   713,  1094,   567,   498,  1220,  1377,  1560,  1488,
    3052     1307,    50,  1129,    52,  1337,  1467,    55,    56,    57,  1085,
    3053       59,   448,   455,  1009,   448,   936,   460,   460,   697,   938,
    3054      583,  1519,   884,   526,   527,    74,  1525,   982,   255,   650,
    3055      740,   956,   259,  1239,   750,   571,    -1,    86,    87,   425,
    3056     1460,   571,  1332,   571,   486,    -1,    -1,  1467,    -1,    -1,
    3057      493,    -1,   495,    -1,  1050,    -1,   442,    10,    11,    12,
    3058       13,    14,    -1,    -1,    -1,    -1,   185,    -1,    70,   572,
    3059       72,    73,    74,   192,    70,    -1,    72,    73,    74,    81,
    3060       82,   802,    -1,    -1,    37,    81,    82,   590,   591,   475,
    3061      593,    -1,    -1,  1437,    -1,    -1,    -1,    -1,    -1,  1519,
    3062       -1,   604,    -1,    -1,   106,    -1,   108,    -1,    -1,    -1,
    3063      106,    -1,    65,    -1,   116,    -1,  1460,    -1,   345,   622,
    3064      116,    -1,    -1,  1467,   627,    -1,    -1,    -1,    -1,  1061,
    3065      633,    -1,    -1,   636,   637,   638,    -1,   672,    -1,    -1,
    3066       -1,   590,    -1,    -1,    -1,   264,    70,  1437,    72,    73,
    3067       74,   654,    -1,   106,    -1,   108,    -1,    81,    82,   880,
    3068       -1,     0,    -1,   116,    -1,   466,    -1,    -1,    -1,   672,
    3069       -1,    -1,    -1,  1169,   623,  1519,    -1,    -1,    -1,  1469,
    3070      683,  1471,   106,     0,     1,   688,   689,    -1,    -1,   692,
    3071      639,    -1,    31,    -1,    -1,    -1,    -1,    -1,   425,    -1,
    3072      319,    -1,   645,    -1,   653,    -1,    -1,    -1,   327,    -1,
    3073      596,   330,    -1,    -1,    31,  1505,    -1,  1507,    -1,    -1,
    3074       -1,    -1,   725,    -1,    -1,   728,    -1,    66,    -1,    70,
    3075       -1,    72,    73,    74,   737,    -1,    -1,   740,   624,    -1,
    3076       81,    82,    -1,   629,    -1,  1535,    63,   968,   475,    66,
    3077       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    3078      763,   764,   705,    -1,    -1,   106,   769,   108,   711,    -1,
    3079      805,    -1,    -1,   392,    -1,   116,   997,   396,    -1,    -1,
    3080      815,    -1,    -1,   128,    -1,    -1,    10,    11,    12,    13,
    3081       14,   340,   341,    -1,    -1,   830,    70,    -1,    72,    73,
    3082       74,   750,   805,   352,   353,    -1,    -1,    81,    82,    -1,
    3083       -1,    -1,   815,    37,   153,   818,    -1,   820,    -1,    -1,
    3084      823,   824,   825,    -1,    -1,    -1,  1047,   830,    -1,    -1,
    3085      716,    -1,   106,    -1,    -1,    -1,   153,   840,    -1,    -1,
    3086       -1,    65,    -1,    -1,   730,    -1,    70,    -1,    72,    73,
    3087       74,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,
    3088       -1,    -1,   481,    -1,   750,    -1,    -1,    -1,  1469,   596,
    3089     1471,   672,    -1,    -1,  1306,    -1,    -1,    -1,    -1,    -1,
    3090       -1,    -1,   106,    -1,   108,    -1,    -1,   226,    -1,   892,
    3091       -1,    -1,   116,    -1,    -1,    -1,    -1,   624,    -1,    -1,
    3092      217,    -1,   629,    -1,  1505,  1126,  1507,    -1,   247,    -1,
    3093       -1,   914,    -1,   252,    -1,    10,    11,    12,    13,    14,
     2867       1,   236,     0,     0,    42,   113,   693,   516,   183,   165,
     2868     166,    42,    42,     1,   182,   182,   201,   539,   693,   182,
     2869     182,   216,   276,   182,   651,   453,     0,     1,   625,   459,
     2870     182,   182,   605,    31,    31,  1055,   183,   896,   496,     0,
     2871     693,   452,   500,   992,    42,   341,    44,    44,   607,  1410,
     2872    1329,   605,   345,   896,   414,     0,    54,    31,   345,   607,
     2873     360,  1036,    60,    60,   364,    63,    63,    42,    66,    66,
     2874      31,     0,     1,   999,   434,   103,    54,    31,    66,   575,
     2875     605,    70,   442,   774,   771,   605,    31,     1,   263,    63,
     2876     198,   718,    66,  1414,   262,   262,   771,   754,    61,   262,
     2877     262,   184,    31,   262,  1035,  1036,   104,   605,    80,   107,
     2878     262,   262,    42,    93,   525,   113,   263,   605,   771,    37,
     2879     605,    42,  1048,  1484,   152,    49,   104,    37,    27,   107,
     2880      44,    37,    70,    80,    70,   253,   108,    66,     0,    42,
     2881      43,   130,   694,     0,   182,    80,   144,   144,   128,    42,
     2882      43,   182,   182,  1432,   152,   608,   640,   641,    37,   157,
     2883     157,   614,   109,    70,   716,   107,   739,   130,    44,    31,
     2884     639,   640,   641,   657,    31,   258,   259,    76,  1067,  1068,
     2885      42,   117,    44,   107,   182,   183,   183,   486,   657,   103,
     2886     486,  1512,   130,    42,    43,   109,  1517,   107,    60,   109,
     2887     198,    63,   109,   109,    66,   492,    63,   182,   206,   206,
     2888     113,   406,  1055,    83,   739,   105,  1537,   215,    29,   112,
     2889     218,   218,    80,  1544,   262,   107,    80,   402,   107,   143,
     2890     109,   262,   262,   109,    70,    62,   108,   215,   152,   129,
     2891     114,   111,   468,   115,   218,  1134,  1466,   731,   249,   225,
     2892     248,   248,   182,   107,   739,   402,   130,   115,  1233,     0,
     2893     833,   182,   731,   112,   262,   263,   263,   143,   244,    80,
     2894      81,   269,    11,   109,   248,  1295,    70,   452,   276,   833,
     2895     107,  1501,   144,  1503,   392,   713,   845,   248,   202,   290,
     2896      31,   269,   206,   593,   248,   157,   414,   845,   276,  1248,
     2897     596,   107,    37,   248,   494,   452,    94,  1282,   833,   484,
     2898     338,  1002,   420,   833,   607,   109,   434,   813,   426,   248,
     2899     182,   183,   236,   237,   442,    37,   686,   325,   325,   625,
     2900     206,    37,    70,   121,   630,   833,   636,   484,   822,   367,
     2901     639,   640,   641,    80,   206,   833,   344,   345,   833,   114,
     2902    1281,  1282,    94,   822,   268,   110,   218,   271,   657,  1218,
     2903     236,   218,   107,   361,   110,   130,   344,   365,   114,    67,
     2904     107,   109,   107,    71,   109,  1218,    74,   291,    76,   121,
     2905     294,   108,   835,   361,   129,    83,   248,   365,   115,    88,
     2906      89,   248,   268,   692,   392,   107,   692,   109,   112,   953,
     2907     262,   107,   129,   109,   402,   402,   954,  1064,    80,   422,
     2908     423,     4,     5,     6,     7,     8,     9,  1014,   294,   609,
     2909     972,   114,   420,   613,   338,   124,   125,   341,   426,   240,
     2910     428,  1406,   731,   953,  1517,  1455,   108,  1517,    70,    32,
     2911      72,    73,  1462,   115,   634,   108,   360,   110,   638,   675,
     2912     364,   114,  1295,   367,   452,   953,    70,  1537,    72,    73,
     2913       3,  1544,   108,   325,  1544,   341,   129,   130,   767,   115,
     2914     471,   767,  1398,  1399,    67,  1406,    69,     3,   476,    70,
     2915     112,    72,    73,   345,   114,   498,   484,   484,   997,   346,
     2916     488,   488,   922,   107,   492,  1515,   652,   107,   112,   753,
     2917     528,   113,   114,   516,   962,     0,  1133,   248,   422,   423,
     2918     108,   209,   253,     0,   488,   516,   114,   129,   109,     0,
     2919     695,   932,   129,   822,   824,   693,   693,   488,   828,   940,
     2920     693,   693,   533,   114,   693,   536,   450,   538,   539,   453,
     2921     402,   693,   693,   488,    31,   459,   422,   423,   695,   130,
     2922     896,   659,   845,   107,   108,   109,   114,   471,   845,   488,
     2923     291,  1109,   107,   114,    70,   376,    72,    73,   686,   582,
     2924    1023,  1024,   130,   114,   985,  1127,    70,   107,   661,   130,
     2925      74,   114,   496,   809,   498,   586,   500,    81,    82,   130,
     2926     452,   108,   108,   819,   107,   593,   510,   130,   114,   107,
     2927     514,   107,   516,   517,    63,    70,   112,   605,   834,   607,
     2928     728,   114,  1455,   107,   528,   109,    81,    82,   918,  1462,
     2929     477,    80,   498,   117,   107,   114,   488,   130,   626,   114,
     2930     492,   488,  1184,  1185,   127,   110,   129,   114,  1295,   114,
     2931     516,   130,   107,    78,   642,   130,   457,   108,   626,   594,
     2932     348,   462,   350,   130,   114,   114,  1487,   658,   656,   660,
     2933     107,   659,  1493,   691,   642,     0,     1,  1095,   582,   114,
     2934     130,   958,  1515,   414,   109,   108,   111,   867,   656,   593,
     2935     115,   114,   596,  1514,   495,   130,   497,   882,  1519,   114,
     2936      78,   422,   423,   434,   108,   693,    31,   695,   157,   110,
     2937     107,   442,   109,   114,   108,   130,   582,   108,   903,    44,
     2938     117,   625,  1058,   278,   108,  1372,   630,   107,  1014,   109,
     2939     596,   109,   636,   111,   107,   726,   109,   115,   107,   964,
     2940     109,    66,   888,   108,   117,   107,  1035,   109,   766,   114,
     2941     438,   739,   740,   605,   108,   607,   107,   488,   109,   625,
     2942     114,   110,   108,   107,   630,   753,   117,   932,   114,   218,
     2943      70,   248,    72,    73,    74,   940,   253,   108,   103,   959,
     2944     627,    81,    82,   114,   510,   753,   108,   691,   514,   510,
     2945     107,   517,   114,   514,   108,   932,   517,   110,   108,  1311,
     2946     114,   114,   108,   940,   114,   113,  1096,   256,   114,   713,
     2947     107,   260,  1459,   107,  1461,   117,  1032,  1033,   108,   144,
     2948     122,   123,   110,   108,   114,   130,   114,   152,   153,   114,
     2949       4,     5,     6,     7,     8,     9,   107,   108,   109,   743,
     2950      62,   693,    70,   695,  1521,   833,    74,   648,   110,   108,
     2951     571,  1393,  1027,    81,    82,   114,  1521,   845,   183,   108,
     2952     108,   107,   766,   109,  1153,   114,   114,  1153,  1410,  1516,
     2953     107,   108,   719,   198,  1090,  1091,   201,   202,  1521,   107,
     2954    1125,   206,  1218,    44,  1129,   130,   733,   739,   740,   117,
     2955      83,    84,    85,    67,   829,    69,   107,   346,    70,   112,
     2956      72,    73,   227,   108,  1050,   896,   231,   708,   233,   114,
     2957     107,   108,   109,   714,   107,   130,   109,   242,   111,   112,
     2958     824,   108,    70,   248,   828,   108,    74,   114,   253,   130,
     2959     918,   114,   896,    81,    82,   119,   120,   414,   263,    86,
     2960      87,  1483,  1484,   107,   932,   109,   271,  1233,   109,   107,
     2961     108,   109,   940,   508,    70,   686,   130,   434,   107,   107,
     2962     109,   896,    90,    91,    44,   442,    56,    57,    58,   117,
     2963     958,    10,    11,    12,    13,    14,  1312,   896,   427,   826,
     2964      60,   833,   107,    63,   109,   963,    66,    70,   112,    72,
     2965      73,    74,  1281,   845,  1254,  1255,  1256,   728,    37,   963,
     2966     107,   112,   109,   994,   107,   107,   997,   109,   999,   486,
     2967      80,   488,   107,   338,   918,  1231,   341,   110,   922,  1117,
     2968      80,   698,   347,   700,   113,   114,    65,   118,   477,   126,
     2969    1366,   108,   109,  1369,    92,   360,   114,   115,   109,   364,
     2970      56,    57,   367,   127,   963,   206,  1262,   113,   114,   896,
     2971     560,   561,   562,   563,  1270,  1271,  1272,  1048,   962,   963,
     2972     964,   114,   115,   107,   144,   114,   115,  1058,    42,    43,
     2973    1061,  1062,  1063,   129,   556,   557,   237,   157,  1414,   107,
     2974     932,   110,   108,  1419,   558,   559,   110,   888,   940,   414,
     2975     108,  1055,   564,   565,   895,  1496,   108,   108,   964,    83,
     2976      84,    85,  1318,   183,   429,   108,   958,   268,   108,   434,
     2977    1014,   107,   110,  1449,   109,   114,   671,   442,   110,   129,
     2978    1055,   112,   107,   107,   110,   109,   206,   111,   112,  1117,
     2979     291,   108,   108,   294,   115,   110,  1055,   110,   218,   110,
     2980     110,    28,   114,   468,   108,  1546,   471,   115,  1014,   108,
     2981     599,   112,   110,    50,   694,    52,   113,   113,    55,    56,
     2982      57,   486,    59,   488,   115,   896,   108,   113,   107,   114,
     2983    1017,   496,   108,   108,   108,   500,   716,    74,   627,   108,
     2984     130,   108,   115,   632,   108,   986,   114,   108,   108,    86,
     2985      87,  1095,  1096,   108,   108,  1213,   108,   108,   108,  1535,
     2986     108,   108,   757,   528,   529,  1541,   108,   108,  1055,   686,
     2987      70,    28,    72,    73,    74,   692,  1552,   108,  1196,   108,
     2988    1556,    81,    82,   113,   129,  1213,     3,  1218,   110,   108,
     2989     108,  1195,  1196,    10,    11,    12,    13,    14,   108,   113,
     2990      10,    11,    12,    13,    14,   325,   108,   107,   114,   109,
     2991     575,   728,   110,   110,  1218,   115,   108,   117,   108,  1237,
     2992      37,   114,   108,  1254,  1255,  1256,   806,    37,   593,   594,
     2993     719,   596,   115,  1237,   114,   112,   114,  1196,   110,   108,
     2994     114,   114,   607,  1218,   733,  1086,   108,   108,    65,   450,
     2995     767,  1389,   453,   107,   110,    65,   107,   107,   459,  1218,
     2996     625,   107,   107,   110,   130,   630,  1531,   115,   108,  1213,
     2997     113,   636,   108,   108,   639,   640,   641,   110,  1237,   113,
     2998    1311,  1312,   402,   127,  1055,   112,  1290,   110,   130,   114,
     2999     114,  1295,   657,  1237,   110,   108,   108,   107,    45,   109,
     3000     108,   110,   108,   110,   884,   110,   110,   117,  1195,   510,
     3001     675,  1329,   110,   514,   110,   130,   517,  1522,     0,   130,
     3002    1295,   686,   113,  1521,  1521,  1329,   691,   692,  1521,  1521,
     3003     695,  1218,  1521,   130,   108,  1366,  1295,   826,  1369,  1521,
     3004    1521,  1546,   130,   130,    63,  1522,   113,   115,   108,    31,
     3005    1191,   110,   113,   110,   110,   110,   110,   110,  1496,   110,
     3006    1388,  1389,   110,   728,   108,   108,   731,  1398,  1399,  1546,
     3007    1329,   110,   110,   107,   107,   740,   107,    58,   743,   896,
     3008    1388,   108,   108,  1414,    66,  1329,   115,    70,  1419,    72,
     3009      73,    74,   972,   130,   112,   114,   110,   110,    81,    82,
     3010     108,   766,   767,  1290,   341,   342,  1437,   772,  1295,   110,
     3011     108,   107,   107,    52,  1432,    94,   353,   354,  1449,    94,
     3012     130,   113,  1002,   110,   107,   114,   109,    40,  1432,   115,
     3013     108,   108,   108,   130,   117,   108,  1197,  1198,   157,  1200,
     3014     130,   108,   108,    94,   809,  1206,    94,  1218,  1209,   108,
     3015     130,  1455,   108,  1521,   819,   115,    95,   822,  1462,   824,
     3016    1521,  1521,   827,   828,   829,   130,  1497,   130,  1496,   834,
     3017     108,   153,  1052,  1432,   108,  1506,   113,   110,   110,   844,
     3018    1455,  1512,   107,   130,   130,   113,  1517,  1462,  1432,   113,
     3019     108,   108,   108,  1521,  1522,  1522,  1455,   108,  1070,   218,
     3020     130,   566,   569,  1462,  1535,    70,  1537,    72,    73,    74,
     3021    1541,  1515,   713,  1544,   567,   570,    81,    82,  1546,  1546,
     3022    1464,  1552,  1466,   568,  1295,  1556,    54,  1218,  1017,  1484,
     3023    1125,   896,  1374,  1556,  1129,  1130,   468,   256,  1055,  1130,
     3024    1515,   260,   107,  1305,   109,   227,  1334,  1127,   280,  1462,
     3025     940,   190,   117,   918,  1086,   450,  1515,  1501,   462,  1503,
     3026     700,   293,   294,   450,   942,   986,   248,   586,  1455,   888,
     3027     653,   253,   743,   305,   213,  1462,   104,   960,  1237,   107,
     3028     488,   753,   574,    -1,   223,   574,   574,  1531,    -1,   954,
     3029       4,     5,     6,     7,     8,     9,    -1,   962,   963,    -1,
     3030      -1,    -1,    -1,    -1,  1184,  1185,    -1,  1368,    -1,   341,
     3031      -1,    -1,    -1,    -1,   979,    -1,    -1,    -1,    -1,    -1,
     3032      -1,   675,    -1,    -1,   152,  1531,    -1,   346,  1515,  1521,
     3033      10,    11,    12,    13,    14,    -1,  1153,    -1,    -1,    10,
     3034      11,    12,    13,    14,    -1,   377,    -1,    -1,  1243,  1014,
     3035      -1,    -1,   291,    67,    -1,    69,    -1,    37,    -1,    -1,
     3036      -1,    -1,  1027,    -1,    -1,   347,    37,  1032,  1033,    -1,
     3037    1035,  1036,    -1,    -1,     0,    10,    11,    12,    13,    14,
     3038      -1,    -1,    -1,    -1,  1455,    65,    -1,   215,    -1,    -1,
     3039    1055,  1462,    -1,    -1,    65,    -1,    -1,    -1,    -1,    70,
     3040      -1,  1218,    37,    74,    -1,    31,  1195,    -1,   427,    -1,
     3041      81,    82,    -1,    -1,    -1,    -1,  1233,    -1,    -1,    -1,
     3042      -1,   922,    -1,    -1,    -1,  1090,  1091,   107,    -1,   109,
     3043      65,  1096,   414,    -1,    -1,  1330,   107,   117,    -1,  1334,
     3044      66,   269,    -1,   675,  1515,    -1,   117,   429,   276,    -1,
     3045      -1,    -1,   434,    -1,    -1,   809,    -1,    -1,   477,    -1,
     3046     442,    -1,    -1,    -1,    -1,   819,    -1,    -1,    -1,    -1,
     3047      -1,    -1,   107,    -1,   109,    -1,    -1,    -1,  1295,    -1,
     3048     834,    -1,   117,   720,    -1,   722,   468,    70,  1153,    72,
     3049      73,    74,   729,   730,    -1,     0,     1,   734,    81,    82,
     3050     439,  1290,    -1,    -1,   486,    -1,   488,    -1,    70,   746,
     3051      72,    73,    74,  1393,   751,    -1,   344,    -1,    -1,    81,
     3052      82,   553,   554,   555,   107,    -1,    31,   153,    -1,    -1,
     3053    1410,  1196,    63,   361,   473,    -1,    -1,   365,    -1,   776,
     3054      -1,  1436,    73,    -1,    -1,   107,    -1,   529,  1213,    -1,
     3055      -1,    -1,    -1,  1218,    -1,   117,    -1,    -1,    63,    -1,
     3056      -1,    66,    -1,    -1,   596,    -1,  1231,    -1,  1233,    -1,
     3057      -1,   510,  1237,    -1,    -1,   514,    -1,   809,   517,    -1,
     3058     599,    -1,    -1,   114,   821,    -1,    -1,   819,    -1,    -1,
     3059      -1,    -1,    -1,    -1,  1095,    -1,    -1,  1262,    -1,    -1,
     3060     428,    -1,   834,  1483,  1484,  1270,  1271,  1272,   627,    -1,
     3061      -1,    -1,   594,   632,    -1,    -1,  1281,  1282,    -1,    -1,
     3062      -1,    -1,   248,    -1,    -1,    -1,   157,   253,    -1,    -1,
     3063    1295,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1455,    -1,
     3064      -1,   878,   879,   880,   881,  1462,   883,    -1,   153,    -1,
     3065      -1,    -1,    -1,  1318,    -1,    -1,    -1,   639,   640,   641,
     3066      -1,    -1,   899,    -1,  1329,    -1,    -1,    10,    11,    12,
     3067      13,    14,    -1,    -1,    -1,   657,   913,    -1,  1032,  1033,
     3068      70,    -1,    72,    73,    74,    -1,    -1,   218,    -1,    -1,
     3069      -1,    81,    82,   675,    37,    -1,    -1,   729,  1515,    -1,
     3070     719,    -1,    -1,    -1,   686,    -1,    -1,    -1,    -1,    -1,
     3071     692,    -1,    -1,   218,   733,   952,    -1,   107,    -1,    -1,
     3072      -1,   347,    65,    -1,    -1,   256,    -1,    70,    -1,   260,
     3073      -1,    74,    -1,    -1,    -1,   674,  1090,  1091,    81,    82,
     3074      -1,  1406,   774,   248,   683,   276,   728,    -1,   687,   731,
     3075      -1,    -1,    -1,    -1,   991,    -1,     0,    -1,    -1,    -1,
     3076      -1,   998,    -1,    -1,   107,   593,  1003,  1432,    -1,    -1,
     3077      -1,  1008,    -1,  1010,   117,    -1,    -1,  1014,  1015,  1016,
     3078      -1,    -1,  1019,    -1,    -1,   767,    -1,    31,   414,   821,
     3079    1455,  1028,    -1,    -1,    -1,    -1,    -1,  1462,   626,    -1,
     3080    1032,  1033,    -1,   429,    -1,    -1,    -1,   826,   434,  1046,
     3081    1047,    -1,    -1,    -1,   642,   346,   442,    -1,    -1,    -1,
     3082      -1,    -1,    66,    -1,    -1,    -1,    -1,   809,   656,    -1,
     3083      -1,    -1,    -1,    -1,    -1,    -1,  1073,   819,    -1,  1076,
     3084     822,    -1,   468,    -1,    -1,   827,    -1,   829,    -1,    -1,
     3085    1515,    -1,   834,    -1,    -1,    -1,    -1,  1522,  1090,  1091,
     3086     486,     3,   488,    70,    -1,    72,    73,    74,    10,    11,
     3087      12,    13,    14,    -1,    81,    82,    -1,  1114,    -1,    -1,
     3088      -1,    -1,    -1,  1120,  1121,    -1,    -1,    -1,    -1,    -1,
     3089      -1,    -1,    -1,    -1,  1131,    37,   427,    -1,    -1,  1136,
     3090     107,    -1,  1139,   529,  1141,    -1,    -1,  1144,  1262,   153,
     3091     117,    -1,     0,   444,   896,    -1,  1270,  1271,  1272,    -1,
     3092    1157,    -1,    -1,    65,   429,   753,    -1,    -1,    -1,    -1,
     3093      -1,    -1,    -1,  1170,    -1,  1172,  1173,  1174,  1175,    -1,
     3094      -1,    -1,    -1,    31,    -1,    -1,   477,    -1,    -1,    -1,
     3095      -1,  1188,    -1,  1190,    -1,    -1,    -1,  1194,    -1,    -1,
     3096      -1,    -1,    -1,  1464,  1318,  1466,    -1,    -1,   594,    -1,
     3097      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
     3098      -1,   920,  1014,   488,    -1,     3,  1223,  1224,    -1,    -1,
     3099      -1,    -1,    10,    11,    12,    13,    14,   979,  1017,  1231,
     3100    1501,    -1,  1503,    -1,   248,   186,    -1,    -1,    -1,   253,
     3101      -1,    -1,   193,   639,   640,   641,    -1,    -1,    -1,    37,
     3102      -1,    -1,    -1,  1055,   529,    -1,    -1,    -1,    -1,    -1,
     3103    1262,   657,    -1,    -1,    -1,    -1,  1273,  1274,  1270,  1271,
     3104    1272,    -1,    -1,    -1,    -1,    -1,  1283,    65,    -1,   675,
     3105    1032,  1033,    -1,  1035,  1036,    -1,    -1,    -1,    -1,    -1,
     3106     686,    -1,    -1,    -1,    -1,   153,   692,    -1,   599,    -1,
     3107      -1,    -1,    -1,  1055,    -1,    -1,    -1,    -1,    -1,    -1,
     3108      -1,    -1,    -1,    -1,   265,    -1,  1318,    -1,    -1,   594,
     3109     918,    -1,    -1,    -1,    -1,    -1,   627,    -1,  1335,    -1,
     3110      -1,   632,   728,   347,    -1,   731,    -1,    -1,  1090,  1091,
     3111    1347,    -1,  1349,  1350,  1351,    -1,    -1,    70,    -1,    72,
     3112      73,    74,    -1,    -1,  1361,    -1,    -1,  1066,    81,    82,
     3113      -1,    -1,    -1,  1370,   639,   640,   641,    -1,  1170,   320,
     3114      -1,   767,    -1,    -1,    -1,    -1,    -1,   328,    -1,  1386,
     3115     331,    -1,   657,    -1,   107,    -1,   109,    -1,    -1,    -1,
     3116     248,    -1,    -1,    -1,   117,   253,    -1,    -1,    -1,    -1,
     3117     414,  1153,    -1,    -1,    -1,    -1,  1195,    -1,    -1,    -1,
     3118      -1,    -1,    -1,   809,    -1,   429,    -1,    -1,   719,    -1,
     3119     434,    -1,    -1,   819,    -1,    -1,   822,    -1,   442,    -1,
     3120      -1,   827,   733,   829,    -1,  1442,  1443,    -1,   834,    -1,
     3121      -1,    -1,    -1,   394,  1196,    -1,    -1,   398,  1455,    -1,
     3122      -1,    -1,   753,    -1,   468,  1462,   731,    -1,    -1,    -1,
     3123      -1,    -1,    -1,    -1,    -1,    -1,  1218,    -1,    -1,    -1,
     3124      -1,    -1,   486,    -1,   488,    -1,    -1,    -1,    -1,  1231,
     3125      -1,  1233,    -1,    -1,    -1,    -1,    -1,    -1,  1495,   347,
     3126      -1,    -1,  1499,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3127     896,  1290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3128    1262,    -1,    -1,    -1,    -1,   529,    -1,    -1,  1270,  1271,
     3129    1272,  1528,    -1,  1530,    -1,   826,    -1,    -1,    -1,  1281,
     3130    1282,    -1,   483,    -1,    10,    11,    12,    13,    14,    -1,
     3131      -1,    -1,    -1,  1295,    -1,    -1,    -1,   822,    -1,    -1,
     3132      -1,  1558,  1559,    -1,   829,    -1,   414,    -1,    -1,  1566,
     3133    1567,    37,    -1,    -1,    -1,    -1,  1318,    -1,    -1,    -1,
     3134      -1,   429,    -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,
     3135     594,    -1,    -1,   979,   442,    -1,    -1,    -1,    -1,    65,
     3136      -1,    -1,    -1,    -1,    70,  1304,    72,    73,    74,    -1,
     3137      -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,
     3138     468,    -1,    -1,    -1,    -1,  1213,    -1,    -1,    -1,    -1,
     3139      -1,   896,    -1,   574,   575,   639,   640,   641,   486,    -1,
     3140     488,   107,    -1,   109,    -1,    -1,  1032,  1033,    -1,  1035,
     3141    1036,   117,    -1,   657,    -1,    -1,    -1,    -1,    -1,    -1,
     3142      -1,    -1,    -1,    -1,  1406,    -1,    -1,    -1,    -1,  1055,
     3143      -1,   675,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3144      -1,   529,   686,    -1,    -1,    -1,    -1,    -1,   692,    10,
     3145      11,    12,    13,    14,    -1,    -1,    -1,    -1,   963,    -1,
     3146      -1,    -1,    -1,    -1,  1090,  1091,    -1,    25,    26,    27,
     3147      -1,    -1,    -1,  1455,   979,    -1,    37,    -1,    -1,    -1,
     3148    1462,   662,    -1,    -1,   728,   666,  1017,   731,    95,    96,
     3149      97,    98,    99,   100,   101,   102,   103,   104,    -1,    -1,
     3150      -1,    -1,    -1,    -1,    65,    -1,   594,    -1,    -1,    70,
     3151      -1,    72,    73,    74,    -1,    -1,    -1,    -1,   699,    -1,
     3152      81,    82,   129,   767,  1463,    -1,  1465,  1153,    -1,    -1,
     3153    1035,  1036,    -1,  1515,    -1,    -1,    -1,    -1,    96,    -1,
     3154      98,    -1,    -1,    -1,    -1,    -1,   107,    -1,   109,    -1,
     3155    1055,   639,   640,   641,    -1,    -1,   117,    -1,    -1,    -1,
     3156    1388,  1500,    -1,  1502,   122,   809,    -1,    -1,    -1,   657,
     3157    1196,    -1,    -1,    -1,    -1,   819,    -1,    -1,   822,    -1,
     3158      -1,    -1,    -1,   827,    -1,   829,    -1,   675,    -1,    -1,
     3159     834,    -1,  1218,    -1,    -1,    -1,    -1,    -1,   686,    10,
     3160      11,    12,    13,    14,   692,  1231,  1545,  1233,  1547,    -1,
     3161      -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3162     178,  1560,  1561,    -1,    -1,    -1,    37,    -1,   186,    -1,
     3163     188,   189,   813,    -1,    -1,   193,  1262,   195,   196,    37,
     3164     728,    -1,    -1,   731,  1270,  1271,  1272,    -1,    -1,    25,
     3165      26,    27,   896,    -1,    65,  1281,  1282,    -1,    -1,    70,
     3166      -1,    72,    73,    74,  1195,    -1,    -1,    65,    -1,  1295,
     3167      81,    82,    70,    -1,    72,    73,    74,    -1,    -1,   767,
     3168      -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
     3169    1195,  1196,  1318,    -1,    -1,    -1,   107,    -1,   109,    -1,
     3170      -1,    -1,    -1,    -1,    -1,    -1,   117,   265,    -1,   107,
     3171      -1,    -1,    -1,  1218,    -1,    -1,    -1,    -1,    -1,   117,
     3172      96,   809,    98,    -1,    -1,    -1,    -1,    -1,    63,    -1,
     3173      -1,   819,  1237,    -1,   822,   979,    -1,    -1,    73,   827,
     3174      75,   829,    77,    -1,    44,   926,   834,    -1,    -1,    84,
     3175      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1290,
     3176      -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,
     3177      10,    11,    12,    13,    14,    -1,  1281,  1282,    -1,   114,
     3178    1406,   116,   117,   118,    -1,  1290,    -1,    -1,  1032,  1033,
     3179    1295,  1035,  1036,    -1,    -1,    -1,    -1,    37,    -1,    -1,
     3180      -1,    -1,   178,    -1,    -1,    -1,    -1,    -1,   896,   109,
     3181      -1,  1055,   188,   189,   114,    -1,    -1,   193,    -1,   195,
     3182     196,    -1,   157,  1004,  1329,    65,    -1,    -1,    -1,  1455,
     3183      70,    -1,    72,    73,    74,    -1,  1462,    -1,    -1,  1020,
     3184      -1,    81,    82,   143,    -1,    -1,  1090,  1091,    -1,    -1,
     3185      -1,    -1,    -1,   153,    -1,    -1,    -1,   157,    -1,    -1,
     3186      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,
     3187      -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,
     3188      -1,    -1,    -1,   218,    -1,   220,   221,   222,    -1,  1515,
     3189      -1,   979,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3190      -1,  1406,    -1,    -1,    -1,    -1,   206,    -1,    -1,  1153,
     3191      -1,    -1,    -1,    -1,    -1,    -1,  1097,    -1,   218,    -1,
     3192      -1,   256,    -1,    -1,    -1,   260,    -1,  1432,    -1,    -1,
     3193      -1,    -1,    -1,    -1,    -1,    -1,   236,   237,    -1,    -1,
     3194      -1,   276,    -1,    -1,  1032,  1033,    -1,  1035,  1036,    -1,
     3195    1455,    -1,  1196,    -1,    -1,    -1,    -1,  1462,    -1,    -1,
     3196     260,    -1,    -1,    -1,    -1,    -1,    -1,  1055,   268,    -1,
     3197      -1,    -1,    -1,    -1,  1218,    -1,    -1,    -1,    -1,    -1,
     3198      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1231,    -1,  1233,
     3199     325,   291,    -1,    -1,   294,    -1,    -1,    -1,    -1,    -1,
     3200      -1,    -1,  1090,  1091,    -1,    -1,    -1,    -1,    -1,    -1,
     3201    1515,   346,    -1,    -1,    -1,    -1,   351,   352,  1262,    -1,
     3202     578,   579,    -1,    -1,   359,    -1,  1270,  1271,  1272,    -1,
     3203      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1281,  1282,    -1,
     3204      -1,   341,    -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,
     3205     608,  1295,    -1,   611,   612,    36,   614,    38,   616,   617,
     3206      -1,    -1,    -1,   621,   622,  1153,    -1,   402,    -1,    -1,
     3207      -1,    -1,    -1,    -1,  1318,    -1,    -1,    -1,    -1,    -1,
     3208      -1,    -1,    -1,    64,    -1,   420,    -1,    -1,    -1,    70,
     3209     425,    -1,   427,    74,    -1,    -1,    77,    78,    79,    80,
     3210      81,    82,    -1,    84,    85,    -1,    -1,    -1,  1196,   444,
     3211      -1,    92,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,
     3212      -1,    -1,   422,   423,    -1,    -1,   107,    -1,   463,   429,
     3213    1218,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
     3214     121,   699,   477,  1231,    -1,  1233,   704,   705,    -1,   484,
     3215     450,    -1,   710,   453,    -1,    -1,    -1,    -1,    -1,   459,
     3216      -1,    -1,  1406,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3217      -1,    -1,    -1,    -1,  1262,    -1,    -1,    -1,    -1,    -1,
     3218      -1,    -1,  1270,  1271,  1272,    -1,   486,    -1,    -1,    -1,
     3219      -1,    -1,    -1,  1281,  1282,    -1,    -1,    -1,   498,    -1,
     3220      -1,    -1,   578,   579,    -1,    -1,    43,  1295,    -1,    -1,
     3221     510,  1455,    -1,    -1,   514,    -1,   516,   517,  1462,    -1,
     3222      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   529,
     3223    1318,    -1,   608,    -1,    -1,   611,   612,    -1,   614,    -1,
     3224     616,   617,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,
     3225      -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3226      -1,    -1,    99,    -1,   599,    -1,    -1,    -1,    -1,    -1,
     3227      -1,  1515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3228      -1,    -1,   582,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3229      -1,    -1,   627,    -1,   594,    -1,   596,   632,    -1,   599,
     3230      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3231      20,    21,    22,    23,    24,    25,    26,   154,  1406,    29,
     3232      30,    31,    -1,    -1,    -1,   625,    -1,    37,   704,   705,
     3233     630,   168,    -1,    -1,   710,    -1,    -1,    -1,    -1,   639,
     3234     640,   641,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3235      -1,    -1,    -1,    -1,   191,    65,    -1,   657,    -1,    -1,
     3236      70,    -1,    72,    73,    74,    -1,    -1,  1455,   205,    -1,
     3237      -1,    81,    82,    -1,  1462,    -1,    -1,   214,    -1,    -1,
     3238      -1,    -1,    -1,    -1,   719,    -1,    -1,   224,    -1,    -1,
     3239      -1,    -1,   692,    -1,    -1,    -1,    -1,   107,   733,   109,
     3240      -1,    36,    -1,    38,    -1,    -1,    -1,   117,    -1,    -1,
     3241      -1,    -1,   249,   713,    -1,    -1,    -1,   254,   753,    -1,
     3242      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1515,    -1,    64,
     3243     267,   731,    -1,   733,    -1,    70,   273,    -1,   275,    74,
     3244      -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
     3245      85,    -1,    -1,    -1,    -1,   292,    -1,    92,    -1,    -1,
     3246      -1,    -1,    -1,    -1,    -1,    -1,    -1,   767,    -1,    -1,
     3247      -1,    -1,   107,    -1,   109,    -1,    -1,   112,   813,    -1,
     3248      -1,   116,   117,   118,   119,   120,   121,    -1,    -1,    -1,
     3249      -1,   826,    -1,    -1,    -1,    -1,    -1,    -1,   335,    -1,
     3250      -1,    -1,    -1,   340,    -1,    -1,    -1,    -1,    -1,    -1,
     3251     845,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3252      -1,    -1,   822,    -1,    -1,    -1,   826,    -1,    -1,   829,
     3253      -1,   368,    -1,    -1,  1092,   372,   373,    -1,   375,    -1,
     3254      -1,    -1,    -1,    -1,    -1,   382,   383,    -1,   385,   386,
     3255      -1,   388,    -1,   390,    -1,    -1,    -1,    -1,    -1,    -1,
     3256      -1,     7,    -1,    -1,    10,    11,    12,    13,    14,    -1,
     3257     407,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   415,    -1,
    30943258      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3095      247,    -1,    -1,    -1,    -1,    -1,   822,    -1,    -1,    -1,
    3096       -1,   884,    37,    -1,    -1,    -1,    -1,   950,   891,    -1,
    3097       -1,    -1,   571,   572,    -1,   958,   959,    -1,    -1,    -1,
    3098       -1,    -1,  1183,  1184,    -1,   914,    -1,    -1,    -1,    -1,
    3099       65,    -1,   975,    -1,    -1,    70,    -1,    72,    73,    74,
    3100       -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,   716,
    3101       -1,    -1,  1027,  1028,    -1,    -1,    -1,    -1,    -1,    -1,
    3102       -1,    -1,    -1,   730,   805,    -1,  1009,   346,    -1,    -1,
    3103       -1,   106,     0,   108,   815,    -1,    -1,    -1,    -1,  1022,
    3104       -1,   116,    -1,    -1,  1027,  1028,    -1,  1030,  1031,   830,
    3105       -1,    -1,    -1,    -1,    -1,    -1,  1468,    -1,  1470,   982,
    3106      659,    -1,    -1,    31,   663,    -1,    -1,  1050,    -1,    -1,
    3107       -1,    -1,    -1,    -1,  1089,  1090,    -1,    -1,    10,    11,
    3108       12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3109       -1,    -1,  1504,   412,  1506,    -1,    -1,   696,    66,    10,
    3110       11,    12,    13,    14,    -1,    37,  1089,  1090,   427,    -1,
    3111       -1,    -1,  1095,   432,    -1,   822,    -1,    -1,    -1,    -1,
    3112       -1,   440,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
    3113      427,    -1,    -1,    65,    -1,    -1,    -1,  1549,    70,  1551,
    3114       72,    73,    74,    -1,    -1,    -1,  1012,   466,    -1,    81,
    3115       82,    -1,  1564,  1565,    65,    -1,    -1,    -1,    -1,    70,
    3116       -1,    -1,  1085,    74,    -1,   484,    -1,   486,    -1,  1152,
    3117       81,    82,    -1,    -1,   106,    -1,   108,    -1,    -1,    -1,
    3118       -1,    -1,    -1,    -1,   116,   153,    -1,    -1,   717,   486,
    3119      719,    -1,    25,    26,    27,   106,  1397,   726,   727,    -1,
    3120       -1,    -1,   731,    -1,    -1,   116,    -1,    -1,   527,    -1,
    3121      809,    -1,  1195,  1414,   743,    -1,    -1,    -1,  1233,   748,
    3122       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1212,
    3123      527,    -1,    -1,    -1,    -1,    -1,    -1,  1220,    -1,    -1,
    3124       -1,    -1,    -1,    -1,   773,    -1,  1027,  1028,    -1,  1264,
    3125     1233,    -1,  1235,    -1,    -1,    -1,  1239,  1272,  1273,  1274,
    3126       -1,    -1,    -1,    96,    -1,    98,    -1,  1190,    -1,    -1,
    3127       -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,   247,
    3128       -1,  1264,    -1,  1212,   252,    -1,  1487,  1488,   817,  1272,
    3129     1273,  1274,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,
    3130     1283,  1284,    -1,    -1,    -1,  1012,  1321,    -1,  1089,  1090,
    3131       -1,    -1,    -1,    -1,  1297,    -1,    -1,   636,   637,   638,
    3132       -1,    -1,    -1,   922,    -1,    -1,    -1,    -1,  1194,    -1,
    3133       -1,    -1,    -1,    -1,    -1,   654,    -1,    -1,  1321,   636,
    3134      637,   638,    -1,    -1,   177,   874,   875,   876,   877,  1332,
    3135      879,    -1,    -1,   672,   187,   188,    -1,   654,    -1,   192,
    3136       -1,   194,   195,    -1,   683,    -1,   895,    -1,    -1,    -1,
    3137      689,    -1,     0,    -1,    -1,    -1,    -1,    -1,   346,    -1,
    3138      909,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3139       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3140      999,    -1,    -1,    31,    -1,    -1,   725,    -1,    37,   728,
    3141       -1,    -1,    -1,    -1,    -1,    -1,  1015,    -1,    -1,   948,
    3142       -1,    -1,    -1,    -1,    -1,    -1,  1292,  1410,    -1,    -1,
    3143       -1,   728,    -1,    -1,    -1,    -1,    65,    -1,    66,    -1,
    3144       -1,    -1,    -1,    -1,   412,   764,    -1,    76,    -1,    -1,
    3145       -1,    -1,  1233,    -1,  1437,    -1,    -1,    -1,   987,   427,
    3146       -1,    -1,    -1,  1392,   432,   994,    -1,    -1,    -1,   998,
    3147       -1,    -1,   440,    -1,  1003,    -1,  1005,  1460,    -1,    -1,
    3148     1009,  1010,  1011,  1264,  1467,  1014,   805,  1194,    -1,    -1,
    3149       -1,  1272,  1273,  1274,  1023,    -1,   815,  1096,   466,   818,
    3150       -1,    -1,    -1,    -1,   823,    -1,   825,    -1,    -1,    -1,
    3151       -1,   830,  1041,  1042,    -1,    -1,   484,    -1,   486,    -1,
    3152       -1,   818,    -1,    -1,    -1,   153,    -1,    -1,   825,    -1,
    3153       -1,    -1,    -1,    -1,    -1,    -1,  1519,    -1,    -1,    -1,
    3154     1321,    -1,  1071,  1526,    -1,  1074,    -1,    -1,    -1,    -1,
    3155       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   527,
    3156       -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
    3157       -1,    -1,    -1,   892,    -1,    10,    11,    12,    13,    14,
    3158       -1,    -1,    -1,    -1,  1113,  1292,    -1,    -1,    37,    -1,
    3159     1119,  1120,    -1,    -1,    -1,   892,    -1,    -1,    -1,    -1,
    3160       -1,  1130,    37,    -1,    -1,    -1,  1135,    -1,    -1,  1138,
    3161       -1,  1140,    -1,    -1,  1143,    -1,    65,    -1,    -1,   247,
    3162       -1,    70,    -1,   591,   252,    74,    -1,  1156,    -1,    -1,
    3163       65,    -1,    81,    82,    -1,    70,    -1,    72,    73,    74,
    3164     1169,    -1,  1171,  1172,  1173,  1174,    81,    82,    -1,    -1,
    3165       -1,    -1,    -1,     0,    -1,    -1,   975,   106,  1187,    -1,
    3166     1189,    -1,   959,    -1,  1193,    -1,    -1,   116,   636,   637,
    3167      638,   106,    -1,    -1,    -1,    -1,    -1,    -1,   975,    -1,
    3168       -1,   116,    -1,    -1,    31,    -1,   654,    -1,    -1,    -1,
    3169       -1,    -1,    -1,    -1,    -1,    -1,  1225,  1226,    -1,    -1,
    3170       -1,    -1,    -1,    -1,   672,    -1,    -1,    -1,  1027,  1028,
    3171       -1,  1030,  1031,    -1,    -1,   683,    -1,    -1,   346,    66,
    3172       -1,   689,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3173       -1,  1050,    -1,  1030,  1031,    -1,    -1,    -1,    -1,    -1,
    3174       -1,    -1,   575,   576,    -1,    -1,  1275,  1276,    -1,    -1,
    3175       -1,    -1,    -1,  1050,    -1,    -1,  1285,   725,    -1,    -1,
    3176      728,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3177     1089,  1090,   605,    -1,    -1,   608,   609,    -1,   611,    -1,
    3178      613,   614,    -1,    -1,   412,   618,   619,    -1,    -1,    -1,
    3179       -1,    -1,    -1,    -1,    -1,    -1,   764,    -1,    -1,   427,
    3180       -1,    -1,    -1,    -1,   432,    -1,   153,    -1,    -1,  1338,
    3181       -1,    -1,   440,    -1,    -1,    10,    11,    12,    13,    14,
    3182       -1,  1350,    -1,  1352,  1353,  1354,    -1,    -1,    -1,    -1,
    3183       -1,    -1,    -1,  1152,    -1,  1364,    -1,   805,   466,    -1,
    3184       -1,    -1,    37,    -1,  1373,    -1,    -1,   815,    -1,    -1,
    3185      818,    -1,    -1,    -1,    -1,   823,   484,   825,   486,    -1,
    3186       -1,  1390,   830,    -1,    -1,    -1,    -1,    -1,   701,   702,
    3187       65,    -1,    -1,    -1,   707,    70,  1195,    72,    73,    74,
    3188       -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
    3189       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1194,  1195,   527,
    3190      247,  1220,    -1,    -1,    -1,   252,    -1,    -1,    -1,    -1,
    3191       -1,   106,    -1,    -1,  1233,    -1,  1235,    -1,  1447,  1448,
    3192       -1,   116,    -1,  1220,   892,    -1,    -1,    -1,    -1,    -1,
    3193       -1,  1460,    -1,    -1,    -1,    -1,    -1,    -1,  1467,    -1,
    3194       -1,    -1,  1239,    -1,    -1,  1264,    -1,    -1,    -1,    -1,
    3195       -1,    -1,    -1,  1272,  1273,  1274,    -1,    -1,    -1,    -1,
    3196       -1,    -1,    -1,   591,  1283,  1284,    -1,    -1,    -1,    -1,
    3197     1499,    -1,    -1,    -1,  1503,    -1,    -1,    -1,  1297,    -1,
    3198       -1,    -1,    -1,    -1,    -1,    -1,  1283,  1284,    -1,    -1,
    3199       -1,    -1,    -1,    -1,    -1,  1292,    -1,    -1,    -1,   346,
    3200     1297,    -1,  1321,  1532,    -1,  1534,    -1,   975,   636,   637,
    3201      638,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3202       -1,    -1,    -1,    -1,    -1,    -1,   654,    -1,    -1,    -1,
    3203       -1,    -1,    -1,  1562,  1563,  1332,    -1,    -1,    -1,    -1,
    3204       -1,  1570,  1571,    -1,   672,    -1,    -1,    -1,    -1,    -1,
    3205       -1,    -1,    -1,    -1,    -1,   683,    -1,    -1,    -1,  1027,
    3206     1028,   689,  1030,  1031,    -1,   412,    -1,    -1,    -1,    -1,
     3259      36,    37,    38,    -1,    -1,    -1,    -1,   932,    -1,    -1,
     3260      -1,    -1,    -1,   440,    -1,    -1,    -1,    -1,    -1,    -1,
     3261      -1,    -1,    -1,    -1,   451,    -1,    -1,    -1,    64,    65,
     3262      -1,    -1,   922,   958,    70,    -1,    -1,    -1,    74,    -1,
     3263      -1,    77,    78,    79,    80,    81,    82,   474,    84,    85,
     3264      -1,    -1,    -1,   480,    -1,    -1,    92,    -1,   485,    -1,
     3265     985,    -1,    -1,    -1,    -1,    -1,    -1,  1215,    -1,    -1,
     3266      -1,   107,    -1,   109,   964,    -1,    -1,    -1,    -1,    -1,
     3267     116,   117,   118,   119,   120,   121,    -1,    -1,    -1,   979,
     3268      -1,    -1,  1017,    -1,   521,    -1,    -1,    -1,    -1,    -1,
     3269      -1,    -1,    -1,  1028,    -1,    -1,    -1,    -1,    -1,    -1,
     3270     537,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3271      -1,    -1,    -1,    -1,  1014,    -1,  1092,    -1,    -1,     7,
     3272      -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3273      -1,    -1,    -1,    -1,    -1,  1035,  1036,   574,    -1,    -1,
     3274      -1,    -1,    -1,    -1,    -1,   143,   583,    -1,    36,    37,
     3275      38,    -1,    -1,   590,    -1,   153,    -1,    -1,   595,    -1,
     3276      -1,    -1,    -1,    -1,    -1,    -1,    -1,   165,   166,   606,
     3277      -1,    -1,    -1,    -1,  1109,    -1,    64,    65,    -1,    -1,
     3278      -1,    -1,    70,    -1,    -1,    -1,    74,    -1,    -1,    77,
     3279      78,    79,    80,    81,    82,  1095,    84,    85,    -1,    -1,
     3280      -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,
     3281     647,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
     3282      -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,   117,
     3283     118,   119,   120,   121,    -1,    -1,    -1,    -1,   236,  1215,
     3284      -1,    -1,    -1,    -1,    -1,   682,    -1,   152,   153,    -1,
     3285      -1,    -1,    -1,  1153,    -1,    -1,    -1,    -1,    -1,    -1,
     3286    1195,    -1,    -1,   261,    10,    11,    12,    13,    14,    15,
     3287      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3288      26,   186,    -1,    29,    30,    31,    -1,    -1,   193,    -1,
     3289      -1,    37,    -1,    -1,    -1,  1195,    -1,    -1,    -1,    -1,
     3290     737,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3291     747,   748,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
     3292      -1,    -1,    -1,   760,    70,    -1,    72,    73,    74,    -1,
     3293      -1,    -1,    -1,  1233,    -1,    81,    82,    -1,    -1,    -1,
     3294     777,    -1,   779,    -1,    -1,    -1,   783,    -1,    -1,    -1,
     3295      -1,    -1,    -1,    -1,    -1,  1290,    -1,    -1,    -1,    -1,
     3296     265,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
     3297      -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,
     3298      -1,  1281,  1282,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3299    1290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3300      -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3301      -1,    -1,   849,    -1,    -1,   320,    -1,    -1,    -1,   856,
     3302      -1,    -1,    -1,   328,   329,    -1,   331,   332,    -1,    64,
     3303      -1,    -1,   869,    -1,   871,    70,   341,    72,    73,    74,
     3304     345,    -1,    77,    78,    79,    80,    81,    82,   885,    84,
     3305      85,    -1,    -1,    -1,    -1,   892,    -1,    92,    -1,   364,
     3306      -1,    -1,   367,    -1,    -1,    -1,    -1,   904,    -1,    -1,
     3307     907,    -1,   107,    -1,   109,    -1,   111,   112,    -1,    -1,
     3308     478,   116,   117,   118,   119,   120,   121,    -1,   925,   394,
     3309      -1,    -1,    -1,   398,    -1,    -1,    -1,    -1,    -1,    -1,
     3310      -1,    -1,    -1,    -1,    -1,    -1,  1406,    -1,    -1,    -1,
     3311      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   516,    -1,
     3312      -1,    -1,    -1,    -1,   429,    -1,    -1,    -1,    -1,    -1,
     3313      -1,   529,    -1,    -1,    -1,    -1,    -1,    -1,   536,    -1,
     3314      -1,   539,    -1,    -1,    -1,    -1,    -1,   452,    -1,    -1,
     3315      -1,    -1,   550,   551,    -1,    -1,    -1,    -1,    -1,    -1,
     3316      -1,    -1,    -1,    -1,  1464,    -1,  1466,    -1,    -1,    -1,
     3317      -1,    -1,    -1,    -1,   572,    -1,  1013,    -1,   483,    -1,
     3318      -1,   486,    -1,    -1,   582,    -1,    -1,    -1,    -1,    -1,
     3319      -1,   589,    -1,    -1,    -1,    -1,   594,    -1,    -1,    -1,
     3320      -1,  1501,    -1,  1503,    -1,    -1,    -1,    -1,    -1,    -1,
     3321      -1,  1546,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3322     525,    -1,    -1,   528,   529,    -1,    -1,    -1,    -1,    -1,
     3323      -1,  1531,  1069,    -1,    -1,    -1,    -1,    -1,    -1,  1076,
     3324      -1,    -1,    -1,    -1,    -1,    -1,   644,    -1,    -1,    -1,
     3325      -1,    -1,    -1,    -1,   652,    -1,    -1,    -1,    -1,    -1,
     3326      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1105,   574,
     3327     575,    -1,    -1,  1110,    -1,    -1,    -1,    -1,    -1,    -1,
     3328      -1,  1118,    -1,    -1,    -1,    -1,    -1,    -1,   593,   594,
     3329      -1,   596,    -1,    -1,   692,    -1,    -1,    -1,    -1,    -1,
     3330     605,    -1,   607,   608,    -1,    -1,    -1,    -1,    -1,   614,
     3331      -1,  1148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   624,
     3332     625,    -1,    -1,  1160,    -1,   630,  1163,    -1,  1165,    -1,
     3333      -1,    -1,    -1,    -1,   639,   640,   641,    -1,    -1,    -1,
     3334      -1,    -1,  1179,  1180,    -1,    -1,    -1,    -1,    -1,    -1,
     3335      -1,    -1,   657,    -1,    -1,    -1,    -1,   662,   663,    -1,
     3336      -1,   666,   667,    -1,  1201,    -1,    -1,    -1,   673,   767,
     3337      -1,   769,    -1,    -1,    -1,    -1,    -1,   775,    -1,    -1,
     3338      -1,    -1,    -1,    -1,   782,    -1,   691,   692,   693,    -1,
     3339     695,  1228,    -1,    -1,   699,    -1,    10,    11,    12,    13,
     3340      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3341      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3342      -1,    -1,    -1,    37,    38,    -1,   731,   732,   826,   827,
     3343      -1,   829,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3344      -1,    -1,    -1,    -1,    -1,    -1,   844,    -1,    -1,    -1,
     3345      -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
     3346      -1,   766,   767,    -1,    -1,    -1,   771,   772,    -1,    -1,
    32073347      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3208      427,    -1,  1050,    -1,    -1,   432,    -1,    -1,    -1,    -1,
    3209       -1,  1410,    -1,   440,    -1,    -1,    -1,   725,    -1,    -1,
    3210      728,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3211       -1,    -1,    -1,  1410,    -1,    -1,    -1,    -1,    -1,   466,
    3212       -1,  1089,  1090,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3213       -1,    -1,    -1,    -1,    -1,    -1,   764,   484,    -1,   486,
    3214     1437,  1460,    -1,    -1,    -1,    -1,    -1,    -1,  1467,    -1,
     3348      -1,    -1,    -1,    -1,    -1,    -1,   884,  1324,    -1,  1326,
     3349     888,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
     3350      -1,    -1,  1339,   117,  1341,    -1,    -1,    -1,   813,    -1,
     3351      -1,    -1,    -1,    -1,    -1,    -1,    -1,   822,    -1,    -1,
     3352      -1,    -1,  1359,   828,   829,    -1,    -1,    -1,   833,    -1,
     3353     835,    -1,    -1,    -1,   279,   280,   281,    -1,  1375,  1376,
     3354     845,    -1,    -1,   288,   289,    -1,    -1,    -1,   293,   294,
     3355    1387,    -1,    -1,  1390,    -1,    -1,    -1,    -1,    -1,    -1,
     3356     305,    -1,    -1,    -1,    -1,    -1,   964,    -1,    -1,    -1,
     3357      -1,    -1,    -1,    -1,    -1,  1412,    -1,    -1,    -1,    -1,
     3358      -1,   979,   980,    -1,  1421,    -1,    -1,  1424,   986,  1426,
     3359    1427,  1428,    -1,    -1,   992,    -1,   341,   995,    -1,   997,
    32153360      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3216       -1,    -1,    -1,  1460,    -1,    -1,    -1,    -1,    -1,    -1,
    3217     1467,    -1,    -1,    -1,    -1,    -1,    -1,   805,    -1,    -1,
    3218      527,    -1,    -1,    -1,  1152,    -1,    -1,   815,    -1,    -1,
    3219      818,    -1,    -1,    -1,    -1,   823,    -1,   825,    -1,    -1,
    3220     1519,    -1,   830,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3221       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,
    3222       -1,    -1,  1519,    -1,    -1,    -1,    -1,  1195,    -1,    -1,
    3223       -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,
    3224       -1,    -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,
    3225       -1,    -1,  1220,    -1,    -1,    -1,    -1,    -1,  1091,    -1,
    3226       -1,    -1,    -1,    -1,   892,  1233,    -1,  1235,    -1,    -1,
     3361      -1,    -1,    -1,   918,    -1,    -1,    -1,    -1,    -1,  1017,
     3362      -1,   926,    -1,    -1,    -1,    -1,    -1,   932,    -1,    -1,
     3363    1028,  1468,   377,  1470,    -1,   940,  1473,    -1,    -1,    -1,
     3364      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   953,   954,
     3365      -1,  1488,  1050,    -1,  1052,    -1,    -1,    -1,    -1,    -1,
     3366      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1067,
     3367    1068,    -1,    -1,    -1,   979,    -1,    -1,    -1,    -1,    -1,
     3368     985,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3369    1088,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1004,
     3370    1005,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,  1014,
     3371      -1,    -1,    -1,    -1,    -1,  1020,  1021,    -1,  1023,  1024,
     3372    1025,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,
     3373    1035,  1036,    -1,    -1,    -1,    70,  1134,    -1,    -1,    74,
     3374      -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
     3375      85,    -1,    -1,    -1,    -1,  1153,    -1,    92,    -1,    -1,
    32273376      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3228       -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,   114,   636,
    3229      637,   638,    -1,    -1,    -1,    -1,  1264,    -1,    -1,    -1,
    3230       -1,    -1,    -1,    -1,  1272,  1273,  1274,   654,    -1,    -1,
    3231       -1,    -1,    -1,    -1,    -1,  1283,  1284,   143,    -1,    -1,
    3232       -1,    -1,    -1,    -1,    -1,   672,    -1,   153,    -1,  1297,
    3233       -1,   157,    -1,    -1,    -1,    -1,   683,    -1,    -1,    -1,
    3234       -1,    -1,   689,    -1,    -1,    -1,    -1,   975,    -1,    -1,
    3235       -1,    -1,    -1,  1321,    -1,    -1,    -1,    -1,    -1,    -1,
    3236       -1,    -1,    -1,    25,    26,    27,    -1,    -1,    -1,    -1,
    3237       36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   725,   205,
    3238       -1,   728,    -1,  1216,    -1,    -1,    -1,    -1,    -1,    -1,
    3239       -1,   217,    -1,    -1,    -1,    -1,    -1,    -1,    64,  1027,
    3240     1028,    -1,  1030,  1031,    70,    -1,    -1,    -1,    74,   235,
    3241      236,    77,    78,    79,    80,    81,    82,   764,    84,    85,
    3242       -1,    -1,  1050,    -1,    -1,    -1,    92,    -1,    -1,    -1,
    3243       -1,    -1,    -1,   259,    96,    -1,    98,    -1,    -1,    -1,
    3244      106,   267,  1410,    -1,    -1,    -1,    -1,    -1,    -1,   115,
    3245      116,   117,   118,   119,   120,    -1,    -1,    -1,   805,    -1,
    3246      122,  1089,  1090,    -1,   290,    -1,    -1,   293,   815,    -1,
    3247       -1,   818,    -1,    -1,    -1,    -1,   823,    -1,   825,    -1,
    3248       -1,    -1,    -1,   830,    -1,    -1,    -1,    -1,    -1,    -1,
    3249       -1,    -1,  1460,    36,    -1,    38,    -1,    -1,    -1,  1467,
     3377    1168,  1169,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     3378     115,   116,   117,   118,   119,   120,   121,    -1,    -1,    -1,
     3379      -1,  1096,  1097,  1098,    -1,    -1,    -1,    -1,    -1,    -1,
     3380      -1,    -1,    -1,    -1,  1109,    -1,    -1,    -1,   553,   554,
     3381     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     3382     565,   566,   567,   568,   569,   570,    -1,    -1,    -1,    -1,
    32503383      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3251       -1,    -1,    -1,    -1,   340,   177,    -1,    -1,    -1,   345,
    3252       -1,    64,    -1,   185,  1152,   187,   188,    70,    -1,    -1,
    3253      192,    74,   194,   195,    77,    78,    79,    80,    81,    82,
    3254       -1,    84,    85,    -1,    -1,   892,    -1,    -1,    -1,    92,
    3255       -1,  1519,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3256       -1,    -1,    -1,   106,    -1,   108,    -1,  1195,   111,    -1,
    3257       -1,    -1,   115,   116,   117,   118,   119,   120,    -1,    63,
    3258       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,
    3259       -1,    75,  1220,    77,   420,   421,    -1,    -1,    -1,    -1,
    3260       84,   427,   264,    -1,    -1,  1233,    -1,  1235,    -1,    -1,
     3384      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1153,    -1,
     3385    1248,   596,     0,    -1,    -1,     3,     4,     5,     6,     7,
     3386       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3387      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3388      -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
     3389      38,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3390      19,    20,    21,    22,    23,    24,    25,    26,  1213,    -1,
     3391      -1,  1309,    -1,  1311,    62,    -1,    -1,    65,    37,    67,
     3392      -1,    69,    70,    -1,    72,    73,    74,    -1,  1233,    -1,
     3393      -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
     3394      -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,   694,
     3395      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
     3396      -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3397      -1,   716,    -1,    -1,    -1,    -1,  1281,  1282,    -1,    -1,
     3398      -1,    -1,    -1,    -1,   729,    -1,    -1,    -1,    -1,    -1,
     3399      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1397,
    32613400      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3262       -1,    -1,   448,    -1,    -1,   451,    -1,    -1,   975,    -1,
    3263      114,   457,   116,   117,   118,    -1,  1264,    -1,    -1,    -1,
    3264       -1,    -1,    -1,    -1,  1272,  1273,  1274,     7,    -1,    -1,
    3265       10,    11,    12,    13,    14,  1283,  1284,    -1,   484,    -1,
    3266       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1297,
    3267      496,    -1,    -1,   157,    -1,    -1,    36,    37,    38,    -1,
    3268     1027,  1028,   508,  1030,  1031,    -1,   512,    -1,   514,   515,
    3269       -1,    -1,    -1,  1321,    -1,    -1,    -1,    -1,    -1,    -1,
    3270       -1,   527,    -1,  1050,    64,    65,    -1,    -1,    -1,    -1,
    3271       70,    -1,    -1,    -1,    74,    -1,    -1,    77,    78,    79,
    3272       80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,
    3273       -1,    -1,    92,   217,    -1,   219,   220,   221,    -1,    -1,
    3274       -1,    -1,  1089,  1090,    -1,    -1,   106,    -1,   108,    -1,
    3275       -1,    -1,    -1,   579,    -1,   115,   116,   117,   118,   119,
    3276      120,    -1,    -1,    -1,    -1,   591,    -1,   593,    -1,    -1,
    3277      596,   255,    -1,    -1,    -1,   259,    -1,    -1,    -1,    -1,
    3278       -1,    -1,  1410,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3279       -1,   275,    -1,    -1,    -1,    -1,   622,    -1,    -1,    -1,
    3280       -1,   627,    -1,    -1,    -1,  1152,    -1,    -1,    -1,    -1,
    3281      636,   637,   638,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3282       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   654,    -1,
    3283       -1,    -1,  1460,    -1,    -1,    -1,    -1,    -1,    -1,  1467,
    3284      324,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1195,    -1,
    32853401      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3286       -1,   345,    -1,   689,    -1,    -1,   350,   351,    -1,    -1,
    3287       -1,    -1,    -1,  1220,   358,    -1,    -1,    -1,    -1,    -1,
    3288       -1,    -1,    -1,    -1,   710,    -1,  1233,    -1,  1235,    -1,
    3289       -1,  1519,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
    3290       -1,    -1,   728,    -1,   730,    -1,    -1,    -1,    -1,    -1,
    3291       -1,    -1,    -1,   575,   576,    -1,   400,  1264,    -1,    -1,
    3292       -1,    -1,    -1,    -1,    -1,  1272,  1273,  1274,    -1,    -1,
    3293       -1,    -1,    -1,    -1,   418,    -1,  1283,  1284,   764,   423,
    3294       -1,   425,    -1,   605,    -1,    89,   608,   609,    -1,   611,
    3295     1297,   613,   614,    -1,    -1,    99,   618,   619,   442,    -1,
    3296       -1,   445,   446,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3297       -1,    -1,    -1,    36,  1321,    38,    -1,   461,    -1,    -1,
    3298       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3299       -1,   475,   818,    -1,    -1,    -1,   822,    -1,   482,   825,
    3300       -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
    3301      154,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3302       -1,    84,    85,   167,    -1,    -1,    -1,    -1,    -1,    92,
    3303       -1,    -1,    -1,    -1,   696,    -1,    -1,    -1,    -1,   701,
    3304      702,    -1,    -1,   106,    -1,   707,   190,    -1,    -1,    -1,
    3305       -1,    -1,   115,   116,   117,   118,   119,   120,    -1,    -1,
    3306      204,    -1,    -1,  1410,    -1,    -1,    -1,    -1,    -1,   213,
    3307       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   223,
    3308       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3309       -1,    -1,   918,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3310       -1,    -1,    -1,    -1,   248,    -1,    -1,    -1,    -1,   253,
    3311       -1,    -1,   596,  1460,    -1,    -1,    -1,    -1,    -1,    -1,
    3312     1467,    -1,   266,    -1,    -1,    -1,    -1,    -1,   272,    -1,
    3313      274,    -1,    -1,    -1,   960,    -1,    -1,    -1,    -1,    -1,
    3314      624,    -1,    -1,    -1,    -1,   629,    -1,   291,    -1,   975,
    3315       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3316       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3317       26,    27,  1519,    29,    30,    31,    -1,    -1,   143,    -1,
    3318       -1,    37,    -1,  1009,    -1,    -1,    -1,    -1,   153,    -1,
    3319      334,    -1,    -1,    -1,    -1,   339,    -1,    -1,    -1,    -1,
    3320      165,    -1,    -1,    -1,  1030,  1031,    -1,    -1,    -1,    65,
    3321       -1,    -1,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
    3322       76,    -1,    -1,   367,    -1,    81,    82,   371,   372,    -1,
    3323      374,    -1,   716,    -1,    -1,    -1,   380,   381,    -1,   383,
    3324      384,    -1,   386,    -1,   388,    -1,   730,    -1,    -1,    -1,
    3325      106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3326      116,   405,    -1,    -1,    -1,    -1,   750,    -1,  1094,   413,
    3327      235,    -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,
    3328       14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3329       -1,    -1,    -1,    -1,   438,   260,    -1,    -1,    -1,    -1,
    3330       -1,    -1,    36,    37,    38,   449,    10,    11,    12,    13,
    3331       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3332       24,    25,    26,    -1,    -1,   809,  1152,    -1,   472,    -1,
    3333       64,    65,    -1,    37,   478,    -1,    70,    -1,   822,   483,
    3334       74,    -1,    -1,    77,    78,    79,    80,    81,    82,    -1,
    3335       84,    85,    -1,    -1,    -1,    -1,    -1,   841,    92,    -1,
    3336       -1,    65,    -1,    -1,    -1,   152,   153,    -1,  1194,    -1,
    3337       -1,    -1,   106,    -1,   108,   519,    -1,    -1,    -1,    -1,
    3338       -1,   115,   116,   117,   118,   119,   120,    -1,    -1,    -1,
    3339       -1,   535,    -1,    -1,    -1,    -1,    -1,    -1,   185,    -1,
    3340       -1,    -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,  1235,
    3341      375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3342       -1,    -1,    -1,    -1,    -1,    -1,    -1,   571,    -1,  1091,
    3343       -1,    -1,    -1,    -1,    -1,    -1,   580,    36,    -1,    38,
    3344       -1,    -1,    -1,   587,   928,    -1,    -1,    -1,   592,    -1,
    3345       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1283,  1284,   603,
    3346       -1,    -1,    -1,    -1,    -1,    64,  1292,    -1,    -1,    -1,
    3347      954,    70,    -1,    -1,    -1,    74,    -1,   264,    77,    78,
    3348       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3349       -1,    -1,    -1,    92,    -1,    -1,    -1,   981,    -1,    -1,
    3350      644,    -1,    -1,    -1,    -1,    -1,    -1,   106,    -1,   108,
    3351       -1,   476,    -1,    -1,    -1,   114,   115,   116,   117,   118,
    3352      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,
    3353       -1,    -1,   319,    -1,    -1,   679,    -1,    -1,    -1,  1023,
    3354      327,   328,    -1,   330,   331,    -1,    -1,    -1,    -1,   514,
    3355       -1,    -1,    -1,   340,  1216,    -1,    -1,   344,    -1,    -1,
    3356       -1,    -1,   527,    -1,    -1,    -1,    -1,    -1,    -1,   534,
    3357       -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,   366,
    3358       -1,    -1,   547,   548,  1410,    -1,    -1,    -1,    -1,    -1,
    3359      734,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3360      744,   745,    -1,    -1,   569,   392,    -1,    -1,    -1,   396,
    3361       -1,    -1,    -1,   757,   579,    -1,    -1,    -1,    -1,    -1,
    3362       -1,   586,    -1,    -1,  1108,    -1,   591,    -1,    -1,    -1,
    3363      774,    -1,   776,    -1,    -1,    -1,   780,    -1,    -1,    -1,
    3364      427,    -1,    -1,  1469,    -1,  1471,    -1,    -1,    -1,    -1,
    3365       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3366       -1,    -1,    -1,   450,    -1,    -1,    -1,    -1,    -1,    -1,
    3367       -1,    -1,    -1,    -1,    -1,    -1,   641,    -1,    -1,  1505,
    3368       -1,  1507,    -1,    -1,   649,    -1,    -1,    -1,    -1,    -1,
    3369       -1,    -1,    -1,    -1,   481,    -1,    -1,   484,    -1,    -1,
    3370       -1,   845,    -1,    -1,    -1,    -1,    -1,    -1,   852,  1535,
    3371     1194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3372       -1,   865,    -1,   867,   689,    -1,    -1,    -1,    -1,    -1,
    3373       -1,    -1,    -1,    -1,    -1,    -1,   523,   881,    -1,   526,
    3374      527,    -1,    -1,    -1,   888,    -1,    -1,    -1,    -1,    -1,
    3375       -1,    -1,    -1,    -1,    -1,    -1,   900,    -1,    -1,   903,
    3376       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3377       -1,    -1,    -1,    -1,    -1,    -1,    -1,   921,    -1,    -1,
    3378       -1,    -1,    -1,    -1,   571,   572,    -1,    -1,    -1,    -1,
    3379       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   764,
    3380       -1,   766,    -1,   590,   591,    -1,   593,   772,  1292,    -1,
    3381       -1,    -1,    -1,    -1,   779,   602,    -1,   604,   605,    -1,
    3382       -1,    -1,    -1,    -1,   611,    -1,    -1,   278,   279,   280,
    3383       -1,    -1,    -1,    -1,   621,   622,   287,   288,    -1,    -1,
    3384      627,   292,   293,    -1,    -1,    -1,    -1,    -1,    -1,   636,
    3385      637,   638,    -1,   304,    -1,    -1,    -1,   822,   823,    -1,
    3386      825,    -1,    -1,    -1,  1008,    -1,    -1,   654,    -1,    -1,
    3387       -1,    -1,   659,   660,    -1,   840,   663,   664,    -1,    -1,
    3388       -1,    -1,    -1,   670,    -1,    -1,    -1,    -1,    -1,   340,
    3389       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3390       -1,   688,   689,   690,    -1,   692,    -1,    -1,    -1,   696,
    3391       -1,    -1,    -1,    -1,    -1,   880,    -1,    -1,    -1,   884,
    3392       -1,  1065,    -1,    -1,    -1,   376,    -1,    -1,    -1,    -1,
    3393     1074,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3394       -1,   728,   729,    10,    11,    12,    13,    14,    15,    16,
    3395       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3396     1104,    -1,    29,    30,    31,  1109,    -1,    -1,    -1,    -1,
    3397       37,    38,    -1,  1117,    -1,    -1,   763,   764,    -1,    -1,
    3398       -1,   768,   769,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3399       -1,    -1,    -1,    -1,    -1,   960,    -1,    -1,    65,    -1,
    3400       -1,    -1,    -1,  1147,    -1,    72,    73,    -1,    -1,    -1,
    3401      975,   976,    -1,    -1,    -1,  1159,    -1,   982,  1162,    -1,
    3402     1164,    -1,   809,   988,    -1,    -1,   991,    -1,   993,    -1,
    3403       -1,   818,    -1,    -1,  1178,  1179,    -1,   824,   825,    -1,
    3404       -1,   108,   829,    -1,   831,   112,    -1,  1012,    -1,   116,
    3405       -1,    -1,    -1,    -1,   841,    -1,  1200,    -1,  1023,    -1,
    3406       -1,    -1,    -1,    -1,    -1,    -1,  1550,    -1,    -1,    -1,
    3407       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3408     1045,    -1,  1047,    -1,    -1,    -1,  1230,    -1,    -1,    -1,
    3409       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1062,  1063,   550,
    3410      551,   552,   553,   554,   555,   556,   557,   558,   559,   560,
    3411      561,   562,   563,   564,   565,   566,   567,    -1,    -1,    -1,
    3412       -1,    -1,  1087,    -1,    -1,    -1,    -1,   914,    -1,    -1,
    3413       -1,    -1,    -1,    -1,    -1,   922,    -1,    -1,    -1,    -1,
    3414       -1,   928,   593,    -1,    -1,    -1,    -1,    -1,    -1,   936,
    3415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3416       -1,    -1,   949,   950,    -1,    -1,    -1,    -1,  1133,    -1,
    3417       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3418       -1,    -1,    -1,  1327,    -1,  1329,    -1,  1152,   975,    -1,
    3419       -1,    -1,    -1,    -1,   981,    -1,    -1,    -1,  1342,    -1,
    3420     1344,    -1,  1167,  1168,    -1,    -1,    -1,    -1,    -1,    -1,
    3421       -1,    -1,   999,  1000,    -1,    -1,    -1,    -1,  1362,    -1,
    3422       -1,    -1,  1009,    -1,    -1,    -1,    -1,    -1,  1015,  1016,
    3423       -1,  1018,  1019,  1020,  1378,  1379,    -1,    -1,    -1,    -1,
    3424      691,    -1,    -1,  1030,  1031,    -1,    -1,  1391,    -1,    -1,
    3425     1394,    -1,  1217,    -1,    -1,    36,    -1,    38,    -1,    -1,
    3426       -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3427       -1,    -1,  1416,    -1,    -1,   726,    -1,    -1,    -1,    -1,
    3428       -1,  1425,    -1,    64,  1428,  1250,  1430,  1431,  1432,    70,
    3429       -1,    -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,
    3430       81,    82,    -1,    84,    85,    -1,    -1,    -1,  1095,  1096,
    3431     1097,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3432      771,  1108,    -1,    -1,    -1,   106,    -1,   108,    -1,  1473,
    3433       -1,  1475,   113,  1477,   115,   116,   117,   118,   119,   120,
    3434       -1,    -1,    -1,    -1,    -1,    -1,  1311,    -1,  1492,    -1,
    3435       -1,   802,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3436       -1,    -1,    -1,    -1,    -1,  1152,   817,    -1,    -1,    -1,
     3402      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   774,
    34373403      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    34383404       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    34393405      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3440       -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
    3441       37,    38,    39,    -1,    41,    -1,    -1,    44,    45,    46,
    3442       47,    48,    49,    50,    51,  1212,    -1,    -1,    55,    -1,
    3443       -1,    -1,    59,    60,    -1,    62,  1401,    64,    65,    -1,
    3444       67,    -1,    69,    70,    -1,    72,    73,    74,  1235,    -1,
     3406      -1,   806,    29,    30,    31,    32,    -1,    -1,    35,    36,
     3407      37,    38,    -1,    -1,    -1,    -1,   821,    -1,    -1,    -1,
     3408      -1,  1479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3409      -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    65,    -1,
     3410      67,  1406,    69,    70,    -1,    72,    73,    74,    -1,    -1,
    34453411      77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    34463412      -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,
    3447       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
    3448       -1,   108,    -1,    -1,   111,    36,    -1,    38,   115,   116,
    3449      117,   118,   119,   120,    -1,    -1,  1283,  1284,   125,    -1,
    3450       -1,    -1,   129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3451       -1,    -1,    -1,    64,    -1,    -1,    -1,   968,  1483,    70,
    3452       -1,    72,    73,    74,    -1,    -1,    77,    78,    79,    80,
    3453       81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
    3454       -1,    92,    -1,    -1,    -1,    -1,   997,    -1,    -1,    -1,
    3455       -1,    -1,    -1,    -1,    -1,   106,    -1,   108,  1009,   110,
    3456      111,    -1,    -1,    -1,   115,   116,   117,   118,   119,   120,
    3457     1535,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
    3458        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3459       19,    20,    21,    22,    23,    24,    25,    26,    -1,  1050,
    3460       29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
     3413      -1,    -1,    -1,  1531,    -1,    -1,    -1,    -1,    -1,    -1,
     3414     107,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,
     3415     117,   118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,
     3416      -1,    -1,    -1,   130,    -1,    -1,    -1,    -1,    -1,    -1,
    34613417      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3462       -1,    -1,    -1,  1410,    -1,    -1,    -1,    -1,    -1,    -1,
    3463       -1,    -1,    -1,    -1,    -1,    64,    65,    -1,    67,    -1,
    3464       69,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    3465       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3466       -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,
    3467       -1,    -1,    -1,    -1,    -1,  1126,    -1,   106,    36,   108,
    3468       38,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,   118,
    3469      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3470      129,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,
    3471       -1,    -1,    70,  1500,    -1,    -1,    74,    -1,  1169,    77,
    3472       78,    79,    80,    81,    82,    -1,    84,    85,    -1,    -1,
    3473       -1,    -1,  1183,  1184,    92,    -1,    -1,    -1,  1525,  1526,
    3474       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,    -1,
    3475      108,    -1,    -1,   111,    -1,    -1,    -1,   115,   116,   117,
    3476      118,   119,   120,  1550,     3,     4,     5,     6,     7,     8,
    3477        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3478       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3479       29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
    3480       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3481       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3482       -1,    29,    30,    31,    -1,    64,    65,    -1,    67,    37,
    3483       69,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    3484       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3485       -1,    -1,    -1,    92,    -1,    -1,    -1,    65,    -1,    -1,
    3486       -1,    -1,    -1,    -1,    72,    73,    -1,   106,    -1,   108,
    3487       -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,   118,
    3488      119,   120,    -1,    -1,     4,     5,     6,     7,     8,     9,
    3489       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3490       20,    21,    22,    23,    24,    25,    26,    -1,   116,    29,
    3491       30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,
    3492       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3493       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3494       -1,    -1,    -1,    -1,    64,    65,  1397,    67,    37,    69,
    3495       70,    -1,    72,    73,    74,    -1,    -1,    77,    78,    79,
    3496       80,    81,    82,  1414,    84,    85,    -1,    -1,    -1,    -1,
    3497       -1,    -1,    92,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3498       -1,    -1,    -1,    -1,    -1,    -1,   106,    76,   108,    -1,
    3499       -1,    -1,    -1,   113,    -1,   115,   116,   117,   118,   119,
    3500      120,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3418      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3419      -1,  1496,     3,     4,     5,     6,     7,     8,     9,    10,
     3420      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3421      21,    22,    23,    24,    25,    26,  1521,  1522,    29,    30,
     3422      31,    -1,    -1,    -1,    -1,    -1,    37,   972,    -1,    -1,
     3423      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3424      -1,  1546,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3425      -1,    -1,    -1,    -1,    65,    -1,    67,  1002,    69,    -1,
     3426      -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,  1014,
     3427       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    35013428      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3502       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3503       -1,    -1,    -1,    36,    37,    38,  1487,  1488,    10,    11,
    3504       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3505       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3506       -1,    64,    65,    -1,    67,    37,    69,    70,    -1,    72,
     3429      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
     3430      -1,   112,    35,    36,    37,    38,    39,    -1,    41,    -1,
     3431    1055,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
     3432      -1,    -1,    55,    -1,    -1,    -1,    59,    60,    -1,    62,
     3433      -1,    64,    65,    -1,    67,    -1,    69,    70,    -1,    72,
    35073434      73,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    35083435      -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,
    3509       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    70,    -1,
    3510       72,    73,    -1,   106,    -1,   108,    -1,    -1,    -1,    -1,
    3511      113,    -1,   115,   116,   117,   118,   119,   120,     4,     5,
    3512        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3436      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3437      -1,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,   112,
     3438      -1,    -1,  1127,   116,   117,   118,   119,   120,   121,    -1,
     3439      -1,    -1,    -1,   126,    -1,    -1,    -1,   130,    -1,    -1,
     3440       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3441      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3442      23,    24,    25,    26,    -1,  1170,    29,    30,    31,    32,
     3443      -1,    -1,    35,    36,    37,    38,    -1,    -1,    -1,  1184,
     3444    1185,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3445      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3446      -1,    64,    65,    -1,    67,    -1,    69,    70,    37,    72,
     3447      73,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
     3448      -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,
     3449      -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
     3450      -1,    -1,    -1,    -1,   107,    -1,   109,    76,    -1,    -1,
     3451      -1,    -1,    -1,   116,   117,   118,   119,   120,   121,     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,    -1,    -1,    -1,
     3455      -1,    36,    37,    38,    10,    11,    12,    13,    14,    15,
    35133456      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3514       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3515       36,    37,    38,    10,    11,    12,    13,    14,    15,    16,
     3457      26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,    64,
     3458      65,    37,    67,    -1,    69,    70,    -1,    72,    73,    74,
     3459      -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
     3460      85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    65,
     3461      -1,    -1,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
     3462      76,    -1,   107,    -1,   109,    81,    82,    -1,    -1,   114,
     3463      -1,   116,   117,   118,   119,   120,   121,    -1,    -1,    -1,
     3464      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1393,    -1,
     3465      -1,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
     3466      -1,   117,    -1,    -1,    -1,  1410,    -1,     4,     5,     6,
     3467       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    35163468      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3517       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    64,    65,
    3518       37,    67,    -1,    69,    70,    -1,    72,    73,    74,    -1,
    3519       -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
    3520       -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    65,    -1,
    3521       -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,
    3522      106,    -1,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
    3523      116,   117,   118,   119,   120,     4,     5,     6,     7,     8,
     3469      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3470      37,    38,    10,    11,    12,    13,    14,    15,    16,    17,
     3471      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3472      -1,    29,    30,    31,    -1,    -1,    -1,    64,    65,    37,
     3473      67,    -1,    69,    70,    -1,    72,    73,    74,  1483,  1484,
     3474      77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
     3475      -1,    -1,    -1,    -1,    -1,    92,    -1,    65,    -1,    -1,
     3476      -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
     3477     107,    -1,   109,    -1,    -1,    -1,    -1,   114,    -1,   116,
     3478     117,   118,   119,   120,   121,     4,     5,     6,     7,     8,
    35243479       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3525       19,    20,    21,    22,    23,    24,    25,    26,    -1,   116,
     3480      19,    20,    21,    22,    23,    24,    25,    26,    -1,   117,
    35263481      29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    35273482      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    35283483      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3529       30,    31,    32,    33,    34,    64,    65,    37,    67,    -1,
     3484      30,    31,    -1,    -1,    -1,    64,    65,    37,    67,    -1,
    35303485      69,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    35313486      79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    35323487      -1,    -1,    -1,    92,    -1,    65,    -1,    -1,    -1,    -1,
    3533       -1,    -1,    72,    73,    -1,    -1,    -1,   106,    -1,   108,
    3534       -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,   118,
    3535      119,   120,     4,     5,     6,     7,     8,     9,    10,    11,
     3488      -1,    -1,    72,    73,    -1,    -1,    -1,    -1,   107,    -1,
     3489     109,    -1,    -1,    -1,    -1,   114,    -1,   116,   117,   118,
     3490     119,   120,   121,     4,     5,     6,     7,     8,     9,    10,
     3491      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3492      21,    22,    23,    24,    25,    26,    -1,   117,    29,    30,
     3493      31,    -1,    -1,    -1,    -1,    36,    37,    38,    10,    11,
    35363494      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3537       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3538       -1,    -1,    -1,    -1,    36,    37,    38,    10,    11,    12,
     3495      22,    23,    24,    25,    26,    27,    -1,    -1,    -1,    -1,
     3496      -1,    -1,    -1,    64,    65,    37,    67,    -1,    69,    70,
     3497      -1,    72,    73,    74,    -1,    -1,    77,    78,    79,    80,
     3498      81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
     3499      -1,    92,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
     3500      -1,    -1,    -1,    -1,    76,    -1,   107,    -1,   109,    -1,
     3501      -1,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
     3502     121,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    35393503      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    35403504      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3541       -1,    -1,    64,    65,    37,    67,    -1,    69,    70,    -1,
    3542       72,    73,    74,    -1,    -1,    77,    78,    79,    80,    81,
    3543       82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
    3544       92,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
    3545       73,    -1,    -1,    -1,   106,    -1,   108,    -1,    -1,    -1,
    3546       -1,    -1,    -1,   115,   116,   117,   118,   119,   120,     4,
     3505      -1,    -1,    -1,    36,    37,    38,    10,    11,    12,    13,
     3506      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3507      24,    25,    26,    -1,    -1,    29,    30,    31,    32,    33,
     3508      34,    64,    65,    37,    67,    -1,    69,    70,    -1,    72,
     3509      73,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
     3510      -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,
     3511      -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
     3512      -1,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
     3513      -1,    -1,    -1,   116,   117,   118,   119,   120,   121,     4,
    35473514       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    35483515      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    35543521      -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    35553522      85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    65,
    3556       -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    3557       -1,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3558      115,   116,   117,   118,   119,   120,     4,     5,     6,     7,
     3523      -1,    -1,    -1,    -1,    70,    -1,    72,    73,    -1,    -1,
     3524      -1,    -1,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     3525      -1,   116,   117,   118,   119,   120,   121,     4,     5,     6,
     3526       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3527      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3528      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3529      37,    38,    10,    11,    12,    13,    14,    15,    16,    17,
     3530      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3531      -1,    29,    30,    31,    -1,    -1,    -1,    64,    65,    37,
     3532      67,    -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,
     3533      77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
     3534      -1,    -1,    -1,    -1,    -1,    92,    -1,    65,    -1,    -1,
     3535      -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
     3536     107,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,
     3537     117,   118,   119,   120,   121,     3,     4,     5,     6,     7,
    35593538       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    35603539      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3561       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
    3562       38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3563       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3564       -1,    -1,    -1,    -1,    -1,    -1,    64,    65,    -1,    67,
    3565       -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,    77,
    3566       78,    79,    80,    81,    82,    -1,    84,    85,    -1,    -1,
    3567       -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,
    3568       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,    -1,
    3569      108,    -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,
    3570      118,   119,   120,     0,    -1,    -1,     3,     4,     5,     6,
    3571        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3572       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3573       -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,
    3574       37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3575       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3576       -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,
    3577       67,    -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,
    3578       -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,
    3579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3580       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
    3581       -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
     3540      -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
     3541      38,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3542      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3543      29,    30,    31,    -1,    62,    -1,    -1,    65,    37,    67,
     3544      -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,    -1,
     3545      -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
     3546      -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
     3547      -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,   107,
     3548      -1,   109,    -1,    -1,    -1,   113,    -1,    -1,    -1,   117,
    35823549       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    35833550      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     
    35903557      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35913558      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3592       -1,    -1,    -1,   106,    -1,   108,    -1,    -1,    -1,   112,
    3593       -1,    -1,    -1,   116,     3,     4,     5,     6,     7,     8,
     3559      -1,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
     3560      -1,    -1,    -1,    -1,   117,     3,     4,     5,     6,     7,
     3561       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3562      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3563      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
     3564      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3565      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3566      -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    67,
     3567      -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,    -1,
     3568      -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
     3569      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3570      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
     3571      -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3572       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3573      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3574      23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
     3575      -1,    -1,    35,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3576      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3577      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3578      -1,    -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,
     3579      73,    -1,    -1,    76,    -1,     3,     4,     5,     6,     7,
     3580       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3581      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3582      -1,    29,    30,    31,    32,    -1,   109,    35,    -1,    37,
     3583      -1,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,
     3584      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3585      -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    67,
     3586      -1,    69,    -1,    -1,    72,    73,     3,     4,     5,     6,
     3587       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3588      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3589      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3590      37,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3591      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3592      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
     3593      67,    -1,    69,    -1,    -1,    72,    73,     4,     5,     6,
     3594       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3595      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3596      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3597      37,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3598     117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3599      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
     3600      67,    -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,
     3601      -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,
     3602      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3603      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3604     107,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3605     117,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3606      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3607      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3608      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3609      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3610      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3611      -1,    -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,
     3612      73,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3613      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3614      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3615      -1,    -1,    -1,    -1,    37,   108,   109,    -1,    -1,    -1,
     3616      -1,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,
     3617      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3618      -1,    -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,
     3619      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3620      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3621      -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3622      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     3623      -1,    -1,    -1,    -1,   117,     4,     5,     6,     7,     8,
    35943624       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    35953625      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3596       29,    30,    31,    32,    -1,    -1,    35,    -1,    37,    38,
     3626      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
     3627      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3628      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3629      26,    -1,    -1,    29,    30,    31,    65,    -1,    67,    -1,
     3630      69,    37,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
    35973631      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3598       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3599       -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    67,    -1,
    3600       69,    70,    -1,    72,    73,    74,    -1,    -1,    -1,    -1,
    3601       -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,    -1,
    3602       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3603       -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,    -1,   108,
    3604       -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,     3,     4,
     3632      -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    65,
     3633      -1,    -1,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
     3634     109,    -1,    -1,    -1,    -1,    81,    82,    -1,   117,     4,
    36053635       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    36063636      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3607       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3608       -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3609       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3610       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3611       65,    -1,    67,    -1,    69,    70,    -1,    72,    73,    74,
    3612       -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
    3613       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3614       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3615       -1,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3616       -1,   116,     3,     4,     5,     6,     7,     8,     9,    10,
    3617       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3618       21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
    3619       31,    32,    -1,    -1,    35,    -1,    37,    -1,    -1,    -1,
    3620       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3621       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3622       -1,    -1,    -1,    -1,    65,    -1,    67,    -1,    69,    -1,
    3623       -1,    72,    73,    -1,    -1,    76,     3,     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,    32,    -1,   108,    35,    -1,
    3627       37,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,
    3628       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3629       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3630       67,    -1,    69,    -1,    -1,    72,    73,    -1,     3,     4,
    3631        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3632       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3633       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3634       -1,   108,    37,    -1,    -1,    -1,    -1,    -1,    -1,   116,
     3637      25,    26,    -1,   109,    29,    30,    31,    -1,    -1,    -1,
     3638      -1,   117,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36353639      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36363640      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     
    36393643      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    36403644      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3641       -1,    -1,    37,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3642       -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3645      -1,    -1,    37,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     3646      -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36433647      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3644       65,    -1,    67,    -1,    69,    70,    -1,    72,    73,    74,
    3645       -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
     3648      65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,     4,
     3649       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3650      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3651      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3652      -1,    -1,    37,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     3653      -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36463654      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3655      65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,     4,
     3656       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3657      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3658      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3659      -1,    -1,    37,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     3660      -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36473661      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3648       -1,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3649       -1,   116,     4,     5,     6,     7,     8,     9,    10,    11,
    3650       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3651       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3652       -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
    3653       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3654       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3655       -1,    -1,    -1,    65,    -1,    67,    -1,    69,    -1,    -1,
    3656       72,    73,    -1,    -1,     4,     5,     6,     7,     8,     9,
    3657       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3658       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3659       30,    31,    -1,    -1,    -1,   107,   108,    37,    -1,    -1,
    3660       -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
    3661       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3662       -1,    -1,    -1,    -1,    -1,    65,    -1,    67,    -1,    69,
    3663       -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
    3664       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3665       -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,
    3666       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,
    3667       -1,    -1,    -1,    -1,    -1,    -1,   116,     4,     5,     6,
    3668        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3669       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3670       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3671       37,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
    3672       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3673       24,    25,    26,    27,    -1,    29,    30,    31,    65,    -1,
    3674       67,    -1,    69,    37,    -1,    72,    73,    -1,    -1,    -1,
    3675       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3676       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3677       -1,    65,    -1,    -1,    -1,    -1,    70,    -1,    72,    73,
    3678       74,   108,    76,    -1,    -1,    -1,    -1,    81,    82,   116,
    3679        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3680       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3681       24,    25,    26,    -1,   108,    29,    30,    31,    -1,    -1,
    3682       -1,    -1,   116,    37,    -1,    -1,    -1,    -1,    -1,    -1,
    3683       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3684       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3685       -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,
    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,    -1,    -1,
    3689       -1,    -1,    -1,    37,   108,    -1,    -1,    -1,    -1,    -1,
    3690       -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3691       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3692       -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,
    3693        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3694       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3695       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3696       -1,    -1,    -1,    37,   108,    -1,    -1,    -1,    -1,    -1,
    3697       -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3698       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3699       -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,
    3700        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3701       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3702       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3703       -1,    -1,    -1,    37,   108,    -1,    -1,    -1,    -1,    -1,
    3704       -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3705       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3706       -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,
    3707       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3708       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3709       30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,
    3710       -1,    -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,
    3711       -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3712       -1,    -1,    -1,    -1,    64,    65,    -1,    -1,    -1,    -1,
    3713       70,    -1,    72,    73,    74,    -1,    -1,    77,    78,    79,
    3714       80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,
    3715       -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3716       -1,    -1,    -1,    -1,    -1,    -1,   106,    -1,   108,    -1,
    3717       -1,   111,    -1,    -1,    -1,   115,   116,   117,   118,   119,
    3718      120,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3662      65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,    10,
     3663      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3664      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3665      31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
     3666      -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     3667      -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3668      -1,    -1,    -1,    64,    65,    -1,    -1,    -1,    -1,    70,
     3669      -1,    72,    73,    74,    -1,    -1,    77,    78,    79,    80,
     3670      81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
     3671      -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3672      -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,   109,    -1,
     3673      -1,   112,    -1,    -1,    -1,   116,   117,   118,   119,   120,
     3674     121,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    37193675      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    37203676      29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    37213677      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3722       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3678      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    37233679      29,    30,    31,    -1,    -1,    64,    65,    -1,    37,    -1,
    37243680      -1,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    37253681      79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    37263682      -1,    -1,    -1,    92,    -1,    -1,    65,    -1,    -1,    -1,
    3727       -1,    70,    -1,    72,    73,    74,    -1,   106,    -1,   108,
    3728      109,    -1,    81,    82,    -1,    -1,   115,   116,   117,   118,
    3729      119,   120,    10,    11,    12,    13,    14,    15,    16,    17,
    3730       18,    19,    20,    21,    22,    23,    24,    25,    26,   108,
    3731       -1,    29,    30,    31,    -1,    -1,    -1,   116,    36,    37,
    3732       38,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3733       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3734       -1,    29,    30,    31,    -1,    -1,    64,    65,    -1,    37,
    3735       -1,    -1,    70,    -1,    72,    73,    74,    -1,    -1,    77,
    3736       78,    79,    80,    81,    82,    -1,    84,    85,    -1,    -1,
    3737       -1,    -1,    -1,    -1,    92,    -1,    -1,    65,    -1,    -1,
    3738       -1,    -1,    70,    -1,    72,    73,    -1,    -1,   106,   107,
    3739      108,    -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,
    3740      118,   119,   120,    10,    11,    12,    13,    14,    15,    16,
     3683      -1,    70,    -1,    72,    73,    74,    -1,    76,   107,    -1,
     3684     109,   110,    81,    82,    -1,    -1,    -1,   116,   117,   118,
     3685     119,   120,   121,    10,    11,    12,    13,    14,    15,    16,
    37413686      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3742      108,    -1,    29,    30,    31,    -1,    -1,    -1,   116,    36,
     3687     109,    -1,    29,    30,    31,    -1,    -1,    -1,   117,    36,
    37433688      37,    38,    -1,    10,    11,    12,    13,    14,    15,    16,
    37443689      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3745       -1,    -1,    29,    30,    31,    -1,    -1,    64,    65,    -1,
    3746       37,    38,    -1,    70,    -1,    72,    73,    74,    -1,    -1,
     3690      27,    -1,    29,    30,    31,    -1,    -1,    64,    65,    -1,
     3691      37,    -1,    -1,    70,    -1,    72,    73,    74,    -1,    -1,
    37473692      77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    37483693      -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    65,    -1,
    3749       -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,   106,
    3750       -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,   115,   116,
    3751      117,   118,   119,   120,    10,    11,    12,    13,    14,    15,
    3752       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3753       26,   108,    -1,    29,    30,    31,    -1,    -1,    -1,   116,
    3754       36,    37,    38,    -1,    10,    11,    12,    13,    14,    15,
    3755       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3756       26,    -1,    -1,    29,    30,    31,    -1,    -1,    64,    65,
    3757       -1,    37,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
    3758       -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
    3759       -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    65,
    3760       -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    3761      106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,   115,
    3762      116,   117,   118,   119,   120,    10,    11,    12,    13,    14,
     3694      -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    76,
     3695     107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,
     3696     117,   118,   119,   120,   121,    10,    11,    12,    13,    14,
    37633697      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3764       25,    26,   108,    -1,    29,    30,    31,    -1,    -1,    -1,
    3765      116,    36,    37,    38,    -1,    10,    11,    12,    13,    14,
     3698      25,    26,   109,    -1,    29,    30,    31,    -1,    -1,    -1,
     3699     117,    36,    37,    38,    -1,    10,    11,    12,    13,    14,
    37663700      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37673701      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    64,
     
    37693703      -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    37703704      85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,
    3771       65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,
    3772       -1,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3773      115,   116,   117,   118,   119,   120,    10,    11,    12,    13,
    3774       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3775       24,    25,    26,   108,    -1,    29,    30,    31,    -1,    -1,
    3776       -1,   116,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
     3705      65,    -1,    -1,    -1,    -1,    70,    -1,    72,    73,    -1,
     3706      -1,    -1,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     3707      -1,   116,   117,   118,   119,   120,   121,    10,    11,    12,
     3708      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3709      23,    24,    25,    26,   109,    -1,    29,    30,    31,    -1,
     3710      -1,    -1,   117,    36,    37,    38,    -1,    10,    11,    12,
     3711      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3712      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3713      -1,    64,    65,    -1,    37,    38,    -1,    70,    -1,    72,
     3714      73,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
     3715      -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,
     3716      -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
     3717      73,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
     3718      -1,    -1,    -1,   116,   117,   118,   119,   120,   121,    10,
     3719      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3720      21,    22,    23,    24,    25,    26,   109,    -1,    29,    30,
     3721      31,    -1,    -1,    -1,   117,    36,    37,    38,    -1,    10,
     3722      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3723      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3724      31,    -1,    -1,    64,    65,    -1,    37,    -1,    -1,    70,
     3725      -1,    72,    73,    74,    -1,    -1,    77,    78,    79,    80,
     3726      81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
     3727      -1,    92,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
     3728      -1,    72,    73,    -1,    -1,    -1,   107,    -1,   109,    -1,
     3729      -1,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
     3730     121,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3731      19,    20,    21,    22,    23,    24,    25,    26,   109,    -1,
     3732      29,    30,    31,    -1,    -1,    -1,   117,    36,    37,    38,
     3733      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3734      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3735      30,    31,    -1,    -1,    -1,    64,    65,    37,    -1,    -1,
     3736      -1,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
     3737      79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
     3738      -1,    -1,    -1,    92,    -1,    65,    -1,    -1,    -1,    -1,
     3739      70,    -1,    72,    73,    74,    -1,    -1,    -1,   107,    -1,
     3740     109,    81,    82,    -1,    -1,    -1,    -1,   116,   117,   118,
     3741     119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3742      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,   109,
     3743      -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    10,    11,
     3744      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3745      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3746      -1,    -1,    -1,    -1,    -1,    37,    -1,    10,    11,    12,
     3747      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3748      23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
     3749      -1,    -1,    -1,    65,    37,    -1,    -1,    -1,    70,    -1,
     3750      72,    73,    74,    -1,    -1,    -1,    -1,    -1,    -1,    81,
     3751      82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3752      -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
     3753      73,    -1,    -1,    76,    -1,   107,    -1,   109,    -1,    -1,
     3754      -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,
    37773755      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3778       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3779       64,    65,    -1,    -1,    -1,    -1,    70,    -1,    72,    73,
    3780       74,    -1,    -1,    77,    78,    79,    80,    81,    82,    -1,
    3781       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,
    3782       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3783       -1,    -1,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,
    3784       -1,   115,   116,   117,   118,   119,   120,     3,     4,     5,
    3785        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3756      -1,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
     3757      -1,    -1,    -1,    -1,   117,    10,    11,    12,    13,    14,
     3758      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3759      25,    26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,
     3760      -1,    -1,    37,    -1,    10,    11,    12,    13,    14,    15,
    37863761      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    37873762      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3788       -1,    37,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3789       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3790       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    65,
    3791       -1,    67,    37,    69,    -1,    -1,    72,    73,    -1,    -1,
     3763      65,    37,    38,    -1,    -1,    -1,    -1,    72,    73,    -1,
     3764      -1,    76,    10,    11,    12,    13,    14,    15,    16,    17,
     3765      18,    19,    20,    21,    22,    23,    24,    25,    26,    65,
     3766      -1,    29,    30,    31,    -1,    -1,    72,    73,    -1,    37,
     3767      38,    -1,   107,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     3768      -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3769      -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
     3770      -1,    -1,    -1,   109,    72,    73,    -1,   113,    -1,    -1,
     3771      -1,   117,    10,    11,    12,    13,    14,    15,    16,    17,
     3772      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3773      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
     3774      -1,   109,    -1,    -1,    -1,   113,    -1,    -1,    -1,   117,
     3775      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3776      20,    21,    22,    23,    24,    25,    26,    65,    -1,    29,
     3777      30,    31,    -1,    -1,    72,    73,    -1,    37,    -1,    10,
     3778      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3779      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3780      31,    -1,    -1,    -1,    -1,    65,    37,    -1,    -1,   107,
     3781      -1,   109,    72,    73,    -1,    -1,    -1,    -1,    -1,   117,
    37923782      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3793       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3794       65,    -1,    -1,    -1,    -1,    70,    -1,    72,    73,    74,
    3795       -1,    -1,    -1,    -1,    -1,   111,    81,    82,    10,    11,
    3796       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3797       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3798       -1,   106,    -1,   108,    -1,    37,    -1,    -1,    -1,    -1,
    3799       -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3800       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3801       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    70,    -1,
    3802       72,    73,    74,    -1,    -1,    -1,    -1,    -1,    -1,    81,
    3803       82,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3804       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3805       29,    30,    31,    -1,   106,    -1,   108,    -1,    37,    -1,
    3806       -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
    3807       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3808       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3809       -1,    70,    -1,    72,    73,    74,    -1,    -1,    -1,    -1,
    3810       -1,    -1,    81,    82,    10,    11,    12,    13,    14,    15,
    3811       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3812       26,    -1,    -1,    29,    30,    31,    -1,   106,    -1,   108,
    3813       -1,    37,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,
    3814       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3815       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3816       -1,    -1,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
    3817       -1,    -1,    -1,    -1,    -1,    81,    82,    10,    11,    12,
    3818       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3819       23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
    3820      106,    -1,   108,    -1,    37,    -1,    -1,    -1,    -1,    -1,
    3821      116,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3822       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3823       26,    27,    65,    29,    30,    31,    -1,    -1,    -1,    72,
    3824       73,    37,    -1,    76,    10,    11,    12,    13,    14,    15,
    3825       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3826       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    65,
    3827       -1,    37,    38,   106,    -1,   108,    72,    73,    -1,    -1,
    3828       76,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,
    3829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3830       -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    3831      106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3832      116,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3833       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3834       26,    27,   108,    29,    30,    31,   112,    -1,    -1,    -1,
    3835      116,    37,    -1,    10,    11,    12,    13,    14,    15,    16,
    3836       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3837       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    65,
    3838       37,    38,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    3839       76,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3840       19,    20,    21,    22,    23,    24,    25,    26,    65,    -1,
    3841       29,    30,    31,    -1,    -1,    72,    73,    -1,    37,    -1,
    3842       -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3843      116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3844       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3845       -1,   108,    -1,    72,    73,   112,    -1,    -1,    -1,   116,
    3846       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3847       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3848       29,    30,    31,    -1,    -1,    -1,    -1,   106,    37,   108,
    3849       -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,    10,    11,
    3850       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3851       22,    23,    24,    25,    26,    -1,    65,    29,    30,    31,
    3852       -1,    -1,    -1,    72,    73,    37,    -1,    10,    11,    12,
    3853       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3854       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3855       -1,    -1,    -1,    65,    37,    -1,    -1,   106,    -1,   108,
    3856       72,    73,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,
    3857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3858       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
    3859       73,    -1,    -1,    -1,    -1,    -1,   108,    -1,    -1,    -1,
    3860       -1,    -1,    -1,    -1,   116,    -1,    -1,    10,    11,    12,
    3861       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3862       23,    24,    25,    26,    -1,   108,    29,    30,    31,    -1,
    3863       -1,    -1,    -1,   116,    37,    -1,    10,    11,    12,    13,
    3864       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3865       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3866       -1,    -1,    65,    37,    -1,    -1,    -1,    -1,    -1,    72,
    3867       73,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3868       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3869       -1,    65,    29,    30,    31,    -1,    -1,    -1,    72,    73,
    3870       37,    -1,    -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,
    3871       -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,
    3872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3873       -1,    -1,    -1,    -1,   108,    72,    73,    -1,    -1,    -1,
    3874       -1,    -1,   116,    10,    11,    12,    13,    14,    15,    16,
    3875       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3876       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3877       37,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
     3783      -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
     3784      -1,    72,    73,    -1,    -1,    -1,    -1,   107,    -1,   109,
     3785      -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,
    38783786      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3879       20,    21,    22,    23,    24,    25,    26,    -1,    65,    29,
    3880       30,    31,    -1,    -1,    -1,    72,    73,    37,    -1,    10,
     3787      20,    21,    22,    23,    24,    25,    26,    -1,   109,    29,
     3788      30,    31,    -1,    -1,    -1,    -1,   117,    37,    -1,    10,
    38813789      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    38823790      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    38833791      31,    -1,    -1,    -1,    -1,    65,    37,    -1,    -1,    -1,
    3884       -1,   108,    72,    73,    -1,    -1,    -1,    -1,    -1,   116,
     3792      -1,    -1,    72,    73,    -1,    -1,    -1,    10,    11,    12,
     3793      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3794      23,    24,    25,    26,    65,    -1,    29,    30,    31,    -1,
     3795      -1,    72,    73,    -1,    37,    -1,    -1,    -1,    -1,   109,
     3796      -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,
    38853797      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3886       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
    3887       -1,    72,    73,    -1,    -1,    -1,    -1,    -1,   108,    -1,
    3888       -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,
     3798      -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,   109,    72,
     3799      73,    -1,    -1,    -1,    -1,    -1,   117,    10,    11,    12,
     3800      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3801      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3802      -1,    -1,    -1,    -1,    37,    -1,   109,    -1,    -1,    -1,
     3803      -1,    -1,    -1,    -1,   117,    10,    11,    12,    13,    14,
     3804      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3805      25,    26,    65,    -1,    29,    30,    31,    -1,    -1,    72,
     3806      73,    -1,    37,    -1,    10,    11,    12,    13,    14,    15,
     3807      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3808      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3809      65,    37,    -1,    -1,    -1,    -1,   109,    72,    73,    -1,
     3810      -1,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,
     3811      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
     3812      -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
     3813      -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     3814      -1,    -1,   117,    -1,    -1,    10,    11,    12,    13,    14,
     3815      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3816      25,    26,    -1,   109,    29,    30,    31,    -1,    -1,    -1,
     3817      -1,   117,    37,    -1,    10,    11,    12,    13,    14,    15,
     3818      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3819      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3820      65,    37,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,
    38893821      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3890       -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,    -1,
    3891       -1,    -1,    -1,    -1,    -1,   116,     4,     5,     6,     7,
    3892        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3893       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3894       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3895       -1,    -1,    36,    -1,    38,    39,    -1,    41,    -1,    -1,
    3896       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
    3897       54,    55,    -1,    -1,    -1,    59,    60,    65,    62,    67,
    3898       64,    69,    -1,    -1,    72,    73,    70,    -1,    -1,    -1,
    3899       74,    -1,    -1,    77,    78,    79,    80,    81,    82,    -1,
    3900       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,
    3901       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
    3902       -1,    -1,   106,    -1,   108,    -1,    -1,   111,    -1,    -1,
    3903       -1,   115,   116,   117,   118,   119,   120,    -1,    -1,    -1,
    3904       -1,   125,    -1,    -1,    36,   129,    38,    39,    -1,    41,
    3905       -1,    -1,    44,    45,    46,    47,    48,    49,    50,    51,
    3906       -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    60,    -1,
     3822      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
     3823      -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
     3824      -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
     3825      -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3826      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3827      -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
     3828      -1,   117,     4,     5,     6,     7,     8,     9,    10,    11,
     3829      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3830      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3831      -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    36,    -1,
     3832      38,    39,    -1,    41,    -1,    -1,    44,    45,    46,    47,
     3833      48,    49,    50,    51,    -1,    -1,    54,    55,    -1,    -1,
     3834      -1,    59,    60,    65,    62,    67,    64,    69,    -1,    -1,
     3835      72,    73,    70,    -1,    -1,    -1,    74,    -1,    -1,    77,
     3836      78,    79,    80,    81,    82,    -1,    84,    85,    -1,    -1,
     3837      -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,
     3838      -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,    -1,   107,
     3839      -1,   109,    -1,    -1,   112,    -1,    -1,    -1,   116,   117,
     3840     118,   119,   120,   121,    -1,    -1,    -1,    -1,   126,    -1,
     3841      -1,    36,   130,    38,    39,    -1,    41,    -1,    -1,    44,
     3842      45,    46,    47,    48,    49,    50,    51,    -1,    -1,    -1,
     3843      55,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
     3844      -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    74,
     3845      -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
     3846      85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,
     3847      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3848      -1,    -1,   107,    -1,   109,    -1,    -1,   112,    -1,    -1,
     3849      -1,   116,   117,   118,   119,   120,   121,    -1,    -1,    -1,
     3850      -1,   126,    -1,    -1,    36,   130,    38,    39,    -1,    41,
     3851      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
     3852      -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,
    39073853      62,    -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    39083854      -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,    81,
    39093855      82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
    39103856      92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3911       -1,    -1,    -1,    -1,   106,    -1,   108,    -1,    -1,   111,
    3912       -1,    -1,    -1,   115,   116,   117,   118,   119,   120,    -1,
    3913       -1,    -1,    -1,   125,    -1,    -1,    -1,   129,     4,     5,
    3914        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3915       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3916       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3917       -1,    37,    -1,    -1,    36,    -1,    38,    39,    -1,    41,
    3918       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
    3919       -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,    65,
    3920       62,    67,    64,    69,    -1,    -1,    72,    73,    70,    -1,
    3921       -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,    81,
    3922       82,    -1,    84,    85,    -1,    -1,    -1,    -1,    94,    -1,
    3923       92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3924       -1,    -1,    -1,    -1,   106,    -1,   108,    -1,    -1,   111,
    3925       -1,    -1,    -1,   115,   116,   117,   118,   119,   120,    36,
    3926       -1,    38,    39,   125,    41,    42,    43,    44,    45,    46,
    3927       47,    48,    49,    50,    51,    -1,    -1,    -1,    55,    -1,
    3928       -1,    -1,    59,    60,    -1,    62,    -1,    64,    -1,    -1,
    3929       -1,    -1,    -1,    70,    -1,    -1,    -1,    74,    -1,    -1,
     3857      -1,    -1,    -1,    -1,    -1,   107,    -1,   109,    -1,    -1,
     3858     112,    -1,    -1,    -1,   116,   117,   118,   119,   120,   121,
     3859      36,    -1,    38,    39,   126,    41,    42,    43,    44,    45,
     3860      46,    47,    48,    49,    50,    51,    -1,    -1,    -1,    55,
     3861      -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,    -1,
     3862      -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    74,    -1,
     3863      -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
     3864      -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,
     3865      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3866      -1,   107,    -1,   109,    -1,    -1,   112,    -1,    -1,    -1,
     3867     116,   117,   118,   119,   120,   121,    36,    -1,    38,    39,
     3868     126,    41,    -1,    -1,    44,    45,    46,    47,    48,    49,
     3869      50,    51,    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,
     3870      60,    -1,    62,    -1,    64,    -1,    -1,    -1,    -1,    -1,
     3871      70,    -1,    -1,    -1,    74,    -1,    -1,    77,    78,    79,
     3872      80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,
     3873      -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3874      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,   109,
     3875      -1,    -1,   112,    -1,    -1,    -1,   116,   117,   118,   119,
     3876     120,   121,    -1,    -1,    -1,    -1,   126,     4,     5,     6,
     3877       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3878      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3879      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3880      37,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,
     3881      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3882      -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    65,    -1,
     3883      67,    64,    69,    -1,    -1,    72,    73,    70,    -1,    -1,
     3884      -1,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
     3885      64,    84,    85,    -1,    -1,    -1,    70,    94,    -1,    92,
     3886      74,    -1,    -1,    77,    78,    79,    80,    81,    82,    -1,
     3887      84,    85,    -1,    -1,   107,    -1,   109,    -1,    92,    -1,
     3888      36,   114,    38,   116,   117,   118,   119,   120,   121,    -1,
     3889      -1,    -1,    -1,   107,    -1,   109,    -1,    -1,   112,    36,
     3890      -1,    38,   116,   117,   118,   119,   120,   121,    64,    -1,
     3891      -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    74,    -1,
     3892      -1,    77,    78,    79,    80,    81,    82,    64,    84,    85,
     3893      -1,    -1,    -1,    70,    -1,    -1,    92,    74,    -1,    -1,
    39303894      77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    3931       -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,
    3932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
    3933       -1,   108,    -1,    -1,   111,    -1,    -1,    -1,   115,   116,
    3934      117,   118,   119,   120,    36,    -1,    38,    39,   125,    41,
    3935       -1,    -1,    44,    45,    46,    47,    48,    49,    50,    51,
    3936       -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    60,    -1,
    3937       62,    -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3938       -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,    81,
    3939       82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
    3940       92,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3941       -1,    -1,    -1,    -1,   106,    -1,   108,    -1,    -1,   111,
    3942       36,    -1,    38,   115,   116,   117,   118,   119,   120,    64,
    3943       -1,    -1,    -1,   125,    -1,    70,    -1,    -1,    -1,    74,
    3944       -1,    -1,    77,    78,    79,    80,    81,    82,    64,    84,
    3945       85,    -1,    -1,    -1,    70,    -1,    -1,    92,    74,    -1,
    3946       -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
    3947       -1,   106,    -1,   108,    -1,    -1,    92,    36,    -1,    38,
    3948      115,   116,   117,   118,   119,   120,    -1,    -1,    -1,    -1,
    3949      106,    -1,   108,    -1,    -1,    -1,    36,    -1,    38,   115,
    3950      116,   117,   118,   119,   120,    64,    -1,    -1,    -1,    -1,
     3895      -1,   107,    -1,   109,    -1,    92,    -1,    36,    -1,    38,
     3896     116,   117,   118,   119,   120,   121,    -1,    -1,    -1,    -1,
     3897     107,    -1,   109,    -1,    -1,    -1,    36,    -1,    38,   116,
     3898     117,   118,   119,   120,   121,    64,    -1,    -1,    -1,    -1,
    39513899      -1,    70,    -1,    -1,    -1,    74,    -1,    -1,    77,    78,
    39523900      79,    80,    81,    82,    64,    84,    85,    -1,    -1,    -1,
    39533901      70,    -1,    -1,    92,    74,    -1,    -1,    77,    78,    79,
    3954       80,    81,    82,    -1,    84,    85,    -1,   106,    -1,   108,
    3955       -1,    -1,    92,    36,    -1,    38,   115,   116,   117,   118,
    3956      119,   120,    -1,    -1,    -1,    -1,   106,    -1,   108,    -1,
    3957       -1,    -1,    36,    -1,    38,   115,   116,   117,   118,   119,
    3958      120,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
    3959       -1,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3960       64,    84,    85,    -1,    -1,    -1,    70,    -1,    -1,    92,
    3961       74,    -1,    -1,    77,    78,    79,    80,    81,    82,    -1,
    3962       84,    85,    -1,   106,    -1,    -1,    -1,    -1,    92,    -1,
    3963       -1,    -1,   115,   116,   117,   118,   119,   120,    -1,    -1,
    3964       -1,    -1,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3965       -1,   115,   116,   117,   118,   119,   120,     4,     5,     6,
     3902      80,    81,    82,    -1,    84,    85,    -1,    -1,   107,    -1,
     3903     109,    -1,    92,    -1,    36,    -1,    38,   116,   117,   118,
     3904     119,   120,   121,    -1,    -1,    -1,    -1,   107,    -1,   109,
     3905      -1,    -1,    -1,    36,    -1,    38,   116,   117,   118,   119,
     3906     120,   121,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
     3907      -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,    81,
     3908      82,    64,    84,    85,    -1,    -1,    -1,    70,    -1,    -1,
     3909      92,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
     3910      -1,    84,    85,    -1,    -1,   107,    -1,    -1,    -1,    92,
     3911      -1,    36,    -1,    38,   116,   117,   118,   119,   120,   121,
     3912      -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,
     3913      -1,    -1,    -1,   116,   117,   118,   119,   120,   121,    64,
     3914      -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    74,
     3915      -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
     3916      85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,
     3917      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3918      -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3919      -1,   116,   117,   118,   119,   120,   121,     4,     5,     6,
    39663920       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    39673921      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     
    40033957      22,    23,    24,    25,    26,    29,    30,    31,    32,    35,
    40043958      37,    38,    62,    65,    67,    69,    70,    72,    73,    74,
    4005       81,    82,   106,   108,   116,   134,   138,   195,   210,   211,
    4006      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
    4007      222,   223,   224,   225,   226,   227,   229,   230,   231,   232,
    4008      233,   234,   235,   236,   238,   239,   240,   241,   242,   243,
    4009      244,   252,   253,   279,   280,   281,   289,   292,   298,   299,
    4010      301,   303,   304,   310,   315,   319,   320,   321,   322,   323,
    4011      324,   325,   326,   346,   363,   364,   365,   366,    70,   116,
    4012      136,   213,   215,   223,   225,   235,   239,   241,   280,    80,
    4013      106,   308,   309,   310,   308,   308,    70,    72,    73,    74,
    4014      135,   136,   269,   270,   290,   291,    72,    73,   270,   106,
    4015      301,    11,   196,   106,   116,   315,   320,   321,   322,   324,
    4016      325,   326,   109,   131,   108,   216,   223,   225,   319,   323,
    4017      362,   363,   366,   367,   132,   128,   273,   111,   132,   170,
    4018       72,    73,   134,   268,   132,   132,   132,   113,   132,    72,
    4019       73,   106,   116,   305,   314,   315,   316,   317,   318,   319,
    4020      323,   327,   328,   329,   330,   331,   337,     3,    27,    76,
    4021      237,     3,     5,    72,   108,   116,   215,   226,   230,   233,
    4022      242,   281,   319,   323,   366,   213,   215,   225,   235,   239,
    4023      241,   280,   319,   323,    32,   231,   231,   226,   233,   132,
    4024      231,   226,   231,   226,    73,   106,   111,   270,   281,   111,
    4025      270,   231,   226,   113,   132,   132,     0,   131,   106,   170,
    4026      308,   308,   131,   108,   223,   225,   364,   268,   268,   225,
    4027      128,   106,   116,   305,   315,   319,   108,   116,   366,   302,
    4028      228,   310,   106,   286,   106,   106,    49,   106,    36,    38,
    4029       64,    70,    74,    77,    78,    79,    80,    84,    85,    92,
    4030      106,   108,   115,   116,   117,   118,   119,   120,   133,   138,
    4031      139,   140,   141,   146,   147,   148,   149,   150,   151,   152,
    4032      153,   154,   155,   156,   157,   158,   159,   161,   163,   223,
    4033      272,   288,   362,   367,   225,   107,   107,   107,   107,   107,
    4034      107,   107,    72,    73,   108,   223,   268,   346,   364,   108,
    4035      116,   161,   215,   216,   222,   225,   229,   230,   235,   238,
    4036      239,   241,   258,   259,   263,   264,   265,   266,   280,   346,
    4037      358,   359,   360,   361,   366,   367,   109,   106,   319,   323,
    4038      366,   106,   113,   129,   108,   111,   116,   161,   274,   112,
    4039      131,   113,   129,   106,   113,   129,   113,   129,   113,   129,
    4040      308,   129,   315,   316,   317,   318,   328,   329,   330,   331,
    4041      225,   314,   327,    62,   307,   108,   308,   345,   346,   308,
    4042      308,   170,   131,   106,   308,   345,   308,   308,   225,   305,
    4043      106,   106,   224,   225,   223,   225,   109,   131,   223,   362,
    4044      367,   170,   131,   268,   273,   215,   230,   319,   323,   170,
    4045      131,   290,   225,   235,   129,   225,   225,   288,    38,   108,
    4046      223,   245,   246,   247,   248,   362,   366,   111,   254,   270,
    4047      111,   225,   290,   129,   129,   301,   131,   136,   267,     3,
    4048      132,   205,   206,   220,   222,   225,   131,   307,   106,   307,
    4049      161,   315,   225,   106,   131,   268,   111,    32,    33,    34,
    4050      223,   282,   283,   285,   131,   126,   128,   287,   131,   226,
    4051      232,   233,   268,   311,   312,   313,   106,   139,   106,   146,
    4052      146,   148,   106,   146,   106,   106,   146,   146,   136,   108,
    4053      161,   166,   170,   223,   271,   362,   109,   131,   148,   148,
    4054       80,    83,    84,    85,   106,   108,   110,    95,    96,    97,
    4055       98,    99,   100,   101,   102,   103,   104,   128,   165,   148,
    4056      116,   121,   122,   118,   119,    86,    87,    88,    89,   123,
    4057      124,    90,    91,   117,   125,   126,    92,    93,   127,   128,
    4058      369,   106,   116,   341,   342,   343,   344,   345,   107,   113,
    4059      106,   345,   346,   106,   345,   346,   131,   106,   223,   364,
    4060      109,   131,   108,   116,   132,   223,   225,   357,   358,   366,
    4061      367,   132,   106,   108,   116,   315,   332,   333,   334,   335,
    4062      336,   337,   338,   339,   340,   346,   347,   348,   349,   350,
    4063      351,   352,   116,   366,   225,   132,   132,   116,   223,   225,
    4064      359,   268,   223,   346,   359,   268,   106,   131,   131,   131,
    4065      109,   131,    70,    78,   108,   110,   270,   274,   275,   276,
    4066      277,   278,   131,   131,   131,   131,   131,   131,   305,   107,
    4067      107,   107,   107,   107,   107,   107,   314,   327,   106,   273,
    4068      109,   205,   131,   305,   166,   272,   166,   272,   305,   108,
    4069      205,   307,   170,   131,   205,   107,   247,   248,   109,   131,
    4070      106,   114,   116,   249,   251,   314,   315,   327,   345,   353,
    4071      354,   355,   356,   112,   246,   113,   129,   113,   129,   270,
    4072      245,   113,   368,   128,   255,   254,   225,   260,   261,   262,
    4073      265,   266,   107,   113,   170,   131,   116,   161,   131,   222,
    4074      225,   259,   358,   366,   299,   300,   106,   116,   332,   107,
    4075      113,   369,   270,   282,   106,   111,   270,   272,   282,   107,
    4076      113,   106,   139,   107,   114,   271,   271,   108,   136,   143,
    4077      161,   272,   271,   109,   131,   107,   113,   107,   106,   116,
    4078      353,   107,   113,   161,   108,   136,   108,   142,   143,   131,
    4079      108,   136,   161,   161,   148,   148,   148,   149,   149,   150,
    4080      150,   151,   151,   151,   151,   152,   152,   153,   154,   155,
    4081      156,   157,   114,   166,   161,   131,   342,   343,   344,   225,
    4082      341,   308,   308,   161,   272,   131,   267,   116,   131,   223,
    4083      346,   359,   225,   229,   109,   131,   109,   366,   109,   106,
    4084      131,   315,   333,   334,   335,   338,   348,   349,   350,   109,
    4085      131,   225,   332,   336,   347,   106,   308,   351,   369,   308,
    4086      308,   369,   106,   308,   351,   308,   308,   308,   308,   346,
    4087      223,   357,   367,   268,   109,   113,   109,   113,   369,   223,
    4088      359,   369,   256,   257,   258,   259,   256,   256,   268,   161,
    4089      131,   108,   270,   114,   113,   368,   274,    78,   108,   114,
    4090      278,    28,   207,   208,   268,   256,   136,   305,   136,   307,
    4091      106,   345,   346,   106,   345,   346,   139,   346,   170,   260,
    4092      107,   107,   107,   107,   109,   170,   205,   170,   111,   129,
    4093      129,   108,   315,   354,   355,   356,   159,   160,   225,   353,
    4094      250,   251,   250,   308,   308,   270,   308,   112,   270,   112,
    4095      160,   368,   132,   132,   136,   220,   132,   132,   256,   106,
    4096      116,   366,   132,   112,   225,   283,   284,   132,   131,   131,
    4097      106,   132,   107,   312,   166,   167,   114,   129,   108,   139,
    4098      197,   198,   199,   107,   107,   131,   114,   107,   107,   107,
    4099      161,   225,   111,   148,   163,   161,   162,   164,   113,   132,
    4100      131,   131,   107,   113,   161,   131,   159,   114,   260,   107,
    4101      107,   107,   341,   260,   107,   256,   223,   359,   108,   116,
    4102      161,   161,   225,   338,   260,   107,   107,   107,   107,   107,
    4103      107,   107,     7,   225,   332,   336,   347,   131,   131,   369,
    4104      131,   131,   107,   132,   132,   132,   132,   273,   132,   159,
    4105      160,   161,   306,   131,   274,   276,   112,   131,   209,   270,
    4106       38,    39,    41,    44,    45,    46,    47,    48,    49,    50,
    4107       51,    55,    59,    60,    70,   108,   125,   136,   137,   138,
    4108      167,   168,   169,   170,   171,   172,   174,   175,   187,   189,
    4109      190,   195,   202,   210,   304,    28,   132,   128,   273,   131,
    4110      131,   107,   132,   170,   245,   109,   107,   107,   107,   353,
    4111      249,   255,   112,   107,   113,   109,   109,   132,   225,   113,
    4112      369,   286,   107,   282,   213,   215,   223,   294,   295,   296,
    4113      297,   288,   107,   107,   114,   160,   106,   107,   114,   113,
    4114      161,   161,   275,   113,   132,   164,   109,   136,   144,   145,
    4115      161,   143,   132,   144,   159,   163,   132,   106,   345,   346,
    4116      132,   132,   131,   132,   132,   132,   161,   107,   132,   106,
    4117      345,   346,   106,   351,   106,   351,   346,   224,     7,   116,
    4118      132,   161,   260,   260,   259,   263,   263,   264,   113,   113,
    4119      107,   107,   109,    94,   120,   132,   132,   144,   274,   161,
    4120      113,   129,   210,   214,   225,   229,   106,   106,   168,   106,
    4121      106,   129,   136,   129,   136,   116,   136,   167,   106,   170,
    4122      162,   162,   109,    70,   137,   138,   114,   111,   129,   132,
    4123      131,   132,   209,   107,   161,   260,   260,   308,   107,   112,
    4124      106,   345,   346,   131,   107,   131,   132,   305,   112,   131,
    4125      132,   132,   107,   111,   197,   109,   160,   129,   197,   199,
    4126      113,   132,   368,   162,   109,   132,    83,   110,   113,   132,
    4127      132,   109,   132,   107,   131,   107,   107,   109,   109,   109,
    4128      132,   107,   131,   131,   131,   161,   161,   132,   109,   132,
    4129      132,   132,   132,   131,   131,   160,   160,   109,   109,   132,
    4130      132,   270,   225,   166,   166,    45,   166,   131,   129,   129,
    4131      166,   129,   129,   166,    56,    57,    58,   191,   192,   193,
    4132      129,    61,   129,   111,   308,   142,   172,   112,   129,   132,
    4133      132,   131,    94,   265,   266,   107,   295,   113,   129,   113,
    4134      129,   112,   293,   114,   139,   107,   107,   114,   164,   109,
    4135      112,   109,   108,   145,   108,   145,   145,   109,   109,   109,
    4136      260,   109,   260,   260,   260,   132,   132,   109,   109,   107,
    4137      107,   109,   113,    94,   259,    94,   132,   109,   109,   107,
    4138      107,   106,   107,   167,   188,   210,   129,   107,   106,   106,
    4139      170,   193,    56,    57,   161,   112,   168,   112,   107,   107,
    4140      260,   111,   131,   131,   294,   139,   200,   106,   129,   200,
    4141      132,   114,   131,   131,   132,   132,   132,   132,   109,   109,
    4142      131,   132,   109,   168,    42,    43,   111,   178,   179,   180,
    4143      166,   168,   132,   107,   167,   111,   180,    94,   131,    94,
    4144      131,   106,   106,   129,   129,   129,   132,   131,   268,   305,
    4145      112,   113,   114,   160,   107,   109,   161,   144,   144,   107,
    4146      107,   107,   107,   263,    40,   160,   176,   177,   306,   114,
    4147      131,   168,   178,   107,   129,   168,   129,   131,   107,   131,
    4148      107,   131,    94,   131,    94,   131,   107,   294,   139,   136,
    4149      201,   107,   129,   114,   132,   132,   168,    94,   113,   114,
    4150      132,   203,   204,   210,   129,   167,   167,   203,   170,   194,
    4151      223,   362,   170,   194,   107,   131,   107,   131,   112,   107,
    4152      113,   161,   109,   109,   160,   176,   179,   181,   182,   131,
    4153      129,   179,   183,   184,   132,   106,   116,   305,   353,   136,
    4154      132,   170,   194,   170,   194,   106,   129,   136,   168,   173,
    4155      112,   179,   210,   167,    54,   173,   186,   112,   179,   107,
    4156      225,   107,   132,   132,   288,   168,   173,   129,   185,   186,
    4157      173,   186,   170,   170,   107,   107,   107,   185,   132,   132,
    4158      170,   170,   132,   132
     3959      81,    82,   107,   109,   117,   135,   138,   195,   209,   210,
     3960     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
     3961     221,   222,   223,   224,   225,   226,   228,   229,   230,   231,
     3962     232,   233,   234,   235,   237,   238,   239,   240,   241,   242,
     3963     243,   251,   252,   278,   279,   280,   288,   291,   297,   298,
     3964     300,   302,   303,   309,   314,   318,   319,   320,   321,   322,
     3965     323,   324,   325,   345,   362,   363,   364,   365,    70,   117,
     3966     137,   212,   214,   222,   224,   234,   238,   240,   279,    80,
     3967     107,   307,   308,   309,   307,   307,    70,    72,    73,    74,
     3968     136,   137,   268,   269,   289,   290,    72,    73,   269,   107,
     3969     300,    11,   196,   107,   117,   314,   319,   320,   321,   323,
     3970     324,   325,   110,   132,   109,   215,   222,   224,   318,   322,
     3971     361,   362,   365,   366,   133,   105,   129,   272,   112,   133,
     3972     170,    72,    73,   135,   267,   133,   133,   133,   114,   133,
     3973      72,    73,   107,   117,   304,   313,   314,   315,   316,   317,
     3974     318,   322,   326,   327,   328,   329,   330,   336,     3,    27,
     3975      76,   236,     3,     5,    72,   109,   117,   214,   225,   229,
     3976     232,   241,   280,   318,   322,   365,   212,   214,   224,   234,
     3977     238,   240,   279,   318,   322,    32,   230,   230,   225,   232,
     3978     133,   230,   225,   230,   225,    73,   107,   112,   269,   280,
     3979     112,   269,   230,   225,   114,   133,   133,     0,   132,   107,
     3980     170,   307,   307,   132,   109,   222,   224,   363,   267,   267,
     3981     224,   129,   107,   117,   304,   314,   318,   109,   117,   365,
     3982     301,   227,   309,   107,   285,   107,   107,    49,   107,    36,
     3983      38,    64,    70,    74,    77,    78,    79,    80,    84,    85,
     3984      92,   107,   109,   116,   117,   118,   119,   120,   121,   134,
     3985     138,   139,   140,   141,   146,   147,   148,   149,   150,   151,
     3986     152,   153,   154,   155,   156,   157,   158,   159,   161,   163,
     3987     222,   271,   287,   361,   366,   224,   108,   108,   108,   108,
     3988     108,   108,   108,    72,    73,   109,   222,   267,   345,   363,
     3989     109,   117,   161,   214,   215,   221,   224,   228,   229,   234,
     3990     237,   238,   240,   257,   258,   262,   263,   264,   265,   279,
     3991     345,   357,   358,   359,   360,   365,   366,   110,   107,   318,
     3992     322,   365,   107,   114,   130,   109,   112,   117,   161,   273,
     3993     273,   113,   132,   114,   130,   107,   114,   130,   114,   130,
     3994     114,   130,   307,   130,   314,   315,   316,   317,   327,   328,
     3995     329,   330,   224,   313,   326,    62,   306,   109,   307,   344,
     3996     345,   307,   307,   170,   132,   107,   307,   344,   307,   307,
     3997     224,   304,   107,   107,   223,   224,   222,   224,   110,   132,
     3998     222,   361,   366,   170,   132,   267,   272,   214,   229,   318,
     3999     322,   170,   132,   289,   224,   234,   130,   224,   224,   287,
     4000      38,   109,   222,   244,   245,   246,   247,   361,   365,   112,
     4001     253,   269,   112,   224,   289,   130,   130,   300,   132,   137,
     4002     266,     3,   133,   204,   205,   219,   221,   224,   132,   306,
     4003     107,   306,   161,   314,   224,   107,   132,   267,   112,    32,
     4004      33,    34,   222,   281,   282,   284,   132,   127,   129,   286,
     4005     132,   225,   231,   232,   267,   310,   311,   312,   107,   139,
     4006     107,   146,   146,   148,   107,   146,   107,   107,   146,   146,
     4007     137,   109,   161,   166,   170,   222,   270,   361,   110,   132,
     4008     148,   148,    80,    83,    84,    85,   107,   109,   111,   112,
     4009      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     4010     129,   165,   148,   117,   122,   123,   119,   120,    86,    87,
     4011      88,    89,   124,   125,    90,    91,   118,   126,   127,    92,
     4012      93,   128,   129,   368,   107,   117,   340,   341,   342,   343,
     4013     344,   108,   114,   107,   344,   345,   107,   344,   345,   132,
     4014     107,   222,   363,   110,   132,   109,   117,   133,   222,   224,
     4015     356,   357,   365,   366,   133,   107,   109,   117,   314,   331,
     4016     332,   333,   334,   335,   336,   337,   338,   339,   345,   346,
     4017     347,   348,   349,   350,   351,   117,   365,   224,   133,   133,
     4018     117,   222,   224,   358,   267,   222,   345,   358,   267,   107,
     4019     132,   132,   132,   110,   132,    70,    78,   109,   111,   269,
     4020     273,   274,   275,   276,   277,   132,   132,   132,   132,   132,
     4021     132,   304,   108,   108,   108,   108,   108,   108,   108,   313,
     4022     326,   107,   272,   110,   204,   132,   304,   166,   271,   166,
     4023     271,   304,   109,   204,   306,   170,   132,   204,   108,   246,
     4024     247,   110,   132,   107,   115,   117,   248,   250,   313,   314,
     4025     326,   344,   352,   353,   354,   355,   113,   245,   114,   130,
     4026     114,   130,   269,   244,   114,   367,   129,   254,   253,   224,
     4027     259,   260,   261,   264,   265,   108,   114,   170,   132,   117,
     4028     161,   132,   221,   224,   258,   357,   365,   298,   299,   107,
     4029     117,   331,   108,   114,   368,   269,   281,   107,   112,   269,
     4030     271,   281,   108,   114,   107,   139,   108,   115,   270,   270,
     4031     109,   137,   143,   161,   271,   270,   110,   132,   108,   114,
     4032     108,   107,   117,   352,   108,   114,   161,   109,   137,   109,
     4033     142,   143,   132,   109,   137,   142,   161,   161,   148,   148,
     4034     148,   149,   149,   150,   150,   151,   151,   151,   151,   152,
     4035     152,   153,   154,   155,   156,   157,   115,   166,   161,   132,
     4036     341,   342,   343,   224,   340,   307,   307,   161,   271,   132,
     4037     266,   117,   132,   222,   345,   358,   224,   228,   110,   132,
     4038     110,   365,   110,   107,   132,   314,   332,   333,   334,   337,
     4039     347,   348,   349,   110,   132,   224,   331,   335,   346,   107,
     4040     307,   350,   368,   307,   307,   368,   107,   307,   350,   307,
     4041     307,   307,   307,   345,   222,   356,   366,   267,   110,   114,
     4042     110,   114,   368,   222,   358,   368,   255,   256,   257,   258,
     4043     255,   255,   267,   161,   132,   109,   269,   115,   114,   367,
     4044     273,    78,   109,   115,   277,    28,   206,   207,   267,   255,
     4045     137,   304,   137,   306,   107,   344,   345,   107,   344,   345,
     4046     139,   345,   170,   259,   108,   108,   108,   108,   110,   170,
     4047     204,   170,   112,   130,   130,   109,   314,   353,   354,   355,
     4048     159,   160,   224,   352,   249,   250,   249,   307,   307,   269,
     4049     307,   113,   269,   113,   160,   367,   133,   133,   137,   219,
     4050     133,   133,   255,   107,   117,   365,   133,   113,   224,   282,
     4051     283,   133,   132,   132,   107,   133,   108,   311,   166,   167,
     4052     115,   130,   109,   139,   197,   198,   199,   108,   108,   132,
     4053     115,   108,   108,   108,   161,   224,   112,   148,   163,   161,
     4054     162,   164,   114,   133,   132,   132,   108,   114,   161,   132,
     4055     113,   159,   115,   259,   108,   108,   108,   340,   259,   108,
     4056     255,   222,   358,   109,   117,   161,   161,   224,   337,   259,
     4057     108,   108,   108,   108,   108,   108,   108,     7,   224,   331,
     4058     335,   346,   132,   132,   368,   132,   132,   108,   133,   133,
     4059     133,   133,   272,   133,   159,   160,   161,   305,   132,   273,
     4060     275,   113,   132,   208,   269,    38,    39,    41,    44,    45,
     4061      46,    47,    48,    49,    50,    51,    55,    59,    60,   109,
     4062     126,   137,   167,   168,   169,   170,   171,   172,   174,   175,
     4063     187,   189,   190,   195,   209,   303,    28,   133,   129,   272,
     4064     132,   132,   108,   133,   170,   244,   110,   108,   108,   108,
     4065     352,   248,   254,   113,   108,   114,   110,   110,   133,   224,
     4066     114,   368,   285,   108,   281,   212,   214,   222,   293,   294,
     4067     295,   296,   287,   108,   108,   115,   160,   107,   108,   115,
     4068     114,   161,   161,   274,   114,   133,   164,   110,   137,   144,
     4069     145,   161,   143,   133,   144,   159,   163,   133,   107,   344,
     4070     345,   133,   133,   132,   133,   133,   133,   161,   108,   133,
     4071     107,   344,   345,   107,   350,   107,   350,   345,   223,     7,
     4072     117,   133,   161,   259,   259,   258,   262,   262,   263,   114,
     4073     114,   108,   108,   110,    94,   121,   133,   133,   144,   273,
     4074     161,   114,   130,   209,   213,   224,   228,   107,   107,   168,
     4075     107,   107,   130,   137,   130,   137,   117,   137,   167,   107,
     4076     170,   162,   162,   110,   141,   115,   130,   133,   132,   133,
     4077     208,   108,   161,   259,   259,   307,   108,   113,   107,   344,
     4078     345,   132,   108,   132,   133,   304,   113,   132,   133,   133,
     4079     108,   112,   197,   110,   160,   130,   197,   199,   114,   133,
     4080     367,   162,   110,   133,    83,   111,   114,   133,   133,   110,
     4081     133,   108,   132,   108,   108,   110,   110,   110,   133,   108,
     4082     132,   132,   132,   161,   161,   133,   110,   133,   133,   133,
     4083     133,   132,   132,   160,   160,   110,   110,   133,   133,   269,
     4084     224,   166,   166,    45,   166,   132,   130,   130,   166,   130,
     4085     130,   166,    56,    57,    58,   191,   192,   193,   130,    61,
     4086     130,   112,   307,   172,   113,   130,   133,   133,   132,    94,
     4087     264,   265,   108,   294,   114,   130,   114,   130,   113,   292,
     4088     115,   139,   108,   108,   115,   164,   110,   113,   110,   109,
     4089     145,   109,   145,   145,   110,   110,   110,   259,   110,   259,
     4090     259,   259,   133,   133,   110,   110,   108,   108,   110,   114,
     4091      94,   258,    94,   133,   110,   110,   108,   108,   107,   108,
     4092     167,   188,   209,   130,   108,   107,   107,   170,   193,    56,
     4093      57,   161,   142,   168,   108,   108,   259,   112,   132,   132,
     4094     293,   139,   200,   107,   130,   200,   133,   115,   132,   132,
     4095     133,   133,   133,   133,   110,   110,   132,   133,   110,   168,
     4096      42,    43,   112,   178,   179,   180,   166,   168,   133,   108,
     4097     167,   112,   180,    94,   132,    94,   132,   107,   107,   130,
     4098     113,   133,   132,   267,   304,   113,   114,   115,   160,   108,
     4099     110,   161,   144,   144,   108,   108,   108,   108,   262,    40,
     4100     160,   176,   177,   305,   115,   132,   168,   178,   108,   130,
     4101     168,   130,   132,   108,   132,   108,   132,    94,   132,    94,
     4102     132,   130,   108,   293,   139,   137,   201,   108,   130,   115,
     4103     133,   133,   168,    94,   114,   115,   133,   202,   203,   209,
     4104     130,   167,   167,   202,   170,   194,   222,   361,   170,   194,
     4105     108,   132,   108,   132,   113,   108,   114,   161,   110,   110,
     4106     160,   176,   179,   181,   182,   132,   130,   179,   183,   184,
     4107     133,   107,   117,   304,   352,   137,   133,   170,   194,   170,
     4108     194,   107,   130,   137,   168,   173,   113,   179,   209,   167,
     4109      54,   173,   186,   113,   179,   108,   224,   108,   133,   133,
     4110     287,   168,   173,   130,   185,   186,   173,   186,   170,   170,
     4111     108,   108,   108,   185,   133,   133,   170,   170,   133,   133
    41594112};
    41604113
     
    49934946
    49944947/* Line 1806 of yacc.c  */
    4995 #line 288 "parser.yy"
     4948#line 290 "parser.yy"
    49964949    {
    49974950                        typedefTable.enterScope();
     
    50024955
    50034956/* Line 1806 of yacc.c  */
    5004 #line 294 "parser.yy"
     4957#line 296 "parser.yy"
    50054958    {
    50064959                        typedefTable.leaveScope();
     
    50114964
    50124965/* Line 1806 of yacc.c  */
    5013 #line 303 "parser.yy"
     4966#line 305 "parser.yy"
    50144967    { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
    50154968    break;
     
    50184971
    50194972/* Line 1806 of yacc.c  */
    5020 #line 304 "parser.yy"
     4973#line 306 "parser.yy"
    50214974    { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
    50224975    break;
     
    50254978
    50264979/* Line 1806 of yacc.c  */
    5027 #line 305 "parser.yy"
     4980#line 307 "parser.yy"
    50284981    { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
    50294982    break;
    50304983
     4984  case 15:
     4985
     4986/* Line 1806 of yacc.c  */
     4987#line 332 "parser.yy"
     4988    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
     4989    break;
     4990
     4991  case 16:
     4992
     4993/* Line 1806 of yacc.c  */
     4994#line 333 "parser.yy"
     4995    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
     4996    break;
     4997
    50314998  case 17:
    50324999
    50335000/* Line 1806 of yacc.c  */
    5034 #line 334 "parser.yy"
    5035     { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
     5001#line 340 "parser.yy"
     5002    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    50365003    break;
    50375004
    50385005  case 18:
    5039 
    5040 /* Line 1806 of yacc.c  */
    5041 #line 335 "parser.yy"
    5042     { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    5043     break;
    5044 
    5045   case 19:
    50465006
    50475007/* Line 1806 of yacc.c  */
     
    50505010    break;
    50515011
     5012  case 19:
     5013
     5014/* Line 1806 of yacc.c  */
     5015#line 344 "parser.yy"
     5016    { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5017    break;
     5018
    50525019  case 20:
    50535020
    50545021/* Line 1806 of yacc.c  */
    5055 #line 344 "parser.yy"
     5022#line 346 "parser.yy"
     5023    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
     5024    break;
     5025
     5026  case 22:
     5027
     5028/* Line 1806 of yacc.c  */
     5029#line 356 "parser.yy"
     5030    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
     5031    break;
     5032
     5033  case 23:
     5034
     5035/* Line 1806 of yacc.c  */
     5036#line 358 "parser.yy"
     5037    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
     5038    break;
     5039
     5040  case 24:
     5041
     5042/* Line 1806 of yacc.c  */
     5043#line 360 "parser.yy"
     5044    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
     5045    break;
     5046
     5047  case 26:
     5048
     5049/* Line 1806 of yacc.c  */
     5050#line 363 "parser.yy"
     5051    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
     5052    break;
     5053
     5054  case 28:
     5055
     5056/* Line 1806 of yacc.c  */
     5057#line 366 "parser.yy"
     5058    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
     5059    break;
     5060
     5061  case 29:
     5062
     5063/* Line 1806 of yacc.c  */
     5064#line 368 "parser.yy"
     5065    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
     5066    break;
     5067
     5068  case 30:
     5069
     5070/* Line 1806 of yacc.c  */
     5071#line 370 "parser.yy"
     5072    { (yyval.en) = 0; }
     5073    break;
     5074
     5075  case 31:
     5076
     5077/* Line 1806 of yacc.c  */
     5078#line 372 "parser.yy"
     5079    {
     5080                        Token fn; fn.str = new std::string( "?{}" ); // location undefined
     5081                        (yyval.en) = new CompositeExprNode( new VarRefNode( fn ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_link( (yyvsp[(3) - (4)].en) ) );
     5082                }
     5083    break;
     5084
     5085  case 33:
     5086
     5087/* Line 1806 of yacc.c  */
     5088#line 381 "parser.yy"
     5089    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     5090    break;
     5091
     5092  case 34:
     5093
     5094/* Line 1806 of yacc.c  */
     5095#line 386 "parser.yy"
     5096    { (yyval.en) = 0; }
     5097    break;
     5098
     5099  case 36:
     5100
     5101/* Line 1806 of yacc.c  */
     5102#line 389 "parser.yy"
     5103    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
     5104    break;
     5105
     5106  case 37:
     5107
     5108/* Line 1806 of yacc.c  */
     5109#line 394 "parser.yy"
     5110    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
     5111    break;
     5112
     5113  case 38:
     5114
     5115/* Line 1806 of yacc.c  */
     5116#line 396 "parser.yy"
     5117    { (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) )))); }
     5118    break;
     5119
     5120  case 40:
     5121
     5122/* Line 1806 of yacc.c  */
     5123#line 401 "parser.yy"
     5124    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5125    break;
     5126
     5127  case 41:
     5128
     5129/* Line 1806 of yacc.c  */
     5130#line 406 "parser.yy"
    50565131    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    50575132    break;
    50585133
    5059   case 21:
    5060 
    5061 /* Line 1806 of yacc.c  */
    5062 #line 346 "parser.yy"
    5063     { (yyval.en) = (yyvsp[(2) - (3)].en); }
    5064     break;
    5065 
    5066   case 22:
    5067 
    5068 /* Line 1806 of yacc.c  */
    5069 #line 348 "parser.yy"
    5070     { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    5071     break;
    5072 
    5073   case 24:
    5074 
    5075 /* Line 1806 of yacc.c  */
    5076 #line 358 "parser.yy"
    5077     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    5078     break;
    5079 
    5080   case 25:
    5081 
    5082 /* Line 1806 of yacc.c  */
    5083 #line 360 "parser.yy"
    5084     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    5085     break;
    5086 
    5087   case 26:
    5088 
    5089 /* Line 1806 of yacc.c  */
    5090 #line 362 "parser.yy"
    5091     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    5092     break;
    5093 
    5094   case 28:
    5095 
    5096 /* Line 1806 of yacc.c  */
    5097 #line 365 "parser.yy"
    5098     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    5099     break;
    5100 
    5101   case 30:
    5102 
    5103 /* Line 1806 of yacc.c  */
    5104 #line 368 "parser.yy"
    5105     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    5106     break;
    5107 
    5108   case 31:
    5109 
    5110 /* Line 1806 of yacc.c  */
    5111 #line 370 "parser.yy"
    5112     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    5113     break;
    5114 
    5115   case 32:
    5116 
    5117 /* Line 1806 of yacc.c  */
    5118 #line 373 "parser.yy"
    5119     { (yyval.en) = 0; }
    5120     break;
    5121 
    5122   case 34:
    5123 
    5124 /* Line 1806 of yacc.c  */
    5125 #line 379 "parser.yy"
    5126     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    5127     break;
    5128 
    5129   case 35:
    5130 
    5131 /* Line 1806 of yacc.c  */
    5132 #line 384 "parser.yy"
    5133     { (yyval.en) = 0; }
    5134     break;
    5135 
    5136   case 37:
    5137 
    5138 /* Line 1806 of yacc.c  */
    5139 #line 387 "parser.yy"
    5140     { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    5141     break;
    5142 
    5143   case 38:
    5144 
    5145 /* Line 1806 of yacc.c  */
    5146 #line 392 "parser.yy"
    5147     { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    5148     break;
    5149 
    5150   case 39:
    5151 
    5152 /* Line 1806 of yacc.c  */
    5153 #line 394 "parser.yy"
    5154     { (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) )))); }
    5155     break;
    5156 
    5157   case 41:
    5158 
    5159 /* Line 1806 of yacc.c  */
    5160 #line 399 "parser.yy"
    5161     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    5162     break;
    5163 
    51645134  case 42:
    51655135
    51665136/* Line 1806 of yacc.c  */
    5167 #line 404 "parser.yy"
    5168     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5137#line 408 "parser.yy"
     5138    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    51695139    break;
    51705140
     
    51725142
    51735143/* Line 1806 of yacc.c  */
    5174 #line 406 "parser.yy"
    5175     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5144#line 410 "parser.yy"
     5145    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    51765146    break;
    51775147
     
    51795149
    51805150/* Line 1806 of yacc.c  */
    5181 #line 408 "parser.yy"
    5182     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5151#line 412 "parser.yy"
     5152    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    51835153    break;
    51845154
     
    51865156
    51875157/* Line 1806 of yacc.c  */
    5188 #line 410 "parser.yy"
    5189     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5190     break;
    5191 
    5192   case 46:
    5193 
    5194 /* Line 1806 of yacc.c  */
    5195 #line 412 "parser.yy"
     5158#line 414 "parser.yy"
    51965159    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    51975160    break;
    51985161
    5199   case 48:
    5200 
    5201 /* Line 1806 of yacc.c  */
    5202 #line 420 "parser.yy"
    5203     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    5204     break;
    5205 
    5206   case 49:
     5162  case 47:
    52075163
    52085164/* Line 1806 of yacc.c  */
     
    52115167    break;
    52125168
     5169  case 48:
     5170
     5171/* Line 1806 of yacc.c  */
     5172#line 424 "parser.yy"
     5173    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5174    break;
     5175
     5176  case 49:
     5177
     5178/* Line 1806 of yacc.c  */
     5179#line 426 "parser.yy"
     5180    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
     5181    break;
     5182
    52135183  case 50:
    52145184
    52155185/* Line 1806 of yacc.c  */
    5216 #line 424 "parser.yy"
    5217     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
     5186#line 428 "parser.yy"
     5187    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    52185188    break;
    52195189
     
    52215191
    52225192/* Line 1806 of yacc.c  */
    5223 #line 426 "parser.yy"
    5224     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
     5193#line 430 "parser.yy"
     5194    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    52255195    break;
    52265196
     
    52285198
    52295199/* Line 1806 of yacc.c  */
    5230 #line 428 "parser.yy"
    5231     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     5200#line 432 "parser.yy"
     5201    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    52325202    break;
    52335203
     
    52355205
    52365206/* Line 1806 of yacc.c  */
    5237 #line 430 "parser.yy"
    5238     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5207#line 434 "parser.yy"
     5208    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
    52395209    break;
    52405210
     
    52425212
    52435213/* Line 1806 of yacc.c  */
    5244 #line 432 "parser.yy"
    5245     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
     5214#line 436 "parser.yy"
     5215    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
    52465216    break;
    52475217
     
    52495219
    52505220/* Line 1806 of yacc.c  */
    5251 #line 434 "parser.yy"
    5252     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
     5221#line 442 "parser.yy"
     5222    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    52535223    break;
    52545224
     
    52565226
    52575227/* Line 1806 of yacc.c  */
    5258 #line 440 "parser.yy"
    5259     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
     5228#line 444 "parser.yy"
     5229    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    52605230    break;
    52615231
     
    52635233
    52645234/* Line 1806 of yacc.c  */
    5265 #line 442 "parser.yy"
    5266     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5235#line 446 "parser.yy"
     5236    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    52675237    break;
    52685238
     
    52705240
    52715241/* Line 1806 of yacc.c  */
    5272 #line 444 "parser.yy"
    5273     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
     5242#line 448 "parser.yy"
     5243    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    52745244    break;
    52755245
     
    52775247
    52785248/* Line 1806 of yacc.c  */
    5279 #line 446 "parser.yy"
    5280     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5249#line 450 "parser.yy"
     5250    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    52815251    break;
    52825252
     
    52845254
    52855255/* Line 1806 of yacc.c  */
    5286 #line 448 "parser.yy"
    5287     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
     5256#line 452 "parser.yy"
     5257    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    52885258    break;
    52895259
     
    52915261
    52925262/* Line 1806 of yacc.c  */
    5293 #line 450 "parser.yy"
    5294     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
     5263#line 454 "parser.yy"
     5264    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
    52955265    break;
    52965266
     
    52985268
    52995269/* Line 1806 of yacc.c  */
    5300 #line 452 "parser.yy"
    5301     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
     5270#line 456 "parser.yy"
     5271    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); }
    53025272    break;
    53035273
     
    53055275
    53065276/* Line 1806 of yacc.c  */
    5307 #line 454 "parser.yy"
    5308     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); }
     5277#line 460 "parser.yy"
     5278    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    53095279    break;
    53105280
     
    53125282
    53135283/* Line 1806 of yacc.c  */
    5314 #line 458 "parser.yy"
    5315     { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
     5284#line 461 "parser.yy"
     5285    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    53165286    break;
    53175287
     
    53195289
    53205290/* Line 1806 of yacc.c  */
    5321 #line 459 "parser.yy"
    5322     { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
     5291#line 462 "parser.yy"
     5292    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    53235293    break;
    53245294
     
    53265296
    53275297/* Line 1806 of yacc.c  */
    5328 #line 460 "parser.yy"
    5329     { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    5330     break;
    5331 
    5332   case 67:
    5333 
    5334 /* Line 1806 of yacc.c  */
    5335 #line 461 "parser.yy"
     5298#line 463 "parser.yy"
    53365299    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    53375300    break;
    53385301
    5339   case 69:
    5340 
    5341 /* Line 1806 of yacc.c  */
    5342 #line 467 "parser.yy"
    5343     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    5344     break;
    5345 
    5346   case 70:
     5302  case 68:
    53475303
    53485304/* Line 1806 of yacc.c  */
     
    53515307    break;
    53525308
     5309  case 69:
     5310
     5311/* Line 1806 of yacc.c  */
     5312#line 471 "parser.yy"
     5313    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5314    break;
     5315
     5316  case 71:
     5317
     5318/* Line 1806 of yacc.c  */
     5319#line 477 "parser.yy"
     5320    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5321    break;
     5322
    53535323  case 72:
    53545324
    53555325/* Line 1806 of yacc.c  */
    5356 #line 475 "parser.yy"
    5357     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5326#line 479 "parser.yy"
     5327    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53585328    break;
    53595329
     
    53615331
    53625332/* Line 1806 of yacc.c  */
    5363 #line 477 "parser.yy"
    5364     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5365     break;
    5366 
    5367   case 74:
    5368 
    5369 /* Line 1806 of yacc.c  */
    5370 #line 479 "parser.yy"
     5333#line 481 "parser.yy"
    53715334    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53725335    break;
    53735336
     5337  case 75:
     5338
     5339/* Line 1806 of yacc.c  */
     5340#line 487 "parser.yy"
     5341    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5342    break;
     5343
    53745344  case 76:
    53755345
    53765346/* Line 1806 of yacc.c  */
    5377 #line 485 "parser.yy"
    5378     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5379     break;
    5380 
    5381   case 77:
    5382 
    5383 /* Line 1806 of yacc.c  */
    5384 #line 487 "parser.yy"
     5347#line 489 "parser.yy"
    53855348    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53865349    break;
    53875350
     5351  case 78:
     5352
     5353/* Line 1806 of yacc.c  */
     5354#line 495 "parser.yy"
     5355    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5356    break;
     5357
    53885358  case 79:
    53895359
    53905360/* Line 1806 of yacc.c  */
    5391 #line 493 "parser.yy"
    5392     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5393     break;
    5394 
    5395   case 80:
    5396 
    5397 /* Line 1806 of yacc.c  */
    5398 #line 495 "parser.yy"
     5361#line 497 "parser.yy"
    53995362    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54005363    break;
    54015364
     5365  case 81:
     5366
     5367/* Line 1806 of yacc.c  */
     5368#line 503 "parser.yy"
     5369    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5370    break;
     5371
    54025372  case 82:
    54035373
    54045374/* Line 1806 of yacc.c  */
    5405 #line 501 "parser.yy"
    5406     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5375#line 505 "parser.yy"
     5376    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54075377    break;
    54085378
     
    54105380
    54115381/* Line 1806 of yacc.c  */
    5412 #line 503 "parser.yy"
    5413     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5382#line 507 "parser.yy"
     5383    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54145384    break;
    54155385
     
    54175387
    54185388/* Line 1806 of yacc.c  */
    5419 #line 505 "parser.yy"
    5420     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5421     break;
    5422 
    5423   case 85:
    5424 
    5425 /* Line 1806 of yacc.c  */
    5426 #line 507 "parser.yy"
     5389#line 509 "parser.yy"
    54275390    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54285391    break;
    54295392
     5393  case 86:
     5394
     5395/* Line 1806 of yacc.c  */
     5396#line 515 "parser.yy"
     5397    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5398    break;
     5399
    54305400  case 87:
    54315401
    54325402/* Line 1806 of yacc.c  */
    5433 #line 513 "parser.yy"
    5434     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5435     break;
    5436 
    5437   case 88:
    5438 
    5439 /* Line 1806 of yacc.c  */
    5440 #line 515 "parser.yy"
     5403#line 517 "parser.yy"
    54415404    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54425405    break;
    54435406
    5444   case 90:
    5445 
    5446 /* Line 1806 of yacc.c  */
    5447 #line 521 "parser.yy"
     5407  case 89:
     5408
     5409/* Line 1806 of yacc.c  */
     5410#line 523 "parser.yy"
    54485411    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54495412    break;
    54505413
    5451   case 92:
    5452 
    5453 /* Line 1806 of yacc.c  */
    5454 #line 527 "parser.yy"
     5414  case 91:
     5415
     5416/* Line 1806 of yacc.c  */
     5417#line 529 "parser.yy"
    54555418    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54565419    break;
    54575420
    5458   case 94:
    5459 
    5460 /* Line 1806 of yacc.c  */
    5461 #line 533 "parser.yy"
     5421  case 93:
     5422
     5423/* Line 1806 of yacc.c  */
     5424#line 535 "parser.yy"
    54625425    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54635426    break;
    54645427
    5465   case 96:
    5466 
    5467 /* Line 1806 of yacc.c  */
    5468 #line 539 "parser.yy"
     5428  case 95:
     5429
     5430/* Line 1806 of yacc.c  */
     5431#line 541 "parser.yy"
    54695432    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54705433    break;
    54715434
    5472   case 98:
    5473 
    5474 /* Line 1806 of yacc.c  */
    5475 #line 545 "parser.yy"
     5435  case 97:
     5436
     5437/* Line 1806 of yacc.c  */
     5438#line 547 "parser.yy"
    54765439    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54775440    break;
    54785441
     5442  case 99:
     5443
     5444/* Line 1806 of yacc.c  */
     5445#line 553 "parser.yy"
     5446    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5447    break;
     5448
    54795449  case 100:
    54805450
    54815451/* Line 1806 of yacc.c  */
    5482 #line 551 "parser.yy"
     5452#line 555 "parser.yy"
     5453    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5454    break;
     5455
     5456  case 101:
     5457
     5458/* Line 1806 of yacc.c  */
     5459#line 557 "parser.yy"
    54835460    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    54845461    break;
    54855462
    5486   case 101:
    5487 
    5488 /* Line 1806 of yacc.c  */
    5489 #line 553 "parser.yy"
    5490     { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5491     break;
    5492 
    5493   case 102:
    5494 
    5495 /* Line 1806 of yacc.c  */
    5496 #line 555 "parser.yy"
    5497     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5463  case 104:
     5464
     5465/* Line 1806 of yacc.c  */
     5466#line 568 "parser.yy"
     5467    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54985468    break;
    54995469
     
    55015471
    55025472/* Line 1806 of yacc.c  */
    5503 #line 566 "parser.yy"
    5504     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5473#line 570 "parser.yy"
     5474    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55055475    break;
    55065476
     
    55085478
    55095479/* Line 1806 of yacc.c  */
    5510 #line 568 "parser.yy"
    5511     { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5480#line 572 "parser.yy"
     5481    { (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) ); }
    55125482    break;
    55135483
     
    55155485
    55165486/* Line 1806 of yacc.c  */
    5517 #line 570 "parser.yy"
    5518     { (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) ); }
    5519     break;
    5520 
    5521   case 108:
    5522 
    5523 /* Line 1806 of yacc.c  */
    5524 #line 575 "parser.yy"
     5487#line 577 "parser.yy"
    55255488    { (yyval.en) = new NullExprNode; }
    55265489    break;
    55275490
     5491  case 109:
     5492
     5493/* Line 1806 of yacc.c  */
     5494#line 585 "parser.yy"
     5495    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     5496    break;
     5497
    55285498  case 110:
    55295499
    55305500/* Line 1806 of yacc.c  */
    5531 #line 583 "parser.yy"
    5532     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     5501#line 587 "parser.yy"
     5502    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    55335503    break;
    55345504
     
    55365506
    55375507/* Line 1806 of yacc.c  */
    5538 #line 585 "parser.yy"
    5539     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
     5508#line 589 "parser.yy"
     5509    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    55405510    break;
    55415511
     
    55435513
    55445514/* Line 1806 of yacc.c  */
    5545 #line 587 "parser.yy"
    5546     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    5547     break;
    5548 
    5549   case 113:
    5550 
    5551 /* Line 1806 of yacc.c  */
    5552 #line 589 "parser.yy"
     5515#line 591 "parser.yy"
    55535516    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    55545517    break;
    55555518
     5519  case 114:
     5520
     5521/* Line 1806 of yacc.c  */
     5522#line 597 "parser.yy"
     5523    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5524    break;
     5525
    55565526  case 115:
    55575527
    55585528/* Line 1806 of yacc.c  */
    5559 #line 595 "parser.yy"
    5560     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5529#line 601 "parser.yy"
     5530    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    55615531    break;
    55625532
     
    55645534
    55655535/* Line 1806 of yacc.c  */
    5566 #line 599 "parser.yy"
    5567     { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
     5536#line 602 "parser.yy"
     5537    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    55685538    break;
    55695539
     
    55715541
    55725542/* Line 1806 of yacc.c  */
    5573 #line 600 "parser.yy"
    5574     { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
     5543#line 603 "parser.yy"
     5544    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    55755545    break;
    55765546
     
    55785548
    55795549/* Line 1806 of yacc.c  */
    5580 #line 601 "parser.yy"
    5581     { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
     5550#line 604 "parser.yy"
     5551    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    55825552    break;
    55835553
     
    55855555
    55865556/* Line 1806 of yacc.c  */
    5587 #line 602 "parser.yy"
    5588     { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
     5557#line 605 "parser.yy"
     5558    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    55895559    break;
    55905560
     
    55925562
    55935563/* Line 1806 of yacc.c  */
    5594 #line 603 "parser.yy"
    5595     { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
     5564#line 606 "parser.yy"
     5565    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    55965566    break;
    55975567
     
    55995569
    56005570/* Line 1806 of yacc.c  */
    5601 #line 604 "parser.yy"
    5602     { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
     5571#line 607 "parser.yy"
     5572    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    56035573    break;
    56045574
     
    56065576
    56075577/* Line 1806 of yacc.c  */
    5608 #line 605 "parser.yy"
    5609     { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
     5578#line 608 "parser.yy"
     5579    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    56105580    break;
    56115581
     
    56135583
    56145584/* Line 1806 of yacc.c  */
    5615 #line 606 "parser.yy"
    5616     { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
     5585#line 609 "parser.yy"
     5586    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    56175587    break;
    56185588
     
    56205590
    56215591/* Line 1806 of yacc.c  */
    5622 #line 607 "parser.yy"
    5623     { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    5624     break;
    5625 
    5626   case 125:
    5627 
    5628 /* Line 1806 of yacc.c  */
    5629 #line 608 "parser.yy"
     5592#line 610 "parser.yy"
    56305593    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    56315594    break;
    56325595
     5596  case 126:
     5597
     5598/* Line 1806 of yacc.c  */
     5599#line 616 "parser.yy"
     5600    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5601    break;
     5602
    56335603  case 127:
    56345604
    56355605/* Line 1806 of yacc.c  */
    5636 #line 614 "parser.yy"
    5637     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5638     break;
    5639 
    5640   case 128:
    5641 
    5642 /* Line 1806 of yacc.c  */
    5643 #line 619 "parser.yy"
     5606#line 621 "parser.yy"
    56445607    { (yyval.en) = 0; }
    56455608    break;
    56465609
    5647   case 132:
    5648 
    5649 /* Line 1806 of yacc.c  */
    5650 #line 628 "parser.yy"
     5610  case 131:
     5611
     5612/* Line 1806 of yacc.c  */
     5613#line 630 "parser.yy"
    56515614    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56525615    break;
    56535616
    5654   case 139:
    5655 
    5656 /* Line 1806 of yacc.c  */
    5657 #line 639 "parser.yy"
     5617  case 137:
     5618
     5619/* Line 1806 of yacc.c  */
     5620#line 637 "parser.yy"
     5621    {
     5622                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
     5623                        (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
     5624                                (ExpressionNode *)(new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), (yyvsp[(2) - (6)].en) ))->set_link( (yyvsp[(4) - (6)].en) ) ), 0 );
     5625                }
     5626    break;
     5627
     5628  case 138:
     5629
     5630/* Line 1806 of yacc.c  */
     5631#line 646 "parser.yy"
    56585632    {
    56595633                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56615635    break;
    56625636
     5637  case 139:
     5638
     5639/* Line 1806 of yacc.c  */
     5640#line 653 "parser.yy"
     5641    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
     5642    break;
     5643
    56635644  case 140:
    56645645
    56655646/* Line 1806 of yacc.c  */
    5666 #line 646 "parser.yy"
    5667     { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    5668     break;
    5669 
    5670   case 141:
    5671 
    5672 /* Line 1806 of yacc.c  */
    5673 #line 653 "parser.yy"
     5647#line 660 "parser.yy"
    56745648    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    56755649    break;
    56765650
     5651  case 142:
     5652
     5653/* Line 1806 of yacc.c  */
     5654#line 666 "parser.yy"
     5655    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5656    break;
     5657
    56775658  case 143:
    56785659
    56795660/* Line 1806 of yacc.c  */
    5680 #line 659 "parser.yy"
    5681     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5661#line 671 "parser.yy"
     5662    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56825663    break;
    56835664
     
    56855666
    56865667/* Line 1806 of yacc.c  */
    5687 #line 664 "parser.yy"
     5668#line 673 "parser.yy"
     5669    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
     5670    break;
     5671
     5672  case 145:
     5673
     5674/* Line 1806 of yacc.c  */
     5675#line 675 "parser.yy"
    56885676    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56895677    break;
    56905678
    5691   case 145:
    5692 
    5693 /* Line 1806 of yacc.c  */
    5694 #line 666 "parser.yy"
    5695     { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    5696     break;
    5697 
    5698   case 146:
    5699 
    5700 /* Line 1806 of yacc.c  */
    5701 #line 668 "parser.yy"
    5702     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5679  case 148:
     5680
     5681/* Line 1806 of yacc.c  */
     5682#line 682 "parser.yy"
     5683    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57035684    break;
    57045685
     
    57065687
    57075688/* Line 1806 of yacc.c  */
    5708 #line 675 "parser.yy"
    5709     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5689#line 687 "parser.yy"
     5690    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    57105691    break;
    57115692
     
    57135694
    57145695/* Line 1806 of yacc.c  */
    5715 #line 680 "parser.yy"
    5716     { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
     5696#line 693 "parser.yy"
     5697    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57175698    break;
    57185699
     
    57205701
    57215702/* Line 1806 of yacc.c  */
    5722 #line 686 "parser.yy"
    5723     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5703#line 695 "parser.yy"
     5704    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    57245705    break;
    57255706
     
    57275708
    57285709/* Line 1806 of yacc.c  */
    5729 #line 688 "parser.yy"
    5730     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
     5710#line 697 "parser.yy"
     5711    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57315712    break;
    57325713
     
    57345715
    57355716/* Line 1806 of yacc.c  */
    5736 #line 690 "parser.yy"
    5737     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5717#line 699 "parser.yy"
     5718    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    57385719    break;
    57395720
     
    57415722
    57425723/* Line 1806 of yacc.c  */
    5743 #line 692 "parser.yy"
    5744     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
     5724#line 704 "parser.yy"
     5725    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57455726    break;
    57465727
     
    57485729
    57495730/* Line 1806 of yacc.c  */
    5750 #line 697 "parser.yy"
    5751     { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5731#line 706 "parser.yy"
     5732    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    57525733    break;
    57535734
     
    57555736
    57565737/* Line 1806 of yacc.c  */
    5757 #line 699 "parser.yy"
    5758     { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
     5738#line 713 "parser.yy"
     5739    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57595740    break;
    57605741
     
    57625743
    57635744/* Line 1806 of yacc.c  */
    5764 #line 706 "parser.yy"
    5765     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5766     break;
    5767 
    5768   case 158:
    5769 
    5770 /* Line 1806 of yacc.c  */
    5771 #line 708 "parser.yy"
     5745#line 715 "parser.yy"
    57725746    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57735747    break;
    57745748
     5749  case 160:
     5750
     5751/* Line 1806 of yacc.c  */
     5752#line 722 "parser.yy"
     5753    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
     5754    break;
     5755
    57755756  case 161:
    57765757
    57775758/* Line 1806 of yacc.c  */
    5778 #line 715 "parser.yy"
    5779     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
     5759#line 726 "parser.yy"
     5760    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    57805761    break;
    57815762
     
    57835764
    57845765/* Line 1806 of yacc.c  */
    5785 #line 719 "parser.yy"
    5786     { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    5787     break;
    5788 
    5789   case 163:
    5790 
    5791 /* Line 1806 of yacc.c  */
    5792 #line 720 "parser.yy"
     5766#line 727 "parser.yy"
    57935767    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    57945768    break;
    57955769
     5770  case 164:
     5771
     5772/* Line 1806 of yacc.c  */
     5773#line 733 "parser.yy"
     5774    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
     5775    break;
     5776
    57965777  case 165:
    57975778
    57985779/* Line 1806 of yacc.c  */
    5799 #line 726 "parser.yy"
    5800     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
     5780#line 737 "parser.yy"
     5781    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58015782    break;
    58025783
     
    58045785
    58055786/* Line 1806 of yacc.c  */
    5806 #line 730 "parser.yy"
     5787#line 742 "parser.yy"
     5788    { (yyval.sn) = 0; }
     5789    break;
     5790
     5791  case 168:
     5792
     5793/* Line 1806 of yacc.c  */
     5794#line 748 "parser.yy"
    58075795    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58085796    break;
    58095797
    5810   case 167:
    5811 
    5812 /* Line 1806 of yacc.c  */
    5813 #line 735 "parser.yy"
     5798  case 169:
     5799
     5800/* Line 1806 of yacc.c  */
     5801#line 750 "parser.yy"
     5802    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5803    break;
     5804
     5805  case 170:
     5806
     5807/* Line 1806 of yacc.c  */
     5808#line 755 "parser.yy"
    58145809    { (yyval.sn) = 0; }
    58155810    break;
    58165811
    5817   case 169:
    5818 
    5819 /* Line 1806 of yacc.c  */
    5820 #line 741 "parser.yy"
     5812  case 172:
     5813
     5814/* Line 1806 of yacc.c  */
     5815#line 761 "parser.yy"
    58215816    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58225817    break;
    58235818
    5824   case 170:
    5825 
    5826 /* Line 1806 of yacc.c  */
    5827 #line 743 "parser.yy"
     5819  case 173:
     5820
     5821/* Line 1806 of yacc.c  */
     5822#line 763 "parser.yy"
     5823    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
     5824    break;
     5825
     5826  case 174:
     5827
     5828/* Line 1806 of yacc.c  */
     5829#line 765 "parser.yy"
    58285830    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58295831    break;
    58305832
    5831   case 171:
    5832 
    5833 /* Line 1806 of yacc.c  */
    5834 #line 748 "parser.yy"
     5833  case 175:
     5834
     5835/* Line 1806 of yacc.c  */
     5836#line 767 "parser.yy"
     5837    { (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) ))))); }
     5838    break;
     5839
     5840  case 176:
     5841
     5842/* Line 1806 of yacc.c  */
     5843#line 772 "parser.yy"
    58355844    { (yyval.sn) = 0; }
    58365845    break;
    58375846
    5838   case 173:
    5839 
    5840 /* Line 1806 of yacc.c  */
    5841 #line 754 "parser.yy"
    5842     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5843     break;
    5844 
    5845   case 174:
    5846 
    5847 /* Line 1806 of yacc.c  */
    5848 #line 756 "parser.yy"
    5849     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    5850     break;
    5851 
    5852   case 175:
    5853 
    5854 /* Line 1806 of yacc.c  */
    5855 #line 758 "parser.yy"
    5856     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    5857     break;
    5858 
    5859   case 176:
    5860 
    5861 /* Line 1806 of yacc.c  */
    5862 #line 760 "parser.yy"
    5863     { (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) ))))); }
    5864     break;
    5865 
    5866   case 177:
    5867 
    5868 /* Line 1806 of yacc.c  */
    5869 #line 765 "parser.yy"
    5870     { (yyval.sn) = 0; }
     5847  case 178:
     5848
     5849/* Line 1806 of yacc.c  */
     5850#line 777 "parser.yy"
     5851    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    58715852    break;
    58725853
     
    58745855
    58755856/* Line 1806 of yacc.c  */
    5876 #line 770 "parser.yy"
     5857#line 778 "parser.yy"
    58775858    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    58785859    break;
     
    58815862
    58825863/* Line 1806 of yacc.c  */
    5883 #line 771 "parser.yy"
    5884     { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
     5864#line 783 "parser.yy"
     5865    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58855866    break;
    58865867
     
    58885869
    58895870/* Line 1806 of yacc.c  */
    5890 #line 776 "parser.yy"
    5891     { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5871#line 785 "parser.yy"
     5872    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    58925873    break;
    58935874
     
    58955876
    58965877/* Line 1806 of yacc.c  */
    5897 #line 778 "parser.yy"
    5898     { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
     5878#line 787 "parser.yy"
     5879    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    58995880    break;
    59005881
     
    59025883
    59035884/* Line 1806 of yacc.c  */
    5904 #line 780 "parser.yy"
    5905     { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
     5885#line 792 "parser.yy"
     5886    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59065887    break;
    59075888
     
    59095890
    59105891/* Line 1806 of yacc.c  */
    5911 #line 785 "parser.yy"
    5912     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5892#line 794 "parser.yy"
     5893    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59135894    break;
    59145895
     
    59165897
    59175898/* Line 1806 of yacc.c  */
    5918 #line 787 "parser.yy"
    5919     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5899#line 799 "parser.yy"
     5900    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    59205901    break;
    59215902
     
    59235904
    59245905/* Line 1806 of yacc.c  */
    5925 #line 792 "parser.yy"
    5926     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
     5906#line 803 "parser.yy"
     5907    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    59275908    break;
    59285909
     
    59305911
    59315912/* Line 1806 of yacc.c  */
    5932 #line 796 "parser.yy"
    5933     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
     5913#line 806 "parser.yy"
     5914    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    59345915    break;
    59355916
     
    59375918
    59385919/* Line 1806 of yacc.c  */
    5939 #line 799 "parser.yy"
    5940     { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
     5920#line 810 "parser.yy"
     5921    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    59415922    break;
    59425923
     
    59445925
    59455926/* Line 1806 of yacc.c  */
    5946 #line 803 "parser.yy"
    5947     { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
     5927#line 813 "parser.yy"
     5928    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    59485929    break;
    59495930
     
    59515932
    59525933/* Line 1806 of yacc.c  */
    5953 #line 806 "parser.yy"
    5954     { (yyval.sn) = new StatementNode( StatementNode::Break ); }
     5934#line 817 "parser.yy"
     5935    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    59555936    break;
    59565937
     
    59585939
    59595940/* Line 1806 of yacc.c  */
    5960 #line 810 "parser.yy"
    5961     { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
     5941#line 819 "parser.yy"
     5942    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    59625943    break;
    59635944
     
    59655946
    59665947/* Line 1806 of yacc.c  */
    5967 #line 812 "parser.yy"
    5968     { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
     5948#line 821 "parser.yy"
     5949    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    59695950    break;
    59705951
     
    59725953
    59735954/* Line 1806 of yacc.c  */
    5974 #line 814 "parser.yy"
     5955#line 825 "parser.yy"
    59755956    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    59765957    break;
     
    59795960
    59805961/* Line 1806 of yacc.c  */
    5981 #line 818 "parser.yy"
    5982     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
     5962#line 827 "parser.yy"
     5963    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    59835964    break;
    59845965
     
    59865967
    59875968/* Line 1806 of yacc.c  */
    5988 #line 820 "parser.yy"
    5989     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
     5969#line 834 "parser.yy"
     5970    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    59905971    break;
    59915972
     
    59935974
    59945975/* Line 1806 of yacc.c  */
    5995 #line 827 "parser.yy"
     5976#line 836 "parser.yy"
    59965977    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    59975978    break;
     
    60005981
    60015982/* Line 1806 of yacc.c  */
    6002 #line 829 "parser.yy"
    6003     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6004     break;
    6005 
    6006   case 198:
    6007 
    6008 /* Line 1806 of yacc.c  */
    6009 #line 831 "parser.yy"
     5983#line 838 "parser.yy"
    60105984    {
    60115985                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    60145988    break;
    60155989
     5990  case 199:
     5991
     5992/* Line 1806 of yacc.c  */
     5993#line 849 "parser.yy"
     5994    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
     5995    break;
     5996
    60165997  case 200:
    60175998
    60185999/* Line 1806 of yacc.c  */
    6019 #line 842 "parser.yy"
     6000#line 851 "parser.yy"
     6001    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
     6002    break;
     6003
     6004  case 201:
     6005
     6006/* Line 1806 of yacc.c  */
     6007#line 853 "parser.yy"
    60206008    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60216009    break;
    60226010
    6023   case 201:
    6024 
    6025 /* Line 1806 of yacc.c  */
    6026 #line 844 "parser.yy"
     6011  case 202:
     6012
     6013/* Line 1806 of yacc.c  */
     6014#line 855 "parser.yy"
    60276015    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60286016    break;
    60296017
    6030   case 202:
    6031 
    6032 /* Line 1806 of yacc.c  */
    6033 #line 846 "parser.yy"
    6034     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    6035     break;
    6036 
    60376018  case 203:
    60386019
    60396020/* Line 1806 of yacc.c  */
    6040 #line 848 "parser.yy"
    6041     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
     6021#line 860 "parser.yy"
     6022    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60426023    break;
    60436024
     
    60456026
    60466027/* Line 1806 of yacc.c  */
    6047 #line 853 "parser.yy"
     6028#line 862 "parser.yy"
     6029    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
     6030    break;
     6031
     6032  case 205:
     6033
     6034/* Line 1806 of yacc.c  */
     6035#line 864 "parser.yy"
    60486036    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60496037    break;
    60506038
    6051   case 205:
    6052 
    6053 /* Line 1806 of yacc.c  */
    6054 #line 855 "parser.yy"
     6039  case 206:
     6040
     6041/* Line 1806 of yacc.c  */
     6042#line 866 "parser.yy"
    60556043    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60566044    break;
    60576045
    6058   case 206:
    6059 
    6060 /* Line 1806 of yacc.c  */
    6061 #line 857 "parser.yy"
    6062     { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    6063     break;
    6064 
    60656046  case 207:
    60666047
    60676048/* Line 1806 of yacc.c  */
    6068 #line 859 "parser.yy"
    6069     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    6070     break;
    6071 
    6072   case 208:
    6073 
    6074 /* Line 1806 of yacc.c  */
    6075 #line 864 "parser.yy"
     6049#line 871 "parser.yy"
    60766050    {
    60776051                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    60806054    break;
    60816055
    6082   case 210:
    6083 
    6084 /* Line 1806 of yacc.c  */
    6085 #line 878 "parser.yy"
     6056  case 209:
     6057
     6058/* Line 1806 of yacc.c  */
     6059#line 885 "parser.yy"
    60866060    {
    60876061                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60906064    break;
    60916065
     6066  case 210:
     6067
     6068/* Line 1806 of yacc.c  */
     6069#line 890 "parser.yy"
     6070    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6071    break;
     6072
    60926073  case 211:
    60936074
    60946075/* Line 1806 of yacc.c  */
    6095 #line 883 "parser.yy"
    6096     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    6097     break;
    6098 
    6099   case 212:
    6100 
    6101 /* Line 1806 of yacc.c  */
    6102 #line 885 "parser.yy"
     6076#line 892 "parser.yy"
    61036077    {
    61046078                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61076081    break;
    61086082
     6083  case 213:
     6084
     6085/* Line 1806 of yacc.c  */
     6086#line 901 "parser.yy"
     6087    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
     6088    break;
     6089
    61096090  case 214:
    61106091
    61116092/* Line 1806 of yacc.c  */
    6112 #line 894 "parser.yy"
    6113     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
     6093#line 903 "parser.yy"
     6094    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    61146095    break;
    61156096
     
    61176098
    61186099/* Line 1806 of yacc.c  */
    6119 #line 896 "parser.yy"
    6120     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
     6100#line 905 "parser.yy"
     6101    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    61216102    break;
    61226103
     
    61246105
    61256106/* Line 1806 of yacc.c  */
    6126 #line 898 "parser.yy"
    6127     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
     6107#line 907 "parser.yy"
     6108    { (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) ); }
    61286109    break;
    61296110
     
    61316112
    61326113/* Line 1806 of yacc.c  */
    6133 #line 900 "parser.yy"
    6134     { (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) ); }
     6114#line 909 "parser.yy"
     6115    { (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) ); }
    61356116    break;
    61366117
     
    61386119
    61396120/* Line 1806 of yacc.c  */
    6140 #line 902 "parser.yy"
    6141     { (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) ); }
     6121#line 914 "parser.yy"
     6122    { (yyval.flag) = false; }
    61426123    break;
    61436124
     
    61456126
    61466127/* Line 1806 of yacc.c  */
    6147 #line 907 "parser.yy"
    6148     { (yyval.flag) = false; }
     6128#line 916 "parser.yy"
     6129    { (yyval.flag) = true; }
    61496130    break;
    61506131
     
    61526133
    61536134/* Line 1806 of yacc.c  */
    6154 #line 909 "parser.yy"
    6155     { (yyval.flag) = true; }
    6156     break;
    6157 
    6158   case 221:
    6159 
    6160 /* Line 1806 of yacc.c  */
    6161 #line 914 "parser.yy"
     6135#line 921 "parser.yy"
    61626136    { (yyval.en) = 0; }
    61636137    break;
    61646138
     6139  case 223:
     6140
     6141/* Line 1806 of yacc.c  */
     6142#line 928 "parser.yy"
     6143    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     6144    break;
     6145
    61656146  case 224:
    61666147
    61676148/* Line 1806 of yacc.c  */
    6168 #line 921 "parser.yy"
    6169     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     6149#line 933 "parser.yy"
     6150    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    61706151    break;
    61716152
     
    61736154
    61746155/* Line 1806 of yacc.c  */
    6175 #line 926 "parser.yy"
    6176     { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
     6156#line 935 "parser.yy"
     6157    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    61776158    break;
    61786159
     
    61806161
    61816162/* Line 1806 of yacc.c  */
    6182 #line 928 "parser.yy"
    6183     { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
     6163#line 940 "parser.yy"
     6164    { (yyval.constant) = 0; }
    61846165    break;
    61856166
     
    61876168
    61886169/* Line 1806 of yacc.c  */
    6189 #line 933 "parser.yy"
    6190     { (yyval.constant) = 0; }
     6170#line 942 "parser.yy"
     6171    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    61916172    break;
    61926173
     
    61946175
    61956176/* Line 1806 of yacc.c  */
    6196 #line 935 "parser.yy"
    6197     { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
     6177#line 944 "parser.yy"
     6178    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    61986179    break;
    61996180
     
    62016182
    62026183/* Line 1806 of yacc.c  */
    6203 #line 937 "parser.yy"
    6204     { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
     6184#line 949 "parser.yy"
     6185    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    62056186    break;
    62066187
     
    62086189
    62096190/* Line 1806 of yacc.c  */
    6210 #line 942 "parser.yy"
    6211     { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
     6191#line 951 "parser.yy"
     6192    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    62126193    break;
    62136194
     
    62156196
    62166197/* Line 1806 of yacc.c  */
    6217 #line 944 "parser.yy"
    6218     { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    6219     break;
    6220 
    6221   case 232:
    6222 
    6223 /* Line 1806 of yacc.c  */
    6224 #line 949 "parser.yy"
    6225     {
    6226                         Token fn; fn.str = new std::string( "?{}" ); fn.loc = (yyvsp[(1) - (5)].tok).loc;
    6227                         (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    6228                                    (ExpressionNode *)((new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), new VarRefNode( (yyvsp[(1) - (5)].tok) ) ))->set_link( (yyvsp[(3) - (5)].en) )) ), 0 );
    6229                 }
    6230     break;
    6231 
    6232   case 233:
    6233 
    6234 /* Line 1806 of yacc.c  */
    6235 #line 955 "parser.yy"
    6236     {
    6237                         Token fn; fn.str = new std::string( "^?{}" ); fn.loc = (yyvsp[(2) - (5)].tok).loc;
    6238                         (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    6239                                    new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), new VarRefNode( (yyvsp[(2) - (5)].tok) ) ) ), 0 );
    6240                 }
     6198#line 958 "parser.yy"
     6199    { (yyval.decl) = 0; }
    62416200    break;
    62426201
     
    62446203
    62456204/* Line 1806 of yacc.c  */
    6246 #line 966 "parser.yy"
     6205#line 965 "parser.yy"
     6206    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6207    break;
     6208
     6209  case 235:
     6210
     6211/* Line 1806 of yacc.c  */
     6212#line 970 "parser.yy"
    62476213    { (yyval.decl) = 0; }
    62486214    break;
    62496215
    6250   case 237:
    6251 
    6252 /* Line 1806 of yacc.c  */
    6253 #line 973 "parser.yy"
     6216  case 238:
     6217
     6218/* Line 1806 of yacc.c  */
     6219#line 977 "parser.yy"
    62546220    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62556221    break;
    62566222
    6257   case 238:
    6258 
    6259 /* Line 1806 of yacc.c  */
    6260 #line 978 "parser.yy"
    6261     { (yyval.decl) = 0; }
    6262     break;
    6263 
    6264   case 241:
    6265 
    6266 /* Line 1806 of yacc.c  */
    6267 #line 985 "parser.yy"
    6268     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6269     break;
    6270 
    6271   case 246:
    6272 
    6273 /* Line 1806 of yacc.c  */
    6274 #line 999 "parser.yy"
     6223  case 243:
     6224
     6225/* Line 1806 of yacc.c  */
     6226#line 991 "parser.yy"
    62756227    {}
    62766228    break;
    62776229
    6278   case 247:
    6279 
    6280 /* Line 1806 of yacc.c  */
    6281 #line 1000 "parser.yy"
     6230  case 244:
     6231
     6232/* Line 1806 of yacc.c  */
     6233#line 992 "parser.yy"
    62826234    {}
    62836235    break;
    62846236
    6285   case 255:
    6286 
    6287 /* Line 1806 of yacc.c  */
    6288 #line 1029 "parser.yy"
     6237  case 252:
     6238
     6239/* Line 1806 of yacc.c  */
     6240#line 1021 "parser.yy"
    62896241    {
    62906242                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62936245    break;
    62946246
    6295   case 256:
    6296 
    6297 /* Line 1806 of yacc.c  */
    6298 #line 1036 "parser.yy"
     6247  case 253:
     6248
     6249/* Line 1806 of yacc.c  */
     6250#line 1028 "parser.yy"
    62996251    {
    63006252                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63036255    break;
    63046256
    6305   case 257:
    6306 
    6307 /* Line 1806 of yacc.c  */
    6308 #line 1041 "parser.yy"
     6257  case 254:
     6258
     6259/* Line 1806 of yacc.c  */
     6260#line 1033 "parser.yy"
    63096261    {
    63106262                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63136265    break;
    63146266
    6315   case 258:
    6316 
    6317 /* Line 1806 of yacc.c  */
    6318 #line 1051 "parser.yy"
     6267  case 255:
     6268
     6269/* Line 1806 of yacc.c  */
     6270#line 1043 "parser.yy"
    63196271    {
    63206272                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63236275    break;
    63246276
    6325   case 259:
    6326 
    6327 /* Line 1806 of yacc.c  */
    6328 #line 1056 "parser.yy"
     6277  case 256:
     6278
     6279/* Line 1806 of yacc.c  */
     6280#line 1048 "parser.yy"
    63296281    {
    63306282                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63336285    break;
    63346286
    6335   case 260:
    6336 
    6337 /* Line 1806 of yacc.c  */
    6338 #line 1061 "parser.yy"
     6287  case 257:
     6288
     6289/* Line 1806 of yacc.c  */
     6290#line 1053 "parser.yy"
    63396291    {
    63406292                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63436295    break;
    63446296
    6345   case 261:
    6346 
    6347 /* Line 1806 of yacc.c  */
    6348 #line 1069 "parser.yy"
     6297  case 258:
     6298
     6299/* Line 1806 of yacc.c  */
     6300#line 1061 "parser.yy"
    63496301    {
    63506302                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63536305    break;
    63546306
    6355   case 262:
    6356 
    6357 /* Line 1806 of yacc.c  */
    6358 #line 1074 "parser.yy"
     6307  case 259:
     6308
     6309/* Line 1806 of yacc.c  */
     6310#line 1066 "parser.yy"
    63596311    {
    63606312                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63636315    break;
    63646316
    6365   case 263:
    6366 
    6367 /* Line 1806 of yacc.c  */
    6368 #line 1079 "parser.yy"
     6317  case 260:
     6318
     6319/* Line 1806 of yacc.c  */
     6320#line 1071 "parser.yy"
    63696321    {
    63706322                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63736325    break;
    63746326
    6375   case 264:
    6376 
    6377 /* Line 1806 of yacc.c  */
    6378 #line 1084 "parser.yy"
     6327  case 261:
     6328
     6329/* Line 1806 of yacc.c  */
     6330#line 1076 "parser.yy"
    63796331    {
    63806332                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63836335    break;
    63846336
    6385   case 265:
    6386 
    6387 /* Line 1806 of yacc.c  */
    6388 #line 1089 "parser.yy"
     6337  case 262:
     6338
     6339/* Line 1806 of yacc.c  */
     6340#line 1081 "parser.yy"
    63896341    {
    63906342                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63936345    break;
    63946346
    6395   case 266:
    6396 
    6397 /* Line 1806 of yacc.c  */
    6398 #line 1097 "parser.yy"
     6347  case 263:
     6348
     6349/* Line 1806 of yacc.c  */
     6350#line 1089 "parser.yy"
    63996351    {
    64006352                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64026354    break;
    64036355
    6404   case 267:
    6405 
    6406 /* Line 1806 of yacc.c  */
    6407 #line 1120 "parser.yy"
     6356  case 264:
     6357
     6358/* Line 1806 of yacc.c  */
     6359#line 1112 "parser.yy"
    64086360    {
    64096361                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64116363    break;
    64126364
    6413   case 268:
    6414 
    6415 /* Line 1806 of yacc.c  */
    6416 #line 1124 "parser.yy"
     6365  case 265:
     6366
     6367/* Line 1806 of yacc.c  */
     6368#line 1116 "parser.yy"
    64176369    {
    64186370                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64206372    break;
    64216373
    6422   case 269:
    6423 
    6424 /* Line 1806 of yacc.c  */
    6425 #line 1131 "parser.yy"
     6374  case 266:
     6375
     6376/* Line 1806 of yacc.c  */
     6377#line 1123 "parser.yy"
    64266378    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64276379    break;
    64286380
    6429   case 270:
    6430 
    6431 /* Line 1806 of yacc.c  */
    6432 #line 1135 "parser.yy"
     6381  case 267:
     6382
     6383/* Line 1806 of yacc.c  */
     6384#line 1127 "parser.yy"
    64336385    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64346386    break;
    64356387
    6436   case 271:
    6437 
    6438 /* Line 1806 of yacc.c  */
    6439 #line 1140 "parser.yy"
     6388  case 268:
     6389
     6390/* Line 1806 of yacc.c  */
     6391#line 1132 "parser.yy"
    64406392    {
    64416393                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64446396    break;
    64456397
    6446   case 272:
    6447 
    6448 /* Line 1806 of yacc.c  */
    6449 #line 1145 "parser.yy"
     6398  case 269:
     6399
     6400/* Line 1806 of yacc.c  */
     6401#line 1137 "parser.yy"
    64506402    {
    64516403                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64546406    break;
    64556407
    6456   case 273:
    6457 
    6458 /* Line 1806 of yacc.c  */
    6459 #line 1150 "parser.yy"
     6408  case 270:
     6409
     6410/* Line 1806 of yacc.c  */
     6411#line 1142 "parser.yy"
    64606412    {
    64616413                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64646416    break;
    64656417
    6466   case 274:
    6467 
    6468 /* Line 1806 of yacc.c  */
    6469 #line 1161 "parser.yy"
     6418  case 271:
     6419
     6420/* Line 1806 of yacc.c  */
     6421#line 1153 "parser.yy"
    64706422    {
    64716423                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64746426    break;
    64756427
    6476   case 275:
    6477 
    6478 /* Line 1806 of yacc.c  */
    6479 #line 1166 "parser.yy"
     6428  case 272:
     6429
     6430/* Line 1806 of yacc.c  */
     6431#line 1158 "parser.yy"
    64806432    {
    64816433                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64846436    break;
    64856437
    6486   case 276:
    6487 
    6488 /* Line 1806 of yacc.c  */
    6489 #line 1171 "parser.yy"
     6438  case 273:
     6439
     6440/* Line 1806 of yacc.c  */
     6441#line 1163 "parser.yy"
    64906442    {
    64916443                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64946446    break;
    64956447
    6496   case 277:
    6497 
    6498 /* Line 1806 of yacc.c  */
    6499 #line 1176 "parser.yy"
     6448  case 274:
     6449
     6450/* Line 1806 of yacc.c  */
     6451#line 1168 "parser.yy"
    65006452    {
    65016453                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65046456    break;
    65056457
    6506   case 278:
    6507 
    6508 /* Line 1806 of yacc.c  */
    6509 #line 1181 "parser.yy"
     6458  case 275:
     6459
     6460/* Line 1806 of yacc.c  */
     6461#line 1173 "parser.yy"
    65106462    {
    65116463                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65146466    break;
    65156467
    6516   case 279:
    6517 
    6518 /* Line 1806 of yacc.c  */
    6519 #line 1190 "parser.yy"
     6468  case 276:
     6469
     6470/* Line 1806 of yacc.c  */
     6471#line 1182 "parser.yy"
    65206472    {
    65216473                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65246476    break;
    65256477
    6526   case 280:
    6527 
    6528 /* Line 1806 of yacc.c  */
    6529 #line 1195 "parser.yy"
     6478  case 277:
     6479
     6480/* Line 1806 of yacc.c  */
     6481#line 1187 "parser.yy"
    65306482    {
    65316483                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65346486    break;
    65356487
    6536   case 285:
    6537 
    6538 /* Line 1806 of yacc.c  */
    6539 #line 1212 "parser.yy"
     6488  case 282:
     6489
     6490/* Line 1806 of yacc.c  */
     6491#line 1204 "parser.yy"
    65406492    {
    65416493                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65446496    break;
    65456497
    6546   case 286:
    6547 
    6548 /* Line 1806 of yacc.c  */
    6549 #line 1217 "parser.yy"
     6498  case 283:
     6499
     6500/* Line 1806 of yacc.c  */
     6501#line 1209 "parser.yy"
    65506502    {
    65516503                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65546506    break;
    65556507
     6508  case 292:
     6509
     6510/* Line 1806 of yacc.c  */
     6511#line 1231 "parser.yy"
     6512    { (yyval.decl) = 0; }
     6513    break;
     6514
    65566515  case 295:
    65576516
    65586517/* Line 1806 of yacc.c  */
    6559 #line 1239 "parser.yy"
    6560     { (yyval.decl) = 0; }
     6518#line 1243 "parser.yy"
     6519    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65616520    break;
    65626521
     
    65646523
    65656524/* Line 1806 of yacc.c  */
    6566 #line 1251 "parser.yy"
    6567     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6525#line 1254 "parser.yy"
     6526    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6527    break;
     6528
     6529  case 299:
     6530
     6531/* Line 1806 of yacc.c  */
     6532#line 1256 "parser.yy"
     6533    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6534    break;
     6535
     6536  case 300:
     6537
     6538/* Line 1806 of yacc.c  */
     6539#line 1258 "parser.yy"
     6540    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    65686541    break;
    65696542
     
    65716544
    65726545/* Line 1806 of yacc.c  */
     6546#line 1260 "parser.yy"
     6547    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6548    break;
     6549
     6550  case 302:
     6551
     6552/* Line 1806 of yacc.c  */
    65736553#line 1262 "parser.yy"
    6574     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    6575     break;
    6576 
    6577   case 302:
     6554    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     6555    break;
     6556
     6557  case 303:
    65786558
    65796559/* Line 1806 of yacc.c  */
    65806560#line 1264 "parser.yy"
    6581     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    6582     break;
    6583 
    6584   case 303:
    6585 
    6586 /* Line 1806 of yacc.c  */
    6587 #line 1266 "parser.yy"
    6588     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6589     break;
    6590 
    6591   case 304:
    6592 
    6593 /* Line 1806 of yacc.c  */
    6594 #line 1268 "parser.yy"
    6595     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6596     break;
    6597 
    6598   case 305:
    6599 
    6600 /* Line 1806 of yacc.c  */
    6601 #line 1270 "parser.yy"
    6602     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6603     break;
    6604 
    6605   case 306:
    6606 
    6607 /* Line 1806 of yacc.c  */
    6608 #line 1272 "parser.yy"
    66096561    {
    66106562                        typedefTable.enterScope();
     
    66126564    break;
    66136565
    6614   case 307:
    6615 
    6616 /* Line 1806 of yacc.c  */
    6617 #line 1276 "parser.yy"
     6566  case 304:
     6567
     6568/* Line 1806 of yacc.c  */
     6569#line 1268 "parser.yy"
    66186570    {
    66196571                        typedefTable.leaveScope();
     
    66226574    break;
    66236575
     6576  case 306:
     6577
     6578/* Line 1806 of yacc.c  */
     6579#line 1277 "parser.yy"
     6580    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6581    break;
     6582
     6583  case 307:
     6584
     6585/* Line 1806 of yacc.c  */
     6586#line 1279 "parser.yy"
     6587    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6588    break;
     6589
    66246590  case 309:
    66256591
    66266592/* Line 1806 of yacc.c  */
    6627 #line 1285 "parser.yy"
     6593#line 1290 "parser.yy"
    66286594    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66296595    break;
    66306596
    6631   case 310:
    6632 
    6633 /* Line 1806 of yacc.c  */
    6634 #line 1287 "parser.yy"
     6597  case 311:
     6598
     6599/* Line 1806 of yacc.c  */
     6600#line 1299 "parser.yy"
     6601    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6602    break;
     6603
     6604  case 312:
     6605
     6606/* Line 1806 of yacc.c  */
     6607#line 1301 "parser.yy"
     6608    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6609    break;
     6610
     6611  case 313:
     6612
     6613/* Line 1806 of yacc.c  */
     6614#line 1303 "parser.yy"
     6615    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6616    break;
     6617
     6618  case 314:
     6619
     6620/* Line 1806 of yacc.c  */
     6621#line 1305 "parser.yy"
     6622    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6623    break;
     6624
     6625  case 315:
     6626
     6627/* Line 1806 of yacc.c  */
     6628#line 1307 "parser.yy"
     6629    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     6630    break;
     6631
     6632  case 316:
     6633
     6634/* Line 1806 of yacc.c  */
     6635#line 1309 "parser.yy"
     6636    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6637    break;
     6638
     6639  case 317:
     6640
     6641/* Line 1806 of yacc.c  */
     6642#line 1311 "parser.yy"
     6643    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6644    break;
     6645
     6646  case 318:
     6647
     6648/* Line 1806 of yacc.c  */
     6649#line 1313 "parser.yy"
     6650    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6651    break;
     6652
     6653  case 319:
     6654
     6655/* Line 1806 of yacc.c  */
     6656#line 1318 "parser.yy"
     6657    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6658    break;
     6659
     6660  case 320:
     6661
     6662/* Line 1806 of yacc.c  */
     6663#line 1320 "parser.yy"
     6664    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6665    break;
     6666
     6667  case 321:
     6668
     6669/* Line 1806 of yacc.c  */
     6670#line 1322 "parser.yy"
     6671    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6672    break;
     6673
     6674  case 322:
     6675
     6676/* Line 1806 of yacc.c  */
     6677#line 1324 "parser.yy"
     6678    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6679    break;
     6680
     6681  case 323:
     6682
     6683/* Line 1806 of yacc.c  */
     6684#line 1326 "parser.yy"
     6685    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6686    break;
     6687
     6688  case 324:
     6689
     6690/* Line 1806 of yacc.c  */
     6691#line 1328 "parser.yy"
     6692    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6693    break;
     6694
     6695  case 325:
     6696
     6697/* Line 1806 of yacc.c  */
     6698#line 1330 "parser.yy"
     6699    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6700    break;
     6701
     6702  case 326:
     6703
     6704/* Line 1806 of yacc.c  */
     6705#line 1332 "parser.yy"
     6706    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6707    break;
     6708
     6709  case 327:
     6710
     6711/* Line 1806 of yacc.c  */
     6712#line 1334 "parser.yy"
     6713    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6714    break;
     6715
     6716  case 328:
     6717
     6718/* Line 1806 of yacc.c  */
     6719#line 1336 "parser.yy"
     6720    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6721    break;
     6722
     6723  case 329:
     6724
     6725/* Line 1806 of yacc.c  */
     6726#line 1338 "parser.yy"
     6727    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6728    break;
     6729
     6730  case 330:
     6731
     6732/* Line 1806 of yacc.c  */
     6733#line 1340 "parser.yy"
     6734    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6735    break;
     6736
     6737  case 332:
     6738
     6739/* Line 1806 of yacc.c  */
     6740#line 1347 "parser.yy"
     6741    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6742    break;
     6743
     6744  case 333:
     6745
     6746/* Line 1806 of yacc.c  */
     6747#line 1349 "parser.yy"
     6748    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6749    break;
     6750
     6751  case 334:
     6752
     6753/* Line 1806 of yacc.c  */
     6754#line 1351 "parser.yy"
    66356755    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66366756    break;
    66376757
    6638   case 312:
    6639 
    6640 /* Line 1806 of yacc.c  */
    6641 #line 1298 "parser.yy"
     6758  case 335:
     6759
     6760/* Line 1806 of yacc.c  */
     6761#line 1353 "parser.yy"
     6762    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6763    break;
     6764
     6765  case 337:
     6766
     6767/* Line 1806 of yacc.c  */
     6768#line 1359 "parser.yy"
     6769    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6770    break;
     6771
     6772  case 339:
     6773
     6774/* Line 1806 of yacc.c  */
     6775#line 1366 "parser.yy"
     6776    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6777    break;
     6778
     6779  case 340:
     6780
     6781/* Line 1806 of yacc.c  */
     6782#line 1368 "parser.yy"
    66426783    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66436784    break;
    66446785
    6645   case 314:
    6646 
    6647 /* Line 1806 of yacc.c  */
    6648 #line 1307 "parser.yy"
    6649     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6650     break;
    6651 
    6652   case 315:
    6653 
    6654 /* Line 1806 of yacc.c  */
    6655 #line 1309 "parser.yy"
    6656     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6657     break;
    6658 
    6659   case 316:
    6660 
    6661 /* Line 1806 of yacc.c  */
    6662 #line 1311 "parser.yy"
    6663     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6664     break;
    6665 
    6666   case 317:
    6667 
    6668 /* Line 1806 of yacc.c  */
    6669 #line 1313 "parser.yy"
    6670     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6671     break;
    6672 
    6673   case 318:
    6674 
    6675 /* Line 1806 of yacc.c  */
    6676 #line 1315 "parser.yy"
    6677     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    6678     break;
    6679 
    6680   case 319:
    6681 
    6682 /* Line 1806 of yacc.c  */
    6683 #line 1317 "parser.yy"
    6684     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6685     break;
    6686 
    6687   case 320:
    6688 
    6689 /* Line 1806 of yacc.c  */
    6690 #line 1319 "parser.yy"
    6691     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    6692     break;
    6693 
    6694   case 321:
    6695 
    6696 /* Line 1806 of yacc.c  */
    6697 #line 1321 "parser.yy"
    6698     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6699     break;
    6700 
    6701   case 322:
    6702 
    6703 /* Line 1806 of yacc.c  */
    6704 #line 1326 "parser.yy"
    6705     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6706     break;
    6707 
    6708   case 323:
    6709 
    6710 /* Line 1806 of yacc.c  */
    6711 #line 1328 "parser.yy"
    6712     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6713     break;
    6714 
    6715   case 324:
    6716 
    6717 /* Line 1806 of yacc.c  */
    6718 #line 1330 "parser.yy"
    6719     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6720     break;
    6721 
    6722   case 325:
    6723 
    6724 /* Line 1806 of yacc.c  */
    6725 #line 1332 "parser.yy"
    6726     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6727     break;
    6728 
    6729   case 326:
    6730 
    6731 /* Line 1806 of yacc.c  */
    6732 #line 1334 "parser.yy"
    6733     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6734     break;
    6735 
    6736   case 327:
    6737 
    6738 /* Line 1806 of yacc.c  */
    6739 #line 1336 "parser.yy"
    6740     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6741     break;
    6742 
    6743   case 328:
    6744 
    6745 /* Line 1806 of yacc.c  */
    6746 #line 1338 "parser.yy"
    6747     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6748     break;
    6749 
    6750   case 329:
    6751 
    6752 /* Line 1806 of yacc.c  */
    6753 #line 1340 "parser.yy"
    6754     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6755     break;
    6756 
    6757   case 330:
    6758 
    6759 /* Line 1806 of yacc.c  */
    6760 #line 1342 "parser.yy"
    6761     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6762     break;
    6763 
    6764   case 331:
    6765 
    6766 /* Line 1806 of yacc.c  */
    6767 #line 1344 "parser.yy"
    6768     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6769     break;
    6770 
    6771   case 332:
    6772 
    6773 /* Line 1806 of yacc.c  */
    6774 #line 1346 "parser.yy"
    6775     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    6776     break;
    6777 
    6778   case 333:
    6779 
    6780 /* Line 1806 of yacc.c  */
    6781 #line 1348 "parser.yy"
    6782     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6783     break;
    6784 
    6785   case 335:
    6786 
    6787 /* Line 1806 of yacc.c  */
    6788 #line 1355 "parser.yy"
     6786  case 341:
     6787
     6788/* Line 1806 of yacc.c  */
     6789#line 1370 "parser.yy"
     6790    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6791    break;
     6792
     6793  case 342:
     6794
     6795/* Line 1806 of yacc.c  */
     6796#line 1375 "parser.yy"
     6797    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6798    break;
     6799
     6800  case 343:
     6801
     6802/* Line 1806 of yacc.c  */
     6803#line 1377 "parser.yy"
     6804    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6805    break;
     6806
     6807  case 344:
     6808
     6809/* Line 1806 of yacc.c  */
     6810#line 1379 "parser.yy"
     6811    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6812    break;
     6813
     6814  case 345:
     6815
     6816/* Line 1806 of yacc.c  */
     6817#line 1381 "parser.yy"
     6818    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6819    break;
     6820
     6821  case 347:
     6822
     6823/* Line 1806 of yacc.c  */
     6824#line 1387 "parser.yy"
    67896825    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67906826    break;
    67916827
    6792   case 336:
    6793 
    6794 /* Line 1806 of yacc.c  */
    6795 #line 1357 "parser.yy"
     6828  case 348:
     6829
     6830/* Line 1806 of yacc.c  */
     6831#line 1389 "parser.yy"
    67966832    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67976833    break;
    67986834
    6799   case 337:
    6800 
    6801 /* Line 1806 of yacc.c  */
    6802 #line 1359 "parser.yy"
     6835  case 349:
     6836
     6837/* Line 1806 of yacc.c  */
     6838#line 1391 "parser.yy"
    68036839    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68046840    break;
    68056841
    6806   case 338:
    6807 
    6808 /* Line 1806 of yacc.c  */
    6809 #line 1361 "parser.yy"
    6810     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6811     break;
    6812 
    6813   case 340:
    6814 
    6815 /* Line 1806 of yacc.c  */
    6816 #line 1367 "parser.yy"
    6817     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6818     break;
    6819 
    6820   case 342:
    6821 
    6822 /* Line 1806 of yacc.c  */
    6823 #line 1374 "parser.yy"
     6842  case 351:
     6843
     6844/* Line 1806 of yacc.c  */
     6845#line 1397 "parser.yy"
    68246846    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68256847    break;
    68266848
    6827   case 343:
    6828 
    6829 /* Line 1806 of yacc.c  */
    6830 #line 1376 "parser.yy"
     6849  case 352:
     6850
     6851/* Line 1806 of yacc.c  */
     6852#line 1399 "parser.yy"
    68316853    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6832     break;
    6833 
    6834   case 344:
    6835 
    6836 /* Line 1806 of yacc.c  */
    6837 #line 1378 "parser.yy"
    6838     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6839     break;
    6840 
    6841   case 345:
    6842 
    6843 /* Line 1806 of yacc.c  */
    6844 #line 1383 "parser.yy"
    6845     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6846     break;
    6847 
    6848   case 346:
    6849 
    6850 /* Line 1806 of yacc.c  */
    6851 #line 1385 "parser.yy"
    6852     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6853     break;
    6854 
    6855   case 347:
    6856 
    6857 /* Line 1806 of yacc.c  */
    6858 #line 1387 "parser.yy"
    6859     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6860     break;
    6861 
    6862   case 348:
    6863 
    6864 /* Line 1806 of yacc.c  */
    6865 #line 1389 "parser.yy"
    6866     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6867     break;
    6868 
    6869   case 350:
    6870 
    6871 /* Line 1806 of yacc.c  */
    6872 #line 1395 "parser.yy"
    6873     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6874     break;
    6875 
    6876   case 351:
    6877 
    6878 /* Line 1806 of yacc.c  */
    6879 #line 1397 "parser.yy"
    6880     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6881     break;
    6882 
    6883   case 352:
    6884 
    6885 /* Line 1806 of yacc.c  */
    6886 #line 1399 "parser.yy"
    6887     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68886854    break;
    68896855
     
    69026868    break;
    69036869
     6870  case 356:
     6871
     6872/* Line 1806 of yacc.c  */
     6873#line 1409 "parser.yy"
     6874    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6875    break;
     6876
    69046877  case 357:
    69056878
    69066879/* Line 1806 of yacc.c  */
    6907 #line 1413 "parser.yy"
    6908     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6880#line 1414 "parser.yy"
     6881    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69096882    break;
    69106883
     
    69126885
    69136886/* Line 1806 of yacc.c  */
    6914 #line 1415 "parser.yy"
     6887#line 1416 "parser.yy"
     6888    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6889    break;
     6890
     6891  case 359:
     6892
     6893/* Line 1806 of yacc.c  */
     6894#line 1418 "parser.yy"
    69156895    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69166896    break;
    69176897
    6918   case 359:
    6919 
    6920 /* Line 1806 of yacc.c  */
    6921 #line 1417 "parser.yy"
    6922     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6923     break;
    6924 
    6925   case 360:
    6926 
    6927 /* Line 1806 of yacc.c  */
    6928 #line 1422 "parser.yy"
    6929     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    6930     break;
    6931 
    6932   case 361:
    6933 
    6934 /* Line 1806 of yacc.c  */
    6935 #line 1424 "parser.yy"
    6936     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6937     break;
    6938 
    69396898  case 362:
    69406899
    69416900/* Line 1806 of yacc.c  */
    6942 #line 1426 "parser.yy"
    6943     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6901#line 1428 "parser.yy"
     6902    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
     6903    break;
     6904
     6905  case 363:
     6906
     6907/* Line 1806 of yacc.c  */
     6908#line 1430 "parser.yy"
     6909    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
     6910    break;
     6911
     6912  case 364:
     6913
     6914/* Line 1806 of yacc.c  */
     6915#line 1432 "parser.yy"
     6916    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    69446917    break;
    69456918
     
    69476920
    69486921/* Line 1806 of yacc.c  */
     6922#line 1434 "parser.yy"
     6923    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
     6924    break;
     6925
     6926  case 366:
     6927
     6928/* Line 1806 of yacc.c  */
    69496929#line 1436 "parser.yy"
    6950     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    6951     break;
    6952 
    6953   case 366:
    6954 
    6955 /* Line 1806 of yacc.c  */
    6956 #line 1438 "parser.yy"
    6957     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
     6930    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69586931    break;
    69596932
     
    69616934
    69626935/* Line 1806 of yacc.c  */
    6963 #line 1440 "parser.yy"
    6964     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
     6936#line 1441 "parser.yy"
     6937    { (yyval.aggKey) = DeclarationNode::Struct; }
    69656938    break;
    69666939
     
    69686941
    69696942/* Line 1806 of yacc.c  */
    6970 #line 1442 "parser.yy"
    6971     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
     6943#line 1443 "parser.yy"
     6944    { (yyval.aggKey) = DeclarationNode::Union; }
    69726945    break;
    69736946
     
    69756948
    69766949/* Line 1806 of yacc.c  */
    6977 #line 1444 "parser.yy"
    6978     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6950#line 1448 "parser.yy"
     6951    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    69796952    break;
    69806953
     
    69826955
    69836956/* Line 1806 of yacc.c  */
    6984 #line 1449 "parser.yy"
    6985     { (yyval.aggKey) = DeclarationNode::Struct; }
    6986     break;
    6987 
    6988   case 371:
    6989 
    6990 /* Line 1806 of yacc.c  */
    6991 #line 1451 "parser.yy"
    6992     { (yyval.aggKey) = DeclarationNode::Union; }
     6957#line 1450 "parser.yy"
     6958    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    69936959    break;
    69946960
     
    69976963/* Line 1806 of yacc.c  */
    69986964#line 1456 "parser.yy"
    6999     { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    7000     break;
    7001 
    7002   case 373:
    7003 
    7004 /* Line 1806 of yacc.c  */
    7005 #line 1458 "parser.yy"
    7006     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    7007     break;
    7008 
    7009   case 375:
    7010 
    7011 /* Line 1806 of yacc.c  */
    7012 #line 1464 "parser.yy"
    70136965    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70146966    break;
    70156967
     6968  case 374:
     6969
     6970/* Line 1806 of yacc.c  */
     6971#line 1459 "parser.yy"
     6972    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     6973    break;
     6974
     6975  case 376:
     6976
     6977/* Line 1806 of yacc.c  */
     6978#line 1465 "parser.yy"
     6979    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     6980    break;
     6981
    70166982  case 377:
    70176983
    70186984/* Line 1806 of yacc.c  */
    70196985#line 1467 "parser.yy"
    7020     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     6986    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     6987    break;
     6988
     6989  case 378:
     6990
     6991/* Line 1806 of yacc.c  */
     6992#line 1469 "parser.yy"
     6993    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70216994    break;
    70226995
     
    70246997
    70256998/* Line 1806 of yacc.c  */
    7026 #line 1473 "parser.yy"
    7027     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     6999#line 1474 "parser.yy"
     7000    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70287001    break;
    70297002
     
    70317004
    70327005/* Line 1806 of yacc.c  */
    7033 #line 1475 "parser.yy"
    7034     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7006#line 1476 "parser.yy"
     7007    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70357008    break;
    70367009
     
    70387011
    70397012/* Line 1806 of yacc.c  */
    7040 #line 1477 "parser.yy"
    7041     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7013#line 1481 "parser.yy"
     7014    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70427015    break;
    70437016
     
    70457018
    70467019/* Line 1806 of yacc.c  */
    7047 #line 1482 "parser.yy"
    7048     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7020#line 1483 "parser.yy"
     7021    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70497022    break;
    70507023
     
    70527025
    70537026/* Line 1806 of yacc.c  */
    7054 #line 1484 "parser.yy"
    7055     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7027#line 1486 "parser.yy"
     7028    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70567029    break;
    70577030
     
    70607033/* Line 1806 of yacc.c  */
    70617034#line 1489 "parser.yy"
    7062     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    7063     break;
    7064 
    7065   case 385:
    7066 
    7067 /* Line 1806 of yacc.c  */
    7068 #line 1491 "parser.yy"
    7069     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7035    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70707036    break;
    70717037
     
    70737039
    70747040/* Line 1806 of yacc.c  */
    7075 #line 1494 "parser.yy"
    7076     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7041#line 1495 "parser.yy"
     7042    { (yyval.en) = 0; }
    70777043    break;
    70787044
     
    70817047/* Line 1806 of yacc.c  */
    70827048#line 1497 "parser.yy"
    7083     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    7084     break;
    7085 
    7086   case 389:
    7087 
    7088 /* Line 1806 of yacc.c  */
    7089 #line 1503 "parser.yy"
     7049    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     7050    break;
     7051
     7052  case 388:
     7053
     7054/* Line 1806 of yacc.c  */
     7055#line 1502 "parser.yy"
     7056    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7057    break;
     7058
     7059  case 390:
     7060
     7061/* Line 1806 of yacc.c  */
     7062#line 1511 "parser.yy"
     7063    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
     7064    break;
     7065
     7066  case 391:
     7067
     7068/* Line 1806 of yacc.c  */
     7069#line 1513 "parser.yy"
     7070    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
     7071    break;
     7072
     7073  case 392:
     7074
     7075/* Line 1806 of yacc.c  */
     7076#line 1515 "parser.yy"
     7077    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
     7078    break;
     7079
     7080  case 393:
     7081
     7082/* Line 1806 of yacc.c  */
     7083#line 1520 "parser.yy"
     7084    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7085    break;
     7086
     7087  case 394:
     7088
     7089/* Line 1806 of yacc.c  */
     7090#line 1522 "parser.yy"
     7091    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7092    break;
     7093
     7094  case 395:
     7095
     7096/* Line 1806 of yacc.c  */
     7097#line 1527 "parser.yy"
    70907098    { (yyval.en) = 0; }
    70917099    break;
    70927100
    7093   case 390:
    7094 
    7095 /* Line 1806 of yacc.c  */
    7096 #line 1505 "parser.yy"
    7097     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7098     break;
    7099 
    7100   case 391:
    7101 
    7102 /* Line 1806 of yacc.c  */
    7103 #line 1510 "parser.yy"
     7101  case 396:
     7102
     7103/* Line 1806 of yacc.c  */
     7104#line 1529 "parser.yy"
    71047105    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71057106    break;
    71067107
    7107   case 393:
    7108 
    7109 /* Line 1806 of yacc.c  */
    7110 #line 1519 "parser.yy"
    7111     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    7112     break;
    7113 
    7114   case 394:
    7115 
    7116 /* Line 1806 of yacc.c  */
    7117 #line 1521 "parser.yy"
    7118     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    7119     break;
    7120 
    7121   case 395:
    7122 
    7123 /* Line 1806 of yacc.c  */
    7124 #line 1523 "parser.yy"
    7125     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    7126     break;
    7127 
    7128   case 396:
    7129 
    7130 /* Line 1806 of yacc.c  */
    7131 #line 1528 "parser.yy"
    7132     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    7133     break;
    7134 
    71357108  case 397:
    71367109
    71377110/* Line 1806 of yacc.c  */
    7138 #line 1530 "parser.yy"
    7139     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    7140     break;
    7141 
    7142   case 398:
    7143 
    7144 /* Line 1806 of yacc.c  */
    7145 #line 1535 "parser.yy"
    7146     { (yyval.en) = 0; }
    7147     break;
    7148 
    7149   case 399:
    7150 
    7151 /* Line 1806 of yacc.c  */
    7152 #line 1537 "parser.yy"
    7153     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7154     break;
    7155 
    7156   case 400:
     7111#line 1536 "parser.yy"
     7112    { (yyval.decl) = 0; }
     7113    break;
     7114
     7115  case 401:
    71577116
    71587117/* Line 1806 of yacc.c  */
    71597118#line 1544 "parser.yy"
    7160     { (yyval.decl) = 0; }
    7161     break;
    7162 
    7163   case 404:
    7164 
    7165 /* Line 1806 of yacc.c  */
    7166 #line 1552 "parser.yy"
    71677119    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71687120    break;
    71697121
     7122  case 402:
     7123
     7124/* Line 1806 of yacc.c  */
     7125#line 1546 "parser.yy"
     7126    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7127    break;
     7128
     7129  case 403:
     7130
     7131/* Line 1806 of yacc.c  */
     7132#line 1548 "parser.yy"
     7133    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7134    break;
     7135
    71707136  case 405:
    71717137
    71727138/* Line 1806 of yacc.c  */
    7173 #line 1554 "parser.yy"
    7174     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7139#line 1556 "parser.yy"
     7140    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71757141    break;
    71767142
     
    71787144
    71797145/* Line 1806 of yacc.c  */
    7180 #line 1556 "parser.yy"
    7181     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7182     break;
    7183 
    7184   case 408:
    7185 
    7186 /* Line 1806 of yacc.c  */
    7187 #line 1564 "parser.yy"
     7146#line 1558 "parser.yy"
    71887147    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7148    break;
     7149
     7150  case 407:
     7151
     7152/* Line 1806 of yacc.c  */
     7153#line 1560 "parser.yy"
     7154    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    71897155    break;
    71907156
     
    71997165
    72007166/* Line 1806 of yacc.c  */
    7201 #line 1568 "parser.yy"
    7202     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7203     break;
    7204 
    7205   case 412:
    7206 
    7207 /* Line 1806 of yacc.c  */
    7208 #line 1574 "parser.yy"
     7167#line 1571 "parser.yy"
     7168    { (yyval.decl) = 0; }
     7169    break;
     7170
     7171  case 413:
     7172
     7173/* Line 1806 of yacc.c  */
     7174#line 1578 "parser.yy"
     7175    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7176    break;
     7177
     7178  case 416:
     7179
     7180/* Line 1806 of yacc.c  */
     7181#line 1585 "parser.yy"
    72097182    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72107183    break;
    72117184
    7212   case 413:
    7213 
    7214 /* Line 1806 of yacc.c  */
    7215 #line 1579 "parser.yy"
    7216     { (yyval.decl) = 0; }
    7217     break;
    7218 
    7219   case 416:
    7220 
    7221 /* Line 1806 of yacc.c  */
    7222 #line 1586 "parser.yy"
    7223     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7185  case 417:
     7186
     7187/* Line 1806 of yacc.c  */
     7188#line 1587 "parser.yy"
     7189    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72247190    break;
    72257191
     
    72277193
    72287194/* Line 1806 of yacc.c  */
    7229 #line 1593 "parser.yy"
    7230     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7195#line 1596 "parser.yy"
     7196    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72317197    break;
    72327198
     
    72347200
    72357201/* Line 1806 of yacc.c  */
    7236 #line 1595 "parser.yy"
    7237     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7238     break;
    7239 
    7240   case 422:
    7241 
    7242 /* Line 1806 of yacc.c  */
    7243 #line 1604 "parser.yy"
     7202#line 1599 "parser.yy"
    72447203    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72457204    break;
    72467205
    7247   case 423:
    7248 
    7249 /* Line 1806 of yacc.c  */
    7250 #line 1607 "parser.yy"
    7251     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7252     break;
    7253 
    7254   case 424:
    7255 
    7256 /* Line 1806 of yacc.c  */
    7257 #line 1609 "parser.yy"
     7206  case 421:
     7207
     7208/* Line 1806 of yacc.c  */
     7209#line 1601 "parser.yy"
    72587210    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72597211    break;
    72607212
    7261   case 429:
    7262 
    7263 /* Line 1806 of yacc.c  */
    7264 #line 1619 "parser.yy"
     7213  case 426:
     7214
     7215/* Line 1806 of yacc.c  */
     7216#line 1611 "parser.yy"
    72657217    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72667218    break;
    72677219
    7268   case 431:
    7269 
    7270 /* Line 1806 of yacc.c  */
    7271 #line 1625 "parser.yy"
     7220  case 428:
     7221
     7222/* Line 1806 of yacc.c  */
     7223#line 1617 "parser.yy"
    72727224    {
    72737225                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72767228    break;
    72777229
    7278   case 432:
    7279 
    7280 /* Line 1806 of yacc.c  */
    7281 #line 1630 "parser.yy"
     7230  case 429:
     7231
     7232/* Line 1806 of yacc.c  */
     7233#line 1622 "parser.yy"
    72827234    {
    72837235                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72867238    break;
    72877239
    7288   case 434:
    7289 
    7290 /* Line 1806 of yacc.c  */
    7291 #line 1639 "parser.yy"
     7240  case 431:
     7241
     7242/* Line 1806 of yacc.c  */
     7243#line 1631 "parser.yy"
    72927244    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72937245    break;
    72947246
    7295   case 435:
    7296 
    7297 /* Line 1806 of yacc.c  */
    7298 #line 1648 "parser.yy"
     7247  case 432:
     7248
     7249/* Line 1806 of yacc.c  */
     7250#line 1640 "parser.yy"
    72997251    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73007252    break;
    73017253
    7302   case 436:
    7303 
    7304 /* Line 1806 of yacc.c  */
    7305 #line 1650 "parser.yy"
     7254  case 433:
     7255
     7256/* Line 1806 of yacc.c  */
     7257#line 1642 "parser.yy"
    73067258    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73077259    break;
    73087260
    7309   case 448:
     7261  case 445:
     7262
     7263/* Line 1806 of yacc.c  */
     7264#line 1667 "parser.yy"
     7265    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7266    break;
     7267
     7268  case 449:
    73107269
    73117270/* Line 1806 of yacc.c  */
     
    73147273    break;
    73157274
     7275  case 450:
     7276
     7277/* Line 1806 of yacc.c  */
     7278#line 1680 "parser.yy"
     7279    { (yyval.in) = 0; }
     7280    break;
     7281
     7282  case 451:
     7283
     7284/* Line 1806 of yacc.c  */
     7285#line 1682 "parser.yy"
     7286    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7287    break;
     7288
    73167289  case 452:
    73177290
    73187291/* Line 1806 of yacc.c  */
    7319 #line 1683 "parser.yy"
    7320     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7292#line 1684 "parser.yy"
     7293    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    73217294    break;
    73227295
     
    73257298/* Line 1806 of yacc.c  */
    73267299#line 1688 "parser.yy"
     7300    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7301    break;
     7302
     7303  case 454:
     7304
     7305/* Line 1806 of yacc.c  */
     7306#line 1689 "parser.yy"
     7307    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7308    break;
     7309
     7310  case 455:
     7311
     7312/* Line 1806 of yacc.c  */
     7313#line 1694 "parser.yy"
    73277314    { (yyval.in) = 0; }
    73287315    break;
    73297316
    7330   case 454:
    7331 
    7332 /* Line 1806 of yacc.c  */
    7333 #line 1690 "parser.yy"
    7334     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7335     break;
    7336 
    7337   case 455:
    7338 
    7339 /* Line 1806 of yacc.c  */
    7340 #line 1694 "parser.yy"
    7341     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7342     break;
    7343 
    7344   case 456:
    7345 
    7346 /* Line 1806 of yacc.c  */
    7347 #line 1695 "parser.yy"
    7348     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7317  case 457:
     7318
     7319/* Line 1806 of yacc.c  */
     7320#line 1696 "parser.yy"
     7321    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    73497322    break;
    73507323
     
    73527325
    73537326/* Line 1806 of yacc.c  */
    7354 #line 1700 "parser.yy"
    7355     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7327#line 1697 "parser.yy"
     7328    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    73567329    break;
    73577330
     
    73597332
    73607333/* Line 1806 of yacc.c  */
    7361 #line 1701 "parser.yy"
    7362     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    7363     break;
    7364 
    7365   case 460:
    7366 
    7367 /* Line 1806 of yacc.c  */
    7368 #line 1703 "parser.yy"
     7334#line 1699 "parser.yy"
    73697335    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    73707336    break;
    73717337
    7372   case 462:
    7373 
    7374 /* Line 1806 of yacc.c  */
    7375 #line 1719 "parser.yy"
     7338  case 461:
     7339
     7340/* Line 1806 of yacc.c  */
     7341#line 1715 "parser.yy"
    73767342    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    73777343    break;
    73787344
     7345  case 463:
     7346
     7347/* Line 1806 of yacc.c  */
     7348#line 1721 "parser.yy"
     7349    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7350    break;
     7351
    73797352  case 464:
    73807353
    73817354/* Line 1806 of yacc.c  */
    7382 #line 1725 "parser.yy"
    7383     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7355#line 1729 "parser.yy"
     7356    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    73847357    break;
    73857358
     
    73877360
    73887361/* Line 1806 of yacc.c  */
    7389 #line 1733 "parser.yy"
    7390     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
     7362#line 1731 "parser.yy"
     7363    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    73917364    break;
    73927365
     
    73947367
    73957368/* Line 1806 of yacc.c  */
    7396 #line 1735 "parser.yy"
    7397     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
     7369#line 1734 "parser.yy"
     7370    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    73987371    break;
    73997372
     
    74017374
    74027375/* Line 1806 of yacc.c  */
     7376#line 1736 "parser.yy"
     7377    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
     7378    break;
     7379
     7380  case 468:
     7381
     7382/* Line 1806 of yacc.c  */
    74037383#line 1738 "parser.yy"
    7404     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    7405     break;
    7406 
    7407   case 468:
     7384    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
     7385    break;
     7386
     7387  case 469:
    74087388
    74097389/* Line 1806 of yacc.c  */
    74107390#line 1740 "parser.yy"
    7411     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    7412     break;
    7413 
    7414   case 469:
    7415 
    7416 /* Line 1806 of yacc.c  */
    7417 #line 1742 "parser.yy"
    7418     { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    7419     break;
    7420 
    7421   case 470:
    7422 
    7423 /* Line 1806 of yacc.c  */
    7424 #line 1744 "parser.yy"
    74257391    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    74267392    break;
    74277393
     7394  case 471:
     7395
     7396/* Line 1806 of yacc.c  */
     7397#line 1764 "parser.yy"
     7398    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7399    break;
     7400
    74287401  case 472:
    74297402
    74307403/* Line 1806 of yacc.c  */
     7404#line 1766 "parser.yy"
     7405    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7406    break;
     7407
     7408  case 473:
     7409
     7410/* Line 1806 of yacc.c  */
    74317411#line 1768 "parser.yy"
     7412    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7413    break;
     7414
     7415  case 475:
     7416
     7417/* Line 1806 of yacc.c  */
     7418#line 1774 "parser.yy"
    74327419    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74337420    break;
    74347421
    7435   case 473:
    7436 
    7437 /* Line 1806 of yacc.c  */
    7438 #line 1770 "parser.yy"
     7422  case 476:
     7423
     7424/* Line 1806 of yacc.c  */
     7425#line 1776 "parser.yy"
    74397426    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74407427    break;
    74417428
    7442   case 474:
    7443 
    7444 /* Line 1806 of yacc.c  */
    7445 #line 1772 "parser.yy"
    7446     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7447     break;
    7448 
    7449   case 476:
    7450 
    7451 /* Line 1806 of yacc.c  */
    7452 #line 1778 "parser.yy"
    7453     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7454     break;
    7455 
    74567429  case 477:
    74577430
    74587431/* Line 1806 of yacc.c  */
    7459 #line 1780 "parser.yy"
    7460     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7461     break;
    7462 
    7463   case 478:
    7464 
    7465 /* Line 1806 of yacc.c  */
    7466 #line 1785 "parser.yy"
     7432#line 1781 "parser.yy"
    74677433    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    74687434    break;
    74697435
     7436  case 479:
     7437
     7438/* Line 1806 of yacc.c  */
     7439#line 1787 "parser.yy"
     7440    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7441    break;
     7442
    74707443  case 480:
    74717444
    74727445/* Line 1806 of yacc.c  */
    7473 #line 1791 "parser.yy"
    7474     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7446#line 1792 "parser.yy"
     7447    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    74757448    break;
    74767449
     
    74787451
    74797452/* Line 1806 of yacc.c  */
    7480 #line 1796 "parser.yy"
    7481     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7482     break;
    7483 
    7484   case 482:
    7485 
    7486 /* Line 1806 of yacc.c  */
    7487 #line 1798 "parser.yy"
     7453#line 1794 "parser.yy"
    74887454    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    74897455    break;
    74907456
     7457  case 483:
     7458
     7459/* Line 1806 of yacc.c  */
     7460#line 1800 "parser.yy"
     7461    { (yyval.tclass) = DeclarationNode::Type; }
     7462    break;
     7463
    74917464  case 484:
    74927465
    74937466/* Line 1806 of yacc.c  */
     7467#line 1802 "parser.yy"
     7468    { (yyval.tclass) = DeclarationNode::Ftype; }
     7469    break;
     7470
     7471  case 485:
     7472
     7473/* Line 1806 of yacc.c  */
    74947474#line 1804 "parser.yy"
    7495     { (yyval.tclass) = DeclarationNode::Type; }
    7496     break;
    7497 
    7498   case 485:
    7499 
    7500 /* Line 1806 of yacc.c  */
    7501 #line 1806 "parser.yy"
    7502     { (yyval.tclass) = DeclarationNode::Ftype; }
     7475    { (yyval.tclass) = DeclarationNode::Dtype; }
    75037476    break;
    75047477
     
    75067479
    75077480/* Line 1806 of yacc.c  */
    7508 #line 1808 "parser.yy"
    7509     { (yyval.tclass) = DeclarationNode::Dtype; }
     7481#line 1809 "parser.yy"
     7482    { (yyval.decl) = 0; }
    75107483    break;
    75117484
     
    75137486
    75147487/* Line 1806 of yacc.c  */
    7515 #line 1813 "parser.yy"
    7516     { (yyval.decl) = 0; }
     7488#line 1811 "parser.yy"
     7489    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    75177490    break;
    75187491
     
    75207493
    75217494/* Line 1806 of yacc.c  */
    7522 #line 1815 "parser.yy"
    7523     { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    7524     break;
    7525 
    7526   case 489:
    7527 
    7528 /* Line 1806 of yacc.c  */
    7529 #line 1820 "parser.yy"
     7495#line 1816 "parser.yy"
    75307496    {
    75317497                        typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
     
    75347500    break;
    75357501
     7502  case 489:
     7503
     7504/* Line 1806 of yacc.c  */
     7505#line 1821 "parser.yy"
     7506    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7507    break;
     7508
    75367509  case 490:
    75377510
    75387511/* Line 1806 of yacc.c  */
    7539 #line 1825 "parser.yy"
    7540     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7512#line 1823 "parser.yy"
     7513    { (yyval.decl) = 0; }
    75417514    break;
    75427515
     
    75447517
    75457518/* Line 1806 of yacc.c  */
    7546 #line 1827 "parser.yy"
    7547     { (yyval.decl) = 0; }
    7548     break;
    7549 
    7550   case 492:
    7551 
    7552 /* Line 1806 of yacc.c  */
    7553 #line 1832 "parser.yy"
     7519#line 1828 "parser.yy"
    75547520    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    75557521    break;
    75567522
     7523  case 493:
     7524
     7525/* Line 1806 of yacc.c  */
     7526#line 1831 "parser.yy"
     7527    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7528    break;
     7529
    75577530  case 494:
    75587531
    75597532/* Line 1806 of yacc.c  */
    7560 #line 1835 "parser.yy"
    7561     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7533#line 1833 "parser.yy"
     7534    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    75627535    break;
    75637536
     
    75657538
    75667539/* Line 1806 of yacc.c  */
    7567 #line 1837 "parser.yy"
    7568     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     7540#line 1838 "parser.yy"
     7541    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    75697542    break;
    75707543
     
    75727545
    75737546/* Line 1806 of yacc.c  */
     7547#line 1840 "parser.yy"
     7548    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7549    break;
     7550
     7551  case 497:
     7552
     7553/* Line 1806 of yacc.c  */
    75747554#line 1842 "parser.yy"
    7575     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7576     break;
    7577 
    7578   case 497:
    7579 
    7580 /* Line 1806 of yacc.c  */
    7581 #line 1844 "parser.yy"
    7582     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7555    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    75837556    break;
    75847557
     
    75867559
    75877560/* Line 1806 of yacc.c  */
    7588 #line 1846 "parser.yy"
    7589     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     7561#line 1847 "parser.yy"
     7562    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    75907563    break;
    75917564
     
    75937566
    75947567/* Line 1806 of yacc.c  */
    7595 #line 1851 "parser.yy"
    7596     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     7568#line 1849 "parser.yy"
     7569    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    75977570    break;
    75987571
     
    76007573
    76017574/* Line 1806 of yacc.c  */
    7602 #line 1853 "parser.yy"
    7603     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7604     break;
    7605 
    7606   case 501:
    7607 
    7608 /* Line 1806 of yacc.c  */
    7609 #line 1858 "parser.yy"
     7575#line 1854 "parser.yy"
    76107576    {
    76117577                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76147580    break;
    76157581
    7616   case 502:
    7617 
    7618 /* Line 1806 of yacc.c  */
    7619 #line 1863 "parser.yy"
     7582  case 501:
     7583
     7584/* Line 1806 of yacc.c  */
     7585#line 1859 "parser.yy"
    76207586    {
    76217587                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76247590    break;
    76257591
    7626   case 503:
    7627 
    7628 /* Line 1806 of yacc.c  */
    7629 #line 1871 "parser.yy"
     7592  case 502:
     7593
     7594/* Line 1806 of yacc.c  */
     7595#line 1867 "parser.yy"
    76307596    {
    76317597                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76347600    break;
    76357601
    7636   case 504:
    7637 
    7638 /* Line 1806 of yacc.c  */
    7639 #line 1876 "parser.yy"
     7602  case 503:
     7603
     7604/* Line 1806 of yacc.c  */
     7605#line 1872 "parser.yy"
    76407606    {
    76417607                        typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
     
    76447610    break;
    76457611
    7646   case 505:
    7647 
    7648 /* Line 1806 of yacc.c  */
    7649 #line 1881 "parser.yy"
     7612  case 504:
     7613
     7614/* Line 1806 of yacc.c  */
     7615#line 1877 "parser.yy"
    76507616    {
    76517617                        typedefTable.leaveContext();
     
    76557621    break;
    76567622
    7657   case 507:
    7658 
    7659 /* Line 1806 of yacc.c  */
    7660 #line 1891 "parser.yy"
     7623  case 506:
     7624
     7625/* Line 1806 of yacc.c  */
     7626#line 1887 "parser.yy"
    76617627    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    76627628    break;
    76637629
    7664   case 510:
    7665 
    7666 /* Line 1806 of yacc.c  */
    7667 #line 1901 "parser.yy"
     7630  case 509:
     7631
     7632/* Line 1806 of yacc.c  */
     7633#line 1897 "parser.yy"
    76687634    {
    76697635                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76727638    break;
    76737639
    7674   case 511:
    7675 
    7676 /* Line 1806 of yacc.c  */
    7677 #line 1906 "parser.yy"
     7640  case 510:
     7641
     7642/* Line 1806 of yacc.c  */
     7643#line 1902 "parser.yy"
    76787644    {
    76797645                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76827648    break;
    76837649
    7684   case 512:
    7685 
    7686 /* Line 1806 of yacc.c  */
    7687 #line 1911 "parser.yy"
     7650  case 511:
     7651
     7652/* Line 1806 of yacc.c  */
     7653#line 1907 "parser.yy"
    76887654    {
    76897655                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    76927658    break;
    76937659
    7694   case 513:
    7695 
    7696 /* Line 1806 of yacc.c  */
    7697 #line 1919 "parser.yy"
     7660  case 512:
     7661
     7662/* Line 1806 of yacc.c  */
     7663#line 1915 "parser.yy"
    76987664    {
    76997665                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77027668    break;
    77037669
    7704   case 514:
    7705 
    7706 /* Line 1806 of yacc.c  */
    7707 #line 1924 "parser.yy"
     7670  case 513:
     7671
     7672/* Line 1806 of yacc.c  */
     7673#line 1920 "parser.yy"
    77087674    {
    77097675                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77127678    break;
    77137679
     7680  case 514:
     7681
     7682/* Line 1806 of yacc.c  */
     7683#line 1930 "parser.yy"
     7684    {}
     7685    break;
     7686
    77147687  case 515:
    77157688
    77167689/* Line 1806 of yacc.c  */
    7717 #line 1934 "parser.yy"
    7718     {}
    7719     break;
    7720 
    7721   case 516:
    7722 
    7723 /* Line 1806 of yacc.c  */
    7724 #line 1936 "parser.yy"
     7690#line 1932 "parser.yy"
    77257691    {
    77267692                        if ( theTree ) {
     
    77327698    break;
    77337699
     7700  case 517:
     7701
     7702/* Line 1806 of yacc.c  */
     7703#line 1944 "parser.yy"
     7704    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7705    break;
     7706
    77347707  case 518:
    77357708
    77367709/* Line 1806 of yacc.c  */
    7737 #line 1948 "parser.yy"
    7738     { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    7739     break;
    7740 
    7741   case 519:
    7742 
    7743 /* Line 1806 of yacc.c  */
    7744 #line 1953 "parser.yy"
     7710#line 1949 "parser.yy"
    77457711    { (yyval.decl) = 0; }
    77467712    break;
    77477713
     7714  case 522:
     7715
     7716/* Line 1806 of yacc.c  */
     7717#line 1957 "parser.yy"
     7718    {}
     7719    break;
     7720
    77487721  case 523:
    77497722
    77507723/* Line 1806 of yacc.c  */
    7751 #line 1961 "parser.yy"
    7752     {}
    7753     break;
    7754 
    7755   case 524:
    7756 
    7757 /* Line 1806 of yacc.c  */
    7758 #line 1963 "parser.yy"
     7724#line 1959 "parser.yy"
    77597725    {
    77607726                        linkageStack.push( linkage );
     
    77637729    break;
    77647730
    7765   case 525:
    7766 
    7767 /* Line 1806 of yacc.c  */
    7768 #line 1968 "parser.yy"
     7731  case 524:
     7732
     7733/* Line 1806 of yacc.c  */
     7734#line 1964 "parser.yy"
    77697735    {
    77707736                        linkage = linkageStack.top();
     
    77747740    break;
    77757741
    7776   case 526:
    7777 
    7778 /* Line 1806 of yacc.c  */
    7779 #line 1974 "parser.yy"
     7742  case 525:
     7743
     7744/* Line 1806 of yacc.c  */
     7745#line 1970 "parser.yy"
    77807746    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    77817747    break;
    77827748
    7783   case 528:
    7784 
    7785 /* Line 1806 of yacc.c  */
    7786 #line 1984 "parser.yy"
     7749  case 527:
     7750
     7751/* Line 1806 of yacc.c  */
     7752#line 1980 "parser.yy"
    77877753    {
    77887754                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77927758    break;
    77937759
    7794   case 529:
    7795 
    7796 /* Line 1806 of yacc.c  */
    7797 #line 1990 "parser.yy"
     7760  case 528:
     7761
     7762/* Line 1806 of yacc.c  */
     7763#line 1986 "parser.yy"
    77987764    {
    77997765                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78037769    break;
    78047770
    7805   case 530:
    7806 
    7807 /* Line 1806 of yacc.c  */
    7808 #line 1999 "parser.yy"
     7771  case 529:
     7772
     7773/* Line 1806 of yacc.c  */
     7774#line 1995 "parser.yy"
    78097775    {
    78107776                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78147780    break;
    78157781
    7816   case 531:
    7817 
    7818 /* Line 1806 of yacc.c  */
    7819 #line 2005 "parser.yy"
     7782  case 530:
     7783
     7784/* Line 1806 of yacc.c  */
     7785#line 2001 "parser.yy"
    78207786    {
    78217787                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78257791    break;
    78267792
    7827   case 532:
    7828 
    7829 /* Line 1806 of yacc.c  */
    7830 #line 2011 "parser.yy"
     7793  case 531:
     7794
     7795/* Line 1806 of yacc.c  */
     7796#line 2007 "parser.yy"
    78317797    {
    78327798                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78367802    break;
    78377803
    7838   case 533:
    7839 
    7840 /* Line 1806 of yacc.c  */
    7841 #line 2017 "parser.yy"
     7804  case 532:
     7805
     7806/* Line 1806 of yacc.c  */
     7807#line 2013 "parser.yy"
    78427808    {
    78437809                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78477813    break;
    78487814
    7849   case 534:
    7850 
    7851 /* Line 1806 of yacc.c  */
    7852 #line 2023 "parser.yy"
     7815  case 533:
     7816
     7817/* Line 1806 of yacc.c  */
     7818#line 2019 "parser.yy"
    78537819    {
    78547820                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78587824    break;
    78597825
    7860   case 535:
    7861 
    7862 /* Line 1806 of yacc.c  */
    7863 #line 2031 "parser.yy"
     7826  case 534:
     7827
     7828/* Line 1806 of yacc.c  */
     7829#line 2027 "parser.yy"
    78647830    {
    78657831                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78697835    break;
    78707836
    7871   case 536:
    7872 
    7873 /* Line 1806 of yacc.c  */
    7874 #line 2037 "parser.yy"
     7837  case 535:
     7838
     7839/* Line 1806 of yacc.c  */
     7840#line 2033 "parser.yy"
    78757841    {
    78767842                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78807846    break;
    78817847
    7882   case 537:
    7883 
    7884 /* Line 1806 of yacc.c  */
    7885 #line 2045 "parser.yy"
     7848  case 536:
     7849
     7850/* Line 1806 of yacc.c  */
     7851#line 2041 "parser.yy"
    78867852    {
    78877853                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78917857    break;
    78927858
    7893   case 538:
    7894 
    7895 /* Line 1806 of yacc.c  */
    7896 #line 2051 "parser.yy"
     7859  case 537:
     7860
     7861/* Line 1806 of yacc.c  */
     7862#line 2047 "parser.yy"
    78977863    {
    78987864                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79027868    break;
    79037869
    7904   case 542:
    7905 
    7906 /* Line 1806 of yacc.c  */
    7907 #line 2066 "parser.yy"
     7870  case 541:
     7871
     7872/* Line 1806 of yacc.c  */
     7873#line 2062 "parser.yy"
    79087874    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    79097875    break;
    79107876
    7911   case 545:
    7912 
    7913 /* Line 1806 of yacc.c  */
    7914 #line 2076 "parser.yy"
     7877  case 544:
     7878
     7879/* Line 1806 of yacc.c  */
     7880#line 2072 "parser.yy"
    79157881    { (yyval.decl) = 0; }
    79167882    break;
    79177883
     7884  case 547:
     7885
     7886/* Line 1806 of yacc.c  */
     7887#line 2079 "parser.yy"
     7888    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7889    break;
     7890
    79187891  case 548:
    79197892
    79207893/* Line 1806 of yacc.c  */
    7921 #line 2083 "parser.yy"
    7922     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7923     break;
    7924 
    7925   case 549:
    7926 
    7927 /* Line 1806 of yacc.c  */
    7928 #line 2089 "parser.yy"
     7894#line 2085 "parser.yy"
    79297895    { (yyval.decl) = 0; }
    79307896    break;
    79317897
     7898  case 554:
     7899
     7900/* Line 1806 of yacc.c  */
     7901#line 2100 "parser.yy"
     7902    {}
     7903    break;
     7904
    79327905  case 555:
    79337906
    79347907/* Line 1806 of yacc.c  */
    7935 #line 2104 "parser.yy"
     7908#line 2101 "parser.yy"
    79367909    {}
    79377910    break;
     
    79407913
    79417914/* Line 1806 of yacc.c  */
    7942 #line 2105 "parser.yy"
     7915#line 2102 "parser.yy"
    79437916    {}
    79447917    break;
     
    79477920
    79487921/* Line 1806 of yacc.c  */
    7949 #line 2106 "parser.yy"
     7922#line 2103 "parser.yy"
    79507923    {}
    79517924    break;
     
    79547927
    79557928/* Line 1806 of yacc.c  */
    7956 #line 2107 "parser.yy"
    7957     {}
    7958     break;
    7959 
    7960   case 559:
    7961 
    7962 /* Line 1806 of yacc.c  */
    7963 #line 2142 "parser.yy"
     7929#line 2138 "parser.yy"
    79647930    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79657931    break;
    79667932
     7933  case 560:
     7934
     7935/* Line 1806 of yacc.c  */
     7936#line 2141 "parser.yy"
     7937    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7938    break;
     7939
    79677940  case 561:
    79687941
    79697942/* Line 1806 of yacc.c  */
    7970 #line 2145 "parser.yy"
     7943#line 2143 "parser.yy"
    79717944    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79727945    break;
     
    79757948
    79767949/* Line 1806 of yacc.c  */
    7977 #line 2147 "parser.yy"
    7978     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7979     break;
    7980 
    7981   case 563:
    7982 
    7983 /* Line 1806 of yacc.c  */
    7984 #line 2152 "parser.yy"
     7950#line 2148 "parser.yy"
    79857951    {
    79867952                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    79897955    break;
    79907956
     7957  case 563:
     7958
     7959/* Line 1806 of yacc.c  */
     7960#line 2153 "parser.yy"
     7961    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7962    break;
     7963
    79917964  case 564:
    79927965
    79937966/* Line 1806 of yacc.c  */
    7994 #line 2157 "parser.yy"
     7967#line 2158 "parser.yy"
     7968    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7969    break;
     7970
     7971  case 565:
     7972
     7973/* Line 1806 of yacc.c  */
     7974#line 2160 "parser.yy"
     7975    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7976    break;
     7977
     7978  case 566:
     7979
     7980/* Line 1806 of yacc.c  */
     7981#line 2162 "parser.yy"
    79957982    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79967983    break;
    79977984
    7998   case 565:
    7999 
    8000 /* Line 1806 of yacc.c  */
    8001 #line 2162 "parser.yy"
     7985  case 567:
     7986
     7987/* Line 1806 of yacc.c  */
     7988#line 2167 "parser.yy"
     7989    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7990    break;
     7991
     7992  case 568:
     7993
     7994/* Line 1806 of yacc.c  */
     7995#line 2169 "parser.yy"
     7996    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7997    break;
     7998
     7999  case 569:
     8000
     8001/* Line 1806 of yacc.c  */
     8002#line 2171 "parser.yy"
     8003    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8004    break;
     8005
     8006  case 570:
     8007
     8008/* Line 1806 of yacc.c  */
     8009#line 2173 "parser.yy"
     8010    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8011    break;
     8012
     8013  case 571:
     8014
     8015/* Line 1806 of yacc.c  */
     8016#line 2178 "parser.yy"
     8017    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8018    break;
     8019
     8020  case 572:
     8021
     8022/* Line 1806 of yacc.c  */
     8023#line 2180 "parser.yy"
     8024    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8025    break;
     8026
     8027  case 573:
     8028
     8029/* Line 1806 of yacc.c  */
     8030#line 2190 "parser.yy"
     8031    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8032    break;
     8033
     8034  case 575:
     8035
     8036/* Line 1806 of yacc.c  */
     8037#line 2193 "parser.yy"
     8038    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8039    break;
     8040
     8041  case 576:
     8042
     8043/* Line 1806 of yacc.c  */
     8044#line 2198 "parser.yy"
     8045    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8046    break;
     8047
     8048  case 577:
     8049
     8050/* Line 1806 of yacc.c  */
     8051#line 2200 "parser.yy"
     8052    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8053    break;
     8054
     8055  case 578:
     8056
     8057/* Line 1806 of yacc.c  */
     8058#line 2202 "parser.yy"
     8059    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8060    break;
     8061
     8062  case 579:
     8063
     8064/* Line 1806 of yacc.c  */
     8065#line 2207 "parser.yy"
    80028066    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80038067    break;
    80048068
    8005   case 566:
    8006 
    8007 /* Line 1806 of yacc.c  */
    8008 #line 2164 "parser.yy"
     8069  case 580:
     8070
     8071/* Line 1806 of yacc.c  */
     8072#line 2209 "parser.yy"
    80098073    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80108074    break;
    80118075
    8012   case 567:
    8013 
    8014 /* Line 1806 of yacc.c  */
    8015 #line 2166 "parser.yy"
     8076  case 581:
     8077
     8078/* Line 1806 of yacc.c  */
     8079#line 2211 "parser.yy"
    80168080    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80178081    break;
    80188082
    8019   case 568:
    8020 
    8021 /* Line 1806 of yacc.c  */
    8022 #line 2171 "parser.yy"
     8083  case 582:
     8084
     8085/* Line 1806 of yacc.c  */
     8086#line 2216 "parser.yy"
     8087    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8088    break;
     8089
     8090  case 583:
     8091
     8092/* Line 1806 of yacc.c  */
     8093#line 2218 "parser.yy"
     8094    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8095    break;
     8096
     8097  case 584:
     8098
     8099/* Line 1806 of yacc.c  */
     8100#line 2220 "parser.yy"
     8101    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8102    break;
     8103
     8104  case 588:
     8105
     8106/* Line 1806 of yacc.c  */
     8107#line 2235 "parser.yy"
     8108    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8109    break;
     8110
     8111  case 589:
     8112
     8113/* Line 1806 of yacc.c  */
     8114#line 2237 "parser.yy"
     8115    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8116    break;
     8117
     8118  case 590:
     8119
     8120/* Line 1806 of yacc.c  */
     8121#line 2239 "parser.yy"
     8122    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8123    break;
     8124
     8125  case 591:
     8126
     8127/* Line 1806 of yacc.c  */
     8128#line 2244 "parser.yy"
     8129    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8130    break;
     8131
     8132  case 592:
     8133
     8134/* Line 1806 of yacc.c  */
     8135#line 2246 "parser.yy"
     8136    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8137    break;
     8138
     8139  case 593:
     8140
     8141/* Line 1806 of yacc.c  */
     8142#line 2248 "parser.yy"
     8143    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8144    break;
     8145
     8146  case 594:
     8147
     8148/* Line 1806 of yacc.c  */
     8149#line 2253 "parser.yy"
     8150    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8151    break;
     8152
     8153  case 595:
     8154
     8155/* Line 1806 of yacc.c  */
     8156#line 2255 "parser.yy"
     8157    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8158    break;
     8159
     8160  case 596:
     8161
     8162/* Line 1806 of yacc.c  */
     8163#line 2257 "parser.yy"
     8164    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8165    break;
     8166
     8167  case 597:
     8168
     8169/* Line 1806 of yacc.c  */
     8170#line 2272 "parser.yy"
     8171    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8172    break;
     8173
     8174  case 599:
     8175
     8176/* Line 1806 of yacc.c  */
     8177#line 2275 "parser.yy"
     8178    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8179    break;
     8180
     8181  case 600:
     8182
     8183/* Line 1806 of yacc.c  */
     8184#line 2277 "parser.yy"
     8185    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8186    break;
     8187
     8188  case 602:
     8189
     8190/* Line 1806 of yacc.c  */
     8191#line 2283 "parser.yy"
     8192    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8193    break;
     8194
     8195  case 603:
     8196
     8197/* Line 1806 of yacc.c  */
     8198#line 2288 "parser.yy"
     8199    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8200    break;
     8201
     8202  case 604:
     8203
     8204/* Line 1806 of yacc.c  */
     8205#line 2290 "parser.yy"
     8206    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8207    break;
     8208
     8209  case 605:
     8210
     8211/* Line 1806 of yacc.c  */
     8212#line 2292 "parser.yy"
     8213    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8214    break;
     8215
     8216  case 606:
     8217
     8218/* Line 1806 of yacc.c  */
     8219#line 2297 "parser.yy"
    80238220    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80248221    break;
    80258222
    8026   case 569:
    8027 
    8028 /* Line 1806 of yacc.c  */
    8029 #line 2173 "parser.yy"
     8223  case 607:
     8224
     8225/* Line 1806 of yacc.c  */
     8226#line 2299 "parser.yy"
    80308227    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80318228    break;
    80328229
    8033   case 570:
    8034 
    8035 /* Line 1806 of yacc.c  */
    8036 #line 2175 "parser.yy"
     8230  case 608:
     8231
     8232/* Line 1806 of yacc.c  */
     8233#line 2301 "parser.yy"
    80378234    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80388235    break;
    80398236
    8040   case 571:
    8041 
    8042 /* Line 1806 of yacc.c  */
    8043 #line 2177 "parser.yy"
     8237  case 609:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2303 "parser.yy"
    80448241    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80458242    break;
    80468243
    8047   case 572:
    8048 
    8049 /* Line 1806 of yacc.c  */
    8050 #line 2182 "parser.yy"
     8244  case 610:
     8245
     8246/* Line 1806 of yacc.c  */
     8247#line 2308 "parser.yy"
     8248    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8249    break;
     8250
     8251  case 611:
     8252
     8253/* Line 1806 of yacc.c  */
     8254#line 2310 "parser.yy"
    80518255    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80528256    break;
    80538257
    8054   case 573:
    8055 
    8056 /* Line 1806 of yacc.c  */
    8057 #line 2184 "parser.yy"
     8258  case 612:
     8259
     8260/* Line 1806 of yacc.c  */
     8261#line 2312 "parser.yy"
    80588262    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80598263    break;
    80608264
    8061   case 574:
    8062 
    8063 /* Line 1806 of yacc.c  */
    8064 #line 2194 "parser.yy"
     8265  case 613:
     8266
     8267/* Line 1806 of yacc.c  */
     8268#line 2322 "parser.yy"
    80658269    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80668270    break;
    80678271
    8068   case 576:
    8069 
    8070 /* Line 1806 of yacc.c  */
    8071 #line 2197 "parser.yy"
     8272  case 615:
     8273
     8274/* Line 1806 of yacc.c  */
     8275#line 2325 "parser.yy"
    80728276    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80738277    break;
    80748278
    8075   case 577:
    8076 
    8077 /* Line 1806 of yacc.c  */
    8078 #line 2202 "parser.yy"
     8279  case 616:
     8280
     8281/* Line 1806 of yacc.c  */
     8282#line 2327 "parser.yy"
     8283    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8284    break;
     8285
     8286  case 617:
     8287
     8288/* Line 1806 of yacc.c  */
     8289#line 2332 "parser.yy"
     8290    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8291    break;
     8292
     8293  case 618:
     8294
     8295/* Line 1806 of yacc.c  */
     8296#line 2334 "parser.yy"
     8297    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8298    break;
     8299
     8300  case 619:
     8301
     8302/* Line 1806 of yacc.c  */
     8303#line 2336 "parser.yy"
     8304    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8305    break;
     8306
     8307  case 620:
     8308
     8309/* Line 1806 of yacc.c  */
     8310#line 2341 "parser.yy"
     8311    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8312    break;
     8313
     8314  case 621:
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2343 "parser.yy"
     8318    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8319    break;
     8320
     8321  case 622:
     8322
     8323/* Line 1806 of yacc.c  */
     8324#line 2345 "parser.yy"
     8325    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8326    break;
     8327
     8328  case 623:
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2347 "parser.yy"
     8332    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8333    break;
     8334
     8335  case 624:
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2352 "parser.yy"
    80798339    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    80808340    break;
    80818341
    8082   case 578:
    8083 
    8084 /* Line 1806 of yacc.c  */
    8085 #line 2204 "parser.yy"
     8342  case 625:
     8343
     8344/* Line 1806 of yacc.c  */
     8345#line 2354 "parser.yy"
    80868346    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80878347    break;
    80888348
    8089   case 579:
    8090 
    8091 /* Line 1806 of yacc.c  */
    8092 #line 2206 "parser.yy"
     8349  case 626:
     8350
     8351/* Line 1806 of yacc.c  */
     8352#line 2356 "parser.yy"
    80938353    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80948354    break;
    80958355
    8096   case 580:
    8097 
    8098 /* Line 1806 of yacc.c  */
    8099 #line 2211 "parser.yy"
    8100     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8101     break;
    8102 
    8103   case 581:
    8104 
    8105 /* Line 1806 of yacc.c  */
    8106 #line 2213 "parser.yy"
    8107     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8108     break;
    8109 
    8110   case 582:
    8111 
    8112 /* Line 1806 of yacc.c  */
    8113 #line 2215 "parser.yy"
    8114     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8115     break;
    8116 
    8117   case 583:
    8118 
    8119 /* Line 1806 of yacc.c  */
    8120 #line 2220 "parser.yy"
    8121     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8122     break;
    8123 
    8124   case 584:
    8125 
    8126 /* Line 1806 of yacc.c  */
    8127 #line 2222 "parser.yy"
    8128     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8129     break;
    8130 
    8131   case 585:
    8132 
    8133 /* Line 1806 of yacc.c  */
    8134 #line 2224 "parser.yy"
    8135     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8136     break;
    8137 
    8138   case 589:
    8139 
    8140 /* Line 1806 of yacc.c  */
    8141 #line 2239 "parser.yy"
    8142     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8143     break;
    8144 
    8145   case 590:
    8146 
    8147 /* Line 1806 of yacc.c  */
    8148 #line 2241 "parser.yy"
    8149     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8150     break;
    8151 
    8152   case 591:
    8153 
    8154 /* Line 1806 of yacc.c  */
    8155 #line 2243 "parser.yy"
    8156     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8157     break;
    8158 
    8159   case 592:
    8160 
    8161 /* Line 1806 of yacc.c  */
    8162 #line 2248 "parser.yy"
    8163     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8164     break;
    8165 
    8166   case 593:
    8167 
    8168 /* Line 1806 of yacc.c  */
    8169 #line 2250 "parser.yy"
    8170     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8171     break;
    8172 
    8173   case 594:
    8174 
    8175 /* Line 1806 of yacc.c  */
    8176 #line 2252 "parser.yy"
    8177     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8178     break;
    8179 
    8180   case 595:
    8181 
    8182 /* Line 1806 of yacc.c  */
    8183 #line 2257 "parser.yy"
    8184     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8185     break;
    8186 
    8187   case 596:
    8188 
    8189 /* Line 1806 of yacc.c  */
    8190 #line 2259 "parser.yy"
    8191     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8192     break;
    8193 
    8194   case 597:
    8195 
    8196 /* Line 1806 of yacc.c  */
    8197 #line 2261 "parser.yy"
    8198     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8199     break;
    8200 
    8201   case 598:
    8202 
    8203 /* Line 1806 of yacc.c  */
    8204 #line 2276 "parser.yy"
     8356  case 627:
     8357
     8358/* Line 1806 of yacc.c  */
     8359#line 2387 "parser.yy"
    82058360    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82068361    break;
    82078362
    8208   case 600:
    8209 
    8210 /* Line 1806 of yacc.c  */
    8211 #line 2279 "parser.yy"
     8363  case 629:
     8364
     8365/* Line 1806 of yacc.c  */
     8366#line 2390 "parser.yy"
    82128367    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82138368    break;
    82148369
    8215   case 601:
    8216 
    8217 /* Line 1806 of yacc.c  */
    8218 #line 2281 "parser.yy"
     8370  case 630:
     8371
     8372/* Line 1806 of yacc.c  */
     8373#line 2392 "parser.yy"
    82198374    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82208375    break;
    82218376
    8222   case 603:
    8223 
    8224 /* Line 1806 of yacc.c  */
    8225 #line 2287 "parser.yy"
    8226     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8227     break;
    8228 
    8229   case 604:
    8230 
    8231 /* Line 1806 of yacc.c  */
    8232 #line 2292 "parser.yy"
    8233     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8234     break;
    8235 
    8236   case 605:
    8237 
    8238 /* Line 1806 of yacc.c  */
    8239 #line 2294 "parser.yy"
    8240     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8241     break;
    8242 
    8243   case 606:
    8244 
    8245 /* Line 1806 of yacc.c  */
    8246 #line 2296 "parser.yy"
    8247     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8248     break;
    8249 
    8250   case 607:
    8251 
    8252 /* Line 1806 of yacc.c  */
    8253 #line 2301 "parser.yy"
    8254     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8255     break;
    8256 
    8257   case 608:
    8258 
    8259 /* Line 1806 of yacc.c  */
    8260 #line 2303 "parser.yy"
    8261     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8262     break;
    8263 
    8264   case 609:
    8265 
    8266 /* Line 1806 of yacc.c  */
    8267 #line 2305 "parser.yy"
    8268     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8269     break;
    8270 
    8271   case 610:
    8272 
    8273 /* Line 1806 of yacc.c  */
    8274 #line 2307 "parser.yy"
    8275     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8276     break;
    8277 
    8278   case 611:
    8279 
    8280 /* Line 1806 of yacc.c  */
    8281 #line 2312 "parser.yy"
    8282     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8283     break;
    8284 
    8285   case 612:
    8286 
    8287 /* Line 1806 of yacc.c  */
    8288 #line 2314 "parser.yy"
    8289     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8290     break;
    8291 
    8292   case 613:
    8293 
    8294 /* Line 1806 of yacc.c  */
    8295 #line 2316 "parser.yy"
    8296     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8297     break;
    8298 
    8299   case 614:
    8300 
    8301 /* Line 1806 of yacc.c  */
    8302 #line 2326 "parser.yy"
    8303     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8304     break;
    8305 
    8306   case 616:
    8307 
    8308 /* Line 1806 of yacc.c  */
    8309 #line 2329 "parser.yy"
    8310     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8311     break;
    8312 
    8313   case 617:
    8314 
    8315 /* Line 1806 of yacc.c  */
    8316 #line 2331 "parser.yy"
    8317     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8318     break;
    8319 
    8320   case 618:
    8321 
    8322 /* Line 1806 of yacc.c  */
    8323 #line 2336 "parser.yy"
    8324     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8325     break;
    8326 
    8327   case 619:
    8328 
    8329 /* Line 1806 of yacc.c  */
    8330 #line 2338 "parser.yy"
    8331     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8332     break;
    8333 
    8334   case 620:
    8335 
    8336 /* Line 1806 of yacc.c  */
    8337 #line 2340 "parser.yy"
    8338     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8339     break;
    8340 
    8341   case 621:
    8342 
    8343 /* Line 1806 of yacc.c  */
    8344 #line 2345 "parser.yy"
    8345     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8346     break;
    8347 
    8348   case 622:
    8349 
    8350 /* Line 1806 of yacc.c  */
    8351 #line 2347 "parser.yy"
    8352     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8353     break;
    8354 
    8355   case 623:
    8356 
    8357 /* Line 1806 of yacc.c  */
    8358 #line 2349 "parser.yy"
    8359     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8360     break;
    8361 
    8362   case 624:
    8363 
    8364 /* Line 1806 of yacc.c  */
    8365 #line 2351 "parser.yy"
    8366     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8367     break;
    8368 
    8369   case 625:
    8370 
    8371 /* Line 1806 of yacc.c  */
    8372 #line 2356 "parser.yy"
    8373     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8374     break;
    8375 
    8376   case 626:
    8377 
    8378 /* Line 1806 of yacc.c  */
    8379 #line 2358 "parser.yy"
    8380     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8381     break;
    8382 
    8383   case 627:
    8384 
    8385 /* Line 1806 of yacc.c  */
    8386 #line 2360 "parser.yy"
    8387     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8388     break;
    8389 
    8390   case 628:
    8391 
    8392 /* Line 1806 of yacc.c  */
    8393 #line 2391 "parser.yy"
    8394     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8395     break;
    8396 
    8397   case 630:
    8398 
    8399 /* Line 1806 of yacc.c  */
    8400 #line 2394 "parser.yy"
    8401     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8402     break;
    8403 
    84048377  case 631:
    84058378
    84068379/* Line 1806 of yacc.c  */
    8407 #line 2396 "parser.yy"
    8408     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8409     break;
    8410 
    8411   case 632:
    8412 
    8413 /* Line 1806 of yacc.c  */
    8414 #line 2401 "parser.yy"
     8380#line 2397 "parser.yy"
    84158381    {
    84168382                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84198385    break;
    84208386
    8421   case 633:
    8422 
    8423 /* Line 1806 of yacc.c  */
    8424 #line 2406 "parser.yy"
     8387  case 632:
     8388
     8389/* Line 1806 of yacc.c  */
     8390#line 2402 "parser.yy"
    84258391    {
    84268392                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84298395    break;
    84308396
     8397  case 633:
     8398
     8399/* Line 1806 of yacc.c  */
     8400#line 2410 "parser.yy"
     8401    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8402    break;
     8403
    84318404  case 634:
    84328405
    84338406/* Line 1806 of yacc.c  */
     8407#line 2412 "parser.yy"
     8408    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8409    break;
     8410
     8411  case 635:
     8412
     8413/* Line 1806 of yacc.c  */
    84348414#line 2414 "parser.yy"
     8415    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8416    break;
     8417
     8418  case 636:
     8419
     8420/* Line 1806 of yacc.c  */
     8421#line 2419 "parser.yy"
     8422    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8423    break;
     8424
     8425  case 637:
     8426
     8427/* Line 1806 of yacc.c  */
     8428#line 2421 "parser.yy"
     8429    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8430    break;
     8431
     8432  case 638:
     8433
     8434/* Line 1806 of yacc.c  */
     8435#line 2426 "parser.yy"
     8436    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8437    break;
     8438
     8439  case 639:
     8440
     8441/* Line 1806 of yacc.c  */
     8442#line 2428 "parser.yy"
     8443    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8444    break;
     8445
     8446  case 641:
     8447
     8448/* Line 1806 of yacc.c  */
     8449#line 2443 "parser.yy"
     8450    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8451    break;
     8452
     8453  case 642:
     8454
     8455/* Line 1806 of yacc.c  */
     8456#line 2445 "parser.yy"
     8457    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8458    break;
     8459
     8460  case 643:
     8461
     8462/* Line 1806 of yacc.c  */
     8463#line 2450 "parser.yy"
     8464    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8465    break;
     8466
     8467  case 644:
     8468
     8469/* Line 1806 of yacc.c  */
     8470#line 2452 "parser.yy"
     8471    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8472    break;
     8473
     8474  case 645:
     8475
     8476/* Line 1806 of yacc.c  */
     8477#line 2454 "parser.yy"
    84358478    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84368479    break;
    84378480
    8438   case 635:
    8439 
    8440 /* Line 1806 of yacc.c  */
    8441 #line 2416 "parser.yy"
     8481  case 646:
     8482
     8483/* Line 1806 of yacc.c  */
     8484#line 2456 "parser.yy"
    84428485    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84438486    break;
    84448487
    8445   case 636:
    8446 
    8447 /* Line 1806 of yacc.c  */
    8448 #line 2418 "parser.yy"
     8488  case 647:
     8489
     8490/* Line 1806 of yacc.c  */
     8491#line 2458 "parser.yy"
    84498492    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84508493    break;
    84518494
    8452   case 637:
    8453 
    8454 /* Line 1806 of yacc.c  */
    8455 #line 2423 "parser.yy"
     8495  case 649:
     8496
     8497/* Line 1806 of yacc.c  */
     8498#line 2464 "parser.yy"
     8499    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8500    break;
     8501
     8502  case 650:
     8503
     8504/* Line 1806 of yacc.c  */
     8505#line 2466 "parser.yy"
     8506    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8507    break;
     8508
     8509  case 651:
     8510
     8511/* Line 1806 of yacc.c  */
     8512#line 2468 "parser.yy"
     8513    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8514    break;
     8515
     8516  case 652:
     8517
     8518/* Line 1806 of yacc.c  */
     8519#line 2473 "parser.yy"
     8520    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8521    break;
     8522
     8523  case 653:
     8524
     8525/* Line 1806 of yacc.c  */
     8526#line 2475 "parser.yy"
     8527    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8528    break;
     8529
     8530  case 654:
     8531
     8532/* Line 1806 of yacc.c  */
     8533#line 2477 "parser.yy"
     8534    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8535    break;
     8536
     8537  case 655:
     8538
     8539/* Line 1806 of yacc.c  */
     8540#line 2483 "parser.yy"
     8541    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8542    break;
     8543
     8544  case 656:
     8545
     8546/* Line 1806 of yacc.c  */
     8547#line 2485 "parser.yy"
     8548    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8549    break;
     8550
     8551  case 658:
     8552
     8553/* Line 1806 of yacc.c  */
     8554#line 2491 "parser.yy"
     8555    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8556    break;
     8557
     8558  case 659:
     8559
     8560/* Line 1806 of yacc.c  */
     8561#line 2493 "parser.yy"
     8562    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8563    break;
     8564
     8565  case 660:
     8566
     8567/* Line 1806 of yacc.c  */
     8568#line 2495 "parser.yy"
     8569    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8570    break;
     8571
     8572  case 661:
     8573
     8574/* Line 1806 of yacc.c  */
     8575#line 2497 "parser.yy"
     8576    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8577    break;
     8578
     8579  case 663:
     8580
     8581/* Line 1806 of yacc.c  */
     8582#line 2512 "parser.yy"
     8583    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8584    break;
     8585
     8586  case 664:
     8587
     8588/* Line 1806 of yacc.c  */
     8589#line 2514 "parser.yy"
     8590    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8591    break;
     8592
     8593  case 665:
     8594
     8595/* Line 1806 of yacc.c  */
     8596#line 2519 "parser.yy"
     8597    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8598    break;
     8599
     8600  case 666:
     8601
     8602/* Line 1806 of yacc.c  */
     8603#line 2521 "parser.yy"
     8604    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8605    break;
     8606
     8607  case 667:
     8608
     8609/* Line 1806 of yacc.c  */
     8610#line 2523 "parser.yy"
     8611    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8612    break;
     8613
     8614  case 668:
     8615
     8616/* Line 1806 of yacc.c  */
     8617#line 2525 "parser.yy"
     8618    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8619    break;
     8620
     8621  case 669:
     8622
     8623/* Line 1806 of yacc.c  */
     8624#line 2527 "parser.yy"
     8625    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8626    break;
     8627
     8628  case 671:
     8629
     8630/* Line 1806 of yacc.c  */
     8631#line 2533 "parser.yy"
     8632    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8633    break;
     8634
     8635  case 672:
     8636
     8637/* Line 1806 of yacc.c  */
     8638#line 2535 "parser.yy"
     8639    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8640    break;
     8641
     8642  case 673:
     8643
     8644/* Line 1806 of yacc.c  */
     8645#line 2537 "parser.yy"
     8646    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8647    break;
     8648
     8649  case 674:
     8650
     8651/* Line 1806 of yacc.c  */
     8652#line 2542 "parser.yy"
     8653    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8654    break;
     8655
     8656  case 675:
     8657
     8658/* Line 1806 of yacc.c  */
     8659#line 2544 "parser.yy"
     8660    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8661    break;
     8662
     8663  case 676:
     8664
     8665/* Line 1806 of yacc.c  */
     8666#line 2546 "parser.yy"
     8667    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8668    break;
     8669
     8670  case 678:
     8671
     8672/* Line 1806 of yacc.c  */
     8673#line 2553 "parser.yy"
    84568674    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84578675    break;
    84588676
    8459   case 638:
    8460 
    8461 /* Line 1806 of yacc.c  */
    8462 #line 2425 "parser.yy"
     8677  case 680:
     8678
     8679/* Line 1806 of yacc.c  */
     8680#line 2564 "parser.yy"
     8681    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8682    break;
     8683
     8684  case 681:
     8685
     8686/* Line 1806 of yacc.c  */
     8687#line 2567 "parser.yy"
     8688    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8689    break;
     8690
     8691  case 682:
     8692
     8693/* Line 1806 of yacc.c  */
     8694#line 2569 "parser.yy"
     8695    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8696    break;
     8697
     8698  case 683:
     8699
     8700/* Line 1806 of yacc.c  */
     8701#line 2572 "parser.yy"
     8702    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8703    break;
     8704
     8705  case 684:
     8706
     8707/* Line 1806 of yacc.c  */
     8708#line 2574 "parser.yy"
     8709    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8710    break;
     8711
     8712  case 685:
     8713
     8714/* Line 1806 of yacc.c  */
     8715#line 2576 "parser.yy"
     8716    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8717    break;
     8718
     8719  case 687:
     8720
     8721/* Line 1806 of yacc.c  */
     8722#line 2590 "parser.yy"
     8723    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8724    break;
     8725
     8726  case 688:
     8727
     8728/* Line 1806 of yacc.c  */
     8729#line 2592 "parser.yy"
     8730    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8731    break;
     8732
     8733  case 689:
     8734
     8735/* Line 1806 of yacc.c  */
     8736#line 2597 "parser.yy"
     8737    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8738    break;
     8739
     8740  case 690:
     8741
     8742/* Line 1806 of yacc.c  */
     8743#line 2599 "parser.yy"
     8744    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8745    break;
     8746
     8747  case 691:
     8748
     8749/* Line 1806 of yacc.c  */
     8750#line 2601 "parser.yy"
     8751    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8752    break;
     8753
     8754  case 692:
     8755
     8756/* Line 1806 of yacc.c  */
     8757#line 2603 "parser.yy"
     8758    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8759    break;
     8760
     8761  case 693:
     8762
     8763/* Line 1806 of yacc.c  */
     8764#line 2605 "parser.yy"
     8765    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8766    break;
     8767
     8768  case 695:
     8769
     8770/* Line 1806 of yacc.c  */
     8771#line 2611 "parser.yy"
    84638772    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84648773    break;
    84658774
    8466   case 639:
    8467 
    8468 /* Line 1806 of yacc.c  */
    8469 #line 2430 "parser.yy"
    8470     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8471     break;
    8472 
    8473   case 640:
    8474 
    8475 /* Line 1806 of yacc.c  */
    8476 #line 2432 "parser.yy"
     8775  case 696:
     8776
     8777/* Line 1806 of yacc.c  */
     8778#line 2613 "parser.yy"
     8779    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8780    break;
     8781
     8782  case 697:
     8783
     8784/* Line 1806 of yacc.c  */
     8785#line 2615 "parser.yy"
     8786    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8787    break;
     8788
     8789  case 698:
     8790
     8791/* Line 1806 of yacc.c  */
     8792#line 2620 "parser.yy"
    84778793    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84788794    break;
    84798795
    8480   case 642:
    8481 
    8482 /* Line 1806 of yacc.c  */
    8483 #line 2447 "parser.yy"
    8484     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8485     break;
    8486 
    8487   case 643:
    8488 
    8489 /* Line 1806 of yacc.c  */
    8490 #line 2449 "parser.yy"
    8491     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8492     break;
    8493 
    8494   case 644:
    8495 
    8496 /* Line 1806 of yacc.c  */
    8497 #line 2454 "parser.yy"
    8498     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8499     break;
    8500 
    8501   case 645:
    8502 
    8503 /* Line 1806 of yacc.c  */
    8504 #line 2456 "parser.yy"
    8505     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8506     break;
    8507 
    8508   case 646:
    8509 
    8510 /* Line 1806 of yacc.c  */
    8511 #line 2458 "parser.yy"
    8512     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8513     break;
    8514 
    8515   case 647:
    8516 
    8517 /* Line 1806 of yacc.c  */
    8518 #line 2460 "parser.yy"
    8519     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8520     break;
    8521 
    8522   case 648:
    8523 
    8524 /* Line 1806 of yacc.c  */
    8525 #line 2462 "parser.yy"
     8796  case 699:
     8797
     8798/* Line 1806 of yacc.c  */
     8799#line 2622 "parser.yy"
    85268800    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85278801    break;
    85288802
    8529   case 650:
    8530 
    8531 /* Line 1806 of yacc.c  */
    8532 #line 2468 "parser.yy"
    8533     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8534     break;
    8535 
    8536   case 651:
    8537 
    8538 /* Line 1806 of yacc.c  */
    8539 #line 2470 "parser.yy"
    8540     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8541     break;
    8542 
    8543   case 652:
    8544 
    8545 /* Line 1806 of yacc.c  */
    8546 #line 2472 "parser.yy"
    8547     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8548     break;
    8549 
    8550   case 653:
    8551 
    8552 /* Line 1806 of yacc.c  */
    8553 #line 2477 "parser.yy"
    8554     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8555     break;
    8556 
    8557   case 654:
    8558 
    8559 /* Line 1806 of yacc.c  */
    8560 #line 2479 "parser.yy"
    8561     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8562     break;
    8563 
    8564   case 655:
    8565 
    8566 /* Line 1806 of yacc.c  */
    8567 #line 2481 "parser.yy"
    8568     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8569     break;
    8570 
    8571   case 656:
    8572 
    8573 /* Line 1806 of yacc.c  */
    8574 #line 2487 "parser.yy"
    8575     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8576     break;
    8577 
    8578   case 657:
    8579 
    8580 /* Line 1806 of yacc.c  */
    8581 #line 2489 "parser.yy"
    8582     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8583     break;
    8584 
    8585   case 659:
    8586 
    8587 /* Line 1806 of yacc.c  */
    8588 #line 2495 "parser.yy"
    8589     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8590     break;
    8591 
    8592   case 660:
    8593 
    8594 /* Line 1806 of yacc.c  */
    8595 #line 2497 "parser.yy"
    8596     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8597     break;
    8598 
    8599   case 661:
    8600 
    8601 /* Line 1806 of yacc.c  */
    8602 #line 2499 "parser.yy"
    8603     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8604     break;
    8605 
    8606   case 662:
    8607 
    8608 /* Line 1806 of yacc.c  */
    8609 #line 2501 "parser.yy"
    8610     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8611     break;
    8612 
    8613   case 664:
    8614 
    8615 /* Line 1806 of yacc.c  */
    8616 #line 2516 "parser.yy"
    8617     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8618     break;
    8619 
    8620   case 665:
    8621 
    8622 /* Line 1806 of yacc.c  */
    8623 #line 2518 "parser.yy"
    8624     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8625     break;
    8626 
    8627   case 666:
    8628 
    8629 /* Line 1806 of yacc.c  */
    8630 #line 2523 "parser.yy"
    8631     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8632     break;
    8633 
    8634   case 667:
    8635 
    8636 /* Line 1806 of yacc.c  */
    8637 #line 2525 "parser.yy"
    8638     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8639     break;
    8640 
    8641   case 668:
    8642 
    8643 /* Line 1806 of yacc.c  */
    8644 #line 2527 "parser.yy"
    8645     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8646     break;
    8647 
    8648   case 669:
    8649 
    8650 /* Line 1806 of yacc.c  */
    8651 #line 2529 "parser.yy"
    8652     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8653     break;
    8654 
    8655   case 670:
    8656 
    8657 /* Line 1806 of yacc.c  */
    8658 #line 2531 "parser.yy"
    8659     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8660     break;
    8661 
    8662   case 672:
    8663 
    8664 /* Line 1806 of yacc.c  */
    8665 #line 2537 "parser.yy"
    8666     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8667     break;
    8668 
    8669   case 673:
    8670 
    8671 /* Line 1806 of yacc.c  */
    8672 #line 2539 "parser.yy"
    8673     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8674     break;
    8675 
    8676   case 674:
    8677 
    8678 /* Line 1806 of yacc.c  */
    8679 #line 2541 "parser.yy"
    8680     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8681     break;
    8682 
    8683   case 675:
    8684 
    8685 /* Line 1806 of yacc.c  */
    8686 #line 2546 "parser.yy"
    8687     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8688     break;
    8689 
    8690   case 676:
    8691 
    8692 /* Line 1806 of yacc.c  */
    8693 #line 2548 "parser.yy"
    8694     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8695     break;
    8696 
    8697   case 677:
    8698 
    8699 /* Line 1806 of yacc.c  */
    8700 #line 2550 "parser.yy"
    8701     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8702     break;
    8703 
    8704   case 679:
    8705 
    8706 /* Line 1806 of yacc.c  */
    8707 #line 2557 "parser.yy"
    8708     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8709     break;
    8710 
    8711   case 681:
    8712 
    8713 /* Line 1806 of yacc.c  */
    8714 #line 2568 "parser.yy"
    8715     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8716     break;
    8717 
    8718   case 682:
    8719 
    8720 /* Line 1806 of yacc.c  */
    8721 #line 2571 "parser.yy"
    8722     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8723     break;
    8724 
    8725   case 683:
    8726 
    8727 /* Line 1806 of yacc.c  */
    8728 #line 2573 "parser.yy"
    8729     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8730     break;
    8731 
    8732   case 684:
    8733 
    8734 /* Line 1806 of yacc.c  */
    8735 #line 2576 "parser.yy"
    8736     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8737     break;
    8738 
    8739   case 685:
    8740 
    8741 /* Line 1806 of yacc.c  */
    8742 #line 2578 "parser.yy"
    8743     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8744     break;
    8745 
    8746   case 686:
    8747 
    8748 /* Line 1806 of yacc.c  */
    8749 #line 2580 "parser.yy"
    8750     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8751     break;
    8752 
    8753   case 688:
    8754 
    8755 /* Line 1806 of yacc.c  */
    8756 #line 2594 "parser.yy"
    8757     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8758     break;
    8759 
    8760   case 689:
    8761 
    8762 /* Line 1806 of yacc.c  */
    8763 #line 2596 "parser.yy"
    8764     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8765     break;
    8766 
    8767   case 690:
    8768 
    8769 /* Line 1806 of yacc.c  */
    8770 #line 2601 "parser.yy"
    8771     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8772     break;
    8773 
    8774   case 691:
    8775 
    8776 /* Line 1806 of yacc.c  */
    8777 #line 2603 "parser.yy"
    8778     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8779     break;
    8780 
    8781   case 692:
    8782 
    8783 /* Line 1806 of yacc.c  */
    8784 #line 2605 "parser.yy"
    8785     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8786     break;
    8787 
    8788   case 693:
    8789 
    8790 /* Line 1806 of yacc.c  */
    8791 #line 2607 "parser.yy"
    8792     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8793     break;
    8794 
    8795   case 694:
    8796 
    8797 /* Line 1806 of yacc.c  */
    8798 #line 2609 "parser.yy"
    8799     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8800     break;
    8801 
    8802   case 696:
    8803 
    8804 /* Line 1806 of yacc.c  */
    8805 #line 2615 "parser.yy"
    8806     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8807     break;
    8808 
    8809   case 697:
    8810 
    8811 /* Line 1806 of yacc.c  */
    8812 #line 2617 "parser.yy"
    8813     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8814     break;
    8815 
    8816   case 698:
    8817 
    8818 /* Line 1806 of yacc.c  */
    8819 #line 2619 "parser.yy"
    8820     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8821     break;
    8822 
    8823   case 699:
    8824 
    8825 /* Line 1806 of yacc.c  */
    8826 #line 2624 "parser.yy"
    8827     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8828     break;
    8829 
    8830   case 700:
    8831 
    8832 /* Line 1806 of yacc.c  */
    8833 #line 2626 "parser.yy"
    8834     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8835     break;
    8836 
    8837   case 703:
    8838 
    8839 /* Line 1806 of yacc.c  */
    8840 #line 2636 "parser.yy"
     8803  case 702:
     8804
     8805/* Line 1806 of yacc.c  */
     8806#line 2632 "parser.yy"
    88418807    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    88428808    break;
    88438809
     8810  case 705:
     8811
     8812/* Line 1806 of yacc.c  */
     8813#line 2642 "parser.yy"
     8814    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8815    break;
     8816
    88448817  case 706:
     8818
     8819/* Line 1806 of yacc.c  */
     8820#line 2644 "parser.yy"
     8821    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8822    break;
     8823
     8824  case 707:
    88458825
    88468826/* Line 1806 of yacc.c  */
     
    88498829    break;
    88508830
    8851   case 707:
     8831  case 708:
    88528832
    88538833/* Line 1806 of yacc.c  */
     
    88568836    break;
    88578837
    8858   case 708:
     8838  case 709:
    88598839
    88608840/* Line 1806 of yacc.c  */
     
    88638843    break;
    88648844
    8865   case 709:
     8845  case 710:
    88668846
    88678847/* Line 1806 of yacc.c  */
     
    88708850    break;
    88718851
    8872   case 710:
    8873 
    8874 /* Line 1806 of yacc.c  */
    8875 #line 2654 "parser.yy"
    8876     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8877     break;
    8878 
    88798852  case 711:
    88808853
    88818854/* Line 1806 of yacc.c  */
    8882 #line 2656 "parser.yy"
    8883     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8855#line 2659 "parser.yy"
     8856    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88848857    break;
    88858858
     
    88878860
    88888861/* Line 1806 of yacc.c  */
     8862#line 2661 "parser.yy"
     8863    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8864    break;
     8865
     8866  case 713:
     8867
     8868/* Line 1806 of yacc.c  */
    88898869#line 2663 "parser.yy"
     8870    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8871    break;
     8872
     8873  case 714:
     8874
     8875/* Line 1806 of yacc.c  */
     8876#line 2665 "parser.yy"
     8877    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8878    break;
     8879
     8880  case 715:
     8881
     8882/* Line 1806 of yacc.c  */
     8883#line 2667 "parser.yy"
     8884    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8885    break;
     8886
     8887  case 716:
     8888
     8889/* Line 1806 of yacc.c  */
     8890#line 2669 "parser.yy"
    88908891    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88918892    break;
    88928893
    8893   case 713:
    8894 
    8895 /* Line 1806 of yacc.c  */
    8896 #line 2665 "parser.yy"
    8897     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8898     break;
    8899 
    8900   case 714:
    8901 
    8902 /* Line 1806 of yacc.c  */
    8903 #line 2667 "parser.yy"
    8904     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8905     break;
    8906 
    8907   case 715:
    8908 
    8909 /* Line 1806 of yacc.c  */
    8910 #line 2669 "parser.yy"
    8911     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8912     break;
    8913 
    8914   case 716:
     8894  case 717:
    89158895
    89168896/* Line 1806 of yacc.c  */
     
    89198899    break;
    89208900
    8921   case 717:
     8901  case 718:
    89228902
    89238903/* Line 1806 of yacc.c  */
    89248904#line 2673 "parser.yy"
    8925     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8926     break;
    8927 
    8928   case 718:
     8905    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8906    break;
     8907
     8908  case 719:
    89298909
    89308910/* Line 1806 of yacc.c  */
    89318911#line 2675 "parser.yy"
     8912    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8913    break;
     8914
     8915  case 720:
     8916
     8917/* Line 1806 of yacc.c  */
     8918#line 2677 "parser.yy"
    89328919    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89338920    break;
    89348921
    8935   case 719:
    8936 
    8937 /* Line 1806 of yacc.c  */
    8938 #line 2677 "parser.yy"
    8939     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8940     break;
    8941 
    8942   case 720:
    8943 
    8944 /* Line 1806 of yacc.c  */
    8945 #line 2679 "parser.yy"
    8946     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8947     break;
    8948 
    89498922  case 721:
    89508923
    89518924/* Line 1806 of yacc.c  */
    8952 #line 2681 "parser.yy"
    8953     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8925#line 2682 "parser.yy"
     8926    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    89548927    break;
    89558928
     
    89578930
    89588931/* Line 1806 of yacc.c  */
    8959 #line 2686 "parser.yy"
    8960     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8932#line 2684 "parser.yy"
     8933    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    89618934    break;
    89628935
     
    89648937
    89658938/* Line 1806 of yacc.c  */
    8966 #line 2688 "parser.yy"
    8967     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8939#line 2689 "parser.yy"
     8940    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    89688941    break;
    89698942
     
    89718944
    89728945/* Line 1806 of yacc.c  */
    8973 #line 2693 "parser.yy"
    8974     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    8975     break;
    8976 
    8977   case 725:
    8978 
    8979 /* Line 1806 of yacc.c  */
    8980 #line 2695 "parser.yy"
     8946#line 2691 "parser.yy"
    89818947    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    89828948    break;
    89838949
    8984   case 727:
    8985 
    8986 /* Line 1806 of yacc.c  */
    8987 #line 2722 "parser.yy"
     8950  case 726:
     8951
     8952/* Line 1806 of yacc.c  */
     8953#line 2718 "parser.yy"
    89888954    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89898955    break;
    89908956
     8957  case 730:
     8958
     8959/* Line 1806 of yacc.c  */
     8960#line 2729 "parser.yy"
     8961    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8962    break;
     8963
    89918964  case 731:
     8965
     8966/* Line 1806 of yacc.c  */
     8967#line 2731 "parser.yy"
     8968    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8969    break;
     8970
     8971  case 732:
    89928972
    89938973/* Line 1806 of yacc.c  */
     
    89968976    break;
    89978977
    8998   case 732:
     8978  case 733:
    89998979
    90008980/* Line 1806 of yacc.c  */
     
    90038983    break;
    90048984
    9005   case 733:
     8985  case 734:
    90068986
    90078987/* Line 1806 of yacc.c  */
     
    90108990    break;
    90118991
    9012   case 734:
     8992  case 735:
    90138993
    90148994/* Line 1806 of yacc.c  */
     
    90178997    break;
    90188998
    9019   case 735:
    9020 
    9021 /* Line 1806 of yacc.c  */
    9022 #line 2741 "parser.yy"
    9023     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9024     break;
    9025 
    90268999  case 736:
    90279000
    90289001/* Line 1806 of yacc.c  */
    9029 #line 2743 "parser.yy"
    9030     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9002#line 2746 "parser.yy"
     9003    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90319004    break;
    90329005
     
    90349007
    90359008/* Line 1806 of yacc.c  */
     9009#line 2748 "parser.yy"
     9010    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9011    break;
     9012
     9013  case 738:
     9014
     9015/* Line 1806 of yacc.c  */
    90369016#line 2750 "parser.yy"
     9017    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9018    break;
     9019
     9020  case 739:
     9021
     9022/* Line 1806 of yacc.c  */
     9023#line 2752 "parser.yy"
    90379024    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90389025    break;
    90399026
    9040   case 738:
    9041 
    9042 /* Line 1806 of yacc.c  */
    9043 #line 2752 "parser.yy"
     9027  case 740:
     9028
     9029/* Line 1806 of yacc.c  */
     9030#line 2754 "parser.yy"
    90449031    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90459032    break;
    90469033
    9047   case 739:
    9048 
    9049 /* Line 1806 of yacc.c  */
    9050 #line 2754 "parser.yy"
     9034  case 741:
     9035
     9036/* Line 1806 of yacc.c  */
     9037#line 2756 "parser.yy"
    90519038    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90529039    break;
    90539040
    9054   case 740:
    9055 
    9056 /* Line 1806 of yacc.c  */
    9057 #line 2756 "parser.yy"
    9058     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9059     break;
    9060 
    9061   case 741:
    9062 
    9063 /* Line 1806 of yacc.c  */
    9064 #line 2758 "parser.yy"
    9065     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9066     break;
    9067 
    90689041  case 742:
    90699042
    90709043/* Line 1806 of yacc.c  */
    9071 #line 2760 "parser.yy"
    9072     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9044#line 2761 "parser.yy"
     9045    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    90739046    break;
    90749047
     
    90769049
    90779050/* Line 1806 of yacc.c  */
    9078 #line 2765 "parser.yy"
    9079     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9051#line 2766 "parser.yy"
     9052    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    90809053    break;
    90819054
     
    90839056
    90849057/* Line 1806 of yacc.c  */
     9058#line 2768 "parser.yy"
     9059    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9060    break;
     9061
     9062  case 745:
     9063
     9064/* Line 1806 of yacc.c  */
    90859065#line 2770 "parser.yy"
    9086     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    9087     break;
    9088 
    9089   case 745:
    9090 
    9091 /* Line 1806 of yacc.c  */
    9092 #line 2772 "parser.yy"
    90939066    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90949067    break;
    90959068
    9096   case 746:
    9097 
    9098 /* Line 1806 of yacc.c  */
    9099 #line 2774 "parser.yy"
    9100     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9069  case 748:
     9070
     9071/* Line 1806 of yacc.c  */
     9072#line 2794 "parser.yy"
     9073    { (yyval.en) = 0; }
    91019074    break;
    91029075
     
    91049077
    91059078/* Line 1806 of yacc.c  */
    9106 #line 2798 "parser.yy"
    9107     { (yyval.en) = 0; }
    9108     break;
    9109 
    9110   case 750:
    9111 
    9112 /* Line 1806 of yacc.c  */
    9113 #line 2800 "parser.yy"
     9079#line 2796 "parser.yy"
    91149080    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91159081    break;
     
    91189084
    91199085/* Line 1806 of yacc.c  */
    9120 #line 9121 "Parser/parser.cc"
     9086#line 9087 "Parser/parser.cc"
    91219087      default: break;
    91229088    }
     
    93499315
    93509316/* Line 2067 of yacc.c  */
    9351 #line 2803 "parser.yy"
     9317#line 2799 "parser.yy"
    93529318
    93539319// ----end of grammar----
  • src/Parser/parser.h

    r02e5ab6 r097e2b0  
    140140     ERassign = 358,
    141141     ORassign = 359,
    142      THEN = 360
     142     ATassign = 360,
     143     THEN = 361
    143144   };
    144145#endif
     
    246247#define ERassign 358
    247248#define ORassign 359
    248 #define THEN 360
     249#define ATassign 360
     250#define THEN 361
    249251
    250252
     
    256258
    257259/* Line 2068 of yacc.c  */
    258 #line 108 "parser.yy"
     260#line 110 "parser.yy"
    259261
    260262        Token tok;
     
    273275
    274276/* Line 2068 of yacc.c  */
    275 #line 276 "Parser/parser.h"
     277#line 278 "Parser/parser.h"
    276278} YYSTYPE;
    277279# define YYSTYPE_IS_TRIVIAL 1
  • src/Parser/parser.yy

    r02e5ab6 r097e2b0  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Sep 28 18:18:32 2015
    13 // Update Count     : 1402
     12// Last Modified On : Thu Oct  8 17:17:54 2015
     13// Update Count     : 1473
    1414//
    1515
     
    104104%token ANDassign        ERassign        ORassign                                // &=   ^=      |=
    105105
     106%token ATassign                                                                                 // @=
     107
    106108// Types declaration
    107109%union
     
    120122}
    121123
    122 %type<tok> identifier  no_01_identifier  no_attr_identifier no_attr_identifier_01  zero_one
     124%type<tok> identifier  no_01_identifier  no_attr_identifier zero_one
    123125%type<tok> identifier_or_type_name  no_attr_identifier_or_type_name  no_01_identifier_or_type_name
    124126%type<constant> string_literal_list
     
    143145// statements
    144146%type<sn> labeled_statement                             compound_statement                      expression_statement            selection_statement
    145 %type<sn> iteration_statement                   jump_statement                          exception_statement                     asm_statement                   ctor_dtor
     147%type<sn> iteration_statement                   jump_statement                          exception_statement                     asm_statement
    146148%type<sn> fall_through_opt                              fall_through
    147149%type<sn> statement                                             statement_list
     
    317319        ;
    318320
     321// no zero_one because ambiguity with 0.0 : double constant or field selection
    319322no_attr_identifier:
    320323        IDENTIFIER
    321         ;
    322 
    323 no_attr_identifier_01:
    324         IDENTIFIER
    325         | zero_one
    326324        ;
    327325
     
    369367        | postfix_expression DECR
    370368                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), $1 ); }
    371                 // GCC has priority: cast_expression
    372369        | '(' type_name_no_function ')' '{' initializer_list comma_opt '}' // C99
    373370                { $$ = 0; }
     371        | postfix_expression '{' argument_expression_list '}' // CFA
     372                {
     373                        Token fn; fn.str = new std::string( "?{}" ); // location undefined
     374                        $$ = new CompositeExprNode( new VarRefNode( fn ), (ExpressionNode *)( $1 )->set_link( $3 ) );
     375                }
    374376        ;
    375377
     
    632634        | exception_statement
    633635        | asm_statement
    634         | ctor_dtor
     636        | '^' postfix_expression '{' argument_expression_list '}' ';' // CFA
     637                {
     638                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
     639                        $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
     640                                (ExpressionNode *)(new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), $2 ))->set_link( $4 ) ), 0 );
     641                }
    635642        ;
    636643
     
    945952        ;
    946953
    947 ctor_dtor:                                                                                              // CFA, constructor/destructor
    948         no_attr_identifier_01 '{' argument_expression_list '}' ';'
    949                 {
    950                         Token fn; fn.str = new std::string( "?{}" ); fn.loc = $1.loc;
    951                         $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    952                                    (ExpressionNode *)((new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), new VarRefNode( $1 ) ))->set_link( $3 )) ), 0 );
    953                 }
    954         | '^' no_attr_identifier_01 '{' '}' ';'
    955                 {
    956                         Token fn; fn.str = new std::string( "^?{}" ); fn.loc = $2.loc;
    957                         $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    958                                    new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), new VarRefNode( $2 ) ) ), 0 );
    959                 }
    960         ;
    961 
    962954//******************************* DECLARATIONS *********************************
    963955
     
    16891681        | '=' initializer
    16901682                { $$ = $2; }
     1683        | ATassign initializer
     1684                { $$ = $2; }
    16911685        ;
    16921686
     
    16971691
    16981692initializer_list:
    1699         initializer
     1693        // empty
     1694                { $$ = 0; }
     1695        | initializer
    17001696        | designation initializer                                       { $$ = $2->set_designators( $1 ); }
    17011697        | initializer_list ',' initializer                      { $$ = (InitializerNode *)( $1->set_link( $3 ) ); }
  • src/examples/control_structures.c

    r02e5ab6 r097e2b0  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun  4 14:02:50 2015
    13 // Update Count     : 24
     12// Last Modified On : Fri Sep 18 08:12:17 2015
     13// Update Count     : 28
    1414//
    1515
     
    2626                                                break L3;
    2727                                                break L4;
    28                                                 //continue L1;                                  // labelled continue - should be an error
    29                                                 //continue L2;                                  // should be an error
     28                                                //continue L1;                                  // error: not enclosing loop
     29                                                //continue L2;                                  // error: not enclosing loop
    3030                                                continue L3;
    3131                                                continue L4;
  • src/examples/sum.c

    r02e5ab6 r097e2b0  
    77// sum.c --
    88//
    9 // Author           : Richard C. Bilson
     9// Author           : Peter A. Buhr
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jun  1 20:46:35 2015
    13 // Update Count     : 18
     12// Last Modified On : Mon Sep 28 15:09:55 2015
     13// Update Count     : 118
    1414//
    1515
    1616extern "C" {
    17         int printf( const char *, ... );
     17        int printf( char *, ... );
    1818}
     19#include "fstream.h"
    1920
    2021context sumable( type T ) {
    2122        const T 0;
    2223        T ?+?( T, T );
     24        T ?+=?( T *, T );
     25        T ++?( T * );
    2326        T ?++( T * );
    24         T ?+=?( T *, T );
    2527};
    2628
    2729forall( type T | sumable( T ) )
    28 T sum( int n, T a[] ) {
    29         T total;                                                                                        // instantiate T, select 0
    30         total = 0;
    31         for ( int i = 0; i < n; i += 1 )
    32                 total = total + a[i];                                                   // select +
     30T sum( unsigned int n, T a[] ) {
     31        T total = 0;                                                                            // instantiate T, select 0
     32        for ( unsigned int i = 0; i < n; i += 1 )
     33                total += a[i];                                                                  // select +
    3334        return total;
    3435}
     
    3637// Required to satisfy sumable as char does not have addition.
    3738const char 0;
    38 char ?+?( char op1, char op2 ) { return op1 + op2; }
    39 char ?++( char *op ) { return *op + 1; }
    40 
    41 const double 0; // TEMPORARY, incorrect use of int 0
     39char ?+?( char op1, char op2 ) { return (int)op1 + op2; } // cast forces integer addition or recursion
     40char ++?( char *op ) { *op += 1; return *op; }
     41char ?++( char *op ) { char temp = *op; *op += 1; return temp; }
    4242
    4343int main() {
    4444        const int low = 5, High = 15, size = High - low;
    45         int si = 0, ai[size];
     45
     46        ofstream *sout = ofstream_stdout();
     47
     48        char s = 0, a[size];
     49        char v = low;
     50        for ( int i = 0; i < size; i += 1, v += 1 ) {
     51                s += v;
     52                a[i] = v;
     53        }
     54        sout << "sum from " << low << " to " << High << " is "
     55                 << (int)sum( size, a ) << ", check " << (int)s << "\n";
     56
     57        int s = 0, a[size];
    4658        int v = low;
    4759        for ( int i = 0; i < size; i += 1, v += 1 ) {
    48                 si += v;
    49                 ai[i] = v;
     60                s += (int)v;
     61                a[i] = (int)v;
    5062        }
    51         printf( "sum from %d to %d is %d, check %d\n",
    52                         low, High, sum( size, ai ), si );
     63        sout << "sum from " << low << " to " << High << " is "
     64                 << sum( size, (int *)a ) << ", check " << (int)s << "\n";
    5365
    54 //      char ci[size];
    55 //      char c = sum( size, ci );
    56 //      float fi[size];
    57 //      float f = sum( size, fi );
    58 
    59         double sd = 0.0, ad[size];
     66        double s = 0.0, a[size];
    6067        double v = low / 10.0;
    6168        for ( int i = 0; i < size; i += 1, v += 0.1 ) {
    62                 sd += v;
    63                 ad[i] = v;
     69                s += (double)v;
     70                a[i] = (double)v;
    6471        }
    65         printf( "sum from %g to %g is %g, check %g\n",
    66                         low / 10.0, High / 10.0, sum( size, ad ), sd );
     72        printf( "%g\n", sum( size, (double *)a ) );
     73//      sout << "sum from " << low / 10.0 << " to " << High / 10.0 << " is "
     74//               << sum( size, (double *)a ) << ", check " << (double)s << "\n";
     75
     76        float s = 0.0, a[size];
     77        float v = low / 10.0;
     78        for ( int i = 0; i < size; i += 1, v += 0.1f ) {
     79                s += (float)v;
     80                a[i] = (float)v;
     81        }
     82        printf( "%g\n", sum( size, (float *)a ) );
     83//      sout << "sum from " << low / 10.0 << " to " << High / 10.0 << " is "
     84//               << sum( size, (float *)a ) << ", check " << (float)s << "\n";
    6785}
    6886
    6987// Local Variables: //
    7088// tab-width: 4 //
    71 // compile-command: "cfa sum.c" //
     89// compile-command: "cfa sum.c fstream.o iostream.o" //
    7290// End: //
Note: See TracChangeset for help on using the changeset viewer.