]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c-parse.in (absdcl1): Allow attributes in explicit typespecs.
authorMumit Khan <khan@xraylith.wisc.edu>
Mon, 26 Apr 1999 22:35:58 +0000 (22:35 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 26 Apr 1999 22:35:58 +0000 (16:35 -0600)
        * c-parse.in (absdcl1): Allow attributes in explicit typespecs.
        (%expect): Update.
        * c-parse.y: Regenerate.
        * c-parse.c: Likewise.
        * objc/objc-parse.c: Likewise.
        * objc/objc-parse.y: Likewise.

Co-Authored-By: Donn Terry <donn@interix.com>
From-SVN: r26663

gcc/ChangeLog
gcc/c-parse.c
gcc/c-parse.in
gcc/c-parse.y
gcc/objc/objc-parse.c
gcc/objc/objc-parse.y

index ae7d4d0650b08902faa88e741819ad395056f250..fbda596410367ac3e9695cb163abb9b2d761a938 100644 (file)
@@ -1,3 +1,13 @@
+Mon Apr 26 23:28:54 1999  Mumit Khan  <khan@xraylith.wisc.edu>
+                          Donn Terry  <donn@interix.com>
+
+        * c-parse.in (absdcl1): Allow attributes in explicit typespecs.
+        (%expect): Update.
+        * c-parse.y: Regenerate.
+        * c-parse.c: Likewise.
+        * objc/objc-parse.c: Likewise.
+        * objc/objc-parse.y: Likewise.
+
 Mon Apr 26 21:17:41 1999  Jason Merrill  <jason@yorick.cygnus.com>
 
        * c-pragma.c (push_alignment): Don't ignore alignments greater than
index c12dc182bb85ea48e928b2ec96abed8eab4334e2..85a70035d5f82482f1b74b9f6a6e9ba7fd1ca9fd 100644 (file)
@@ -134,7 +134,7 @@ extern void yyprint                 PROTO ((FILE *, int, YYSTYPE));
 
 
 
-#define        YYFINAL         689
+#define        YYFINAL         692
 #define        YYFLAG          -32768
 #define        YYNTBASE        84
 
@@ -206,18 +206,18 @@ static const short yyprhs[] = {     0,
    820,   822,   825,   826,   830,   833,   837,   839,   843,   845,
    847,   850,   852,   856,   861,   868,   874,   876,   880,   882,
    884,   888,   891,   894,   895,   897,   899,   902,   903,   906,
-   910,   914,   917,   921,   926,   930,   933,   937,   940,   942,
-   944,   947,   950,   951,   953,   956,   957,   958,   960,   962,
-   965,   969,   971,   974,   976,   979,   986,   992,   998,  1001,
-  1004,  1009,  1010,  1015,  1016,  1017,  1021,  1026,  1030,  1032,
-  1034,  1036,  1038,  1041,  1042,  1047,  1049,  1053,  1054,  1055,
-  1063,  1069,  1072,  1073,  1074,  1075,  1088,  1089,  1096,  1099,
-  1102,  1105,  1109,  1116,  1125,  1136,  1149,  1153,  1158,  1160,
-  1162,  1163,  1170,  1174,  1180,  1183,  1187,  1188,  1190,  1191,
-  1193,  1194,  1196,  1198,  1202,  1207,  1209,  1213,  1214,  1217,
-  1220,  1221,  1226,  1229,  1230,  1232,  1234,  1238,  1240,  1244,
-  1249,  1254,  1259,  1264,  1269,  1270,  1273,  1275,  1278,  1280,
-  1284,  1286,  1290
+   910,   914,   917,   921,   926,   930,   933,   937,   940,   944,
+   946,   948,   951,   954,   955,   957,   960,   961,   962,   964,
+   966,   969,   973,   975,   978,   980,   983,   990,   996,  1002,
+  1005,  1008,  1013,  1014,  1019,  1020,  1021,  1025,  1030,  1034,
+  1036,  1038,  1040,  1042,  1045,  1046,  1051,  1053,  1057,  1058,
+  1059,  1067,  1073,  1076,  1077,  1078,  1079,  1092,  1093,  1100,
+  1103,  1106,  1109,  1113,  1120,  1129,  1140,  1153,  1157,  1162,
+  1164,  1166,  1167,  1174,  1178,  1184,  1187,  1191,  1192,  1194,
+  1195,  1197,  1198,  1200,  1202,  1206,  1211,  1213,  1217,  1218,
+  1221,  1224,  1225,  1230,  1233,  1234,  1236,  1238,  1242,  1244,
+  1248,  1253,  1258,  1263,  1268,  1273,  1274,  1277,  1279,  1282,
+  1284,  1288,  1290,  1294
 };
 
 static const short yyrhs[] = {    -1,
@@ -314,43 +314,43 @@ static const short yyrhs[] = {    -1,
      0,     0,   188,     7,     0,    59,   189,    76,     0,    50,
    188,   189,     0,    50,   188,     0,   189,    59,   228,     0,
    189,    60,    99,    83,     0,   189,    60,    83,     0,    59,
-   228,     0,    60,    99,    83,     0,    60,    83,     0,   191,
-     0,   208,     0,   191,   208,     0,   191,   193,     0,     0,
-   190,     0,     1,    77,     0,     0,     0,   196,     0,   197,
-     0,   196,   197,     0,    32,   239,    77,     0,   200,     0,
-     1,   200,     0,    82,     0,   199,    78,     0,   199,   194,
-   195,   121,   192,    78,     0,   199,   194,   195,     1,    78,
-     0,   199,   194,   195,   190,    78,     0,   202,   207,     0,
-   202,     1,     0,    15,    59,    99,    76,     0,     0,    18,
-   204,   207,    17,     0,     0,     0,   205,   206,   210,     0,
-   205,   206,   221,   207,     0,   205,   206,   209,     0,   210,
-     0,   221,     0,   200,     0,   218,     0,    99,    77,     0,
-     0,   201,    16,   211,   207,     0,   201,     0,   201,    16,
-     1,     0,     0,     0,    17,   212,    59,    99,    76,   213,
-   207,     0,   203,    59,    99,    76,    77,     0,   203,     1,
-     0,     0,     0,     0,    19,    59,   223,    77,   214,   223,
-    77,   215,   223,    76,   216,   207,     0,     0,    20,    59,
-    99,    76,   217,   207,     0,    23,    77,     0,    24,    77,
-     0,    25,    77,     0,    25,    99,    77,     0,    27,   222,
-    59,    99,    76,    77,     0,    27,   222,    59,    99,    38,
-   224,    76,    77,     0,    27,   222,    59,    99,    38,   224,
-    38,   224,    76,    77,     0,    27,   222,    59,    99,    38,
-   224,    38,   224,    38,   227,    76,    77,     0,    26,    97,
-    77,     0,    26,    50,    99,    77,     0,    77,     0,   219,
-     0,     0,    19,    59,   113,    76,   220,   207,     0,    21,
-   107,    38,     0,    21,   107,    10,   107,    38,     0,    22,
-    38,     0,    97,    38,   142,     0,     0,     7,     0,     0,
-    99,     0,     0,   225,     0,   226,     0,   225,    81,   226,
-     0,     9,    59,    99,    76,     0,   115,     0,   227,    81,
-   115,     0,     0,   229,   230,     0,   232,    76,     0,     0,
-   233,    77,   231,   230,     0,     1,    76,     0,     0,    10,
-     0,   233,     0,   233,    81,    10,     0,   234,     0,   233,
-    81,   234,     0,   125,   122,   166,   142,     0,   125,   122,
-   167,   142,     0,   125,   122,   186,   142,     0,   129,   122,
-   167,   142,     0,   129,   122,   186,   142,     0,     0,   236,
-   237,     0,   230,     0,   238,    76,     0,     3,     0,   238,
-    81,     3,     0,    97,     0,   239,    81,    97,     0,    31,
-     0
+   228,     0,    60,    99,    83,     0,    60,    83,     0,   143,
+   123,   189,     0,   191,     0,   208,     0,   191,   208,     0,
+   191,   193,     0,     0,   190,     0,     1,    77,     0,     0,
+     0,   196,     0,   197,     0,   196,   197,     0,    32,   239,
+    77,     0,   200,     0,     1,   200,     0,    82,     0,   199,
+    78,     0,   199,   194,   195,   121,   192,    78,     0,   199,
+   194,   195,     1,    78,     0,   199,   194,   195,   190,    78,
+     0,   202,   207,     0,   202,     1,     0,    15,    59,    99,
+    76,     0,     0,    18,   204,   207,    17,     0,     0,     0,
+   205,   206,   210,     0,   205,   206,   221,   207,     0,   205,
+   206,   209,     0,   210,     0,   221,     0,   200,     0,   218,
+     0,    99,    77,     0,     0,   201,    16,   211,   207,     0,
+   201,     0,   201,    16,     1,     0,     0,     0,    17,   212,
+    59,    99,    76,   213,   207,     0,   203,    59,    99,    76,
+    77,     0,   203,     1,     0,     0,     0,     0,    19,    59,
+   223,    77,   214,   223,    77,   215,   223,    76,   216,   207,
+     0,     0,    20,    59,    99,    76,   217,   207,     0,    23,
+    77,     0,    24,    77,     0,    25,    77,     0,    25,    99,
+    77,     0,    27,   222,    59,    99,    76,    77,     0,    27,
+   222,    59,    99,    38,   224,    76,    77,     0,    27,   222,
+    59,    99,    38,   224,    38,   224,    76,    77,     0,    27,
+   222,    59,    99,    38,   224,    38,   224,    38,   227,    76,
+    77,     0,    26,    97,    77,     0,    26,    50,    99,    77,
+     0,    77,     0,   219,     0,     0,    19,    59,   113,    76,
+   220,   207,     0,    21,   107,    38,     0,    21,   107,    10,
+   107,    38,     0,    22,    38,     0,    97,    38,   142,     0,
+     0,     7,     0,     0,    99,     0,     0,   225,     0,   226,
+     0,   225,    81,   226,     0,     9,    59,    99,    76,     0,
+   115,     0,   227,    81,   115,     0,     0,   229,   230,     0,
+   232,    76,     0,     0,   233,    77,   231,   230,     0,     1,
+    76,     0,     0,    10,     0,   233,     0,   233,    81,    10,
+     0,   234,     0,   233,    81,   234,     0,   125,   122,   166,
+   142,     0,   125,   122,   167,   142,     0,   125,   122,   186,
+   142,     0,   129,   122,   167,   142,     0,   129,   122,   186,
+   142,     0,     0,   236,   237,     0,   230,     0,   238,    76,
+     0,     3,     0,   238,    81,     3,     0,    97,     0,   239,
+    81,    97,     0,    31,     0
 };
 
 #endif
@@ -386,18 +386,18 @@ static const short yyrline[] = { 0,
   1373,  1376,  1381,  1383,  1385,  1399,  1406,  1411,  1417,  1422,
   1424,  1429,  1431,  1435,  1439,  1443,  1453,  1455,  1460,  1465,
   1468,  1472,  1475,  1479,  1482,  1485,  1488,  1492,  1495,  1499,
-  1503,  1505,  1507,  1509,  1511,  1513,  1515,  1517,  1527,  1535,
-  1537,  1539,  1543,  1545,  1548,  1551,  1562,  1564,  1569,  1571,
-  1574,  1588,  1591,  1594,  1596,  1598,  1606,  1614,  1625,  1630,
-  1633,  1647,  1656,  1660,  1664,  1668,  1674,  1678,  1683,  1686,
-  1691,  1694,  1695,  1712,  1717,  1720,  1732,  1734,  1744,  1754,
-  1755,  1763,  1766,  1778,  1782,  1799,  1809,  1818,  1823,  1828,
-  1833,  1837,  1841,  1852,  1859,  1866,  1873,  1884,  1890,  1893,
-  1898,  1921,  1955,  1986,  2017,  2032,  2046,  2050,  2054,  2057,
-  2062,  2064,  2067,  2069,  2073,  2078,  2081,  2087,  2092,  2097,
-  2099,  2108,  2109,  2115,  2117,  2127,  2129,  2133,  2136,  2142,
-  2152,  2161,  2170,  2180,  2194,  2199,  2204,  2206,  2215,  2218,
-  2223,  2226,  2230
+  1503,  1505,  1507,  1509,  1511,  1513,  1515,  1517,  1521,  1529,
+  1537,  1539,  1541,  1545,  1547,  1550,  1553,  1564,  1566,  1571,
+  1573,  1576,  1590,  1593,  1596,  1598,  1600,  1608,  1616,  1627,
+  1632,  1635,  1649,  1658,  1662,  1666,  1670,  1676,  1680,  1685,
+  1688,  1693,  1696,  1697,  1714,  1719,  1722,  1734,  1736,  1746,
+  1756,  1757,  1765,  1768,  1780,  1784,  1801,  1811,  1820,  1825,
+  1830,  1835,  1839,  1843,  1854,  1861,  1868,  1875,  1886,  1892,
+  1895,  1900,  1923,  1957,  1988,  2019,  2034,  2048,  2052,  2056,
+  2059,  2064,  2066,  2069,  2071,  2075,  2080,  2083,  2089,  2094,
+  2099,  2101,  2110,  2111,  2117,  2119,  2129,  2131,  2135,  2138,
+  2144,  2154,  2163,  2172,  2182,  2196,  2201,  2206,  2208,  2217,
+  2220,  2225,  2228,  2232
 };
 #endif
 
@@ -471,18 +471,18 @@ static const short yyr1[] = {     0,
    178,   178,   179,   179,   179,   180,   180,   180,   180,   180,
    180,   181,   181,   182,   182,   182,   183,   183,   183,   184,
    184,   185,   185,   186,   186,   187,   187,   188,   188,   189,
-   189,   189,   189,   189,   189,   189,   189,   189,   190,   191,
-   191,   191,   192,   192,   193,   194,   195,   195,   196,   196,
-   197,   198,   198,   199,   200,   200,   200,   200,   201,   201,
-   202,   204,   203,   205,   206,   207,   207,   208,   209,   209,
-   210,   210,   210,   211,   210,   210,   210,   212,   213,   210,
-   210,   210,   214,   215,   216,   210,   217,   210,   210,   210,
-   210,   210,   210,   210,   210,   210,   210,   210,   210,   218,
-   220,   219,   221,   221,   221,   221,   222,   222,   223,   223,
-   224,   224,   225,   225,   226,   227,   227,   229,   228,   230,
-   231,   230,   230,   232,   232,   232,   232,   233,   233,   234,
-   234,   234,   234,   234,   236,   235,   237,   237,   238,   238,
-   239,   239,   240
+   189,   189,   189,   189,   189,   189,   189,   189,   189,   190,
+   191,   191,   191,   192,   192,   193,   194,   195,   195,   196,
+   196,   197,   198,   198,   199,   200,   200,   200,   200,   201,
+   201,   202,   204,   203,   205,   206,   207,   207,   208,   209,
+   209,   210,   210,   210,   211,   210,   210,   210,   212,   213,
+   210,   210,   210,   214,   215,   216,   210,   217,   210,   210,
+   210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
+   218,   220,   219,   221,   221,   221,   221,   222,   222,   223,
+   223,   224,   224,   225,   225,   226,   227,   227,   229,   228,
+   230,   231,   230,   230,   232,   232,   232,   232,   233,   233,
+   234,   234,   234,   234,   234,   236,   235,   237,   237,   238,
+   238,   239,   239,   240
 };
 
 static const short yyr2[] = {     0,
@@ -515,23 +515,23 @@ static const short yyr2[] = {     0,
      1,     2,     0,     3,     2,     3,     1,     3,     1,     1,
      2,     1,     3,     4,     6,     5,     1,     3,     1,     1,
      3,     2,     2,     0,     1,     1,     2,     0,     2,     3,
-     3,     2,     3,     4,     3,     2,     3,     2,     1,     1,
-     2,     2,     0,     1,     2,     0,     0,     1,     1,     2,
-     3,     1,     2,     1,     2,     6,     5,     5,     2,     2,
-     4,     0,     4,     0,     0,     3,     4,     3,     1,     1,
-     1,     1,     2,     0,     4,     1,     3,     0,     0,     7,
-     5,     2,     0,     0,     0,    12,     0,     6,     2,     2,
-     2,     3,     6,     8,    10,    12,     3,     4,     1,     1,
-     0,     6,     3,     5,     2,     3,     0,     1,     0,     1,
-     0,     1,     1,     3,     4,     1,     3,     0,     2,     2,
-     0,     4,     2,     0,     1,     1,     3,     1,     3,     4,
-     4,     4,     4,     4,     0,     2,     1,     2,     1,     3,
-     1,     3,     1
+     3,     2,     3,     4,     3,     2,     3,     2,     3,     1,
+     1,     2,     2,     0,     1,     2,     0,     0,     1,     1,
+     2,     3,     1,     2,     1,     2,     6,     5,     5,     2,
+     2,     4,     0,     4,     0,     0,     3,     4,     3,     1,
+     1,     1,     1,     2,     0,     4,     1,     3,     0,     0,
+     7,     5,     2,     0,     0,     0,    12,     0,     6,     2,
+     2,     2,     3,     6,     8,    10,    12,     3,     4,     1,
+     1,     0,     6,     3,     5,     2,     3,     0,     1,     0,
+     1,     0,     1,     1,     3,     4,     1,     3,     0,     2,
+     2,     0,     4,     2,     0,     1,     1,     3,     1,     3,
+     4,     4,     4,     4,     4,     0,     2,     1,     2,     1,
+     3,     1,     3,     1
 };
 
 static const short yydefact[] = {     3,
      5,     0,     0,     0,   152,   143,   150,   142,   242,   238,
-   240,     0,     0,     0,   403,    18,     4,     8,     7,     0,
+   240,     0,     0,     0,   404,    18,     4,     8,     7,     0,
    118,   118,   138,   129,   139,   172,     0,     0,     0,   151,
      0,     6,    16,    17,   243,   239,   241,     0,     0,     0,
    237,   288,     0,     0,   160,   119,     0,    15,     0,    14,
@@ -540,7 +540,7 @@ static const short yydefact[] = {     3,
     56,    57,     0,     0,     0,    33,    35,    34,     0,    36,
     37,     0,    38,    39,     0,     0,    40,    58,     0,     0,
     62,    43,    45,    88,     0,   286,     0,   284,   148,     0,
-   284,   177,     0,     0,    11,     0,     0,    30,     0,   395,
+   284,   177,     0,     0,    11,     0,     0,    30,     0,   396,
      0,     0,   170,   222,   288,     0,     0,   158,   119,     0,
    214,   215,     0,     0,   128,   131,   155,   156,   130,   132,
    157,     0,     0,   244,     0,   248,     0,   252,    54,    55,
@@ -548,653 +548,661 @@ static const short yydefact[] = {     3,
     50,     0,    52,     0,     0,    79,    77,    75,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     97,    98,     0,     0,    41,     0,   100,    47,   153,   288,
-   378,     0,   282,   285,   146,   154,   287,   148,   283,   183,
-   184,   185,   182,     0,   175,   178,   289,   232,   231,   161,
-   162,   236,     0,   230,     0,     0,   235,     0,     0,    28,
-     0,   324,   106,   325,   169,   171,     0,     0,    13,     0,
-     0,    22,     0,   170,   395,     0,    12,    26,     0,   170,
-   270,   265,   118,   262,   118,     0,   263,   170,   263,   279,
-   280,   259,   277,     0,    90,    89,   314,   306,     0,     0,
-     9,    44,     0,     0,    85,    84,     0,     0,     0,     0,
-    73,    74,    72,    71,    70,    68,    69,    63,    64,    65,
-    66,    67,    96,    95,     0,    42,     0,   292,     0,   296,
-     0,   298,     0,   378,     0,   149,   147,     0,   177,    41,
-     0,     0,   399,   385,   118,   118,   397,     0,   386,   388,
-   396,     0,   233,   234,   305,     0,   108,   103,   107,     0,
-   167,   220,   216,   159,   221,    20,   166,   217,   219,     0,
-    24,   246,   324,   264,   324,   271,     0,   250,     0,     0,
-   260,     0,   259,   315,   307,    92,    60,    59,    51,    53,
-     0,     0,    78,    76,    93,    94,   291,   290,   379,   297,
-   293,   295,     0,   174,   176,    86,     0,   163,   383,   284,
-   284,   380,   381,     0,   398,     0,     0,    29,   312,   104,
-   118,   118,   135,     0,     0,   164,   218,     0,   266,   272,
-   325,   268,   170,   170,   281,   278,   170,     0,     0,     0,
-   308,   309,     0,    80,    83,   294,   179,     0,   181,   229,
-   288,   378,   119,   170,   170,   170,   288,   170,   170,     0,
-   387,   389,   400,   313,   111,     0,   112,     0,   135,   133,
-   189,   187,   186,   168,    21,     0,    25,   324,     0,   245,
-   249,   255,   170,   401,     0,     0,     0,   324,     0,     0,
-   115,   325,   300,   310,   202,    86,     0,     0,   199,     0,
-   201,     0,   257,   192,   198,     0,     0,     0,     0,   292,
-     0,   395,     0,   390,   391,   392,   292,   393,   394,   382,
-     0,     0,   162,   134,   137,   136,     0,   165,   273,     0,
-   170,   253,   311,     0,   317,   117,   116,   304,     0,   318,
-   302,   325,   301,     0,   205,     0,     0,   196,    61,     0,
-   191,     0,   204,   195,    81,   180,   227,   288,   228,   223,
-     0,   226,     0,   109,   110,     0,   170,     0,   274,   402,
-   316,     0,   152,     0,   338,   322,     0,     0,     0,     0,
-     0,     0,     0,     0,   367,   359,     0,     0,   113,   118,
-   118,   331,   336,     0,     0,   328,   329,   332,   360,   330,
-     0,     0,   207,     0,     0,   193,   194,     0,   224,   225,
-   188,   276,   170,     0,     0,   324,   369,     0,     0,   365,
-   349,   350,   351,     0,     0,     0,   368,     0,   170,   333,
-   124,     0,   125,     0,     0,   320,   325,   319,   342,     0,
-   126,     0,   200,   197,   275,     0,     0,     0,   370,    45,
-     0,     0,     0,   363,   352,     0,   357,     0,   366,     0,
-   122,   208,     0,   123,   211,   337,   324,     0,     0,   206,
-   321,     0,   323,   361,   343,   347,     0,   358,     0,   120,
-     0,   121,     0,   335,   326,   324,     0,   339,   324,   369,
-   324,   364,   371,     0,   209,   212,   327,   341,   324,   362,
-     0,   348,     0,     0,   372,   373,   353,     0,     0,   340,
-   344,     0,   371,     0,     0,   210,   213,   369,     0,     0,
-   354,   374,     0,   375,     0,     0,   345,   376,     0,   355,
-   324,     0,     0,   346,   356,   377,     0,     0,     0
+   379,     0,   119,   282,   285,   146,   154,   287,   148,   283,
+   183,   184,   185,   182,     0,   175,   178,   289,   232,   231,
+   161,   162,   236,     0,   230,     0,     0,   235,     0,     0,
+    28,     0,   325,   106,   326,   169,   171,     0,     0,    13,
+     0,     0,    22,     0,   170,   396,     0,    12,    26,     0,
+   170,   270,   265,   118,   262,   118,     0,   263,   170,   263,
+   279,   280,   259,   277,     0,    90,    89,   315,   307,     0,
+     0,     9,    44,     0,     0,    85,    84,     0,     0,     0,
+     0,    73,    74,    72,    71,    70,    68,    69,    63,    64,
+    65,    66,    67,    96,    95,     0,    42,     0,   292,     0,
+   296,     0,   298,     0,     0,   379,     0,   149,   147,     0,
+   177,    41,     0,     0,   400,   386,   118,   118,   398,     0,
+   387,   389,   397,     0,   233,   234,   306,     0,   108,   103,
+   107,     0,   167,   220,   216,   159,   221,    20,   166,   217,
+   219,     0,    24,   246,   325,   264,   325,   271,     0,   250,
+     0,     0,   260,     0,   259,   316,   308,    92,    60,    59,
+    51,    53,     0,     0,    78,    76,    93,    94,   291,   290,
+   380,   297,   299,   293,   295,     0,   174,   176,    86,     0,
+   163,   384,   284,   284,   381,   382,     0,   399,     0,     0,
+    29,   313,   104,   118,   118,   135,     0,     0,   164,   218,
+     0,   266,   272,   326,   268,   170,   170,   281,   278,   170,
+     0,     0,     0,   309,   310,     0,    80,    83,   294,   179,
+     0,   181,   229,   288,   379,   119,   170,   170,   170,   288,
+   119,   170,   170,     0,   388,   390,   401,   314,   111,     0,
+   112,     0,   135,   133,   189,   187,   186,   168,    21,     0,
+    25,   325,     0,   245,   249,   255,   170,   402,     0,     0,
+     0,   325,     0,     0,   115,   326,   301,   311,   202,    86,
+     0,     0,   199,     0,   201,     0,   257,   192,   198,     0,
+     0,     0,     0,   292,     0,   396,     0,   391,   392,   393,
+   292,     0,   394,   395,   383,     0,     0,   162,   134,   137,
+   136,     0,   165,   273,     0,   170,   253,   312,     0,   318,
+   117,   116,   305,     0,   319,   303,   326,   302,     0,   205,
+     0,     0,   196,    61,     0,   191,     0,   204,   195,    81,
+   180,   227,   228,   223,     0,   226,     0,   109,   110,     0,
+   170,     0,   274,   403,   317,     0,   152,     0,   339,   323,
+     0,     0,     0,     0,     0,     0,     0,     0,   368,   360,
+     0,     0,   113,   118,   118,   332,   337,     0,     0,   329,
+   330,   333,   361,   331,     0,     0,   207,     0,     0,   193,
+   194,   224,   225,   188,   276,   170,     0,     0,   325,   370,
+     0,     0,   366,   350,   351,   352,     0,     0,     0,   369,
+     0,   170,   334,   124,     0,   125,     0,     0,   321,   326,
+   320,   343,     0,   126,     0,   200,   197,   275,     0,     0,
+     0,   371,    45,     0,     0,     0,   364,   353,     0,   358,
+     0,   367,     0,   122,   208,     0,   123,   211,   338,   325,
+     0,     0,   206,   322,     0,   324,   362,   344,   348,     0,
+   359,     0,   120,     0,   121,     0,   336,   327,   325,     0,
+   340,   325,   370,   325,   365,   372,     0,   209,   212,   328,
+   342,   325,   363,     0,   349,     0,     0,   373,   374,   354,
+     0,     0,   341,   345,     0,   372,     0,     0,   210,   213,
+   370,     0,     0,   355,   375,     0,   376,     0,     0,   346,
+   377,     0,   356,   325,     0,     0,   347,   357,   378,     0,
+     0,     0
 };
 
-static const short yydefgoto[] = {   687,
-     1,     2,     3,    17,    18,    19,   223,   375,   229,   378,
-   112,   306,   450,    85,   144,   275,    87,    88,    89,    90,
-    91,   393,    92,   260,   259,   257,   458,   258,    93,   145,
-    94,   210,   211,   212,   370,   437,   438,    20,   107,   539,
-   295,    57,   371,   420,   296,    23,    98,   185,    24,   129,
-   117,    44,   113,   118,   426,    45,   374,   215,   216,    26,
-   194,   195,   196,   424,   477,   452,   453,   454,   555,   455,
-   497,   456,   457,   611,   631,   658,   614,   633,   659,   201,
-   121,   507,   122,    27,    28,    29,    30,   237,   239,   244,
-   137,   501,   332,   132,   133,   234,   379,   380,   242,   243,
-   100,   183,   101,   103,   184,   439,   440,   489,   213,   335,
-   390,   391,   392,   368,   248,   369,   543,   544,   545,   566,
-   587,   310,   588,   443,   546,   547,   617,   565,   649,   640,
-   668,   681,   641,   548,   549,   639,   550,   578,   601,   654,
-   655,   656,   679,   280,   281,   297,   410,   298,   299,   300,
-   204,   205,   301,   302,   435,    95
+static const short yydefgoto[] = {   690,
+     1,     2,     3,    17,    18,    19,   224,   378,   230,   381,
+   112,   308,   454,    85,   144,   276,    87,    88,    89,    90,
+    91,   396,    92,   261,   260,   258,   462,   259,    93,   145,
+    94,   211,   212,   213,   373,   441,   442,    20,   107,   543,
+   297,    57,   374,   424,   298,    23,    98,   186,    24,   129,
+   117,    44,   113,   118,   430,    45,   377,   216,   217,    26,
+   195,   196,   197,   428,   482,   456,   457,   458,   559,   459,
+   502,   460,   461,   614,   634,   661,   617,   636,   662,   202,
+   121,   407,   122,    27,    28,    29,    30,   238,   240,   245,
+   137,   506,   334,   132,   133,   235,   382,   383,   243,   244,
+   100,   184,   101,   103,   185,   443,   444,   494,   214,   337,
+   393,   394,   395,   371,   249,   372,   547,   548,   549,   569,
+   590,   312,   591,   447,   550,   551,   620,   568,   652,   643,
+   671,   684,   644,   552,   553,   642,   554,   581,   604,   657,
+   658,   659,   682,   281,   282,   299,   414,   300,   301,   302,
+   205,   206,   303,   304,   439,    95
 };
 
-static const short yypact[] = {    74,
-    97,  2227,  2227,    54,-32768,-32768,-32768,-32768,    17,    17,
-    17,    87,    94,   134,-32768,-32768,-32768,-32768,-32768,   369,
-     5,   476,   261,-32768,    17,-32768,    59,    61,    90,-32768,
-  2227,-32768,-32768,-32768,    17,    17,    17,  2089,  2023,   189,
--32768,-32768,   369,   129,-32768,    17,   320,-32768,   519,-32768,
-   369,   261,-32768,    17,-32768,-32768,   793,-32768,-32768,-32768,
--32768,   114,-32768,   181,-32768,   191,-32768,-32768,-32768,-32768,
--32768,-32768,  2089,  2089,   241,-32768,-32768,-32768,  2089,-32768,
--32768,   708,-32768,-32768,  2089,    40,   211,-32768,  2116,  2143,
--32768,  2293,  1062,   286,  2089,-32768,   247,   210,-32768,   254,
-  1674,   639,   272,   276,-32768,   519,   369,-32768,   238,-32768,
-  1451,   357,    17,-32768,-32768,   519,   137,-32768,    17,  1438,
-   378,   395,   232,  1376,   793,-32768,-32768,-32768,-32768,    17,
--32768,   259,   870,-32768,   282,-32768,   228,-32768,-32768,-32768,
--32768,-32768,   305,   307,   328,   337,-32768,   277,  2089,   708,
--32768,   708,-32768,  2089,  2089,   355,-32768,-32768,  2089,  2089,
-  2089,  2089,  2089,  2089,  2089,  2089,  2089,  2089,  2089,  2089,
--32768,-32768,   241,   241,  2089,  2089,-32768,-32768,-32768,-32768,
-   210,  1478,-32768,   398,   438,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,    14,-32768,   361,-32768,   395,-32768,-32768,
-   400,   395,   426,-32768,   402,  1533,-32768,   363,   371,-32768,
-   767,    48,-32768,-32768,   430,    17,   461,   281,-32768,   519,
-   519,-32768,   357,    17,-32768,  1560,-32768,-32768,   357,    17,
--32768,-32768,   385,   392,   209,  1323,-32768,    17,-32768,-32768,
-   457,   393,-32768,   228,-32768,-32768,-32768,   416,   420,  1912,
--32768,  2293,   421,   423,  2293,  2293,  2089,   463,  2089,  2089,
-  1667,  1881,  2060,   936,  1098,   760,   760,   294,   294,-32768,
--32768,-32768,-32768,-32768,   432,   211,   419,   246,   315,-32768,
-  1052,-32768,   431,-32768,  1615,-32768,   438,   433,   639,  2170,
-    44,   437,-32768,-32768,-32768,  1542,-32768,   439,   239,-32768,
--32768,    66,-32768,-32768,-32768,    47,-32768,-32768,-32768,  1027,
--32768,   378,-32768,-32768,   378,-32768,   480,-32768,-32768,   436,
--32768,-32768,-32768,-32768,-32768,-32768,   443,-32768,   447,  2089,
-   241,   449,   393,-32768,   496,-32768,-32768,-32768,-32768,-32768,
-   493,  2089,  2328,  1586,-32768,-32768,   398,-32768,-32768,-32768,
--32768,-32768,   455,-32768,-32768,    99,   465,-32768,-32768,   221,
-   374,-32768,-32768,  1465,-32768,   543,   328,-32768,-32768,-32768,
-   471,   172,-32768,  1312,    47,-32768,-32768,    47,   469,-32768,
--32768,   469,    17,    17,  2293,-32768,    17,   477,   241,   813,
-   496,-32768,  1132,-32768,  2222,-32768,-32768,  2089,-32768,-32768,
--32768,   374,    17,   135,   258,    17,-32768,   258,    17,  1052,
--32768,-32768,-32768,-32768,-32768,   519,-32768,   369,-32768,   845,
--32768,-32768,  2293,-32768,-32768,  1312,-32768,-32768,   205,-32768,
--32768,-32768,    17,-32768,   278,   394,   646,   478,   483,   912,
--32768,-32768,-32768,-32768,-32768,   516,   241,  2089,-32768,   520,
-  2293,   485,   484,-32768,-32768,   123,  1252,  2089,   111,   167,
-   688,-32768,  1642,-32768,-32768,-32768,   269,-32768,-32768,-32768,
-   301,   311,   225,   845,-32768,-32768,  1132,-32768,-32768,  2089,
-   160,-32768,-32768,   241,-32768,-32768,-32768,-32768,   486,-32768,
--32768,-32768,-32768,  1778,-32768,  2266,  1132,-32768,-32768,  1192,
--32768,  1367,-32768,-32768,  2222,-32768,   417,-32768,   417,-32768,
-  1697,-32768,   489,-32768,-32768,   490,  1799,  2089,-32768,-32768,
--32768,  1858,   529,   514,-32768,-32768,   515,   534,  2089,   537,
-   502,   518,  2036,    52,   589,-32768,   559,   522,-32768,   523,
-   607,-32768,   585,   995,    45,-32768,-32768,-32768,-32768,-32768,
-  1969,  2089,-32768,   525,  1367,-32768,-32768,   950,-32768,-32768,
--32768,-32768,  1799,  2089,   545,-32768,  2089,  2089,  1722,-32768,
--32768,-32768,-32768,   528,  2089,   532,-32768,   557,    17,-32768,
--32768,   519,-32768,   369,  1075,-32768,-32768,-32768,-32768,  2089,
--32768,  2248,-32768,-32768,-32768,   541,  2089,   601,-32768,   849,
-   546,   549,  2089,-32768,-32768,   556,-32768,  2089,-32768,   317,
--32768,   359,   345,-32768,   672,-32768,-32768,  1858,   550,-32768,
--32768,   558,-32768,-32768,-32768,-32768,  2315,-32768,    23,-32768,
-   357,-32768,   357,-32768,-32768,-32768,   561,-32768,-32768,  2089,
--32768,-32768,   613,   563,-32768,-32768,-32768,-32768,-32768,-32768,
-   571,-32768,   577,    33,   581,-32768,-32768,   328,   328,-32768,
--32768,  2089,   613,   606,   613,-32768,-32768,  2089,   602,    34,
--32768,-32768,   609,-32768,   426,   610,-32768,   286,   157,-32768,
--32768,   611,   426,-32768,-32768,   286,   690,   693,-32768
+static const short yypact[] = {    95,
+   110,  2206,  2206,   260,-32768,-32768,-32768,-32768,    40,    40,
+    40,    57,    59,    89,-32768,-32768,-32768,-32768,-32768,    42,
+    99,  2234,    79,-32768,    40,-32768,    87,    93,   108,-32768,
+  2206,-32768,-32768,-32768,    40,    40,    40,  2068,  2002,   125,
+-32768,-32768,    42,   147,-32768,    40,  1355,-32768,   257,-32768,
+    42,    79,-32768,    40,-32768,-32768,   696,-32768,-32768,-32768,
+-32768,    76,-32768,   124,-32768,   132,-32768,-32768,-32768,-32768,
+-32768,-32768,  2068,  2068,   373,-32768,-32768,-32768,  2068,-32768,
+-32768,   721,-32768,-32768,  2068,   149,   153,-32768,  2095,  2122,
+-32768,  2335,   881,   231,  2068,-32768,   186,   319,-32768,   203,
+   578,   708,   627,   304,-32768,   257,    42,-32768,   194,-32768,
+  1430,   438,    40,-32768,-32768,   257,   177,-32768,    40,   276,
+   398,   417,   188,  1417,   696,-32768,-32768,-32768,-32768,    40,
+-32768,   208,   778,-32768,   214,-32768,   468,-32768,-32768,-32768,
+-32768,-32768,   223,   269,   288,   312,-32768,   315,  2068,   721,
+-32768,   721,-32768,  2068,  2068,   362,-32768,-32768,  2068,  2068,
+  2068,  2068,  2068,  2068,  2068,  2068,  2068,  2068,  2068,  2068,
+-32768,-32768,   373,   373,  2068,  2068,-32768,-32768,-32768,-32768,
+   319,  1457,    40,-32768,   426,   760,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,    50,-32768,   344,-32768,   417,-32768,
+-32768,   385,   417,   419,-32768,   611,  1512,-32768,   349,   361,
+-32768,   316,    70,-32768,-32768,   405,    40,   545,   323,-32768,
+   257,   257,-32768,   438,    40,-32768,  1539,-32768,-32768,   438,
+    40,-32768,-32768,   428,   370,   198,   953,-32768,    40,-32768,
+-32768,   413,   383,-32768,   468,-32768,-32768,-32768,   376,   391,
+  1891,-32768,  2335,   402,   411,  2335,  2335,  2068,   443,  2068,
+  2068,  1564,  1645,  1859,  1078,   747,   838,   838,   356,   356,
+-32768,-32768,-32768,-32768,-32768,   432,   153,   412,   463,   485,
+-32768,   871,-32768,   434,   319,-32768,  1594,-32768,   760,   445,
+   708,  2149,    54,   448,-32768,-32768,-32768,  1036,-32768,   450,
+   197,-32768,-32768,    81,-32768,-32768,-32768,    39,-32768,-32768,
+-32768,   846,-32768,   398,-32768,-32768,   398,-32768,   483,-32768,
+-32768,   452,-32768,-32768,-32768,-32768,-32768,-32768,   461,-32768,
+   473,  2068,   373,   480,   383,-32768,   496,-32768,-32768,-32768,
+-32768,-32768,   508,  2068,  2258,  1483,-32768,-32768,   426,-32768,
+-32768,-32768,   426,-32768,-32768,   493,-32768,-32768,    85,   510,
+-32768,-32768,   550,   497,-32768,-32768,  1006,-32768,   585,   288,
+-32768,-32768,-32768,   512,   328,-32768,  1291,    39,-32768,-32768,
+    39,   513,-32768,-32768,   513,    40,    40,  2335,-32768,    40,
+   515,   373,   814,   496,-32768,  1111,-32768,  2351,-32768,-32768,
+  2068,-32768,-32768,-32768,   497,    40,   133,   140,    40,-32768,
+    40,   140,    40,   871,-32768,-32768,-32768,-32768,-32768,   257,
+-32768,    42,-32768,   692,-32768,-32768,  2335,-32768,-32768,  1291,
+-32768,-32768,   430,-32768,-32768,-32768,    40,-32768,   220,   433,
+   641,   518,   520,   894,-32768,-32768,-32768,-32768,-32768,   563,
+   373,  2068,-32768,   564,  2335,   525,   526,-32768,-32768,   326,
+  1231,  2068,   146,   500,   550,-32768,  1621,-32768,-32768,-32768,
+   423,   497,-32768,-32768,-32768,   237,   250,   112,   692,-32768,
+-32768,  1111,-32768,-32768,  2068,    49,-32768,-32768,   373,-32768,
+-32768,-32768,-32768,   541,-32768,-32768,-32768,-32768,  1757,-32768,
+  2245,  1111,-32768,-32768,  1171,-32768,  1346,-32768,-32768,  2351,
+-32768,   504,   504,-32768,  1676,-32768,   537,-32768,-32768,   544,
+  1778,  2068,-32768,-32768,-32768,  1837,   588,   570,-32768,-32768,
+   572,   576,  2068,   598,   566,   596,  2015,   193,   633,-32768,
+   638,   601,-32768,   602,  2238,-32768,   664,   974,    66,-32768,
+-32768,-32768,-32768,-32768,  1948,  2068,-32768,   604,  1346,-32768,
+-32768,-32768,-32768,-32768,-32768,  1778,  2068,   624,-32768,  2068,
+  2068,  1701,-32768,-32768,-32768,-32768,   615,  2068,   616,-32768,
+   629,    40,-32768,-32768,   257,-32768,    42,  1054,-32768,-32768,
+-32768,-32768,  2068,-32768,  2290,-32768,-32768,-32768,   618,  2068,
+   714,-32768,   687,   659,   662,  2068,-32768,-32768,   666,-32768,
+  2068,-32768,   271,-32768,   266,   284,-32768,   158,-32768,-32768,
+  1837,   663,-32768,-32768,   672,-32768,-32768,-32768,-32768,  2308,
+-32768,    24,-32768,   438,-32768,   438,-32768,-32768,-32768,   674,
+-32768,-32768,  2068,-32768,-32768,   744,   679,-32768,-32768,-32768,
+-32768,-32768,-32768,   681,-32768,   700,    43,   684,-32768,-32768,
+   288,   288,-32768,-32768,  2068,   744,   691,   744,-32768,-32768,
+  2068,   702,    61,-32768,-32768,   705,-32768,   419,   706,-32768,
+   231,   176,-32768,-32768,   709,   419,-32768,-32768,   231,   787,
+   789,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    81,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -24,-32768,   -38,   407,  -139,   193,-32768,-32768,
-    -4,-32768,   422,-32768,-32768,-32768,-32768,-32768,   131,-32768,
-  -196,  -202,   491,-32768,-32768,   268,-32768,    -5,   -91,   156,
-     9,   657,-32768,   308,    11,    -7,   -88,   542,     4,  -163,
-  -378,   -45,  -100,   -65,-32768,-32768,-32768,   223,    57,    82,
--32768,   424,-32768,   303,-32768,  -401,-32768,   233,-32768,  -422,
--32768,-32768,   279,-32768,-32768,-32768,-32768,-32768,-32768,   -39,
-   -59,  -316,   -18,-32768,-32768,-32768,   -33,-32768,-32768,-32768,
--32768,-32768,   401,   -32,-32768,   507,   425,   316,   501,   415,
-    39,   -67,   -79,   -97,  -152,   321,-32768,-32768,  -179,-32768,
--32768,-32768,   364,  -209,-32768,  -126,-32768,-32768,-32768,-32768,
-   -89,  -331,  -514,   314,-32768,   142,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   143,-32768,  -553,   102,
--32768,   101,-32768,   492,-32768,  -242,-32768,-32768,-32768,   405,
-  -195,-32768,-32768,-32768,-32768,     6
+-32768,-32768,-32768,   103,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -24,-32768,   -38,   516,  -110,   477,-32768,-32768,
+   -21,-32768,   255,-32768,-32768,-32768,-32768,-32768,   232,-32768,
+  -194,  -199,   591,-32768,-32768,   363,-32768,    -3,   -60,   252,
+    10,   757,-32768,   389,    19,   -14,   -90,   635,    27,  -169,
+  -390,   -49,  -114,   -68,-32768,-32768,-32768,  -171,    26,    68,
+-32768,   522,-32768,   386,-32768,  -347,-32768,   325,-32768,  -405,
+-32768,-32768,   406,-32768,-32768,-32768,-32768,-32768,-32768,   -42,
+   -77,   105,    -9,-32768,-32768,-32768,   -43,-32768,-32768,-32768,
+-32768,-32768,   511,   -37,-32768,   612,   538,   435,   625,   546,
+   -35,   -92,   -72,   -91,  -105,   429,-32768,-32768,  -185,-32768,
+-32768,-32768,   486,    16,-32768,  -125,-32768,-32768,-32768,-32768,
+   -57,  -361,  -461,   456,-32768,   261,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   283,-32768,  -503,   226,
+-32768,   238,-32768,   621,-32768,  -250,-32768,-32768,-32768,   543,
+  -193,-32768,-32768,-32768,-32768,    13
 };
 
 
-#define        YYLAST          2380
+#define        YYLAST          2403
 
 
 static const short yytable[] = {    86,
-    97,    47,    62,    64,    66,   123,   291,    31,    31,   120,
-    21,    21,    22,    22,    52,    49,    51,   217,   249,   224,
-   316,   286,   214,   131,   104,    53,   321,   221,   279,   318,
-   135,   307,   124,   189,   504,   276,    31,   471,   349,    21,
-   200,    22,    99,   404,   233,   589,    14,   367,  -102,   429,
-   141,   598,   177,   235,    59,    60,   218,   308,    25,    25,
-   643,    59,    60,    59,    60,    35,    36,    37,   139,   140,
-   663,   675,   208,    -1,   142,   516,    46,   193,    54,   557,
-   147,    48,   278,    32,   198,    99,   651,    25,   202,   288,
-   178,   131,    59,    60,   289,   554,    -2,   104,   644,    46,
-   224,   575,   634,   590,   188,   119,    58,    46,   664,   676,
-   494,    67,   241,   130,   673,   148,    58,    58,    58,   358,
-   146,   647,   214,   286,   650,   347,   652,    58,   247,  -102,
-    33,    34,   594,   214,   660,    58,    99,   277,   236,   214,
-    61,   365,    63,   283,   509,    38,   366,   233,   273,   274,
-   276,   131,    39,    99,   314,    99,   235,   312,   502,    46,
-   522,   315,   119,    46,    14,   425,   684,   470,   427,    41,
-   400,    65,   119,   197,   397,     5,    55,     7,    56,   398,
-   447,   130,   448,     9,    10,    11,   506,   320,   253,    14,
-   254,   149,    40,   462,   463,   134,    14,   518,   198,    13,
-    58,   142,   202,   610,   327,   105,   329,    41,   114,   106,
-   441,    58,     5,   219,     7,   187,   401,   220,   341,   241,
-     9,    10,    11,    41,   400,   402,   182,   323,   240,   325,
-    59,    60,   682,   381,    14,   381,    13,   683,   188,    99,
-   414,   236,   480,    59,    60,   338,   353,   102,   417,   279,
-    14,   109,   197,   131,   115,   618,   476,   486,   459,   180,
-   491,    25,   136,   116,   193,    55,   510,    56,   181,   182,
-   401,    41,   138,   119,    41,   197,   119,   119,   197,   402,
-   182,   151,   153,   110,   111,  -269,  -269,    14,    52,   360,
-   361,   149,   406,   409,   177,   180,   203,    58,    14,    53,
-   442,    14,   372,   460,   181,   182,   241,   347,   227,   467,
-   476,   461,   106,   373,   347,   363,   110,   111,   407,   364,
-   108,    42,   179,   -27,   -27,   -27,   -27,   402,   182,   186,
-    43,   -27,   -27,   -27,   110,   111,   230,    25,   381,   225,
-   226,   405,   408,   168,   169,   170,   109,   -27,   442,  -162,
-   492,   199,    54,   251,   483,  -162,   313,   209,   484,   238,
-  -324,  -324,  -324,  -324,   434,   416,   418,   542,  -324,  -324,
-  -324,    41,   472,   284,   285,   419,    41,   514,   110,   111,
-   245,   220,   246,   104,  -324,   109,   131,   515,  -162,   481,
-   348,   106,   -82,   630,  -162,   542,  -162,   220,    14,   473,
-  -162,   -27,   292,    14,   293,     5,     6,     7,     8,   247,
-   558,   294,   250,     9,    10,    11,   403,    46,    42,   290,
-    25,   632,   495,   407,   513,   106,   109,    43,   645,    13,
-   646,    14,   402,   182,    70,  -162,   225,   226,  -101,  -162,
-   131,   198,   202,   127,   128,   304,   317,   305,   198,     9,
-    10,    11,   322,   110,   111,   538,   284,   285,    46,   520,
-   328,  -267,  -267,    41,   114,   311,    25,   197,   324,   537,
-   305,   485,   119,   331,    46,   462,   463,  -384,   678,     5,
-     6,     7,     8,   538,    58,   119,   686,     9,    10,    11,
-    14,   542,   330,   334,   574,   336,   339,   537,   340,   551,
-   342,   346,   540,    13,   541,    14,   142,   345,   354,   576,
-   115,   224,   359,   350,   362,   376,   403,   403,   377,   116,
-   383,    41,   114,    46,   384,   596,   387,   389,   599,   602,
-   394,   666,   667,    52,   582,   584,   606,   396,   613,   198,
-   399,   214,   612,   214,    53,   413,   178,   415,    14,   428,
-    25,   619,    50,   -31,   433,  -303,   551,   498,   622,   540,
-   490,   541,   499,   521,   500,   615,   -32,   561,   115,   629,
-   252,   560,   564,   567,   570,   255,   256,   116,   571,   538,
-   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-   271,   272,   568,   537,   572,   577,   579,    54,   580,   581,
-   585,   599,   593,   597,   605,   430,   431,    25,   607,   432,
-     5,     6,     7,     8,   403,   608,   621,   623,     9,    10,
-    11,   653,   625,   669,   626,   637,   464,   465,   466,   599,
-   468,   469,   628,   638,    13,   662,    14,   648,   119,   657,
-    46,    59,    60,   190,   191,   192,   209,   661,  -114,  -114,
-  -114,  -114,  -114,  -114,  -114,   482,  -114,  -114,  -114,  -114,
-  -114,   665,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
-  -114,  -114,  -114,  -114,  -114,  -114,  -114,   674,  -114,  -114,
-   343,   344,   671,   583,   677,  -114,   680,   685,  -114,   688,
-    41,   400,   689,  -114,  -114,  -114,   357,   600,   109,  -114,
-  -114,  -162,   309,   519,  -114,   487,   591,  -162,   143,   125,
-    68,     5,   355,     7,    96,    69,    70,    14,    71,     9,
-    10,    11,  -114,  -114,  -114,  -114,   474,  -114,   478,   287,
-   110,   111,   556,   388,   503,    13,    72,   508,    15,   562,
-    73,    74,   326,   479,   333,   386,    43,    75,  -162,   382,
-    76,   385,  -162,   493,   444,    77,    78,    79,   488,   635,
-   636,    80,    81,   395,   670,   672,    82,   209,   412,     0,
-  -105,  -105,  -105,  -105,     0,   351,  -105,     0,  -105,  -105,
-  -105,     0,     0,     0,     0,   595,    83,    84,     0,   -91,
-     0,     0,     0,     0,  -105,   423,     0,   126,   127,   128,
-     0,   609,     0,     0,     9,    10,    11,   166,   167,   168,
-   169,   170,     0,   436,   451,  -324,  -324,  -324,  -324,  -324,
-  -324,  -324,    14,  -324,  -324,  -324,  -324,  -324,     0,  -324,
-  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
-  -324,  -324,  -324,  -324,     0,  -324,  -324,   423,  -105,   475,
-   127,   128,  -324,     0,     0,  -324,     9,    10,    11,     0,
-  -324,  -324,  -324,     0,     0,     0,  -324,  -324,     0,   496,
-   231,  -324,     0,     5,     0,     7,    96,     0,   451,   505,
-     0,     9,    10,    11,     0,     0,     0,     0,     0,  -324,
-     0,  -324,  -324,     0,  -324,     0,     0,    13,   451,     0,
-    15,   517,   171,   172,     0,   173,   174,   175,   176,     0,
-     0,     0,   209,     0,  -324,  -324,     0,     0,   451,  -324,
-  -324,   451,  -324,   451,   624,     0,  -324,     0,  -324,  -324,
-  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,   563,
-  -324,     0,  -324,     0,  -324,  -324,   232,  -261,     0,     0,
-   569,  -324,    41,   400,  -324,     0,   197,     0,     0,  -324,
-  -324,  -324,     0,     0,     0,  -324,  -324,     0,     0,     0,
-  -324,     0,     0,   592,     0,     0,   451,     0,     0,    14,
-   163,   164,   165,   166,   167,   168,   169,   170,  -324,  -299,
-  -324,  -324,     0,  -324,     0,   586,     0,  -324,  -324,   508,
-     0,     0,  -324,  -324,     0,  -324,     0,     0,    43,  -324,
-     0,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
-  -324,  -324,     0,  -324,   627,  -324,     0,  -324,  -324,     0,
-     5,     6,     7,     8,  -324,     0,     0,  -324,     9,    10,
-    11,     0,  -324,  -324,  -324,     0,     0,     0,  -324,  -324,
-     0,     0,   292,  -324,    13,     5,     6,     7,     8,     0,
-     0,   294,     0,     9,    10,    11,     0,     0,     0,     0,
-     0,  -324,     0,  -324,  -324,   616,  -324,  -334,  -334,    13,
-     0,    14,  -334,  -334,     0,  -334,     0,     0,     0,  -334,
-     0,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
-  -334,  -334,     0,  -334,     0,  -334,     0,  -334,  -334,     0,
-     0,     0,     0,     0,  -334,   171,   172,  -334,   173,   174,
-   175,   176,  -334,  -334,  -334,     0,     0,  -384,  -334,  -334,
-     0,     0,   445,  -334,   446,    60,     0,     0,     0,    69,
-    70,     0,    71,   164,   165,   166,   167,   168,   169,   170,
-     0,  -334,     0,  -334,  -334,     0,  -334,     0,     0,     0,
-    72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
-     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,     0,     0,   447,
-    82,   448,   445,     0,   446,    60,     0,     0,     0,    69,
-    70,     0,    71,     0,     0,     0,     0,     0,     0,  -190,
-    83,    84,     0,   449,     0,     0,     0,     0,     0,     0,
-    72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
-     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,     0,     0,   447,
-    82,   448,   445,     0,    68,     0,     0,     0,     0,    69,
-    70,     0,    71,     0,     0,     0,     0,     0,     0,  -258,
-    83,    84,     0,   449,     0,     0,     0,     0,     0,     0,
-    72,     0,    15,     0,    73,    74,     0,  -203,     0,     0,
+    97,   123,    62,    64,    66,   225,   120,    52,   190,   293,
+    47,    21,    21,   131,    31,    31,   288,    49,    51,   250,
+    22,    22,   433,   218,   318,   135,   309,    25,    25,   476,
+   323,   351,   320,   104,    35,    36,    37,   201,   219,   370,
+    21,   124,   234,    31,    41,    46,   146,    54,    53,    22,
+   141,   139,   140,   319,   215,   509,    25,   142,   222,   324,
+   236,   646,   177,   147,   277,    99,   592,   330,    46,    14,
+  -102,    14,   209,   178,   119,   280,    46,   194,    14,   310,
+   666,   131,   130,    55,   499,    56,   522,   225,   279,    59,
+    60,    42,    58,   199,    -1,    59,    60,   203,   678,   647,
+    43,   561,    58,    58,    58,    32,   104,   601,    99,    -2,
+    59,    60,   242,    58,   254,    38,   255,    39,   667,   288,
+   248,    58,   285,   183,   593,   290,   183,   189,    46,   361,
+   291,   119,    46,    67,   520,   526,   679,   278,   109,   654,
+   314,   119,   131,   284,   317,   237,   234,    40,   274,   275,
+   130,  -102,   316,   597,   558,   215,   368,   134,   637,    99,
+   400,   369,    14,   475,   236,   401,   215,   676,    61,    14,
+   110,   111,   215,   349,    63,    48,    99,   650,    99,   353,
+   653,   277,   655,   102,   109,   142,    58,  -162,   322,    65,
+   663,   466,   467,  -162,   613,    59,    60,    58,   110,   111,
+   329,     5,   331,     7,   188,   136,   183,   445,   199,     9,
+    10,    11,   203,   138,   434,   435,   110,   111,   436,   343,
+   242,   511,   687,   105,   148,    13,   149,   106,   621,   340,
+   325,    25,   327,   149,  -162,   468,   469,   470,  -162,   177,
+   473,   474,   578,   119,   418,   131,   119,   119,   356,   237,
+    58,   685,   204,   220,   481,   491,   686,   221,   496,    41,
+   114,   179,   189,    99,   228,   487,   194,   384,   106,   384,
+   409,   413,   514,   366,  -269,  -269,   223,   367,   187,   -19,
+   -19,   -19,   -19,    52,    58,   231,    14,   -19,   -19,   -19,
+   463,   239,   109,   363,   364,  -162,   488,   375,   246,   280,
+   489,  -162,   109,   -19,   183,  -162,   115,    25,   242,   481,
+   183,  -162,   464,   518,   523,   116,   210,   221,   471,  -105,
+  -105,  -105,  -105,    54,    53,  -105,   519,  -105,  -105,  -105,
+   106,     5,    55,     7,    56,   446,    33,    34,   376,     9,
+    10,    11,  -162,  -105,   247,   465,  -162,   633,    14,   565,
+   472,   221,  -162,   408,   412,    13,  -162,   -19,   349,   353,
+   635,   507,   110,   111,   106,   349,   353,   438,   180,   248,
+   420,   422,   477,   546,   384,    59,    60,   181,   182,   200,
+   131,   226,   227,   451,   446,   452,   497,   251,   406,   411,
+   486,   252,    25,   429,   598,   104,   431,  -105,   315,   -82,
+   546,   423,   292,   253,   421,   168,   169,   170,   256,   257,
+   612,   109,   478,   262,   263,   264,   265,   266,   267,   268,
+   269,   270,   271,   272,   273,    41,   500,    70,   517,   198,
+   411,   306,    41,   114,   648,   131,   649,   307,   210,    25,
+   313,  -325,  -325,  -325,  -325,   119,   326,    46,   332,  -325,
+  -325,  -325,    14,   336,   199,   203,   226,   227,   119,    14,
+   542,   199,   203,   333,   524,  -325,   338,   485,   241,   198,
+    59,    60,   410,    58,   541,   110,   111,   341,    58,   115,
+   344,   405,   182,   681,   286,   287,   342,   542,   116,   406,
+   406,   689,    14,   142,   348,   546,   411,   411,   577,    41,
+   225,   541,    41,   403,  -267,  -267,   198,   347,   544,   307,
+   490,   555,   180,   579,   345,   346,   352,   545,   379,  -101,
+   357,   181,   182,   362,    25,   365,    14,   392,   599,    14,
+    52,   602,   605,   178,   380,   669,   670,   616,   386,   609,
+   585,   587,   615,   286,   287,   397,   410,    41,   114,   404,
+   387,   198,    41,   403,   622,   405,   182,   390,   405,   182,
+   350,   625,   466,   467,   544,   151,   153,   555,   512,   513,
+    54,    53,   632,   545,    14,   399,   215,   618,   215,    14,
+    25,     5,   542,     7,   188,   402,   388,   417,   419,     9,
+    10,    11,   437,   432,   115,  -304,   541,   495,   398,   404,
+   -31,   503,   504,   116,   602,    13,   505,    14,   405,   182,
+   119,   294,    46,   295,     5,     6,     7,     8,   525,   563,
+   296,   564,     9,    10,    11,   -32,   672,   180,   567,    41,
+   570,   427,   602,   198,   571,   573,   181,   182,    13,   580,
+    14,   210,   574,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
+   455,  -114,  -114,  -114,  -114,  -114,    14,  -114,  -114,  -114,
+  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
+  -114,  -114,   575,  -114,  -114,   582,    42,   583,   584,   588,
+  -114,   596,   600,  -114,   427,    43,  -385,   611,  -114,  -114,
+  -114,   608,   610,   624,  -114,  -114,   480,   127,   128,  -114,
+   126,   127,   128,     9,    10,    11,   501,     9,    10,    11,
+    59,    60,   191,   192,   193,   455,   510,  -114,  -114,  -114,
+  -114,   143,  -114,    68,     5,    14,     7,    96,    69,    70,
+   626,    71,     9,    10,    11,   628,   455,   629,   640,   521,
+   171,   172,   631,   173,   174,   175,   176,   641,    13,    72,
+   651,    15,   656,    73,    74,   660,   455,   664,   665,   455,
+    75,   455,   627,    76,   668,   127,   128,   674,    77,    78,
+    79,     9,    10,    11,    80,    81,   566,   677,   232,    82,
+   680,     5,   683,     7,    96,   688,   691,   572,   692,     9,
+    10,    11,   164,   165,   166,   167,   168,   169,   170,    83,
+    84,   603,   -91,   311,   492,    13,   594,   360,    15,   125,
+   595,   479,   358,   455,   440,   483,  -325,  -325,  -325,  -325,
+  -325,  -325,  -325,   289,  -325,  -325,  -325,  -325,  -325,   560,
+  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
+  -325,  -325,  -325,  -325,  -325,   391,  -325,  -325,   328,     5,
+     6,     7,     8,  -325,   233,  -261,  -325,     9,    10,    11,
+   630,  -325,  -325,  -325,   385,   508,   484,  -325,  -325,   335,
+   493,   294,  -325,    13,     5,     6,     7,     8,   389,   448,
+   296,   638,     9,    10,    11,   166,   167,   168,   169,   170,
+  -325,   673,  -325,  -325,   210,  -325,  -325,  -325,    13,   498,
+    14,  -325,  -325,   639,  -325,   675,   354,     0,  -325,   416,
+  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
+  -325,     0,  -325,     0,  -325,     0,  -325,  -325,     0,     0,
+     0,     0,     0,  -325,   171,   172,  -325,   173,   174,   175,
+   176,  -325,  -325,  -325,     0,     0,  -385,  -325,  -325,     0,
+     0,     0,  -325,   232,     0,     0,     5,     0,     7,    96,
+     0,     0,     0,     0,     9,    10,    11,     0,     0,     0,
+  -325,  -300,  -325,  -325,   589,  -325,  -325,  -325,     0,     0,
+    13,  -325,  -325,    15,  -325,     0,     0,     0,  -325,     0,
+  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
+  -325,     0,  -325,     0,  -325,     0,  -325,  -325,     0,     5,
+     6,     7,     8,  -325,     0,   415,  -325,     9,    10,    11,
+     0,  -325,  -325,  -325,     0,     0,     0,  -325,  -325,     0,
+     0,     0,  -325,    13,     0,    14,     0,     0,     0,     5,
+     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
+  -325,     0,  -325,  -325,   619,  -325,  -335,  -335,     0,     0,
+     0,  -335,  -335,    13,  -335,    14,     0,     0,  -335,     0,
+  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
+  -335,     0,  -335,     0,  -335,     0,  -335,  -335,     0,     0,
+     0,     0,     0,  -335,     0,     0,  -335,     0,     0,     0,
+     0,  -335,  -335,  -335,     0,     0,     0,  -335,  -335,     0,
+     0,   449,  -335,   450,    60,     0,     0,     0,    69,    70,
+     0,    71,   163,   164,   165,   166,   167,   168,   169,   170,
+  -335,     0,  -335,  -335,     0,  -335,     0,     0,     0,    72,
+     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
+    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
+    79,     0,     0,     0,    80,    81,     0,     0,   451,    82,
+   452,   449,     0,   450,    60,     0,     0,     0,    69,    70,
+     0,    71,     0,     0,     0,     0,     0,     0,  -190,    83,
+    84,     0,   453,     0,     0,     0,     0,     0,     0,    72,
+     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
+    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
+    79,     0,     0,     0,    80,    81,     0,     0,   451,    82,
+   452,   449,     0,    68,     0,     0,     0,     0,    69,    70,
+     0,    71,     0,     0,     0,     0,     0,     0,  -258,    83,
+    84,     0,   453,     0,     0,     0,     0,     0,     0,    72,
+     0,    15,     0,    73,    74,     0,  -203,     0,     0,     0,
+    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
+    79,     0,     0,     0,    80,    81,     0,     0,  -203,    82,
+  -203,   425,     0,    68,     0,     0,     0,     0,    69,    70,
+     0,    71,     0,     0,     0,     0,     0,     0,     0,    83,
+    84,     0,   453,     0,     0,     0,     0,     0,     0,    72,
+     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
+    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
+    79,     0,     0,     0,    80,    81,   449,     0,    68,    82,
+     0,     0,     0,    69,    70,   108,    71,     0,   -27,   -27,
+   -27,   -27,     0,     0,     0,     0,   -27,   -27,   -27,    83,
+    84,     0,   426,     0,    72,     0,    15,     0,    73,    74,
+     0,   109,   -27,     0,  -162,    75,     0,     0,    76,     0,
+  -162,     0,     0,    77,    78,    79,     0,     0,     0,    80,
+    81,     0,     0,     0,    82,     0,     0,     0,     0,     0,
+     0,     0,     0,   110,   111,     0,     0,   229,     0,     0,
+   -23,   -23,   -23,   -23,    83,    84,     0,   453,   -23,   -23,
+   -23,  -162,    68,     0,     0,  -162,   -27,    69,    70,     0,
+    71,     0,     0,   109,   -23,     0,  -162,     0,     0,     0,
+     0,     0,  -162,     0,     0,     0,     0,     0,    72,    68,
+    15,     0,    73,    74,    69,    70,     0,    71,     0,    75,
+     0,     0,    76,     0,     0,   110,   111,    77,    78,   207,
+     0,     0,     0,    80,    81,    72,     0,    15,    82,    73,
+    74,     0,     0,  -162,     0,     0,    75,  -162,   -23,    76,
+     0,     0,     0,     0,    77,    78,    79,     0,    83,    84,
+    80,    81,   208,     0,    68,    82,     0,     0,     0,    69,
+    70,     0,    71,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,   170,    83,    84,     0,     0,   283,
+    72,    68,    15,     0,    73,    74,    69,    70,     0,    71,
      0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,     0,     0,  -203,
-    82,  -203,   421,     0,    68,     0,     0,     0,     0,    69,
-    70,     0,    71,   231,     0,     0,     5,     0,     7,    96,
-    83,    84,     0,   449,     9,    10,    11,     0,     0,     0,
-    72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
-    13,    75,     0,    15,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,   445,     0,    68,
-    82,     0,     0,     0,    69,    70,   228,    71,     0,   -23,
-   -23,   -23,   -23,     0,     0,     0,     0,   -23,   -23,   -23,
-    83,    84,     0,   422,     0,    72,     0,    15,     0,    73,
-    74,     0,   109,   -23,     0,  -162,    75,     0,     0,    76,
-     0,  -162,     0,     0,    77,    78,    79,     0,     0,     0,
-    80,    81,     0,     0,     0,    82,     0,     0,     0,     0,
-     0,     0,     0,     0,   110,   111,     0,     0,   222,     0,
-     0,   -19,   -19,   -19,   -19,    83,    84,     0,   449,   -19,
-   -19,   -19,  -162,    68,     0,     0,  -162,   -23,    69,    70,
-     0,    71,     0,     0,   109,   -19,     0,  -162,     5,     6,
-     7,     8,     0,  -162,   411,     0,     9,    10,    11,    72,
-    68,    15,     0,    73,    74,    69,    70,     0,    71,     0,
-    75,     0,    13,    76,    14,     0,     0,     0,    77,    78,
-   206,     0,     0,     0,    80,    81,    72,     0,    15,    82,
-    73,    74,     0,     0,  -162,     0,     0,    75,  -162,   -19,
-    76,     0,     0,     0,     0,    77,    78,    79,     0,    83,
-    84,    80,    81,   207,     0,    68,    82,     0,     0,     0,
-    69,    70,     0,    71,     0,     5,     6,     7,     8,     0,
-     0,     0,     0,     9,    10,    11,    83,    84,     0,     0,
-   282,    72,    68,    15,     0,    73,    74,    69,    70,    13,
-    71,    14,    75,     0,     0,    76,     0,     0,     0,     0,
-    77,    78,    79,     0,     0,     0,    80,    81,    72,     0,
-    15,    82,    73,    74,     0,     0,     0,     0,     0,    75,
-     0,     0,    76,     0,     0,     0,     0,    77,    78,    79,
-     0,    83,    84,    80,    81,   303,     0,    68,    82,     0,
-     0,     0,    69,    70,     0,    71,   159,   160,   161,   162,
-   163,   164,   165,   166,   167,   168,   169,   170,    83,    84,
-     0,     0,   319,    72,    68,    15,     0,    73,    74,    69,
-    70,     0,    71,     0,    75,     0,     0,    76,     0,     0,
-     0,     0,    77,    78,    79,     0,     0,     0,    80,    81,
-    72,     0,    15,    82,    73,    74,     0,     5,     0,     7,
-   187,    75,     0,     0,    76,     9,    10,    11,     0,    77,
-    78,   511,     0,    83,    84,    80,    81,   352,     0,    68,
-    82,    13,     0,     0,    69,    70,     0,    71,   160,   161,
-   162,   163,   164,   165,   166,   167,   168,   169,   170,     0,
-    83,    84,     0,   180,   512,    72,     0,    15,     0,    73,
-    74,   603,   181,   182,     0,     0,    75,     0,     0,    76,
+    78,    79,     0,     0,     0,    80,    81,    72,     0,    15,
+    82,    73,    74,     0,     0,     0,     0,     0,    75,     0,
+     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
+    83,    84,    80,    81,   305,     0,    68,    82,     0,     0,
+     0,    69,    70,     0,    71,   160,   161,   162,   163,   164,
+   165,   166,   167,   168,   169,   170,     0,    83,    84,     0,
+     0,   321,    72,    68,    15,     0,    73,    74,    69,    70,
+     0,    71,     0,    75,     0,     0,    76,     0,     0,     0,
+     0,    77,    78,    79,     0,     0,     0,    80,    81,    72,
+     0,    15,    82,    73,    74,     0,     0,     0,     0,     0,
+    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
+   515,     0,    83,    84,    80,    81,   355,     0,    68,    82,
+     0,     0,     0,    69,    70,     0,    71,   161,   162,   163,
+   164,   165,   166,   167,   168,   169,   170,     0,     0,    83,
+    84,     0,     0,   516,    72,     0,    15,     0,    73,    74,
+   606,     0,     0,     0,     0,    75,     0,     0,    76,     0,
+     0,     0,     0,    77,    78,    79,     0,     0,     0,    80,
+    81,     0,     0,     0,    82,   154,   155,   156,   607,   157,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,   170,     0,    83,    84,     0,     0,   562,   450,
+   527,     6,     7,     8,    69,    70,     0,    71,     9,    10,
+    11,   528,     0,   529,   530,   531,   532,   533,   534,   535,
+   536,   537,   538,   539,    13,    72,    14,    15,     0,    73,
+    74,     0,     0,     0,     0,     0,    75,     0,     0,    76,
+     0,     0,     0,     0,    77,    78,    79,    14,     0,     0,
+    80,    81,   154,   155,   156,    82,   157,   158,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+     0,     0,     0,   540,     0,    83,    84,     0,   248,   450,
+    60,     0,     0,     0,    69,    70,     0,    71,     0,     0,
+     0,   528,     0,   529,   530,   531,   532,   533,   534,   535,
+   536,   537,   538,   539,     0,    72,     0,    15,     0,    73,
+    74,     0,     0,     0,     0,     0,    75,     0,     0,    76,
      0,     0,     0,     0,    77,    78,    79,     0,     0,     0,
-    80,    81,     0,     0,     0,    82,   154,   155,   156,   604,
-   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   167,   168,   169,   170,     0,    83,    84,     0,     0,   559,
-   446,   523,     6,     7,     8,    69,    70,     0,    71,     9,
-    10,    11,   524,     0,   525,   526,   527,   528,   529,   530,
-   531,   532,   533,   534,   535,    13,    72,    14,    15,     0,
-    73,    74,     0,     0,     0,     0,     0,    75,     0,     0,
-    76,     0,     0,     0,     0,    77,    78,    79,    14,     0,
-     0,    80,    81,   154,   155,   156,    82,   157,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,     0,     0,     0,   536,     0,    83,    84,     0,   247,
-   446,    60,     0,     0,     0,    69,    70,     0,    71,     0,
-     0,     0,   524,     0,   525,   526,   527,   528,   529,   530,
-   531,   532,   533,   534,   535,     0,    72,     0,    15,     0,
+    80,    81,     0,    68,     0,    82,     0,     0,    69,    70,
+     0,    71,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,     0,     0,   540,     0,    83,    84,     0,   248,    72,
+     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
+    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
+    79,     0,     0,     0,    80,    81,     0,     0,     0,    82,
+    68,     5,     6,     7,     8,    69,    70,     0,    71,     9,
+    10,    11,     0,     0,     0,     0,     0,     0,     0,    83,
+    84,     0,   339,     0,     0,    13,    72,    14,    15,     0,
     73,    74,     0,     0,     0,     0,     0,    75,     0,     0,
     76,     0,     0,     0,     0,    77,    78,    79,     0,     0,
-     0,    80,    81,     0,    68,     0,    82,     0,     0,    69,
-    70,     0,    71,   161,   162,   163,   164,   165,   166,   167,
-   168,   169,   170,     0,   536,     0,    83,    84,     0,   247,
+     0,    80,    81,     0,    68,     5,    82,     7,    96,    69,
+    70,     0,    71,     9,    10,    11,     0,    68,     0,     0,
+     0,     0,    69,    70,     0,    71,    83,    84,     0,    13,
     72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
+     0,    75,     0,    72,    76,    15,     0,    73,    74,    77,
+    78,    79,     0,     0,    75,    80,    81,    76,     0,     0,
+    82,     0,    77,    78,    79,     0,     0,     0,    80,    81,
+    68,     0,     0,    82,     0,    69,    70,     0,    71,     0,
+    83,    84,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   576,     0,    83,    84,     0,    72,    68,    15,     0,
+    73,    74,    69,    70,     0,    71,     0,    75,     0,     0,
+    76,     0,     0,     0,     0,    77,    78,    79,     0,     0,
+     0,    80,    81,    72,    68,    15,    82,    73,    74,    69,
+    70,     0,    71,     0,    75,     0,     0,    76,     0,     0,
+     0,     0,    77,    78,    79,     0,    83,    84,    80,    81,
+    72,   359,    15,   150,    73,    74,    69,    70,     0,    71,
      0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,     0,     0,     0,
-    82,    68,     5,     6,     7,     8,    69,    70,     0,    71,
-     9,    10,    11,     0,     0,     0,     0,     0,     0,     0,
-    83,    84,     0,   337,     0,     0,    13,    72,    14,    15,
-     0,    73,    74,     0,     0,     0,     0,     0,    75,     0,
-     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
-     0,     0,    80,    81,     0,    68,     5,    82,     7,    96,
-    69,    70,     0,    71,     9,    10,    11,     0,    68,     0,
-     0,     0,     0,    69,    70,     0,    71,    83,    84,     0,
-    13,    72,     0,    15,     0,    73,    74,     0,     0,     0,
-     0,     0,    75,     0,    72,    76,    15,     0,    73,    74,
-    77,    78,    79,     0,     0,    75,    80,    81,    76,     0,
-     0,    82,     0,    77,    78,    79,     0,     0,     0,    80,
-    81,    68,     0,     0,    82,     0,    69,    70,     0,    71,
-     0,    83,    84,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,   573,     0,    83,    84,     0,    72,    68,    15,
-     0,    73,    74,    69,    70,     0,    71,     0,    75,     0,
+    78,    79,     0,    83,    84,    80,    81,    72,     0,    15,
+   152,    73,    74,     0,     0,     0,     0,     0,    75,     0,
      0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
-     0,     0,    80,    81,    72,    68,    15,    82,    73,    74,
-    69,    70,     0,    71,     0,    75,     0,     0,    76,     0,
-     0,     0,     0,    77,    78,    79,     0,    83,    84,    80,
-    81,    72,   356,    15,   150,    73,    74,    69,    70,     0,
-    71,     0,    75,     0,     0,    76,     0,     0,     0,     0,
-    77,    78,    79,     0,    83,    84,    80,    81,    72,     0,
-    15,   152,    73,    74,     0,     0,     0,     0,     0,    75,
-     0,     0,    76,     0,     0,     0,     0,    77,    78,    79,
-     0,    83,    84,    80,    81,     0,     0,     4,    82,  -118,
-     5,     6,     7,     8,     0,     0,     0,     0,     9,    10,
-    11,     0,     0,     0,     0,     0,     0,     0,    83,    84,
-     0,     0,     0,    12,    13,     0,    14,    15,   156,     0,
-   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   167,   168,   169,   170,     0,   552,  -118,     0,     0,     0,
-     0,     0,   154,   155,   156,  -118,   157,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-   154,   155,   156,    16,   157,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   167,   168,   169,   170,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   154,   155,   156,
-   620,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   167,   168,   169,   170,     0,     0,     0,   553,   154,
-   155,   156,   642,   157,   158,   159,   160,   161,   162,   163,
+    83,    84,    80,    81,     0,     0,     4,    82,  -118,     5,
+     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
+     0,     0,     0,     0,     0,     0,     0,    83,    84,     0,
+     0,     0,    12,    13,     0,    14,    15,     5,     6,     7,
+     8,     5,     6,     7,     8,     9,    10,    11,     0,     9,
+    10,    11,     0,     0,   556,  -118,     0,     0,     0,     0,
+     0,    13,     0,    14,  -118,    13,     0,    14,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   154,
+   155,   156,    16,   157,   158,   159,   160,   161,   162,   163,
    164,   165,   166,   167,   168,   169,   170,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,   167,   168,   169,   170
+   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+    50,     0,     0,     0,   586,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   154,   155,   156,   557,   157,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+   169,   170,   154,   155,   156,   645,   157,   158,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   154,
+   155,   156,   623,   157,   158,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,   168,   169,   170,   156,     0,   157,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,   170
 };
 
 static const short yycheck[] = {    38,
-    39,    20,    27,    28,    29,    51,   203,     2,     3,    49,
-     2,     3,     2,     3,    22,    21,    22,   115,   145,   120,
-   223,   185,   112,    57,    43,    22,   229,   119,   181,   225,
-    63,   211,    51,   101,   457,   175,    31,   416,   281,    31,
-   106,    31,    39,   360,   133,     1,    30,     1,     1,   381,
-    75,   566,     9,   133,     3,     4,   116,    10,     2,     3,
-    38,     3,     4,     3,     4,     9,    10,    11,    73,    74,
-    38,    38,   111,     0,    79,   477,    20,   102,    22,   502,
-    85,    77,   180,     3,   103,    82,   640,    31,   107,    76,
-    95,   125,     3,     4,    81,   497,     0,   116,    76,    43,
-   201,    50,   617,    59,   101,    49,    25,    51,    76,    76,
-   442,    31,   137,    57,   668,    76,    35,    36,    37,    76,
-    82,   636,   212,   287,   639,   278,   641,    46,    82,    82,
-    77,    78,   555,   223,   649,    54,   133,   176,   133,   229,
-    82,    76,    82,   182,   461,    59,    81,   236,   173,   174,
-   290,   185,    59,   150,   220,   152,   236,   217,    36,   103,
-   492,   221,   106,   107,    30,   375,   681,   410,   378,     3,
-     4,    82,   116,     7,    76,     4,     5,     6,     7,    81,
-    58,   125,    60,    12,    13,    14,    76,   226,   150,    30,
-   152,    81,    59,    59,    60,    82,    30,    38,   217,    28,
-   119,   206,   221,   582,   237,    77,   239,     3,     4,    81,
-   390,   130,     4,    77,     6,     7,    50,    81,   257,   244,
-    12,    13,    14,     3,     4,    59,    60,   233,     1,   235,
-     3,     4,    76,   323,    30,   325,    28,    81,   235,   236,
-   367,   236,    38,     3,     4,   250,   285,    59,    77,   402,
-    30,    27,     7,   287,    50,   587,   420,   437,   398,    50,
-   440,   205,    82,    59,   289,     5,   462,     7,    59,    60,
-    50,     3,    82,   217,     3,     7,   220,   221,     7,    59,
-    60,    89,    90,    59,    60,    77,    78,    30,   296,   295,
-   296,    81,   360,   361,     9,    50,    59,   216,    30,   296,
-   390,    30,   310,   401,    59,    60,   331,   460,    77,   407,
-   474,   403,    81,   310,   467,    77,    59,    60,    50,    81,
-     1,    50,    76,     4,     5,     6,     7,    59,    60,    76,
-    59,    12,    13,    14,    59,    60,    78,   281,   428,    59,
-    60,   360,   361,    50,    51,    52,    27,    28,   438,    30,
-   440,    76,   296,    77,    77,    36,    76,     1,    81,    78,
-     4,     5,     6,     7,   389,   371,   372,   494,    12,    13,
-    14,     3,   418,    59,    60,   372,     3,    77,    59,    60,
-    76,    81,    76,   402,    28,    27,   420,    77,    30,   429,
-    76,    81,    38,    77,    36,   522,    77,    81,    30,   418,
-    81,    82,     1,    30,     3,     4,     5,     6,     7,    82,
-   508,    10,    76,    12,    13,    14,   360,   361,    50,    59,
-   364,    77,   447,    50,   463,    81,    27,    59,   631,    28,
-   633,    30,    59,    60,     9,    77,    59,    60,    82,    81,
-   474,   460,   461,     6,     7,    83,   224,    77,   467,    12,
-    13,    14,   230,    59,    60,   494,    59,    60,   402,   484,
-   238,    77,    78,     3,     4,    36,   410,     7,    77,   494,
-    77,    78,   416,    81,   418,    59,    60,    76,   675,     4,
-     5,     6,     7,   522,   403,   429,   683,    12,    13,    14,
-    30,   618,    36,    78,   533,    76,    76,   522,    76,   494,
-    38,    83,   494,    28,   494,    30,   511,    76,    76,   534,
-    50,   612,    76,    83,    76,    36,   460,   461,    83,    59,
-    78,     3,     4,   467,    78,   564,    78,    32,   567,   568,
-    38,   658,   659,   541,   540,   541,   575,    83,   584,   558,
-    76,   631,   582,   633,   541,     3,   551,    77,    30,    81,
-   494,   590,    77,    38,    78,    78,   551,    38,   597,   551,
-    78,   551,    78,    78,    81,   584,    38,    78,    50,   608,
-   149,    83,    59,    59,    38,   154,   155,    59,    77,   618,
-   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,    59,   618,    77,     7,    38,   541,    77,    77,
-    16,   640,    78,    59,    77,   383,   384,   551,    77,   387,
-     4,     5,     6,     7,   558,    59,    76,    17,    12,    13,
-    14,     9,    77,   662,    76,    76,   404,   405,   406,   668,
-   408,   409,    77,    76,    28,    59,    30,    77,   582,    77,
-   584,     3,     4,     5,     6,     7,     1,    77,     3,     4,
-     5,     6,     7,     8,     9,   433,    11,    12,    13,    14,
-    15,    81,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    28,    29,    30,    31,    76,    33,    34,
-   259,   260,    77,    77,    76,    40,    77,    77,    43,     0,
-     3,     4,     0,    48,    49,    50,   290,   567,    27,    54,
-    55,    30,   212,   481,    59,   438,   551,    36,     1,    53,
-     3,     4,   289,     6,     7,     8,     9,    30,    11,    12,
-    13,    14,    77,    78,    79,    80,   419,    82,   426,   188,
-    59,    60,   500,   333,   456,    28,    29,    50,    31,   517,
-    33,    34,   236,   428,   244,   331,    59,    40,    77,   325,
-    43,   330,    81,   440,   391,    48,    49,    50,   438,   618,
-   618,    54,    55,   342,   663,   665,    59,     1,   364,    -1,
-     4,     5,     6,     7,    -1,   284,    10,    -1,    12,    13,
-    14,    -1,    -1,    -1,    -1,   563,    79,    80,    -1,    82,
-    -1,    -1,    -1,    -1,    28,   374,    -1,     5,     6,     7,
-    -1,   579,    -1,    -1,    12,    13,    14,    48,    49,    50,
-    51,    52,    -1,     1,   393,     3,     4,     5,     6,     7,
-     8,     9,    30,    11,    12,    13,    14,    15,    -1,    17,
-    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-    28,    29,    30,    31,    -1,    33,    34,   426,    82,     5,
-     6,     7,    40,    -1,    -1,    43,    12,    13,    14,    -1,
-    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,   448,
-     1,    59,    -1,     4,    -1,     6,     7,    -1,   457,   458,
-    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    77,
-    -1,    79,    80,    -1,    82,    -1,    -1,    28,   477,    -1,
-    31,   480,    54,    55,    -1,    57,    58,    59,    60,    -1,
-    -1,    -1,     1,    -1,     3,     4,    -1,    -1,   497,     8,
-     9,   500,    11,   502,    76,    -1,    15,    -1,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,   518,
-    29,    -1,    31,    -1,    33,    34,    77,    78,    -1,    -1,
-   529,    40,     3,     4,    43,    -1,     7,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
-    59,    -1,    -1,   552,    -1,    -1,   555,    -1,    -1,    30,
-    45,    46,    47,    48,    49,    50,    51,    52,    77,    78,
-    79,    80,    -1,    82,    -1,     1,    -1,     3,     4,    50,
-    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    59,    15,
-    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    -1,    29,   603,    31,    -1,    33,    34,    -1,
-     4,     5,     6,     7,    40,    -1,    -1,    43,    12,    13,
-    14,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,    -1,     1,    59,    28,     4,     5,     6,     7,    -1,
-    -1,    10,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
-    -1,    77,    -1,    79,    80,     1,    82,     3,     4,    28,
-    -1,    30,     8,     9,    -1,    11,    -1,    -1,    -1,    15,
-    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    54,    55,    43,    57,    58,
-    59,    60,    48,    49,    50,    -1,    -1,    76,    54,    55,
-    -1,    -1,     1,    59,     3,     4,    -1,    -1,    -1,     8,
-     9,    -1,    11,    46,    47,    48,    49,    50,    51,    52,
-    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,
-    59,    60,     1,    -1,     3,     4,    -1,    -1,    -1,     8,
-     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,
-    79,    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,
-    59,    60,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,
-     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,
-    79,    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    36,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,
-    59,    60,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,
-     9,    -1,    11,     1,    -1,    -1,     4,    -1,     6,     7,
-    79,    80,    -1,    82,    12,    13,    14,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    28,    40,    -1,    31,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,     1,    -1,     3,
-    59,    -1,    -1,    -1,     8,     9,     1,    11,    -1,     4,
+    39,    51,    27,    28,    29,   120,    49,    22,   101,   204,
+    20,     2,     3,    57,     2,     3,   186,    21,    22,   145,
+     2,     3,   384,   115,   224,    63,   212,     2,     3,   420,
+   230,   282,   226,    43,     9,    10,    11,   106,   116,     1,
+    31,    51,   133,    31,     3,    20,    82,    22,    22,    31,
+    75,    73,    74,   225,   112,   461,    31,    79,   119,   231,
+   133,    38,     9,    85,   175,    39,     1,   239,    43,    30,
+     1,    30,   111,    95,    49,   181,    51,   102,    30,    10,
+    38,   125,    57,     5,   446,     7,    38,   202,   180,     3,
+     4,    50,    25,   103,     0,     3,     4,   107,    38,    76,
+    59,   507,    35,    36,    37,     3,   116,   569,    82,     0,
+     3,     4,   137,    46,   150,    59,   152,    59,    76,   289,
+    82,    54,   183,    98,    59,    76,   101,   101,   103,    76,
+    81,   106,   107,    31,   482,   497,    76,   176,    27,   643,
+   218,   116,   186,   182,   222,   133,   237,    59,   173,   174,
+   125,    82,   221,   559,   502,   213,    76,    82,   620,   133,
+    76,    81,    30,   414,   237,    81,   224,   671,    82,    30,
+    59,    60,   230,   279,    82,    77,   150,   639,   152,   285,
+   642,   292,   644,    59,    27,   207,   119,    30,   227,    82,
+   652,    59,    60,    36,   585,     3,     4,   130,    59,    60,
+   238,     4,   240,     6,     7,    82,   181,   393,   218,    12,
+    13,    14,   222,    82,   386,   387,    59,    60,   390,   258,
+   245,    76,   684,    77,    76,    28,    81,    81,   590,   251,
+   234,   206,   236,    81,    77,   407,   408,   409,    81,     9,
+   412,   413,    50,   218,   370,   289,   221,   222,   287,   237,
+   183,    76,    59,    77,   424,   441,    81,    81,   444,     3,
+     4,    76,   236,   237,    77,   437,   291,   325,    81,   327,
+   363,   364,   466,    77,    77,    78,     1,    81,    76,     4,
+     5,     6,     7,   298,   217,    78,    30,    12,    13,    14,
+   401,    78,    27,   297,   298,    30,    77,   312,    76,   405,
+    81,    36,    27,    28,   279,    30,    50,   282,   333,   479,
+   285,    36,   404,    77,   486,    59,     1,    81,   410,     4,
+     5,     6,     7,   298,   298,    10,    77,    12,    13,    14,
+    81,     4,     5,     6,     7,   393,    77,    78,   312,    12,
+    13,    14,    77,    28,    76,   406,    81,    77,    30,   521,
+   411,    81,    77,   363,   364,    28,    81,    82,   464,   465,
+    77,    36,    59,    60,    81,   471,   472,   392,    50,    82,
+   374,   375,   422,   499,   432,     3,     4,    59,    60,    76,
+   424,    59,    60,    58,   442,    60,   444,    76,   363,   364,
+   433,    77,   367,   378,   566,   405,   381,    82,    76,    38,
+   526,   375,    59,   149,    77,    50,    51,    52,   154,   155,
+   582,    27,   422,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,   170,     3,   451,     9,   467,     7,
+   405,    83,     3,     4,   634,   479,   636,    77,     1,   414,
+    36,     4,     5,     6,     7,   420,    77,   422,    36,    12,
+    13,    14,    30,    78,   464,   465,    59,    60,   433,    30,
+   499,   471,   472,    81,   489,    28,    76,    38,     1,     7,
+     3,     4,    50,   406,   499,    59,    60,    76,   411,    50,
+    38,    59,    60,   678,    59,    60,    76,   526,    59,   464,
+   465,   686,    30,   515,    83,   621,   471,   472,   537,     3,
+   615,   526,     3,     4,    77,    78,     7,    76,   499,    77,
+    78,   499,    50,   538,   260,   261,    83,   499,    36,    82,
+    76,    59,    60,    76,   499,    76,    30,    32,   567,    30,
+   545,   570,   571,   555,    83,   661,   662,   587,    78,   578,
+   544,   545,   585,    59,    60,    38,    50,     3,     4,    50,
+    78,     7,     3,     4,   593,    59,    60,    78,    59,    60,
+    76,   600,    59,    60,   555,    89,    90,   555,   464,   465,
+   545,   545,   611,   555,    30,    83,   634,   587,   636,    30,
+   555,     4,   621,     6,     7,    76,   332,     3,    77,    12,
+    13,    14,    78,    81,    50,    78,   621,    78,   344,    50,
+    38,    38,    78,    59,   643,    28,    81,    30,    59,    60,
+   585,     1,   587,     3,     4,     5,     6,     7,    78,    83,
+    10,    78,    12,    13,    14,    38,   665,    50,    59,     3,
+    59,   377,   671,     7,    59,    38,    59,    60,    28,     7,
+    30,     1,    77,     3,     4,     5,     6,     7,     8,     9,
+   396,    11,    12,    13,    14,    15,    30,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,    77,    33,    34,    38,    50,    77,    77,    16,
+    40,    78,    59,    43,   430,    59,    76,    59,    48,    49,
+    50,    77,    77,    76,    54,    55,     5,     6,     7,    59,
+     5,     6,     7,    12,    13,    14,   452,    12,    13,    14,
+     3,     4,     5,     6,     7,   461,   462,    77,    78,    79,
+    80,     1,    82,     3,     4,    30,     6,     7,     8,     9,
+    17,    11,    12,    13,    14,    77,   482,    76,    76,   485,
+    54,    55,    77,    57,    58,    59,    60,    76,    28,    29,
+    77,    31,     9,    33,    34,    77,   502,    77,    59,   505,
+    40,   507,    76,    43,    81,     6,     7,    77,    48,    49,
+    50,    12,    13,    14,    54,    55,   522,    76,     1,    59,
+    76,     4,    77,     6,     7,    77,     0,   533,     0,    12,
+    13,    14,    46,    47,    48,    49,    50,    51,    52,    79,
+    80,   570,    82,   213,   442,    28,   555,   292,    31,    53,
+   556,   423,   291,   559,     1,   430,     3,     4,     5,     6,
+     7,     8,     9,   189,    11,    12,    13,    14,    15,   505,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,   335,    33,    34,   237,     4,
+     5,     6,     7,    40,    77,    78,    43,    12,    13,    14,
+   606,    48,    49,    50,   327,   460,   432,    54,    55,   245,
+   442,     1,    59,    28,     4,     5,     6,     7,   333,   394,
+    10,   621,    12,    13,    14,    48,    49,    50,    51,    52,
+    77,   666,    79,    80,     1,    82,     3,     4,    28,   444,
+    30,     8,     9,   621,    11,   668,   286,    -1,    15,   367,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    54,    55,    43,    57,    58,    59,
+    60,    48,    49,    50,    -1,    -1,    76,    54,    55,    -1,
+    -1,    -1,    59,     1,    -1,    -1,     4,    -1,     6,     7,
+    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,
+    77,    78,    79,    80,     1,    82,     3,     4,    -1,    -1,
+    28,     8,     9,    31,    11,    -1,    -1,    -1,    15,    -1,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,     4,
+     5,     6,     7,    40,    -1,    10,    43,    12,    13,    14,
+    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
+    -1,    -1,    59,    28,    -1,    30,    -1,    -1,    -1,     4,
      5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
-    79,    80,    -1,    82,    -1,    29,    -1,    31,    -1,    33,
-    34,    -1,    27,    28,    -1,    30,    40,    -1,    -1,    43,
-    -1,    36,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,     1,    -1,
-    -1,     4,     5,     6,     7,    79,    80,    -1,    82,    12,
-    13,    14,    77,     3,    -1,    -1,    81,    82,     8,     9,
-    -1,    11,    -1,    -1,    27,    28,    -1,    30,     4,     5,
-     6,     7,    -1,    36,    10,    -1,    12,    13,    14,    29,
-     3,    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,
-    40,    -1,    28,    43,    30,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    29,    -1,    31,    59,
-    33,    34,    -1,    -1,    77,    -1,    -1,    40,    81,    82,
-    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,
-    80,    54,    55,    83,    -1,     3,    59,    -1,    -1,    -1,
-     8,     9,    -1,    11,    -1,     4,     5,     6,     7,    -1,
-    -1,    -1,    -1,    12,    13,    14,    79,    80,    -1,    -1,
-    83,    29,     3,    31,    -1,    33,    34,     8,     9,    28,
-    11,    30,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
-    48,    49,    50,    -1,    -1,    -1,    54,    55,    29,    -1,
-    31,    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    79,    80,    54,    55,    83,    -1,     3,    59,    -1,
-    -1,    -1,     8,     9,    -1,    11,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    79,    80,
-    -1,    -1,    83,    29,     3,    31,    -1,    33,    34,     8,
-     9,    -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    29,    -1,    31,    59,    33,    34,    -1,     4,    -1,     6,
-     7,    40,    -1,    -1,    43,    12,    13,    14,    -1,    48,
-    49,    50,    -1,    79,    80,    54,    55,    83,    -1,     3,
-    59,    28,    -1,    -1,     8,     9,    -1,    11,    42,    43,
-    44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
-    79,    80,    -1,    50,    83,    29,    -1,    31,    -1,    33,
-    34,    10,    59,    60,    -1,    -1,    40,    -1,    -1,    43,
+    77,    -1,    79,    80,     1,    82,     3,     4,    -1,    -1,
+    -1,     8,     9,    28,    11,    30,    -1,    -1,    15,    -1,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
+    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
+    -1,     1,    59,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    45,    46,    47,    48,    49,    50,    51,    52,
+    77,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
+    60,     1,    -1,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
+    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
+    60,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
+    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    36,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
+    60,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
+    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,     1,    -1,     3,    59,
+    -1,    -1,    -1,     8,     9,     1,    11,    -1,     4,     5,
+     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    79,
+    80,    -1,    82,    -1,    29,    -1,    31,    -1,    33,    34,
+    -1,    27,    28,    -1,    30,    40,    -1,    -1,    43,    -1,
+    36,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    59,    60,    -1,    -1,     1,    -1,    -1,
+     4,     5,     6,     7,    79,    80,    -1,    82,    12,    13,
+    14,    77,     3,    -1,    -1,    81,    82,     8,     9,    -1,
+    11,    -1,    -1,    27,    28,    -1,    30,    -1,    -1,    -1,
+    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    29,     3,
+    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    59,    60,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    29,    -1,    31,    59,    33,
+    34,    -1,    -1,    77,    -1,    -1,    40,    81,    82,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,
+    54,    55,    83,    -1,     3,    59,    -1,    -1,    -1,     8,
+     9,    -1,    11,    41,    42,    43,    44,    45,    46,    47,
+    48,    49,    50,    51,    52,    79,    80,    -1,    -1,    83,
+    29,     3,    31,    -1,    33,    34,     8,     9,    -1,    11,
+    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    29,    -1,    31,
+    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
+    79,    80,    54,    55,    83,    -1,     3,    59,    -1,    -1,
+    -1,     8,     9,    -1,    11,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    -1,    79,    80,    -1,
+    -1,    83,    29,     3,    31,    -1,    33,    34,     8,     9,
+    -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
+    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    29,
+    -1,    31,    59,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    79,    80,    54,    55,    83,    -1,     3,    59,
+    -1,    -1,    -1,     8,     9,    -1,    11,    43,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    -1,    -1,    79,
+    80,    -1,    -1,    83,    29,    -1,    31,    -1,    33,    34,
+    10,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
+    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,    -1,    -1,    -1,    59,    35,    36,    37,    38,    39,
+    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+    50,    51,    52,    -1,    79,    80,    -1,    -1,    83,     3,
+     4,     5,     6,     7,     8,     9,    -1,    11,    12,    13,
+    14,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,    30,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    30,    -1,    -1,
+    54,    55,    35,    36,    37,    59,    39,    40,    41,    42,
+    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    -1,    -1,    -1,    77,    -1,    79,    80,    -1,    82,     3,
+     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,
+    -1,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
     -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,    -1,    -1,    59,    35,    36,    37,    38,
-    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -1,    79,    80,    -1,    -1,    83,
+    54,    55,    -1,     3,    -1,    59,    -1,    -1,     8,     9,
+    -1,    11,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    -1,    -1,    77,    -1,    79,    80,    -1,    82,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
      3,     4,     5,     6,     7,     8,     9,    -1,    11,    12,
-    13,    14,    15,    -1,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    48,    49,    50,    30,    -1,
-    -1,    54,    55,    35,    36,    37,    59,    39,    40,    41,
-    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,    -1,    -1,    -1,    77,    -1,    79,    80,    -1,    82,
-     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,
-    -1,    -1,    15,    -1,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
+    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
+    80,    -1,    82,    -1,    -1,    28,    29,    30,    31,    -1,
     33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
     43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
-    -1,    54,    55,    -1,     3,    -1,    59,    -1,    -1,     8,
-     9,    -1,    11,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    -1,    77,    -1,    79,    80,    -1,    82,
+    -1,    54,    55,    -1,     3,     4,    59,     6,     7,     8,
+     9,    -1,    11,    12,    13,    14,    -1,     3,    -1,    -1,
+    -1,    -1,     8,     9,    -1,    11,    79,    80,    -1,    28,
     29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    -1,    40,    -1,    29,    43,    31,    -1,    33,    34,    48,
+    49,    50,    -1,    -1,    40,    54,    55,    43,    -1,    -1,
+    59,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+     3,    -1,    -1,    59,    -1,     8,     9,    -1,    11,    -1,
+    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    77,    -1,    79,    80,    -1,    29,     3,    31,    -1,
+    33,    34,     8,     9,    -1,    11,    -1,    40,    -1,    -1,
+    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    54,    55,    29,     3,    31,    59,    33,    34,     8,
+     9,    -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,
+    -1,    -1,    48,    49,    50,    -1,    79,    80,    54,    55,
+    29,     3,    31,    59,    33,    34,     8,     9,    -1,    11,
     -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
-    59,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
-    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    79,    80,    -1,    82,    -1,    -1,    28,    29,    30,    31,
-    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
-    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,    -1,     3,     4,    59,     6,     7,
-     8,     9,    -1,    11,    12,    13,    14,    -1,     3,    -1,
-    -1,    -1,    -1,     8,     9,    -1,    11,    79,    80,    -1,
-    28,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    29,    43,    31,    -1,    33,    34,
-    48,    49,    50,    -1,    -1,    40,    54,    55,    43,    -1,
-    -1,    59,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,     3,    -1,    -1,    59,    -1,     8,     9,    -1,    11,
-    -1,    79,    80,    44,    45,    46,    47,    48,    49,    50,
-    51,    52,    77,    -1,    79,    80,    -1,    29,     3,    31,
-    -1,    33,    34,     8,     9,    -1,    11,    -1,    40,    -1,
+    49,    50,    -1,    79,    80,    54,    55,    29,    -1,    31,
+    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
     -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,    29,     3,    31,    59,    33,    34,
-     8,     9,    -1,    11,    -1,    40,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,    54,
-    55,    29,     3,    31,    59,    33,    34,     8,     9,    -1,
-    11,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
-    48,    49,    50,    -1,    79,    80,    54,    55,    29,    -1,
-    31,    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    79,    80,    54,    55,    -1,    -1,     1,    59,     3,
-     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
-    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
-    -1,    -1,    -1,    27,    28,    -1,    30,    31,    37,    -1,
-    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -1,    10,    50,    -1,    -1,    -1,
-    -1,    -1,    35,    36,    37,    59,    39,    40,    41,    42,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-    35,    36,    37,    77,    39,    40,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    37,
-    83,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52,    -1,    -1,    -1,    83,    35,
-    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+    79,    80,    54,    55,    -1,    -1,     1,    59,     3,     4,
+     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    -1,
+    -1,    -1,    27,    28,    -1,    30,    31,     4,     5,     6,
+     7,     4,     5,     6,     7,    12,    13,    14,    -1,    12,
+    13,    14,    -1,    -1,    10,    50,    -1,    -1,    -1,    -1,
+    -1,    28,    -1,    30,    59,    28,    -1,    30,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
+    36,    37,    77,    39,    40,    41,    42,    43,    44,    45,
     46,    47,    48,    49,    50,    51,    52,    40,    41,    42,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52
+    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    77,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    35,    36,    37,    83,    39,    40,
+    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    35,    36,    37,    38,    39,    40,    41,    42,
+    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
+    36,    37,    83,    39,    40,    41,    42,    43,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    37,    -1,    39,
+    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+    50,    51,    52
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/lib/bison.simple"
@@ -3042,22 +3050,26 @@ case 298:
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
 case 299:
-#line 1529 "c-parse.y"
+#line 1522 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 300:
+#line 1531 "c-parse.y"
 {
                  if (pedantic && yyvsp[0].ends_in_label)
                    pedwarn ("ANSI C forbids label at end of compound statement");
                ;
     break;}
-case 301:
-#line 1538 "c-parse.y"
-{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
-    break;}
 case 302:
 #line 1540 "c-parse.y"
+{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
+    break;}
+case 303:
+#line 1542 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 306:
-#line 1552 "c-parse.y"
+case 307:
+#line 1554 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  pushlevel (0);
                  clear_last_expr ();
@@ -3065,13 +3077,13 @@ case 306:
                  expand_start_bindings (0);
                ;
     break;}
-case 308:
-#line 1565 "c-parse.y"
+case 309:
+#line 1567 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
-case 311:
-#line 1576 "c-parse.y"
+case 312:
+#line 1578 "c-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3081,20 +3093,20 @@ case 311:
                    }
                ;
     break;}
-case 312:
-#line 1590 "c-parse.y"
+case 313:
+#line 1592 "c-parse.y"
 {;
     break;}
-case 314:
-#line 1594 "c-parse.y"
-{ compstmt_count++; ;
-    break;}
 case 315:
-#line 1597 "c-parse.y"
-{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
+#line 1596 "c-parse.y"
+{ compstmt_count++; ;
     break;}
 case 316:
 #line 1599 "c-parse.y"
+{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
+    break;}
+case 317:
+#line 1601 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  yyval.ttype = poplevel (1, 1, 0);
@@ -3103,8 +3115,8 @@ case 316:
                  else
                    pop_momentary (); ;
     break;}
-case 317:
-#line 1607 "c-parse.y"
+case 318:
+#line 1609 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3113,8 +3125,8 @@ case 317:
                  else
                    pop_momentary (); ;
     break;}
-case 318:
-#line 1615 "c-parse.y"
+case 319:
+#line 1617 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3123,8 +3135,8 @@ case 318:
                  else
                    pop_momentary (); ;
     break;}
-case 321:
-#line 1635 "c-parse.y"
+case 322:
+#line 1637 "c-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
                                       compstmt_count);
@@ -3133,8 +3145,8 @@ case 321:
                  if_stmt_line = yyvsp[-4].lineno;
                  position_after_white_space (); ;
     break;}
-case 322:
-#line 1649 "c-parse.y"
+case 323:
+#line 1651 "c-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3143,44 +3155,44 @@ case 322:
                  expand_start_loop_continue_elsewhere (1);
                  position_after_white_space (); ;
     break;}
