Changeset 8f60f0b for src/Parser/lex.cc


Ignore:
Timestamp:
Dec 16, 2016, 12:42:02 PM (7 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
da6dec23
Parents:
43385ca
Message:

add support for ttype in the parser

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/lex.cc

    r43385ca r8f60f0b  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 185
    385 #define YY_END_OF_BUFFER 186
     384#define YY_NUM_RULES 186
     385#define YY_END_OF_BUFFER 187
    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[905] =
     393static yyconst flex_int16_t yy_accept[909] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  120,  120,  123,  123,
    396       186,  184,    7,    9,    8,  143,  122,  105,  148,  151,
    397       119,  130,  131,  146,  144,  134,  145,  137,  147,  110,
    398       111,  112,  135,  136,  153,  155,  154,  156,  184,  105,
    399       128,  184,  129,  149,  105,  107,  105,  105,  105,  105,
    400       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
    401       105,  105,  105,  132,  152,  133,  150,    7,  184,    4,
    402         4,  185,  108,  185,  109,  120,  121,  127,  123,  124,
    403         7,    9,    0,    8,  160,  179,  105,    0,  172,  142,
    404       165,  173,  170,  157,  168,  158,  169,  167,    0,  116,
    405 
    406         3,    0,  171,  115,  113,    0,    0,  113,  113,    0,
    407         0,  113,  112,  112,  112,    0,  112,  140,  141,  139,
    408       161,  163,  159,  164,  162,    0,    0,    0,    0,    0,
     395        0,    0,    0,    0,    0,    0,  121,  121,  124,  124,
     396      187,  185,    7,    9,    8,  144,  123,  106,  149,  152,
     397      120,  131,  132,  147,  145,  135,  146,  138,  148,  111,
     398      112,  113,  136,  137,  154,  156,  155,  157,  185,  106,
     399      129,  185,  130,  150,  106,  108,  106,  106,  106,  106,
     400      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     401      106,  106,  106,  133,  153,  134,  151,    7,  185,    4,
     402        4,  186,  109,  186,  110,  121,  122,  128,  124,  125,
     403        7,    9,    0,    8,  161,  180,  106,    0,  173,  143,
     404      166,  174,  171,  158,  169,  159,  170,  168,    0,  117,
     405
     406        3,    0,  172,  116,  114,    0,    0,  114,  114,    0,
     407        0,  114,  113,  113,  113,    0,  113,  141,  142,  140,
     408      162,  164,  160,  165,  163,    0,    0,    0,    0,    0,
    409409        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    410       106,  178,    0,  122,  119,  105,    0,    0,  175,    0,
    411       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
    412       105,  105,  105,  105,  105,  105,  105,   38,  105,  105,
    413       105,  105,  105,  105,  105,  105,  105,  105,   57,  105,
    414       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
    415       105,  105,  105,  105,  105,  105,  105,  174,  166,    7,
    416 
    417         0,    0,    0,    2,    0,    5,  108,    0,    0,    0,
    418       120,    0,  126,  125,  125,    0,    0,    0,  123,    0,
     410      107,  179,    0,  123,  120,  106,    0,    0,  176,    0,
     411      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     412      106,  106,  106,  106,  106,  106,  106,   38,  106,  106,
     413      106,  106,  106,  106,  106,  106,  106,  106,   57,  106,
     414      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     415      106,  106,  106,  106,  106,  106,  106,  106,  175,  167,
     416
     417        7,    0,    0,    0,    2,    0,    5,  109,    0,    0,
     418        0,  121,    0,  127,  126,  126,    0,    0,    0,  124,
    419419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,    0,    0,    0,  138,  116,  117,    0,  117,  117,
    421         0,    0,    6,  117,  113,    0,    0,    0,  117,    0,
    422       113,  113,  113,  113,    0,  114,    0,    0,  112,  112,
    423       112,  112,    0,  176,  177,    0,  182,  180,    0,    0,
    424         0,  106,    0,    0,    0,    0,    0,    0,    0,    0,
    425       105,   17,  105,  105,  105,  105,  105,  105,  105,  105,
    426       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
    427 
    428        14,  105,  105,  105,  105,  105,  105,  105,  105,  105,
    429       105,  105,  105,  105,  105,  105,  105,  105,  105,   51,
    430       105,  105,  105,   64,  105,  105,  105,  105,  105,  105,
    431       105,  105,  105,  105,  105,  105,  105,  105,  105,   91,
    432       105,  105,  105,  105,  105,  105,  105,  105,    0,    0,
    433         0,    0,    0,    0,    0,    0,  125,    0,    0,    0,
    434         0,    0,  125,    0,    0,  183,    0,    0,    0,    0,
    435         0,    0,    0,  117,    0,  117,    0,  117,    0,  117,
    436         0,    0,  117,    0,  113,  113,    0,    0,  114,  114,
    437         0,  114,    0,  114,  112,  112,    0,    0,    0,    0,
    438 
    439         0,    0,    0,    0,    0,    0,  181,  105,  105,  105,
    440       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
    441       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
    442        21,  105,   24,  105,   27,  105,  105,  105,  105,  105,
    443       105,  105,   41,  105,   43,  105,  105,  105,  105,  105,
    444       105,  105,   56,  105,   67,  105,  105,  105,  105,  105,
    445       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
    446       105,  105,   99,  105,  105,  105,    0,    0,    0,    0,
     420        0,    0,    0,    0,    0,  139,  117,  118,    0,  118,
     421      118,    0,    0,    6,  118,  114,    0,    0,    0,  118,
     422        0,  114,  114,  114,  114,    0,  115,    0,    0,  113,
     423      113,  113,  113,    0,  177,  178,    0,  183,  181,    0,
     424        0,    0,  107,    0,    0,    0,    0,    0,    0,    0,
     425        0,  106,   17,  106,  106,  106,  106,  106,  106,  106,
     426      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     427
     428      106,   14,  106,  106,  106,  106,  106,  106,  106,  106,
     429      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     430       51,  106,  106,  106,   64,  106,  106,  106,  106,  106,
     431      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     432       91,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     433        0,    0,    0,    0,    0,    0,    0,    0,  126,    0,
     434        0,    0,    0,    0,  126,    0,    0,  184,    0,    0,
     435        0,    0,    0,    0,    0,  118,    0,  118,    0,  118,
     436        0,  118,    0,    0,  118,    0,  114,  114,    0,    0,
     437      115,  115,    0,  115,    0,  115,  113,  113,    0,    0,
     438
     439        0,    0,    0,    0,    0,    0,    0,    0,  182,  106,
     440      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     441      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     442      106,  106,   21,  106,   24,  106,   27,  106,  106,  106,
     443      106,  106,  106,  106,   41,  106,   43,  106,  106,  106,
     444      106,  106,  106,  106,   56,  106,   67,  106,  106,  106,
     445      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     446      106,  106,  106,  106,  106,  100,  106,  106,  106,    0,
    447447        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    448       125,    0,    0,    0,    0,    0,  117,    0,    0,    0,
    449 
    450         0,    0,    0,    0,  114,  114,    0,  118,    0,  114,
    451       114,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    452         0,    0,    0,    0,  105,  105,   22,  105,  105,  105,
    453       105,  105,  105,  105,   15,  105,  105,  105,  105,  105,
    454       105,  105,  105,  105,  105,  105,  105,  105,  105,   23,
    455        25,  105,   32,  105,  105,  105,  105,   40,  105,  105,
    456       105,  105,   49,  105,  105,   54,  105,  105,   71,   72,
    457       105,  105,  105,   78,  105,  105,  105,  105,  105,   88,
    458        90,  105,  105,   96,  105,  105,  103,  105,    0,    0,
     448        0,    0,    0,  126,    0,    0,    0,    0,    0,  118,
     449
     450        0,    0,    0,    0,    0,    0,    0,  115,  115,    0,
     451      119,    0,  115,  115,    0,    0,    0,    0,    0,    0,
     452        0,    0,    0,    0,    0,    0,    0,  106,  106,   22,
     453      106,  106,  106,  106,  106,  106,  106,   15,  106,  106,
     454      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     455      106,  106,   23,   25,  106,   32,  106,  106,  106,  106,
     456       40,  106,  106,  106,  106,   49,  106,  106,   54,  106,
     457      106,   71,   72,  106,  106,  106,   78,  106,  106,  106,
     458      106,  106,   88,   90,   92,  106,  106,   97,  106,  106,
     459      104,  106,    0,    0,    0,    0,    0,    0,    0,    0,
     460
    459461        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    460 
    461         0,    0,    0,    0,    0,    0,    0,  118,    0,    0,
    462       114,  118,  118,  118,  118,    0,  114,    0,    0,    0,
    463         0,    0,    0,    0,    0,    0,    0,  105,    0,  105,
    464       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
    465       105,  105,  105,  105,  105,   59,  105,  105,  105,  105,
    466       105,  105,  105,  105,   28,  105,  105,  105,   39,   42,
    467        45,  105,  105,   52,  105,   61,   68,  105,  105,   77,
    468        79,   82,   83,   85,   86,  105,  105,   93,  105,  105,
    469       104,    0,    1,    0,    0,    0,    0,    0,    0,  108,
    470         0,    0,    0,  125,    0,    0,    0,    0,  118,    0,
    471 
    472       118,  118,    0,    0,    0,    0,    0,    0,    0,    0,
    473         0,  105,  105,   18,  105,  105,  105,  105,  105,  105,
    474       105,   16,  105,  105,  105,   33,  105,  105,  105,  105,
    475       105,  105,  105,  105,  105,  105,  105,  105,   36,   37,
    476       105,   48,   53,  105,  105,  105,   92,  105,  105,    0,
     462        0,  119,    0,    0,  115,  119,  119,  119,  119,    0,
     463      115,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     464        0,  106,    0,  106,  106,  106,  106,  106,  106,  106,
     465      106,  106,  106,  106,  106,  106,  106,  106,  106,   59,
     466      106,  106,  106,  106,  106,  106,  106,  106,   28,  106,
     467      106,  106,   39,   42,   45,  106,  106,   52,  106,   61,
     468       68,  106,  106,   77,   79,   82,   83,   85,   86,  106,
     469      106,   94,  106,  106,  105,    0,    1,    0,    0,    0,
     470        0,    0,    0,  109,    0,    0,    0,  126,    0,    0,
     471
     472        0,    0,  119,    0,  119,  119,    0,    0,    0,    0,
     473        0,    0,    0,    0,    0,  106,  106,   18,  106,  106,
     474      106,  106,  106,  106,  106,   16,  106,  106,  106,   33,
     475      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     476      106,  106,   36,   37,  106,   48,   53,  106,  106,  106,
     477       93,  106,  106,    0,    0,    0,    0,    0,    0,    0,
     478        0,    0,    0,    0,    0,    0,   10,   11,   29,   55,
     479      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
     480      106,   60,   62,   65,  106,  106,   80,   95,  106,  106,
     481       35,  106,   47,   73,   74,  106,   98,  101,    0,    0,
     482
    477483        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    478         0,    0,   10,   11,   29,   55,  105,  105,  105,  105,
    479       105,  105,  105,  105,  105,  105,  105,   60,   62,   65,
    480       105,  105,   80,   94,  105,  105,   35,  105,   47,   73,
    481        74,  105,   97,  100,    0,    0,    0,    0,    0,    0,
    482 
    483         0,    0,    0,    0,    0,    0,  105,   69,  105,  105,
    484        12,  105,  105,   30,   34,  105,  105,  105,   66,  105,
    485       105,  105,  105,  105,  105,  105,    0,    0,    0,    0,
    486         0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
    487       105,  105,  105,  105,  105,  105,  105,   50,   63,   75,
    488        81,   95,  101,  105,  105,  105,    0,    0,    0,    0,
    489         0,    0,    0,    0,  105,  105,   13,   19,  105,  105,
    490        31,  105,  105,  105,   26,   46,   89,    0,    0,  105,
    491       105,  105,  105,  105,  105,   76,  102,  105,   87,   20,
    492       105,  105,   44,   84,  105,  105,  105,  105,  105,  105,
    493 
    494       105,   98,   70,    0
     484      106,   69,  106,  106,   12,  106,  106,   30,   34,  106,
     485      106,  106,   66,  106,  106,  106,  106,  106,  106,  106,
     486        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     487        0,    0,    0,   58,  106,  106,  106,  106,  106,  106,
     488      106,   50,   63,   75,   81,   96,  102,  106,  106,  106,
     489        0,    0,    0,    0,    0,    0,    0,    0,  106,  106,
     490       13,   19,  106,  106,   31,  106,  106,  106,   26,   46,
     491       89,    0,    0,  106,  106,  106,  106,  106,  106,   76,
     492      103,  106,   87,   20,  106,  106,   44,   84,  106,  106,
     493
     494      106,  106,  106,  106,  106,   99,   70,    0
    495495    } ;
    496496
     
    540540    } ;
    541541
    542 static yyconst flex_int16_t yy_base[1079] =
     542static yyconst flex_int16_t yy_base[1083] =
    543543    {   0,
    544         0,   84, 2323, 2322,   94,    0,  177,  178,  179,  180,
    545      2338, 2866,  191, 2866,  197,   55, 2866, 2283,   60,  173,
    546      2866, 2866, 2866,   56,  188, 2866,  191,  189,  204,  216,
    547       275,    0, 2300, 2866,  216, 2298,  152,  344,  155,  220,
    548      2866,  159, 2866,  217,  226, 2866,  185,  154,  212,  251,
    549       237,  270,  235,  257,  241,  279,  193,  305,  314,  333,
    550       238,  228,  227, 2866,  225, 2866, 2295,  402,  390, 2866,
    551      2306, 2866, 2273,  235, 2866,    0, 2866,  426,    0, 2866,
    552       417, 2866,  439,  451, 2866,  498, 2270,  264, 2866, 2866,
    553      2866, 2866, 2866, 2286, 2866, 2285, 2866, 2866, 2297,  559,
    554 
    555      2866, 2313, 2866,  438,  444,  511,  534,  289,  253,  197,
    556       380,  305,    0,  319,  280,  198,  322, 2866, 2866, 2866,
    557      2281, 2866, 2866, 2866, 2278, 2277,  218,  312, 2292,  350,
    558       459,  368,  398,  440,  405,  448, 2272,  441, 2219,  458,
    559      2247, 2866,  335, 2866, 2866,  321, 2243, 2242, 2866, 2214,
    560       444,  297,  433,  372,  425,  454,  434,  461,  570,  455,
    561       468,  385,  474,  475,  494,  492,  489,  464,  488,  491,
    562       513,  503,  430,  521,  517,  519,  516,  522, 2240,  526,
    563       523,  276,  460,  524,  542,  555,  554,  561,  325,  558,
    564       584,  552,  600,  586,  593,  588,  595, 2866, 2866,  667,
    565 
    566       655, 2287,  682, 2866,  688, 2866, 2236,  590, 2232, 2230,
    567         0,  648, 2866, 2866,  675, 2227, 2224, 2223,    0, 2246,
    568       578,  631,  654,  685,  698,  660,  689,  670,  692, 2242,
    569       695,  701, 2200, 2198, 2866,    0,  693,  720,  685,  711,
    570      2197, 2247, 2866,  737,  745,  666,  757,  763,  797,  780,
    571       599, 2866, 2203, 2178,    0,  805, 2224,  806,  617, 2866,
    572      2199, 2172,  819, 2866, 2866, 2203, 2866, 2866,  707,  722,
    573      2182, 2182,  699, 2177, 2174, 2171,    0, 2170,    0, 2141,
    574       743,  724,  739,  689,  741,  720,  623,  759,  762,  804,
    575       681,  795,  749,  746,  799,  801,  765,  784,  803,  811,
    576 
    577      2170,  814,  818,  827,  831,  817,  821,  833,  835,  841,
    578       842,  834,  843,  844,  845,  847,  849,  857,  858,  860,
    579       851,  859,  866, 2167,  867,  868,  869,  871,  873,  874,
    580       763,  875,  876,  880,  881,  884,  887,  888,  885, 2164,
    581       891,  936,  894,  897,  905,  899,  901,  902,  965,  961,
    582      2160, 2159, 2157,    0, 2154,    0,  952,  956, 2153,    0,
    583      2152,    0, 2150,    0, 2169, 2866,  951,  952, 2148, 2145,
    584         0, 2143,    0, 2866,  967,  986,  978, 2866,  992, 1032,
    585      2140, 1008, 1054, 2136, 2866, 2866,  915,  951, 1040,  993,
    586      1079,  956, 1071,  994, 2866, 2866, 2132, 2130, 2128,    0,
    587 
    588      2125,    0, 2123,    0, 2121,    0, 2866,  935,  969,  973,
    589       968, 1012,  975, 1056,  992, 1058,  997, 1032,  993, 1000,
    590      1060, 1061, 1066, 1070, 1073, 1030, 1071, 1069, 1072, 1078,
    591      2121,  700, 2118, 1085, 2117, 1079, 1081, 1089, 1087, 1098,
    592      1096, 1099, 2116, 1101, 2114, 1105, 1106, 1107, 1109, 1112,
    593      1113, 1114, 2111, 1115, 2108, 1117, 1119, 1120, 1118, 1124,
    594      1126, 1121, 1136, 1130, 1134, 1135, 1149, 1137, 1138, 1150,
    595      1152, 1153, 2107, 1151, 1154, 1167, 1205, 2103,    0, 2101,
    596         0, 2098,    0, 2095,    0, 1204, 2094,    0, 2093,    0,
    597      2091, 2088, 2085,    0, 2084,    0, 1208, 2083, 1214, 1230,
    598 
    599      1216, 1255, 1221, 1172, 1169, 2866, 1271, 1289, 1282, 2093,
    600      2066, 2075, 2074,    0, 2073,    0, 2071,    0, 2068,    0,
    601      2065,    0, 2064,    0, 1190, 1159, 2066, 1193, 1195, 1197,
    602      1212, 1237, 1231, 1265, 1248, 1266, 1267, 1213, 1268, 1269,
    603      1283, 1270, 1271,  234, 1285, 1273, 1274, 1287, 1293, 2064,
    604      1306, 1301, 2061, 1290, 1303, 1305, 1308, 2058, 1312, 1309,
    605      1311, 1313, 2057, 1314, 1319, 2056, 1316, 1322, 2054, 2051,
    606      1315, 1327, 1330, 2050, 1333, 1332, 1336, 1334, 1338, 1345,
    607      2049, 1335, 1348, 2047, 1346, 1349, 2044, 1351, 2093, 2039,
    608         0, 2037,    0, 2004,    0, 2002,    0, 2001,    0, 1998,
    609 
    610         0, 1995,    0, 1994,    0, 1394, 1404, 1428, 1415, 1993,
    611      2866, 1421, 1370, 1391, 1419, 1991, 2866, 1988,    0, 1985,
    612         0, 1984,    0, 1983,    0,    0,    0, 1984,    0, 1352,
    613      1406, 1408, 1359, 1354, 1409, 1415, 1412, 1411, 1423, 1433,
    614      1425, 1430, 1435, 1437, 1439, 1448, 1442, 1449, 1440, 1444,
    615      1453, 1450, 1452, 1456, 1981, 1458, 1460, 1463, 1980, 1979,
    616      1977, 1466, 1467, 1974, 1470, 1973, 1972, 1469, 1473, 1970,
    617      1963, 1961, 1960, 1957, 1953, 1475, 1479, 1949, 1476, 1477,
    618      1945, 1992, 2866, 1938,    0, 1937,    0,    0,    0, 1938,
    619         0,    0,    0, 2866,    0,    0,    0,    0, 1525, 1932,
    620 
    621      2866, 2866, 1531, 1931,    0, 1930,    0,    0,    0,    0,
    622      1928, 1488, 1483, 1928, 1491, 1507, 1518, 1490, 1519, 1521,
    623      1508, 1927, 1525, 1529, 1527, 1541, 1530, 1384, 1543, 1539,
    624      1558, 1547, 1549, 1512, 1545, 1552, 1553, 1554, 1926, 1924,
    625      1557, 1921, 1920, 1556, 1537, 1560, 1919, 1561, 1564,    0,
    626         0,    0, 1914, 1911, 1910, 1612,    0, 1909, 1907, 1904,
    627      1903, 1902, 1903, 1900, 1899, 1898, 1568, 1572, 1566, 1577,
    628      1590, 1570, 1578, 1579, 1591, 1596, 1625, 1896, 1598, 1893,
    629      1599, 1603, 1604, 1608, 1606, 1612, 1892, 1613, 1891, 1889,
    630      1886, 1614, 1885, 1884, 1879, 1872, 1870, 1869, 1866, 1865,
    631 
    632      1864, 1862, 1845, 1836, 1835, 1832, 1616, 1828, 1617, 1622,
    633      1620, 1619, 1624, 1626, 1825, 1628, 1644, 1630, 1818, 1631,
    634      1639, 1645, 1647, 1634, 1649, 1651, 1813, 1812, 1791, 1790,
    635      1789, 1782, 1780, 1779, 1737, 1735, 1733, 1732, 1730, 1732,
    636      1652, 1654, 1655, 1657, 1659, 1662, 1663, 1731, 1729, 1668,
    637      1727, 1724, 1669, 1670, 1664, 1675, 1719, 1718, 1671, 1629,
    638      1564, 1468, 1350, 1269, 1678, 1681, 1239, 1682, 1688, 1689,
    639      1238, 1690, 1692, 1696, 1206, 1171, 1157, 1035, 1031, 1691,
    640      1697, 1700, 1704, 1702, 1706,  998,  560, 1701,  527,  395,
    641      1707, 1710,  357,  300, 1708, 1713, 1715, 1718, 1716, 1719,
    642 
    643      1720,  233,  137, 2866, 1794, 1807, 1820, 1830, 1840, 1853,
    644      1863, 1876, 1889, 1902, 1910, 1920, 1927, 1934, 1941, 1948,
    645      1955, 1962, 1969, 1976, 1983, 1990, 1994, 2002, 2008, 2015,
    646      2022, 2029, 2036, 2039, 2046, 2052, 2065, 2078, 2085, 2092,
    647      2099, 2106, 2109, 2116, 2119, 2126, 2129, 2136, 2139, 2146,
    648      2149, 2156, 2159, 2166, 2169, 2176, 2184, 2191, 2198, 2205,
    649      2212, 2215, 2222, 2225, 2232, 2235, 2242, 2248, 2261, 2268,
    650      2275, 2278, 2285, 2288, 2295, 2298, 2305, 2308, 2315, 2318,
    651      2325, 2328, 2335, 2342, 2345, 2352, 2355, 2362, 2369, 2376,
    652      2379, 2386, 2389, 2396, 2399, 2406, 2409, 2416, 2419, 2426,
    653 
    654      2432, 2445, 2452, 2459, 2462, 2469, 2472, 2479, 2482, 2489,
    655      2492, 2499, 2502, 2509, 2512, 2519, 2522, 2529, 2532, 2539,
    656      2546, 2549, 2556, 2559, 2566, 2569, 2576, 2579, 2582, 2588,
    657      2595, 2604, 2611, 2618, 2621, 2628, 2631, 2634, 2640, 2647,
    658      2650, 2653, 2656, 2659, 2662, 2665, 2668, 2675, 2678, 2685,
    659      2688, 2691, 2694, 2697, 2707, 2714, 2717, 2720, 2723, 2730,
    660      2737, 2744, 2747, 2754, 2761, 2768, 2775, 2782, 2789, 2796,
    661      2803, 2810, 2817, 2824, 2831, 2838, 2845, 2852
     544        0,   84, 2330, 2327,   94,    0,  177,  178,  179,  180,
     545     2341, 2877,  191, 2877,  197,   55, 2877, 2287,   60,  173,
     546     2877, 2877, 2877,   56,  188, 2877,  191,  189,  204,  216,
     547      275,    0, 2306, 2877,  216, 2305,  152,  344,  155,  220,
     548     2877,  159, 2877,  217,  226, 2877,  185,  154,  212,  251,
     549      237,  270,  235,  257,  241,  279,  193,  305,  314,  351,
     550      238,  228,  227, 2877,  225, 2877, 2300,  406,  412, 2877,
     551     2309, 2877, 2277,  235, 2877,    0, 2877,  439,    0, 2877,
     552      426, 2877,  452,  464, 2877,  511, 2276,  264, 2877, 2877,
     553     2877, 2877, 2877, 2293, 2877, 2290, 2877, 2877, 2300,  572,
     554
     555     2877, 2317, 2877,  451,  457,  524,  547,  298,  253,  197,
     556      312,  279,    0,  342,  325,  198,  322, 2877, 2877, 2877,
     557     2287, 2877, 2877, 2877, 2285, 2282,  218,  312, 2295,  350,
     558      363,  368,  369,  391,  411,  417, 2276,  452, 2225,  453,
     559     2254, 2877,  274, 2877, 2877,  438, 2248, 2245, 2877, 2218,
     560      435,  282,  353,  277,  391,  419,  442,  320,  583,  451,
     561      446,  443,  479,  469,  364,  472,  481,  454,  458,  484,
     562      503,  493,  352,  506,  486,  453,  507,  509, 2246,  539,
     563      532,  524,  516,  528,  556,  530,  540,  552,  553,  564,
     564      574,  538,  576,  613,  573,  597,  602,  571, 2877, 2877,
     565
     566      668,  674, 2294,  680, 2877,  686, 2877, 2241,  603, 2235,
     567     2234,    0,  683, 2877, 2877,  692, 2233, 2231, 2211,    0,
     568     2233,  556,  627,  630,  662,  699,  688,  692,  693,  696,
     569     2230,  700,  703, 2205, 2202, 2877,    0,  695,  726,  693,
     570      701, 2201, 2253, 2877,  747,  742,  700,  753,  760,  793,
     571      815,  746, 2877, 2210, 2183,    0,  802, 2227,  801,  754,
     572     2877, 2203, 2178,  839, 2877, 2877, 2210, 2877, 2877,  709,
     573      723, 2187, 2185,  755, 2181, 2180, 2178,    0, 2175,    0,
     574     2144,  694,  736,  737,  741,  614,  739,  738,  742,  798,
     575      807,  792,  802,  797,  746,  816,  748,  791,  824,  819,
     576
     577      826, 2174,  827,  830,  831,  440,  834,  838,  836,  843,
     578      847,  849,  841,  850,  861,  853,  862,  851,  863,  865,
     579      872,  864,  873,  874, 2173,  749,  875,  876,  878,  880,
     580      881,  882,  884,  885,  886,  888,  889,  892,  898,  896,
     581     2171,  899,  906,  944,  901,  907,  913,  917,  908,  911,
     582      976,  977, 2165, 2164, 2163,    0, 2161,    0,  964,  968,
     583     2158,    0, 2157,    0, 2156,    0, 2176, 2877,  964,  967,
     584     2153, 2147,    0, 2143,    0, 2877,  979,  998,  990, 2877,
     585     1004, 1044, 2141, 1020, 1066, 2139, 2877, 2877,  963, 1006,
     586     1052, 1005, 1091,  968, 1083, 1006, 2877, 2877, 2136, 2134,
     587
     588     2132,    0, 2129,    0, 2126,    0, 2125,    0, 2877,  931,
     589      981,  985,  928, 1024,  987, 1068,  958, 1070, 1060, 1010,
     590     1005, 1072, 1083, 1022, 1078, 1082, 1088, 1042, 1084, 1081,
     591     1089, 1097, 2127, 1090, 2125, 1095, 2122, 1093, 1091, 1109,
     592     1101, 1111, 1115, 1116, 2119, 1118, 2118, 1119, 1120, 1121,
     593     1123, 1126, 1127, 1128, 2117, 1129, 2115, 1131, 1134, 1135,
     594     1132, 1138, 1140, 1143, 1148, 1149, 1150, 1152, 1155, 1151,
     595     1161, 1164, 1166, 1168, 1169, 2112, 1170, 1172, 1175, 1221,
     596     2106,    0, 2105,    0, 2104,    0, 2102,    0, 1216, 2099,
     597        0, 2096,    0, 2095, 2094, 2092,    0, 2089,    0, 1223,
     598
     599     2086, 1229, 1245, 1231, 1270, 1236, 1186, 1185, 2877, 1286,
     600     1304, 1297, 2097, 2072, 2082, 2079,    0, 2076,    0, 2075,
     601        0, 2074,    0, 2072,    0, 2069,    0, 1190, 1210, 2069,
     602     1191, 1227, 1212, 1230, 1253, 1246, 1254, 1280, 1281, 1282,
     603     1284, 1228, 1287, 1286, 1288, 1285,  234, 1293, 1289, 1304,
     604     1300, 1305, 2068, 1322, 1306, 2067, 1308, 1313, 1318, 1320,
     605     2065, 1323, 1324, 1326, 1327, 2062, 1330, 1331, 2061, 1334,
     606     1335, 2060, 2058, 1337, 1339, 1340, 2055, 1004, 1346, 1347,
     607     1348, 1349, 1364, 2054, 2053, 1351, 1353, 2051, 1350, 1355,
     608     2018, 1362, 2066, 2012,    0, 2009,    0, 2006,    0, 2005,
     609
     610        0, 2004,    0, 2002,    0, 1999,    0, 1996,    0, 1401,
     611     1407, 1435, 1418, 1995, 2877, 1424, 1411, 1421, 1427, 1994,
     612     2877, 1992,    0, 1989,    0, 1988,    0, 1987,    0,    0,
     613        0, 1988,    0, 1412, 1422, 1419, 1387, 1369, 1416, 1433,
     614     1436, 1403, 1446, 1441, 1431, 1432, 1451, 1452, 1455, 1456,
     615     1457, 1486, 1460, 1461, 1462, 1464, 1463, 1467, 1985, 1465,
     616     1468, 1470, 1984, 1983, 1981, 1472, 1466, 1974, 1478, 1972,
     617     1971, 1480, 1484, 1968, 1964, 1960, 1956, 1953, 1952, 1487,
     618     1494, 1951, 1497, 1483, 1949, 1996, 2877, 1942,    0, 1941,
     619        0,    0,    0, 1942,    0,    0,    0, 2877,    0,    0,
     620
     621        0,    0, 1537, 1936, 2877, 2877, 1543, 1935,    0, 1934,
     622        0,    0,    0,    0, 1932, 1499, 1519, 1932, 1500, 1524,
     623     1530, 1501, 1502, 1533, 1537, 1931, 1532, 1541, 1534, 1539,
     624     1544,  599, 1548, 1549, 1579, 1556, 1557, 1560, 1561, 1562,
     625     1563, 1564, 1930, 1928, 1567, 1925, 1924, 1566, 1569, 1572,
     626     1923, 1574, 1578,    0,    0,    0, 1918, 1915, 1914, 1624,
     627        0, 1913, 1911, 1908, 1907, 1906, 1907, 1904, 1903, 1902,
     628     1580, 1588, 1576, 1577, 1601, 1583, 1602, 1589, 1604, 1603,
     629     1636, 1900, 1609, 1897, 1610, 1614, 1617, 1622, 1618, 1623,
     630     1896, 1624, 1895, 1893, 1886, 1626, 1884, 1883, 1877, 1876,
     631
     632     1875, 1873, 1856, 1847, 1846, 1843, 1836, 1833, 1826, 1824,
     633     1628, 1826, 1629, 1630, 1631, 1632, 1635, 1637, 1805, 1639,
     634     1667, 1642, 1804, 1643, 1653, 1658, 1651, 1652, 1659, 1662,
     635     1800, 1793, 1791, 1790, 1748, 1745, 1744, 1742, 1741, 1737,
     636     1735, 1733, 1732, 1734, 1663, 1664, 1666, 1672, 1673, 1674,
     637     1675, 1731, 1689, 1676, 1644, 1522, 1680, 1685, 1686, 1687,
     638     1500, 1411, 1363, 1362, 1260, 1219, 1218, 1047, 1690, 1688,
     639     1046, 1700, 1695, 1701,  924, 1704, 1708, 1709,  839,  794,
     640      759,  702,  636, 1682, 1710, 1713, 1714, 1715, 1717,  638,
     641      536, 1719,  488,  441, 1721, 1722,  408,  281, 1723, 1726,
     642
     643     1727, 1729, 1728, 1730, 1733,  233,  137, 2877, 1805, 1818,
     644     1831, 1841, 1851, 1864, 1874, 1887, 1900, 1913, 1921, 1931,
     645     1938, 1945, 1952, 1959, 1966, 1973, 1980, 1987, 1994, 2001,
     646     2005, 2013, 2019, 2026, 2033, 2040, 2047, 2050, 2057, 2063,
     647     2076, 2089, 2096, 2103, 2110, 2117, 2120, 2127, 2130, 2137,
     648     2140, 2147, 2150, 2157, 2160, 2167, 2170, 2177, 2180, 2187,
     649     2195, 2202, 2209, 2216, 2223, 2226, 2233, 2236, 2243, 2246,
     650     2253, 2259, 2272, 2279, 2286, 2289, 2296, 2299, 2306, 2309,
     651     2316, 2319, 2326, 2329, 2336, 2339, 2346, 2353, 2356, 2363,
     652     2366, 2373, 2380, 2387, 2390, 2397, 2400, 2407, 2410, 2417,
     653
     654     2420, 2427, 2430, 2437, 2443, 2456, 2463, 2470, 2473, 2480,
     655     2483, 2490, 2493, 2500, 2503, 2510, 2513, 2520, 2523, 2530,
     656     2533, 2540, 2543, 2550, 2557, 2560, 2567, 2570, 2577, 2580,
     657     2587, 2590, 2593, 2599, 2606, 2615, 2622, 2629, 2632, 2639,
     658     2642, 2645, 2651, 2658, 2661, 2664, 2667, 2670, 2673, 2676,
     659     2679, 2686, 2689, 2696, 2699, 2702, 2705, 2708, 2718, 2725,
     660     2728, 2731, 2734, 2741, 2748, 2755, 2758, 2765, 2772, 2779,
     661     2786, 2793, 2800, 2807, 2814, 2821, 2828, 2835, 2842, 2849,
     662     2856, 2863
    662663    } ;
    663664
    664 static yyconst flex_int16_t yy_def[1079] =
     665static yyconst flex_int16_t yy_def[1083] =
    665666    {   0,
    666       904,    1,  905,  905,  904,    5,  906,  906,  907,  907,
    667       904,  904,  904,  904,  904,  904,  904,  908,  904,  904,
    668       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    669       904,   31,  904,  904,  904,  904,  904,  904,  909,  908,
    670       904,  904,  904,  904,  908,  904,  908,  908,  908,  908,
     667      908,    1,  909,  909,  908,    5,  910,  910,  911,  911,
     668      908,  908,  908,  908,  908,  908,  908,  912,  908,  908,
    671669      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
    672       908,  908,  908,  904,  904,  904,  904,  904,  910,  904,
    673       904,  904,  911,  904,  904,  912,  904,  904,  913,  904,
    674       904,  904,  904,  904,  904,  904,  908,  904,  904,  904,
    675       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    676 
    677       904,  914,  904,  904,   30,  904,  904,  904,  904,  915,
    678        30,  904,   31,  904,  904,   31,  904,  904,  904,  904,
    679       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    680       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    681       916,  904,  904,  904,  904,  908,  917,  918,  904,  904,
     670      908,   31,  908,  908,  908,  908,  908,  908,  913,  912,
     671      908,  908,  908,  908,  912,  908,  912,  912,  912,  912,
     672      912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
     673      912,  912,  912,  908,  908,  908,  908,  908,  914,  908,
     674      908,  908,  915,  908,  908,  916,  908,  908,  917,  908,
     675      908,  908,  908,  908,  908,  908,  912,  908,  908,  908,
     676      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     677
     678      908,  918,  908,  908,   30,  908,  908,  908,  908,  919,
     679       30,  908,   31,  908,  908,   31,  908,  908,  908,  908,
     680      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     681      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     682      920,  908,  908,  908,  908,  912,  921,  922,  908,  908,
     683      912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
     684      912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
     685      912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
     686      912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
     687      912,  912,  912,  912,  912,  912,  912,  912,  908,  908,
     688
     689      908,  914,  914,  914,  908,  914,  908,  915,  908,  923,
     690      924,  916,  908,  908,  908,  908,  925,  926,  927,  917,
     691      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     692      908,  908,  908,  928,  929,  908,  100,  908,  908,  908,
     693      908,  100,  918,  908,  100,  111,  246,  908,  908,  908,
     694      908,  908,  908,  908,  908,  930,  931,  932,  908,  908,
     695      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     696      908,  908,  933,  908,  934,  935,  936,  937,  938,  939,
     697      908,  940,  940,  940,  940,  940,  940,  940,  940,  940,
     698      940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
     699
     700      940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
     701      940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
     702      940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
     703      940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
     704      940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
     705      941,  942,  943,  944,  945,  946,  947,  948,  908,  908,
     706      949,  950,  951,  952,  953,  954,  908,  908,  908,  908,
     707      908,  955,  956,  957,  958,  908,  908,  908,  908,  908,
     708      908,  908,  382,  908,  378,  385,  908,  908,  959,  960,
     709      961,  908,  908,  908,  961,  908,  908,  908,  962,  963,
     710
     711      964,  965,  966,  967,  968,  969,  970,  971,  908,  972,
     712      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     713      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     714      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     715      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     716      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     717      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     718      972,  972,  972,  972,  972,  972,  972,  972,  972,  973,
     719      974,  975,  976,  977,  978,  979,  980,  981,  908,  982,
     720      983,  984,  985,  986,  986,  987,  988,  989,  990,  908,
     721
     722      500,  908,  908,  991,  908,  991,  908,  908,  908,  908,
     723      908,  908,  908,  908,  992,  993,  994,  995,  996,  997,
     724      998,  999, 1000, 1001, 1002, 1003, 1004, 1005, 1005, 1005,
     725     1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
     726     1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
     727     1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
     728     1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
     729     1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
     730     1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
     731     1005, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013,
     732
     733     1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,  908,
     734      908,  908,  908, 1023,  908,  612,  908,  908,  908,  616,
     735      908, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032,
     736     1033, 1034, 1035, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     737     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     738     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     739     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     740     1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
     741     1034, 1034, 1034, 1034, 1034, 1036,  908, 1037, 1038, 1039,
     742     1040, 1041, 1042, 1043, 1044, 1045, 1046,  908, 1047, 1048,
     743
     744     1049, 1050,  908,  703,  908,  908,  908, 1051, 1052, 1053,
     745     1054, 1055, 1056, 1057, 1058, 1059, 1059, 1059, 1059, 1059,
     746     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     747     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     748     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     749     1059, 1059, 1059, 1060, 1061, 1062, 1063, 1064, 1065,  908,
     750     1066, 1051, 1053, 1067, 1068, 1058, 1059, 1059, 1059, 1059,
     751     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     752     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     753     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1070,
     754
     755     1063, 1071, 1064, 1072, 1065, 1073, 1074, 1067, 1075, 1068,
     756     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     757     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     758     1076, 1069, 1077, 1070, 1078, 1071, 1079, 1072, 1080, 1073,
     759     1081, 1074, 1075, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     760     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     761     1082, 1076, 1077, 1078, 1079, 1053, 1080, 1081, 1059, 1059,
     762     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     763     1059, 1082, 1053, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     764     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
     765
     766     1059, 1059, 1059, 1059, 1059, 1059, 1059,    0,  908,  908,
    682767      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
    683768      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
    684769      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
    685770      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
    686       908,  908,  908,  908,  908,  908,  908,  904,  904,  904,
    687 
    688       910,  910,  910,  904,  910,  904,  911,  904,  919,  920,
    689       912,  904,  904,  904,  904,  921,  922,  923,  913,  904,
    690       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    691       904,  904,  924,  925,  904,  100,  904,  904,  904,  904,
    692       100,  914,  904,  100,  111,  245,  904,  904,  904,  904,
    693       904,  904,  904,  904,  926,  927,  928,  904,  904,  904,
    694       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    695       904,  929,  904,  930,  931,  932,  933,  934,  935,  904,
    696       936,  936,  936,  936,  936,  936,  936,  936,  936,  936,
    697       936,  936,  936,  936,  936,  936,  936,  936,  936,  936,
    698 
    699       936,  936,  936,  936,  936,  936,  936,  936,  936,  936,
    700       936,  936,  936,  936,  936,  936,  936,  936,  936,  936,
    701       936,  936,  936,  936,  936,  936,  936,  936,  936,  936,
    702       936,  936,  936,  936,  936,  936,  936,  936,  936,  936,
    703       936,  936,  936,  936,  936,  936,  936,  936,  937,  938,
    704       939,  940,  941,  942,  943,  944,  904,  904,  945,  946,
    705       947,  948,  949,  950,  904,  904,  904,  904,  904,  951,
    706       952,  953,  954,  904,  904,  904,  904,  904,  904,  904,
    707       380,  904,  376,  383,  904,  904,  955,  956,  957,  904,
    708       904,  904,  957,  904,  904,  904,  958,  959,  960,  961,
    709 
    710       962,  963,  964,  965,  966,  967,  904,  968,  968,  968,
    711       968,  968,  968,  968,  968,  968,  968,  968,  968,  968,
    712       968,  968,  968,  968,  968,  968,  968,  968,  968,  968,
    713       968,  968,  968,  968,  968,  968,  968,  968,  968,  968,
    714       968,  968,  968,  968,  968,  968,  968,  968,  968,  968,
    715       968,  968,  968,  968,  968,  968,  968,  968,  968,  968,
    716       968,  968,  968,  968,  968,  968,  968,  968,  968,  968,
    717       968,  968,  968,  968,  968,  968,  969,  970,  971,  972,
    718       973,  974,  975,  976,  977,  904,  978,  979,  980,  981,
    719       982,  982,  983,  984,  985,  986,  904,  497,  904,  904,
    720 
    721       987,  904,  987,  904,  904,  904,  904,  904,  904,  904,
    722       904,  988,  989,  990,  991,  992,  993,  994,  995,  996,
    723       997,  998,  999, 1000, 1001, 1001, 1001, 1001, 1001, 1001,
    724      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    725      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    726      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    727      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    728      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    729      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1003,
    730      1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013,
    731 
    732      1014, 1015, 1016, 1017, 1018,  904,  904,  904,  904, 1019,
    733       904,  608,  904,  904,  904,  612,  904, 1020, 1021, 1022,
    734      1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1030,
    735      1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
    736      1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
    737      1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
    738      1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
    739      1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
    740      1030, 1032,  904, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
    741      1040, 1041, 1042,  904, 1043, 1044, 1045, 1046,  904,  699,
    742 
    743       904,  904,  904, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
    744      1054, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    745      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    746      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    747      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1056,
    748      1057, 1058, 1059, 1060, 1061,  904, 1062, 1047, 1049, 1063,
    749      1064, 1054, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    750      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    751      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    752      1055, 1055, 1055, 1055, 1065, 1066, 1059, 1067, 1060, 1068,
    753 
    754      1061, 1069, 1070, 1063, 1071, 1064, 1055, 1055, 1055, 1055,
    755      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    756      1055, 1055, 1055, 1055, 1055, 1055, 1072, 1065, 1073, 1066,
    757      1074, 1067, 1075, 1068, 1076, 1069, 1077, 1070, 1071, 1055,
    758      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    759      1055, 1055, 1055, 1055, 1055, 1055, 1078, 1072, 1073, 1074,
    760      1075, 1049, 1076, 1077, 1055, 1055, 1055, 1055, 1055, 1055,
    761      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1078, 1049, 1055,
    762      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    763      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    764 
    765      1055, 1055, 1055,    0,  904,  904,  904,  904,  904,  904,
    766       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    767       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    768       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    769       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    770       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    771       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    772       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    773       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    774       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    775 
    776       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    777       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    778       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    779       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    780       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    781       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    782       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    783       904,  904,  904,  904,  904,  904,  904,  904
     771      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     772      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     773      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     774      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     775      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     776
     777      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     778      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     779      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     780      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     781      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     782      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     783      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     784      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     785      908,  908
    784786    } ;
    785787
    786 static yyconst flex_int16_t yy_nxt[2952] =
     788static yyconst flex_int16_t yy_nxt[2963] =
    787789    {   0,
    788790       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    809811
    810812       84,   84,   84,   83,   92,   94,   88,  143,  147,   99,
    811        96,  100,  100,  100,  100,  100,  100,  255,  904,   95,
     813       96,  100,  100,  100,  100,  100,  100,  256,  908,   95,
    812814      101,   86,   97,   98,   86,  102,  162,  119,  144,   78,
    813815       78,   78,   78,  145,  148,  103,  104,   88,  105,  105,
    814       105,  105,  106,  106,  120,   88,  121,  122,  149,  266,
    815       150,  267,  257,  263,  185,  107,  198,  648,  160,  108,
     816      105,  105,  106,  106,  120,   88,  121,  122,  149,  267,
     817      150,  268,  258,  264,  185,  107,  199,  652,  160,  108,
    816818      161,  151,  152,  153,   88,  109,  110,  154,  155,  163,
    817819      156,  111,   88,  157,  158,  146,  164,  107,   88,   88,
    818        88,  159,  165,  112,  209,   88,   88,   88,  197,   88,
    819        88,  109,  196,   88,  110,  104,  253,  113,  113,  113,
    820 
    821       113,  113,  113,   88,  170,  178,  171,  199,  195,   88,
    822       210,  181,  166,  233,  107,  172,  167,  182,  114,  179,
    823       254,  168,   88,  261,  115,  169,  180,  173,   88,  144,
    824       116,   88,  251,  326,  145,  174,  107,  175,  252,  234,
    825       176,  144,  117,  266,  177,  267,  145,  262,  183,   88,
    826       115,  126,   88,  184,  252,  127,  128,   88,  129,  193,
    827       130,  131,  259,  132,  252,  133,   88,  283,  260,  186,
    828       187,  260,  251,   88,  134,  135,  136,   88,  190,  188,
    829       252,  266,  189,  267,  274,   88,  191,  268,  146,  259,
    830       337,  203,  204,  192,  260,  137,  203,  260,  138,  266,
    831 
    832       904,  267,  194,  200,   82,   83,   83,   83,  200,   88,
    833       275,  201,  205,  205,  205,  205,  205,  205,   81,   82,
    834        83,   83,   83,   81,   88,  139,  140,  212,  213,  266,
    835       904,  267,  212,  285,  214,  258,  266,   88,  267,  214,
    836        83,   82,   83,   83,   83,   83,  303,   88,  215,  215,
    837       215,  215,   83,   82,   84,   84,   84,   83,  904,  214,
    838       244,  244,  244,  244,  244,  244,  245,  245,  245,  245,
    839       269,  266,  266,  267,  267,  216,  268,   88,  214,  266,
    840       270,  267,   88,  214,  214,   88,   88,  214,  214,  266,
    841       266,  267,  267,  286,  904,  214,   88,  317,  214,  246,
    842 
    843       214,  217,  214,  284,  218,  220,   88,   88,  288,  221,
    844       222,  281,   88,   88,  223,  224,   88,  225,  282,  226,
    845        88,  327,  904,  301,  287,  289,   88,   88,  227,  228,
    846       229,  104,  306,  106,  106,  106,  106,  106,  106,  311,
    847        88,   88,  302,   88,   88,  307,   88,  304,  305,  230,
    848       107,  248,  231,  248,  309,   88,  249,  249,  249,  249,
    849       249,  249,  310,  308,  313,   88,  247,  312,   88,   88,
    850       314,   88,  107,   88,   88,   88,   88,  316,   88,   88,
    851       232,  236,  236,  236,  236,  236,  236,  319,  315,  250,
    852       318,  320,  325,  323,   88,  321,  322,  237,  238,  239,
    853 
    854       324,  240,  239,  328,   88,  329,   88,   88,  144,  365,
    855        88,  366,   88,   88,  241,  330,  331,  333,  335,  239,
    856       238,  239,   88,  341,  240,  332,  239,  290,  291,  292,
    857       338,  293,  294,  336,  334,  295,   88,  296,   88,  351,
    858        88,  339,  297,  298,  299,   88,  300,   88,  385,  212,
    859       213,  343,   88,  347,  212,  342,  203,  204,  345,  344,
    860       346,  203,  365,  340,  366,  352,  395,  348,  200,   82,
    861        83,   83,   83,  200,  385,   88,  201,  205,  205,  205,
    862       205,  205,  205,  203,  204,  365,  904,  366,  203,  349,
    863       204,  365,  395,  366,  349,  414,  350,  357,  357,  357,
    864 
    865       357,  365,  366,  366,  205,  205,  205,  205,  205,  205,
    866       205,  205,  205,  205,  205,  205,  365,  366,  366,  367,
    867       365,  382,  366,  365,  368,  366,  365,  374,  366,  365,
    868       358,  366,  365,   88,  366,  374,  374,  375,  266,  375,
    869       267,   88,  376,  376,  376,  376,  376,  376,  397,  378,
    870       374,  378,   88,  266,  378,  267,  420,  411,  374,  380,
    871       380,  380,  380,  380,  380,  104,  550,  245,  245,  245,
    872       245,  378,   88,  378,  398,  377,   88,  413,  378,  106,
    873       106,  106,  106,  106,  106,  249,  249,  249,  249,  249,
    874       249,   88,  381,   88,  409,   88,  107,  248,   88,  248,
    875 
    876       246,   88,  249,  249,  249,  249,  249,  249,  408,  410,
    877       412,   88,  258,  423,   88,   88,  415,   88,  107,  383,
    878       383,  383,  383,  383,  383,  388,  427,  422,  106,  106,
    879       106,  106,  106,  106,  416,  237,   88,  239,  461,  240,
    880       239,  113,  113,  113,  113,  113,  113,   88,  390,  428,
    881       391,   88,  384,   88,  392,   88,   88,  239,  426,  239,
    882       393,  258,  240,   88,  239,  421,   88,  424,  425,   88,
    883        88,  417,  394,   88,  263,  432,  391,  418,  419,   88,
    884       392,  430,  429,   88,  431,   88,   88,   88,  433,  435,
    885       434,  436,  439,   88,   88,   88,   88,   88,  440,   88,
    886 
    887       441,   88,  444,   88,  443,  442,  437,  438,  446,   88,
    888        88,   88,   88,  445,  448,  449,  447,  450,   88,   88,
    889        88,   88,  452,   88,  457,   88,   88,   88,   88,  453,
    890       455,  454,   88,   88,  451,  456,   88,   88,  459,   88,
    891        88,  464,  458,   88,  144,  463,   88,  462,  460,   88,
    892       469,   88,  470,   88,   88,  465,  474,   88,  468,  466,
    893       502,  467,  472,  204,  471,  473,  349,  204,  475,  202,
    894       503,  349,  476,  350,  214,  214,  214,  214,  357,  357,
    895       357,  357,  365,  365,  366,  366,  502,   88,   88,  376,
    896       376,  376,  376,  376,  376,  375,  502,  375,  525,  510,
    897 
    898       376,  376,  376,  376,  376,  376,  504,  486,  497,  497,
    899       497,  497,  497,  497,  236,  236,  236,  236,  236,  236,
    900        88,   88,  502,  511,  237,   88,  239,   88,  240,  239,
    901       245,  245,  245,  245,  106,  106,  505,  526,  530,  528,
    902       527,  498,  506,  506,   88,   88,  239,  379,  239,   88,
    903        88,  240,   88,  239,  380,  380,  380,  380,  380,  380,
    904       388,  505,  534,  382,   88,  537,  532,  536,  506,  506,
    905       237,  238,  239,  529,  240,  239,  383,  383,  383,  383,
    906       383,  383,   88,  390,   88,  391,  904,  381,  545,  392,
    907       904,  904,  239,  238,  239,  393,  507,  240,  507,  239,
    908 
    909       535,  508,  508,  508,  508,  508,  508,  394,   88,  384,
    910        88,  391,   88,   88,  390,  392,  391,  531,   88,  533,
    911       392,   88,   88,   88,   88,   88,  512,  542,  538,  539,
    912        88,   88,  547,   88,  509,  540,  541,   88,  394,   88,
    913       543,   88,  391,  548,  546,  549,  392,  544,   88,  551,
    914        88,   88,  552,   88,  554,  553,  556,   88,   88,   88,
    915       558,   88,  555,  557,   88,   88,   88,   88,  559,   88,
    916        88,   88,   88,   88,  562,  566,   88,  560,   88,  564,
    917       561,  570,   88,  563,  567,  565,   88,   88,   88,   88,
    918        88,  571,  568,  569,  578,  574,  572,  575,  573,  577,
    919 
    920       576,   88,   88,   88,   88,   88,   88,  204,  579,   88,
    921       582,   88,  581,  589,  580,  587,  585,  502,  611,   88,
    922       583,  584,  588,   88,  631,  586,  214,  214,  214,  214,
    923       497,  497,  497,  497,  497,  497,  380,  380,  380,  380,
    924       380,  380,   88,  502,  611,   88,  237,   88,  239,   88,
    925       240,  239,  383,  383,  383,  383,  383,  383,   88,  630,
    926       632,  502,  634,  498,   88,   88,  502,  633,  239,  499,
    927       239,  503,  607,  240,  607,  239,  610,  608,  608,  608,
    928       608,  608,  608,   88,  642,  500,  635,  502,  637,   88,
    929        88,   88,  502,  508,  508,  508,  508,  508,  508,  507,
    930 
    931        88,  507,  636,  639,  508,  508,  508,  508,  508,  508,
    932       609,  612,  612,  612,  612,  612,  612,   88,   88,   88,
    933        88,   88,   88,   88,  904,   88,   88,  613,  638,  614,
    934       644,  615,  614,  646,  641,   88,  647,   88,  640,   88,
    935       645,  643,   88,  651,  616,   88,  649,  650,  652,  614,
    936       653,  614,  654,   88,  615,   88,  614,   88,   88,  656,
    937        88,   88,  655,   88,   88,   88,   88,   88,   88,  659,
    938       657,   88,  658,  660,   88,  662,  665,  666,  661,   88,
    939       663,  664,   88,  667,   88,   88,   88,   88,   88,  668,
    940        88,  676,  669,  671,  672,  673,  677,   88,   88,  670,
    941 
    942        88,   88,  675,   88,   88,  904,   88,  777,  674,  712,
    943       678,   88,  701,  701,  680,  679,  497,  497,  497,  497,
    944       497,  497,  713,  717,  716,  681,  608,  608,  608,  608,
    945       608,  608,  607,  701,  607,  701,   88,  608,  608,  608,
    946       608,  608,  608,  612,  612,  612,  612,  612,  612,  606,
    947       699,  699,  699,  699,  699,  699,  701,  702,   88,  702,
    948        88,   88,  702,   88,   88,  714,  613,   88,  614,  715,
    949       615,  614,  720,  731,  719,   88,  616,   88,  722,  702,
    950       721,  702,   88,  700,  718,   88,  702,   88,  614,   88,
    951       614,   88,   88,  615,   88,  614,   88,  725,  723,  724,
    952 
    953        88,   88,   88,  729,   88,   88,  727,  732,   88,  726,
    954        88,  730,   88,  728,  734,   88,  733,  737,   88,   88,
    955       735,   88,   88,  879,  740,   88,  736,   88,   88,   88,
    956       744,   88,  745,  738,  739,   88,  746,  748,  741,  743,
    957        88,  747,   88,   88,  749,  764,  742,  699,  699,  699,
    958       699,  699,  699,  612,  612,  612,  612,  612,  612,   88,
    959        88,  763,  768,  613,   88,  614,  766,  615,  614,  765,
    960        88,   88,  783,   88,  769,  767,  770,   88,  771,   88,
    961       700,   88,   88,  772,  780,  614,  703,  614,  774,   88,
    962       615,   88,  614,   88,  773,   88,  775,   88,  778,   88,
    963 
    964       779,   88,  781,  776,   88,   88,   88,  784,   88,   88,
    965        88,  791,   88,   88,  782,  787,   88,  785,   88,  904,
    966        88,  793,   88,  809,   88,  794,  786,  788,  790,   88,
    967        88,   88,  789,  792,  699,  699,  699,  699,  699,  699,
    968       807,  808,   88,   88,  810,  812,  815,  813,   88,  817,
    969        88,   88,  811,  818,  819,   88,   88,  814,   88,  821,
    970        88,  816,  820,  822,   88,   88,   88,  756,   88,   88,
    971       848,   88,   88,  823,   88,  843,   88,   88,   88,  845,
    972        88,  846,   88,   88,  904,  849,   88,  824,  825,  826,
    973       841,   88,  842,  844,  851,  840,   88,   88,  847,   88,
    974 
    975       852,   88,  854,   88,   88,  850,   88,   88,  853,   88,
    976       867,   88,  855,  866,   88,   88,   88,  871,  868,  856,
    977        88,   88,   88,  873,  874,  865,  904,   88,  876,  869,
    978        88,  875,  872,   88,   88,  870,  877,  882,  881,  880,
    979        88,   88,   88,   88,   88,  885,  884,  886,   88,   88,
    980       883,  887,   88,   88,   88,  890,   88,  892,   88,   88,
    981        88,  893,   88,  888,  889,   88,  891,   88,   88,  897,
    982        88,   88,   88,  904,  878,  894,   88,  896,  898,   88,
    983       895,   88,  903,   88,   88,  904,  901,  904,  864,  899,
    984       904,  900,  863,  902,   70,   70,   70,   70,   70,   70,
    985 
    986        70,   70,   70,   70,   70,   70,   70,   76,   76,   76,
     820       88,  159,  165,  112,  210,   88,   88,   88,  198,   88,
     821       88,  109,  197,   88,  110,  104,  254,  113,  113,  113,
     822
     823      113,  113,  113,   88,  170,  178,  171,  200,  196,   88,
     824      211,  181,  166,  234,  107,  172,  167,  182,  114,  179,
     825      255,  168,   88,  275,  115,  169,  180,  173,  253,   88,
     826      116,   88,  908,   88,   88,  174,  107,  175,  286,  235,
     827      176,  252,  117,  267,  177,  268,  252,  253,  183,  276,
     828      115,  126,  284,  184,  253,  127,  128,   88,  129,  144,
     829      130,  131,  908,  132,  145,  133,   88,  259,  262,  186,
     830      187,  261,   88,  253,  134,  135,  136,  194,  190,  188,
     831      269,  267,  189,  268,  290,  260,  191,  269,  192,  260,
     832      908,  261,  263,  193,  267,  137,  268,  261,  138,  267,
     833
     834      267,  268,  268,   88,   88,   88,  146,  201,   82,   83,
     835       83,   83,  201,  204,  205,  202,   88,  261,  204,  318,
     836      195,  270,  267,  285,  268,  139,  140,   81,   82,   83,
     837       83,   83,   81,  309,  206,  206,  206,  206,  206,  206,
     838      213,  214,  267,   88,  268,  213,  144,  215,  267,  271,
     839      268,  145,  215,   83,   82,   83,   83,   83,   83,  287,
     840       88,  216,  216,  216,  216,   83,   82,   84,   84,   84,
     841       83,   88,  215,  245,  245,  245,  245,  245,  245,  246,
     842      246,  246,  246,  267,  267,  268,  268,   88,  217,  288,
     843       88,  215,   88,   88,   88,   88,  215,  215,   88,  436,
     844
     845      215,  215,  282,   88,  304,   88,   88,  908,  215,  283,
     846       88,  215,  247,  215,  218,  215,  289,  219,  221,  302,
     847      303,   88,  222,  223,   88,  321,  307,  224,  225,  312,
     848      226,   88,  227,   88,  310,  908,   88,  313,   88,  308,
     849       88,  228,  229,  230,  104,   88,  106,  106,  106,  106,
     850      106,  106,  305,  306,  311,   88,  320,  314,   88,   88,
     851      315,   88,  231,  107,  249,  232,  249,  317,   88,  250,
     852      250,  250,  250,  250,  250,  319,   88,  328,  316,  248,
     853       88,  327,   88,  323,   88,  107,  322,  367,   88,  368,
     854       88,   88,   88,  233,  237,  237,  237,  237,  237,  237,
     855
     856      333,  326,  251,  334,   88,   88,  324,  329,   88,  336,
     857      238,  239,  240,  325,  241,  240,   88,  342,  338,  330,
     858      335,  144,  781,   88,  337,   88,   88,  242,   88,  331,
     859      332,  340,  240,  239,  240,   88,  339,  241,  345,  240,
     860      291,  292,  293,  350,  294,  295,  346,  343,  296,   88,
     861      297,   88,  353,  341,   88,  298,  299,  300,  367,  301,
     862      368,  367,  347,  368,  348,   88,   88,  349,  344,  201,
     863       82,   83,   83,   83,  201,  204,  205,  202,  354,  368,
     864      204,  204,  205,  414,  213,  214,  204,  351,  205,  213,
     865       88,  908,  351,  367,  352,  368,  206,  206,  206,  206,
     866
     867      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
     868      206,  206,  206,  206,  359,  359,  359,  359,  368,  367,
     869      908,  368,  369,  367,  367,  368,  368,  367,  370,  368,
     870      367,  367,  368,  368,  367,  376,  368,  376,  376,  380,
     871      267,  380,  268,  377,  380,  377,   88,  360,  378,  378,
     872      378,  378,  378,  378,  267,  384,  268,  908,  376,  410,
     873      376,  380,  104,  380,  246,  246,  246,  246,  380,  382,
     874      382,  382,  382,  382,  382,  106,  106,  106,  106,  106,
     875      106,  379,  250,  250,  250,  250,  250,  250,   88,   88,
     876       88,   88,  107,   88,   88,  387,  415,  247,   88,  417,
     877
     878       88,   88,  383,  397,  399,  428,  411,  412,  259,  413,
     879      416,   88,  457,  425,  107,  385,  385,  385,  385,  385,
     880      385,  387,  390,  106,  106,  106,  106,  106,  106,  397,
     881      400,  238,  249,  240,  249,  241,  240,  250,  250,  250,
     882      250,  250,  250,   88,   88,  392,   88,  393,  386,   88,
     883       88,  394,  429,  240,   88,  240,  259,  395,  241,   88,
     884      240,  113,  113,  113,  113,  113,  113,  422,   88,  396,
     885      418,   88,  423,  393,  419,  424,   88,  394,   88,   88,
     886      420,  421,   88,   88,  426,  427,   88,  434,   88,  430,
     887       88,   88,  435,   88,  264,   88,  432,  433,  431,   88,
     888
     889      441,   88,   88,   88,  442,   88,  437,  443,  438,  439,
     890      440,  445,  444,   88,   88,   88,   88,   88,  449,  446,
     891      450,  447,  451,  448,   88,   88,   88,   88,   88,  452,
     892       88,  459,   88,   88,   88,  454,   88,   88,   88,  456,
     893       88,   88,  458,  455,   88,  461,  453,  466,   88,  460,
     894       88,   88,  144,   88,  465,  462,  464,  463,   88,   88,
     895       88,  471,  467,   88,  468,   88,  469,  473,  470,   88,
     896      472,  474,  475,  476,  477,  478,   88,  351,  205,  205,
     897       88,  479,  351,   88,  352,  203,  215,  215,  215,  215,
     898      359,  359,  359,  359,  528,  367,   88,  368,  367,  531,
     899
     900      368,  378,  378,  378,  378,  378,  378,  377,  505,  377,
     901       88,  513,  378,  378,  378,  378,  378,  378,  506,  489,
     902      500,  500,  500,  500,  500,  500,  237,  237,  237,  237,
     903      237,  237,  535,   88,  505,  514,  238,   88,  240,   88,
     904      241,  240,  246,  246,  246,  246,  106,  106,  508,  529,
     905      533,  505,  530,  501,  509,  509,   88,   88,  240,  381,
     906      240,  507,   88,  241,  675,  240,  382,  382,  382,  382,
     907      382,  382,  390,  508,   88,  384,   88,  505,  538,  539,
     908      509,  509,  238,  239,  240,  532,  241,  240,  385,  385,
     909      385,  385,  385,  385,   88,  392,  543,  393,   88,  383,
     910
     911      548,  394,  908,  908,  240,  239,  240,  395,  510,  241,
     912      510,  240,   88,  511,  511,  511,  511,  511,  511,  396,
     913       88,  386,   88,  393,   88,  537,  392,  394,  393,  534,
     914       88,  536,  394,   88,   88,   88,   88,  540,  515,  545,
     915       88,   88,   88,   88,  550,   88,  512,   88,  544,   88,
     916      396,  541,  542,   88,  393,  546,  553,  549,  394,  554,
     917      551,   88,  547,   88,  552,  556,  555,   88,   88,  559,
     918       88,   88,   88,   88,  557,   88,  558,  561,   88,   88,
     919       88,   88,  560,   88,   88,  562,   88,   88,  565,  569,
     920       88,  563,   88,  567,  564,   88,  573,  566,  570,  568,
     921
     922       88,   88,   88,   88,   88,  574,  571,   88,  572,  578,
     923      575,  581,  576,   88,  582,  580,   88,  577,   88,  579,
     924       88,   88,   88,  205,   88,  585,  586,   88,  583,  593,
     925      592,  505,  589,  591,  615,  584,  587,  588,  215,  215,
     926      215,  215,   88,   88,  590,  500,  500,  500,  500,  500,
     927      500,  382,  382,  382,  382,  382,  382,  505,  636,  634,
     928      615,  238,   88,  240,   88,  241,  240,  385,  385,  385,
     929      385,  385,  385,  908,  883,  635,  505,  638,  501,   88,
     930       88,  505,   88,  240,  502,  240,  506,  611,  241,  611,
     931      240,  614,  612,  612,  612,  612,  612,  612,   88,  637,
     932
     933      503,  647,  505,  641,  639,   88,   88,  505,  511,  511,
     934      511,  511,  511,  511,  510,  908,  510,  642,  640,  511,
     935      511,  511,  511,  511,  511,  613,  616,  616,  616,  616,
     936      616,  616,   88,   88,   88,  643,   88,   88,   88,   88,
     937       88,   88,  617,  649,  618,   88,  619,  618,  648,  645,
     938      651,  650,   88,  644,  653,  646,   88,   88,   88,  620,
     939       88,  656,  657,  654,  618,   88,  618,  659,  658,  619,
     940       88,  618,   88,  655,   88,   88,   88,  660,   88,   88,
     941      661,  663,   88,   88,  664,  662,   88,   88,  669,   88,
     942      666,   88,   88,  665,  667,  670,  671,  668,   88,   88,
     943
     944       88,   88,   88,   88,  673,   88,  677,   88,  676,  674,
     945      680,  672,  681,  679,   88,  682,   88,  908,  908,  683,
     946      684,   88,  678,  500,  500,  500,  500,  500,  500,  612,
     947      612,  612,  612,  612,  612,  611,  685,  611,  721,   88,
     948      612,  612,  612,  612,  612,  612,  616,  616,  616,  616,
     949      616,  616,  720,  705,  705,   88,  610,  703,  703,  703,
     950      703,  703,  703,  705,   88,  706,  908,  706,   88,  716,
     951      706,   88,  725,  617,   88,  618,  705,  619,  618,  620,
     952      719,  718,  717,   88,   88,   88,  705,  706,   88,  706,
     953      704,  722,  723,   88,  706,  618,  724,  618,   88,  729,
     954
     955      619,  726,  618,   88,   88,  728,  727,   88,   88,   88,
     956      735,  733,   88,   88,   88,   88,   88,   88,   88,   88,
     957       88,  731,   88,  738,   88,  730,  734,  736,  741,  732,
     958       88,  744,   88,  737,  739,   88,   88,  740,   88,   88,
     959      742,  748,  743,  749,  745,  746,   88,  747,  750,   88,
     960      753,   88,   88,   88,   88,  882,  751,  773,  752,  703,
     961      703,  703,  703,  703,  703,  616,  616,  616,  616,  616,
     962      616,   88,  767,  772,   88,  617,   88,  618,  769,  619,
     963      618,  768,   88,  770,   88,   88,   88,  771,  774,   88,
     964      776,   88,  704,   88,  779,  778,   88,  618,  707,  618,
     965
     966       88,   88,  619,  782,  618,  784,  777,  775,   88,   88,
     967      783,  785,   88,   88,   88,   88,   88,  780,   88,   88,
     968      787,   88,  786,  788,   88,  791,   88,  789,   88,   88,
     969       88,   88,   88,  813,  797,   88,  790,  792,  794,  798,
     970       88,   88,  793,  795,  814,  796,  703,  703,  703,  703,
     971      703,  703,  811,   88,   88,   88,   88,  812,  816,  819,
     972      821,   88,   88,  815,  822,  823,   88,  818,  820,   88,
     973       88,  817,  825,  824,   88,   88,   88,  826,   88,  760,
     974       88,   88,   88,   88,   88,  827,  847,   88,   88,   88,
     975      849,   88,  850,  852,   88,   88,   88,  853,  828,  829,
     976
     977      846,  830,  845,   88,   88,   88,  848,  844,  855,  851,
     978       88,   88,  857,  856,   88,   88,   88,  854,   88,   88,
     979      858,  871,  859,  870,   88,   88,   88,   88,   88,  875,
     980      860,  877,   88,  872,   88,  878,  869,   88,   88,   88,
     981       88,   88,   88,  873,  876,  885,  879,   88,  881,  874,
     982      880,  884,   88,   88,  892,  886,   88,  887,  888,  889,
     983       88,   88,   88,  890,  891,   88,   88,   88,  894,   88,
     984      896,   88,  897,   88,   88,   88,  895,  893,   88,   88,
     985       88,   88,   88,   88,  901,   88,   88,  908,  908,  900,
     986      868,  902,  908,  898,  899,  907,  867,  908,  905,  865,
     987
     988      908,  903,  904,  864,  906,   70,   70,   70,   70,   70,
     989       70,   70,   70,   70,   70,   70,   70,   70,   76,   76,
    987990       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
    988        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
    989        79,   79,   79,   87,  904,  861,   87,  904,   87,   87,
    990        87,   87,   87,  141,  860,  904,  859,  141,  141,  141,
    991       141,  141,  141,  202,  202,  202,  202,  202,  202,  202,
    992       202,  202,  202,  202,  202,  202,  207,  904,  858,  207,
    993        88,  207,  207,  207,  207,  207,  211,   88,  211,  211,
    994        88,  211,  211,  211,  211,  211,  211,  904,  211,  219,
    995       839,  904,  219,  219,  219,  219,  219,  219,  219,  219,
    996 
    997       838,  219,  242,  242,  242,  242,  242,  242,  242,  242,
    998       242,  242,  242,  242,  242,  256,  256,  836,  256,  904,
    999       834,  904,  256,  272,  832,  904,  272,  830,  272,  272,
    1000       272,  272,  272,  276,  828,  276,   88,   88,   88,  276,
    1001       278,   88,  278,   88,   88,   88,  278,  353,   88,  353,
    1002        88,   88,   88,  353,  355,   88,  355,  904,  806,  804,
    1003       355,  359,  904,  359,  904,  801,  799,  359,  361,  797,
    1004       361,   88,   88,   88,  361,  363,   88,  363,   88,   88,
    1005        88,  363,  370,  762,  370,  759,  758,  756,  370,  372,
    1006       208,  372,  752,  751,  683,  372,  387,   88,  387,  389,
    1007 
    1008       389,   88,  389,  389,  389,   88,  389,  256,  256,   88,
    1009       256,  272,   88,   88,  272,   88,  272,  272,  272,  272,
    1010       272,  399,   88,  399,   88,   88,   88,  399,  401,   88,
    1011       401,   88,   88,   88,  401,  403,   88,  403,  710,  709,
    1012       707,  403,  276,  705,  276,  405,  703,  405,  610,  698,
    1013       697,  405,  278,  695,  278,   87,  693,  691,   87,  689,
    1014        87,   87,   87,   87,   87,  202,  202,  202,  202,  202,
    1015       202,  202,  202,  202,  202,  202,  202,  202,  477,  477,
    1016       477,  477,  477,  477,  477,  477,  477,  477,  477,  477,
    1017       477,  478,  687,  478,  685,  683,   88,  478,  480,   88,
    1018 
    1019       480,   88,   88,   88,  480,  482,   88,  482,   88,   88,
    1020        88,  482,  353,   88,  353,  484,   88,  484,   88,  629,
    1021       627,  484,  355,  625,  355,  487,  623,  487,  621,  619,
    1022       512,  487,  359,  617,  359,  489,  617,  489,  606,  605,
    1023       603,  489,  361,  492,  361,  491,  492,  491,  601,  599,
    1024       597,  491,  363,  595,  363,  493,  593,  493,  591,   88,
    1025        88,  493,  370,   88,  370,  495,   88,  495,   88,   88,
    1026        88,  495,  372,   88,  372,  501,  524,  501,  522,  501,
    1027       520,  501,  387,  518,  387,  516,  387,  514,  387,  389,
    1028       389,  500,  389,  389,  389,  499,  389,  513,  496,  513,
    1029 
    1030       494,  366,  366,  513,  515,  492,  515,  490,  488,  485,
    1031       515,  517,  483,  517,  481,  479,   88,  517,  399,   88,
    1032       399,  519,   88,  519,  407,  406,  404,  519,  401,  402,
    1033       401,  521,  400,  521,  273,  268,  267,  521,  403,  396,
    1034       403,  523,  396,  523,  255,  386,  386,  523,  405,  243,
    1035       405,   87,  379,  373,   87,  371,   87,   87,   87,   87,
    1036        87,  477,  477,  477,  477,  477,  477,  477,  477,  477,
    1037       477,  477,  477,  477,  590,  369,  590,  365,  364,  362,
    1038       590,  478,  360,  478,  592,  356,  592,  354,  208,  204,
    1039       592,  480,   88,  480,  594,  280,  594,  279,  277,  273,
    1040 
    1041       594,  482,  268,  482,  596,  271,  596,  268,  266,  265,
    1042       596,  484,  264,  484,  598,  243,  598,  235,   86,   86,
    1043       598,  487,   88,  487,  600,  208,  600,  206,   86,  123,
    1044       600,  489,  118,  489,  491,   88,  491,  904,   71,   71,
    1045       491,  602,  904,  602,  904,  904,  904,  602,  493,  904,
    1046       493,  604,  904,  604,  904,  904,  904,  604,  495,  904,
    1047       495,  501,  904,  501,  904,  501,  904,  501,  389,  904,
    1048       389,  904,  904,  904,  389,  618,  904,  618,  904,  904,
    1049       904,  618,  513,  904,  513,  620,  904,  620,  904,  904,
    1050       904,  620,  515,  904,  515,  622,  904,  622,  904,  904,
    1051 
    1052       904,  622,  517,  904,  517,  624,  904,  624,  904,  904,
    1053       904,  624,  519,  904,  519,  626,  904,  626,  904,  904,
    1054       904,  626,  521,  904,  521,  628,  904,  628,  904,  904,
    1055       904,  628,  523,  904,  523,   87,  904,  904,   87,  904,
    1056        87,   87,   87,   87,   87,  682,  682,  682,  682,  682,
    1057       682,  682,  682,  682,  682,  682,  682,  682,  684,  904,
    1058       684,  904,  904,  904,  684,  590,  904,  590,  686,  904,
    1059       686,  904,  904,  904,  686,  592,  904,  592,  688,  904,
    1060       688,  904,  904,  904,  688,  594,  904,  594,  690,  904,
    1061       690,  904,  904,  904,  690,  596,  904,  596,  692,  904,
    1062 
    1063       692,  904,  904,  904,  692,  598,  904,  598,  694,  904,
    1064       694,  904,  904,  904,  694,  600,  904,  600,  696,  904,
    1065       696,  904,  904,  904,  696,  602,  904,  602,   87,  904,
    1066        87,  904,  904,  904,   87,  604,  904,  604,  501,  904,
    1067       501,  904,  904,  904,  501,  704,  904,  704,  904,  904,
    1068       904,  704,  618,  904,  618,  706,  904,  706,  904,  904,
    1069       904,  706,  620,  904,  620,  708,  904,  708,  904,  904,
    1070       904,  708,  622,  904,  622,  141,  904,  141,  904,  904,
    1071       904,  141,  624,  904,  624,  711,  904,  711,  626,  904,
    1072       626,   87,  904,  904,   87,  904,   87,   87,   87,   87,
    1073 
    1074        87,  628,  904,  628,  682,  682,  682,  682,  682,  682,
    1075       682,  682,  682,  682,  682,  682,  682,  750,  904,  750,
    1076       904,  904,  904,  750,  684,  904,  684,  207,  904,  207,
    1077       904,  904,  904,  207,  686,  904,  686,  753,  904,  753,
    1078       688,  904,  688,  207,  904,  904,  207,  904,  207,  207,
    1079       207,  207,  207,  690,  904,  690,  754,  904,  754,  692,
    1080       904,  692,  694,  904,  694,  755,  904,  755,  696,  904,
    1081       696,   87,  904,   87,  757,  904,  757,  904,  904,  904,
    1082       757,  704,  904,  704,  272,  904,  272,  904,  904,  904,
    1083       272,  706,  904,  706,  760,  904,  760,  708,  904,  708,
    1084 
    1085       141,  904,  141,  761,  904,  761,  904,  904,  904,  761,
    1086        87,  904,  904,   87,  904,   87,   87,   87,   87,   87,
    1087       795,  904,  795,  750,  904,  750,  207,  904,  207,  796,
    1088       904,  796,  904,  904,  904,  796,  798,  904,  798,  904,
    1089       904,  904,  798,  800,  904,  800,  904,  904,  904,  800,
    1090       802,  904,  802,  803,  904,  803,  904,  904,  904,  803,
    1091       805,  904,  805,  904,  904,  904,  805,  827,  904,  827,
    1092       904,  904,  904,  827,  829,  904,  829,  904,  904,  904,
    1093       829,  831,  904,  831,  904,  904,  904,  831,  833,  904,
    1094       833,  904,  904,  904,  833,  835,  904,  835,  904,  904,
    1095 
    1096       904,  835,  837,  904,  837,  904,  904,  904,  837,  628,
    1097       904,  628,  904,  904,  904,  628,  857,  904,  857,  904,
    1098       904,  904,  857,  690,  904,  690,  904,  904,  904,  690,
    1099       694,  904,  694,  904,  904,  904,  694,   87,  904,   87,
    1100       904,  904,  904,   87,  862,  904,  862,  904,  904,  904,
    1101       862,  141,  904,  141,  904,  904,  904,  141,  207,  904,
    1102       207,  904,  904,  904,  207,   11,  904,  904,  904,  904,
    1103       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1104       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1105       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1106 
    1107       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1108       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1109       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1110       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1111       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1112       904
     991       76,   79,   79,   79,   79,   79,   79,   79,   79,   79,
     992       79,   79,   79,   79,   87,  908,  863,   87,  908,   87,
     993       87,   87,   87,   87,  141,  862,   88,   88,  141,  141,
     994      141,  141,  141,  141,  203,  203,  203,  203,  203,  203,
     995      203,  203,  203,  203,  203,  203,  203,  208,   88,  908,
     996      208,  843,  208,  208,  208,  208,  208,  212,  908,  212,
     997      212,  842,  212,  212,  212,  212,  212,  212,  840,  212,
     998
     999      220,  908,  838,  220,  220,  220,  220,  220,  220,  220,
     1000      220,  908,  220,  243,  243,  243,  243,  243,  243,  243,
     1001      243,  243,  243,  243,  243,  243,  257,  257,  836,  257,
     1002      908,  834,  832,  257,  273,   88,   88,  273,   88,  273,
     1003      273,  273,  273,  273,  277,   88,  277,   88,   88,   88,
     1004      277,  279,   88,  279,   88,   88,   88,  279,  355,   88,
     1005      355,  908,  810,  808,  355,  357,  908,  357,  908,  805,
     1006      803,  357,  361,  801,  361,   88,   88,   88,  361,  363,
     1007       88,  363,   88,   88,   88,  363,  365,  766,  365,  763,
     1008      762,  760,  365,  372,  209,  372,  756,  755,  687,  372,
     1009
     1010      374,   88,  374,   88,   88,   88,  374,  389,   88,  389,
     1011      391,  391,   88,  391,  391,  391,   88,  391,  257,  257,
     1012       88,  257,  273,   88,   88,  273,   88,  273,  273,  273,
     1013      273,  273,  401,   88,  401,   88,   88,   88,  401,  403,
     1014       88,  403,  714,  713,  711,  403,  405,  709,  405,  707,
     1015      614,  702,  405,  277,  701,  277,  407,  699,  407,  697,
     1016      695,  693,  407,  279,  691,  279,   87,  689,  687,   87,
     1017       88,   87,   87,   87,   87,   87,  203,  203,  203,  203,
     1018      203,  203,  203,  203,  203,  203,  203,  203,  203,  480,
     1019      480,  480,  480,  480,  480,  480,  480,  480,  480,  480,
     1020
     1021      480,  480,  481,   88,  481,   88,   88,   88,  481,  483,
     1022       88,  483,   88,   88,   88,  483,  485,   88,  485,   88,
     1023       88,   88,  485,  355,  633,  355,  487,  631,  487,  629,
     1024      627,  625,  487,  357,  623,  357,  490,  515,  490,  621,
     1025      621,  610,  490,  361,  609,  361,  492,  607,  492,  495,
     1026      495,  605,  492,  363,  603,  363,  494,  601,  494,  599,
     1027      597,  595,  494,  365,   88,  365,  496,   88,  496,   88,
     1028       88,   88,  496,  372,   88,  372,  498,   88,  498,   88,
     1029      527,  525,  498,  374,  523,  374,  504,  521,  504,  519,
     1030      504,  517,  504,  389,  503,  389,  502,  389,  499,  389,
     1031
     1032      391,  391,  497,  391,  391,  391,  368,  391,  516,  368,
     1033      516,  495,  493,  491,  516,  518,  488,  518,  486,  484,
     1034      482,  518,  520,   88,  520,   88,   88,  409,  520,  401,
     1035      408,  401,  522,  406,  522,  404,  402,  274,  522,  403,
     1036      269,  403,  524,  268,  524,  398,  398,  256,  524,  405,
     1037      388,  405,  526,  388,  526,  244,  381,  375,  526,  407,
     1038      373,  407,   87,  371,  367,   87,  366,   87,   87,   87,
     1039       87,   87,  480,  480,  480,  480,  480,  480,  480,  480,
     1040      480,  480,  480,  480,  480,  594,  364,  594,  362,  358,
     1041      356,  594,  481,  209,  481,  596,  205,  596,   88,  281,
     1042
     1043      280,  596,  483,  278,  483,  598,  274,  598,  269,  272,
     1044      269,  598,  485,  267,  485,  600,  266,  600,  265,  244,
     1045      236,  600,  487,   86,  487,  602,   86,  602,   88,  209,
     1046      207,  602,  490,   86,  490,  604,  123,  604,  118,   88,
     1047      908,  604,  492,   71,  492,  494,   71,  494,  908,  908,
     1048      908,  494,  606,  908,  606,  908,  908,  908,  606,  496,
     1049      908,  496,  608,  908,  608,  908,  908,  908,  608,  498,
     1050      908,  498,  504,  908,  504,  908,  504,  908,  504,  391,
     1051      908,  391,  908,  908,  908,  391,  622,  908,  622,  908,
     1052      908,  908,  622,  516,  908,  516,  624,  908,  624,  908,
     1053
     1054      908,  908,  624,  518,  908,  518,  626,  908,  626,  908,
     1055      908,  908,  626,  520,  908,  520,  628,  908,  628,  908,
     1056      908,  908,  628,  522,  908,  522,  630,  908,  630,  908,
     1057      908,  908,  630,  524,  908,  524,  632,  908,  632,  908,
     1058      908,  908,  632,  526,  908,  526,   87,  908,  908,   87,
     1059      908,   87,   87,   87,   87,   87,  686,  686,  686,  686,
     1060      686,  686,  686,  686,  686,  686,  686,  686,  686,  688,
     1061      908,  688,  908,  908,  908,  688,  594,  908,  594,  690,
     1062      908,  690,  908,  908,  908,  690,  596,  908,  596,  692,
     1063      908,  692,  908,  908,  908,  692,  598,  908,  598,  694,
     1064
     1065      908,  694,  908,  908,  908,  694,  600,  908,  600,  696,
     1066      908,  696,  908,  908,  908,  696,  602,  908,  602,  698,
     1067      908,  698,  908,  908,  908,  698,  604,  908,  604,  700,
     1068      908,  700,  908,  908,  908,  700,  606,  908,  606,   87,
     1069      908,   87,  908,  908,  908,   87,  608,  908,  608,  504,
     1070      908,  504,  908,  908,  908,  504,  708,  908,  708,  908,
     1071      908,  908,  708,  622,  908,  622,  710,  908,  710,  908,
     1072      908,  908,  710,  624,  908,  624,  712,  908,  712,  908,
     1073      908,  908,  712,  626,  908,  626,  141,  908,  141,  908,
     1074      908,  908,  141,  628,  908,  628,  715,  908,  715,  630,
     1075
     1076      908,  630,   87,  908,  908,   87,  908,   87,   87,   87,
     1077       87,   87,  632,  908,  632,  686,  686,  686,  686,  686,
     1078      686,  686,  686,  686,  686,  686,  686,  686,  754,  908,
     1079      754,  908,  908,  908,  754,  688,  908,  688,  208,  908,
     1080      208,  908,  908,  908,  208,  690,  908,  690,  757,  908,
     1081      757,  692,  908,  692,  208,  908,  908,  208,  908,  208,
     1082      208,  208,  208,  208,  694,  908,  694,  758,  908,  758,
     1083      696,  908,  696,  698,  908,  698,  759,  908,  759,  700,
     1084      908,  700,   87,  908,   87,  761,  908,  761,  908,  908,
     1085      908,  761,  708,  908,  708,  273,  908,  273,  908,  908,
     1086
     1087      908,  273,  710,  908,  710,  764,  908,  764,  712,  908,
     1088      712,  141,  908,  141,  765,  908,  765,  908,  908,  908,
     1089      765,   87,  908,  908,   87,  908,   87,   87,   87,   87,
     1090       87,  799,  908,  799,  754,  908,  754,  208,  908,  208,
     1091      800,  908,  800,  908,  908,  908,  800,  802,  908,  802,
     1092      908,  908,  908,  802,  804,  908,  804,  908,  908,  908,
     1093      804,  806,  908,  806,  807,  908,  807,  908,  908,  908,
     1094      807,  809,  908,  809,  908,  908,  908,  809,  831,  908,
     1095      831,  908,  908,  908,  831,  833,  908,  833,  908,  908,
     1096      908,  833,  835,  908,  835,  908,  908,  908,  835,  837,
     1097
     1098      908,  837,  908,  908,  908,  837,  839,  908,  839,  908,
     1099      908,  908,  839,  841,  908,  841,  908,  908,  908,  841,
     1100      632,  908,  632,  908,  908,  908,  632,  861,  908,  861,
     1101      908,  908,  908,  861,  694,  908,  694,  908,  908,  908,
     1102      694,  698,  908,  698,  908,  908,  908,  698,   87,  908,
     1103       87,  908,  908,  908,   87,  866,  908,  866,  908,  908,
     1104      908,  866,  141,  908,  141,  908,  908,  908,  141,  208,
     1105      908,  208,  908,  908,  908,  208,   11,  908,  908,  908,
     1106      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1107      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1108
     1109      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1110      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1111      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1112      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1113      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1114      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1115      908,  908
    11131116    } ;
    11141117
    1115 static yyconst flex_int16_t yy_chk[2952] =
     1118static yyconst flex_int16_t yy_chk[2963] =
    11161119    {   0,
    11171120        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11341137        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11351138        5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1136         8,    9,   10,   37,   37,   20,   39,    9,   10,  903,
     1139        8,    9,   10,   37,   37,   20,   39,    9,   10,  907,
    11371140        7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    11381141
     
    11421145        8,    9,   10,   40,   42,   29,   30,   47,   30,   30,
    11431146       30,   30,   30,   30,   35,   57,   35,   35,   44,  127,
    1144        44,  127,  110,  116,   57,   30,   65,  544,   47,   30,
     1147       44,  127,  110,  116,   57,   30,   65,  547,   47,   30,
    11451148       47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    11461149       45,   30,   40,   45,   45,   40,   49,   30,   45,   63,
    1147        62,   45,   49,   30,   74,  902,  544,   53,   63,   51,
     1150       62,   45,   49,   30,   74,  906,  547,   53,   63,   51,
    11481151       61,   30,   62,   55,   30,   31,  109,   31,   31,   31,
    11491152
    11501153       31,   31,   31,   50,   51,   53,   51,   65,   61,   54,
    11511154       74,   55,   50,   88,   31,   51,   50,   55,   31,   54,
    1152       109,   50,   52,  115,   31,   50,   54,   52,  182,  146,
    1153        31,   56,  108,  182,  146,   52,   31,   52,  108,   88,
    1154        52,   60,   31,  128,   52,  128,   60,  115,   56,  152,
    1155        31,   38,  894,   56,  112,   38,   38,   58,   38,   60,
    1156        38,   38,  114,   38,  108,   38,   59,  152,  114,   58,
    1157        58,  117,  112,  146,   38,   38,   38,  189,   59,   58,
    1158       112,  130,   58,  130,  143,   60,   59,  132,   60,  117,
    1159       189,   69,   69,   59,  114,   38,   69,  117,   38,  132,
    1160 
    1161       111,  132,   60,   68,   68,   68,   68,   68,   68,  893,
    1162       143,   68,   69,   69,   69,   69,   69,   69,   81,   81,
    1163        81,   81,   81,   81,  154,   38,   38,   78,   78,  133,
    1164       111,  133,   78,  154,   78,  111,  135,  162,  135,   78,
    1165        83,   83,   83,   83,   83,   83,  162,  890,   78,   78,
    1166        78,   78,   84,   84,   84,   84,   84,   84,  111,   78,
    1167       104,  104,  104,  104,  104,  104,  105,  105,  105,  105,
    1168       134,  134,  138,  134,  138,   78,  131,  155,   78,  136,
    1169       136,  136,  173,   78,   78,  153,  157,   78,   78,  140,
    1170       131,  140,  131,  155,  105,   78,  151,  173,   78,  105,
    1171 
    1172        78,   78,   78,  153,   78,   86,  156,  160,  157,   86,
    1173        86,  151,  183,  158,   86,   86,  168,   86,  151,   86,
    1174       161,  183,  105,  160,  156,  158,  163,  164,   86,   86,
    1175        86,  106,  164,  106,  106,  106,  106,  106,  106,  168,
    1176       169,  167,  161,  170,  166,  164,  165,  163,  163,   86,
    1177       106,  107,   86,  107,  166,  172,  107,  107,  107,  107,
    1178       107,  107,  167,  165,  170,  171,  106,  169,  177,  175,
    1179       171,  176,  106,  174,  178,  181,  184,  172,  180,  889,
    1180        86,  100,  100,  100,  100,  100,  100,  175,  171,  107,
    1181       174,  176,  181,  180,  185,  177,  178,  100,  100,  100,
    1182 
    1183       180,  100,  100,  184,  192,  185,  187,  186,  193,  221,
    1184       190,  221,  887,  188,  100,  185,  185,  187,  188,  100,
    1185       100,  100,  159,  192,  100,  186,  100,  159,  159,  159,
    1186       190,  159,  159,  188,  187,  159,  191,  159,  194,  208,
    1187       196,  191,  159,  159,  159,  195,  159,  197,  251,  212,
    1188       212,  194,  193,  196,  212,  193,  201,  201,  195,  194,
    1189       195,  201,  222,  191,  222,  208,  259,  197,  200,  200,
    1190       200,  200,  200,  200,  251,  287,  200,  201,  201,  201,
    1191       201,  201,  201,  203,  203,  223,  246,  223,  203,  205,
    1192       205,  226,  259,  226,  205,  287,  205,  215,  215,  215,
    1193 
    1194       215,  228,  224,  228,  203,  203,  203,  203,  203,  203,
    1195       205,  205,  205,  205,  205,  205,  224,  225,  224,  227,
    1196       227,  246,  227,  229,  229,  229,  231,  239,  231,  225,
    1197       215,  225,  232,  291,  232,  237,  237,  238,  269,  238,
    1198       269,  284,  238,  238,  238,  238,  238,  238,  273,  240,
    1199       239,  240,  432,  270,  240,  270,  291,  284,  237,  244,
    1200       244,  244,  244,  244,  244,  245,  432,  245,  245,  245,
    1201       245,  240,  286,  240,  273,  238,  282,  286,  240,  247,
    1202       247,  247,  247,  247,  247,  248,  248,  248,  248,  248,
    1203       248,  283,  244,  285,  282,  281,  247,  250,  294,  250,
    1204 
    1205       245,  293,  250,  250,  250,  250,  250,  250,  281,  283,
    1206       285,  288,  247,  294,  289,  331,  288,  297,  247,  249,
    1207       249,  249,  249,  249,  249,  256,  297,  293,  258,  258,
    1208       258,  258,  258,  258,  289,  249,  298,  249,  331,  249,
    1209       249,  263,  263,  263,  263,  263,  263,  292,  256,  298,
    1210       256,  295,  249,  296,  256,  299,  290,  249,  296,  249,
    1211       256,  258,  249,  300,  249,  292,  302,  295,  295,  306,
    1212       303,  290,  256,  307,  263,  303,  256,  290,  290,  304,
    1213       256,  300,  299,  305,  302,  308,  312,  309,  304,  306,
    1214       305,  307,  309,  310,  311,  313,  314,  315,  310,  316,
    1215 
    1216       311,  317,  314,  321,  313,  312,  308,  308,  316,  318,
    1217       319,  322,  320,  315,  318,  319,  317,  320,  323,  325,
    1218       326,  327,  321,  328,  327,  329,  330,  332,  333,  322,
    1219       325,  323,  334,  335,  320,  326,  336,  339,  329,  337,
    1220       338,  334,  328,  341,  342,  333,  343,  332,  330,  344,
    1221       339,  346,  341,  347,  348,  335,  346,  345,  338,  336,
    1222       387,  337,  344,  350,  343,  345,  349,  349,  347,  350,
    1223       387,  349,  348,  349,  357,  357,  357,  357,  358,  358,
    1224       358,  358,  367,  368,  367,  368,  387,  408,  342,  375,
    1225       375,  375,  375,  375,  375,  377,  388,  377,  408,  392,
    1226 
    1227       377,  377,  377,  377,  377,  377,  388,  357,  376,  376,
    1228       376,  376,  376,  376,  379,  379,  379,  379,  379,  379,
    1229       411,  409,  388,  392,  376,  410,  376,  413,  376,  376,
    1230       382,  382,  382,  382,  382,  382,  390,  409,  413,  411,
    1231       410,  376,  390,  394,  415,  419,  376,  379,  376,  417,
    1232       886,  376,  420,  376,  380,  380,  380,  380,  380,  380,
    1233       389,  394,  417,  382,  412,  420,  415,  419,  390,  394,
    1234       380,  380,  380,  412,  380,  380,  383,  383,  383,  383,
    1235       383,  383,  426,  389,  418,  389,  879,  380,  426,  389,
    1236       878,  393,  380,  380,  380,  389,  391,  380,  391,  380,
    1237 
    1238       418,  391,  391,  391,  391,  391,  391,  389,  414,  383,
    1239       416,  389,  421,  422,  393,  389,  393,  414,  423,  416,
    1240       393,  428,  424,  427,  429,  425,  393,  424,  421,  421,
    1241       430,  436,  428,  437,  391,  422,  423,  434,  393,  439,
    1242       425,  438,  393,  429,  427,  430,  393,  425,  441,  434,
    1243       440,  442,  436,  444,  438,  437,  440,  446,  447,  448,
    1244       442,  449,  439,  441,  450,  451,  452,  454,  444,  456,
    1245       459,  457,  458,  462,  448,  452,  460,  446,  461,  450,
    1246       447,  458,  464,  449,  454,  451,  465,  466,  463,  468,
    1247       469,  459,  456,  457,  466,  462,  460,  463,  461,  465,
    1248 
    1249       464,  467,  470,  474,  471,  472,  475,  477,  467,  877,
    1250       470,  526,  469,  477,  468,  475,  472,  504,  505,  476,
    1251       470,  471,  476,  876,  526,  474,  486,  486,  486,  486,
    1252       497,  497,  497,  497,  497,  497,  499,  499,  499,  499,
    1253       499,  499,  525,  504,  505,  528,  497,  529,  497,  530,
    1254       497,  497,  500,  500,  500,  500,  500,  500,  875,  525,
    1255       528,  501,  530,  497,  531,  538,  503,  529,  497,  499,
    1256       497,  501,  502,  497,  502,  497,  503,  502,  502,  502,
    1257       502,  502,  502,  533,  538,  500,  531,  501,  533,  532,
    1258       871,  867,  503,  507,  507,  507,  507,  507,  507,  509,
    1259 
    1260       535,  509,  532,  535,  509,  509,  509,  509,  509,  509,
    1261       502,  508,  508,  508,  508,  508,  508,  534,  536,  537,
    1262       539,  540,  542,  543,  864,  546,  547,  508,  534,  508,
    1263       540,  508,  508,  542,  537,  541,  543,  545,  536,  548,
    1264       541,  539,  554,  547,  508,  549,  545,  546,  548,  508,
    1265       549,  508,  551,  552,  508,  555,  508,  556,  551,  554,
    1266       557,  560,  552,  561,  559,  562,  564,  571,  567,  557,
    1267       555,  565,  556,  559,  568,  561,  565,  567,  560,  572,
    1268       562,  564,  573,  568,  576,  575,  578,  582,  577,  571,
    1269       579,  580,  572,  575,  576,  577,  582,  580,  585,  573,
    1270 
    1271       583,  586,  579,  588,  630,  863,  634,  728,  578,  630,
    1272       583,  633,  613,  613,  586,  585,  606,  606,  606,  606,
    1273       606,  606,  630,  634,  633,  588,  607,  607,  607,  607,
    1274       607,  607,  609,  614,  609,  613,  728,  609,  609,  609,
    1275       609,  609,  609,  612,  612,  612,  612,  612,  612,  606,
    1276       608,  608,  608,  608,  608,  608,  614,  615,  631,  615,
    1277       632,  635,  615,  638,  637,  631,  608,  636,  608,  632,
    1278       608,  608,  637,  648,  636,  639,  612,  641,  639,  615,
    1279       638,  615,  642,  608,  635,  640,  615,  643,  608,  644,
    1280       608,  645,  649,  608,  647,  608,  650,  642,  640,  641,
    1281 
    1282       646,  648,  652,  646,  653,  651,  644,  649,  654,  643,
    1283       656,  647,  657,  645,  651,  658,  650,  654,  662,  663,
    1284       652,  668,  665,  862,  658,  669,  653,  676,  679,  680,
    1285       668,  677,  669,  656,  657,  713,  676,  679,  662,  665,
    1286       712,  677,  718,  715,  680,  713,  663,  699,  699,  699,
    1287       699,  699,  699,  703,  703,  703,  703,  703,  703,  716,
    1288       721,  712,  718,  699,  734,  699,  716,  699,  699,  715,
    1289       717,  719,  734,  720,  719,  717,  720,  723,  721,  725,
    1290       699,  724,  727,  723,  731,  699,  703,  699,  725,  745,
    1291       699,  730,  699,  726,  724,  729,  726,  735,  729,  732,
    1292 
    1293       730,  733,  732,  727,  736,  737,  738,  735,  744,  741,
    1294       731,  745,  746,  748,  733,  738,  749,  736,  769,  861,
    1295       767,  748,  772,  769,  768,  749,  737,  741,  744,  770,
    1296       773,  774,  741,  746,  756,  756,  756,  756,  756,  756,
    1297       767,  768,  771,  775,  770,  772,  775,  773,  776,  777,
    1298       779,  781,  771,  779,  781,  782,  783,  774,  785,  783,
    1299       784,  776,  782,  784,  786,  788,  792,  756,  807,  809,
    1300       817,  812,  811,  785,  810,  811,  813,  777,  814,  813,
    1301       816,  814,  818,  820,  860,  818,  824,  786,  788,  792,
    1302       809,  821,  810,  812,  821,  807,  817,  822,  816,  823,
    1303 
    1304       822,  825,  824,  826,  841,  820,  842,  843,  823,  844,
    1305       843,  845,  825,  842,  846,  847,  855,  846,  844,  826,
    1306       850,  853,  854,  850,  853,  841,  859,  856,  855,  845,
    1307       865,  854,  847,  866,  868,  845,  856,  868,  866,  865,
    1308       869,  870,  872,  880,  873,  872,  870,  873,  874,  881,
    1309       869,  874,  882,  888,  884,  882,  883,  884,  885,  891,
    1310       895,  885,  892,  880,  881,  896,  883,  897,  899,  895,
    1311       898,  900,  901,  858,  857,  888,  852,  892,  896,  851,
    1312       891,  849,  901,  848,  840,  839,  899,  838,  837,  897,
    1313       836,  898,  835,  900,  905,  905,  905,  905,  905,  905,
    1314 
    1315       905,  905,  905,  905,  905,  905,  905,  906,  906,  906,
    1316       906,  906,  906,  906,  906,  906,  906,  906,  906,  906,
    1317       907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
    1318       907,  907,  907,  908,  834,  833,  908,  832,  908,  908,
    1319       908,  908,  908,  909,  831,  830,  829,  909,  909,  909,
    1320       909,  909,  909,  910,  910,  910,  910,  910,  910,  910,
    1321       910,  910,  910,  910,  910,  910,  911,  828,  827,  911,
    1322       819,  911,  911,  911,  911,  911,  912,  815,  912,  912,
    1323       808,  912,  912,  912,  912,  912,  912,  806,  912,  913,
    1324       805,  804,  913,  913,  913,  913,  913,  913,  913,  913,
    1325 
    1326       803,  913,  914,  914,  914,  914,  914,  914,  914,  914,
    1327       914,  914,  914,  914,  914,  915,  915,  802,  915,  801,
    1328       800,  799,  915,  916,  798,  797,  916,  796,  916,  916,
    1329       916,  916,  916,  917,  795,  917,  794,  793,  791,  917,
    1330       918,  790,  918,  789,  787,  780,  918,  919,  778,  919,
    1331       766,  765,  764,  919,  920,  763,  920,  762,  761,  760,
    1332       920,  921,  759,  921,  758,  755,  754,  921,  922,  753,
    1333       922,  747,  743,  742,  922,  923,  740,  923,  739,  722,
    1334       714,  923,  924,  711,  924,  706,  704,  700,  924,  925,
    1335       690,  925,  686,  684,  682,  925,  926,  681,  926,  927,
    1336 
    1337       927,  678,  927,  927,  927,  675,  927,  928,  928,  674,
    1338       928,  929,  673,  672,  929,  671,  929,  929,  929,  929,
    1339       929,  930,  670,  930,  667,  666,  664,  930,  931,  661,
    1340       931,  660,  659,  655,  931,  932,  628,  932,  624,  622,
    1341       620,  932,  933,  618,  933,  934,  616,  934,  610,  604,
    1342       602,  934,  935,  600,  935,  936,  598,  596,  936,  594,
    1343       936,  936,  936,  936,  936,  937,  937,  937,  937,  937,
    1344       937,  937,  937,  937,  937,  937,  937,  937,  938,  938,
    1345       938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
    1346       938,  939,  592,  939,  590,  589,  587,  939,  940,  584,
    1347 
    1348       940,  581,  574,  570,  940,  941,  569,  941,  566,  563,
    1349       558,  941,  942,  553,  942,  943,  550,  943,  527,  523,
    1350       521,  943,  944,  519,  944,  945,  517,  945,  515,  513,
    1351       512,  945,  946,  511,  946,  947,  510,  947,  498,  495,
    1352       493,  947,  948,  492,  948,  949,  491,  949,  489,  487,
    1353       484,  949,  950,  482,  950,  951,  480,  951,  478,  473,
    1354       455,  951,  952,  453,  952,  953,  445,  953,  443,  435,
    1355       433,  953,  954,  431,  954,  955,  405,  955,  403,  955,
    1356       401,  955,  956,  399,  956,  398,  956,  397,  956,  957,
    1357       957,  384,  957,  957,  957,  381,  957,  958,  372,  958,
    1358 
    1359       370,  369,  365,  958,  959,  363,  959,  361,  359,  355,
    1360       959,  960,  353,  960,  352,  351,  340,  960,  961,  324,
    1361       961,  962,  301,  962,  280,  278,  276,  962,  963,  275,
    1362       963,  964,  274,  964,  272,  271,  266,  964,  965,  262,
    1363       965,  966,  261,  966,  257,  254,  253,  966,  967,  242,
    1364       967,  968,  241,  234,  968,  233,  968,  968,  968,  968,
    1365       968,  969,  969,  969,  969,  969,  969,  969,  969,  969,
    1366       969,  969,  969,  969,  970,  230,  970,  220,  218,  217,
    1367       970,  971,  216,  971,  972,  210,  972,  209,  207,  202,
    1368       972,  973,  179,  973,  974,  150,  974,  148,  147,  141,
    1369 
    1370       974,  975,  139,  975,  976,  137,  976,  129,  126,  125,
    1371       976,  977,  121,  977,  978,  102,  978,   99,   96,   94,
    1372       978,  979,   87,  979,  980,   73,  980,   71,   67,   36,
    1373       980,  981,   33,  981,  982,   18,  982,   11,    4,    3,
    1374       982,  983,    0,  983,    0,    0,    0,  983,  984,    0,
    1375       984,  985,    0,  985,    0,    0,    0,  985,  986,    0,
    1376       986,  987,    0,  987,    0,  987,    0,  987,  988,    0,
    1377       988,    0,    0,    0,  988,  989,    0,  989,    0,    0,
    1378         0,  989,  990,    0,  990,  991,    0,  991,    0,    0,
    1379         0,  991,  992,    0,  992,  993,    0,  993,    0,    0,
    1380 
    1381         0,  993,  994,    0,  994,  995,    0,  995,    0,    0,
    1382         0,  995,  996,    0,  996,  997,    0,  997,    0,    0,
    1383         0,  997,  998,    0,  998,  999,    0,  999,    0,    0,
    1384         0,  999, 1000,    0, 1000, 1001,    0,    0, 1001,    0,
    1385      1001, 1001, 1001, 1001, 1001, 1002, 1002, 1002, 1002, 1002,
    1386      1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1003,    0,
    1387      1003,    0,    0,    0, 1003, 1004,    0, 1004, 1005,    0,
    1388      1005,    0,    0,    0, 1005, 1006,    0, 1006, 1007,    0,
    1389      1007,    0,    0,    0, 1007, 1008,    0, 1008, 1009,    0,
    1390      1009,    0,    0,    0, 1009, 1010,    0, 1010, 1011,    0,
    1391 
    1392      1011,    0,    0,    0, 1011, 1012,    0, 1012, 1013,    0,
    1393      1013,    0,    0,    0, 1013, 1014,    0, 1014, 1015,    0,
    1394      1015,    0,    0,    0, 1015, 1016,    0, 1016, 1017,    0,
    1395      1017,    0,    0,    0, 1017, 1018,    0, 1018, 1019,    0,
    1396      1019,    0,    0,    0, 1019, 1020,    0, 1020,    0,    0,
    1397         0, 1020, 1021,    0, 1021, 1022,    0, 1022,    0,    0,
    1398         0, 1022, 1023,    0, 1023, 1024,    0, 1024,    0,    0,
    1399         0, 1024, 1025,    0, 1025, 1026,    0, 1026,    0,    0,
    1400         0, 1026, 1027,    0, 1027, 1028,    0, 1028, 1029,    0,
    1401      1029, 1030,    0,    0, 1030,    0, 1030, 1030, 1030, 1030,
    1402 
    1403      1030, 1031,    0, 1031, 1032, 1032, 1032, 1032, 1032, 1032,
    1404      1032, 1032, 1032, 1032, 1032, 1032, 1032, 1033,    0, 1033,
    1405         0,    0,    0, 1033, 1034,    0, 1034, 1035,    0, 1035,
    1406         0,    0,    0, 1035, 1036,    0, 1036, 1037,    0, 1037,
    1407      1038,    0, 1038, 1039,    0,    0, 1039,    0, 1039, 1039,
    1408      1039, 1039, 1039, 1040,    0, 1040, 1041,    0, 1041, 1042,
    1409         0, 1042, 1043,    0, 1043, 1044,    0, 1044, 1045,    0,
    1410      1045, 1046,    0, 1046, 1047,    0, 1047,    0,    0,    0,
    1411      1047, 1048,    0, 1048, 1049,    0, 1049,    0,    0,    0,
    1412      1049, 1050,    0, 1050, 1051,    0, 1051, 1052,    0, 1052,
    1413 
    1414      1053,    0, 1053, 1054,    0, 1054,    0,    0,    0, 1054,
    1415      1055,    0,    0, 1055,    0, 1055, 1055, 1055, 1055, 1055,
    1416      1056,    0, 1056, 1057,    0, 1057, 1058,    0, 1058, 1059,
    1417         0, 1059,    0,    0,    0, 1059, 1060,    0, 1060,    0,
    1418         0,    0, 1060, 1061,    0, 1061,    0,    0,    0, 1061,
    1419      1062,    0, 1062, 1063,    0, 1063,    0,    0,    0, 1063,
    1420      1064,    0, 1064,    0,    0,    0, 1064, 1065,    0, 1065,
    1421         0,    0,    0, 1065, 1066,    0, 1066,    0,    0,    0,
    1422      1066, 1067,    0, 1067,    0,    0,    0, 1067, 1068,    0,
    1423      1068,    0,    0,    0, 1068, 1069,    0, 1069,    0,    0,
    1424 
    1425         0, 1069, 1070,    0, 1070,    0,    0,    0, 1070, 1071,
    1426         0, 1071,    0,    0,    0, 1071, 1072,    0, 1072,    0,
    1427         0,    0, 1072, 1073,    0, 1073,    0,    0,    0, 1073,
    1428      1074,    0, 1074,    0,    0,    0, 1074, 1075,    0, 1075,
    1429         0,    0,    0, 1075, 1076,    0, 1076,    0,    0,    0,
    1430      1076, 1077,    0, 1077,    0,    0,    0, 1077, 1078,    0,
    1431      1078,    0,    0,    0, 1078,  904,  904,  904,  904,  904,
    1432       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1433       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1434       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1435 
    1436       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1437       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1438       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1439       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1440       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
    1441       904
     1155      109,   50,   52,  143,   31,   50,   54,   52,  112,  154,
     1156       31,   56,  111,  898,  152,   52,   31,   52,  154,   88,
     1157       52,  108,   31,  128,   52,  128,  112,  108,   56,  143,
     1158       31,   38,  152,   56,  112,   38,   38,   58,   38,   60,
     1159       38,   38,  111,   38,   60,   38,   59,  111,  115,   58,
     1160       58,  117,  158,  108,   38,   38,   38,   60,   59,   58,
     1161      131,  130,   58,  130,  158,  114,   59,  132,   59,  117,
     1162      111,  114,  115,   59,  131,   38,  131,  117,   38,  132,
     1163
     1164      133,  132,  133,   60,  173,  153,   60,   68,   68,   68,
     1165       68,   68,   68,   69,   69,   68,  165,  114,   69,  173,
     1166       60,  134,  134,  153,  134,   38,   38,   81,   81,   81,
     1167       81,   81,   81,  165,   69,   69,   69,   69,   69,   69,
     1168       78,   78,  135,  155,  135,   78,  146,   78,  136,  136,
     1169      136,  146,   78,   83,   83,   83,   83,   83,   83,  155,
     1170      897,   78,   78,   78,   78,   84,   84,   84,   84,   84,
     1171       84,  156,   78,  104,  104,  104,  104,  104,  104,  105,
     1172      105,  105,  105,  138,  140,  138,  140,  151,   78,  156,
     1173      146,   78,  306,  894,  157,  162,   78,   78,  161,  306,
     1174
     1175       78,   78,  151,  160,  162,  176,  168,  105,   78,  151,
     1176      169,   78,  105,   78,   78,   78,  157,   78,   86,  160,
     1177      161,  164,   86,   86,  166,  176,  164,   86,   86,  168,
     1178       86,  163,   86,  167,  166,  105,  170,  169,  175,  164,
     1179      893,   86,   86,   86,  106,  172,  106,  106,  106,  106,
     1180      106,  106,  163,  163,  167,  171,  175,  170,  174,  177,
     1181      171,  178,   86,  106,  107,   86,  107,  172,  183,  107,
     1182      107,  107,  107,  107,  107,  174,  182,  183,  171,  106,
     1183      184,  182,  186,  178,  181,  106,  177,  222,  891,  222,
     1184      192,  180,  187,   86,  100,  100,  100,  100,  100,  100,
     1185
     1186      186,  181,  107,  187,  188,  189,  180,  184,  185,  188,
     1187      100,  100,  100,  180,  100,  100,  190,  192,  189,  185,
     1188      187,  194,  732,  198,  188,  195,  191,  100,  193,  185,
     1189      185,  191,  100,  100,  100,  159,  190,  100,  195,  100,
     1190      159,  159,  159,  198,  159,  159,  195,  193,  159,  196,
     1191      159,  732,  209,  191,  197,  159,  159,  159,  223,  159,
     1192      223,  224,  196,  224,  196,  194,  286,  197,  194,  201,
     1193      201,  201,  201,  201,  201,  202,  202,  201,  209,  225,
     1194      202,  204,  204,  286,  213,  213,  204,  206,  206,  213,
     1195      890,  883,  206,  225,  206,  225,  202,  202,  202,  202,
     1196
     1197      202,  202,  204,  204,  204,  204,  204,  204,  206,  206,
     1198      206,  206,  206,  206,  216,  216,  216,  216,  226,  227,
     1199      247,  227,  228,  228,  229,  228,  229,  230,  230,  230,
     1200      226,  232,  226,  232,  233,  240,  233,  238,  238,  241,
     1201      270,  241,  270,  239,  241,  239,  282,  216,  239,  239,
     1202      239,  239,  239,  239,  271,  247,  271,  882,  240,  282,
     1203      238,  241,  246,  241,  246,  246,  246,  246,  241,  245,
     1204      245,  245,  245,  245,  245,  248,  248,  248,  248,  248,
     1205      248,  239,  249,  249,  249,  249,  249,  249,  283,  284,
     1206      288,  287,  248,  285,  289,  252,  287,  246,  295,  289,
     1207
     1208      297,  326,  245,  260,  274,  297,  283,  284,  248,  285,
     1209      288,  881,  326,  295,  248,  250,  250,  250,  250,  250,
     1210      250,  252,  257,  259,  259,  259,  259,  259,  259,  260,
     1211      274,  250,  251,  250,  251,  250,  250,  251,  251,  251,
     1212      251,  251,  251,  298,  292,  257,  880,  257,  250,  294,
     1213      290,  257,  298,  250,  293,  250,  259,  257,  250,  291,
     1214      250,  264,  264,  264,  264,  264,  264,  292,  296,  257,
     1215      290,  300,  293,  257,  291,  294,  299,  257,  301,  303,
     1216      291,  291,  304,  305,  296,  296,  307,  304,  309,  299,
     1217      308,  879,  305,  313,  264,  310,  301,  303,  300,  311,
     1218
     1219      310,  312,  314,  318,  311,  316,  307,  312,  308,  309,
     1220      309,  314,  313,  315,  317,  319,  322,  320,  318,  315,
     1221      319,  316,  320,  317,  321,  323,  324,  327,  328,  321,
     1222      329,  328,  330,  331,  332,  322,  333,  334,  335,  324,
     1223      336,  337,  327,  323,  338,  330,  321,  335,  340,  329,
     1224      339,  342,  344,  345,  334,  331,  333,  332,  343,  346,
     1225      349,  340,  336,  350,  337,  347,  338,  343,  339,  348,
     1226      342,  345,  346,  347,  348,  349,  875,  351,  351,  352,
     1227      413,  350,  351,  410,  351,  352,  359,  359,  359,  359,
     1228      360,  360,  360,  360,  410,  369,  344,  369,  370,  413,
     1229
     1230      370,  377,  377,  377,  377,  377,  377,  379,  389,  379,
     1231      417,  394,  379,  379,  379,  379,  379,  379,  389,  359,
     1232      378,  378,  378,  378,  378,  378,  381,  381,  381,  381,
     1233      381,  381,  417,  411,  389,  394,  378,  412,  378,  415,
     1234      378,  378,  384,  384,  384,  384,  384,  384,  392,  411,
     1235      415,  390,  412,  378,  392,  396,  578,  421,  378,  381,
     1236      378,  390,  420,  378,  578,  378,  382,  382,  382,  382,
     1237      382,  382,  391,  396,  424,  384,  414,  390,  420,  421,
     1238      392,  396,  382,  382,  382,  414,  382,  382,  385,  385,
     1239      385,  385,  385,  385,  428,  391,  424,  391,  871,  382,
     1240
     1241      428,  391,  868,  395,  382,  382,  382,  391,  393,  382,
     1242      393,  382,  419,  393,  393,  393,  393,  393,  393,  391,
     1243      416,  385,  418,  391,  422,  419,  395,  391,  395,  416,
     1244      425,  418,  395,  430,  426,  423,  429,  422,  395,  426,
     1245      427,  431,  434,  439,  430,  438,  393,  436,  425,  432,
     1246      395,  423,  423,  441,  395,  427,  434,  429,  395,  436,
     1247      431,  440,  427,  442,  432,  439,  438,  443,  444,  442,
     1248      446,  448,  449,  450,  440,  451,  441,  444,  452,  453,
     1249      454,  456,  443,  458,  461,  446,  459,  460,  450,  454,
     1250      462,  448,  463,  452,  449,  464,  460,  451,  456,  453,
     1251
     1252      465,  466,  467,  470,  468,  461,  458,  469,  459,  465,
     1253      462,  468,  463,  471,  469,  467,  472,  464,  473,  466,
     1254      474,  475,  477,  480,  478,  472,  473,  479,  470,  480,
     1255      479,  507,  475,  478,  508,  471,  473,  474,  489,  489,
     1256      489,  489,  528,  531,  477,  500,  500,  500,  500,  500,
     1257      500,  502,  502,  502,  502,  502,  502,  507,  531,  528,
     1258      508,  500,  529,  500,  533,  500,  500,  503,  503,  503,
     1259      503,  503,  503,  867,  866,  529,  504,  533,  500,  532,
     1260      542,  506,  534,  500,  502,  500,  504,  505,  500,  505,
     1261      500,  506,  505,  505,  505,  505,  505,  505,  536,  532,
     1262
     1263      503,  542,  504,  536,  534,  535,  537,  506,  510,  510,
     1264      510,  510,  510,  510,  512,  865,  512,  537,  535,  512,
     1265      512,  512,  512,  512,  512,  505,  511,  511,  511,  511,
     1266      511,  511,  538,  539,  540,  538,  541,  546,  544,  543,
     1267      545,  549,  511,  544,  511,  548,  511,  511,  543,  540,
     1268      546,  545,  551,  539,  548,  541,  550,  552,  555,  511,
     1269      557,  551,  552,  549,  511,  558,  511,  555,  554,  511,
     1270      559,  511,  560,  550,  554,  562,  563,  557,  564,  565,
     1271      558,  560,  567,  568,  562,  559,  570,  571,  568,  574,
     1272      564,  575,  576,  563,  565,  570,  571,  567,  579,  580,
     1273
     1274      581,  582,  589,  586,  575,  587,  580,  590,  579,  576,
     1275      583,  574,  586,  582,  592,  587,  583,  864,  863,  589,
     1276      590,  638,  581,  610,  610,  610,  610,  610,  610,  611,
     1277      611,  611,  611,  611,  611,  613,  592,  613,  638,  637,
     1278      613,  613,  613,  613,  613,  613,  616,  616,  616,  616,
     1279      616,  616,  637,  617,  617,  642,  610,  612,  612,  612,
     1280      612,  612,  612,  618,  634,  619,  862,  619,  639,  634,
     1281      619,  636,  642,  612,  635,  612,  617,  612,  612,  616,
     1282      636,  635,  634,  645,  646,  640,  618,  619,  641,  619,
     1283      612,  639,  640,  644,  619,  612,  641,  612,  643,  646,
     1284
     1285      612,  643,  612,  647,  648,  645,  644,  649,  650,  651,
     1286      652,  650,  653,  654,  655,  657,  656,  660,  667,  658,
     1287      661,  648,  662,  655,  666,  647,  651,  653,  658,  649,
     1288      669,  662,  672,  654,  656,  684,  673,  657,  652,  680,
     1289      660,  672,  661,  673,  666,  667,  681,  669,  680,  683,
     1290      684,  716,  719,  722,  723,  861,  681,  723,  683,  703,
     1291      703,  703,  703,  703,  703,  707,  707,  707,  707,  707,
     1292      707,  717,  716,  722,  856,  703,  720,  703,  719,  703,
     1293      703,  717,  721,  720,  727,  724,  729,  721,  724,  725,
     1294      727,  730,  703,  728,  730,  729,  731,  703,  707,  703,
     1295
     1296      733,  734,  703,  733,  703,  735,  728,  725,  736,  737,
     1297      734,  736,  738,  739,  740,  741,  742,  731,  748,  745,
     1298      738,  749,  737,  739,  750,  742,  752,  740,  773,  774,
     1299      753,  735,  771,  773,  752,  776,  741,  745,  748,  753,
     1300      772,  778,  745,  749,  774,  750,  760,  760,  760,  760,
     1301      760,  760,  771,  775,  777,  780,  779,  772,  776,  779,
     1302      781,  783,  785,  775,  783,  785,  786,  778,  780,  787,
     1303      789,  777,  787,  786,  788,  790,  792,  788,  796,  760,
     1304      811,  813,  814,  815,  816,  789,  815,  817,  781,  818,
     1305      817,  820,  818,  821,  822,  824,  855,  822,  790,  792,
     1306
     1307      814,  796,  813,  827,  828,  825,  816,  811,  825,  820,
     1308      826,  829,  827,  826,  830,  845,  846,  824,  847,  821,
     1309      828,  847,  829,  846,  848,  849,  850,  851,  854,  850,
     1310      830,  854,  857,  848,  884,  857,  845,  858,  859,  860,
     1311      870,  853,  869,  849,  851,  870,  858,  873,  860,  849,
     1312      859,  869,  872,  874,  884,  872,  876,  873,  874,  876,
     1313      877,  878,  885,  877,  878,  886,  887,  888,  886,  889,
     1314      888,  892,  889,  895,  896,  899,  887,  885,  900,  901,
     1315      903,  902,  904,  852,  899,  905,  844,  843,  842,  896,
     1316      841,  900,  840,  892,  895,  905,  839,  838,  903,  837,
     1317
     1318      836,  901,  902,  835,  904,  909,  909,  909,  909,  909,
     1319      909,  909,  909,  909,  909,  909,  909,  909,  910,  910,
     1320      910,  910,  910,  910,  910,  910,  910,  910,  910,  910,
     1321      910,  911,  911,  911,  911,  911,  911,  911,  911,  911,
     1322      911,  911,  911,  911,  912,  834,  833,  912,  832,  912,
     1323      912,  912,  912,  912,  913,  831,  823,  819,  913,  913,
     1324      913,  913,  913,  913,  914,  914,  914,  914,  914,  914,
     1325      914,  914,  914,  914,  914,  914,  914,  915,  812,  810,
     1326      915,  809,  915,  915,  915,  915,  915,  916,  808,  916,
     1327      916,  807,  916,  916,  916,  916,  916,  916,  806,  916,
     1328
     1329      917,  805,  804,  917,  917,  917,  917,  917,  917,  917,
     1330      917,  803,  917,  918,  918,  918,  918,  918,  918,  918,
     1331      918,  918,  918,  918,  918,  918,  919,  919,  802,  919,
     1332      801,  800,  799,  919,  920,  798,  797,  920,  795,  920,
     1333      920,  920,  920,  920,  921,  794,  921,  793,  791,  784,
     1334      921,  922,  782,  922,  770,  769,  768,  922,  923,  767,
     1335      923,  766,  765,  764,  923,  924,  763,  924,  762,  759,
     1336      758,  924,  925,  757,  925,  751,  747,  746,  925,  926,
     1337      744,  926,  743,  726,  718,  926,  927,  715,  927,  710,
     1338      708,  704,  927,  928,  694,  928,  690,  688,  686,  928,
     1339
     1340      929,  685,  929,  682,  679,  678,  929,  930,  677,  930,
     1341      931,  931,  676,  931,  931,  931,  675,  931,  932,  932,
     1342      674,  932,  933,  671,  670,  933,  668,  933,  933,  933,
     1343      933,  933,  934,  665,  934,  664,  663,  659,  934,  935,
     1344      632,  935,  628,  626,  624,  935,  936,  622,  936,  620,
     1345      614,  608,  936,  937,  606,  937,  938,  604,  938,  602,
     1346      600,  598,  938,  939,  596,  939,  940,  594,  593,  940,
     1347      591,  940,  940,  940,  940,  940,  941,  941,  941,  941,
     1348      941,  941,  941,  941,  941,  941,  941,  941,  941,  942,
     1349      942,  942,  942,  942,  942,  942,  942,  942,  942,  942,
     1350
     1351      942,  942,  943,  588,  943,  585,  584,  577,  943,  944,
     1352      573,  944,  572,  569,  566,  944,  945,  561,  945,  556,
     1353      553,  530,  945,  946,  526,  946,  947,  524,  947,  522,
     1354      520,  518,  947,  948,  516,  948,  949,  515,  949,  514,
     1355      513,  501,  949,  950,  498,  950,  951,  496,  951,  495,
     1356      494,  492,  951,  952,  490,  952,  953,  487,  953,  485,
     1357      483,  481,  953,  954,  476,  954,  955,  457,  955,  455,
     1358      447,  445,  955,  956,  437,  956,  957,  435,  957,  433,
     1359      407,  405,  957,  958,  403,  958,  959,  401,  959,  400,
     1360      959,  399,  959,  960,  386,  960,  383,  960,  374,  960,
     1361
     1362      961,  961,  372,  961,  961,  961,  371,  961,  962,  367,
     1363      962,  365,  363,  361,  962,  963,  357,  963,  355,  354,
     1364      353,  963,  964,  341,  964,  325,  302,  281,  964,  965,
     1365      279,  965,  966,  277,  966,  276,  275,  273,  966,  967,
     1366      272,  967,  968,  267,  968,  263,  262,  258,  968,  969,
     1367      255,  969,  970,  254,  970,  243,  242,  235,  970,  971,
     1368      234,  971,  972,  231,  221,  972,  219,  972,  972,  972,
     1369      972,  972,  973,  973,  973,  973,  973,  973,  973,  973,
     1370      973,  973,  973,  973,  973,  974,  218,  974,  217,  211,
     1371      210,  974,  975,  208,  975,  976,  203,  976,  179,  150,
     1372
     1373      148,  976,  977,  147,  977,  978,  141,  978,  139,  137,
     1374      129,  978,  979,  126,  979,  980,  125,  980,  121,  102,
     1375       99,  980,  981,   96,  981,  982,   94,  982,   87,   73,
     1376       71,  982,  983,   67,  983,  984,   36,  984,   33,   18,
     1377       11,  984,  985,    4,  985,  986,    3,  986,    0,    0,
     1378        0,  986,  987,    0,  987,    0,    0,    0,  987,  988,
     1379        0,  988,  989,    0,  989,    0,    0,    0,  989,  990,
     1380        0,  990,  991,    0,  991,    0,  991,    0,  991,  992,
     1381        0,  992,    0,    0,    0,  992,  993,    0,  993,    0,
     1382        0,    0,  993,  994,    0,  994,  995,    0,  995,    0,
     1383
     1384        0,    0,  995,  996,    0,  996,  997,    0,  997,    0,
     1385        0,    0,  997,  998,    0,  998,  999,    0,  999,    0,
     1386        0,    0,  999, 1000,    0, 1000, 1001,    0, 1001,    0,
     1387        0,    0, 1001, 1002,    0, 1002, 1003,    0, 1003,    0,
     1388        0,    0, 1003, 1004,    0, 1004, 1005,    0,    0, 1005,
     1389        0, 1005, 1005, 1005, 1005, 1005, 1006, 1006, 1006, 1006,
     1390     1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1007,
     1391        0, 1007,    0,    0,    0, 1007, 1008,    0, 1008, 1009,
     1392        0, 1009,    0,    0,    0, 1009, 1010,    0, 1010, 1011,
     1393        0, 1011,    0,    0,    0, 1011, 1012,    0, 1012, 1013,
     1394
     1395        0, 1013,    0,    0,    0, 1013, 1014,    0, 1014, 1015,
     1396        0, 1015,    0,    0,    0, 1015, 1016,    0, 1016, 1017,
     1397        0, 1017,    0,    0,    0, 1017, 1018,    0, 1018, 1019,
     1398        0, 1019,    0,    0,    0, 1019, 1020,    0, 1020, 1021,
     1399        0, 1021,    0,    0,    0, 1021, 1022,    0, 1022, 1023,
     1400        0, 1023,    0,    0,    0, 1023, 1024,    0, 1024,    0,
     1401        0,    0, 1024, 1025,    0, 1025, 1026,    0, 1026,    0,
     1402        0,    0, 1026, 1027,    0, 1027, 1028,    0, 1028,    0,
     1403        0,    0, 1028, 1029,    0, 1029, 1030,    0, 1030,    0,
     1404        0,    0, 1030, 1031,    0, 1031, 1032,    0, 1032, 1033,
     1405
     1406        0, 1033, 1034,    0,    0, 1034,    0, 1034, 1034, 1034,
     1407     1034, 1034, 1035,    0, 1035, 1036, 1036, 1036, 1036, 1036,
     1408     1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1037,    0,
     1409     1037,    0,    0,    0, 1037, 1038,    0, 1038, 1039,    0,
     1410     1039,    0,    0,    0, 1039, 1040,    0, 1040, 1041,    0,
     1411     1041, 1042,    0, 1042, 1043,    0,    0, 1043,    0, 1043,
     1412     1043, 1043, 1043, 1043, 1044,    0, 1044, 1045,    0, 1045,
     1413     1046,    0, 1046, 1047,    0, 1047, 1048,    0, 1048, 1049,
     1414        0, 1049, 1050,    0, 1050, 1051,    0, 1051,    0,    0,
     1415        0, 1051, 1052,    0, 1052, 1053,    0, 1053,    0,    0,
     1416
     1417        0, 1053, 1054,    0, 1054, 1055,    0, 1055, 1056,    0,
     1418     1056, 1057,    0, 1057, 1058,    0, 1058,    0,    0,    0,
     1419     1058, 1059,    0,    0, 1059,    0, 1059, 1059, 1059, 1059,
     1420     1059, 1060,    0, 1060, 1061,    0, 1061, 1062,    0, 1062,
     1421     1063,    0, 1063,    0,    0,    0, 1063, 1064,    0, 1064,
     1422        0,    0,    0, 1064, 1065,    0, 1065,    0,    0,    0,
     1423     1065, 1066,    0, 1066, 1067,    0, 1067,    0,    0,    0,
     1424     1067, 1068,    0, 1068,    0,    0,    0, 1068, 1069,    0,
     1425     1069,    0,    0,    0, 1069, 1070,    0, 1070,    0,    0,
     1426        0, 1070, 1071,    0, 1071,    0,    0,    0, 1071, 1072,
     1427
     1428        0, 1072,    0,    0,    0, 1072, 1073,    0, 1073,    0,
     1429        0,    0, 1073, 1074,    0, 1074,    0,    0,    0, 1074,
     1430     1075,    0, 1075,    0,    0,    0, 1075, 1076,    0, 1076,
     1431        0,    0,    0, 1076, 1077,    0, 1077,    0,    0,    0,
     1432     1077, 1078,    0, 1078,    0,    0,    0, 1078, 1079,    0,
     1433     1079,    0,    0,    0, 1079, 1080,    0, 1080,    0,    0,
     1434        0, 1080, 1081,    0, 1081,    0,    0,    0, 1081, 1082,
     1435        0, 1082,    0,    0,    0, 1082,  908,  908,  908,  908,
     1436      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1437      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1438
     1439      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1440      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1441      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1442      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1443      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1444      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1445      908,  908
    14421446    } ;
    14431447
    14441448/* Table of booleans, true if rule could match eol. */
    1445 static yyconst flex_int32_t yy_rule_can_match_eol[186] =
     1449static yyconst flex_int32_t yy_rule_can_match_eol[187] =
    14461450    {   0,
    144714511, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14511455    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14521456    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1453     0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     1457    0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14541458    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14551459    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1456     0, 0, 0, 0, 0, 0,     };
     1460    0, 0, 0, 0, 0, 0, 0,     };
    14571461
    14581462static yy_state_type yy_last_accepting_state;
     
    14761480 * The contents of this file are covered under the licence agreement in the
    14771481 * file "LICENCE" distributed with Cforall.
    1478  * 
    1479  * lex.l -- 
    1480  * 
     1482 *
     1483 * lex.l --
     1484 *
    14811485 * Author           : Peter A. Buhr
    14821486 * Created On       : Sat Sep 22 08:58:10 2001
     
    15441548
    15451549
    1546 #line 1547 "Parser/lex.cc"
     1550#line 1551 "Parser/lex.cc"
    15471551
    15481552#define INITIAL 0
     
    17391743
    17401744                                   /* line directives */
    1741 #line 1742 "Parser/lex.cc"
     1745#line 1746 "Parser/lex.cc"
    17421746
    17431747        if ( !(yy_init) )
     
    17931797                                {
    17941798                                yy_current_state = (int) yy_def[yy_current_state];
    1795                                 if ( yy_current_state >= 905 )
     1799                                if ( yy_current_state >= 909 )
    17961800                                        yy_c = yy_meta[(unsigned int) yy_c];
    17971801                                }
     
    17991803                        ++yy_cp;
    18001804                        }
    1801                 while ( yy_base[yy_current_state] != 2866 );
     1805                while ( yy_base[yy_current_state] != 2877 );
    18021806
    18031807yy_find_action:
     
    23202324YY_RULE_SETUP
    23212325#line 260 "lex.ll"
     2326{ KEYWORD_RETURN(TTYPE); }                              // CFA
     2327        YY_BREAK
     2328case 93:
     2329YY_RULE_SETUP
     2330#line 261 "lex.ll"
    23222331{ KEYWORD_RETURN(TYPEDEF); }
    2323         YY_BREAK
    2324 case 93:
    2325 YY_RULE_SETUP
    2326 #line 261 "lex.ll"
    2327 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    23282332        YY_BREAK
    23292333case 94:
     
    23402344YY_RULE_SETUP
    23412345#line 264 "lex.ll"
     2346{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2347        YY_BREAK
     2348case 97:
     2349YY_RULE_SETUP
     2350#line 265 "lex.ll"
    23422351{ KEYWORD_RETURN(UNION); }
    23432352        YY_BREAK
    2344 case 97:
    2345 YY_RULE_SETUP
    2346 #line 265 "lex.ll"
     2353case 98:
     2354YY_RULE_SETUP
     2355#line 266 "lex.ll"
    23472356{ KEYWORD_RETURN(UNSIGNED); }
    23482357        YY_BREAK
    2349 case 98:
    2350 YY_RULE_SETUP
    2351 #line 266 "lex.ll"
     2358case 99:
     2359YY_RULE_SETUP
     2360#line 267 "lex.ll"
    23522361{ KEYWORD_RETURN(VALIST); }                     // GCC
    23532362        YY_BREAK
    2354 case 99:
    2355 YY_RULE_SETUP
    2356 #line 267 "lex.ll"
     2363case 100:
     2364YY_RULE_SETUP
     2365#line 268 "lex.ll"
    23572366{ KEYWORD_RETURN(VOID); }
    23582367        YY_BREAK
    2359 case 100:
    2360 YY_RULE_SETUP
    2361 #line 268 "lex.ll"
     2368case 101:
     2369YY_RULE_SETUP
     2370#line 269 "lex.ll"
    23622371{ KEYWORD_RETURN(VOLATILE); }
    2363         YY_BREAK
    2364 case 101:
    2365 YY_RULE_SETUP
    2366 #line 269 "lex.ll"
    2367 { KEYWORD_RETURN(VOLATILE); }                   // GCC
    23682372        YY_BREAK
    23692373case 102:
     
    23752379YY_RULE_SETUP
    23762380#line 271 "lex.ll"
     2381{ KEYWORD_RETURN(VOLATILE); }                   // GCC
     2382        YY_BREAK
     2383case 104:
     2384YY_RULE_SETUP
     2385#line 272 "lex.ll"
    23772386{ KEYWORD_RETURN(WHILE); }
    23782387        YY_BREAK
    2379 case 104:
    2380 YY_RULE_SETUP
    2381 #line 272 "lex.ll"
     2388case 105:
     2389YY_RULE_SETUP
     2390#line 273 "lex.ll"
    23822391{ NUMERIC_RETURN(ZERO_T); }                             // CFA
    23832392        YY_BREAK
    23842393/* identifier */
    2385 case 105:
    2386 YY_RULE_SETUP
    2387 #line 275 "lex.ll"
     2394case 106:
     2395YY_RULE_SETUP
     2396#line 276 "lex.ll"
    23882397{ IDENTIFIER_RETURN(); }
    23892398        YY_BREAK
    2390 case 106:
    2391 YY_RULE_SETUP
    2392 #line 276 "lex.ll"
     2399case 107:
     2400YY_RULE_SETUP
     2401#line 277 "lex.ll"
    23932402{ ATTRIBUTE_RETURN(); }
    23942403        YY_BREAK
    2395 case 107:
    2396 YY_RULE_SETUP
    2397 #line 277 "lex.ll"
     2404case 108:
     2405YY_RULE_SETUP
     2406#line 278 "lex.ll"
    23982407{ BEGIN BKQUOTE; }
    23992408        YY_BREAK
    2400 case 108:
    2401 YY_RULE_SETUP
    2402 #line 278 "lex.ll"
     2409case 109:
     2410YY_RULE_SETUP
     2411#line 279 "lex.ll"
    24032412{ IDENTIFIER_RETURN(); }
    24042413        YY_BREAK
    2405 case 109:
    2406 YY_RULE_SETUP
    2407 #line 279 "lex.ll"
     2414case 110:
     2415YY_RULE_SETUP
     2416#line 280 "lex.ll"
    24082417{ BEGIN 0; }
    24092418        YY_BREAK
    24102419/* numeric constants */
    2411 case 110:
    2412 YY_RULE_SETUP
    2413 #line 282 "lex.ll"
     2420case 111:
     2421YY_RULE_SETUP
     2422#line 283 "lex.ll"
    24142423{ NUMERIC_RETURN(ZERO); }                               // CFA
    24152424        YY_BREAK
    2416 case 111:
    2417 YY_RULE_SETUP
    2418 #line 283 "lex.ll"
     2425case 112:
     2426YY_RULE_SETUP
     2427#line 284 "lex.ll"
    24192428{ NUMERIC_RETURN(ONE); }                                // CFA
    2420         YY_BREAK
    2421 case 112:
    2422 YY_RULE_SETUP
    2423 #line 284 "lex.ll"
    2424 { NUMERIC_RETURN(INTEGERconstant); }
    24252429        YY_BREAK
    24262430case 113:
     
    24372441YY_RULE_SETUP
    24382442#line 287 "lex.ll"
     2443{ NUMERIC_RETURN(INTEGERconstant); }
     2444        YY_BREAK
     2445case 116:
     2446YY_RULE_SETUP
     2447#line 288 "lex.ll"
    24392448{ NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant
    24402449        YY_BREAK
    2441 case 116:
    2442 YY_RULE_SETUP
    2443 #line 288 "lex.ll"
     2450case 117:
     2451YY_RULE_SETUP
     2452#line 289 "lex.ll"
    24442453{ NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant
    2445         YY_BREAK
    2446 case 117:
    2447 YY_RULE_SETUP
    2448 #line 289 "lex.ll"
    2449 { NUMERIC_RETURN(FLOATINGconstant); }
    24502454        YY_BREAK
    24512455case 118:
     
    24542458{ NUMERIC_RETURN(FLOATINGconstant); }
    24552459        YY_BREAK
     2460case 119:
     2461YY_RULE_SETUP
     2462#line 291 "lex.ll"
     2463{ NUMERIC_RETURN(FLOATINGconstant); }
     2464        YY_BREAK
    24562465/* character constant, allows empty value */
    2457 case 119:
    2458 YY_RULE_SETUP
    2459 #line 293 "lex.ll"
     2466case 120:
     2467YY_RULE_SETUP
     2468#line 294 "lex.ll"
    24602469{ BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24612470        YY_BREAK
    2462 case 120:
    2463 YY_RULE_SETUP
    2464 #line 294 "lex.ll"
     2471case 121:
     2472YY_RULE_SETUP
     2473#line 295 "lex.ll"
    24652474{ strtext->append( yytext, yyleng ); }
    24662475        YY_BREAK
    2467 case 121:
    2468 /* rule 121 can match eol */
    2469 YY_RULE_SETUP
    2470 #line 295 "lex.ll"
     2476case 122:
     2477/* rule 122 can match eol */
     2478YY_RULE_SETUP
     2479#line 296 "lex.ll"
    24712480{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); }
    24722481        YY_BREAK
    24732482/* ' stop highlighting */
    24742483/* string constant */
    2475 case 122:
    2476 YY_RULE_SETUP
    2477 #line 299 "lex.ll"
     2484case 123:
     2485YY_RULE_SETUP
     2486#line 300 "lex.ll"
    24782487{ BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24792488        YY_BREAK
    2480 case 123:
    2481 YY_RULE_SETUP
    2482 #line 300 "lex.ll"
     2489case 124:
     2490YY_RULE_SETUP
     2491#line 301 "lex.ll"
    24832492{ strtext->append( yytext, yyleng ); }
    24842493        YY_BREAK
    2485 case 124:
    2486 /* rule 124 can match eol */
    2487 YY_RULE_SETUP
    2488 #line 301 "lex.ll"
     2494case 125:
     2495/* rule 125 can match eol */
     2496YY_RULE_SETUP
     2497#line 302 "lex.ll"
    24892498{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
    24902499        YY_BREAK
    24912500/* " stop highlighting */
    24922501/* common character/string constant */
    2493 case 125:
    2494 YY_RULE_SETUP
    2495 #line 305 "lex.ll"
     2502case 126:
     2503YY_RULE_SETUP
     2504#line 306 "lex.ll"
    24962505{ rm_underscore(); strtext->append( yytext, yyleng ); }
    24972506        YY_BREAK
    2498 case 126:
    2499 /* rule 126 can match eol */
    2500 YY_RULE_SETUP
    2501 #line 306 "lex.ll"
     2507case 127:
     2508/* rule 127 can match eol */
     2509YY_RULE_SETUP
     2510#line 307 "lex.ll"
    25022511{}                                              // continuation (ALSO HANDLED BY CPP)
    25032512        YY_BREAK
    2504 case 127:
    2505 YY_RULE_SETUP
    2506 #line 307 "lex.ll"
     2513case 128:
     2514YY_RULE_SETUP
     2515#line 308 "lex.ll"
    25072516{ strtext->append( yytext, yyleng ); } // unknown escape character
    25082517        YY_BREAK
    25092518/* punctuation */
    2510 case 128:
    2511 YY_RULE_SETUP
    2512 #line 310 "lex.ll"
    2513 { ASCIIOP_RETURN(); }
    2514         YY_BREAK
    25152519case 129:
    25162520YY_RULE_SETUP
     
    25412545YY_RULE_SETUP
    25422546#line 316 "lex.ll"
     2547{ ASCIIOP_RETURN(); }
     2548        YY_BREAK
     2549case 135:
     2550YY_RULE_SETUP
     2551#line 317 "lex.ll"
    25432552{ ASCIIOP_RETURN(); }                                   // also operator
    2544         YY_BREAK
    2545 case 135:
    2546 YY_RULE_SETUP
    2547 #line 317 "lex.ll"
    2548 { ASCIIOP_RETURN(); }
    25492553        YY_BREAK
    25502554case 136:
     
    25562560YY_RULE_SETUP
    25572561#line 319 "lex.ll"
     2562{ ASCIIOP_RETURN(); }
     2563        YY_BREAK
     2564case 138:
     2565YY_RULE_SETUP
     2566#line 320 "lex.ll"
    25582567{ ASCIIOP_RETURN(); }                                   // also operator
    25592568        YY_BREAK
    2560 case 138:
    2561 YY_RULE_SETUP
    2562 #line 320 "lex.ll"
     2569case 139:
     2570YY_RULE_SETUP
     2571#line 321 "lex.ll"
    25632572{ NAMEDOP_RETURN(ELLIPSIS); }
    25642573        YY_BREAK
    25652574/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2566 case 139:
    2567 YY_RULE_SETUP
    2568 #line 323 "lex.ll"
     2575case 140:
     2576YY_RULE_SETUP
     2577#line 324 "lex.ll"
    25692578{ RETURN_VAL('['); }
    25702579        YY_BREAK
    2571 case 140:
    2572 YY_RULE_SETUP
    2573 #line 324 "lex.ll"
     2580case 141:
     2581YY_RULE_SETUP
     2582#line 325 "lex.ll"
    25742583{ RETURN_VAL(']'); }
    25752584        YY_BREAK
    2576 case 141:
    2577 YY_RULE_SETUP
    2578 #line 325 "lex.ll"
     2585case 142:
     2586YY_RULE_SETUP
     2587#line 326 "lex.ll"
    25792588{ RETURN_VAL('{'); }
    25802589        YY_BREAK
    2581 case 142:
    2582 YY_RULE_SETUP
    2583 #line 326 "lex.ll"
     2590case 143:
     2591YY_RULE_SETUP
     2592#line 327 "lex.ll"
    25842593{ RETURN_VAL('}'); }
    25852594        YY_BREAK
    25862595/* operators */
    2587 case 143:
    2588 YY_RULE_SETUP
    2589 #line 329 "lex.ll"
    2590 { ASCIIOP_RETURN(); }
    2591         YY_BREAK
    25922596case 144:
    25932597YY_RULE_SETUP
     
    26572661case 157:
    26582662YY_RULE_SETUP
    2659 #line 344 "lex.ll"
     2663#line 343 "lex.ll"
     2664{ ASCIIOP_RETURN(); }
     2665        YY_BREAK
     2666case 158:
     2667YY_RULE_SETUP
     2668#line 345 "lex.ll"
    26602669{ NAMEDOP_RETURN(ICR); }
    26612670        YY_BREAK
    2662 case 158:
    2663 YY_RULE_SETUP
    2664 #line 345 "lex.ll"
     2671case 159:
     2672YY_RULE_SETUP
     2673#line 346 "lex.ll"
    26652674{ NAMEDOP_RETURN(DECR); }
    26662675        YY_BREAK
    2667 case 159:
    2668 YY_RULE_SETUP
    2669 #line 346 "lex.ll"
     2676case 160:
     2677YY_RULE_SETUP
     2678#line 347 "lex.ll"
    26702679{ NAMEDOP_RETURN(EQ); }
    26712680        YY_BREAK
    2672 case 160:
    2673 YY_RULE_SETUP
    2674 #line 347 "lex.ll"
     2681case 161:
     2682YY_RULE_SETUP
     2683#line 348 "lex.ll"
    26752684{ NAMEDOP_RETURN(NE); }
    26762685        YY_BREAK
    2677 case 161:
    2678 YY_RULE_SETUP
    2679 #line 348 "lex.ll"
     2686case 162:
     2687YY_RULE_SETUP
     2688#line 349 "lex.ll"
    26802689{ NAMEDOP_RETURN(LS); }
    26812690        YY_BREAK
    2682 case 162:
    2683 YY_RULE_SETUP
    2684 #line 349 "lex.ll"
     2691case 163:
     2692YY_RULE_SETUP
     2693#line 350 "lex.ll"
    26852694{ NAMEDOP_RETURN(RS); }
    26862695        YY_BREAK
    2687 case 163:
    2688 YY_RULE_SETUP
    2689 #line 350 "lex.ll"
     2696case 164:
     2697YY_RULE_SETUP
     2698#line 351 "lex.ll"
    26902699{ NAMEDOP_RETURN(LE); }
    26912700        YY_BREAK
    2692 case 164:
    2693 YY_RULE_SETUP
    2694 #line 351 "lex.ll"
     2701case 165:
     2702YY_RULE_SETUP
     2703#line 352 "lex.ll"
    26952704{ NAMEDOP_RETURN(GE); }
    26962705        YY_BREAK
    2697 case 165:
    2698 YY_RULE_SETUP
    2699 #line 352 "lex.ll"
     2706case 166:
     2707YY_RULE_SETUP
     2708#line 353 "lex.ll"
    27002709{ NAMEDOP_RETURN(ANDAND); }
    27012710        YY_BREAK
    2702 case 166:
    2703 YY_RULE_SETUP
    2704 #line 353 "lex.ll"
     2711case 167:
     2712YY_RULE_SETUP
     2713#line 354 "lex.ll"
    27052714{ NAMEDOP_RETURN(OROR); }
    27062715        YY_BREAK
    2707 case 167:
    2708 YY_RULE_SETUP
    2709 #line 354 "lex.ll"
     2716case 168:
     2717YY_RULE_SETUP
     2718#line 355 "lex.ll"
    27102719{ NAMEDOP_RETURN(ARROW); }
    27112720        YY_BREAK
    2712 case 168:
    2713 YY_RULE_SETUP
    2714 #line 355 "lex.ll"
     2721case 169:
     2722YY_RULE_SETUP
     2723#line 356 "lex.ll"
    27152724{ NAMEDOP_RETURN(PLUSassign); }
    27162725        YY_BREAK
    2717 case 169:
    2718 YY_RULE_SETUP
    2719 #line 356 "lex.ll"
     2726case 170:
     2727YY_RULE_SETUP
     2728#line 357 "lex.ll"
    27202729{ NAMEDOP_RETURN(MINUSassign); }
    27212730        YY_BREAK
    2722 case 170:
    2723 YY_RULE_SETUP
    2724 #line 357 "lex.ll"
     2731case 171:
     2732YY_RULE_SETUP
     2733#line 358 "lex.ll"
    27252734{ NAMEDOP_RETURN(MULTassign); }
    27262735        YY_BREAK
    2727 case 171:
    2728 YY_RULE_SETUP
    2729 #line 358 "lex.ll"
     2736case 172:
     2737YY_RULE_SETUP
     2738#line 359 "lex.ll"
    27302739{ NAMEDOP_RETURN(DIVassign); }
    27312740        YY_BREAK
    2732 case 172:
    2733 YY_RULE_SETUP
    2734 #line 359 "lex.ll"
     2741case 173:
     2742YY_RULE_SETUP
     2743#line 360 "lex.ll"
    27352744{ NAMEDOP_RETURN(MODassign); }
    27362745        YY_BREAK
    2737 case 173:
    2738 YY_RULE_SETUP
    2739 #line 360 "lex.ll"
     2746case 174:
     2747YY_RULE_SETUP
     2748#line 361 "lex.ll"
    27402749{ NAMEDOP_RETURN(ANDassign); }
    27412750        YY_BREAK
    2742 case 174:
    2743 YY_RULE_SETUP
    2744 #line 361 "lex.ll"
     2751case 175:
     2752YY_RULE_SETUP
     2753#line 362 "lex.ll"
    27452754{ NAMEDOP_RETURN(ORassign); }
    27462755        YY_BREAK
    2747 case 175:
    2748 YY_RULE_SETUP
    2749 #line 362 "lex.ll"
     2756case 176:
     2757YY_RULE_SETUP
     2758#line 363 "lex.ll"
    27502759{ NAMEDOP_RETURN(ERassign); }
    27512760        YY_BREAK
    2752 case 176:
    2753 YY_RULE_SETUP
    2754 #line 363 "lex.ll"
     2761case 177:
     2762YY_RULE_SETUP
     2763#line 364 "lex.ll"
    27552764{ NAMEDOP_RETURN(LSassign); }
    27562765        YY_BREAK
    2757 case 177:
    2758 YY_RULE_SETUP
    2759 #line 364 "lex.ll"
     2766case 178:
     2767YY_RULE_SETUP
     2768#line 365 "lex.ll"
    27602769{ NAMEDOP_RETURN(RSassign); }
    27612770        YY_BREAK
    2762 case 178:
    2763 YY_RULE_SETUP
    2764 #line 366 "lex.ll"
     2771case 179:
     2772YY_RULE_SETUP
     2773#line 367 "lex.ll"
    27652774{ NAMEDOP_RETURN(ATassign); }                   // CFA
    27662775        YY_BREAK
    27672776/* CFA, operator identifier */
    2768 case 179:
    2769 YY_RULE_SETUP
    2770 #line 369 "lex.ll"
     2777case 180:
     2778YY_RULE_SETUP
     2779#line 370 "lex.ll"
    27712780{ IDENTIFIER_RETURN(); }                                // unary
    2772         YY_BREAK
    2773 case 180:
    2774 YY_RULE_SETUP
    2775 #line 370 "lex.ll"
    2776 { IDENTIFIER_RETURN(); }
    27772781        YY_BREAK
    27782782case 181:
     
    27842788YY_RULE_SETUP
    27852789#line 372 "lex.ll"
     2790{ IDENTIFIER_RETURN(); }
     2791        YY_BREAK
     2792case 183:
     2793YY_RULE_SETUP
     2794#line 373 "lex.ll"
    27862795{ IDENTIFIER_RETURN(); }                // binary
    27872796        YY_BREAK
     
    28122821          an argument list.
    28132822        */
    2814 case 183:
    2815 YY_RULE_SETUP
    2816 #line 399 "lex.ll"
     2823case 184:
     2824YY_RULE_SETUP
     2825#line 400 "lex.ll"
    28172826{
    28182827        // 1 or 2 character unary operator ?
     
    28272836        YY_BREAK
    28282837/* unknown characters */
    2829 case 184:
    2830 YY_RULE_SETUP
    2831 #line 411 "lex.ll"
     2838case 185:
     2839YY_RULE_SETUP
     2840#line 412 "lex.ll"
    28322841{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    28332842        YY_BREAK
    2834 case 185:
    2835 YY_RULE_SETUP
    2836 #line 413 "lex.ll"
     2843case 186:
     2844YY_RULE_SETUP
     2845#line 414 "lex.ll"
    28372846ECHO;
    28382847        YY_BREAK
    2839 #line 2840 "Parser/lex.cc"
     2848#line 2849 "Parser/lex.cc"
    28402849case YY_STATE_EOF(INITIAL):
    28412850case YY_STATE_EOF(COMMENT):
     
    31343143                        {
    31353144                        yy_current_state = (int) yy_def[yy_current_state];
    3136                         if ( yy_current_state >= 905 )
     3145                        if ( yy_current_state >= 909 )
    31373146                                yy_c = yy_meta[(unsigned int) yy_c];
    31383147                        }
     
    31623171                {
    31633172                yy_current_state = (int) yy_def[yy_current_state];
    3164                 if ( yy_current_state >= 905 )
     3173                if ( yy_current_state >= 909 )
    31653174                        yy_c = yy_meta[(unsigned int) yy_c];
    31663175                }
    31673176        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3168         yy_is_jam = (yy_current_state == 904);
     3177        yy_is_jam = (yy_current_state == 908);
    31693178
    31703179        return yy_is_jam ? 0 : yy_current_state;
     
    38123821#define YYTABLES_NAME "yytables"
    38133822
    3814 #line 413 "lex.ll"
     3823#line 414 "lex.ll"
    38153824
    38163825
Note: See TracChangeset for help on using the changeset viewer.