-case 323:
-#line 1657 "c-parse.y"
-{ expand_loop_continue_here (); ;
-    break;}
 case 324:
-#line 1661 "c-parse.y"
-{ yyval.filename = input_filename; ;
+#line 1659 "c-parse.y"
+{ expand_loop_continue_here (); ;
     break;}
 case 325:
-#line 1665 "c-parse.y"
-{ yyval.lineno = lineno; ;
+#line 1663 "c-parse.y"
+{ yyval.filename = input_filename; ;
     break;}
 case 326:
-#line 1670 "c-parse.y"
-{ ;
+#line 1667 "c-parse.y"
+{ yyval.lineno = lineno; ;
     break;}
 case 327:
-#line 1675 "c-parse.y"
+#line 1672 "c-parse.y"
 { ;
     break;}
 case 328:
-#line 1680 "c-parse.y"
-{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
+#line 1677 "c-parse.y"
+{ ;
     break;}
 case 329:
-#line 1685 "c-parse.y"
-{ yyval.ends_in_label = 0; ;
+#line 1682 "c-parse.y"
+{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 330:
 #line 1687 "c-parse.y"
-{ yyval.ends_in_label = 1; ;
+{ yyval.ends_in_label = 0; ;
     break;}
 case 331:
-#line 1693 "c-parse.y"
+#line 1689 "c-parse.y"
+{ yyval.ends_in_label = 1; ;
+    break;}
+case 332:
+#line 1695 "c-parse.y"
 { stmt_count++; ;
     break;}
-case 333:
-#line 1696 "c-parse.y"
+case 334:
+#line 1698 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 /* It appears that this should not be done--that a non-lvalue array
@@ -3198,20 +3210,20 @@ case 333:
                  iterator_expand (yyvsp[-1].ttype);
                  clear_momentary (); ;
     break;}
-case 334:
-#line 1713 "c-parse.y"
+case 335:
+#line 1715 "c-parse.y"
 { c_expand_start_else ();
                  yyvsp[-1].itype = stmt_count;
                  position_after_white_space (); ;
     break;}
-case 335:
-#line 1717 "c-parse.y"
+case 336:
+#line 1719 "c-parse.y"
 { c_expand_end_cond ();
                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
                    warning ("empty body in an else-statement"); ;
     break;}
-case 336:
-#line 1721 "c-parse.y"
+case 337:
+#line 1723 "c-parse.y"
 { c_expand_end_cond ();
                  /* This warning is here instead of in simple_if, because we
                     do not want a warning if an empty if is followed by an
@@ -3221,12 +3233,12 @@ case 336:
                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                                                "empty body in an if-statement"); ;
     break;}
-case 337:
-#line 1733 "c-parse.y"
-{ c_expand_end_cond (); ;
-    break;}
 case 338:
 #line 1735 "c-parse.y"
+{ c_expand_end_cond (); ;
+    break;}
+case 339:
+#line 1737 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                  /* The emit_nop used to come before emit_line_note,
@@ -3237,8 +3249,8 @@ case 338:
                     We will see.  --rms, July 15, 1991.  */
                  emit_nop (); ;
     break;}
-case 339:
-#line 1745 "c-parse.y"
+case 340:
+#line 1747 "c-parse.y"
 { /* Don't start the loop till we have succeeded
                     in parsing the end test.  This is to make sure
                     that we end every loop we start.  */
@@ -3248,25 +3260,25 @@ case 339:
                                             truthvalue_conversion (yyvsp[-1].ttype));
                  position_after_white_space (); ;
     break;}
-case 340:
-#line 1754 "c-parse.y"
+case 341:
+#line 1756 "c-parse.y"
 { expand_end_loop (); ;
     break;}
-case 341:
-#line 1757 "c-parse.y"
+case 342:
+#line 1759 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_exit_loop_if_false (NULL_PTR,
                                             truthvalue_conversion (yyvsp[-2].ttype));
                  expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 342:
-#line 1764 "c-parse.y"
+case 343:
+#line 1766 "c-parse.y"
 { expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 343:
-#line 1768 "c-parse.y"
+case 344:
+#line 1770 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  /* See comment in `while' alternative, above.  */
@@ -3278,13 +3290,13 @@ case 343:
                     fn without calling expand_end_loop.  */
                ;
     break;}
-case 344:
-#line 1780 "c-parse.y"
+case 345:
+#line 1782 "c-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
-case 345:
-#line 1783 "c-parse.y"
+case 346:
+#line 1785 "c-parse.y"
 { 
                  /* Start the loop.  Doing this after parsing
                     all the expressions ensures we will end the loop.  */
@@ -3301,8 +3313,8 @@ case 345:
                  yyvsp[-2].filename = input_filename;
                  position_after_white_space (); ;
     break;}
-case 346:
-#line 1799 "c-parse.y"
+case 347:
+#line 1801 "c-parse.y"
 { /* Emit the increment expression, with a line number.  */
                  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
                  expand_loop_continue_here ();
@@ -3314,8 +3326,8 @@ case 346:
                    pop_momentary ();
                  expand_end_loop (); ;
     break;}
-case 347:
-#line 1810 "c-parse.y"
+case 348:
+#line 1812 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_case (yyvsp[-1].ttype);
@@ -3324,42 +3336,42 @@ case 347:
                  push_momentary ();
                  position_after_white_space (); ;
     break;}
-case 348:
-#line 1818 "c-parse.y"
+case 349:
+#line 1820 "c-parse.y"
 { expand_end_case (yyvsp[-3].ttype);
                  if (yychar == CONSTANT || yychar == STRING)
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); ;
     break;}
-case 349:
-#line 1824 "c-parse.y"
+case 350:
+#line 1826 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  if ( ! expand_exit_something ())
                    error ("break statement not within loop or switch"); ;
     break;}
-case 350:
-#line 1829 "c-parse.y"
+case 351:
+#line 1831 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  if (! expand_continue_loop (NULL_PTR))
                    error ("continue statement not within a loop"); ;
     break;}
-case 351:
-#line 1834 "c-parse.y"
+case 352:
+#line 1836 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  c_expand_return (NULL_TREE); ;
     break;}
-case 352:
-#line 1838 "c-parse.y"
+case 353:
+#line 1840 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                  c_expand_return (yyvsp[-1].ttype); ;
     break;}
-case 353:
-#line 1842 "c-parse.y"
+case 354:
+#line 1844 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3370,32 +3382,32 @@ case 353:
                  else
                    error ("argument of `asm' is not a constant string"); ;
     break;}
-case 354:
-#line 1853 "c-parse.y"
+case 355:
+#line 1855 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
                                         yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 355:
-#line 1860 "c-parse.y"
+case 356:
+#line 1862 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
                                         yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 356:
-#line 1868 "c-parse.y"
+case 357:
+#line 1870 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
                                         yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 357:
-#line 1874 "c-parse.y"
+case 358:
+#line 1876 "c-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3407,16 +3419,16 @@ case 357:
                    }
                ;
     break;}
-case 358:
-#line 1885 "c-parse.y"
+case 359:
+#line 1887 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids `goto *expr;'");
                  stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
-case 361:
-#line 1900 "c-parse.y"
+case 362:
+#line 1902 "c-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -3438,15 +3450,15 @@ case 361:
              }
          ;
     break;}
-case 362:
-#line 1921 "c-parse.y"
+case 363:
+#line 1923 "c-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
-case 363:
-#line 1956 "c-parse.y"
+case 364:
+#line 1958 "c-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
                  register tree label
                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -3478,8 +3490,8 @@ case 363:
                    }
                  position_after_white_space (); ;
     break;}
-case 364:
-#line 1987 "c-parse.y"
+case 365:
+#line 1989 "c-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
                  register tree value2 = check_case_value (yyvsp[-1].ttype);
                  register tree label
@@ -3511,8 +3523,8 @@ case 364:
                    }
                  position_after_white_space (); ;
     break;}
-case 365:
-#line 2018 "c-parse.y"
+case 366:
+#line 2020 "c-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -3528,8 +3540,8 @@ case 365:
                    }
                  position_after_white_space (); ;
     break;}
-case 366:
-#line 2033 "c-parse.y"
+case 367:
+#line 2035 "c-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -3540,53 +3552,53 @@ case 366:
                    }
                  position_after_white_space (); ;
     break;}
-case 367:
-#line 2048 "c-parse.y"
+case 368:
+#line 2050 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 368:
-#line 2051 "c-parse.y"
+case 369:
+#line 2053 "c-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
-case 369:
-#line 2056 "c-parse.y"
+case 370:
+#line 2058 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 371:
-#line 2063 "c-parse.y"
+case 372:
+#line 2065 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 374:
-#line 2070 "c-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
-    break;}
 case 375:
-#line 2075 "c-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 2072 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 376:
-#line 2080 "c-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
+#line 2077 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 377:
 #line 2082 "c-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
+{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
 case 378:
-#line 2088 "c-parse.y"
+#line 2084 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
+    break;}
+case 379:
+#line 2090 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
-case 379:
-#line 2092 "c-parse.y"
+case 380:
+#line 2094 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 381:
-#line 2100 "c-parse.y"
+case 382:
+#line 2102 "c-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3595,20 +3607,20 @@ case 381:
                    TREE_ASM_WRITTEN (parm) = 1;
                  clear_parm_order (); ;
     break;}
-case 382:
-#line 2108 "c-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
-    break;}
 case 383:
 #line 2110 "c-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 384:
-#line 2116 "c-parse.y"
-{ yyval.ttype = get_parm_info (0); ;
+#line 2112 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
 case 385:
 #line 2118 "c-parse.y"
+{ yyval.ttype = get_parm_info (0); ;
+    break;}
+case 386:
+#line 2120 "c-parse.y"
 { yyval.ttype = get_parm_info (0);
                  /* Gcc used to allow this as an extension.  However, it does
                     not work for all targets, and thus has been disabled.
@@ -3619,24 +3631,24 @@ case 385:
                  error ("ANSI C requires a named argument before `...'");
                ;
     break;}
-case 386:
-#line 2128 "c-parse.y"
-{ yyval.ttype = get_parm_info (1); ;
-    break;}
 case 387:
 #line 2130 "c-parse.y"
-{ yyval.ttype = get_parm_info (0); ;
+{ yyval.ttype = get_parm_info (1); ;
     break;}
 case 388:
-#line 2135 "c-parse.y"
-{ push_parm_decl (yyvsp[0].ttype); ;
+#line 2132 "c-parse.y"
+{ yyval.ttype = get_parm_info (0); ;
     break;}
 case 389:
 #line 2137 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 390:
-#line 2144 "c-parse.y"
+#line 2139 "c-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 391:
+#line 2146 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3646,8 +3658,8 @@ case 390:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 391:
-#line 2153 "c-parse.y"
+case 392:
+#line 2155 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3657,8 +3669,8 @@ case 391:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 392:
-#line 2162 "c-parse.y"
+case 393:
+#line 2164 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3668,8 +3680,8 @@ case 392:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 393:
-#line 2171 "c-parse.y"
+case 394:
+#line 2173 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3679,8 +3691,8 @@ case 393:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 394:
-#line 2181 "c-parse.y"
+case 395:
+#line 2183 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3690,44 +3702,44 @@ case 394:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 395:
-#line 2195 "c-parse.y"
+case 396:
+#line 2197 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
-case 396:
-#line 2199 "c-parse.y"
+case 397:
+#line 2201 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 398:
-#line 2207 "c-parse.y"
+case 399:
+#line 2209 "c-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
                      error ("`...' in old-style identifier list");
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 399:
-#line 2217 "c-parse.y"
-{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
-    break;}
 case 400:
 #line 2219 "c-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 401:
-#line 2225 "c-parse.y"
-{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+#line 2221 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 402:
 #line 2227 "c-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 403:
-#line 2232 "c-parse.y"
+#line 2229 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 404:
+#line 2234 "c-parse.y"
 { yyval.itype = pedantic;
                  pedantic = 0; ;
     break;}
@@ -3929,5 +3941,5 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 2236 "c-parse.y"
+#line 2238 "c-parse.y"
 
index c8ff12de753094ee831d21fd0ab78b602ed50882..6757c4d464aaf8250ce2e5825533ede7f63c2b5d 100644 (file)
@@ -31,7 +31,7 @@ ifobjc
 %expect 66
 end ifobjc
 ifc
-%expect 46
+%expect 51
 
 /* These are the 23 conflicts you should get in parse.output;
    the state numbers may vary if minor changes in the grammar are made.
@@ -1709,6 +1709,8 @@ absdcl1:  /* a nonempty absolute declarator */
                { $$ = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); }
        /* ??? It appears we have to support attributes here, however
           using prefix_attributes is wrong.  */
+       | attributes setattrs absdcl1
+               { $$ = $3; }
        ;
 
 /* at least one statement, the first of which parses without error.  */
index 59c2be93bad2faf3b98a639237e5da5750f073b0..bb69dfed3137d742cd66acfef1a09502ab86d571 100644 (file)
@@ -28,7 +28,7 @@ Boston, MA 02111-1307, USA.  */
 /* To whomever it may concern: I have heard that such a thing was once
    written by AT&T, but I have never seen it.  */
 
-%expect 46
+%expect 51
 
 /* These are the 23 conflicts you should get in parse.output;
    the state numbers may vary if minor changes in the grammar are made.
@@ -1518,6 +1518,8 @@ absdcl1:  /* a nonempty absolute declarator */
                { $$ = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); }
        /* ??? It appears we have to support attributes here, however
           using prefix_attributes is wrong.  */
+       | attributes setattrs absdcl1
+               { $$ = $3; }
        ;
 
 /* at least one statement, the first of which parses without error.  */
index d878dfe483ce00173605b7e8bef1352f0c2670fa..b95312d8708c64d4c220655f3f8e7c5735675cdc 100644 (file)
@@ -146,7 +146,7 @@ extern void yyprint                 PROTO ((FILE *, int, YYSTYPE));
 
 
 
-#define        YYFINAL         952
+#define        YYFINAL         955
 #define        YYFLAG          -32768
 #define        YYNTBASE        84
 
@@ -220,32 +220,32 @@ static const short yyprhs[] = {     0,
    861,   863,   866,   868,   872,   877,   884,   890,   892,   896,
    898,   900,   904,   907,   910,   911,   913,   915,   918,   919,
    922,   926,   930,   933,   937,   942,   946,   949,   953,   956,
-   958,   960,   963,   966,   967,   969,   972,   973,   974,   976,
-   978,   981,   985,   987,   990,   992,   995,  1002,  1008,  1014,
-  1017,  1020,  1025,  1026,  1031,  1032,  1033,  1037,  1042,  1046,
-  1048,  1050,  1052,  1054,  1057,  1058,  1063,  1065,  1069,  1070,
-  1071,  1079,  1085,  1088,  1089,  1090,  1091,  1104,  1105,  1112,
-  1115,  1118,  1121,  1125,  1132,  1141,  1152,  1165,  1169,  1174,
-  1176,  1178,  1179,  1186,  1190,  1196,  1199,  1203,  1204,  1206,
-  1207,  1209,  1210,  1212,  1214,  1218,  1223,  1225,  1229,  1230,
-  1233,  1236,  1237,  1242,  1245,  1246,  1248,  1250,  1254,  1256,
-  1260,  1265,  1270,  1275,  1280,  1285,  1286,  1289,  1291,  1294,
-  1296,  1300,  1302,  1306,  1308,  1310,  1312,  1314,  1316,  1318,
-  1320,  1322,  1326,  1330,  1335,  1336,  1337,  1348,  1349,  1356,
-  1357,  1358,  1371,  1372,  1381,  1382,  1389,  1392,  1393,  1402,
-  1407,  1408,  1418,  1424,  1425,  1432,  1433,  1435,  1439,  1443,
-  1445,  1447,  1449,  1451,  1452,  1456,  1459,  1463,  1467,  1469,
-  1470,  1472,  1476,  1478,  1482,  1485,  1486,  1487,  1488,  1496,
-  1497,  1498,  1499,  1507,  1508,  1509,  1512,  1514,  1516,  1519,
-  1520,  1524,  1526,  1528,  1529,  1530,  1536,  1537,  1538,  1544,
-  1549,  1551,  1557,  1560,  1561,  1564,  1565,  1567,  1569,  1571,
-  1574,  1577,  1582,  1585,  1588,  1590,  1594,  1597,  1600,  1603,
-  1604,  1607,  1608,  1612,  1614,  1616,  1619,  1621,  1623,  1625,
-  1627,  1629,  1631,  1633,  1635,  1637,  1639,  1641,  1643,  1645,
-  1647,  1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,
-  1667,  1669,  1676,  1680,  1686,  1689,  1691,  1693,  1695,  1698,
-  1700,  1704,  1707,  1709,  1711,  1712,  1713,  1720,  1722,  1724,
-  1726,  1729,  1732,  1734,  1739,  1744
+   960,   962,   964,   967,   970,   971,   973,   976,   977,   978,
+   980,   982,   985,   989,   991,   994,   996,   999,  1006,  1012,
+  1018,  1021,  1024,  1029,  1030,  1035,  1036,  1037,  1041,  1046,
+  1050,  1052,  1054,  1056,  1058,  1061,  1062,  1067,  1069,  1073,
+  1074,  1075,  1083,  1089,  1092,  1093,  1094,  1095,  1108,  1109,
+  1116,  1119,  1122,  1125,  1129,  1136,  1145,  1156,  1169,  1173,
+  1178,  1180,  1182,  1183,  1190,  1194,  1200,  1203,  1207,  1208,
+  1210,  1211,  1213,  1214,  1216,  1218,  1222,  1227,  1229,  1233,
+  1234,  1237,  1240,  1241,  1246,  1249,  1250,  1252,  1254,  1258,
+  1260,  1264,  1269,  1274,  1279,  1284,  1289,  1290,  1293,  1295,
+  1298,  1300,  1304,  1306,  1310,  1312,  1314,  1316,  1318,  1320,
+  1322,  1324,  1326,  1330,  1334,  1339,  1340,  1341,  1352,  1353,
+  1360,  1361,  1362,  1375,  1376,  1385,  1386,  1393,  1396,  1397,
+  1406,  1411,  1412,  1422,  1428,  1429,  1436,  1437,  1439,  1443,
+  1447,  1449,  1451,  1453,  1455,  1456,  1460,  1463,  1467,  1471,
+  1473,  1474,  1476,  1480,  1482,  1486,  1489,  1490,  1491,  1492,
+  1500,  1501,  1502,  1503,  1511,  1512,  1513,  1516,  1518,  1520,
+  1523,  1524,  1528,  1530,  1532,  1533,  1534,  1540,  1541,  1542,
+  1548,  1553,  1555,  1561,  1564,  1565,  1568,  1569,  1571,  1573,
+  1575,  1578,  1581,  1586,  1589,  1592,  1594,  1598,  1601,  1604,
+  1607,  1608,  1611,  1612,  1616,  1618,  1620,  1623,  1625,  1627,
+  1629,  1631,  1633,  1635,  1637,  1639,  1641,  1643,  1645,  1647,
+  1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
+  1669,  1671,  1673,  1680,  1684,  1690,  1693,  1695,  1697,  1699,
+  1702,  1704,  1708,  1711,  1713,  1715,  1716,  1717,  1724,  1726,
+  1728,  1730,  1733,  1736,  1738,  1743,  1748
 };
 
 static const short yyrhs[] = {    -1,
@@ -344,86 +344,87 @@ static const short yyrhs[] = {    -1,
      0,    59,   190,    76,     0,    50,   189,   190,     0,    50,
    189,     0,   190,    59,   229,     0,   190,    60,    99,    83,
      0,   190,    60,    83,     0,    59,   229,     0,    60,    99,
-    83,     0,    60,    83,     0,   192,     0,   209,     0,   192,
-   209,     0,   192,   194,     0,     0,   191,     0,     1,    77,
-     0,     0,     0,   197,     0,   198,     0,   197,   198,     0,
-    32,   240,    77,     0,   201,     0,     1,   201,     0,    82,
-     0,   200,    78,     0,   200,   195,   196,   122,   193,    78,
-     0,   200,   195,   196,     1,    78,     0,   200,   195,   196,
-   191,    78,     0,   203,   208,     0,   203,     1,     0,    15,
-    59,    99,    76,     0,     0,    18,   205,   208,    17,     0,
-     0,     0,   206,   207,   211,     0,   206,   207,   222,   208,
-     0,   206,   207,   210,     0,   211,     0,   222,     0,   201,
-     0,   219,     0,    99,    77,     0,     0,   202,    16,   212,
-   208,     0,   202,     0,   202,    16,     1,     0,     0,     0,
-    17,   213,    59,    99,    76,   214,   208,     0,   204,    59,
-    99,    76,    77,     0,   204,     1,     0,     0,     0,     0,
-    19,    59,   224,    77,   215,   224,    77,   216,   224,    76,
-   217,   208,     0,     0,    20,    59,    99,    76,   218,   208,
-     0,    23,    77,     0,    24,    77,     0,    25,    77,     0,
-    25,    99,    77,     0,    27,   223,    59,    99,    76,    77,
-     0,    27,   223,    59,    99,    38,   225,    76,    77,     0,
-    27,   223,    59,    99,    38,   225,    38,   225,    76,    77,
-     0,    27,   223,    59,    99,    38,   225,    38,   225,    38,
-   228,    76,    77,     0,    26,    97,    77,     0,    26,    50,
-    99,    77,     0,    77,     0,   220,     0,     0,    19,    59,
-   113,    76,   221,   208,     0,    21,   107,    38,     0,    21,
-   107,    10,   107,    38,     0,    22,    38,     0,    97,    38,
-   143,     0,     0,     7,     0,     0,    99,     0,     0,   226,
-     0,   227,     0,   226,    81,   227,     0,     9,    59,    99,
-    76,     0,   115,     0,   228,    81,   115,     0,     0,   230,
-   231,     0,   233,    76,     0,     0,   234,    77,   232,   231,
-     0,     1,    76,     0,     0,    10,     0,   234,     0,   234,
-    81,    10,     0,   235,     0,   234,    81,   235,     0,   126,
-   123,   167,   143,     0,   126,   123,   168,   143,     0,   126,
-   123,   187,   143,     0,   130,   123,   168,   143,     0,   130,
-   123,   187,   143,     0,     0,   237,   238,     0,   231,     0,
-   239,    76,     0,     3,     0,   239,    81,     3,     0,    97,
-     0,   240,    81,    97,     0,    31,     0,   246,     0,   244,
-     0,   245,     0,   256,     0,   266,     0,    63,     0,    97,
-     0,   243,    81,    97,     0,    73,   243,    77,     0,    74,
-    97,    97,    77,     0,     0,     0,    61,    97,   258,    82,
-   247,   260,    78,   248,   273,    63,     0,     0,    61,    97,
-   258,   249,   273,    63,     0,     0,     0,    61,    97,    38,
-    97,   258,    82,   250,   260,    78,   251,   273,    63,     0,
-     0,    61,    97,    38,    97,   258,   252,   273,    63,     0,
-     0,    62,    97,    82,   253,   260,    78,     0,    62,    97,
-     0,     0,    62,    97,    38,    97,    82,   254,   260,    78,
-     0,    62,    97,    38,    97,     0,     0,    61,    97,    59,
-    97,    76,   258,   255,   273,    63,     0,    62,    97,    59,
-    97,    76,     0,     0,    71,    97,   258,   257,   273,    63,
-     0,     0,   259,     0,    45,   243,    45,     0,   260,   261,
-   262,     0,   262,     0,    69,     0,    70,     0,    68,     0,
-     0,   262,   263,    77,     0,   262,    77,     0,   132,   123,
-   264,     0,   188,   123,   264,     0,     1,     0,     0,   265,
-     0,   264,    81,   265,     0,   165,     0,   165,    38,   107,
-     0,    38,   107,     0,     0,     0,     0,    48,   267,   283,
-   268,   284,   269,   199,     0,     0,     0,     0,    49,   270,
-   283,   271,   284,   272,   199,     0,     0,     0,   274,   275,
-     0,   278,     0,    89,     0,   275,   278,     0,     0,   275,
-   276,    89,     0,    77,     0,     1,     0,     0,     0,    48,
-   279,   283,   280,   277,     0,     0,     0,    49,   281,   283,
-   282,   277,     0,    59,   186,    76,   292,     0,   292,     0,
-    59,   186,    76,   293,   290,     0,   293,   290,     0,     0,
-    77,   285,     0,     0,   286,     0,   287,     0,   194,     0,
-   286,   287,     0,   287,   194,     0,   126,   123,   288,    77,
-     0,   126,    77,     0,   130,    77,     0,   289,     0,   288,
-    81,   289,     0,   167,   143,     0,   168,   143,     0,   187,
-   143,     0,     0,    81,    10,     0,     0,    81,   291,   233,
-     0,   294,     0,   296,     0,   293,   296,     0,     3,     0,
-     4,     0,    72,     0,   295,     0,    12,     0,    13,     0,
-    14,     0,    15,     0,    16,     0,    17,     0,    18,     0,
-    19,     0,    20,     0,    21,     0,    22,     0,    23,     0,
-    24,     0,    25,     0,    26,     0,    27,     0,    11,     0,
-    28,     0,    29,     0,     6,     0,     7,     0,   294,    38,
-    59,   186,    76,    97,     0,   294,    38,    97,     0,    38,
-    59,   186,    76,    97,     0,    38,    97,     0,   294,     0,
-   298,     0,   300,     0,   298,   300,     0,   101,     0,   294,
-    38,   299,     0,    38,   299,     0,    99,     0,    67,     0,
-     0,     0,    60,   303,   301,   304,   297,    83,     0,   294,
-     0,   306,     0,   307,     0,   306,   307,     0,   294,    38,
-     0,    38,     0,    64,    59,   305,    76,     0,    71,    59,
-    97,    76,     0,    66,    59,   186,    76,     0
+    83,     0,    60,    83,     0,   144,   124,   190,     0,   192,
+     0,   209,     0,   192,   209,     0,   192,   194,     0,     0,
+   191,     0,     1,    77,     0,     0,     0,   197,     0,   198,
+     0,   197,   198,     0,    32,   240,    77,     0,   201,     0,
+     1,   201,     0,    82,     0,   200,    78,     0,   200,   195,
+   196,   122,   193,    78,     0,   200,   195,   196,     1,    78,
+     0,   200,   195,   196,   191,    78,     0,   203,   208,     0,
+   203,     1,     0,    15,    59,    99,    76,     0,     0,    18,
+   205,   208,    17,     0,     0,     0,   206,   207,   211,     0,
+   206,   207,   222,   208,     0,   206,   207,   210,     0,   211,
+     0,   222,     0,   201,     0,   219,     0,    99,    77,     0,
+     0,   202,    16,   212,   208,     0,   202,     0,   202,    16,
+     1,     0,     0,     0,    17,   213,    59,    99,    76,   214,
+   208,     0,   204,    59,    99,    76,    77,     0,   204,     1,
+     0,     0,     0,     0,    19,    59,   224,    77,   215,   224,
+    77,   216,   224,    76,   217,   208,     0,     0,    20,    59,
+    99,    76,   218,   208,     0,    23,    77,     0,    24,    77,
+     0,    25,    77,     0,    25,    99,    77,     0,    27,   223,
+    59,    99,    76,    77,     0,    27,   223,    59,    99,    38,
+   225,    76,    77,     0,    27,   223,    59,    99,    38,   225,
+    38,   225,    76,    77,     0,    27,   223,    59,    99,    38,
+   225,    38,   225,    38,   228,    76,    77,     0,    26,    97,
+    77,     0,    26,    50,    99,    77,     0,    77,     0,   220,
+     0,     0,    19,    59,   113,    76,   221,   208,     0,    21,
+   107,    38,     0,    21,   107,    10,   107,    38,     0,    22,
+    38,     0,    97,    38,   143,     0,     0,     7,     0,     0,
+    99,     0,     0,   226,     0,   227,     0,   226,    81,   227,
+     0,     9,    59,    99,    76,     0,   115,     0,   228,    81,
+   115,     0,     0,   230,   231,     0,   233,    76,     0,     0,
+   234,    77,   232,   231,     0,     1,    76,     0,     0,    10,
+     0,   234,     0,   234,    81,    10,     0,   235,     0,   234,
+    81,   235,     0,   126,   123,   167,   143,     0,   126,   123,
+   168,   143,     0,   126,   123,   187,   143,     0,   130,   123,
+   168,   143,     0,   130,   123,   187,   143,     0,     0,   237,
+   238,     0,   231,     0,   239,    76,     0,     3,     0,   239,
+    81,     3,     0,    97,     0,   240,    81,    97,     0,    31,
+     0,   246,     0,   244,     0,   245,     0,   256,     0,   266,
+     0,    63,     0,    97,     0,   243,    81,    97,     0,    73,
+   243,    77,     0,    74,    97,    97,    77,     0,     0,     0,
+    61,    97,   258,    82,   247,   260,    78,   248,   273,    63,
+     0,     0,    61,    97,   258,   249,   273,    63,     0,     0,
+     0,    61,    97,    38,    97,   258,    82,   250,   260,    78,
+   251,   273,    63,     0,     0,    61,    97,    38,    97,   258,
+   252,   273,    63,     0,     0,    62,    97,    82,   253,   260,
+    78,     0,    62,    97,     0,     0,    62,    97,    38,    97,
+    82,   254,   260,    78,     0,    62,    97,    38,    97,     0,
+     0,    61,    97,    59,    97,    76,   258,   255,   273,    63,
+     0,    62,    97,    59,    97,    76,     0,     0,    71,    97,
+   258,   257,   273,    63,     0,     0,   259,     0,    45,   243,
+    45,     0,   260,   261,   262,     0,   262,     0,    69,     0,
+    70,     0,    68,     0,     0,   262,   263,    77,     0,   262,
+    77,     0,   132,   123,   264,     0,   188,   123,   264,     0,
+     1,     0,     0,   265,     0,   264,    81,   265,     0,   165,
+     0,   165,    38,   107,     0,    38,   107,     0,     0,     0,
+     0,    48,   267,   283,   268,   284,   269,   199,     0,     0,
+     0,     0,    49,   270,   283,   271,   284,   272,   199,     0,
+     0,     0,   274,   275,     0,   278,     0,    89,     0,   275,
+   278,     0,     0,   275,   276,    89,     0,    77,     0,     1,
+     0,     0,     0,    48,   279,   283,   280,   277,     0,     0,
+     0,    49,   281,   283,   282,   277,     0,    59,   186,    76,
+   292,     0,   292,     0,    59,   186,    76,   293,   290,     0,
+   293,   290,     0,     0,    77,   285,     0,     0,   286,     0,
+   287,     0,   194,     0,   286,   287,     0,   287,   194,     0,
+   126,   123,   288,    77,     0,   126,    77,     0,   130,    77,
+     0,   289,     0,   288,    81,   289,     0,   167,   143,     0,
+   168,   143,     0,   187,   143,     0,     0,    81,    10,     0,
+     0,    81,   291,   233,     0,   294,     0,   296,     0,   293,
+   296,     0,     3,     0,     4,     0,    72,     0,   295,     0,
+    12,     0,    13,     0,    14,     0,    15,     0,    16,     0,
+    17,     0,    18,     0,    19,     0,    20,     0,    21,     0,
+    22,     0,    23,     0,    24,     0,    25,     0,    26,     0,
+    27,     0,    11,     0,    28,     0,    29,     0,     6,     0,
+     7,     0,   294,    38,    59,   186,    76,    97,     0,   294,
+    38,    97,     0,    38,    59,   186,    76,    97,     0,    38,
+    97,     0,   294,     0,   298,     0,   300,     0,   298,   300,
+     0,   101,     0,   294,    38,   299,     0,    38,   299,     0,
+    99,     0,    67,     0,     0,     0,    60,   303,   301,   304,
+   297,    83,     0,   294,     0,   306,     0,   307,     0,   306,
+   307,     0,   294,    38,     0,    38,     0,    64,    59,   305,
+    76,     0,    71,    59,    97,    76,     0,    66,    59,   186,
+    76,     0
 };
 
 #endif
@@ -460,33 +461,33 @@ static const short yyrline[] = { 0,
   1466,  1469,  1474,  1476,  1478,  1482,  1506,  1513,  1518,  1524,
   1529,  1531,  1536,  1538,  1542,  1546,  1550,  1560,  1562,  1567,
   1572,  1575,  1579,  1582,  1586,  1589,  1592,  1595,  1599,  1602,
-  1606,  1610,  1612,  1614,  1616,  1618,  1620,  1622,  1624,  1634,
-  1642,  1644,  1646,  1650,  1652,  1655,  1658,  1671,  1673,  1678,
-  1680,  1683,  1697,  1700,  1703,  1705,  1707,  1715,  1723,  1734,
-  1739,  1742,  1756,  1765,  1769,  1773,  1777,  1783,  1787,  1792,
-  1795,  1800,  1803,  1804,  1821,  1826,  1829,  1841,  1843,  1853,
-  1863,  1864,  1872,  1875,  1887,  1891,  1908,  1918,  1927,  1932,
-  1937,  1942,  1946,  1950,  1961,  1968,  1975,  1982,  1993,  1999,
-  2002,  2007,  2030,  2064,  2095,  2126,  2141,  2155,  2159,  2163,
-  2166,  2171,  2173,  2176,  2178,  2182,  2187,  2190,  2196,  2201,
-  2206,  2208,  2217,  2218,  2224,  2226,  2236,  2238,  2242,  2245,
-  2251,  2261,  2270,  2279,  2289,  2303,  2308,  2313,  2315,  2324,
-  2327,  2332,  2335,  2339,  2347,  2349,  2350,  2351,  2352,  2353,
-  2367,  2370,  2374,  2380,  2386,  2393,  2398,  2404,  2411,  2417,
-  2423,  2428,  2434,  2441,  2447,  2453,  2459,  2467,  2473,  2479,
-  2487,  2494,  2500,  2509,  2516,  2524,  2529,  2532,  2542,  2544,
-  2547,  2549,  2550,  2553,  2558,  2559,  2576,  2583,  2589,  2593,
-  2596,  2597,  2600,  2608,  2614,  2623,  2633,  2640,  2644,  2649,
-  2658,  2665,  2669,  2679,  2681,  2682,  2684,  2686,  2687,  2688,
-  2689,  2691,  2693,  2696,  2704,  2711,  2711,  2718,  2724,  2726,
-  2732,  2737,  2742,  2751,  2753,  2759,  2761,  2764,  2766,  2767,
-  2768,  2771,  2777,  2779,  2783,  2786,  2793,  2799,  2804,  2811,
-  2816,  2821,  2826,  2833,  2837,  2840,  2846,  2848,  2849,  2850,
-  2853,  2855,  2856,  2857,  2858,  2859,  2860,  2861,  2862,  2863,
-  2864,  2865,  2866,  2867,  2868,  2869,  2870,  2871,  2872,  2873,
-  2873,  2876,  2882,  2887,  2892,  2898,  2900,  2903,  2905,  2912,
-  2924,  2929,  2935,  2937,  2943,  2947,  2948,  2954,  2956,  2959,
-  2961,  2967,  2972,  2978,  2985,  2994
+  1606,  1610,  1612,  1614,  1616,  1618,  1620,  1622,  1624,  1628,
+  1636,  1644,  1646,  1648,  1652,  1654,  1657,  1660,  1673,  1675,
+  1680,  1682,  1685,  1699,  1702,  1705,  1707,  1709,  1717,  1725,
+  1736,  1741,  1744,  1758,  1767,  1771,  1775,  1779,  1785,  1789,
+  1794,  1797,  1802,  1805,  1806,  1823,  1828,  1831,  1843,  1845,
+  1855,  1865,  1866,  1874,  1877,  1889,  1893,  1910,  1920,  1929,
+  1934,  1939,  1944,  1948,  1952,  1963,  1970,  1977,  1984,  1995,
+  2001,  2004,  2009,  2032,  2066,  2097,  2128,  2143,  2157,  2161,
+  2165,  2168,  2173,  2175,  2178,  2180,  2184,  2189,  2192,  2198,
+  2203,  2208,  2210,  2219,  2220,  2226,  2228,  2238,  2240,  2244,
+  2247,  2253,  2263,  2272,  2281,  2291,  2305,  2310,  2315,  2317,
+  2326,  2329,  2334,  2337,  2341,  2349,  2351,  2352,  2353,  2354,
+  2355,  2369,  2372,  2376,  2382,  2388,  2395,  2400,  2406,  2413,
+  2419,  2425,  2430,  2436,  2443,  2449,  2455,  2461,  2469,  2475,
+  2481,  2489,  2496,  2502,  2511,  2518,  2526,  2531,  2534,  2544,
+  2546,  2549,  2551,  2552,  2555,  2560,  2561,  2578,  2585,  2591,
+  2595,  2598,  2599,  2602,  2610,  2616,  2625,  2635,  2642,  2646,
+  2651,  2660,  2667,  2671,  2681,  2683,  2684,  2686,  2688,  2689,
+  2690,  2691,  2693,  2695,  2698,  2706,  2713,  2713,  2720,  2726,
+  2728,  2734,  2739,  2744,  2753,  2755,  2761,  2763,  2766,  2768,
+  2769,  2770,  2773,  2779,  2781,  2785,  2788,  2795,  2801,  2806,
+  2813,  2818,  2823,  2828,  2835,  2839,  2842,  2848,  2850,  2851,
+  2852,  2855,  2857,  2858,  2859,  2860,  2861,  2862,  2863,  2864,
+  2865,  2866,  2867,  2868,  2869,  2870,  2871,  2872,  2873,  2874,
+  2875,  2875,  2878,  2884,  2889,  2894,  2900,  2902,  2905,  2907,
+  2914,  2926,  2931,  2937,  2939,  2945,  2949,  2950,  2956,  2958,
+  2961,  2963,  2969,  2974,  2980,  2987,  2996
 };
 #endif
 
@@ -570,33 +571,33 @@ static const short yyr1[] = {     0,
    179,   179,   180,   180,   180,   180,   181,   181,   181,   181,
    181,   181,   182,   182,   183,   183,   183,   184,   184,   184,
    185,   185,   186,   186,   187,   187,   188,   188,   189,   189,
-   190,   190,   190,   190,   190,   190,   190,   190,   190,   191,
-   192,   192,   192,   193,   193,   194,   195,   196,   196,   197,
-   197,   198,   199,   199,   200,   201,   201,   201,   201,   202,
-   202,   203,   205,   204,   206,   207,   208,   208,   209,   210,
-   210,   211,   211,   211,   212,   211,   211,   211,   213,   214,
-   211,   211,   211,   215,   216,   217,   211,   218,   211,   211,
+   190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
+   191,   192,   192,   192,   193,   193,   194,   195,   196,   196,
+   197,   197,   198,   199,   199,   200,   201,   201,   201,   201,
+   202,   202,   203,   205,   204,   206,   207,   208,   208,   209,
+   210,   210,   211,   211,   211,   212,   211,   211,   211,   213,
+   214,   211,   211,   211,   215,   216,   217,   211,   218,   211,
    211,   211,   211,   211,   211,   211,   211,   211,   211,   211,
-   219,   221,   220,   222,   222,   222,   222,   223,   223,   224,
-   224,   225,   225,   226,   226,   227,   228,   228,   230,   229,
-   231,   232,   231,   231,   233,   233,   233,   233,   234,   234,
-   235,   235,   235,   235,   235,   237,   236,   238,   238,   239,
-   239,   240,   240,   241,   242,   242,   242,   242,   242,   242,
-   243,   243,   244,   245,   247,   248,   246,   249,   246,   250,
-   251,   246,   252,   246,   253,   246,   246,   254,   246,   246,
-   255,   246,   246,   257,   256,   258,   258,   259,   260,   260,
-   261,   261,   261,   262,   262,   262,   263,   263,   263,   264,
-   264,   264,   265,   265,   265,   267,   268,   269,   266,   270,
-   271,   272,   266,   273,   274,   273,   275,   275,   275,   276,
-   275,   277,   277,   279,   280,   278,   281,   282,   278,   283,
-   283,   283,   283,   284,   284,   285,   285,   286,   286,   286,
-   286,   287,   287,   287,   288,   288,   289,   289,   289,   290,
-   290,   291,   290,   292,   293,   293,   294,   294,   294,   294,
+   211,   219,   221,   220,   222,   222,   222,   222,   223,   223,
+   224,   224,   225,   225,   226,   226,   227,   228,   228,   230,
+   229,   231,   232,   231,   231,   233,   233,   233,   233,   234,
+   234,   235,   235,   235,   235,   235,   237,   236,   238,   238,
+   239,   239,   240,   240,   241,   242,   242,   242,   242,   242,
+   242,   243,   243,   244,   245,   247,   248,   246,   249,   246,
+   250,   251,   246,   252,   246,   253,   246,   246,   254,   246,
+   246,   255,   246,   246,   257,   256,   258,   258,   259,   260,
+   260,   261,   261,   261,   262,   262,   262,   263,   263,   263,
+   264,   264,   264,   265,   265,   265,   267,   268,   269,   266,
+   270,   271,   272,   266,   273,   274,   273,   275,   275,   275,
+   276,   275,   277,   277,   279,   280,   278,   281,   282,   278,
+   283,   283,   283,   283,   284,   284,   285,   285,   286,   286,
+   286,   286,   287,   287,   287,   288,   288,   289,   289,   289,
+   290,   290,   291,   290,   292,   293,   293,   294,   294,   294,
+   294,   295,   295,   295,   295,   295,   295,   295,   295,   295,
    295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
-   295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
-   295,   296,   296,   296,   296,   297,   297,   298,   298,   299,
-   300,   300,   301,   301,   303,   304,   302,   305,   305,   306,
-   306,   307,   307,   308,   309,   310
+   295,   295,   296,   296,   296,   296,   297,   297,   298,   298,
+   299,   300,   300,   301,   301,   303,   304,   302,   305,   305,
+   306,   306,   307,   307,   308,   309,   310
 };
 
 static const short yyr2[] = {     0,
@@ -630,56 +631,56 @@ static const short yyr2[] = {     0,
      1,     2,     0,     3,     2,     4,     3,     1,     3,     1,
      1,     2,     1,     3,     4,     6,     5,     1,     3,     1,
      1,     3,     2,     2,     0,     1,     1,     2,     0,     2,
-     3,     3,     2,     3,     4,     3,     2,     3,     2,     1,
-     1,     2,     2,     0,     1,     2,     0,     0,     1,     1,
-     2,     3,     1,     2,     1,     2,     6,     5,     5,     2,
-     2,     4,     0,     4,     0,     0,     3,     4,     3,     1,
-     1,     1,     1,     2,     0,     4,     1,     3,     0,     0,
-     7,     5,     2,     0,     0,     0,    12,     0,     6,     2,
-     2,     2,     3,     6,     8,    10,    12,     3,     4,     1,
-     1,     0,     6,     3,     5,     2,     3,     0,     1,     0,
-     1,     0,     1,     1,     3,     4,     1,     3,     0,     2,
-     2,     0,     4,     2,     0,     1,     1,     3,     1,     3,
-     4,     4,     4,     4,     4,     0,     2,     1,     2,     1,
-     3,     1,     3,     1,     1,     1,     1,     1,     1,     1,
-     1,     3,     3,     4,     0,     0,    10,     0,     6,     0,
-     0,    12,     0,     8,     0,     6,     2,     0,     8,     4,
-     0,     9,     5,     0,     6,     0,     1,     3,     3,     1,
-     1,     1,     1,     0,     3,     2,     3,     3,     1,     0,
-     1,     3,     1,     3,     2,     0,     0,     0,     7,     0,
-     0,     0,     7,     0,     0,     2,     1,     1,     2,     0,
-     3,     1,     1,     0,     0,     5,     0,     0,     5,     4,
-     1,     5,     2,     0,     2,     0,     1,     1,     1,     2,
-     2,     4,     2,     2,     1,     3,     2,     2,     2,     0,
-     2,     0,     3,     1,     1,     2,     1,     1,     1,     1,
+     3,     3,     2,     3,     4,     3,     2,     3,     2,     3,
+     1,     1,     2,     2,     0,     1,     2,     0,     0,     1,
+     1,     2,     3,     1,     2,     1,     2,     6,     5,     5,
+     2,     2,     4,     0,     4,     0,     0,     3,     4,     3,
+     1,     1,     1,     1,     2,     0,     4,     1,     3,     0,
+     0,     7,     5,     2,     0,     0,     0,    12,     0,     6,
+     2,     2,     2,     3,     6,     8,    10,    12,     3,     4,
+     1,     1,     0,     6,     3,     5,     2,     3,     0,     1,
+     0,     1,     0,     1,     1,     3,     4,     1,     3,     0,
+     2,     2,     0,     4,     2,     0,     1,     1,     3,     1,
+     3,     4,     4,     4,     4,     4,     0,     2,     1,     2,
+     1,     3,     1,     3,     1,     1,     1,     1,     1,     1,
+     1,     1,     3,     3,     4,     0,     0,    10,     0,     6,
+     0,     0,    12,     0,     8,     0,     6,     2,     0,     8,
+     4,     0,     9,     5,     0,     6,     0,     1,     3,     3,
+     1,     1,     1,     1,     0,     3,     2,     3,     3,     1,
+     0,     1,     3,     1,     3,     2,     0,     0,     0,     7,
+     0,     0,     0,     7,     0,     0,     2,     1,     1,     2,
+     0,     3,     1,     1,     0,     0,     5,     0,     0,     5,
+     4,     1,     5,     2,     0,     2,     0,     1,     1,     1,
+     2,     2,     4,     2,     2,     1,     3,     2,     2,     2,
+     0,     2,     0,     3,     1,     1,     2,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     6,     3,     5,     2,     1,     1,     1,     2,     1,
-     3,     2,     1,     1,     0,     0,     6,     1,     1,     1,
-     2,     2,     1,     4,     4,     4
+     1,     1,     6,     3,     5,     2,     1,     1,     1,     2,
+     1,     3,     2,     1,     1,     0,     0,     6,     1,     1,
+     1,     2,     2,     1,     4,     4,     4
 };
 
 static const short yydefact[] = {     3,
      5,     0,     0,     0,   162,   153,   160,   152,   252,   248,
-   250,     0,     0,     0,   414,     0,   466,   470,     0,     0,
-   420,   446,     0,   446,     0,     0,    19,     4,     8,     7,
+   250,     0,     0,     0,   415,     0,   467,   471,     0,     0,
+   421,   447,     0,   447,     0,     0,    19,     4,     8,     7,
      0,   128,   128,   148,   139,   149,   185,     0,     0,     0,
-   161,     0,     9,   416,   417,   415,   418,   165,   419,     6,
+   161,     0,     9,   417,   418,   416,   419,   165,   420,     6,
     17,    18,   253,   249,   251,     0,     0,     0,    32,    33,
-    35,    34,   421,     0,     0,     0,   446,   437,   163,   447,
-   446,   164,     0,     0,   247,   299,     0,     0,   173,   129,
+    35,    34,   422,     0,     0,     0,   447,   438,   163,   448,
+   447,   164,     0,     0,   247,   299,     0,     0,   173,   129,
      0,    16,     0,    15,     0,   150,   139,   151,   155,   154,
    137,   186,   273,   257,   273,   261,   264,   266,    11,    89,
     90,   107,    59,    60,     0,     0,     0,    36,    38,    37,
-     0,    39,    40,     0,   555,     0,     0,     0,   109,    41,
+     0,    39,    40,     0,   556,     0,     0,     0,   109,    41,
     42,     0,     0,    43,    61,     0,     0,    65,    46,    48,
     91,   106,     0,   102,   103,   104,   105,   297,     0,   295,
-   158,     0,   295,   190,   448,     0,   517,   518,   540,   541,
-   537,   521,   522,   523,   524,   525,   526,   527,   528,   529,
-   530,   531,   532,   533,   534,   535,   536,   538,   539,     0,
-     0,   519,   467,   491,   510,   514,   520,   515,   471,     0,
-     0,   428,     0,     0,   435,   444,   423,     0,     0,     0,
-    12,     0,     0,    31,     0,   406,     0,     0,   183,   233,
+   158,     0,   295,   190,   449,     0,   518,   519,   541,   542,
+   538,   522,   523,   524,   525,   526,   527,   528,   529,   530,
+   531,   532,   533,   534,   535,   536,   537,   539,   540,     0,
+     0,   520,   468,   492,   511,   515,   521,   516,   472,     0,
+     0,   429,     0,     0,   436,   445,   424,     0,     0,     0,
+    12,     0,     0,    31,     0,   407,     0,     0,   183,   233,
    299,     0,   234,     0,   171,   129,     0,   225,   226,     0,
      0,   138,   141,   168,   169,   140,   142,   170,     0,     0,
      0,   254,     0,   258,     0,   262,    57,    58,    52,    49,
@@ -687,886 +688,910 @@ static const short yydefact[] = {     3,
      0,     0,    53,     0,    55,     0,     0,    82,    80,    78,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,   100,   101,     0,     0,    44,     0,   108,   110,
-    50,   166,   299,   389,     0,   293,   296,   156,   167,   298,
-   158,   294,   196,   197,   198,   195,     0,   188,   191,   422,
-     0,   545,     0,   494,   512,   493,     0,   516,     0,   494,
-   446,     0,   425,   475,   440,     0,   454,   475,   424,   300,
-   243,   242,   174,   175,   246,     0,   241,     0,   245,     0,
-     0,    29,     0,   335,   116,   336,   182,   184,     0,     0,
-    14,     0,     0,    23,     0,   183,   406,     0,    13,    27,
-     0,     0,   183,   281,   275,   128,   272,   128,     0,   273,
-   183,   273,   290,   291,   269,   288,     0,    93,    92,   325,
-   317,     0,     0,   554,   553,   556,   563,   558,     0,   559,
-   560,     0,     0,    10,    47,     0,     0,    88,    87,     0,
-     0,     0,     0,    76,    77,    75,    74,    73,    71,    72,
-    66,    67,    68,    69,    70,    99,    98,     0,    45,     0,
-   303,     0,   307,     0,   309,     0,   389,     0,   159,   157,
-     0,   190,    44,     0,     0,     0,   468,   511,   395,     0,
-   543,   472,   433,   446,   454,     0,     0,   438,   443,     0,
-     0,     0,     0,     0,   410,   396,   128,   128,   408,     0,
-   397,   399,   407,     0,   244,   316,     0,   118,   113,   117,
-     0,   180,   231,   227,   172,   232,    21,   179,   228,   230,
-     0,    25,     0,   256,   335,   274,   335,   282,     0,   260,
-     0,     0,   270,     0,   269,   326,   318,    95,    63,    62,
-     0,   562,   564,     0,   561,   566,   565,    54,    56,     0,
-     0,    81,    79,    96,    97,   302,   301,   390,   308,   304,
-   306,     0,   187,   189,    89,     0,     0,   490,   510,   128,
-     0,   499,   495,   497,     0,     0,   513,   397,     0,     0,
-   430,   475,   441,     0,   429,   484,   487,   478,     0,   128,
-   128,   480,   477,   454,   453,   451,   452,   436,   454,   459,
-   456,   128,   128,     0,   445,   176,   394,   295,   295,   391,
-   392,     0,   409,     0,     0,    30,   323,   114,   128,   128,
-   145,     0,     0,   177,   229,     0,   276,   277,   283,   336,
-   279,   183,   183,   292,   289,   183,     0,     0,     0,   319,
-   320,     0,     0,   546,     0,   547,   548,    83,    86,   305,
-   192,     0,   194,   544,   492,   503,   295,   504,   500,   501,
-   469,     0,   473,   454,     0,   475,   426,     0,     0,   175,
-     0,     0,     0,   479,     0,     0,   460,   460,   455,   240,
-   299,   389,   129,   183,   183,   183,   299,   183,   183,     0,
-   398,   400,   411,   324,   121,     0,   122,     0,   145,   143,
-   202,   200,   199,   181,    22,     0,    26,   335,     0,   255,
-   259,   265,   183,   412,     0,     0,     0,   335,     0,     0,
-   125,   336,   311,   321,   215,    89,     0,   212,     0,   214,
-     0,   267,   205,   211,     0,     0,   550,   552,     0,   557,
-     0,   549,     0,     0,   183,   183,   183,     0,   505,   542,
-     0,   434,     0,   475,   485,   488,   481,   439,     0,   463,
-   457,   461,   458,   303,     0,   406,     0,   401,   402,   403,
-   303,   404,   405,   393,     0,     0,   144,   147,   146,     0,
-   178,   284,     0,   183,   263,   322,     0,   328,   127,   126,
-   315,     0,   329,   313,   336,   312,     0,   218,     0,   209,
-    64,     0,   204,     0,   217,   208,   551,    84,   193,   507,
-   508,   509,   502,   295,   431,   442,     0,     0,     0,   465,
-     0,     0,   238,   299,   239,   235,   237,     0,   119,   120,
-     0,   183,     0,   285,   413,   327,     0,   162,     0,   349,
-   333,     0,     0,     0,     0,     0,     0,     0,     0,   378,
-   446,   446,   370,     0,     0,   123,   128,   128,   342,   347,
-     0,     0,   339,   340,   343,   371,   341,     0,     0,     0,
-   206,   207,   506,   475,   427,   483,   482,   486,   489,   464,
-   462,     0,   236,   201,   287,   183,     0,     0,   335,   380,
-     0,     0,   376,   360,   361,   362,     0,     0,     0,   379,
-     0,   183,   344,   134,     0,   135,     0,     0,   331,   336,
-   330,   353,     0,   136,   213,   210,     0,   286,     0,     0,
-     0,   381,    48,     0,     0,     0,   374,   363,     0,   368,
-     0,   377,     0,   132,   219,     0,   133,   222,   348,   335,
-     0,     0,   432,   332,     0,   334,   372,   354,   358,     0,
-   369,     0,   130,     0,   131,     0,   346,   337,   335,     0,
-   350,   335,   380,   335,   375,   382,     0,   220,   223,   338,
-   352,   335,   373,     0,   359,     0,     0,   383,   384,   364,
-     0,     0,   351,   355,     0,   382,     0,     0,   221,   224,
-   380,     0,     0,   365,   385,     0,   386,     0,     0,   356,
-   387,     0,   366,   335,     0,     0,   357,   367,   388,     0,
-     0,     0
+    50,   166,   299,   390,     0,   129,   293,   296,   156,   167,
+   298,   158,   294,   196,   197,   198,   195,     0,   188,   191,
+   423,     0,   546,     0,   495,   513,   494,     0,   517,     0,
+   495,   447,     0,   426,   476,   441,     0,   455,   476,   425,
+   300,   243,   242,   174,   175,   246,     0,   241,     0,   245,
+     0,     0,    29,     0,   336,   116,   337,   182,   184,     0,
+     0,    14,     0,     0,    23,     0,   183,   407,     0,    13,
+    27,     0,     0,   183,   281,   275,   128,   272,   128,     0,
+   273,   183,   273,   290,   291,   269,   288,     0,    93,    92,
+   326,   318,     0,     0,   555,   554,   557,   564,   559,     0,
+   560,   561,     0,     0,    10,    47,     0,     0,    88,    87,
+     0,     0,     0,     0,    76,    77,    75,    74,    73,    71,
+    72,    66,    67,    68,    69,    70,    99,    98,     0,    45,
+     0,   303,     0,   307,     0,   309,     0,     0,   390,     0,
+   159,   157,     0,   190,    44,     0,     0,     0,   469,   512,
+   396,     0,   544,   473,   434,   447,   455,     0,     0,   439,
+   444,     0,     0,     0,     0,     0,   411,   397,   128,   128,
+   409,     0,   398,   400,   408,     0,   244,   317,     0,   118,
+   113,   117,     0,   180,   231,   227,   172,   232,    21,   179,
+   228,   230,     0,    25,     0,   256,   336,   274,   336,   282,
+     0,   260,     0,     0,   270,     0,   269,   327,   319,    95,
+    63,    62,     0,   563,   565,     0,   562,   567,   566,    54,
+    56,     0,     0,    81,    79,    96,    97,   302,   301,   391,
+   308,   310,   304,   306,     0,   187,   189,    89,     0,     0,
+   491,   511,   128,     0,   500,   496,   498,     0,     0,   514,
+   398,     0,     0,   431,   476,   442,     0,   430,   485,   488,
+   479,     0,   128,   128,   481,   478,   455,   454,   452,   453,
+   437,   455,   460,   457,   128,   128,     0,   446,   176,   395,
+   295,   295,   392,   393,     0,   410,     0,     0,    30,   324,
+   114,   128,   128,   145,     0,     0,   177,   229,     0,   276,
+   277,   283,   337,   279,   183,   183,   292,   289,   183,     0,
+     0,     0,   320,   321,     0,     0,   547,     0,   548,   549,
+    83,    86,   305,   192,     0,   194,   545,   493,   504,   295,
+   505,   501,   502,   470,     0,   474,   455,     0,   476,   427,
+     0,     0,   175,     0,     0,     0,   480,     0,     0,   461,
+   461,   456,   240,   299,   390,   129,   183,   183,   183,   299,
+   129,   183,   183,     0,   399,   401,   412,   325,   121,     0,
+   122,     0,   145,   143,   202,   200,   199,   181,    22,     0,
+    26,   336,     0,   255,   259,   265,   183,   413,     0,     0,
+     0,   336,     0,     0,   125,   337,   312,   322,   215,    89,
+     0,   212,     0,   214,     0,   267,   205,   211,     0,     0,
+   551,   553,     0,   558,     0,   550,     0,     0,   183,   183,
+   183,     0,   506,   543,     0,   435,     0,   476,   486,   489,
+   482,   440,     0,   464,   458,   462,   459,   303,     0,   407,
+     0,   402,   403,   404,   303,     0,   405,   406,   394,     0,
+     0,   144,   147,   146,     0,   178,   284,     0,   183,   263,
+   323,     0,   329,   127,   126,   316,     0,   330,   314,   337,
+   313,     0,   218,     0,   209,    64,     0,   204,     0,   217,
+   208,   552,    84,   193,   508,   509,   510,   503,   295,   432,
+   443,     0,     0,     0,   466,     0,     0,   238,   239,   235,
+   237,     0,   119,   120,     0,   183,     0,   285,   414,   328,
+     0,   162,     0,   350,   334,     0,     0,     0,     0,     0,
+     0,     0,     0,   379,   447,   447,   371,     0,     0,   123,
+   128,   128,   343,   348,     0,     0,   340,   341,   344,   372,
+   342,     0,     0,     0,   206,   207,   507,   476,   428,   484,
+   483,   487,   490,   465,   463,   236,   201,   287,   183,     0,
+     0,   336,   381,     0,     0,   377,   361,   362,   363,     0,
+     0,     0,   380,     0,   183,   345,   134,     0,   135,     0,
+     0,   332,   337,   331,   354,     0,   136,   213,   210,     0,
+   286,     0,     0,     0,   382,    48,     0,     0,     0,   375,
+   364,     0,   369,     0,   378,     0,   132,   219,     0,   133,
+   222,   349,   336,     0,     0,   433,   333,     0,   335,   373,
+   355,   359,     0,   370,     0,   130,     0,   131,     0,   347,
+   338,   336,     0,   351,   336,   381,   336,   376,   383,     0,
+   220,   223,   339,   353,   336,   374,     0,   360,     0,     0,
+   384,   385,   365,     0,     0,   352,   356,     0,   383,     0,
+     0,   221,   224,   381,     0,     0,   366,   386,     0,   387,
+     0,     0,   357,   388,     0,   367,   336,     0,     0,   358,
+   368,   389,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   950,
-     1,     2,     3,    28,    29,    30,   335,   563,   341,   566,
-   198,   447,   669,   122,   232,   398,   124,   125,   126,   127,
-   128,   582,   129,   383,   382,   380,   683,   381,   130,   233,
-   131,   132,   322,   323,   324,   558,   657,   658,    31,   193,
-   796,   437,    91,   559,   640,   438,    34,   140,   278,    35,
-   216,   204,    78,   199,   205,   646,    79,   562,   327,   328,
-    37,   287,   288,   289,   644,   720,   671,   672,   673,   810,
-   674,   739,   675,   676,   874,   894,   921,   877,   896,   922,
-   314,   208,   685,   209,    38,    39,    40,    41,   350,   352,
-   357,   225,   743,   474,   220,   221,   347,   568,   569,   355,
-   356,   142,   687,   143,   189,   277,   659,   660,   732,   325,
-   477,   579,   580,   581,   556,   361,   557,   800,   801,   802,
-   829,   850,   451,   851,   663,   803,   804,   880,   828,   912,
-   903,   931,   944,   904,   805,   806,   902,   807,   841,   864,
-   917,   918,   919,   942,   403,   404,   439,   630,   440,   441,
-   442,   317,   318,   443,   444,   655,   133,    43,    64,    44,
-    45,    46,   425,   694,   304,   604,   814,   522,   307,   534,
-   606,    47,   308,    69,    48,   430,   539,   431,   544,   701,
-   702,    49,    65,   294,   516,    66,   300,   520,   426,   427,
-   532,   613,   818,   533,   608,   758,   609,   759,   173,   417,
-   513,   514,   515,   688,   689,   296,   419,   174,   175,   176,
-   177,   178,   585,   586,   678,   587,   366,   134,   235,   481,
-   369,   370,   371,   135,   136,   137
+static const short yydefgoto[] = {   953,
+     1,     2,     3,    28,    29,    30,   336,   566,   342,   569,
+   198,   449,   673,   122,   232,   399,   124,   125,   126,   127,
+   128,   585,   129,   384,   383,   381,   687,   382,   130,   233,
+   131,   132,   323,   324,   325,   561,   661,   662,    31,   193,
+   800,   439,    91,   562,   644,   440,    34,   140,   279,    35,
+   216,   204,    78,   199,   205,   650,    79,   565,   328,   329,
+    37,   288,   289,   290,   648,   725,   675,   676,   677,   814,
+   678,   744,   679,   680,   877,   897,   924,   880,   899,   925,
+   315,   208,   689,   209,    38,    39,    40,    41,   351,   353,
+   358,   225,   748,   476,   220,   221,   348,   571,   572,   356,
+   357,   142,   691,   143,   189,   278,   663,   664,   737,   326,
+   479,   582,   583,   584,   559,   362,   560,   804,   805,   806,
+   832,   853,   453,   854,   667,   807,   808,   883,   831,   915,
+   906,   934,   947,   907,   809,   810,   905,   811,   844,   867,
+   920,   921,   922,   945,   404,   405,   441,   634,   442,   443,
+   444,   318,   319,   445,   446,   659,   133,    43,    64,    44,
+    45,    46,   427,   698,   305,   607,   818,   525,   308,   537,
+   609,    47,   309,    69,    48,   432,   542,   433,   547,   705,
+   706,    49,    65,   295,   519,    66,   301,   523,   428,   429,
+   535,   616,   822,   536,   611,   763,   612,   764,   173,   419,
+   516,   517,   518,   692,   693,   297,   421,   174,   175,   176,
+   177,   178,   588,   589,   682,   590,   367,   134,   235,   483,
+   370,   371,   372,   135,   136,   137
 };
 
-static const short yypact[] = {   171,
-   186,  3077,  3077,   193,-32768,-32768,-32768,-32768,   172,   172,
-   172,   145,   174,   199,-32768,    85,-32768,-32768,    85,    85,
--32768,   249,    85,   249,    85,    85,-32768,-32768,-32768,-32768,
-   363,   242,  2557,   237,-32768,   172,-32768,    94,   117,   256,
--32768,  3077,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   172,   172,   172,  2786,  2624,   266,-32768,-32768,
--32768,-32768,-32768,   143,  3367,  3367,    72,    54,-32768,-32768,
-   249,-32768,    42,    85,-32768,-32768,   363,    48,-32768,   172,
-  1802,-32768,   283,-32768,   363,   237,-32768,   172,-32768,-32768,
-   859,-32768,   243,   265,   243,   279,-32768,   289,-32768,-32768,
--32768,-32768,-32768,-32768,  2786,  2786,    85,-32768,-32768,-32768,
-  2786,-32768,-32768,  1407,-32768,   268,   315,   337,-32768,-32768,
--32768,  2786,   326,   323,-32768,  2840,  2894,-32768,  3634,  1152,
-   412,   364,  2786,-32768,-32768,-32768,-32768,-32768,   365,   445,
--32768,   368,   635,   139,-32768,    85,-32768,-32768,-32768,-32768,
+static const short yypact[] = {   109,
+   118,  3183,  3183,   412,-32768,-32768,-32768,-32768,    91,    91,
+    91,    65,   100,   136,-32768,   270,-32768,-32768,   270,   270,
+-32768,   132,   270,   132,   270,   270,-32768,-32768,-32768,-32768,
+   103,   128,   699,   378,-32768,    91,-32768,   119,   131,   203,
+-32768,  3183,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,    91,    91,    91,  2892,  2730,   155,-32768,-32768,
+-32768,-32768,-32768,    68,  3447,  3447,    70,    61,-32768,-32768,
+   132,-32768,   112,   270,-32768,-32768,   103,   167,-32768,    91,
+  1306,-32768,   434,-32768,   103,   378,-32768,    91,-32768,-32768,
+   900,-32768,   160,   153,   160,   159,-32768,   175,-32768,-32768,
+-32768,-32768,-32768,-32768,  2892,  2892,   270,-32768,-32768,-32768,
+  2892,-32768,-32768,  1480,-32768,   195,   231,   239,-32768,-32768,
+-32768,  2892,   216,   225,-32768,  2946,  3000,-32768,  3714,  1127,
+   315,   255,  2892,-32768,-32768,-32768,-32768,-32768,   251,   418,
+-32768,   279,  2078,   314,-32768,   270,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   434,
-   716,-32768,-32768,-32768,  2518,   409,-32768,-32768,-32768,    85,
-    85,   386,    85,    85,-32768,-32768,-32768,   375,   286,   149,
--32768,   283,   363,-32768,   414,-32768,  1987,  1947,   172,-32768,
--32768,   283,-32768,   115,-32768,   172,  1900,   224,   370,   159,
-  1821,   859,-32768,-32768,-32768,-32768,   172,-32768,   425,   408,
-  1733,-32768,   411,-32768,   123,-32768,-32768,-32768,-32768,-32768,
-   418,   421,   417,   469,  2678,  3395,   716,    85,-32768,   433,
-  2786,  1407,-32768,  1407,-32768,  2786,  2786,   482,-32768,-32768,
-  2786,  2786,  2786,  2786,  2786,  2786,  2786,  2786,  2786,  2786,
-  2786,  2786,-32768,-32768,    85,    85,  2786,  2786,-32768,-32768,
--32768,-32768,-32768,   445,  2046,-32768,   419,   898,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   147,-32768,   489,-32768,
-   716,-32768,   479,   484,   556,-32768,   409,-32768,   477,   484,
-   249,   492,-32768,   514,   497,   508,-32768,   514,-32768,-32768,
-   370,-32768,-32768,   561,   370,   581,-32768,   878,-32768,   509,
-   523,-32768,   378,   101,-32768,-32768,   568,   172,   262,   239,
--32768,   283,   283,-32768,  1947,   172,-32768,  2105,-32768,-32768,
-  1947,   541,   172,-32768,-32768,   535,   529,   463,  3305,   243,
-   172,   243,-32768,   579,   537,-32768,   123,-32768,-32768,-32768,
-   544,   558,  2438,-32768,-32768,-32768,-32768,   594,   564,  3395,
--32768,   569,   574,-32768,  3634,   588,   592,  3634,  3634,  2786,
-   617,  2786,  2786,  1617,  1959,  2595,  1794,  1891,   522,   522,
-   602,   602,-32768,-32768,-32768,-32768,-32768,   593,   323,   554,
-   272,   299,-32768,  3208,-32768,   589,-32768,  2164,-32768,   898,
-   603,   139,  2948,   610,  3431,   670,-32768,-32768,  3488,   716,
--32768,-32768,   596,   249,-32768,   624,  3152,-32768,-32768,   525,
-  3025,   634,    74,   627,-32768,-32768,-32768,  3534,-32768,   628,
-   258,-32768,-32768,   197,-32768,-32768,    86,-32768,-32768,-32768,
-  3530,-32768,   224,-32768,-32768,   224,-32768,   663,-32768,-32768,
-   622,-32768,   638,-32768,-32768,-32768,-32768,-32768,   632,-32768,
-   633,  2786,    85,   646,   537,-32768,   693,-32768,-32768,-32768,
-  3459,-32768,-32768,   594,-32768,-32768,-32768,-32768,-32768,   689,
-  2786,  1382,  1538,-32768,-32768,   419,-32768,-32768,-32768,-32768,
--32768,   648,-32768,-32768,   225,   657,    85,-32768,  2518,   666,
-  3228,-32768,-32768,  3534,  1919,    86,-32768,   654,   664,    86,
--32768,   514,-32768,   623,-32768,-32768,-32768,-32768,   363,   242,
-  2557,   362,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,  3564,   672,-32768,-32768,-32768,   539,   551,-32768,
--32768,  3500,-32768,   747,   417,-32768,-32768,-32768,   676,  3285,
--32768,  1647,    86,-32768,-32768,    86,-32768,   675,-32768,-32768,
-   675,   172,   172,  3634,-32768,   172,   687,    85,  1083,   693,
--32768,  1487,  2786,   731,   694,  3459,-32768,-32768,  1460,-32768,
--32768,  2786,-32768,-32768,-32768,-32768,   539,-32768,-32768,-32768,
--32768,    85,-32768,-32768,   709,   514,-32768,  3367,  3367,   327,
-   283,   363,  3180,-32768,   690,  3043,   213,   213,-32768,-32768,
--32768,   551,   172,   290,   340,   172,-32768,   340,   172,  3208,
--32768,-32768,-32768,-32768,-32768,   283,-32768,   363,-32768,   402,
--32768,-32768,  3634,-32768,-32768,  1647,-32768,-32768,   452,-32768,
--32768,-32768,   172,-32768,   296,   550,  1003,   695,   698,   913,
--32768,-32768,-32768,-32768,-32768,   741,    85,-32768,   746,  3634,
-   707,   705,-32768,-32768,    70,  1240,   323,-32768,  2786,-32768,
-   731,-32768,  2786,   275,   290,   340,   172,   406,-32768,-32768,
-   825,-32768,   726,   514,-32768,-32768,-32768,-32768,  2786,   753,
-   714,-32768,   714,   658,   245,-32768,  2223,-32768,-32768,-32768,
-   231,-32768,-32768,-32768,   435,   444,   402,-32768,-32768,  1487,
--32768,-32768,  2786,    78,-32768,-32768,    85,-32768,-32768,-32768,
--32768,   722,-32768,-32768,-32768,-32768,  2304,-32768,  1487,-32768,
--32768,  1567,-32768,  1722,-32768,-32768,-32768,  1460,-32768,-32768,
--32768,-32768,-32768,   539,-32768,-32768,   736,   100,   100,  3634,
-  2786,   213,   599,-32768,   599,-32768,-32768,   720,-32768,-32768,
-   727,  3598,  2786,-32768,-32768,-32768,  2384,   770,   752,-32768,
--32768,   758,   761,  2786,   783,   745,   750,  2732,   293,   817,
-    69,   113,-32768,   793,   771,-32768,   773,  3257,-32768,   835,
-  1165,    89,-32768,-32768,-32768,-32768,-32768,  2546,   774,  1722,
--32768,-32768,-32768,   514,-32768,-32768,-32768,-32768,-32768,  3634,
--32768,   760,-32768,-32768,-32768,  3598,  2786,   795,-32768,  2786,
-  2786,  3575,-32768,-32768,-32768,-32768,   781,  2786,   786,-32768,
-   808,   172,-32768,-32768,   283,-32768,   363,  1327,-32768,-32768,
--32768,-32768,  2786,-32768,-32768,-32768,   805,-32768,   798,  2786,
-   860,-32768,   802,   799,   804,  2786,-32768,-32768,   809,-32768,
-  2786,-32768,   446,-32768,   436,   451,-32768,   721,-32768,-32768,
-  2384,   811,-32768,-32768,   820,-32768,-32768,-32768,-32768,  3616,
--32768,    77,-32768,  1947,-32768,  1947,-32768,-32768,-32768,   823,
--32768,-32768,  2786,-32768,-32768,   900,   830,-32768,-32768,-32768,
--32768,-32768,-32768,   836,-32768,   856,    84,   837,-32768,-32768,
-   417,   417,-32768,-32768,  2786,   900,   842,   900,-32768,-32768,
-  2786,   844,   109,-32768,-32768,   849,-32768,   581,   850,-32768,
-   412,   313,-32768,-32768,   852,   581,-32768,-32768,   412,   941,
-   943,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   292,
+  3610,-32768,-32768,-32768,  2624,   327,-32768,-32768,-32768,   270,
+   270,   286,   270,   270,-32768,-32768,-32768,   321,   252,   301,
+-32768,   434,   103,-32768,   319,-32768,  2093,   744,    91,-32768,
+-32768,   434,-32768,   188,-32768,    91,  1969,   422,   471,   259,
+  1950,   900,-32768,-32768,-32768,-32768,    91,-32768,   332,   340,
+  1881,-32768,   347,-32768,   227,-32768,-32768,-32768,-32768,-32768,
+   357,   359,   338,   368,  2784,  3475,  3610,   270,-32768,   377,
+  2892,  1480,-32768,  1480,-32768,  2892,  2892,   408,-32768,-32768,
+  2892,  2892,  2892,  2892,  2892,  2892,  2892,  2892,  2892,  2892,
+  2892,  2892,-32768,-32768,   270,   270,  2892,  2892,-32768,-32768,
+-32768,-32768,-32768,   418,  2152,    91,-32768,   481,   708,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,    22,-32768,   411,
+-32768,  3610,-32768,   391,   402,   491,-32768,   327,-32768,   404,
+   402,   132,   433,-32768,   449,   441,   439,-32768,   449,-32768,
+-32768,   471,-32768,-32768,   518,   471,   538,-32768,  3336,-32768,
+   467,   483,-32768,  1021,    82,-32768,-32768,   536,    91,   386,
+   350,-32768,   434,   434,-32768,   744,    91,-32768,  2211,-32768,
+-32768,   744,   520,    91,-32768,-32768,   475,   502,  1385,  3385,
+   160,    91,   160,-32768,   560,   523,-32768,   227,-32768,-32768,
+-32768,   540,   525,  2544,-32768,-32768,-32768,-32768,   578,   544,
+  3475,-32768,   562,   565,-32768,  3714,   569,   570,  3714,  3714,
+  2892,   604,  2892,  2892,  1690,  1278,   969,   958,  1297,   563,
+   563,   533,   533,-32768,-32768,-32768,-32768,-32768,   571,   225,
+   577,   369,   355,-32768,  3355,-32768,   579,   418,-32768,  2270,
+-32768,   708,   580,   314,  3054,   588,  3511,  2048,-32768,-32768,
+  3568,  3610,-32768,-32768,   583,   132,-32768,   590,  3258,-32768,
+-32768,   457,  3131,   608,    75,   591,-32768,-32768,-32768,  3614,
+-32768,   596,   276,-32768,-32768,   232,-32768,-32768,    90,-32768,
+-32768,-32768,   848,-32768,   422,-32768,-32768,   422,-32768,   637,
+-32768,-32768,   593,-32768,   601,-32768,-32768,-32768,-32768,-32768,
+   600,-32768,   602,  2892,   270,   603,   523,-32768,   650,-32768,
+-32768,-32768,  3539,-32768,-32768,   578,-32768,-32768,-32768,-32768,
+-32768,   646,  2892,  1612,   996,-32768,-32768,   481,-32768,-32768,
+-32768,   481,-32768,-32768,   612,-32768,-32768,   234,   609,   270,
+-32768,  2624,   610,  2663,-32768,-32768,  3614,  2067,    90,-32768,
+   618,   624,    90,-32768,   449,-32768,   530,-32768,-32768,-32768,
+-32768,   103,   128,   699,   450,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,  3644,   631,-32768,-32768,-32768,
+   573,   344,-32768,-32768,  3580,-32768,   706,   338,-32768,-32768,
+-32768,   640,   550,-32768,  1795,    90,-32768,-32768,    90,-32768,
+   629,-32768,-32768,   629,    91,    91,  3714,-32768,    91,   641,
+   270,  1056,   650,-32768,  1560,  2892,   685,   643,  3539,-32768,
+-32768,  1533,-32768,-32768,  2892,-32768,-32768,-32768,-32768,   573,
+-32768,-32768,-32768,-32768,   270,-32768,-32768,   661,   449,-32768,
+  3447,  3447,   245,   434,   103,  3286,-32768,   561,  3149,   284,
+   284,-32768,-32768,-32768,   344,    91,   202,   220,    91,-32768,
+    91,   220,    91,  3355,-32768,-32768,-32768,-32768,-32768,   434,
+-32768,   103,-32768,   796,-32768,-32768,  3714,-32768,-32768,  1795,
+-32768,-32768,   436,-32768,-32768,-32768,    91,-32768,   285,   512,
+   920,   652,   653,  1140,-32768,-32768,-32768,-32768,-32768,   694,
+   270,-32768,   695,  3714,   656,   654,-32768,-32768,    80,  1720,
+   225,-32768,  2892,-32768,   685,-32768,  2892,   250,   202,   220,
+    91,   294,-32768,-32768,   581,-32768,   675,   449,-32768,-32768,
+-32768,-32768,  2892,   702,   662,-32768,   662,   633,   573,-32768,
+  2329,-32768,-32768,-32768,   342,   344,-32768,-32768,-32768,   336,
+   426,   796,-32768,-32768,  1560,-32768,-32768,  2892,    89,-32768,
+-32768,   270,-32768,-32768,-32768,-32768,   664,-32768,-32768,-32768,
+-32768,  2410,-32768,  1560,-32768,-32768,  1640,-32768,  1870,-32768,
+-32768,-32768,  1533,-32768,-32768,-32768,-32768,-32768,   573,-32768,
+-32768,   683,    81,    81,  3714,  2892,   284,   566,   566,-32768,
+-32768,   669,-32768,-32768,   677,  3678,  2892,-32768,-32768,-32768,
+  2490,   715,   700,-32768,-32768,   701,   705,  2892,   727,   691,
+   707,  2838,   170,   780,   222,   233,-32768,   750,   716,-32768,
+   717,  3366,-32768,   776,  1220,    87,-32768,-32768,-32768,-32768,
+-32768,  2652,   720,  1870,-32768,-32768,-32768,   449,-32768,-32768,
+-32768,-32768,-32768,  3714,-32768,-32768,-32768,-32768,  3678,  2892,
+   736,-32768,  2892,  2892,  3655,-32768,-32768,-32768,-32768,   722,
+  2892,   729,-32768,   753,    91,-32768,-32768,   434,-32768,   103,
+  1400,-32768,-32768,-32768,-32768,  2892,-32768,-32768,-32768,   751,
+-32768,   739,  2892,   802,-32768,   787,   743,   746,  2892,-32768,
+-32768,   748,-32768,  2892,-32768,   447,-32768,   172,   462,-32768,
+   461,-32768,-32768,  2490,   747,-32768,-32768,   754,-32768,-32768,
+-32768,-32768,  3696,-32768,    64,-32768,   744,-32768,   744,-32768,
+-32768,-32768,   752,-32768,-32768,  2892,-32768,-32768,   818,   756,
+-32768,-32768,-32768,-32768,-32768,-32768,   760,-32768,   779,    79,
+   762,-32768,-32768,   338,   338,-32768,-32768,  2892,   818,   771,
+   818,-32768,-32768,  2892,   775,   162,-32768,-32768,   781,-32768,
+   538,   782,-32768,   315,   257,-32768,-32768,   788,   538,-32768,
+-32768,   315,   858,   867,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    97,  -345,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -11,-32768,   -56,   536,  -220,   540,-32768,-32768,
-   -54,-32768,   582,-32768,-32768,-32768,-32768,-32768,   118,-32768,
-  -303,-32768,  -263,   631,-32768,-32768,   294,-32768,    16,  -166,
-   158,     1,   864,-32768,   318,     4,    -2,  -184,   688,    20,
-  -243,  -571,   -60,  -205,  -125,-32768,-32768,-32768,   273,     8,
-    50,-32768,   559,-32768,   324,-32768,  -602,-32768,   232,-32768,
-  -595,-32768,-32768,   300,-32768,-32768,-32768,-32768,-32768,-32768,
-   -53,  -107,  -474,   -15,-32768,-32768,-32768,   -57,-32768,-32768,
--32768,-32768,-32768,   501,   -50,-32768,   629,   515,   333,   626,
-   513,   -39,   -84,  -155,  -179,  -219,   329,-32768,-32768,  -262,
--32768,-32768,-32768,   416,   -13,-32768,  -175,-32768,-32768,-32768,
--32768,  -160,  -506,  -667,   334,-32768,   108,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,   119,-32768,  -791,
-    73,-32768,    75,-32768,   591,-32768,  -350,-32768,   583,   586,
-   449,  -301,-32768,-32768,-32768,-32768,    18,-32768,   988,-32768,
+-32768,-32768,-32768,    83,  -371,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -14,-32768,   -56,   453,  -228,   508,-32768,-32768,
+   -32,-32768,   628,-32768,-32768,-32768,-32768,-32768,    38,-32768,
+  -297,-32768,  -305,   548,-32768,-32768,   215,-32768,     3,  -166,
+    88,     5,   804,-32768,   249,    12,   -29,  -170,   613,    47,
+  -249,  -572,   -69,  -189,  -111,-32768,-32768,-32768,   207,    54,
+    17,-32768,   480,-32768,   253,-32768,  -630,-32768,   152,-32768,
+  -605,-32768,-32768,   229,-32768,-32768,-32768,-32768,-32768,-32768,
+   -51,  -113,  -482,   -18,-32768,-32768,-32768,   -64,-32768,-32768,
+-32768,-32768,-32768,   424,   -50,-32768,   559,   442,   258,   558,
+   443,   -59,   -99,  -169,  -173,  -198,   260,-32768,-32768,  -282,
+-32768,-32768,-32768,   334,  -412,-32768,  -223,-32768,-32768,-32768,
+-32768,  -160,  -524,  -755,   288,-32768,    35,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,    71,-32768,  -738,
+    27,-32768,    26,-32768,   549,-32768,  -357,-32768,   541,   543,
+   406,  -304,-32768,-32768,-32768,-32768,    19,-32768,   934,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,     9,     2,  -354,-32768,   480,-32768,   420,
-   277,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -276,-32768,
--32768,-32768,   276,   510,-32768,-32768,-32768,-32768,   -22,   740,
--32768,-32768,   527,-32768,   295,   538,-32768,   640,   641,  -152,
--32768,  -133,-32768,-32768,   371,   458,-32768,-32768,-32768,-32768,
--32768,-32768,   691,-32768,-32768,-32768
+-32768,-32768,-32768,   -21,    -5,  -349,-32768,   425,-32768,   345,
+   204,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -286,-32768,
+-32768,-32768,   208,   438,-32768,-32768,-32768,-32768,   -37,   676,
+-32768,-32768,   459,-32768,   219,   469,-32768,   568,   572,  -142,
+-32768,  -132,-32768,-32768,   299,   399,-32768,-32768,-32768,-32768,
+-32768,-32768,   619,-32768,-32768,-32768
 };
 
 
-#define        YYLAST          3686
+#define        YYLAST          3766
 
 
 static const short yytable[] = {   123,
-   139,   336,    32,    32,    63,    33,    33,    67,    68,    36,
-    36,    71,   433,    63,    74,    81,    53,    54,    55,    42,
-    42,   329,   297,    70,   210,    70,    94,    96,    98,   207,
-    86,   432,    72,   218,   409,   459,   346,   326,    80,   333,
-    88,   298,    32,   179,   223,    33,   399,    83,    85,    36,
-   227,   228,    87,   498,   402,   276,   230,   362,   282,    42,
-   448,   190,   188,   649,   715,   348,   313,   239,    70,   211,
-   524,   457,    70,   624,   234,   182,   141,   462,   271,   186,
-   746,   528,   269,   368,    80,    92,   555,    59,    60,   852,
-   206,   183,    80,   401,   330,   229,    59,    60,   217,    50,
-   816,  -112,    92,    92,    92,   744,   -35,    14,   336,   180,
-   449,   914,   184,    16,   906,   773,    16,   771,   187,    59,
-    60,   926,   146,   353,   191,    59,    60,   667,   192,    92,
-   181,   293,   286,   141,   290,   185,   809,    92,    99,   936,
-   320,    59,    60,   283,   284,   285,   938,   853,   812,   546,
-   -34,    61,   907,   512,   218,   737,    62,    16,   292,   927,
-    61,   861,   281,   326,   346,    62,   409,   360,   301,   302,
-    -1,   305,   306,   311,   326,    93,   817,   315,   365,   615,
-   326,   496,  -112,    61,   939,    -2,   190,   145,    62,    61,
-   141,   331,   399,   348,    62,   332,    80,   372,    95,   206,
-    80,    14,   376,    56,   377,    61,   455,   196,   197,   206,
-    62,   400,   897,   354,   856,    75,   200,   484,   406,   217,
-   218,   453,   411,   146,   312,   456,   373,   412,   777,   763,
-   765,   910,    57,    75,   913,   339,   915,   310,   349,   192,
-   141,    89,    14,    90,   923,   605,   542,    75,   620,   691,
-   699,   414,   600,   396,   397,    92,   141,    58,    59,    60,
-    14,   141,   201,   141,    75,   200,    92,   697,   310,    51,
-    52,   202,   553,   873,    14,   543,   947,   554,   310,   714,
-   627,   461,   337,   338,   203,    75,   200,   421,    75,   622,
-   275,    14,   310,    16,   764,    59,    60,   337,   338,   469,
-   591,   471,    70,    77,   570,   592,   570,   219,   480,   423,
-   141,   201,    14,   311,   454,    14,   661,   315,    82,    14,
-   202,   273,    61,   490,   144,    36,   236,    62,   584,   693,
-   274,   275,   201,   203,   551,    76,   206,    97,   552,   206,
-   206,   202,   838,   881,    77,   354,   222,   763,   706,   707,
-   749,   502,   218,   195,   203,   241,   297,   407,   408,    61,
-   224,   465,   677,   467,    62,    75,   349,   281,   141,    14,
-   226,   684,   726,   237,   497,   298,   727,    92,   321,   634,
-   519,  -115,  -115,  -115,  -115,   196,   197,  -115,   945,  -115,
-  -115,  -115,    14,   946,   729,   238,   719,   734,   196,   197,
-   286,   240,   402,   241,   766,  -115,   718,   214,   215,   526,
-   527,    36,    76,     9,    10,    11,   510,   757,   662,   511,
-   269,    77,  -115,    36,  -476,    70,    36,   530,   196,   197,
-   531,   542,   523,   681,    36,    86,    59,    60,   270,   141,
-   272,   704,   529,   279,  -115,    88,   299,   711,   560,  -115,
-   141,   309,   548,   549,    75,   200,   705,    87,   677,  -115,
-   543,   354,   195,   626,   629,  -175,     5,   303,     7,   280,
-   561,  -175,   316,   719,     9,    10,    11,   407,   408,    59,
-    60,    14,   753,   342,   496,   343,   754,   570,   351,   723,
-    13,   496,   291,   358,   273,   594,   359,   662,   360,   735,
-    61,   201,   601,   274,   275,    62,   603,    16,    86,   374,
-   202,   769,  -175,   610,   510,   332,  -175,   511,    88,   -85,
-   770,    36,   893,   203,   192,   597,   332,   895,    86,    22,
-    87,   192,   625,   628,    24,   420,    80,   857,    88,  -280,
-  -280,    75,   620,    61,   363,   611,   612,   413,    62,   645,
-    87,   210,   647,    75,   415,   623,    80,   617,   618,    36,
-   416,   799,   281,   700,   700,   418,   654,   424,    14,   258,
-   259,   260,   261,   262,   636,   638,  -474,   716,   428,   639,
-    14,   686,   218,   429,   822,   695,   696,   195,   621,   102,
-   690,   445,   535,   536,   537,   724,   610,   622,   275,   446,
-   627,   799,   538,   452,   623,   466,   190,   463,   458,   622,
-   275,  -278,  -278,   530,   472,   464,   531,   473,   206,    80,
-    36,   476,   610,   470,   206,   206,   446,   728,   529,    80,
-   908,   482,   909,   478,   941,   141,   495,    36,     5,   483,
-     7,   280,   949,   206,   486,    80,     9,    10,    11,   487,
-   768,   260,   261,   262,   491,   738,   206,   706,   707,   218,
-    75,   620,    13,   488,   310,   243,   245,   489,   494,   336,
-   321,   499,    92,     5,     6,     7,     8,   521,   503,    16,
-   795,     9,    10,    11,   273,   507,   525,    14,   311,   315,
-   535,   536,   537,   274,   275,   311,   545,    13,   564,    14,
-   607,    22,   547,   550,   565,   799,    24,   621,   700,   572,
-   573,   623,   623,   567,    16,   775,   622,   275,    80,     5,
-   795,     7,   138,   576,   578,   794,   588,     9,    10,    11,
-   590,   837,   593,   326,   552,   326,    22,   797,   686,   602,
-   798,    24,   596,    13,    36,   929,   930,   195,   619,   633,
-  -175,  -496,   635,   271,   808,   648,  -175,   535,   536,   537,
-    16,   623,    75,   620,   653,   794,   310,   698,   679,   206,
-   859,   692,  -314,   862,   865,   733,   680,   839,   -32,   196,
-   197,   869,    22,   740,   741,   742,   876,    24,   756,    14,
-   761,   875,    70,    70,   762,    86,   882,  -175,   815,   776,
-    72,  -175,   823,   885,   824,    88,   311,   -33,   797,   764,
-   827,   798,   845,   847,   892,    36,   830,    87,    77,   831,
-   833,   834,   375,   840,   795,   808,   835,   378,   379,   623,
-   842,   878,   384,   385,   386,   387,   388,   389,   390,   391,
-   392,   393,   394,   395,   650,   651,   862,   843,   652,   844,
-   848,   855,   206,   860,    80,   263,   264,   868,   265,   266,
-   267,   268,   870,   213,   214,   215,   871,   883,   932,   794,
-     9,    10,    11,   884,   862,   888,   886,   887,   434,   889,
-   435,     5,     6,     7,     8,   891,   900,   436,    14,     9,
-    10,    11,   535,   536,   537,   901,   708,   709,   710,   911,
-   712,   713,   755,   214,   215,    13,   920,    14,   916,     9,
-    10,    11,   924,   321,   925,  -335,  -335,   928,   934,   937,
-  -335,  -335,    16,  -335,   940,   725,   943,  -335,   948,  -335,
-  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
-   951,  -335,   952,  -335,    22,  -335,  -335,   863,   506,    24,
-   212,   730,  -335,  -395,   450,  -335,   717,   750,   751,   752,
-  -335,  -335,  -335,   492,   493,   854,  -335,  -335,   410,   721,
-   504,  -335,  -335,   811,   745,   577,  -335,   468,  -335,  -335,
-   722,   571,   475,  -335,  -335,   575,   731,  -335,   898,  -335,
-  -310,  -335,  -335,   736,  -335,   664,   774,   500,   933,   899,
-   632,   517,   935,   321,   518,  -124,  -124,  -124,  -124,  -124,
-  -124,  -124,    73,  -124,  -124,  -124,  -124,  -124,   616,  -124,
+   139,    63,    72,    86,    67,    68,    32,    32,    71,   363,
+    63,    74,    81,    33,    33,   210,    70,   337,    70,   435,
+    42,    42,   434,    94,    96,    98,   218,   330,   179,   411,
+   459,   207,   298,   461,    83,    85,   464,   327,   400,   334,
+   277,   450,   299,   283,   223,   182,    32,   500,   653,   186,
+   347,   349,    92,    33,   234,    36,    36,   531,   190,   188,
+    42,    70,    53,    54,    55,    70,   211,   720,   627,    92,
+    92,    92,   227,   228,   751,   403,   864,   527,   230,    87,
+   314,   820,  -112,   269,    80,    50,    88,   855,   331,   239,
+   558,   451,   229,   369,   775,    36,    92,   413,   183,   402,
+   271,   909,   414,   141,    92,    75,   604,   180,    -1,   408,
+   606,   294,   145,   813,    16,   749,   929,    -2,    14,   184,
+    14,    59,    60,    56,    99,   337,   777,   900,   181,   287,
+    80,   291,    14,    59,    60,   515,   206,   671,    80,   910,
+   321,   742,   185,   816,   217,   856,   913,   218,   146,   916,
+   549,   918,    76,   649,   930,   293,   651,   821,    57,   926,
+   141,    77,   411,  -112,   327,   302,   303,   917,   306,   307,
+   312,   361,    59,    60,   316,   327,    16,   373,   366,   347,
+   349,   327,   377,   190,   378,    61,   400,   618,   187,   282,
+    62,   950,   146,   276,    58,   939,   276,    61,   195,   941,
+    93,  -175,    62,   498,    82,    59,    60,  -175,   859,   502,
+   355,   401,    95,   144,   218,   781,   455,   141,   407,   841,
+   458,   457,    92,   374,   219,   768,   769,   354,   486,    59,
+    60,    14,   416,    92,   222,   603,    61,   942,   608,   350,
+   224,    62,    80,   191,   701,   206,    80,   192,  -175,    14,
+   397,   398,  -175,   236,    75,   206,   226,   695,   311,   -35,
+   710,   711,   545,   546,   332,   217,    16,   141,   333,    61,
+   -34,   195,    59,    60,    62,   876,   719,    16,   196,   197,
+   425,    14,   463,   141,    97,   423,    75,   200,   141,   237,
+   141,   240,    92,    61,    59,    60,    70,   238,    62,   665,
+   471,    76,   473,   196,   197,   241,   573,   556,   573,   594,
+    77,   312,   557,    14,   595,   316,    59,    60,   284,   285,
+   286,   703,   697,   269,   492,   754,   272,   276,   884,   270,
+   241,   482,   948,   201,   638,   340,    61,   949,   141,   192,
+   587,    62,   202,   355,    75,    92,    75,   218,   311,   467,
+   292,   469,   554,   505,   280,   203,   555,   681,    61,   196,
+   197,   731,   522,    62,   300,   732,   688,   304,   350,   298,
+   758,    14,    36,    14,   759,   311,   313,   317,   734,   299,
+    61,   739,    89,   206,    90,    62,   206,   206,    75,   200,
+   343,   630,   311,   630,   724,   282,   141,   310,    14,   287,
+   625,   275,   625,   275,   526,   770,    59,    60,   338,   339,
+    86,   762,   773,   409,   410,    14,   333,   344,   273,   361,
+    70,   666,   513,   563,   352,   456,   403,   274,   275,   514,
+   499,   532,   359,   533,   360,   201,    75,   200,    75,   200,
+   534,   551,   552,   364,   202,   -85,   685,    14,   545,   546,
+   708,   629,   633,   375,   681,   276,   715,   203,    36,   709,
+   355,   276,   422,    14,   716,    14,   417,   273,   141,   415,
+    61,    36,   724,   728,    36,    62,   274,   275,   418,   141,
+   338,   339,    36,   201,    86,   201,    87,   195,    51,    52,
+  -175,   573,   202,    88,   202,   597,  -175,   529,   530,   564,
+   420,   666,   774,   740,    86,   203,   192,   203,   426,   498,
+   502,  -475,  -477,   613,   431,   600,   498,   502,   803,   196,
+   197,   513,   430,   896,   538,   539,   540,   333,   514,   196,
+   197,   860,   628,   632,   541,   614,   615,  -175,   898,   409,
+   410,  -175,   192,   460,   195,   210,   102,   620,   621,   447,
+   466,  -278,  -278,     5,    89,     7,    90,   803,   472,   448,
+    87,     9,    10,    11,   640,   642,   658,    88,   704,   704,
+    36,   454,   721,   699,   700,    75,   623,    13,   468,   218,
+    87,   690,   260,   261,   262,    80,   465,    88,   448,   733,
+   694,   911,   282,   912,    16,   474,   613,   538,   539,   540,
+   480,   729,    14,   475,   626,   631,   190,   610,    36,   643,
+   258,   259,   260,   261,   262,   484,    22,   478,   532,   485,
+   533,    24,   624,   613,   710,   711,   641,   534,   538,   539,
+   540,   625,   275,   243,   245,    75,   623,   488,   702,   311,
+   489,   493,    92,   944,   490,   491,   496,    92,   538,   539,
+   540,   952,   528,   626,   772,   506,   743,   218,   760,   497,
+   803,   501,    14,   510,   524,   141,   550,   206,    80,    36,
+   548,   553,   567,   206,   206,   568,   570,   575,   631,   576,
+   579,   581,   624,   591,   596,   799,   599,    36,   337,   312,
+   316,   625,   275,   206,   593,    80,   312,   316,   555,   605,
+   932,   933,     5,     6,     7,     8,   206,   622,   637,   652,
+     9,    10,    11,   214,   215,   704,   639,   779,   657,     9,
+    10,    11,   683,   696,   799,   684,    13,   798,    14,  -315,
+   738,   -32,   745,   746,   747,   840,   327,   761,   327,   766,
+   690,   780,   767,    16,   322,   819,   801,  -336,  -336,  -336,
+  -336,   826,   -33,   802,   827,  -336,  -336,  -336,   830,   833,
+   812,   626,   626,   834,   836,    22,   798,   837,   631,   631,
+    24,  -336,    86,   862,    72,    84,   865,   868,   842,   271,
+   879,   654,   655,   838,   872,   656,   843,   845,  -336,    70,
+    70,   851,   846,   847,   863,    36,   878,   858,   871,   885,
+   723,   214,   215,   848,   850,   873,   888,     9,    10,    11,
+  -336,   874,   626,   886,   887,  -336,   801,   895,   889,   891,
+   206,   892,   903,   802,   894,  -111,   919,   799,   914,   904,
+   812,   881,   923,   712,   713,   714,   927,   928,   717,   718,
+   263,   264,   931,   265,   266,   267,   268,   937,    87,   865,
+   940,     5,     6,     7,     8,    88,   943,   954,   946,     9,
+    10,    11,   890,   730,   951,    36,   955,   509,   376,   798,
+   866,   935,   452,   379,   380,    13,   735,   865,   385,   386,
+   387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
+   212,   722,    16,   507,   412,   755,   756,   757,   815,   857,
+   580,   206,   726,    80,   213,   214,   215,   750,   470,   727,
+   574,     9,    10,    11,    22,   477,   668,   578,   901,    24,
+   322,   736,  -124,  -124,  -124,  -124,  -124,  -124,  -124,    14,
+  -124,  -124,  -124,  -124,  -124,   778,  -124,  -124,  -124,  -124,
   -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
-  -124,  -124,  -124,  -124,   819,  -124,  -124,   703,   821,   422,
-   599,   614,  -124,   682,   825,  -124,   595,  -124,   813,   747,
-  -124,  -124,  -124,   574,   508,   509,  -124,  -124,     0,     0,
-   485,  -124,  -124,     0,     0,     0,  -124,     0,  -124,  -124,
-     0,     0,   589,  -124,  -124,     0,     0,  -124,     0,  -124,
-  -124,  -124,  -124,   656,  -124,  -335,  -335,  -335,  -335,  -335,
-  -335,  -335,     0,  -335,  -335,  -335,  -335,  -335,   858,  -335,
-  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
-  -335,  -335,  -335,  -335,   872,  -335,  -335,     0,     0,     0,
-     0,     0,  -335,     0,     0,  -335,     0,  -335,     0,     0,
-  -335,  -335,  -335,     0,     0,     0,  -335,  -335,     0,     0,
-     0,  -335,  -335,   643,     0,     0,  -335,     0,  -335,  -335,
-     0,     0,     0,  -335,  -335,     0,     0,  -335,     0,  -335,
-     0,  -335,  -335,   670,  -335,   849,     0,  -335,  -335,     0,
-     0,     0,  -335,  -335,     0,  -335,     0,     0,     0,  -335,
-     0,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
-  -335,  -335,     0,  -335,     0,  -335,     0,  -335,  -335,     0,
-     0,     0,     0,     0,  -335,   263,   264,  -335,   265,   266,
-   267,   268,  -335,  -335,  -335,     0,     0,     0,  -335,  -335,
-     0,     0,     0,  -335,  -335,     0,     0,   643,  -335,     0,
-  -335,  -335,     0,     0,     0,  -335,  -335,     0,     0,  -335,
-   665,  -335,   100,  -335,  -335,     0,  -335,   101,   102,     0,
-   103,     0,     0,     0,     0,     0,     0,   670,     0,     0,
-     0,     0,     0,     0,   748,     0,     0,     0,   104,     0,
+  -124,   741,  -124,  -124,   902,   936,   938,   503,    73,  -124,
+   636,   520,  -124,   521,  -124,   707,   619,  -124,  -124,  -124,
+   825,   823,   617,  -124,  -124,   602,   424,   817,  -124,  -124,
+   598,   752,   828,  -124,   511,  -124,  -124,   686,   512,   487,
+  -124,  -124,     0,     0,  -124,     0,  -124,  -124,  -124,  -124,
+     0,  -124,   255,   256,   257,   258,   259,   260,   261,   262,
+   494,   495,   254,   255,   256,   257,   258,   259,   260,   261,
+   262,   322,     0,     0,  -115,  -115,  -115,  -115,     0,     0,
+  -115,     0,  -115,  -115,  -115,   861,   251,   252,   253,   254,
+   255,   256,   257,   258,   259,   260,   261,   262,  -115,     0,
+     0,   875,     0,     0,     0,     0,   660,     0,  -336,  -336,
+  -336,  -336,  -336,  -336,  -336,  -115,  -336,  -336,  -336,  -336,
+  -336,     0,  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -336,
+  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -115,  -336,  -336,
+     0,     0,  -115,     0,     0,  -336,     0,     0,  -336,     0,
+  -336,   577,  -115,  -336,  -336,  -336,     0,     0,     0,  -336,
+  -336,     0,     0,     0,  -336,  -336,     0,     0,     0,  -336,
+   592,  -336,  -336,     0,     0,     0,  -336,  -336,     0,     0,
+  -336,     0,  -336,     0,  -336,  -336,     0,  -336,     0,     0,
+   322,     0,  -336,  -336,     0,     0,     0,  -336,  -336,     0,
+  -336,     0,     0,     0,  -336,     0,  -336,  -336,  -336,  -336,
+  -336,  -336,  -336,  -336,  -336,  -336,  -336,     0,  -336,     0,
+  -336,     0,  -336,  -336,     0,     0,     0,     0,     0,  -336,
+   263,   264,  -336,   265,   266,   267,   268,  -336,  -336,  -336,
+     0,     0,   647,  -336,  -336,     0,     0,     0,  -336,  -336,
+     0,     0,     0,  -336,     0,  -336,  -336,     0,     0,     0,
+  -336,  -336,   674,     0,  -336,     0,  -336,  -311,  -336,  -336,
+   852,  -336,  -336,  -336,     0,     0,     0,  -336,  -336,     0,
+  -336,     0,     0,     0,  -336,     0,  -336,  -336,  -336,  -336,
+  -336,  -336,  -336,  -336,  -336,  -336,  -336,     0,  -336,     0,
+  -336,     0,  -336,  -336,     0,     0,     0,     0,     0,  -336,
+     0,     0,  -336,     0,     0,     0,     0,  -336,  -336,  -336,
+     0,     0,     0,  -336,  -336,     0,     0,   647,  -336,  -336,
+     0,     0,     0,  -336,     0,  -336,  -336,     0,     0,     0,
+  -336,  -336,     0,     0,  -336,     0,  -336,     0,  -336,  -336,
+     0,  -336,     0,     0,     0,     0,   194,   674,     0,   -28,
+   -28,   -28,   -28,     0,   753,     0,     0,   -28,   -28,   -28,
+   253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+   765,     0,   195,   -28,     0,  -175,     0,     0,     0,     0,
+     0,  -175,   256,   257,   258,   259,   260,   261,   262,     0,
+   -28,     0,   674,     0,     0,   776,     0,     0,     0,     0,
+     0,     0,     0,     0,   196,   197,     0,     0,     0,     0,
+     0,   674,   -28,     0,   674,     0,   674,   -28,     0,     0,
+     0,     0,  -175,     0,     0,     0,  -175,   -28,     5,     0,
+     7,   281,     0,   824,     0,     0,     9,    10,    11,     0,
+   882,     0,  -346,  -346,   829,     0,     0,  -346,  -346,     0,
+  -346,     0,    13,     0,  -346,   835,  -346,  -346,  -346,  -346,
+  -346,  -346,  -346,  -346,  -346,  -346,  -346,     0,  -346,    16,
+  -346,     0,  -346,  -346,     0,     0,     0,     0,     0,  -346,
+     0,   674,  -346,     0,     0,     0,     0,  -346,  -346,  -346,
+     0,    22,     0,  -346,  -346,     0,    24,     0,  -346,  -346,
+     0,  -280,  -280,  -346,     0,  -346,  -346,     0,     0,     0,
+  -346,  -346,     0,     0,  -346,     0,  -346,     0,  -346,  -346,
+   231,  -346,   100,     5,     0,     7,   138,   101,   102,     0,
+   103,     9,    10,    11,     0,     0,   893,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    13,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,    16,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,     0,   114,   115,
+     0,     0,     0,   116,     0,   117,    22,     0,     0,     0,
+   118,    24,     0,     0,   119,     0,     0,     0,   120,   121,
+   669,   -94,   670,    60,     0,     0,     0,   101,   102,   248,
+   103,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+   258,   259,   260,   261,   262,     0,     0,     0,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,   671,   114,   115,
+     0,     0,     0,   116,     0,   117,    61,     0,     0,     0,
+   118,    62,     0,     0,   119,     0,     0,  -203,   120,   121,
+   669,   672,   670,    60,     0,     0,     0,   101,   102,     0,
+   103,   250,   251,   252,   253,   254,   255,   256,   257,   258,
+   259,   260,   261,   262,     0,     0,     0,     0,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,   671,   114,   115,
+     0,     0,     0,   116,     0,   117,    61,     0,     0,     0,
+   118,    62,     0,     0,   119,     0,     0,  -268,   120,   121,
+   669,   672,   100,     0,     0,     0,     0,   101,   102,     0,
+   103,   252,   253,   254,   255,   256,   257,   258,   259,   260,
+   261,   262,     0,     0,     0,     0,     0,     0,   104,     0,
     15,     0,   105,   106,     0,  -216,     0,     0,     0,   107,
-   760,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
      0,     0,     0,   112,   113,     0,     0,  -216,   114,   115,
-     0,   670,     0,   116,   772,   117,     0,     0,     0,     0,
-   118,     0,     0,     0,   119,     0,     0,     0,   120,   121,
-   670,   668,     0,   670,     0,   670,     0,   879,     0,  -345,
-  -345,     0,     0,     0,  -345,  -345,     0,  -345,     0,     0,
-     0,  -345,   820,  -345,  -345,  -345,  -345,  -345,  -345,  -345,
-  -345,  -345,  -345,  -345,   826,  -345,     0,  -345,     0,  -345,
-  -345,     0,     0,     0,     0,   832,  -345,     0,     0,  -345,
-     0,     0,     0,     0,  -345,  -345,  -345,     0,     0,     0,
-  -345,  -345,     0,     0,     0,  -345,  -345,     0,     0,     0,
-  -345,   670,  -345,  -345,     0,     0,     0,  -345,  -345,     0,
-     0,  -345,     0,  -345,     0,  -345,  -345,   231,  -345,   100,
-     5,     0,     7,   138,   101,   102,     0,   103,     9,    10,
-    11,   250,   251,   252,   253,   254,   255,   256,   257,   258,
-   259,   260,   261,   262,    13,   104,     0,    15,     0,   105,
-   106,     0,     0,     0,     0,     0,   107,   890,     0,   108,
-     0,    16,     0,     0,   109,   110,   111,     0,     0,     0,
-   112,   113,     0,     0,     0,   114,   115,     0,     0,     0,
-   116,     0,   117,    22,     0,     0,     0,   118,    24,     0,
-     0,   119,     0,     0,     0,   120,   121,   665,   -94,   666,
-    60,     0,     0,     0,   101,   102,   248,   103,   249,   250,
-   251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
-   261,   262,     0,     0,     0,   104,     0,    15,     0,   105,
-   106,     0,     0,     0,     0,     0,   107,     0,     0,   108,
-     0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
-   112,   113,     0,     0,   667,   114,   115,     0,     0,     0,
-   116,     0,   117,    61,     0,     0,     0,   118,    62,     0,
-     0,   119,     0,     0,  -203,   120,   121,   665,   668,   666,
-    60,     0,     0,     0,   101,   102,     0,   103,   251,   252,
-   253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-     0,     0,     0,     0,     0,   104,     0,    15,     0,   105,
-   106,     0,     0,     0,     0,     0,   107,     0,     0,   108,
-     0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
-   112,   113,     0,     0,   667,   114,   115,     0,     0,     0,
-   116,     0,   117,    61,     0,     0,     0,   118,    62,     0,
-     0,   119,     0,     0,  -268,   120,   121,   641,   668,   100,
-     0,     0,     0,     0,   101,   102,     0,   103,   252,   253,
-   254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
-     0,     0,     0,     0,     0,   104,     0,    15,     0,   105,
-   106,     0,     0,     0,     0,     0,   107,     0,     0,   108,
-     0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
-   112,   113,     0,     0,     0,   114,   115,     0,     0,     0,
-   116,     0,   117,     0,     0,     0,     0,   118,     0,     0,
-     0,   119,   665,     0,   100,   120,   121,     0,   642,   101,
-   102,     0,   103,   344,     0,     0,     5,     0,     7,   138,
-     0,     0,     0,     0,     9,    10,    11,     0,     0,     0,
-   104,     0,    15,     0,   105,   106,     0,     0,     0,     0,
-    13,   107,     0,    15,   108,     0,     0,     0,     0,   109,
-   110,   111,     0,     0,     0,   112,   113,    16,     0,     0,
-   114,   115,     0,     0,     0,   116,     0,   117,     0,     0,
-     0,     0,   118,     0,     0,     0,   119,     0,     0,    22,
-   120,   121,   194,   668,    24,   -28,   -28,   -28,   -28,   345,
-  -271,     0,     0,   -28,   -28,   -28,     0,     0,     0,     0,
-     0,   340,     0,     0,   -24,   -24,   -24,   -24,   195,   -28,
-     0,  -175,   -24,   -24,   -24,     0,     0,  -175,   255,   256,
-   257,   258,   259,   260,   261,   262,   -28,   195,   -24,     0,
-  -175,     0,     0,     0,     0,     0,  -175,     0,     0,     0,
-   196,   197,     0,     0,     0,   -24,     0,     0,   -28,     0,
-     0,     0,     0,   -28,     0,     0,     0,     0,  -175,   196,
-   197,     0,  -175,   -28,     0,     0,     0,   -24,     0,     0,
-     0,     0,   -24,     0,     0,     0,     0,  -175,     0,     0,
-   334,  -175,   -24,   -20,   -20,   -20,   -20,     0,     0,     0,
-     0,   -20,   -20,   -20,     0,     0,     0,     0,     0,   321,
-     0,     0,  -498,  -498,  -498,  -498,   195,   -20,     0,  -175,
-  -498,  -498,  -498,     0,     0,  -175,   256,   257,   258,   259,
-   260,   261,   262,     0,   -20,     0,  -498,   321,  -498,     0,
-  -335,  -335,  -335,  -335,     0,     0,     0,     0,  -335,  -335,
-  -335,     0,     0,  -498,     0,     0,   -20,     0,     0,     0,
-     0,   -20,     0,     0,  -335,     0,  -175,     0,     0,     0,
-  -175,   -20,     0,     0,     0,  -498,     0,     0,     0,   100,
-  -498,  -335,     0,     0,   101,   102,     0,   103,     0,     0,
-  -498,   253,   254,   255,   256,   257,   258,   259,   260,   261,
-   262,     0,     0,  -335,     0,   104,     0,    15,  -335,   105,
-   106,     0,     0,     0,     0,     0,   107,     0,  -111,   108,
-     0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
-   112,   113,     0,     0,     0,   114,   115,     0,   100,     0,
-   116,     0,   117,   101,   102,     0,   103,   118,     0,     0,
-     0,   119,     0,     0,     0,   120,   121,     0,     0,   319,
-     0,     0,     0,     0,   104,     0,    15,     0,   105,   106,
-     0,     0,     0,     0,     0,   107,     0,     0,   108,     0,
-     0,     0,     0,   109,   110,   111,     0,     0,     0,   112,
-   113,     0,     0,     0,   114,   115,     0,   100,     0,   116,
-     0,   117,   101,   102,     0,   103,   118,     0,     0,     0,
-   119,     0,     0,     0,   120,   121,     0,     0,   405,     0,
+     0,     0,     0,   116,     0,   117,     0,     0,     0,     0,
+   118,     0,     0,     0,   119,   645,     0,   100,   120,   121,
+     0,   672,   101,   102,     0,   103,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,   104,     0,    15,     0,   105,   106,     0,
      0,     0,     0,     0,   107,     0,     0,   108,     0,     0,
      0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
-     0,     0,     0,   114,   115,     0,   100,     0,   116,     0,
-   117,   101,   102,     0,   103,   118,     0,     0,     0,   119,
-     0,     0,     0,   120,   121,     0,     0,   460,     0,     0,
-     0,     0,   104,     0,    15,     0,   105,   106,     0,     0,
+     0,     0,     0,   114,   115,     0,     0,     0,   116,     0,
+   117,     0,     0,     0,     0,   118,     0,     0,     0,   119,
+   669,     0,   100,   120,   121,     0,   646,   101,   102,     0,
+   103,   345,     0,     0,     5,     0,     7,   138,     0,     0,
+     0,     0,     9,    10,    11,     0,     0,     0,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,    13,   107,
+     0,    15,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,    16,     0,     0,   114,   115,
+     0,     0,     0,   116,     0,   117,     0,     0,     0,     0,
+   118,     0,     0,     0,   119,     0,     0,    22,   120,   121,
+   341,   672,    24,   -24,   -24,   -24,   -24,   346,  -271,     0,
+     0,   -24,   -24,   -24,     0,     0,     0,     0,     0,   335,
+     0,     0,   -20,   -20,   -20,   -20,   195,   -24,     0,  -175,
+   -20,   -20,   -20,     0,     0,  -175,     0,     0,     0,     0,
+     0,     0,     0,     0,   -24,   195,   -20,     0,  -175,     0,
+     0,     0,     0,     0,  -175,     0,     0,     0,   196,   197,
+     0,     0,     0,   -20,     0,     0,   -24,     0,     0,     0,
+     0,   -24,     0,     0,     0,     0,  -175,     0,     0,     0,
+  -175,   -24,     0,     0,     0,   -20,     0,     0,     0,     0,
+   -20,     0,     0,     0,     0,  -175,     0,     0,   322,  -175,
+   -20,     5,     6,     7,     8,     0,     0,     0,     0,     9,
+    10,    11,     0,     0,     0,     0,     0,   322,     0,     0,
+  -499,  -499,  -499,  -499,     0,    13,     0,    14,  -499,  -499,
+  -499,     5,     0,     7,   281,     0,     0,     0,     0,     9,
+    10,    11,    16,     0,  -499,   100,  -499,     0,     0,     0,
+   101,   102,     0,   103,     0,    13,     0,    14,     0,     0,
+     0,  -499,     0,     0,    22,     0,     0,     0,     0,    24,
+     0,   104,    16,    15,     0,   105,   106,   273,     0,  -497,
+     0,     0,   107,  -499,     0,   108,   274,   275,  -499,     0,
+   109,   110,   111,     0,    22,     0,   112,   113,  -499,    24,
+     0,   114,   115,     0,   100,     0,   116,     0,   117,   101,
+   102,     0,   103,   118,     0,     0,     0,   119,     0,     0,
+     0,   120,   121,     0,     0,   320,     0,     0,     0,     0,
+   104,     0,    15,     0,   105,   106,     0,     0,     0,     0,
+     0,   107,     0,     0,   108,     0,     0,     0,     0,   109,
+   110,   111,     0,     0,     0,   112,   113,     0,     0,     0,
+   114,   115,     0,   100,     0,   116,     0,   117,   101,   102,
+     0,   103,   118,     0,     0,     0,   119,     0,     0,     0,
+   120,   121,     0,     0,   406,     0,     0,     0,     0,   104,
+     0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
+   107,     0,     0,   108,     0,     0,     0,     0,   109,   110,
+   111,     0,     0,     0,   112,   113,     0,     0,     0,   114,
+   115,     0,   100,     0,   116,     0,   117,   101,   102,     0,
+   103,   118,     0,     0,     0,   119,     0,     0,     0,   120,
+   121,     0,     0,   462,     0,     0,     0,     0,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,     0,   114,   115,
+     0,   100,     0,   116,     0,   117,   101,   102,     0,   103,
+   118,     0,     0,     0,   119,     0,     0,     0,   120,   121,
+     0,     0,   504,     0,     0,     0,     0,   104,     0,    15,
+     0,   105,   106,     0,     0,     0,     0,     0,   107,     0,
+     0,   108,     0,     0,     0,     0,   109,   110,   111,     0,
+     0,     0,   112,   113,     0,     0,     0,   114,   115,     0,
+     0,     0,   116,     0,   117,     0,     0,     0,     0,   118,
+     0,     0,     0,   119,     0,     0,     0,   120,   121,     0,
+     0,   771,   670,   782,     6,     7,     8,   101,   102,     0,
+   103,     9,    10,    11,   783,     0,   784,   785,   786,   787,
+   788,   789,   790,   791,   792,   793,   794,    13,   104,    14,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,    16,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,     0,   114,   115,
+     0,     0,     0,   116,     0,   117,   795,     0,     0,     0,
+   118,   796,     0,     0,   119,     0,   797,     0,   120,   121,
+     0,   361,   670,    60,     0,     0,     0,   101,   102,     0,
+   103,     0,     0,     0,   783,     0,   784,   785,   786,   787,
+   788,   789,   790,   791,   792,   793,   794,     0,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,   100,     0,   114,   115,
+     0,   101,   102,   116,   103,   117,    61,     0,     0,     0,
+   118,    62,     0,     0,   119,     0,   797,     0,   120,   121,
+     0,   361,   104,     0,    15,     0,   105,   106,     0,     0,
      0,     0,     0,   107,     0,     0,   108,     0,     0,     0,
      0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
-     0,     0,   114,   115,     0,   100,     0,   116,     0,   117,
-   101,   102,     0,   103,   118,     0,     0,     0,   119,     0,
-     0,     0,   120,   121,     0,     0,   501,     0,     0,     0,
-     0,   104,     0,    15,     0,   105,   106,     0,     0,     0,
-     0,     0,   107,     0,     0,   108,     0,     0,     0,     0,
-   109,   110,   111,     0,     0,     0,   112,   113,     0,     0,
-     0,   114,   115,     0,     0,     0,   116,     0,   117,     0,
-     0,     0,     0,   118,     0,     0,     0,   119,     0,     0,
-     0,   120,   121,     0,     0,   767,   666,   778,     6,     7,
-     8,   101,   102,     0,   103,     9,    10,    11,   779,     0,
-   780,   781,   782,   783,   784,   785,   786,   787,   788,   789,
-   790,    13,   104,    14,    15,     0,   105,   106,     0,     0,
-     0,     0,     0,   107,     0,     0,   108,     0,    16,     0,
-     0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
      0,     0,   114,   115,     0,     0,     0,   116,     0,   117,
-   791,     0,     0,     0,   118,   792,     0,     0,   119,     0,
-   793,     0,   120,   121,     0,   360,   666,    60,     0,     0,
-     0,   101,   102,     0,   103,     0,     0,     0,   779,     0,
-   780,   781,   782,   783,   784,   785,   786,   787,   788,   789,
-   790,     0,   104,     0,    15,     0,   105,   106,     0,     0,
+     0,     0,     0,     0,   118,     0,     0,     0,   119,     0,
+     0,     0,   120,   121,     0,   481,   147,   148,     0,   149,
+   150,     0,     0,     0,   151,   152,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,   168,   169,     0,   100,     5,     6,     7,     8,   101,
+   102,   170,   103,     9,    10,    11,     5,     6,     7,     8,
+     0,     0,     0,     0,     9,    10,    11,     0,     0,    13,
+   104,    14,    15,     0,   105,   106,     0,     0,     0,     0,
+    13,   107,    14,     0,   108,   172,    16,     0,     0,   109,
+   110,   111,     0,     0,   296,   112,   113,    16,     0,     0,
+   114,   115,     0,     0,     0,   116,     0,   117,    22,     0,
+     0,     0,   118,    24,     0,     0,   119,     0,     0,    22,
+   120,   121,   100,     5,    24,     7,   138,   101,   102,   601,
+   103,     9,    10,    11,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    13,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,    16,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,   100,     0,   114,   115,
+     0,   101,   102,   116,   103,   117,    22,     0,     0,     0,
+   118,    24,     0,     0,   119,     0,     0,     0,   120,   121,
+     0,     0,   104,     0,    15,     0,   105,   106,     0,     0,
      0,     0,     0,   107,     0,     0,   108,     0,     0,     0,
      0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
    100,     0,   114,   115,     0,   101,   102,   116,   103,   117,
-    61,     0,     0,     0,   118,    62,     0,     0,   119,     0,
-   793,     0,   120,   121,     0,   360,   104,     0,    15,     0,
-   105,   106,     0,     0,     0,     0,     0,   107,     0,     0,
-   108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
-     0,   112,   113,     0,     0,     0,   114,   115,     0,     0,
-     0,   116,     0,   117,     0,     0,     0,     0,   118,     0,
-     0,     0,   119,     0,     0,     0,   120,   121,     0,   479,
-   147,   148,     0,   149,   150,     0,     0,     0,   151,   152,
-   153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   167,   168,   169,     0,   100,     5,
-     6,     7,     8,   101,   102,   170,   103,     9,    10,    11,
-     5,     6,     7,     8,     0,     0,     0,     0,     9,    10,
-    11,     0,     0,    13,   104,    14,    15,     0,   105,   106,
-     0,     0,     0,     0,    13,   107,    14,     0,   108,   172,
-    16,     0,     0,   109,   110,   111,     0,     0,   295,   112,
-   113,    16,     0,     0,   114,   115,     0,     0,     0,   116,
-     0,   117,    22,     0,     0,     0,   118,    24,     0,     0,
-   119,     0,     0,    22,   120,   121,   100,     5,    24,     7,
-   138,   101,   102,    84,   103,     9,    10,    11,   254,   255,
-   256,   257,   258,   259,   260,   261,   262,     0,     0,     0,
-     0,    13,   104,     0,    15,     0,   105,   106,     0,     0,
-     0,     0,     0,   107,     0,     0,   108,     0,    16,     0,
-     0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
-   100,     0,   114,   115,     0,   101,   102,   116,   103,   117,
-    22,     0,     0,     0,   118,    24,     0,     0,   119,     0,
+   365,     0,     0,     0,   118,     0,     0,     0,   119,     0,
      0,     0,   120,   121,     0,     0,   104,     0,    15,     0,
    105,   106,     0,     0,     0,     0,     0,   107,     0,     0,
    108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
      0,   112,   113,     0,   100,     0,   114,   115,     0,   101,
-   102,   116,   103,   117,   364,     0,     0,     0,   118,     0,
-     0,     0,   119,     0,     0,     0,   120,   121,     0,     0,
+   102,   116,   103,   117,     0,     0,     0,     0,   118,     0,
+     0,     0,   119,     0,   839,     0,   120,   121,     0,     0,
    104,     0,    15,     0,   105,   106,     0,     0,     0,     0,
      0,   107,     0,     0,   108,     0,     0,     0,     0,   109,
    110,   111,     0,     0,     0,   112,   113,     0,   100,     0,
    114,   115,     0,   101,   102,   116,   103,   117,     0,     0,
-     0,     0,   118,     0,     0,     0,   119,     0,   836,     0,
+     0,     0,   118,     0,     0,     0,   119,     0,     0,     0,
    120,   121,     0,     0,   104,     0,    15,     0,   105,   106,
      0,     0,     0,     0,     0,   107,     0,     0,   108,     0,
      0,     0,     0,   109,   110,   111,     0,     0,     0,   112,
-   113,     0,   100,     0,   114,   115,     0,   101,   102,   116,
+   113,     0,   100,     0,   242,   115,     0,   101,   102,   116,
    103,   117,     0,     0,     0,     0,   118,     0,     0,     0,
    119,     0,     0,     0,   120,   121,     0,     0,   104,     0,
     15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
      0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
-     0,     0,     0,   112,   113,     0,   100,     0,   242,   115,
+     0,     0,     0,   112,   113,     0,   508,     0,   244,   115,
      0,   101,   102,   116,   103,   117,     0,     0,     0,     0,
    118,     0,     0,     0,   119,     0,     0,     0,   120,   121,
      0,     0,   104,     0,    15,     0,   105,   106,     0,     0,
      0,     0,     0,   107,     0,     0,   108,     0,     0,     0,
      0,   109,   110,   111,     0,     0,     0,   112,   113,     0,
-   505,     0,   244,   115,     0,   101,   102,   116,   103,   117,
+     0,     0,   114,   115,     0,     0,     0,   116,     0,   117,
      0,     0,     0,     0,   118,     0,     0,     0,   119,     0,
-     0,     0,   120,   121,     0,     0,   104,     0,    15,     0,
-   105,   106,     0,     0,     0,     0,     0,   107,     0,     0,
-   108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
-     0,   112,   113,     0,     0,     0,   114,   115,     0,     0,
-     0,   116,     0,   117,     0,     0,     0,     0,   118,     0,
-     0,     0,   119,     0,     0,   540,   120,   121,     5,     0,
-     7,   138,     0,     0,     0,     0,     9,    10,    11,     0,
-     0,     0,     0,   540,     0,     0,     5,     0,     7,   138,
-     0,     0,    13,     0,     9,    10,    11,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
-    13,     0,     0,     0,     0,     0,     0,     4,     0,  -128,
-     5,     6,     7,     8,     0,     0,     0,    16,     9,    10,
-    11,    22,  -450,  -450,  -450,     0,    24,     0,     0,     0,
-     0,   541,  -450,    12,    13,     0,    14,    15,     0,    22,
-  -449,  -449,  -449,     0,    24,     0,     0,     0,     0,   541,
-  -449,    16,     0,     0,    17,    18,  -128,     0,     0,     0,
-     0,     0,     0,     0,     0,  -128,     0,    19,    20,    21,
-     0,     0,     0,    22,     0,     0,     0,    23,    24,    25,
-    26,     0,     4,    27,  -128,     5,     6,     7,     8,     0,
-     0,     0,     0,     9,    10,    11,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    13,
-     4,    14,  -128,     5,     6,     7,     8,     0,     0,     0,
-     0,     9,    10,    11,     0,     0,    16,     0,     0,   526,
-   527,  -128,     0,     0,     0,     0,     0,    13,   434,    14,
-  -128,     5,     6,     7,     8,     0,     0,   436,    22,     9,
-    10,    11,     0,    24,    16,     0,     0,     0,    27,  -128,
-     0,     5,     6,     7,     8,    13,     0,    14,  -128,     9,
-    10,    11,     0,     0,     0,     0,    22,     0,     0,     0,
-     0,    24,    16,     0,     0,    13,    27,    14,     0,     0,
-     5,     6,     7,     8,     0,     0,     0,     0,     9,    10,
-    11,     0,    16,     0,    22,     0,     0,     0,     0,    24,
-     0,     0,     0,  -395,    13,     0,    14,     0,     5,    89,
-     7,    90,     0,     0,    22,     0,     9,    10,    11,    24,
-     0,    16,     0,     0,   598,   344,     0,     0,     5,     0,
-     7,   138,    13,     0,     0,     0,     9,    10,    11,     0,
-     0,     0,     0,    22,     0,     0,     0,     0,    24,    16,
-     0,     0,    13,   846,     0,    15,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
-     0,    22,     0,     0,     0,     0,    24,     0,     0,     0,
-     0,   637,     0,     0,     0,     0,     0,     0,     0,   147,
+     0,   543,   120,   121,     5,     0,     7,   138,     0,     0,
+     0,     0,     9,    10,    11,     0,     0,     0,     0,   543,
+     0,     0,     5,     0,     7,   138,     0,     0,    13,     0,
+     9,    10,    11,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    16,    13,     0,     0,     0,
+     0,     0,     0,     4,     0,  -128,     5,     6,     7,     8,
+     0,     0,     0,    16,     9,    10,    11,    22,  -451,  -451,
+  -451,     0,    24,     0,     0,     0,     0,   544,  -451,    12,
+    13,     0,    14,    15,     0,    22,  -450,  -450,  -450,     0,
+    24,     0,     0,     0,     0,   544,  -450,    16,     0,     0,
+    17,    18,  -128,     0,     0,     0,     0,     0,     0,     0,
+     0,  -128,     0,    19,    20,    21,     0,     0,     0,    22,
+     0,     0,     0,    23,    24,    25,    26,     0,     4,    27,
+  -128,     5,     6,     7,     8,     0,     0,     0,     0,     9,
+    10,    11,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    13,     4,    14,  -128,     5,
+     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
+     0,     0,    16,     0,     0,   529,   530,  -128,     0,     0,
+     0,     0,     0,    13,     0,    14,  -128,     0,     0,     0,
+     0,     0,     0,     0,    22,     0,     0,     0,     0,    24,
+    16,     0,     0,     0,    27,  -128,   436,     0,   437,     5,
+     6,     7,     8,     0,  -128,   438,     0,     9,    10,    11,
+     0,     0,    22,     0,     0,   436,     0,    24,     5,     6,
+     7,     8,    27,    13,   438,    14,     9,    10,    11,     5,
+     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
+    16,     0,    13,     0,    14,   345,     0,     0,     5,     0,
+     7,   138,     0,    13,     0,    14,     9,    10,    11,    16,
+     0,     0,    22,     0,     0,     0,     0,    24,     0,     0,
+    16,  -396,    13,     0,     0,    15,     0,     0,     0,     0,
+     0,    22,     0,     0,     0,     0,    24,     0,     0,    16,
+  -396,     0,    22,     0,     0,     0,     0,    24,     0,     0,
+     0,     0,   849,     0,     0,     0,     0,     0,     0,   147,
    148,    22,   149,   150,     0,     0,    24,   151,   152,   153,
    154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
    164,   165,   166,   167,   168,   169,     0,   147,   148,     0,
    149,   150,     0,     0,   170,   151,   152,   153,   154,   155,
    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
    166,   167,   168,   169,     0,   171,     0,     0,     0,     0,
-     0,     0,   367,   147,   148,     0,   149,   150,   172,     0,
+     0,     0,   368,   147,   148,     0,   149,   150,   172,     0,
      0,   151,   152,   153,   154,   155,   156,   157,   158,   159,
    160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
      0,   147,   148,     0,   149,   150,   172,     0,   170,   151,
    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
    162,   163,   164,   165,   166,   167,   168,   169,     0,     0,
-     0,     5,     6,     7,     8,     0,   583,   436,     0,     9,
-    10,    11,   172,     5,     6,     7,     8,     0,     0,   631,
+     0,     5,     6,     7,     8,     0,   586,   438,     0,     9,
+    10,    11,   172,     5,     6,     7,     8,     0,     0,   635,
      0,     9,    10,    11,     0,    13,     0,    14,     0,     0,
      0,     0,     0,     0,     0,     0,     0,    13,     0,    14,
-   172,     0,    16,     5,     6,     7,     8,     5,     6,     7,
+   172,     0,    16,     5,     0,     7,   138,     5,     6,     7,
      8,     9,    10,    11,    16,     9,    10,    11,     0,     0,
      0,     0,     0,     0,    22,     0,     0,    13,     0,    24,
      0,    13,     0,    14,     0,     0,    22,     5,     0,     7,
-   280,    24,     0,     0,    16,     9,    10,    11,    16,     0,
-     0,     0,     0,     0,   866,     0,     0,     0,     0,     0,
+   281,    24,     0,     0,    16,     9,    10,    11,    16,     0,
+     0,     0,     0,     0,   869,     0,     0,     0,     0,     0,
      0,    13,     0,     0,     0,     0,    22,     0,     0,     0,
     22,    24,     0,     0,     0,    24,     0,     0,    16,   246,
-   247,   248,   867,   249,   250,   251,   252,   253,   254,   255,
+   247,   248,   870,   249,   250,   251,   252,   253,   254,   255,
    256,   257,   258,   259,   260,   261,   262,    14,     0,     0,
     22,     0,   246,   247,   248,    24,   249,   250,   251,   252,
    253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-   246,   247,   248,   905,   249,   250,   251,   252,   253,   254,
+   246,   247,   248,   908,   249,   250,   251,   252,   253,   254,
    255,   256,   257,   258,   259,   260,   261,   262,   246,   247,
    248,     0,   249,   250,   251,   252,   253,   254,   255,   256,
    257,   258,   259,   260,   261,   262
 };
 
 static const short yycheck[] = {    56,
-    57,   207,     2,     3,    16,     2,     3,    19,    20,     2,
-     3,    23,   316,    25,    26,    31,     9,    10,    11,     2,
-     3,   201,   175,    22,    85,    24,    38,    39,    40,    83,
-    33,   308,    24,    91,   278,   337,   221,   198,    31,   206,
-    33,   175,    42,    66,    95,    42,   267,    32,    33,    42,
-   105,   106,    33,   404,   274,   140,   111,   233,   143,    42,
-   323,    77,    74,   570,   636,   221,   192,   122,    67,    85,
-   425,   335,    71,   548,   114,    67,    57,   341,   133,    71,
-   676,   427,     9,   236,    77,    36,     1,     3,     4,     1,
-    83,    38,    85,   273,   202,   107,     3,     4,    91,     3,
-     1,     1,    53,    54,    55,    36,    38,    30,   314,    38,
-    10,   903,    59,    45,    38,    38,    45,   720,    77,     3,
-     4,    38,    81,     1,    77,     3,     4,    58,    81,    80,
-    59,   171,   144,   114,   146,    82,   739,    88,    42,   931,
-   197,     3,     4,     5,     6,     7,    38,    59,   744,    76,
-    38,    67,    76,   416,   212,   662,    72,    45,   170,    76,
-    67,   829,   143,   324,   349,    72,   410,    82,   180,   181,
-     0,   183,   184,   189,   335,    82,    77,   193,   235,   534,
-   341,   401,    82,    67,    76,     0,   202,    45,    72,    67,
-   171,    77,   413,   349,    72,    81,   189,   237,    82,   192,
-   193,    30,   242,    59,   244,    67,   332,    59,    60,   202,
-    72,   268,   880,   225,   810,     3,     4,   370,   275,   212,
-   278,   329,    76,    81,    76,   333,   238,    81,   735,   704,
-   705,   899,    59,     3,   902,    77,   904,     7,   221,    81,
-   221,     5,    30,     7,   912,   522,   431,     3,     4,   604,
-    38,   291,   515,   265,   266,   206,   237,    59,     3,     4,
-    30,   242,    50,   244,     3,     4,   217,   613,     7,    77,
-    78,    59,    76,   845,    30,   431,   944,    81,     7,   630,
-    50,   338,    59,    60,    72,     3,     4,   299,     3,    59,
-    60,    30,     7,    45,    50,     3,     4,    59,    60,   350,
-    76,   352,   301,    59,   465,    81,   467,    65,   363,   301,
-   291,    50,    30,   329,    76,    30,   579,   333,    77,    30,
-    59,    50,    67,   380,    59,   318,    59,    72,   481,   606,
-    59,    60,    50,    72,    77,    50,   329,    82,    81,   332,
-   333,    59,    50,   850,    59,   357,    82,   822,    59,    60,
-    76,   408,   410,    27,    72,    81,   509,    59,    60,    67,
-    82,   346,   583,   348,    72,     3,   349,   348,   349,    30,
-    82,   592,    77,    59,    76,   509,    81,   328,     1,   555,
-   420,     4,     5,     6,     7,    59,    60,    10,    76,    12,
-    13,    14,    30,    81,   657,    59,   640,   660,    59,    60,
-   412,    76,   622,    81,   706,    28,     5,     6,     7,    48,
-    49,   404,    50,    12,    13,    14,   416,   694,   579,   416,
-     9,    59,    45,   416,    63,   424,   419,   427,    59,    60,
-   427,   616,   424,   586,   427,   438,     3,     4,    75,   420,
-    76,   621,   427,    76,    67,   438,    38,   627,   451,    72,
-   431,    77,   437,   438,     3,     4,   623,   438,   679,    82,
-   616,   473,    27,   548,   549,    30,     4,    82,     6,     7,
-   451,    36,    59,   717,    12,    13,    14,    59,    60,     3,
-     4,    30,    77,    59,   704,    78,    81,   648,    78,    38,
-    28,   711,    59,    76,    50,   507,    76,   658,    82,   660,
-    67,    50,   516,    59,    60,    72,   520,    45,   511,    77,
-    59,    77,    77,   529,   514,    81,    81,   514,   511,    38,
-    77,   514,    77,    72,    81,   510,    81,    77,   531,    67,
-   511,    81,   548,   549,    72,    59,   529,   814,   531,    77,
-    78,     3,     4,    67,    76,   530,   531,    59,    72,   563,
-   531,   612,   566,     3,    76,   548,   549,   542,   543,   552,
-    77,   737,   543,   617,   618,    10,   578,    76,    30,    48,
-    49,    50,    51,    52,   559,   560,    63,   638,    82,   560,
-    30,   597,   640,    76,   764,   608,   609,    27,    50,     9,
-   602,    83,    68,    69,    70,   649,   612,    59,    60,    77,
-    50,   777,    78,    36,   597,    77,   622,    67,   336,    59,
-    60,    77,    78,   613,    36,   343,   613,    81,   611,   612,
-   613,    78,   638,   351,   617,   618,    77,    78,   613,   622,
-   894,    38,   896,    76,   938,   616,    83,   630,     4,    76,
-     6,     7,   946,   636,    76,   638,    12,    13,    14,    76,
-   707,    50,    51,    52,    38,   667,   649,    59,    60,   717,
-     3,     4,    28,    76,     7,   126,   127,    76,    76,   875,
-     1,    83,   623,     4,     5,     6,     7,    82,    76,    45,
-   737,    12,    13,    14,    50,    76,    63,    30,   704,   705,
-    68,    69,    70,    59,    60,   711,    63,    28,    36,    30,
-    78,    67,    76,    76,    83,   881,    72,    50,   762,    78,
-    78,   704,   705,    76,    45,   727,    59,    60,   711,     4,
-   777,     6,     7,    78,    32,   737,    38,    12,    13,    14,
-    83,   788,    76,   894,    81,   896,    67,   737,   754,    76,
-   737,    72,    77,    28,   737,   921,   922,    27,    77,     3,
-    30,    82,    77,   808,   737,    81,    36,    68,    69,    70,
-    45,   754,     3,     4,    78,   777,     7,    78,    38,   762,
-   827,    63,    78,   830,   831,    78,    83,   789,    38,    59,
-    60,   838,    67,    38,    78,    81,   847,    72,    63,    30,
-    38,   845,   791,   792,    81,   798,   853,    77,    63,    78,
-   792,    81,    83,   860,    78,   798,   822,    38,   808,    50,
-    59,   808,   797,   798,   871,   808,    59,   798,    59,    59,
-    38,    77,   241,     7,   881,   808,    77,   246,   247,   822,
-    38,   847,   251,   252,   253,   254,   255,   256,   257,   258,
-   259,   260,   261,   262,   572,   573,   903,    77,   576,    77,
-    16,    78,   845,    59,   847,    54,    55,    77,    57,    58,
-    59,    60,    77,     5,     6,     7,    59,    63,   925,   881,
-    12,    13,    14,    76,   931,    77,    17,    76,     1,    76,
-     3,     4,     5,     6,     7,    77,    76,    10,    30,    12,
-    13,    14,    68,    69,    70,    76,   624,   625,   626,    77,
-   628,   629,    78,     6,     7,    28,    77,    30,     9,    12,
-    13,    14,    77,     1,    59,     3,     4,    81,    77,    76,
-     8,     9,    45,    11,    76,   653,    77,    15,    77,    17,
-    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-     0,    29,     0,    31,    67,    33,    34,   830,   413,    72,
-    87,   658,    40,    76,   324,    43,   639,   685,   686,   687,
-    48,    49,    50,   382,   383,   808,    54,    55,   281,   646,
-   412,    59,    60,   742,   675,   475,    64,   349,    66,    67,
-   648,   467,   357,    71,    72,   473,   658,    75,   881,    77,
-    78,    79,    80,   660,    82,   580,   724,   407,   926,   881,
-   552,   419,   928,     1,   419,     3,     4,     5,     6,     7,
-     8,     9,    25,    11,    12,    13,    14,    15,   539,    17,
-    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-    28,    29,    30,    31,   759,    33,    34,   618,   762,   300,
-   514,   532,    40,   586,   772,    43,   509,    45,   754,   679,
-    48,    49,    50,   472,   415,   415,    54,    55,    -1,    -1,
-   370,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,
-    -1,    -1,   491,    71,    72,    -1,    -1,    75,    -1,    77,
-    78,    79,    80,     1,    82,     3,     4,     5,     6,     7,
-     8,     9,    -1,    11,    12,    13,    14,    15,   826,    17,
-    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-    28,    29,    30,    31,   842,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    43,    -1,    45,    -1,    -1,
-    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
-    -1,    59,    60,   562,    -1,    -1,    64,    -1,    66,    67,
-    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,
-    -1,    79,    80,   582,    82,     1,    -1,     3,     4,    -1,
-    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    15,
-    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    54,    55,    43,    57,    58,
-    59,    60,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,    -1,    -1,    59,    60,    -1,    -1,   646,    64,    -1,
-    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,
-     1,    77,     3,    79,    80,    -1,    82,     8,     9,    -1,
-    11,    -1,    -1,    -1,    -1,    -1,    -1,   676,    -1,    -1,
-    -1,    -1,    -1,    -1,   683,    -1,    -1,    -1,    29,    -1,
+    57,    16,    24,    33,    19,    20,     2,     3,    23,   233,
+    25,    26,    31,     2,     3,    85,    22,   207,    24,   317,
+     2,     3,   309,    38,    39,    40,    91,   201,    66,   279,
+   336,    83,   175,   338,    32,    33,   342,   198,   267,   206,
+   140,   324,   175,   143,    95,    67,    42,   405,   573,    71,
+   221,   221,    36,    42,   114,     2,     3,   429,    77,    74,
+    42,    67,     9,    10,    11,    71,    85,   640,   551,    53,
+    54,    55,   105,   106,   680,   274,   832,   427,   111,    33,
+   192,     1,     1,     9,    31,     3,    33,     1,   202,   122,
+     1,    10,   107,   236,   725,    42,    80,    76,    38,   273,
+   133,    38,    81,    57,    88,     3,   519,    38,     0,   276,
+   523,   171,    45,   744,    45,    36,    38,     0,    30,    59,
+    30,     3,     4,    59,    42,   315,    38,   883,    59,   144,
+    77,   146,    30,     3,     4,   418,    83,    58,    85,    76,
+   197,   666,    82,   749,    91,    59,   902,   212,    81,   905,
+    76,   907,    50,   566,    76,   170,   569,    77,    59,   915,
+   114,    59,   412,    82,   325,   180,   181,   906,   183,   184,
+   189,    82,     3,     4,   193,   336,    45,   237,   235,   350,
+   350,   342,   242,   202,   244,    67,   415,   537,    77,   143,
+    72,   947,    81,   140,    59,   934,   143,    67,    27,    38,
+    82,    30,    72,   402,    77,     3,     4,    36,   814,   408,
+   225,   268,    82,    59,   279,   740,   330,   171,   275,    50,
+   334,   333,   206,   238,    65,   708,   709,     1,   371,     3,
+     4,    30,   292,   217,    82,   518,    67,    76,   525,   221,
+    82,    72,   189,    77,   616,   192,   193,    81,    77,    30,
+   265,   266,    81,    59,     3,   202,    82,   607,     7,    38,
+    59,    60,   433,   433,    77,   212,    45,   221,    81,    67,
+    38,    27,     3,     4,    72,   848,   634,    45,    59,    60,
+   302,    30,   339,   237,    82,   300,     3,     4,   242,    59,
+   244,    76,   276,    67,     3,     4,   302,    59,    72,   582,
+   351,    50,   353,    59,    60,    81,   467,    76,   469,    76,
+    59,   330,    81,    30,    81,   334,     3,     4,     5,     6,
+     7,    38,   609,     9,   381,    76,    76,   274,   853,    75,
+    81,   364,    76,    50,   558,    77,    67,    81,   292,    81,
+   483,    72,    59,   358,     3,   329,     3,   412,     7,   347,
+    59,   349,    77,   410,    76,    72,    81,   586,    67,    59,
+    60,    77,   422,    72,    38,    81,   595,    82,   350,   512,
+    77,    30,   319,    30,    81,     7,    76,    59,   661,   512,
+    67,   664,     5,   330,     7,    72,   333,   334,     3,     4,
+    59,    50,     7,    50,   644,   349,   350,    77,    30,   414,
+    59,    60,    59,    60,   426,   710,     3,     4,    59,    60,
+   440,   698,    77,    59,    60,    30,    81,    78,    50,    82,
+   426,   582,   418,   453,    78,    76,   625,    59,    60,   418,
+    76,   429,    76,   429,    76,    50,     3,     4,     3,     4,
+   429,   439,   440,    76,    59,    38,   589,    30,   619,   619,
+   624,   551,   552,    77,   683,   402,   630,    72,   405,   626,
+   475,   408,    59,    30,   631,    30,    76,    50,   422,    59,
+    67,   418,   722,    38,   421,    72,    59,    60,    77,   433,
+    59,    60,   429,    50,   514,    50,   440,    27,    77,    78,
+    30,   652,    59,   440,    59,   510,    36,    48,    49,   453,
+    10,   662,    77,   664,   534,    72,    81,    72,    76,   708,
+   709,    63,    63,   532,    76,   513,   715,   716,   742,    59,
+    60,   517,    82,    77,    68,    69,    70,    81,   517,    59,
+    60,   818,   551,   552,    78,   533,   534,    77,    77,    59,
+    60,    81,    81,   337,    27,   615,     9,   545,   546,    83,
+   344,    77,    78,     4,     5,     6,     7,   781,   352,    77,
+   514,    12,    13,    14,   562,   563,   581,   514,   620,   621,
+   517,    36,   642,   611,   612,     3,     4,    28,    77,   644,
+   534,   600,    50,    51,    52,   532,    67,   534,    77,    78,
+   605,   897,   546,   899,    45,    36,   615,    68,    69,    70,
+    76,   653,    30,    81,   551,   552,   625,    78,   555,   563,
+    48,    49,    50,    51,    52,    38,    67,    78,   616,    76,
+   616,    72,    50,   642,    59,    60,    77,   616,    68,    69,
+    70,    59,    60,   126,   127,     3,     4,    76,    78,     7,
+    76,    38,   626,   941,    76,    76,    76,   631,    68,    69,
+    70,   949,    63,   600,   711,    76,   671,   722,    78,    83,
+   884,    83,    30,    76,    82,   619,    76,   614,   615,   616,
+    63,    76,    36,   620,   621,    83,    76,    78,   625,    78,
+    78,    32,    50,    38,    76,   742,    77,   634,   878,   708,
+   709,    59,    60,   640,    83,   642,   715,   716,    81,    76,
+   924,   925,     4,     5,     6,     7,   653,    77,     3,    81,
+    12,    13,    14,     6,     7,   767,    77,   732,    78,    12,
+    13,    14,    38,    63,   781,    83,    28,   742,    30,    78,
+    78,    38,    38,    78,    81,   792,   897,    63,   899,    38,
+   759,    78,    81,    45,     1,    63,   742,     4,     5,     6,
+     7,    83,    38,   742,    78,    12,    13,    14,    59,    59,
+   742,   708,   709,    59,    38,    67,   781,    77,   715,   716,
+    72,    28,   802,   830,   796,    77,   833,   834,   793,   812,
+   850,   575,   576,    77,   841,   579,     7,    38,    45,   795,
+   796,    16,    77,    77,    59,   742,   848,    78,    77,   856,
+     5,     6,     7,   801,   802,    77,   863,    12,    13,    14,
+    67,    59,   759,    63,    76,    72,   812,   874,    17,    77,
+   767,    76,    76,   812,    77,    82,     9,   884,    77,    76,
+   812,   850,    77,   627,   628,   629,    77,    59,   632,   633,
+    54,    55,    81,    57,    58,    59,    60,    77,   802,   906,
+    76,     4,     5,     6,     7,   802,    76,     0,    77,    12,
+    13,    14,    76,   657,    77,   812,     0,   415,   241,   884,
+   833,   928,   325,   246,   247,    28,   662,   934,   251,   252,
+   253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+    87,   643,    45,   414,   282,   689,   690,   691,   747,   812,
+   477,   848,   650,   850,     5,     6,     7,   679,   350,   652,
+   469,    12,    13,    14,    67,   358,   583,   475,   884,    72,
+     1,   662,     3,     4,     5,     6,     7,     8,     9,    30,
+    11,    12,    13,    14,    15,   729,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+    31,   664,    33,    34,   884,   929,   931,   409,    25,    40,
+   555,   421,    43,   421,    45,   621,   542,    48,    49,    50,
+   767,   764,   535,    54,    55,   517,   301,   759,    59,    60,
+   512,   683,   776,    64,   417,    66,    67,   589,   417,   371,
+    71,    72,    -1,    -1,    75,    -1,    77,    78,    79,    80,
+    -1,    82,    45,    46,    47,    48,    49,    50,    51,    52,
+   383,   384,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,     1,    -1,    -1,     4,     5,     6,     7,    -1,    -1,
+    10,    -1,    12,    13,    14,   829,    41,    42,    43,    44,
+    45,    46,    47,    48,    49,    50,    51,    52,    28,    -1,
+    -1,   845,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
+     5,     6,     7,     8,     9,    45,    11,    12,    13,    14,
+    15,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,    67,    33,    34,
+    -1,    -1,    72,    -1,    -1,    40,    -1,    -1,    43,    -1,
+    45,   474,    82,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
+   493,    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,
+    75,    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,
+     1,    -1,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
+    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    54,    55,    43,    57,    58,    59,    60,    48,    49,    50,
+    -1,    -1,   565,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,   585,    -1,    75,    -1,    77,    78,    79,    80,
+     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
+    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,   650,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
+    -1,    82,    -1,    -1,    -1,    -1,     1,   680,    -1,     4,
+     5,     6,     7,    -1,   687,    -1,    -1,    12,    13,    14,
+    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+   703,    -1,    27,    28,    -1,    30,    -1,    -1,    -1,    -1,
+    -1,    36,    46,    47,    48,    49,    50,    51,    52,    -1,
+    45,    -1,   725,    -1,    -1,   728,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
+    -1,   744,    67,    -1,   747,    -1,   749,    72,    -1,    -1,
+    -1,    -1,    77,    -1,    -1,    -1,    81,    82,     4,    -1,
+     6,     7,    -1,   766,    -1,    -1,    12,    13,    14,    -1,
+     1,    -1,     3,     4,   777,    -1,    -1,     8,     9,    -1,
+    11,    -1,    28,    -1,    15,   788,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    -1,    29,    45,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,   814,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    67,    -1,    54,    55,    -1,    72,    -1,    59,    60,
+    -1,    77,    78,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
+     1,    82,     3,     4,    -1,     6,     7,     8,     9,    -1,
+    11,    12,    13,    14,    -1,    -1,   869,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
+     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    37,
+    11,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+    48,    49,    50,    51,    52,    -1,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,    80,
+     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
+    11,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+    49,    50,    51,    52,    -1,    -1,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,    80,
+     1,    82,     3,    -1,    -1,    -1,    -1,     8,     9,    -1,
+    11,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,
     31,    -1,    33,    34,    -1,    36,    -1,    -1,    -1,    40,
-   699,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
     -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,
-    -1,   720,    -1,    64,   723,    66,    -1,    -1,    -1,    -1,
-    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
-   739,    82,    -1,   742,    -1,   744,    -1,     1,    -1,     3,
-     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,
-    -1,    15,   761,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,   773,    29,    -1,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,   784,    40,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
-    64,   810,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
-    -1,    75,    -1,    77,    -1,    79,    80,     1,    82,     3,
-     4,    -1,     6,     7,     8,     9,    -1,    11,    12,    13,
-    14,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    28,    29,    -1,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,   866,    -1,    43,
-    -1,    45,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
-    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
-    -1,    75,    -1,    -1,    -1,    79,    80,     1,    82,     3,
-     4,    -1,    -1,    -1,     8,     9,    37,    11,    39,    40,
-    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-    51,    52,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,    -1,    58,    59,    60,    -1,    -1,    -1,
-    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
-    -1,    75,    -1,    -1,    78,    79,    80,     1,    82,     3,
-     4,    -1,    -1,    -1,     8,     9,    -1,    11,    41,    42,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,    -1,    58,    59,    60,    -1,    -1,    -1,
-    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
-    -1,    75,    -1,    -1,    78,    79,    80,     1,    82,     3,
-    -1,    -1,    -1,    -1,     8,     9,    -1,    11,    42,    43,
-    44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
-    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
-    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,
-    -1,    75,     1,    -1,     3,    79,    80,    -1,    82,     8,
-     9,    -1,    11,     1,    -1,    -1,     4,    -1,     6,     7,
-    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    28,    40,    -1,    31,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    45,    -1,    -1,
-    59,    60,    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,
-    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    67,
-    79,    80,     1,    82,    72,     4,     5,     6,     7,    77,
-    78,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
-    -1,     1,    -1,    -1,     4,     5,     6,     7,    27,    28,
-    -1,    30,    12,    13,    14,    -1,    -1,    36,    45,    46,
-    47,    48,    49,    50,    51,    52,    45,    27,    28,    -1,
-    30,    -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
-    59,    60,    -1,    -1,    -1,    45,    -1,    -1,    67,    -1,
-    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    77,    59,
-    60,    -1,    81,    82,    -1,    -1,    -1,    67,    -1,    -1,
-    -1,    -1,    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,
-     1,    81,    82,     4,     5,     6,     7,    -1,    -1,    -1,
-    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,     1,
-    -1,    -1,     4,     5,     6,     7,    27,    28,    -1,    30,
-    12,    13,    14,    -1,    -1,    36,    46,    47,    48,    49,
-    50,    51,    52,    -1,    45,    -1,    28,     1,    30,    -1,
-     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
-    14,    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,    -1,
-    -1,    72,    -1,    -1,    28,    -1,    77,    -1,    -1,    -1,
-    81,    82,    -1,    -1,    -1,    67,    -1,    -1,    -1,     3,
-    72,    45,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,
-    82,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,    -1,    -1,    67,    -1,    29,    -1,    31,    72,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    82,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,    -1,    -1,    59,    60,    -1,     3,    -1,
-    64,    -1,    66,     8,     9,    -1,    11,    71,    -1,    -1,
-    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,
-    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
-    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,    -1,    59,    60,    -1,     3,    -1,    64,
-    -1,    66,     8,     9,    -1,    11,    71,    -1,    -1,    -1,
-    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,    -1,
+    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,
+    71,    -1,    -1,    -1,    75,     1,    -1,     3,    79,    80,
+    -1,    82,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
     -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
     -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,    -1,    -1,    59,    60,    -1,     3,    -1,    64,    -1,
-    66,     8,     9,    -1,    11,    71,    -1,    -1,    -1,    75,
-    -1,    -1,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,
-    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
+    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
+     1,    -1,     3,    79,    80,    -1,    82,     8,     9,    -1,
+    11,     1,    -1,    -1,     4,    -1,     6,     7,    -1,    -1,
+    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    28,    40,
+    -1,    31,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    45,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,
+    71,    -1,    -1,    -1,    75,    -1,    -1,    67,    79,    80,
+     1,    82,    72,     4,     5,     6,     7,    77,    78,    -1,
+    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,     1,
+    -1,    -1,     4,     5,     6,     7,    27,    28,    -1,    30,
+    12,    13,    14,    -1,    -1,    36,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    45,    27,    28,    -1,    30,    -1,
+    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,    -1,
+    -1,    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,
+    81,    82,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
+    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,     1,    81,
+    82,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
+    13,    14,    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,
+     4,     5,     6,     7,    -1,    28,    -1,    30,    12,    13,
+    14,     4,    -1,     6,     7,    -1,    -1,    -1,    -1,    12,
+    13,    14,    45,    -1,    28,     3,    30,    -1,    -1,    -1,
+     8,     9,    -1,    11,    -1,    28,    -1,    30,    -1,    -1,
+    -1,    45,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
+    -1,    29,    45,    31,    -1,    33,    34,    50,    -1,    82,
+    -1,    -1,    40,    67,    -1,    43,    59,    60,    72,    -1,
+    48,    49,    50,    -1,    67,    -1,    54,    55,    82,    72,
+    -1,    59,    60,    -1,     3,    -1,    64,    -1,    66,     8,
+     9,    -1,    11,    71,    -1,    -1,    -1,    75,    -1,    -1,
+    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,    -1,
+    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
+    59,    60,    -1,     3,    -1,    64,    -1,    66,     8,     9,
+    -1,    11,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,
+    79,    80,    -1,    -1,    83,    -1,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,     3,    -1,    64,    -1,    66,     8,     9,    -1,
+    11,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,
+    80,    -1,    -1,    83,    -1,    -1,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,     3,    -1,    64,    -1,    66,     8,     9,    -1,    11,
+    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
+    -1,    -1,    83,    -1,    -1,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
+    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,
+    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,
+    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,
+    -1,    83,     3,     4,     5,     6,     7,     8,     9,    -1,
+    11,    12,    13,    14,    15,    -1,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
+    -1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
+    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,
+    -1,     8,     9,    64,    11,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
+    -1,    82,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
     -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
     -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    -1,    59,    60,    -1,     3,    -1,    64,    -1,    66,
-     8,     9,    -1,    11,    71,    -1,    -1,    -1,    75,    -1,
-    -1,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,
-    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
-    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
-    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    -1,
-    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
-    -1,    79,    80,    -1,    -1,    83,     3,     4,     5,     6,
-     7,     8,     9,    -1,    11,    12,    13,    14,    15,    -1,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    30,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    45,    -1,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
     -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,
-    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,
-    77,    -1,    79,    80,    -1,    82,     3,     4,    -1,    -1,
-    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    15,    -1,
+    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
+    -1,    -1,    79,    80,    -1,    82,     3,     4,    -1,     6,
+     7,    -1,    -1,    -1,    11,    12,    13,    14,    15,    16,
     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+    27,    28,    29,    -1,     3,     4,     5,     6,     7,     8,
+     9,    38,    11,    12,    13,    14,     4,     5,     6,     7,
+    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    28,
+    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    28,    40,    30,    -1,    43,    72,    45,    -1,    -1,    48,
+    49,    50,    -1,    -1,    81,    54,    55,    45,    -1,    -1,
+    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,
+    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    67,
+    79,    80,     3,     4,    72,     6,     7,     8,     9,    77,
+    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,
+    -1,     8,     9,    64,    11,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
+    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
     -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
     -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
      3,    -1,    59,    60,    -1,     8,     9,    64,    11,    66,
-    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,
-    77,    -1,    79,    80,    -1,    82,    29,    -1,    31,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
-    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,
-    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,
-    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    82,
-     3,     4,    -1,     6,     7,    -1,    -1,    -1,    11,    12,
-    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    27,    28,    29,    -1,     3,     4,
-     5,     6,     7,     8,     9,    38,    11,    12,    13,    14,
-     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
-    14,    -1,    -1,    28,    29,    30,    31,    -1,    33,    34,
-    -1,    -1,    -1,    -1,    28,    40,    30,    -1,    43,    72,
-    45,    -1,    -1,    48,    49,    50,    -1,    -1,    81,    54,
-    55,    45,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
-    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,
-    75,    -1,    -1,    67,    79,    80,     3,     4,    72,     6,
-     7,     8,     9,    77,    11,    12,    13,    14,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,
-    -1,    28,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    45,    -1,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-     3,    -1,    59,    60,    -1,     8,     9,    64,    11,    66,
-    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,
+    67,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
     -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,
     33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
     43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
     -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,     8,
-     9,    64,    11,    66,    67,    -1,    -1,    -1,    71,    -1,
-    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,
+     9,    64,    11,    66,    -1,    -1,    -1,    -1,    71,    -1,
+    -1,    -1,    75,    -1,    77,    -1,    79,    80,    -1,    -1,
     29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
     -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
     49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,
     59,    60,    -1,     8,     9,    64,    11,    66,    -1,    -1,
-    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    77,    -1,
+    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,
     79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
     -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
     -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
@@ -1581,48 +1606,40 @@ static const short yycheck[] = {    56,
     -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
     -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
     -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-     3,    -1,    59,    60,    -1,     8,     9,    64,    11,    66,
+    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,
     -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
-    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
-    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,
-    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,
-    -1,    -1,    75,    -1,    -1,     1,    79,    80,     4,    -1,
-     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,
-    -1,    -1,    -1,     1,    -1,    -1,     4,    -1,     6,     7,
-    -1,    -1,    28,    -1,    12,    13,    14,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,
-    28,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,
-     4,     5,     6,     7,    -1,    -1,    -1,    45,    12,    13,
-    14,    67,    68,    69,    70,    -1,    72,    -1,    -1,    -1,
-    -1,    77,    78,    27,    28,    -1,    30,    31,    -1,    67,
-    68,    69,    70,    -1,    72,    -1,    -1,    -1,    -1,    77,
-    78,    45,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    59,    -1,    61,    62,    63,
-    -1,    -1,    -1,    67,    -1,    -1,    -1,    71,    72,    73,
-    74,    -1,     1,    77,     3,     4,     5,     6,     7,    -1,
-    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
-     1,    30,     3,     4,     5,     6,     7,    -1,    -1,    -1,
-    -1,    12,    13,    14,    -1,    -1,    45,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    -1,    -1,    28,     1,    30,
-    59,     4,     5,     6,     7,    -1,    -1,    10,    67,    12,
-    13,    14,    -1,    72,    45,    -1,    -1,    -1,    77,    50,
-    -1,     4,     5,     6,     7,    28,    -1,    30,    59,    12,
-    13,    14,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
-    -1,    72,    45,    -1,    -1,    28,    77,    30,    -1,    -1,
-     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
-    14,    -1,    45,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    -1,    -1,    -1,    76,    28,    -1,    30,    -1,     4,     5,
-     6,     7,    -1,    -1,    67,    -1,    12,    13,    14,    72,
-    -1,    45,    -1,    -1,    77,     1,    -1,    -1,     4,    -1,
-     6,     7,    28,    -1,    -1,    -1,    12,    13,    14,    -1,
-    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    45,
-    -1,    -1,    28,    77,    -1,    31,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,
-    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
-    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
+    -1,     1,    79,    80,     4,    -1,     6,     7,    -1,    -1,
+    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,     1,
+    -1,    -1,     4,    -1,     6,     7,    -1,    -1,    28,    -1,
+    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    45,    28,    -1,    -1,    -1,
+    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
+    -1,    -1,    -1,    45,    12,    13,    14,    67,    68,    69,
+    70,    -1,    72,    -1,    -1,    -1,    -1,    77,    78,    27,
+    28,    -1,    30,    31,    -1,    67,    68,    69,    70,    -1,
+    72,    -1,    -1,    -1,    -1,    77,    78,    45,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    59,    -1,    61,    62,    63,    -1,    -1,    -1,    67,
+    -1,    -1,    -1,    71,    72,    73,    74,    -1,     1,    77,
+     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
+    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    28,     1,    30,     3,     4,
+     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    -1,    -1,    45,    -1,    -1,    48,    49,    50,    -1,    -1,
+    -1,    -1,    -1,    28,    -1,    30,    59,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
+    45,    -1,    -1,    -1,    77,    50,     1,    -1,     3,     4,
+     5,     6,     7,    -1,    59,    10,    -1,    12,    13,    14,
+    -1,    -1,    67,    -1,    -1,     1,    -1,    72,     4,     5,
+     6,     7,    77,    28,    10,    30,    12,    13,    14,     4,
+     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    45,    -1,    28,    -1,    30,     1,    -1,    -1,     4,    -1,
+     6,     7,    -1,    28,    -1,    30,    12,    13,    14,    45,
+    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
+    45,    76,    28,    -1,    -1,    31,    -1,    -1,    -1,    -1,
+    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    45,
+    76,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
+    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,     3,
      4,    67,     6,     7,    -1,    -1,    72,    11,    12,    13,
     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     24,    25,    26,    27,    28,    29,    -1,     3,     4,    -1,
@@ -1639,7 +1656,7 @@ static const short yycheck[] = {    56,
     13,    14,    72,     4,     5,     6,     7,    -1,    -1,    10,
     -1,    12,    13,    14,    -1,    28,    -1,    30,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,
-    72,    -1,    45,     4,     5,     6,     7,     4,     5,     6,
+    72,    -1,    45,     4,    -1,     6,     7,     4,     5,     6,
      7,    12,    13,    14,    45,    12,    13,    14,    -1,    -1,
     -1,    -1,    -1,    -1,    67,    -1,    -1,    28,    -1,    72,
     -1,    28,    -1,    30,    -1,    -1,    67,     4,    -1,     6,
@@ -3608,22 +3625,26 @@ case 309:
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
 case 310:
-#line 1636 "objc-parse.y"
+#line 1629 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 311:
+#line 1638 "objc-parse.y"
 {
                  if (pedantic && yyvsp[0].ends_in_label)
                    pedwarn ("ANSI C forbids label at end of compound statement");
                ;
     break;}
-case 312:
-#line 1645 "objc-parse.y"
-{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
-    break;}
 case 313:
 #line 1647 "objc-parse.y"
+{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
+    break;}
+case 314:
+#line 1649 "objc-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 317:
-#line 1659 "objc-parse.y"
+case 318:
+#line 1661 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  pushlevel (0);
                  clear_last_expr ();
@@ -3633,13 +3654,13 @@ case 317:
                    add_objc_decls ();
                ;
     break;}
-case 319:
-#line 1674 "objc-parse.y"
+case 320:
+#line 1676 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
-case 322:
-#line 1685 "objc-parse.y"
+case 323:
+#line 1687 "objc-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3649,20 +3670,20 @@ case 322:
                    }
                ;
     break;}
-case 323:
-#line 1699 "objc-parse.y"
+case 324:
+#line 1701 "objc-parse.y"
 {;
     break;}
-case 325:
-#line 1703 "objc-parse.y"
-{ compstmt_count++; ;
-    break;}
 case 326:
-#line 1706 "objc-parse.y"
-{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
+#line 1705 "objc-parse.y"
+{ compstmt_count++; ;
     break;}
 case 327:
 #line 1708 "objc-parse.y"
+{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
+    break;}
+case 328:
+#line 1710 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  yyval.ttype = poplevel (1, 1, 0);
@@ -3671,8 +3692,8 @@ case 327:
                  else
                    pop_momentary (); ;
     break;}
-case 328:
-#line 1716 "objc-parse.y"
+case 329:
+#line 1718 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3681,8 +3702,8 @@ case 328:
                  else
                    pop_momentary (); ;
     break;}
-case 329:
-#line 1724 "objc-parse.y"
+case 330:
+#line 1726 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3691,8 +3712,8 @@ case 329:
                  else
                    pop_momentary (); ;
     break;}
-case 332:
-#line 1744 "objc-parse.y"
+case 333:
+#line 1746 "objc-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
                                       compstmt_count);
@@ -3701,8 +3722,8 @@ case 332:
                  if_stmt_line = yyvsp[-4].lineno;
                  position_after_white_space (); ;
     break;}
-case 333:
-#line 1758 "objc-parse.y"
+case 334:
+#line 1760 "objc-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3711,44 +3732,44 @@ case 333:
                  expand_start_loop_continue_elsewhere (1);
                  position_after_white_space (); ;
     break;}
-case 334:
-#line 1766 "objc-parse.y"
-{ expand_loop_continue_here (); ;
-    break;}
 case 335:
-#line 1770 "objc-parse.y"
-{ yyval.filename = input_filename; ;
+#line 1768 "objc-parse.y"
+{ expand_loop_continue_here (); ;
     break;}
 case 336:
-#line 1774 "objc-parse.y"
-{ yyval.lineno = lineno; ;
+#line 1772 "objc-parse.y"
+{ yyval.filename = input_filename; ;
     break;}
 case 337:
-#line 1779 "objc-parse.y"
-{ ;
+#line 1776 "objc-parse.y"
+{ yyval.lineno = lineno; ;
     break;}
 case 338:
-#line 1784 "objc-parse.y"
+#line 1781 "objc-parse.y"
 { ;
     break;}
 case 339:
-#line 1789 "objc-parse.y"
-{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
+#line 1786 "objc-parse.y"
+{ ;
     break;}
 case 340:
-#line 1794 "objc-parse.y"
-{ yyval.ends_in_label = 0; ;
+#line 1791 "objc-parse.y"
+{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 341:
 #line 1796 "objc-parse.y"
-{ yyval.ends_in_label = 1; ;
+{ yyval.ends_in_label = 0; ;
     break;}
 case 342:
-#line 1802 "objc-parse.y"
+#line 1798 "objc-parse.y"
+{ yyval.ends_in_label = 1; ;
+    break;}
+case 343:
+#line 1804 "objc-parse.y"
 { stmt_count++; ;
     break;}
-case 344:
-#line 1805 "objc-parse.y"
+case 345:
+#line 1807 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 /* It appears that this should not be done--that a non-lvalue array
@@ -3766,20 +3787,20 @@ case 344:
                  iterator_expand (yyvsp[-1].ttype);
                  clear_momentary (); ;
     break;}
-case 345:
-#line 1822 "objc-parse.y"
+case 346:
+#line 1824 "objc-parse.y"
 { c_expand_start_else ();
                  yyvsp[-1].itype = stmt_count;
                  position_after_white_space (); ;
     break;}
-case 346:
-#line 1826 "objc-parse.y"
+case 347:
+#line 1828 "objc-parse.y"
 { c_expand_end_cond ();
                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
                    warning ("empty body in an else-statement"); ;
     break;}
-case 347:
-#line 1830 "objc-parse.y"
+case 348:
+#line 1832 "objc-parse.y"
 { c_expand_end_cond ();
                  /* This warning is here instead of in simple_if, because we
                     do not want a warning if an empty if is followed by an
@@ -3789,12 +3810,12 @@ case 347:
                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                                                "empty body in an if-statement"); ;
     break;}
-case 348:
-#line 1842 "objc-parse.y"
-{ c_expand_end_cond (); ;
-    break;}
 case 349:
 #line 1844 "objc-parse.y"
+{ c_expand_end_cond (); ;
+    break;}
+case 350:
+#line 1846 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                  /* The emit_nop used to come before emit_line_note,
@@ -3805,8 +3826,8 @@ case 349:
                     We will see.  --rms, July 15, 1991.  */
                  emit_nop (); ;
     break;}
-case 350:
-#line 1854 "objc-parse.y"
+case 351:
+#line 1856 "objc-parse.y"
 { /* Don't start the loop till we have succeeded
                     in parsing the end test.  This is to make sure
                     that we end every loop we start.  */
@@ -3816,25 +3837,25 @@ case 350:
                                             truthvalue_conversion (yyvsp[-1].ttype));
                  position_after_white_space (); ;
     break;}
-case 351:
-#line 1863 "objc-parse.y"
+case 352:
+#line 1865 "objc-parse.y"
 { expand_end_loop (); ;
     break;}
-case 352:
-#line 1866 "objc-parse.y"
+case 353:
+#line 1868 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_exit_loop_if_false (NULL_PTR,
                                             truthvalue_conversion (yyvsp[-2].ttype));
                  expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 353:
-#line 1873 "objc-parse.y"
+case 354:
+#line 1875 "objc-parse.y"
 { expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 354:
-#line 1877 "objc-parse.y"
+case 355:
+#line 1879 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  /* See comment in `while' alternative, above.  */
@@ -3846,13 +3867,13 @@ case 354:
                     fn without calling expand_end_loop.  */
                ;
     break;}
-case 355:
-#line 1889 "objc-parse.y"
+case 356:
+#line 1891 "objc-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
-case 356:
-#line 1892 "objc-parse.y"
+case 357:
+#line 1894 "objc-parse.y"
 { 
                  /* Start the loop.  Doing this after parsing
                     all the expressions ensures we will end the loop.  */
@@ -3869,8 +3890,8 @@ case 356:
                  yyvsp[-2].filename = input_filename;
                  position_after_white_space (); ;
     break;}
-case 357:
-#line 1908 "objc-parse.y"
+case 358:
+#line 1910 "objc-parse.y"
 { /* Emit the increment expression, with a line number.  */
                  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
                  expand_loop_continue_here ();
@@ -3882,8 +3903,8 @@ case 357:
                    pop_momentary ();
                  expand_end_loop (); ;
     break;}
-case 358:
-#line 1919 "objc-parse.y"
+case 359:
+#line 1921 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_case (yyvsp[-1].ttype);
@@ -3892,42 +3913,42 @@ case 358:
                  push_momentary ();
                  position_after_white_space (); ;
     break;}
-case 359:
-#line 1927 "objc-parse.y"
+case 360:
+#line 1929 "objc-parse.y"
 { expand_end_case (yyvsp[-3].ttype);
                  if (yychar == CONSTANT || yychar == STRING)
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); ;
     break;}
-case 360:
-#line 1933 "objc-parse.y"
+case 361:
+#line 1935 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  if ( ! expand_exit_something ())
                    error ("break statement not within loop or switch"); ;
     break;}
-case 361:
-#line 1938 "objc-parse.y"
+case 362:
+#line 1940 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  if (! expand_continue_loop (NULL_PTR))
                    error ("continue statement not within a loop"); ;
     break;}
-case 362:
-#line 1943 "objc-parse.y"
+case 363:
+#line 1945 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  c_expand_return (NULL_TREE); ;
     break;}
-case 363:
-#line 1947 "objc-parse.y"
+case 364:
+#line 1949 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                  c_expand_return (yyvsp[-1].ttype); ;
     break;}
-case 364:
-#line 1951 "objc-parse.y"
+case 365:
+#line 1953 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3938,32 +3959,32 @@ case 364:
                  else
                    error ("argument of `asm' is not a constant string"); ;
     break;}
-case 365:
-#line 1962 "objc-parse.y"
+case 366:
+#line 1964 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
                                         yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 366:
-#line 1969 "objc-parse.y"
+case 367:
+#line 1971 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
                                         yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 367:
-#line 1977 "objc-parse.y"
+case 368:
+#line 1979 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
                                         yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 368:
-#line 1983 "objc-parse.y"
+case 369:
+#line 1985 "objc-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3975,16 +3996,16 @@ case 368:
                    }
                ;
     break;}
-case 369:
-#line 1994 "objc-parse.y"
+case 370:
+#line 1996 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids `goto *expr;'");
                  stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
-case 372:
-#line 2009 "objc-parse.y"
+case 373:
+#line 2011 "objc-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -4006,15 +4027,15 @@ case 372:
              }
          ;
     break;}
-case 373:
-#line 2030 "objc-parse.y"
+case 374:
+#line 2032 "objc-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
-case 374:
-#line 2065 "objc-parse.y"
+case 375:
+#line 2067 "objc-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
                  register tree label
                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -4046,8 +4067,8 @@ case 374:
                    }
                  position_after_white_space (); ;
     break;}
-case 375:
-#line 2096 "objc-parse.y"
+case 376:
+#line 2098 "objc-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
                  register tree value2 = check_case_value (yyvsp[-1].ttype);
                  register tree label
@@ -4079,8 +4100,8 @@ case 375:
                    }
                  position_after_white_space (); ;
     break;}
-case 376:
-#line 2127 "objc-parse.y"
+case 377:
+#line 2129 "objc-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -4096,8 +4117,8 @@ case 376:
                    }
                  position_after_white_space (); ;
     break;}
-case 377:
-#line 2142 "objc-parse.y"
+case 378:
+#line 2144 "objc-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -4108,53 +4129,53 @@ case 377:
                    }
                  position_after_white_space (); ;
     break;}
-case 378:
-#line 2157 "objc-parse.y"
+case 379:
+#line 2159 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 379:
-#line 2160 "objc-parse.y"
+case 380:
+#line 2162 "objc-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
-case 380:
-#line 2165 "objc-parse.y"
+case 381:
+#line 2167 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 382:
-#line 2172 "objc-parse.y"
+case 383:
+#line 2174 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 385:
-#line 2179 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
-    break;}
 case 386:
-#line 2184 "objc-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 2181 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 387:
-#line 2189 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
+#line 2186 "objc-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 388:
 #line 2191 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
+{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
 case 389:
-#line 2197 "objc-parse.y"
+#line 2193 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
+    break;}
+case 390:
+#line 2199 "objc-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
-case 390:
-#line 2201 "objc-parse.y"
+case 391:
+#line 2203 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 392:
-#line 2209 "objc-parse.y"
+case 393:
+#line 2211 "objc-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -4163,20 +4184,20 @@ case 392:
                    TREE_ASM_WRITTEN (parm) = 1;
                  clear_parm_order (); ;
     break;}
-case 393:
-#line 2217 "objc-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
-    break;}
 case 394:
 #line 2219 "objc-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 395:
-#line 2225 "objc-parse.y"
-{ yyval.ttype = get_parm_info (0); ;
+#line 2221 "objc-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
 case 396:
 #line 2227 "objc-parse.y"
+{ yyval.ttype = get_parm_info (0); ;
+    break;}
+case 397:
+#line 2229 "objc-parse.y"
 { yyval.ttype = get_parm_info (0);
                  /* Gcc used to allow this as an extension.  However, it does
                     not work for all targets, and thus has been disabled.
@@ -4187,24 +4208,24 @@ case 396:
                  error ("ANSI C requires a named argument before `...'");
                ;
     break;}
-case 397:
-#line 2237 "objc-parse.y"
-{ yyval.ttype = get_parm_info (1); ;
-    break;}
 case 398:
 #line 2239 "objc-parse.y"
-{ yyval.ttype = get_parm_info (0); ;
+{ yyval.ttype = get_parm_info (1); ;
     break;}
 case 399:
-#line 2244 "objc-parse.y"
-{ push_parm_decl (yyvsp[0].ttype); ;
+#line 2241 "objc-parse.y"
+{ yyval.ttype = get_parm_info (0); ;
     break;}
 case 400:
 #line 2246 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 401:
-#line 2253 "objc-parse.y"
+#line 2248 "objc-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 402:
+#line 2255 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4214,8 +4235,8 @@ case 401:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 402:
-#line 2262 "objc-parse.y"
+case 403:
+#line 2264 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4225,8 +4246,8 @@ case 402:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 403:
-#line 2271 "objc-parse.y"
+case 404:
+#line 2273 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4236,8 +4257,8 @@ case 403:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 404:
-#line 2280 "objc-parse.y"
+case 405:
+#line 2282 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4247,8 +4268,8 @@ case 404:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 405:
-#line 2290 "objc-parse.y"
+case 406:
+#line 2292 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4258,49 +4279,49 @@ case 405:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 406:
-#line 2304 "objc-parse.y"
+case 407:
+#line 2306 "objc-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
-case 407:
-#line 2308 "objc-parse.y"
+case 408:
+#line 2310 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 409:
-#line 2316 "objc-parse.y"
+case 410:
+#line 2318 "objc-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
                      error ("`...' in old-style identifier list");
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 410:
-#line 2326 "objc-parse.y"
-{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
-    break;}
 case 411:
 #line 2328 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 412:
-#line 2334 "objc-parse.y"
-{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
+#line 2330 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 413:
 #line 2336 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 414:
-#line 2341 "objc-parse.y"
+#line 2338 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 415:
+#line 2343 "objc-parse.y"
 { yyval.itype = pedantic;
                  pedantic = 0; ;
     break;}
-case 420:
-#line 2354 "objc-parse.y"
+case 421:
+#line 2356 "objc-parse.y"
 {
                  if (objc_implementation_context)
                     {
@@ -4312,115 +4333,115 @@ case 420:
                    warning ("`@end' must appear in an implementation context");
                ;
     break;}
-case 421:
-#line 2369 "objc-parse.y"
-{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
-    break;}
 case 422:
 #line 2371 "objc-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 423:
-#line 2376 "objc-parse.y"
+#line 2373 "objc-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
+    break;}
+case 424:
+#line 2378 "objc-parse.y"
 {
                  objc_declare_class (yyvsp[-1].ttype);
                ;
     break;}
-case 424:
-#line 2382 "objc-parse.y"
+case 425:
+#line 2384 "objc-parse.y"
 {
                  objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
                ;
     break;}
-case 425:
-#line 2388 "objc-parse.y"
+case 426:
+#line 2390 "objc-parse.y"
 {
                  objc_interface_context = objc_ivar_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
                   objc_public_flag = 0;
                ;
     break;}
-case 426:
-#line 2394 "objc-parse.y"
+case 427:
+#line 2396 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
                ;
     break;}
-case 427:
-#line 2399 "objc-parse.y"
+case 428:
+#line 2401 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 428:
-#line 2405 "objc-parse.y"
+case 429:
+#line 2407 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
                   continue_class (objc_interface_context);
                ;
     break;}
-case 429:
-#line 2412 "objc-parse.y"
+case 430:
+#line 2414 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 430:
-#line 2418 "objc-parse.y"
+case 431:
+#line 2420 "objc-parse.y"
 {
                  objc_interface_context = objc_ivar_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
                   objc_public_flag = 0;
                ;
     break;}
-case 431:
-#line 2424 "objc-parse.y"
+case 432:
+#line 2426 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
                ;
     break;}
-case 432:
-#line 2429 "objc-parse.y"
+case 433:
+#line 2431 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 433:
-#line 2435 "objc-parse.y"
+case 434:
+#line 2437 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                   continue_class (objc_interface_context);
                ;
     break;}
-case 434:
-#line 2442 "objc-parse.y"
+case 435:
+#line 2444 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 435:
-#line 2448 "objc-parse.y"
+case 436:
+#line 2450 "objc-parse.y"
 {
                  objc_implementation_context = objc_ivar_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
                   objc_public_flag = 0;
                ;
     break;}
-case 436:
-#line 2454 "objc-parse.y"
+case 437:
+#line 2456 "objc-parse.y"
 {
                   objc_ivar_chain
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 437:
-#line 2460 "objc-parse.y"
+case 438:
+#line 2462 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
@@ -4428,23 +4449,23 @@ case 437:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 438:
-#line 2468 "objc-parse.y"
+case 439:
+#line 2470 "objc-parse.y"
 {
                  objc_implementation_context = objc_ivar_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
                   objc_public_flag = 0;
                ;
     break;}
-case 439:
-#line 2474 "objc-parse.y"
+case 440:
+#line 2476 "objc-parse.y"
 {
                   objc_ivar_chain
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 440:
-#line 2480 "objc-parse.y"
+case 441:
+#line 2482 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
@@ -4452,23 +4473,23 @@ case 440:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 441:
-#line 2488 "objc-parse.y"
+case 442:
+#line 2490 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                   continue_class (objc_interface_context);
                ;
     break;}
-case 442:
-#line 2495 "objc-parse.y"
+case 443:
+#line 2497 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 443:
-#line 2501 "objc-parse.y"
+case 444:
+#line 2503 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
@@ -4476,30 +4497,30 @@ case 443:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 444:
-#line 2511 "objc-parse.y"
+case 445:
+#line 2513 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  objc_interface_context
                    = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 445:
-#line 2517 "objc-parse.y"
+case 446:
+#line 2519 "objc-parse.y"
 {
                  forget_protocol_qualifiers();
                  finish_protocol(objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 446:
-#line 2526 "objc-parse.y"
+case 447:
+#line 2528 "objc-parse.y"
 {
                  yyval.ttype = NULL_TREE;
                ;
     break;}
-case 448:
-#line 2534 "objc-parse.y"
+case 449:
+#line 2536 "objc-parse.y"
 {
                  if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
                    yyval.ttype = yyvsp[-1].ttype;
@@ -4507,57 +4528,57 @@ case 448:
                    YYERROR1;
                ;
     break;}
-case 451:
-#line 2548 "objc-parse.y"
+case 452:
+#line 2550 "objc-parse.y"
 { objc_public_flag = 2; ;
     break;}
-case 452:
-#line 2549 "objc-parse.y"
+case 453:
+#line 2551 "objc-parse.y"
 { objc_public_flag = 0; ;
     break;}
-case 453:
-#line 2550 "objc-parse.y"
+case 454:
+#line 2552 "objc-parse.y"
 { objc_public_flag = 1; ;
     break;}
-case 454:
-#line 2555 "objc-parse.y"
+case 455:
+#line 2557 "objc-parse.y"
 {
                   yyval.ttype = NULL_TREE;
                 ;
     break;}
-case 456:
-#line 2560 "objc-parse.y"
+case 457:
+#line 2562 "objc-parse.y"
 {
                   if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified");
                 ;
     break;}
-case 457:
-#line 2578 "objc-parse.y"
+case 458:
+#line 2580 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 458:
-#line 2584 "objc-parse.y"
+case 459:
+#line 2586 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 459:
-#line 2590 "objc-parse.y"
+case 460:
+#line 2592 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 460:
-#line 2595 "objc-parse.y"
+case 461:
+#line 2597 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 463:
-#line 2602 "objc-parse.y"
+case 464:
+#line 2604 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4565,16 +4586,16 @@ case 463:
                                              NULL_TREE);
                 ;
     break;}
-case 464:
-#line 2609 "objc-parse.y"
+case 465:
+#line 2611 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
                                              yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
                 ;
     break;}
-case 465:
-#line 2615 "objc-parse.y"
+case 466:
+#line 2617 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4582,8 +4603,8 @@ case 465:
                                              current_declspecs, yyvsp[0].ttype);
                 ;
     break;}
-case 466:
-#line 2625 "objc-parse.y"
+case 467:
+#line 2627 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  if (objc_implementation_context)
@@ -4592,8 +4613,8 @@ case 466:
                    fatal ("method definition not in class context");
                ;
     break;}
-case 467:
-#line 2633 "objc-parse.y"
+case 468:
+#line 2635 "objc-parse.y"
 {
                  forget_protocol_qualifiers ();
                  add_class_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4601,21 +4622,21 @@ case 467:
                  objc_method_context = yyvsp[0].ttype;
                ;
     break;}
-case 468:
-#line 2640 "objc-parse.y"
+case 469:
+#line 2642 "objc-parse.y"
 {
                  continue_method_def ();
                ;
     break;}
-case 469:
-#line 2644 "objc-parse.y"
+case 470:
+#line 2646 "objc-parse.y"
 {
                  finish_method_def ();
                  objc_method_context = NULL_TREE;
                ;
     break;}
-case 470:
-#line 2650 "objc-parse.y"
+case 471:
+#line 2652 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  if (objc_implementation_context)
@@ -4624,8 +4645,8 @@ case 470:
                    fatal ("method definition not in class context");
                ;
     break;}
-case 471:
-#line 2658 "objc-parse.y"
+case 472:
+#line 2660 "objc-parse.y"
 {
                  forget_protocol_qualifiers ();
                  add_instance_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4633,268 +4654,268 @@ case 471:
                  objc_method_context = yyvsp[0].ttype;
                ;
     break;}
-case 472:
-#line 2665 "objc-parse.y"
+case 473:
+#line 2667 "objc-parse.y"
 {
                  continue_method_def ();
                ;
     break;}
-case 473:
-#line 2669 "objc-parse.y"
+case 474:
+#line 2671 "objc-parse.y"
 {
                  finish_method_def ();
                  objc_method_context = NULL_TREE;
                ;
     break;}
-case 475:
-#line 2681 "objc-parse.y"
+case 476:
+#line 2683 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
-case 480:
-#line 2688 "objc-parse.y"
+case 481:
+#line 2690 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
-case 484:
-#line 2698 "objc-parse.y"
+case 485:
+#line 2700 "objc-parse.y"
 {
                  /* Remember protocol qualifiers in prototypes.  */
                  remember_protocol_qualifiers ();
                  objc_inherit_code = CLASS_METHOD_DECL;
                ;
     break;}
-case 485:
-#line 2704 "objc-parse.y"
+case 486:
+#line 2706 "objc-parse.y"
 {
                  /* Forget protocol qualifiers here.  */
                  forget_protocol_qualifiers ();
                  add_class_method (objc_interface_context, yyvsp[0].ttype);
                ;
     break;}
-case 487:
-#line 2712 "objc-parse.y"
+case 488:
+#line 2714 "objc-parse.y"
 {
                  /* Remember protocol qualifiers in prototypes.  */
                  remember_protocol_qualifiers ();
                  objc_inherit_code = INSTANCE_METHOD_DECL;
                ;
     break;}
-case 488:
-#line 2718 "objc-parse.y"
+case 489:
+#line 2720 "objc-parse.y"
 {
                  /* Forget protocol qualifiers here.  */
                  forget_protocol_qualifiers ();
                  add_instance_method (objc_interface_context, yyvsp[0].ttype);
                ;
     break;}
-case 490:
-#line 2728 "objc-parse.y"
+case 491:
+#line 2730 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
                ;
     break;}
-case 491:
-#line 2733 "objc-parse.y"
+case 492:
+#line 2735 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                ;
     break;}
-case 492:
-#line 2738 "objc-parse.y"
+case 493:
+#line 2740 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 493:
-#line 2743 "objc-parse.y"
+case 494:
+#line 2745 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 502:
-#line 2773 "objc-parse.y"
+case 503:
+#line 2775 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 503:
-#line 2778 "objc-parse.y"
-{ shadow_tag (yyvsp[-1].ttype); ;
-    break;}
 case 504:
 #line 2780 "objc-parse.y"
-{ pedwarn ("empty declaration"); ;
+{ shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 505:
-#line 2785 "objc-parse.y"
-{ push_parm_decl (yyvsp[0].ttype); ;
+#line 2782 "objc-parse.y"
+{ pedwarn ("empty declaration"); ;
     break;}
 case 506:
 #line 2787 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 507:
-#line 2795 "objc-parse.y"
+#line 2789 "objc-parse.y"
+{ push_parm_decl (yyvsp[0].ttype); ;
+    break;}
+case 508:
+#line 2797 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype)); ;
     break;}
-case 508:
-#line 2800 "objc-parse.y"
+case 509:
+#line 2802 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype)); ;
     break;}
-case 509:
-#line 2805 "objc-parse.y"
+case 510:
+#line 2807 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype)); ;
     break;}
-case 510:
-#line 2813 "objc-parse.y"
+case 511:
+#line 2815 "objc-parse.y"
 {
                  yyval.ttype = NULL_TREE;
                ;
     break;}
-case 511:
-#line 2817 "objc-parse.y"
+case 512:
+#line 2819 "objc-parse.y"
 {
                  /* oh what a kludge! */
                  yyval.ttype = (tree)1;
                ;
     break;}
-case 512:
-#line 2822 "objc-parse.y"
+case 513:
+#line 2824 "objc-parse.y"
 {
                  pushlevel (0);
                ;
     break;}
-case 513:
-#line 2826 "objc-parse.y"
+case 514:
+#line 2828 "objc-parse.y"
 {
                  /* returns a tree list node generated by get_parm_info */
                  yyval.ttype = yyvsp[0].ttype;
                  poplevel (0, 0, 0);
                ;
     break;}
-case 516:
-#line 2841 "objc-parse.y"
+case 517:
+#line 2843 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 521:
-#line 2854 "objc-parse.y"
-{ yyval.ttype = get_identifier (token_buffer); ;
-    break;}
 case 522:
-#line 2855 "objc-parse.y"
+#line 2856 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 523:
-#line 2856 "objc-parse.y"
+#line 2857 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 524:
-#line 2857 "objc-parse.y"
+#line 2858 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 525:
-#line 2858 "objc-parse.y"
+#line 2859 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 526:
-#line 2859 "objc-parse.y"
+#line 2860 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 527:
-#line 2860 "objc-parse.y"
+#line 2861 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 528:
-#line 2861 "objc-parse.y"
+#line 2862 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 529:
-#line 2862 "objc-parse.y"
+#line 2863 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 530:
-#line 2863 "objc-parse.y"
+#line 2864 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 531:
-#line 2864 "objc-parse.y"
+#line 2865 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 532:
-#line 2865 "objc-parse.y"
+#line 2866 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 533:
-#line 2866 "objc-parse.y"
+#line 2867 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 534:
-#line 2867 "objc-parse.y"
+#line 2868 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 535:
-#line 2868 "objc-parse.y"
+#line 2869 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 536:
-#line 2869 "objc-parse.y"
+#line 2870 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 537:
-#line 2870 "objc-parse.y"
+#line 2871 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 538:
-#line 2871 "objc-parse.y"
+#line 2872 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 539:
-#line 2872 "objc-parse.y"
+#line 2873 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 540:
+#line 2874 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
-case 542:
-#line 2878 "objc-parse.y"
+case 543:
+#line 2880 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 543:
-#line 2883 "objc-parse.y"
+case 544:
+#line 2885 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 544:
-#line 2888 "objc-parse.y"
+case 545:
+#line 2890 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 545:
-#line 2893 "objc-parse.y"
+case 546:
+#line 2895 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 549:
-#line 2906 "objc-parse.y"
+case 550:
+#line 2908 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 550:
-#line 2914 "objc-parse.y"
+case 551:
+#line 2916 "objc-parse.y"
 {
                  if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
                    /* just return the expr., remove a level of indirection */
@@ -4904,70 +4925,70 @@ case 550:
                    yyval.ttype = yyvsp[0].ttype;
                ;
     break;}
-case 551:
-#line 2926 "objc-parse.y"
+case 552:
+#line 2928 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 552:
-#line 2930 "objc-parse.y"
+case 553:
+#line 2932 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 554:
-#line 2938 "objc-parse.y"
+case 555:
+#line 2940 "objc-parse.y"
 {
                  yyval.ttype = get_class_reference (yyvsp[0].ttype);
                ;
     break;}
-case 555:
-#line 2945 "objc-parse.y"
-{ objc_receiver_context = 1; ;
-    break;}
 case 556:
 #line 2947 "objc-parse.y"
-{ objc_receiver_context = 0; ;
+{ objc_receiver_context = 1; ;
     break;}
 case 557:
 #line 2949 "objc-parse.y"
+{ objc_receiver_context = 0; ;
+    break;}
+case 558:
+#line 2951 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
                ;
     break;}
-case 561:
-#line 2962 "objc-parse.y"
+case 562:
+#line 2964 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 562:
-#line 2969 "objc-parse.y"
+case 563:
+#line 2971 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
                ;
     break;}
-case 563:
-#line 2973 "objc-parse.y"
+case 564:
+#line 2975 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
                ;
     break;}
-case 564:
-#line 2980 "objc-parse.y"
+case 565:
+#line 2982 "objc-parse.y"
 {
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
-case 565:
-#line 2987 "objc-parse.y"
+case 566:
+#line 2989 "objc-parse.y"
 {
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
-case 566:
-#line 2996 "objc-parse.y"
+case 567:
+#line 2998 "objc-parse.y"
 {
                  yyval.ttype = groktypename (yyvsp[-1].ttype);
                ;
@@ -5170,5 +5191,5 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 3001 "objc-parse.y"
+#line 3003 "objc-parse.y"
 
index 8b4684364f3b5969a0b1fc249a52bdc2fec8c27d..1ad13219c4d2902da828914086723cdcb77fda15 100644 (file)
@@ -1625,6 +1625,8 @@ absdcl1:  /* a nonempty absolute declarator */
                { $$ = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); }
        /* ??? It appears we have to support attributes here, however
           using prefix_attributes is wrong.  */
+       | attributes setattrs absdcl1
+               { $$ = $3; }
        ;
 
 /* at least one statement, the first of which parses without error.  */