]> granicus.if.org Git - sudo/commitdiff
make per-command defaults work with sudoedit
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 19 Nov 2004 23:04:14 +0000 (23:04 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 19 Nov 2004 23:04:14 +0000 (23:04 +0000)
toke.c
toke.l

diff --git a/toke.c b/toke.c
index 19c7c6c1f84610987d5726bbfa15e2d7f2da14c9..caa2b656f963deb7b6cb0a4f839cf05ac0e3fe6f 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -291,7 +291,7 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 
 #define YY_NUM_RULES 43
 #define YY_END_OF_BUFFER 44
-static yyconst short int yy_accept[390] =
+static yyconst short int yy_accept[398] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,   44,   33,   39,   38,   37,   42,   33,   26,
@@ -299,42 +299,44 @@ static yyconst short int yy_accept[390] =
        27,   27,   27,   27,   42,   33,   42,   27,   27,   27,
        27,   27,   28,   42,   28,   29,   28,   28,   28,   28,
        28,   27,   27,   27,   27,   27,   42,   28,    1,   33,
-       12,   11,   12,   11,   11,   42,   42,    2,    8,    8,
-        8,    3,    8,    4,   42,   33,    0,   39,   37,    0,
-       41,   23,    0,   22,    0,   32,   32,    0,   33,   33,
-       33,   33,   33,   27,   27,   27,   27,   27,   33,   40,
-
-       33,    0,   33,   33,   33,   33,   33,   28,    0,   28,
-       23,    0,   22,    0,   28,    0,   28,   28,   28,   28,
-       28,   27,   27,   27,   27,   27,   28,   28,    1,   31,
-       31,    0,   12,   12,   10,    9,   10,    0,    2,    8,
-        0,    8,    0,    0,    5,    6,    8,    8,    0,   33,
-       33,   33,   27,   27,   27,   27,   27,   27,   33,    0,
-       33,   33,   33,   33,   33,   28,   28,   28,   27,   27,
-       27,   27,   27,   27,   28,    0,    7,    7,    0,    7,
-        8,   33,   33,   33,   33,   33,   27,   27,   27,   27,
-       27,   27,   33,    0,   33,   33,   33,   28,   28,   28,
-
-       28,   28,   27,   27,   27,   27,   27,   27,   28,    7,
-       33,   33,   33,    0,   19,   27,   27,   27,   27,   27,
-       33,    0,   33,   33,   28,   28,   28,   27,   27,   27,
-       27,   27,   28,   33,   33,   33,   33,   33,   27,   27,
-       27,   27,   27,   33,    0,   33,   33,   28,   28,   28,
-       28,   28,   27,   27,   27,   27,   27,   28,   24,   24,
-       24,   27,    0,   18,   27,   27,    0,   17,   33,    0,
-       33,   33,   24,   24,   24,   27,   27,   27,   28,   33,
-       24,   24,   24,   24,    0,   21,   27,   27,   30,    0,
-       33,   14,   28,   24,   24,   24,   24,   27,   27,   28,
-
-       33,   25,   25,   25,   27,    0,   16,    0,   33,    0,
-       33,   28,   25,   25,   25,   27,   33,   33,   25,   25,
-       25,   25,   25,    0,   20,    0,   15,   14,    0,   14,
-        0,   28,   28,   25,   25,   25,   25,   25,   33,   33,
-       33,   25,   25,    0,   13,   28,   28,   28,   25,   25,
-       33,   33,   33,   33,   33,   28,   28,   28,   28,   28,
-       33,   33,   33,   28,   28,   28,   33,   33,   33,   33,
-       33,   28,   28,   28,   28,   28,   24,   24,   24,   24,
-       24,   24,   24,   24,   24,   24,   24,   24,    0
+       33,   12,   11,   12,   11,   11,   42,   42,    2,    8,
+        8,    8,    3,    8,    4,   42,   33,    0,   39,   37,
+        0,   41,   23,    0,   22,    0,   32,   32,    0,   33,
+       33,   33,   33,   33,   27,   27,   27,   27,   27,   33,
+
+       40,   33,    0,   33,   33,   33,   33,   33,   28,    0,
+       28,   23,    0,   22,    0,   28,    0,   28,   28,   28,
+       28,   28,   27,   27,   27,   27,   27,   28,   28,    1,
+       30,   30,    0,   33,   12,   12,   10,    9,   10,    0,
+        2,    8,    0,    8,    0,    0,    5,    6,    8,    8,
+        0,   33,   33,   33,   27,   27,   27,   27,   27,   27,
+       33,    0,   33,   33,   33,   33,   33,   28,   28,   28,
+       27,   27,   27,   27,   27,   27,   28,    0,   33,    7,
+        7,    0,    7,    8,   33,   33,   33,   33,   33,   27,
+       27,   27,   27,   27,   27,   33,    0,   33,   33,   33,
+
+       28,   28,   28,   28,   28,   27,   27,   27,   27,   27,
+       27,   28,   33,    7,   33,   33,   33,    0,   19,   27,
+       27,   27,   27,   27,   33,    0,   33,   33,   28,   28,
+       28,   27,   27,   27,   27,   27,   28,   33,   33,   33,
+       33,   33,   33,   27,   27,   27,   27,   27,   33,    0,
+       33,   33,   28,   28,   28,   28,   28,   27,   27,   27,
+       27,   27,   28,   33,   24,   24,   24,   27,    0,   18,
+       27,   27,    0,   17,   33,    0,   33,   33,   24,   24,
+       24,   27,   27,   27,   28,   33,   33,   24,   24,   24,
+       24,    0,   21,   27,   27,   31,    0,   33,   14,   28,
+
+       24,   24,   24,   24,   27,   27,   28,   30,   33,   25,
+       25,   25,   27,    0,   16,    0,   33,    0,   33,   28,
+       25,   25,   25,   27,   33,   33,   25,   25,   25,   25,
+       25,    0,   20,    0,   15,   14,    0,   14,    0,   28,
+       28,   25,   25,   25,   25,   25,   33,   33,   33,   25,
+       25,    0,   13,   28,   28,   28,   25,   25,   33,   33,
+       33,   33,   33,   28,   28,   28,   28,   28,   33,   33,
+       33,   28,   28,   28,   33,   33,   33,   33,   33,   28,
+       28,   28,   28,   28,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,    0
+
     } ;
 
 static yyconst int yy_ec[256] =
@@ -379,107 +381,109 @@ static yyconst int yy_meta[61] =
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7
     } ;
 
-static yyconst short int yy_base[414] =
+static yyconst short int yy_base[422] =
     {   0,
-        0,   55,   96,    0,   60,   61,  155,  160,  203,  262,
-      321,  364, 1338, 1277, 1307, 2093, 1295, 1295, 1253, 2093,
-     2093, 1252, 2093,  166,  176,  197,  253, 2093, 2093,  408,
-     1252, 1258, 1253, 1252,  467,   20,  170, 1206, 1200, 1193,
-     1180, 1172, 1176,  208, 1166, 2093, 1156,  327,  337,  373,
-      464,  508, 1147, 1144, 1143, 1143,  567,   21, 1158,  335,
-        0, 2093, 1138,    0, 2093,  583,   68,    0, 1097,  596,
-       48, 2093,   50, 2093,   75, 1096,  275, 1129, 1108, 1100,
-     2093, 1058,  508, 1039,  607,  338, 1031,  633,  630,  157,
-      645,  659,  674,    0, 1023, 1018,   52, 1013,  179, 2093,
-
-       46,  157,  121,  136,  142,  133,   29, 1000,  696,  218,
-      981,  705,  980,  729,  376,  738,  748,  188,  757,  766,
-      777,    0,  992,  987,  251,  981,  242,  159, 1017,  795,
-      974,  803,    0, 1013,  166, 2093, 2093,  240,    0,  971,
-      487,  811,  284,  359, 2093, 2093,  932,  293,  598,  824,
-      840,  853,  945,  940,  929,  935,  928,  915,  234,  243,
-      329,  248,  339,  257,  236,  869,  882,  898,  912,  905,
-      892,  896,  868,  855,  285,  921,  849, 2093,  356,  919,
-      934,  931,  358,  948,  963,  977,  384,  842,  850,  845,
-      840,  836,   38,  346,  260,  352,  353,  983,  360,  992,
-
-     1012, 1021,  408,  837,  806,  799,  793,  789,  444,  428,
-     1029, 1041, 1050,  472, 2093,  793,  796,  791,  783,  789,
-      452,  345,  460,  453, 1060, 1070, 1079,  782,  779,  757,
-      719,  727,  454, 1089,  463, 1099, 1108, 1118,  718,  580,
-      709,  701,  582,  286,  569,  530,  537, 1128,  580, 1137,
-     1147, 1157,  694,  610,  685,  681,  615,  362, 1167, 1177,
-     1187,  621,  632, 2093,  676,  680,  683, 2093,  570,  575,
-      536,  610, 1197, 1207, 1217,  699,  663,  657,  584, 1226,
-      582, 1237, 1247,  832,  713, 2093,  622,  722,  592,  667,
-      456, 1267, 1256,  638, 1286, 1297,  890,  539,  725,  461,
-
-     1266, 1306, 1315, 1326,  732,  737, 2093,  669,  639,  388,
-      372, 1335, 1344, 1355, 1364,  749, 1373,  672, 1384, 1393,
-     1402, 1413,  943,  779, 2093,  347,  296,  258, 1436,  232,
-     1460, 1433,  682, 1472, 1481, 1490, 1501,  972, 1510, 1519,
-     1530, 1539,  848,  230, 2093, 1548, 1559, 1568, 1577,  912,
-     1588,  745, 1597, 1606, 1617, 1626,  786, 1635, 1646, 1655,
-     1664, 1675, 1684, 1693, 1704, 1713, 1722,  792, 1733, 1742,
-     1751, 1762,  819, 1771, 1780, 1791, 1800, 1809, 1820, 1829,
-     1838, 1849,  145, 1858, 1867,  141, 1878, 1887, 2093, 1931,
-     1938, 1945, 1952, 1959, 1966, 1973, 1980, 1987, 1994, 2001,
-
-     2008, 2015, 2022,   84, 2029, 2036, 2043, 2050, 2057, 2064,
-     2071, 2078, 2085
+        0,   55,   96,    0,  155,  156,  163,  176,  219,  278,
+      337,  380, 1507, 1462, 1503, 2128, 1500, 1490, 1448, 2128,
+     2128, 1447, 2128,  164,   48,  210,  239, 2128, 2128,  424,
+     1447, 1443, 1442, 1447,  483,   19,  157, 1410, 1410, 1396,
+     1386, 1387, 1392,  220, 1391, 2128, 1388,  343,  271,  353,
+      389,  508, 1387, 1387, 1386, 1389,  567,   28, 1413,  351,
+       29,    0, 2128, 1410,    0, 2128,  583,   72,    0, 1368,
+      191,   47, 2128,  157, 2128,   74, 1367,  293, 1404, 1400,
+     1394, 2128, 1343,  508, 1324,  592,  354, 1314,  616,  592,
+      160,  628,  637,  646,    0, 1318, 1304,   49, 1290,  174,
+
+     2128,   46,  156,  140,  139,  147,  162,  148, 1268,  671,
+      230, 1258,  680, 1246,  704,  392,  713,  723,  300,  732,
+      741,  752,    0, 1258, 1244,  269, 1232,  242,  260, 1248,
+      689, 1205,  775,  263,    0, 1242,   79, 2128, 2128,  308,
+        0, 1201,  780,  800,  372,  375, 2128, 2128, 1198,  386,
+      795,  809,  818,  829, 1201, 1188, 1176, 1182, 1173, 1160,
+      252,  316,  350,  166,  175,  310,  309,  838,  847,  858,
+     1160, 1147, 1127, 1133, 1123, 1101,  301,  881,  346, 1095,
+     2128,  444,  883,  894,  892,  404,  903,  912,  923,  424,
+     1080, 1088, 1075, 1070, 1040,  370,  362,  276,   34,  158,
+
+      932,  558,  941,  952,  961,  488, 1041, 1049, 1044, 1012,
+     1000,  377,  378,  575,  970,  981,  990,  576, 2128,  947,
+      916,  870,  862,  868,  449,  571,  561,  379,  999, 1010,
+     1019,  854,  855,  848,  831,  803,  450,  452, 1028,  589,
+     1039, 1048, 1057,  784,  668,  777,  774,  676,  453,  574,
+      577,  254, 1068,  624, 1077, 1086, 1097,  777,  700,  774,
+      771,  707,  582,  585, 1107, 1116, 1127,  709,  724, 2128,
+      755,  750,  733, 2128,  538,  668,  591,  643, 1137, 1146,
+     1157,  772,  739,  701,  617,  641, 1166,  749, 1176, 1187,
+     1196,  786, 2128,  686,  787,  663,  410,  456, 1218, 1207,
+
+      750, 1217, 1237, 1248,  636,  788,  625,  608, 1256, 1266,
+     1277, 1287,  818,  819, 2128, 1245,  676,  588,  540, 1297,
+     1306, 1316, 1326,  869, 1335,  764, 1345, 1355, 1364, 1374,
+     1384,  892, 2128,  580,  537,  460, 1401,  459, 1425, 1422,
+      902, 1437, 1451, 1466, 1480, 1403, 1495, 1509, 1524, 1538,
+     1445,  343, 2128, 1553, 1567, 1582, 1596, 1459, 1603,  921,
+     1613, 1632, 1642, 1648,  950, 1661, 1677, 1690, 1698, 1708,
+     1719, 1729, 1739, 1748, 1758,  979, 1768, 1777, 1787, 1797,
+     1008, 1806, 1816, 1826, 1835, 1845, 1855, 1864, 1874, 1884,
+      250, 1893, 1903,  218, 1913, 1922, 2128, 1966, 1973, 1980,
+
+     1987, 1994, 2001, 2008, 2015, 2022, 2029, 2036, 2043, 2050,
+     2057,  178, 2064, 2071, 2078, 2085, 2092, 2099, 2106, 2113,
+     2120
     } ;
 
-static yyconst short int yy_def[414] =
+static yyconst short int yy_def[422] =
     {   0,
-      389,    1,  389,    3,    1,    1,  390,  390,  391,  391,
-      392,  392,  389,  393,  389,  389,  389,  394,  395,  389,
-      389,  396,  389,  397,  393,  393,  393,  389,  389,  389,
-       30,   30,   30,   30,  393,  393,  394,   30,   30,   30,
-       30,   30,  398,  389,  399,  389,  400,  401,  398,  398,
-      398,  389,   52,   52,   52,   52,  398,  398,  389,  402,
-      403,  389,  403,  403,  389,  389,  389,  404,  405,  406,
-      405,  389,  405,  389,  407,  393,  393,  389,  389,  394,
-      389,  395,  395,  396,  396,  397,  408,  393,  393,  393,
-      393,  393,  393,   30,   30,   30,   30,   30,  393,  389,
-
-      393,  394,  393,  393,  393,  393,  393,  398,  398,  389,
-      399,  399,  400,  400,  401,  398,  398,  398,  398,  398,
-      398,   52,   52,   52,   52,   52,  398,  398,  389,  402,
-      409,  393,  403,  403,  389,  389,  389,  389,  404,  405,
-      405,  406,  410,  406,  389,  389,  405,  405,  389,  393,
-      393,  393,   30,   30,   30,   30,   30,   30,  393,  394,
-      393,  393,  393,  393,  393,  398,  398,  398,   52,   52,
-       52,   52,   52,   52,  398,  389,  405,  389,  410,  406,
-      406,  393,  393,  393,  393,  393,   30,   30,   30,   30,
-       30,   30,  393,  394,  393,  393,  393,  398,  398,  398,
-
-      398,  398,   52,   52,   52,   52,   52,   52,  398,  410,
-      393,  393,  393,  389,  389,   30,   30,   30,   30,   30,
-      393,  394,  393,  393,  398,  398,  398,   52,   52,   52,
-       52,   52,  398,  393,  393,  393,  393,  393,   30,   30,
-       30,   30,   30,  393,  394,  393,  393,  398,  398,  398,
-      398,  398,   52,   52,   52,   52,   52,  398,  393,  393,
-      393,   30,  389,  389,   30,   30,  389,  389,  393,  394,
-      393,  393,  398,  398,  398,   52,   52,   52,  398,  393,
-      393,  393,  393,  393,  389,  389,   30,   30,  393,  394,
-      393,  393,  398,  398,  398,  398,  398,   52,   52,  398,
-
-      393,  393,  393,  393,   30,  389,  389,  394,  393,  411,
-      412,  398,  398,  398,  398,   52,  393,  393,  393,  393,
-      393,  393,  393,  389,  389,  413,  393,  411,  411,  412,
-      412,  398,  398,  398,  398,  398,  398,  398,  393,  393,
-      393,  393,  393,  413,  389,  398,  398,  398,  398,  398,
-      393,  393,  393,  393,  393,  398,  398,  398,  398,  398,
-      393,  393,  393,  398,  398,  398,  393,  393,  393,  393,
-      393,  398,  398,  398,  398,  398,  393,  393,  393,  398,
-      398,  398,  393,  393,  393,  398,  398,  398,    0,  389,
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389
+      397,    1,  397,    3,    1,    1,  398,  398,  399,  399,
+      400,  400,  397,  401,  397,  397,  397,  402,  403,  397,
+      397,  404,  397,  405,  401,  401,  401,  397,  397,  397,
+       30,   30,   30,   30,  401,  401,  402,   30,   30,   30,
+       30,   30,  406,  397,  407,  397,  408,  409,  406,  406,
+      406,  397,   52,   52,   52,   52,  406,  406,  397,  410,
+      401,  411,  397,  411,  411,  397,  397,  397,  412,  413,
+      414,  413,  397,  413,  397,  415,  401,  401,  397,  397,
+      402,  397,  403,  403,  404,  404,  405,  416,  401,  401,
+      401,  401,  401,  401,   30,   30,   30,   30,   30,  401,
+
+      397,  401,  402,  401,  401,  401,  401,  401,  406,  406,
+      397,  407,  407,  408,  408,  409,  406,  406,  406,  406,
+      406,  406,   52,   52,   52,   52,   52,  406,  406,  397,
+      410,  417,  401,  401,  411,  411,  397,  397,  397,  397,
+      412,  413,  413,  414,  418,  414,  397,  397,  413,  413,
+      397,  401,  401,  401,   30,   30,   30,   30,   30,   30,
+      401,  402,  401,  401,  401,  401,  401,  406,  406,  406,
+       52,   52,   52,   52,   52,   52,  406,  397,  401,  413,
+      397,  418,  414,  414,  401,  401,  401,  401,  401,   30,
+       30,   30,   30,   30,   30,  401,  402,  401,  401,  401,
+
+      406,  406,  406,  406,  406,   52,   52,   52,   52,   52,
+       52,  406,  401,  418,  401,  401,  401,  397,  397,   30,
+       30,   30,   30,   30,  401,  402,  401,  401,  406,  406,
+      406,   52,   52,   52,   52,   52,  406,  401,  401,  401,
+      401,  401,  401,   30,   30,   30,   30,   30,  401,  402,
+      401,  401,  406,  406,  406,  406,  406,   52,   52,   52,
+       52,   52,  406,  401,  401,  401,  401,   30,  397,  397,
+       30,   30,  397,  397,  401,  402,  401,  401,  406,  406,
+      406,   52,   52,   52,  406,  401,  401,  401,  401,  401,
+      401,  397,  397,   30,   30,  401,  402,  401,  401,  406,
+
+      406,  406,  406,  406,   52,   52,  406,  401,  401,  401,
+      401,  401,   30,  397,  397,  402,  401,  419,  420,  406,
+      406,  406,  406,   52,  401,  401,  401,  401,  401,  401,
+      401,  397,  397,  421,  401,  419,  419,  420,  420,  406,
+      406,  406,  406,  406,  406,  406,  401,  401,  401,  401,
+      401,  421,  397,  406,  406,  406,  406,  406,  401,  401,
+      401,  401,  401,  406,  406,  406,  406,  406,  401,  401,
+      401,  406,  406,  406,  401,  401,  401,  401,  401,  406,
+      406,  406,  406,  406,  401,  401,  401,  406,  406,  406,
+      401,  401,  401,  406,  406,  406,    0,  397,  397,  397,
+
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397
     } ;
 
-static yyconst short int yy_nxt[2154] =
+static yyconst short int yy_nxt[2189] =
     {   0,
        14,   15,   16,   17,   14,   18,   19,   20,   21,   14,
        22,   23,   14,   14,   24,   25,   26,   27,   25,   25,
@@ -487,240 +491,243 @@ static yyconst short int yy_nxt[2154] =
        31,   30,   30,   32,   33,   30,   34,   30,   30,   30,
        30,   30,   30,   35,   14,   14,   14,   14,   14,   14,
        14,   14,   14,   14,   14,   14,   14,   36,   14,   14,
-       37,   59,   59,   77,  109,   21,   21,   21,   21,  138,
-      100,  145,   77,  146,   60,   60,  148,  100,  165,  101,
-      128,   77,  155,   38,   39,  156,   40,  221,  157,   77,
-      139,  141,   41,  141,  159,   42,   43,   15,   16,   17,
+       37,   90,   78,   91,   91,   91,   91,   91,   91,   91,
+      147,  110,   78,  140,  101,  150,  101,   78,  102,  157,
+      140,  101,  158,   38,   39,  159,   40,  129,  134,   78,
+      143,   78,   41,  228,  161,   42,   43,   15,   16,   17,
 
        43,   44,   45,   21,   46,   43,   47,   23,   43,   43,
        48,   49,   50,   51,   49,   49,   49,   49,   28,   29,
        21,   43,   52,   52,   52,   52,   53,   52,   52,   54,
        55,   52,   56,   52,   52,   52,   52,   52,   52,   57,
        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
-       43,   43,   43,   58,   43,   43,   15,   62,   63,   81,
-       64,   15,   62,   63,   77,   64,   65,  138,  100,   87,
-       89,   65,   81,   87,   87,  161,   77,   65,   64,   77,
-      138,  100,   65,   64,  109,   77,  162,  164,   77,   89,
-       87,   90,   90,   90,   90,   90,   90,   90,   66,  163,
-
-       77,  117,  109,   66,   15,   16,   17,  175,   18,   88,
-       89,  160,   91,   91,   91,   91,   91,   91,   91,   77,
-      110,  102,   77,  110,  110,  110,  110,  110,  110,  110,
-      110,  109,  345,  110,  110,  110,  110,  110,  110,  110,
-       77,  138,  100,  138,  100,   81,   67,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   15,   16,   17,   89,   18,   92,   92,
-       92,   92,   92,   93,   90,  331,   76,   77,   76,   77,
-       76,  171,   76,   76,  172,  109,   76,  173,  178,  193,
-      194,   77,  195,  196,  138,  100,   77,   76,   76,   76,
-
-       77,  329,  197,   77,  223,   67,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   15,   16,   17,   70,   18,  179,  109,   77,
-       87,   71,   72,   73,   87,   87,  141,  269,  131,   77,
-      209,   87,  131,  131,   74,   87,   87,   81,   81,  345,
-      117,   87,  118,  118,  118,  118,  118,  118,  118,  131,
-      210,  143,   87,  180,   75,   15,   16,   17,   70,   18,
-      116,  182,   77,  198,   71,   72,   73,  195,  132,   87,
-      109,   88,   77,   87,   87,  214,  117,   74,  119,  119,
-      119,  119,  119,  119,  119,   77,   77,  195,  222,  179,
-
-       87,   77,  181,  109,  245,  109,  215,   75,   76,  214,
-      195,  224,   76,  279,   76,  331,  109,   76,   76,  116,
-       76,   76,   76,   94,   94,   94,   94,   94,   94,   94,
-      215,  329,  178,   76,   94,   94,   94,   94,   94,   94,
-       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
-       94,   77,   94,   76,   76,   76,   76,   76,   76,   76,
-       76,   76,   76,   76,   76,   76,   76,   76,   99,  100,
-       76,  179,   76,  214,   76,   76,  234,  117,   76,  120,
-      120,  120,  120,  120,  121,  118,  246,  109,  140,   76,
-       76,   76,  140,  233,  215,   77,   77,  109,  140,   77,
-
-      244,  309,  258,   77,  109,  247,   77,  109,  108,   82,
-      140,   82,  108,   82,  108,   82,   82,  108,  108,   82,
-      108,  108,  108,  122,  122,  122,  122,  122,  122,  122,
-       82,   82,   82,  108,  122,  122,  122,  122,  122,  122,
-      122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
-      122,  109,  122,  108,  108,  108,  108,  108,  108,  108,
-      108,  108,  108,  108,  108,  108,  108,  108,  127,  100,
-      108,   81,  108,   77,  108,  108,  316,   81,  108,   77,
-       77,  263,  271,  267,  135,  100,  136,  291,  137,  108,
-      108,  108,  136,  248,  137,  272,  280,  143,  143,   87,
-
-      140,  143,  264,   87,  268,  137,  137,  143,   84,   87,
-       84,  263,   84,   77,   84,   84,  267,  270,   84,  143,
-       87,   87,  285,  109,  290,   77,  137,  109,  289,   84,
-       84,   84,  264,  263,   86,   77,   76,  268,   86,  144,
-       76,   76,  300,  286,   86,  150,  151,  152,  150,  150,
-      150,  150,  293,   77,  264,   86,   86,   76,   89,  305,
-       90,   90,   90,   90,   90,   90,   90,  292,  308,   81,
-      308,   81,   89,   77,   90,   90,   90,   90,   90,   90,
-       90,  109,   77,  326,  267,  317,  299,   89,   77,   90,
-       90,   90,   90,   90,   90,  332,  327,  108,  298,  108,
-
-      285,  108,   77,  108,  108,  268,  111,  108,  111,  288,
-      111,  287,  111,  111,  285,   77,  111,   77,  108,  108,
-      108,  286,  278,  306,  277,  109,  306,  111,  111,  111,
-      113,  276,  113,  324,  113,  286,  113,  113,  306,  115,
-      113,  108,  266,  115,  307,  108,  108,  307,  265,  115,
-      324,  113,  113,  113,  325,  262,  257,  256,  351,  307,
-      115,  115,  108,  166,  167,  168,  166,  166,  166,  166,
-      117,  325,  118,  118,  118,  118,  118,  118,  118,  117,
-      324,  118,  118,  118,  118,  118,  118,  118,   77,  255,
-      117,  109,  118,  118,  118,  118,  118,  118,  131,  356,
-
-      109,  325,  131,  131,  130,  367,   76,  254,  130,  109,
-       76,   76,  143,  143,  130,  177,  143,  253,  243,  131,
-      109,  242,  143,  241,  240,  130,  130,   76,  239,  109,
-      232,  231,  372,  230,  143,   77,  229,  182,  132,  183,
-      183,  183,  183,  183,  183,  183,  280,  281,  281,  281,
-      281,  281,  281,  182,  144,  184,  184,  184,  184,  184,
-      184,  184,  109,  343,  343,  343,  182,   77,  185,  185,
-      185,  185,  185,  186,  183,   77,  228,  220,  219,  218,
-      217,  216,  198,   77,  199,  199,  199,  199,  199,  199,
-      199,   77,  141,  208,  207,  198,   77,  200,  200,  200,
-
-      200,  200,  200,  200,  293,  294,  294,  294,  294,  294,
-      294,  198,  109,  201,  201,  201,  201,  201,  202,  199,
-      143,  143,  131,  177,  143,  109,  131,  350,  350,  350,
-      143,  206,  131,  109,  205,  143,  143,  204,  180,  143,
-      203,  109,  143,  131,  131,  143,  211,  212,  213,  211,
-      211,  211,  211,  192,  191,  109,  317,  143,  343,  343,
-      343,  182,  144,  183,  183,  183,  183,  183,  183,  183,
-      190,  189,  188,  187,   77,  141,  182,  144,  183,  183,
-      183,  183,  183,  183,  183,  332,   77,  350,  350,  350,
-      182,   77,  183,  183,  183,  183,  183,  183,  225,  226,
-
-      227,  225,  225,  225,  225,  198,   77,  199,  199,  199,
-      199,  199,  199,  199,  141,  109,  134,  176,  129,  174,
-       77,  170,  169,  114,  112,  198,  109,  199,  199,  199,
-      199,  199,  199,  199,  198,  109,  199,  199,  199,  199,
-      199,  199,  234,  109,  235,  235,  235,  235,  235,  235,
-      235,  158,  154,  153,  234,  109,  236,  236,  236,  236,
-      236,  236,  236,  234,  109,  237,  237,  237,  237,  237,
-      238,  235,   77,  248,  149,  249,  249,  249,  249,  249,
-      249,  249,   85,  248,   77,  250,  250,  250,  250,  250,
-      250,  250,  248,   77,  251,  251,  251,  251,  251,  252,
-
-      249,   83,   81,  109,  259,  260,  261,  259,  259,  259,
-      259,   79,  234,  109,  235,  235,  235,  235,  235,  235,
-      235,  234,  109,  235,  235,  235,  235,  235,  235,  235,
-       78,  234,   77,  235,  235,  235,  235,  235,  235,   77,
-      141,  134,   77,  273,  274,  275,  273,  273,  273,  273,
-      248,   77,  249,  249,  249,  249,  249,  249,  249,  129,
-      248,   77,  249,  249,  249,  249,  249,  249,  249,  126,
-      248,  109,  249,  249,  249,  249,  249,  249,  125,  124,
-      109,  280,  281,  281,  281,  281,  281,  281,  281,  123,
-      109,  280,  282,  282,  282,  282,  282,  282,  282,  114,
-
-      109,  280,  283,  283,  283,  283,  283,  284,  281,  112,
-       77,  293,  294,  294,  294,  294,  294,  294,  294,  109,
-       77,  293,  295,  295,  295,  295,  295,  295,  295,  107,
-       77,  293,  296,  296,  296,  296,  296,  297,  294,  106,
-      109,  301,  302,  303,  304,  301,  301,  301,  105,  104,
-      109,  280,  281,  281,  281,  281,  281,  281,  281,  103,
-      109,  280,  281,  281,  281,  281,  281,  281,  281,   77,
-      310,  312,  313,  314,  315,  312,  312,  312,   98,  317,
-       77,  318,  318,  318,  318,  318,  318,  318,   97,  310,
-       77,  310,  311,   96,   95,   85,   83,   81,   79,  109,
-
-      293,  294,  294,  294,  294,  294,  294,  294,   78,   77,
-       77,  293,  294,  294,  294,  294,  294,  294,  294,  317,
-       77,  319,  319,  319,  319,  319,  319,  319,  317,  109,
-      320,  320,  320,  320,  320,  321,  322,  389,  389,  317,
-      109,  323,  323,  323,  318,  318,  318,  318,  332,   77,
-      333,  333,  333,  333,  333,  333,  333,  332,   77,  334,
-      334,  334,  334,  334,  334,  334,  389,  389,  332,   77,
-      335,  335,  335,  335,  335,  336,  337,  332,  109,  338,
-      338,  338,  333,  333,  333,  333,  389,  109,  339,  340,
-      341,  339,  339,  339,  339,  389,  389,  317,  109,  322,
-
-      322,  322,  322,  322,  322,  322,  317,  109,  322,  322,
-      322,  322,  322,  322,  322,  317,   77,  322,  322,  322,
-      322,  322,  322,  342,  389,  389,  317,   77,  342,  342,
-      342,  342,  342,  342,  342,  389,   77,  328,  389,  328,
-      389,  328,  389,  328,  328,   77,  389,  328,  346,  347,
-      348,  346,  346,  346,  346,  389,   77,  389,  328,  328,
-      328,  330,  389,  330,  389,  330,  389,  330,  330,  389,
-      389,  330,  389,  389,  389,  389,  109,  389,  389,  389,
-      389,  389,  330,  330,  330,  332,  389,  337,  337,  337,
-      337,  337,  337,  337,  332,  389,  337,  337,  337,  337,
-
-      337,  337,  337,  332,  389,  337,  337,  337,  337,  337,
-      337,  349,  389,  389,  332,  109,  349,  349,  349,  349,
-      349,  349,  349,  351,  109,  352,  352,  352,  352,  352,
-      352,  352,  351,  109,  353,  353,  353,  353,  353,  353,
-      353,  389,  389,  351,  109,  354,  354,  354,  354,  354,
-      355,  352,  389,   77,  342,  342,  342,  342,  342,  342,
-      342,  356,   77,  357,  357,  357,  357,  357,  357,  357,
-      389,  389,  356,   77,  358,  358,  358,  358,  358,  358,
-      358,  356,   77,  359,  359,  359,  359,  359,  360,  357,
-      389,  109,  349,  349,  349,  349,  349,  349,  349,  389,
-
-      389,  389,  109,  361,  362,  363,  361,  361,  361,  361,
-      351,  109,  352,  352,  352,  352,  352,  352,  352,  351,
-      109,  352,  352,  352,  352,  352,  352,  352,  389,  389,
-      351,   77,  352,  352,  352,  352,  352,  352,  389,  389,
-       77,  364,  365,  366,  364,  364,  364,  364,  356,   77,
-      357,  357,  357,  357,  357,  357,  357,  389,  389,  356,
-       77,  357,  357,  357,  357,  357,  357,  357,  356,  109,
-      357,  357,  357,  357,  357,  357,  389,  367,  109,  368,
-      368,  368,  368,  368,  368,  368,  389,  389,  367,  109,
-      369,  369,  369,  369,  369,  369,  369,  367,  109,  370,
-
-      370,  370,  370,  370,  371,  368,  372,   77,  373,  373,
-      373,  373,  373,  373,  373,  389,  389,  372,   77,  374,
-      374,  374,  374,  374,  374,  374,  372,   77,  375,  375,
-      375,  375,  375,  376,  373,  389,  109,  377,  378,  379,
-      377,  377,  377,  377,  389,  389,  367,  109,  368,  368,
-      368,  368,  368,  368,  368,  367,  109,  368,  368,  368,
-      368,  368,  368,  368,  367,   77,  368,  368,  368,  368,
-      368,  368,  389,  389,  389,  389,   77,  380,  381,  382,
-      380,  380,  380,  380,  372,   77,  373,  373,  373,  373,
-      373,  373,  373,  372,   77,  373,  373,  373,  373,  373,
-
-      373,  373,  389,  389,  372,  109,  373,  373,  373,  373,
-      373,  373,  389,  389,  109,  383,  383,  383,  383,  383,
-      383,  383,  389,  109,  377,  377,  377,  377,  377,  377,
-      377,  389,  389,  389,  109,  384,  384,  384,  384,  384,
-      385,  383,  389,   77,  386,  386,  386,  386,  386,  386,
-      386,  389,   77,  380,  380,  380,  380,  380,  380,  380,
-      389,  389,  389,   77,  387,  387,  387,  387,  387,  388,
-      386,  389,  109,  383,  383,  383,  383,  383,  383,  383,
-      389,  109,  383,  383,  383,  383,  383,  383,  389,  389,
-      389,  389,  109,  386,  386,  386,  386,  386,  386,  386,
-
-      389,   77,  386,  386,  386,  386,  386,  386,  389,  389,
-       77,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  109,  389,  389,  389,  389,  389,  389,  389,  389,
-      109,   61,   61,   61,   61,   61,   61,   61,   21,   21,
-       21,   21,   21,   21,   21,   69,   69,   69,   69,   69,
-       69,   69,   76,  389,  389,  389,  389,   76,   76,   80,
-       80,   80,   80,   80,   80,   80,   82,  389,  389,  389,
-      389,   82,   82,   84,  389,  389,  389,  389,   84,   84,
-       86,  389,   86,  389,  389,   86,   86,  108,  389,  389,
-      389,  389,  108,  108,  111,  389,  389,  389,  389,  111,
-
-      111,  113,  389,  389,  389,  389,  113,  113,  115,  389,
-      115,  389,  389,  115,  115,  130,  389,  130,  389,  389,
-      130,  130,  133,  389,  133,  133,  389,  389,  133,  140,
-      389,  140,  389,  140,  140,  140,  142,  142,  142,  142,
-      142,  142,  142,  147,  147,  147,  147,  147,  147,  147,
-       87,  389,   87,  389,  389,   87,   87,  131,  389,  131,
-      389,  389,  131,  131,  143,  143,  143,  143,  143,  143,
-      143,  328,  389,  389,  389,  389,  328,  328,  330,  389,
-      389,  389,  389,  330,  330,  344,  344,  344,  344,  344,
-      344,  344,   13,  389,  389,  389,  389,  389,  389,  389,
-
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389
+       43,   43,   43,   58,   43,   43,   59,   59,   82,   82,
+       21,   21,   21,   21,   15,   63,   64,   88,   65,   60,
+       60,   88,   88,   90,   66,  140,  101,   15,   63,   64,
+      148,   65,   78,   78,  141,   66,   65,   66,   88,  164,
+       78,   78,  145,  145,  163,  142,  145,  167,   66,   65,
+
+      143,   78,  145,   78,  165,   78,   67,   89,  103,   78,
+      162,  199,   61,   61,  145,  198,  166,   78,   78,   67,
+       15,   16,   17,   90,   18,   92,   92,   92,   92,   92,
+       92,   92,  111,  198,  146,  111,  111,  111,  111,  111,
+      111,  111,  111,  140,  101,  111,  111,  111,  111,  111,
+      111,  111,   90,   78,   93,   93,   93,   93,   93,   94,
+       91,  110,   68,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   15,
+       16,   17,   78,   18,  118,  110,  119,  119,  119,  119,
+      119,  119,  119,   78,   77,   78,   77,   78,   77,  173,
+
+       77,   77,  174,  110,   77,  175,   78,  196,  177,  140,
+      101,  179,  278,  118,  110,   77,   77,   77,   82,   78,
+      227,   68,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   15,   16,
+       17,   71,   18,  110,  110,  353,   88,   72,   73,   74,
+       88,   88,   78,   78,  132,  200,  212,   88,  132,  132,
+       75,   88,   88,  197,   82,  198,  118,   88,  120,  120,
+      120,  120,  120,  120,  120,  132,  181,  145,   88,  183,
+       76,   15,   16,   17,   71,   18,  117,  140,  101,   78,
+       72,   73,   74,   78,  133,   88,  110,   89,  198,   88,
+
+       88,  213,  118,   75,  121,  121,  121,  121,  121,  122,
+      119,  316,   82,   78,  226,  182,   88,  185,  184,  225,
+      110,   78,   78,   76,   77,  218,  237,  238,   77,  143,
+       77,  252,  110,   77,   77,  117,   77,   77,   77,   95,
+       95,   95,   95,   95,   95,   95,  219,   78,  214,   77,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   78,   95,   77,
+       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,  100,  101,   77,  182,   77,  218,
+       77,   77,   78,  110,   77,   78,   78,  249,  263,   78,
+
+      264,  317,  339,  337,  275,   77,   77,   77,  109,   83,
+      219,   83,  109,   83,  109,   83,   83,  109,  109,   83,
+      109,  109,  109,  123,  123,  123,  123,  123,  123,  123,
+       83,   83,   83,  109,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  110,  123,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  128,  101,
+      109,  201,  109,   82,  109,  109,   82,  218,  109,  181,
+       78,   78,  353,  339,  137,  101,  138,  251,  139,  109,
+      109,  109,  138,   85,  139,   85,  296,   85,  219,   85,
+
+       85,  110,  239,   85,   78,  139,  139,  152,  153,  154,
+      152,  152,  152,  152,   85,   85,   85,   87,  182,   77,
+       78,   87,  276,   77,   77,  110,  139,   87,   78,  277,
+      250,  337,   78,  285,   78,   78,  286,  253,   87,   87,
+       77,   90,  298,   91,   91,   91,   91,   91,   91,   91,
+       90,   78,   91,   91,   91,   91,   91,   91,   91,   90,
+      110,   91,   91,   91,   91,   91,   91,  110,  110,  269,
+       82,   78,  109,  324,  109,  307,  109,  273,  109,  109,
+       78,  112,  109,  112,   78,  112,   78,  112,  112,   78,
+      270,  112,  132,  109,  109,  109,  132,  132,  274,  308,
+
+      299,  269,  112,  112,  112,  114,   78,  114,  273,  114,
+      292,  114,  114,  132,  116,  114,  109,  297,  116,   78,
+      109,  109,  270,  313,  116,  269,  114,  114,  114,  274,
+      306,  293,  133,  335,  273,  116,  116,  109,  168,  169,
+      170,  168,  168,  168,  168,  118,  270,  119,  119,  119,
+      119,  119,  119,  119,  118,  274,  119,  119,  119,  119,
+      119,  119,  119,  287,  300,  118,  110,  119,  119,  119,
+      119,  119,  119,  292,  305,  110,  131,  325,   77,  295,
+      131,  142,   77,   77,  110,  142,  131,  292,  314,  314,
+      294,  142,   78,  110,  293,  110,   88,  131,  131,   77,
+
+       88,  145,  145,  142,  180,  145,   88,   78,  293,  315,
+      315,  145,  284,  283,  282,  272,  271,   88,   88,  332,
+      314,  268,  185,  145,  186,  186,  186,  186,  186,  186,
+      186,  185,  262,  187,  187,  187,  187,  187,  187,  187,
+      333,  315,  185,  146,  188,  188,  188,  188,  188,  189,
+      186,  201,   78,  202,  202,  202,  202,  202,  202,  202,
+      201,   78,  203,  203,  203,  203,  203,  203,  203,  261,
+      332,  201,   78,  204,  204,  204,  204,  204,  205,  202,
+      260,  110,  132,  259,  145,  145,  132,  180,  145,  258,
+      110,  333,  132,  332,  145,  145,  145,  248,  183,  145,
+
+      247,  110,  246,  132,  132,  145,  145,  215,  216,  217,
+      215,  215,  215,  215,  333,  340,  185,  145,  186,  186,
+      186,  186,  186,  186,  186,  185,  146,  186,  186,  186,
+      186,  186,  186,  186,  359,   78,  185,  146,  186,  186,
+      186,  186,  186,  186,  245,  110,   78,  229,  230,  231,
+      229,  229,  229,  229,  201,   78,  202,  202,  202,  202,
+      202,  202,  202,  364,   78,  201,   78,  202,  202,  202,
+      202,  202,  202,  202,  201,  110,  202,  202,  202,  202,
+      202,  202,  244,  239,  110,  240,  240,  240,  240,  240,
+      240,  240,  375,  110,  239,  110,  241,  241,  241,  241,
+
+      241,  241,  241,  239,  110,  242,  242,  242,  242,  242,
+      243,  240,  253,   78,  254,  254,  254,  254,  254,  254,
+      254,  380,   78,  253,   78,  255,  255,  255,  255,  255,
+      255,  255,  253,   78,  256,  256,  256,  256,  256,  257,
+      254,  236,  110,  265,  266,  267,  265,  265,  265,  265,
+      235,  110,  239,  110,  240,  240,  240,  240,  240,  240,
+      240,  239,  110,  240,  240,  240,  240,  240,  240,  240,
+      239,   78,  240,  240,  240,  240,  240,  240,  234,  233,
+      232,  224,   78,  279,  280,  281,  279,  279,  279,  279,
+      253,   78,  254,  254,  254,  254,  254,  254,  254,  253,
+
+       78,  254,  254,  254,  254,  254,  254,  254,  223,  222,
+      253,  110,  254,  254,  254,  254,  254,  254,  221,  220,
+      110,  287,  288,  288,  288,  288,  288,  288,  288,  110,
+      287,  289,  289,  289,  289,  289,  289,  289,  143,  211,
+      110,  287,  290,  290,  290,  290,  290,  291,  288,  210,
+       78,  300,  301,  301,  301,  301,  301,  301,  301,   78,
+      300,  302,  302,  302,  302,  302,  302,  302,  209,  208,
+       78,  300,  303,  303,  303,  303,  303,  304,  301,  207,
+      110,  309,  310,  311,  312,  309,  309,  309,  206,  110,
+      287,  288,  288,  288,  288,  288,  288,  288,  195,  194,
+
+      110,  287,  288,  288,  288,  288,  288,  288,  288,   78,
+      287,  288,  288,  288,  288,  288,  288,  193,  192,   78,
+      191,  318,  320,  321,  322,  323,  320,  320,  320,  190,
+       78,  300,  301,  301,  301,  301,  301,  301,  301,   78,
+      318,  143,  318,  319,  143,  136,  316,   82,  178,  130,
+      110,  300,  301,  301,  301,  301,  301,  301,  301,  334,
+      110,   78,  300,  301,  301,  301,  301,  301,  301,  325,
+      176,  326,  326,  326,  326,  326,  326,  326,  172,  325,
+      110,  327,  327,  327,  327,  327,  327,  327,  171,  115,
+      325,  110,  328,  328,  328,  328,  328,  329,  330,   78,
+
+      325,  113,  331,  331,  331,  326,  326,  326,  326,   78,
+      340,  110,  341,  341,  341,  341,  341,  341,  341,  340,
+       78,  342,  342,  342,  342,  342,  342,  342,  160,  340,
+       78,  343,  343,  343,  343,  343,  344,  345,  156,  340,
+      110,  346,  346,  346,  341,  341,  341,  341,  155,  110,
+      347,  348,  349,  347,  347,  347,  347,  151,  325,  110,
+      330,  330,  330,  330,  330,  330,  330,   86,  325,  110,
+      330,  330,  330,  330,  330,  330,  330,  325,   78,  330,
+      330,  330,  330,  330,  330,  350,   84,  325,   78,  350,
+      350,  350,  350,  350,  350,  350,   82,  325,   78,  351,
+
+      351,  351,  336,   80,  336,   79,  336,   78,  336,  336,
+       78,  143,  336,  136,  130,  127,  340,   78,  358,  358,
+      358,  126,  125,  336,  336,  336,  338,   78,  338,  124,
+      338,  115,  338,  338,  113,  110,  338,  354,  355,  356,
+      354,  354,  354,  354,  108,  107,  110,  338,  338,  338,
+      340,  106,  345,  345,  345,  345,  345,  345,  345,  105,
+      351,  351,  351,  104,  340,  110,  345,  345,  345,  345,
+      345,  345,  345,   99,  358,  358,  358,   98,   97,  340,
+      110,  345,  345,  345,  345,  345,  345,  357,   78,   96,
+       86,   84,   82,  340,  110,  357,  357,  357,  357,  357,
+
+      357,  357,  110,   80,   79,   78,  397,  397,  359,  110,
+      360,  360,  360,  360,  360,  360,  360,  397,  397,  397,
+      397,  397,  359,  110,  361,  361,  361,  361,  361,  361,
+      361,  397,  397,  397,  397,  397,  397,  359,   78,  362,
+      362,  362,  362,  362,  363,  360,  397,  397,  397,  397,
+      397,  397,   78,  350,  350,  350,  350,  350,  350,  350,
+      397,  397,  397,  397,  397,  397,  364,   78,  365,  365,
+      365,  365,  365,  365,  365,  397,  397,  397,  397,  397,
+      364,   78,  366,  366,  366,  366,  366,  366,  366,  397,
+      397,  397,  397,  397,  397,  364,  110,  367,  367,  367,
+
+      367,  367,  368,  365,  397,  397,  397,  397,  397,  397,
+      110,  357,  357,  357,  357,  357,  357,  357,  369,  370,
+      371,  369,  369,  369,  369,  110,  359,  397,  360,  360,
+      360,  360,  360,  360,  360,  397,  397,  397,  397,  110,
+      397,  397,  397,  397,  397,  359,   78,  360,  360,  360,
+      360,  360,  360,  360,  397,  359,   78,  360,  360,  360,
+      360,  360,  360,  372,  373,  374,  372,  372,  372,  372,
+      397,  397,  397,  397,  364,   78,  365,  365,  365,  365,
+      365,  365,  365,  397,  397,   78,  397,  397,  397,  397,
+      364,  110,  365,  365,  365,  365,  365,  365,  365,  397,
+
+      397,  397,  397,  364,  110,  365,  365,  365,  365,  365,
+      365,  375,  397,  376,  376,  376,  376,  376,  376,  376,
+      110,  375,  397,  377,  377,  377,  377,  377,  377,  377,
+      397,  397,  375,  110,  378,  378,  378,  378,  378,  379,
+      376,   78,  380,  397,  381,  381,  381,  381,  381,  381,
+      381,   78,  380,  397,  382,  382,  382,  382,  382,  382,
+      382,  380,   78,  383,  383,  383,  383,  383,  384,  381,
+      397,  397,  110,  385,  386,  387,  385,  385,  385,  385,
+      397,  375,  110,  376,  376,  376,  376,  376,  376,  376,
+      375,  110,  376,  376,  376,  376,  376,  376,  376,  397,
+
+      375,   78,  376,  376,  376,  376,  376,  376,  397,  397,
+      397,   78,  388,  389,  390,  388,  388,  388,  388,  380,
+       78,  381,  381,  381,  381,  381,  381,  381,  397,  380,
+       78,  381,  381,  381,  381,  381,  381,  381,  397,  380,
+      110,  381,  381,  381,  381,  381,  381,  397,  397,  110,
+      391,  391,  391,  391,  391,  391,  391,  397,  397,  110,
+      385,  385,  385,  385,  385,  385,  385,  397,  397,  110,
+      392,  392,  392,  392,  392,  393,  391,  397,   78,  394,
+      394,  394,  394,  394,  394,  394,  397,  397,   78,  388,
+      388,  388,  388,  388,  388,  388,  397,  397,   78,  395,
+
+      395,  395,  395,  395,  396,  394,  397,  110,  391,  391,
+      391,  391,  391,  391,  391,  397,  397,  110,  391,  391,
+      391,  391,  391,  391,  397,  397,  397,  110,  394,  394,
+      394,  394,  394,  394,  394,  397,   78,  394,  394,  394,
+      394,  394,  394,  397,  397,  397,   78,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  110,  397,  397,  397,
+      397,  397,  397,  397,  397,  110,   62,   62,   62,   62,
+       62,   62,   62,   21,   21,   21,   21,   21,   21,   21,
+       70,   70,   70,   70,   70,   70,   70,   77,  397,  397,
+      397,  397,   77,   77,   81,   81,   81,   81,   81,   81,
+
+       81,   83,  397,  397,  397,  397,   83,   83,   85,  397,
+      397,  397,  397,   85,   85,   87,  397,   87,  397,  397,
+       87,   87,  109,  397,  397,  397,  397,  109,  109,  112,
+      397,  397,  397,  397,  112,  112,  114,  397,  397,  397,
+      397,  114,  114,  116,  397,  116,  397,  397,  116,  116,
+      131,  397,  131,  397,  397,  131,  131,  135,  397,  135,
+      135,  397,  397,  135,  142,  397,  142,  397,  142,  142,
+      142,  144,  144,  144,  144,  144,  144,  144,  149,  149,
+      149,  149,  149,  149,  149,   88,  397,   88,  397,  397,
+       88,   88,  132,  397,  132,  397,  397,  132,  132,  145,
+
+      145,  145,  145,  145,  145,  145,  336,  397,  397,  397,
+      397,  336,  336,  338,  397,  397,  397,  397,  338,  338,
+      352,  352,  352,  352,  352,  352,  352,   13,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397
     } ;
 
-static yyconst short int yy_chk[2154] =
+static yyconst short int yy_chk[2189] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -728,237 +735,240 @@ static yyconst short int yy_chk[2154] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        2,    5,    6,   36,   58,    5,    6,    5,    6,   67,
-       67,   71,  107,   73,    5,    6,   75,   75,  107,   36,
-       58,  193,   97,    2,    2,   97,    2,  193,   97,  101,
-      404,   71,    2,   73,  101,    2,    3,    3,    3,    3,
+        2,   25,   36,   25,   25,   25,   25,   25,   25,   25,
+       72,   58,   61,   68,   68,   76,   76,  199,   36,   98,
+      137,  137,   98,    2,    2,   98,    2,   58,   61,  102,
+       72,   25,    2,  199,  102,    2,    3,    3,    3,    3,
 
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    7,    7,    7,  102,
-        7,    8,    8,    8,  103,    8,    7,  135,  135,   24,
-       90,    8,   37,   24,   24,  103,  106,    7,    7,  104,
-       99,   99,    8,    8,  386,  105,  104,  106,  383,   25,
-       24,   25,   25,   25,   25,   25,   25,   25,    7,  105,
-
-       90,  118,  128,    8,    9,    9,    9,  128,    9,   24,
-       26,  102,   26,   26,   26,   26,   26,   26,   26,   25,
-       44,   37,   99,   44,   44,   44,   44,   44,   44,   44,
-      110,  118,  344,  110,  110,  110,  110,  110,  110,  110,
-       26,  138,  138,  127,  127,  160,    9,    9,    9,    9,
-        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
-        9,    9,    9,   10,   10,   10,   27,   10,   27,   27,
-       27,   27,   27,   27,   27,  330,   77,  159,   77,  165,
-       77,  125,   77,   77,  125,  127,   77,  125,  143,  159,
-      160,  162,  165,  162,  148,  148,   27,   77,   77,   77,
-
-      164,  328,  164,  195,  195,   10,   10,   10,   10,   10,
-       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
-       10,   10,   11,   11,   11,   11,   11,  143,  175,  244,
-       48,   11,   11,   11,   48,   48,  148,  244,   60,  327,
-      175,   86,   60,   60,   11,   86,   86,  222,  194,  326,
-       49,   48,   49,   49,   49,   49,   49,   49,   49,   60,
-      179,  144,   86,  144,   11,   12,   12,   12,   12,   12,
-       48,  183,  161,  199,   12,   12,   12,  161,   60,  115,
-       49,   86,  163,  115,  115,  187,   50,   12,   50,   50,
-       50,   50,   50,   50,   50,  196,  197,  163,  194,  179,
-
-      115,  183,  144,  199,  222,  258,  187,   12,   30,  203,
-      197,  196,   30,  258,   30,  311,   50,   30,   30,  115,
+        3,    3,    3,    3,    3,    3,    5,    6,  103,   37,
+        5,    6,    5,    6,    7,    7,    7,   24,    7,    5,
+        6,   24,   24,   91,    7,  100,  100,    8,    8,    8,
+       74,    8,  105,  104,  412,    7,    7,    8,   24,  105,
+      106,  108,   71,   71,  104,   71,   71,  108,    8,    8,
+
+       74,  200,   71,   91,  106,  107,    7,   24,   37,  164,
+      103,  164,    5,    6,   71,  200,  107,  100,  165,    8,
+        9,    9,    9,   26,    9,   26,   26,   26,   26,   26,
+       26,   26,   44,  165,   71,   44,   44,   44,   44,   44,
+       44,   44,  111,  128,  128,  111,  111,  111,  111,  111,
+      111,  111,   27,   26,   27,   27,   27,   27,   27,   27,
+       27,  394,    9,    9,    9,    9,    9,    9,    9,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    9,   10,
+       10,   10,   27,   10,   49,  128,   49,   49,   49,   49,
+       49,   49,   49,  391,   78,  161,   78,  252,   78,  126,
+
+       78,   78,  126,  129,   78,  126,  134,  161,  129,  140,
+      140,  134,  252,  119,   49,   78,   78,   78,  162,  198,
+      198,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10,   11,   11,
+       11,   11,   11,  119,  177,  352,   48,   11,   11,   11,
+       48,   48,  167,  166,   60,  166,  177,   87,   60,   60,
+       11,   87,   87,  162,  197,  167,   50,   48,   50,   50,
+       50,   50,   50,   50,   50,   60,  145,  146,   87,  146,
+       11,   12,   12,   12,   12,   12,   48,  150,  150,  179,
+       12,   12,   12,  163,   60,  116,   50,   87,  163,  116,
+
+      116,  179,   51,   12,   51,   51,   51,   51,   51,   51,
+       51,  297,  297,  196,  197,  145,  116,  186,  146,  196,
+      212,  213,  228,   12,   30,  190,  212,  213,   30,  150,
+       30,  228,   51,   30,   30,  116,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,  190,  186,  182,   30,
        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
-      203,  310,  210,   30,   30,   30,   30,   30,   30,   30,
        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
-       30,   30,   30,   30,   30,   30,   30,   30,   35,   35,
-       35,  210,   35,  214,   35,   35,  235,   51,   35,   51,
-       51,   51,   51,   51,   51,   51,  223,  209,  141,   35,
-       35,   35,  141,  209,  214,  221,  224,  233,  141,  291,
+       30,   30,   30,   30,   35,   35,   35,  182,   35,  206,
+       35,   35,  225,  237,   35,  238,  249,  225,  237,  298,
 
-      221,  291,  233,  223,  300,  224,  235,   51,   52,   83,
-      141,   83,   52,   83,   52,   83,   83,   52,   52,   83,
+      238,  298,  338,  336,  249,   35,   35,   35,   52,   84,
+      206,   84,   52,   84,   52,   84,   84,   52,   52,   84,
        52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
-       83,   83,   83,   52,   52,   52,   52,   52,   52,   52,
+       84,   84,   84,   52,   52,   52,   52,   52,   52,   52,
        52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
        52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
        52,   52,   52,   52,   52,   52,   52,   52,   57,   57,
-       57,  245,   57,  246,   57,   57,  298,  270,   57,  271,
-      247,  240,  246,  243,   66,   66,   66,  271,   66,   57,
-       57,   57,   66,  249,   66,  247,  281,   70,   70,  149,
-
-       70,   70,  240,  149,  243,   66,   66,   70,   85,  149,
-       85,  254,   85,  269,   85,   85,  257,  245,   85,   70,
-      149,  149,  262,  249,  270,  281,   66,  279,  269,   85,
-       85,   85,  254,  263,   88,  289,   88,  257,   88,   70,
-       88,   88,  279,  262,   88,   89,   89,   89,   89,   89,
-       89,   89,  294,  272,  263,   88,   88,   88,   91,  287,
-       91,   91,   91,   91,   91,   91,   91,  272,  290,  290,
-      308,  308,   92,   89,   92,   92,   92,   92,   92,   92,
-       92,  294,  309,  308,  267,  318,  278,   93,   91,   93,
-       93,   93,   93,   93,   93,  333,  309,  109,  277,  109,
-
-      276,  109,   92,  109,  109,  267,  112,  109,  112,  266,
-      112,  265,  112,  112,  285,  318,  112,   93,  109,  109,
-      109,  276,  256,  288,  255,  333,  299,  112,  112,  112,
-      114,  253,  114,  305,  114,  285,  114,  114,  306,  116,
-      114,  116,  242,  116,  288,  116,  116,  299,  241,  116,
-      316,  114,  114,  114,  305,  239,  232,  231,  352,  306,
-      116,  116,  116,  117,  117,  117,  117,  117,  117,  117,
-      119,  316,  119,  119,  119,  119,  119,  119,  119,  120,
-      324,  120,  120,  120,  120,  120,  120,  120,  352,  230,
-      121,  117,  121,  121,  121,  121,  121,  121,  130,  357,
-
-      119,  324,  130,  130,  132,  368,  132,  229,  132,  120,
-      132,  132,  142,  142,  132,  142,  142,  228,  220,  130,
-      121,  219,  142,  218,  217,  132,  132,  132,  216,  357,
-      208,  207,  373,  206,  142,  368,  205,  150,  130,  150,
-      150,  150,  150,  150,  150,  150,  284,  284,  284,  284,
-      284,  284,  284,  151,  142,  151,  151,  151,  151,  151,
-      151,  151,  373,  343,  343,  343,  152,  150,  152,  152,
-      152,  152,  152,  152,  152,  284,  204,  192,  191,  190,
-      189,  188,  166,  151,  166,  166,  166,  166,  166,  166,
-      166,  343,  177,  174,  173,  167,  152,  167,  167,  167,
-
-      167,  167,  167,  167,  297,  297,  297,  297,  297,  297,
-      297,  168,  166,  168,  168,  168,  168,  168,  168,  168,
-      180,  180,  176,  180,  180,  167,  176,  350,  350,  350,
-      180,  172,  176,  297,  171,  181,  181,  170,  181,  181,
-      169,  168,  180,  176,  176,  181,  182,  182,  182,  182,
-      182,  182,  182,  158,  157,  350,  323,  181,  323,  323,
-      323,  184,  180,  184,  184,  184,  184,  184,  184,  184,
-      156,  155,  154,  153,  182,  147,  185,  181,  185,  185,
-      185,  185,  185,  185,  185,  338,  323,  338,  338,  338,
-      186,  184,  186,  186,  186,  186,  186,  186,  198,  198,
-
-      198,  198,  198,  198,  198,  200,  185,  200,  200,  200,
-      200,  200,  200,  200,  140,  338,  134,  131,  129,  126,
-      186,  124,  123,  113,  111,  201,  198,  201,  201,  201,
-      201,  201,  201,  201,  202,  200,  202,  202,  202,  202,
-      202,  202,  211,  108,  211,  211,  211,  211,  211,  211,
-      211,   98,   96,   95,  212,  201,  212,  212,  212,  212,
-      212,  212,  212,  213,  202,  213,  213,  213,  213,  213,
-      213,  213,  211,  225,   87,  225,  225,  225,  225,  225,
-      225,  225,   84,  226,  212,  226,  226,  226,  226,  226,
-      226,  226,  227,  213,  227,  227,  227,  227,  227,  227,
-
-      227,   82,   80,  225,  234,  234,  234,  234,  234,  234,
-      234,   79,  236,  226,  236,  236,  236,  236,  236,  236,
-      236,  237,  227,  237,  237,  237,  237,  237,  237,  237,
-       78,  238,  234,  238,  238,  238,  238,  238,  238,   76,
-       69,   63,  236,  248,  248,  248,  248,  248,  248,  248,
-      250,  237,  250,  250,  250,  250,  250,  250,  250,   59,
-      251,  238,  251,  251,  251,  251,  251,  251,  251,   56,
-      252,  248,  252,  252,  252,  252,  252,  252,   55,   54,
-      250,  259,  259,  259,  259,  259,  259,  259,  259,   53,
-      251,  260,  260,  260,  260,  260,  260,  260,  260,   47,
-
-      252,  261,  261,  261,  261,  261,  261,  261,  261,   45,
-      259,  273,  273,  273,  273,  273,  273,  273,  273,   43,
-      260,  274,  274,  274,  274,  274,  274,  274,  274,   42,
-      261,  275,  275,  275,  275,  275,  275,  275,  275,   41,
-      273,  280,  280,  280,  280,  280,  280,  280,   40,   39,
-      274,  282,  282,  282,  282,  282,  282,  282,  282,   38,
-      275,  283,  283,  283,  283,  283,  283,  283,  283,  280,
-      292,  293,  293,  293,  293,  293,  293,  293,   34,  301,
-      282,  301,  301,  301,  301,  301,  301,  301,   33,  292,
-      283,  292,  292,   32,   31,   22,   19,   18,   17,  293,
-
-      295,  295,  295,  295,  295,  295,  295,  295,   15,  301,
-      292,  296,  296,  296,  296,  296,  296,  296,  296,  302,
-       14,  302,  302,  302,  302,  302,  302,  302,  303,  295,
-      303,  303,  303,  303,  303,  303,  303,   13,    0,  304,
-      296,  304,  304,  304,  304,  304,  304,  304,  312,  302,
-      312,  312,  312,  312,  312,  312,  312,  313,  303,  313,
-      313,  313,  313,  313,  313,  313,    0,    0,  314,  304,
-      314,  314,  314,  314,  314,  314,  314,  315,  312,  315,
-      315,  315,  315,  315,  315,  315,    0,  313,  317,  317,
-      317,  317,  317,  317,  317,    0,    0,  319,  314,  319,
-
-      319,  319,  319,  319,  319,  319,  320,  315,  320,  320,
-      320,  320,  320,  320,  320,  321,  317,  321,  321,  321,
-      321,  321,  321,  321,    0,    0,  322,  319,  322,  322,
-      322,  322,  322,  322,  322,    0,  320,  329,    0,  329,
-        0,  329,    0,  329,  329,  321,    0,  329,  332,  332,
-      332,  332,  332,  332,  332,    0,  322,    0,  329,  329,
-      329,  331,    0,  331,    0,  331,    0,  331,  331,    0,
-        0,  331,    0,    0,    0,    0,  332,    0,    0,    0,
-        0,    0,  331,  331,  331,  334,    0,  334,  334,  334,
-      334,  334,  334,  334,  335,    0,  335,  335,  335,  335,
-
-      335,  335,  335,  336,    0,  336,  336,  336,  336,  336,
-      336,  336,    0,    0,  337,  334,  337,  337,  337,  337,
-      337,  337,  337,  339,  335,  339,  339,  339,  339,  339,
-      339,  339,  340,  336,  340,  340,  340,  340,  340,  340,
-      340,    0,    0,  341,  337,  341,  341,  341,  341,  341,
-      341,  341,    0,  339,  342,  342,  342,  342,  342,  342,
-      342,  346,  340,  346,  346,  346,  346,  346,  346,  346,
-        0,    0,  347,  341,  347,  347,  347,  347,  347,  347,
-      347,  348,  342,  348,  348,  348,  348,  348,  348,  348,
-        0,  346,  349,  349,  349,  349,  349,  349,  349,    0,
-
-        0,    0,  347,  351,  351,  351,  351,  351,  351,  351,
-      353,  348,  353,  353,  353,  353,  353,  353,  353,  354,
-      349,  354,  354,  354,  354,  354,  354,  354,    0,    0,
-      355,  351,  355,  355,  355,  355,  355,  355,    0,    0,
-      353,  356,  356,  356,  356,  356,  356,  356,  358,  354,
-      358,  358,  358,  358,  358,  358,  358,    0,    0,  359,
-      355,  359,  359,  359,  359,  359,  359,  359,  360,  356,
-      360,  360,  360,  360,  360,  360,    0,  361,  358,  361,
-      361,  361,  361,  361,  361,  361,    0,    0,  362,  359,
-      362,  362,  362,  362,  362,  362,  362,  363,  360,  363,
-
-      363,  363,  363,  363,  363,  363,  364,  361,  364,  364,
-      364,  364,  364,  364,  364,    0,    0,  365,  362,  365,
-      365,  365,  365,  365,  365,  365,  366,  363,  366,  366,
-      366,  366,  366,  366,  366,    0,  364,  367,  367,  367,
-      367,  367,  367,  367,    0,    0,  369,  365,  369,  369,
-      369,  369,  369,  369,  369,  370,  366,  370,  370,  370,
-      370,  370,  370,  370,  371,  367,  371,  371,  371,  371,
-      371,  371,    0,    0,    0,    0,  369,  372,  372,  372,
-      372,  372,  372,  372,  374,  370,  374,  374,  374,  374,
-      374,  374,  374,  375,  371,  375,  375,  375,  375,  375,
-
-      375,  375,    0,    0,  376,  372,  376,  376,  376,  376,
-      376,  376,    0,    0,  374,  377,  377,  377,  377,  377,
-      377,  377,    0,  375,  378,  378,  378,  378,  378,  378,
-      378,    0,    0,    0,  376,  379,  379,  379,  379,  379,
-      379,  379,    0,  377,  380,  380,  380,  380,  380,  380,
-      380,    0,  378,  381,  381,  381,  381,  381,  381,  381,
-        0,    0,    0,  379,  382,  382,  382,  382,  382,  382,
-      382,    0,  380,  384,  384,  384,  384,  384,  384,  384,
-        0,  381,  385,  385,  385,  385,  385,  385,    0,    0,
-        0,    0,  382,  387,  387,  387,  387,  387,  387,  387,
-
-        0,  384,  388,  388,  388,  388,  388,  388,    0,    0,
-      385,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  387,    0,    0,    0,    0,    0,    0,    0,    0,
-      388,  390,  390,  390,  390,  390,  390,  390,  391,  391,
-      391,  391,  391,  391,  391,  392,  392,  392,  392,  392,
-      392,  392,  393,    0,    0,    0,    0,  393,  393,  394,
-      394,  394,  394,  394,  394,  394,  395,    0,    0,    0,
-        0,  395,  395,  396,    0,    0,    0,    0,  396,  396,
-      397,    0,  397,    0,    0,  397,  397,  398,    0,    0,
-        0,    0,  398,  398,  399,    0,    0,    0,    0,  399,
-
-      399,  400,    0,    0,    0,    0,  400,  400,  401,    0,
-      401,    0,    0,  401,  401,  402,    0,  402,    0,    0,
-      402,  402,  403,    0,  403,  403,    0,    0,  403,  405,
-        0,  405,    0,  405,  405,  405,  406,  406,  406,  406,
-      406,  406,  406,  407,  407,  407,  407,  407,  407,  407,
-      408,    0,  408,    0,    0,  408,  408,  409,    0,  409,
-        0,    0,  409,  409,  410,  410,  410,  410,  410,  410,
-      410,  411,    0,    0,    0,    0,  411,  411,  412,    0,
-        0,    0,    0,  412,  412,  413,  413,  413,  413,  413,
-      413,  413,  389,  389,  389,  389,  389,  389,  389,  389,
-
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-      389,  389,  389
+       57,  202,   57,  226,   57,   57,  250,  218,   57,  214,
+      335,  275,  334,  319,   67,   67,   67,  227,   67,   57,
+       57,   57,   67,   86,   67,   86,  275,   86,  218,   86,
+
+       86,  202,  240,   86,  227,   67,   67,   90,   90,   90,
+       90,   90,   90,   90,   86,   86,   86,   89,  214,   89,
+      251,   89,  250,   89,   89,  263,   67,   89,  264,  251,
+      226,  318,  240,  263,  277,   90,  264,  254,   89,   89,
+       89,   92,  277,   92,   92,   92,   92,   92,   92,   92,
+       93,  308,   93,   93,   93,   93,   93,   93,   93,   94,
+      285,   94,   94,   94,   94,   94,   94,  254,  307,  245,
+      276,   92,  110,  305,  110,  285,  110,  248,  110,  110,
+       93,  113,  110,  113,  286,  113,  278,  113,  113,   94,
+      245,  113,  131,  110,  110,  110,  131,  131,  248,  286,
+
+      278,  259,  113,  113,  113,  115,  296,  115,  262,  115,
+      268,  115,  115,  131,  117,  115,  117,  276,  117,  317,
+      117,  117,  259,  294,  117,  269,  115,  115,  115,  262,
+      284,  268,  131,  317,  273,  117,  117,  117,  118,  118,
+      118,  118,  118,  118,  118,  120,  269,  120,  120,  120,
+      120,  120,  120,  120,  121,  273,  121,  121,  121,  121,
+      121,  121,  121,  288,  301,  122,  118,  122,  122,  122,
+      122,  122,  122,  282,  283,  120,  133,  326,  133,  272,
+      133,  143,  133,  133,  121,  143,  133,  292,  295,  306,
+      271,  143,  288,  301,  282,  122,  151,  133,  133,  133,
+
+      151,  144,  144,  143,  144,  144,  151,  326,  292,  295,
+      306,  144,  261,  260,  258,  247,  246,  151,  151,  313,
+      314,  244,  152,  144,  152,  152,  152,  152,  152,  152,
+      152,  153,  236,  153,  153,  153,  153,  153,  153,  153,
+      313,  314,  154,  144,  154,  154,  154,  154,  154,  154,
+      154,  168,  152,  168,  168,  168,  168,  168,  168,  168,
+      169,  153,  169,  169,  169,  169,  169,  169,  169,  235,
+      324,  170,  154,  170,  170,  170,  170,  170,  170,  170,
+      234,  168,  178,  233,  183,  183,  178,  183,  183,  232,
+      169,  324,  178,  332,  183,  184,  184,  224,  184,  184,
+
+      223,  170,  222,  178,  178,  184,  183,  185,  185,  185,
+      185,  185,  185,  185,  332,  341,  187,  184,  187,  187,
+      187,  187,  187,  187,  187,  188,  183,  188,  188,  188,
+      188,  188,  188,  188,  360,  185,  189,  184,  189,  189,
+      189,  189,  189,  189,  221,  341,  187,  201,  201,  201,
+      201,  201,  201,  201,  203,  188,  203,  203,  203,  203,
+      203,  203,  203,  365,  360,  204,  189,  204,  204,  204,
+      204,  204,  204,  204,  205,  201,  205,  205,  205,  205,
+      205,  205,  220,  215,  203,  215,  215,  215,  215,  215,
+      215,  215,  376,  365,  216,  204,  216,  216,  216,  216,
+
+      216,  216,  216,  217,  205,  217,  217,  217,  217,  217,
+      217,  217,  229,  215,  229,  229,  229,  229,  229,  229,
+      229,  381,  376,  230,  216,  230,  230,  230,  230,  230,
+      230,  230,  231,  217,  231,  231,  231,  231,  231,  231,
+      231,  211,  229,  239,  239,  239,  239,  239,  239,  239,
+      210,  381,  241,  230,  241,  241,  241,  241,  241,  241,
+      241,  242,  231,  242,  242,  242,  242,  242,  242,  242,
+      243,  239,  243,  243,  243,  243,  243,  243,  209,  208,
+      207,  195,  241,  253,  253,  253,  253,  253,  253,  253,
+      255,  242,  255,  255,  255,  255,  255,  255,  255,  256,
+
+      243,  256,  256,  256,  256,  256,  256,  256,  194,  193,
+      257,  253,  257,  257,  257,  257,  257,  257,  192,  191,
+      255,  265,  265,  265,  265,  265,  265,  265,  265,  256,
+      266,  266,  266,  266,  266,  266,  266,  266,  180,  176,
+      257,  267,  267,  267,  267,  267,  267,  267,  267,  175,
+      265,  279,  279,  279,  279,  279,  279,  279,  279,  266,
+      280,  280,  280,  280,  280,  280,  280,  280,  174,  173,
+      267,  281,  281,  281,  281,  281,  281,  281,  281,  172,
+      279,  287,  287,  287,  287,  287,  287,  287,  171,  280,
+      289,  289,  289,  289,  289,  289,  289,  289,  160,  159,
+
+      281,  290,  290,  290,  290,  290,  290,  290,  290,  287,
+      291,  291,  291,  291,  291,  291,  291,  158,  157,  289,
+      156,  299,  300,  300,  300,  300,  300,  300,  300,  155,
+      290,  302,  302,  302,  302,  302,  302,  302,  302,  291,
+      299,  149,  299,  299,  142,  136,  316,  316,  132,  130,
+      300,  303,  303,  303,  303,  303,  303,  303,  303,  316,
+      302,  299,  304,  304,  304,  304,  304,  304,  304,  309,
+      127,  309,  309,  309,  309,  309,  309,  309,  125,  310,
+      303,  310,  310,  310,  310,  310,  310,  310,  124,  114,
+      311,  304,  311,  311,  311,  311,  311,  311,  311,  309,
+
+      312,  112,  312,  312,  312,  312,  312,  312,  312,  310,
+      320,  109,  320,  320,  320,  320,  320,  320,  320,  321,
+      311,  321,  321,  321,  321,  321,  321,  321,   99,  322,
+      312,  322,  322,  322,  322,  322,  322,  322,   97,  323,
+      320,  323,  323,  323,  323,  323,  323,  323,   96,  321,
+      325,  325,  325,  325,  325,  325,  325,   88,  327,  322,
+      327,  327,  327,  327,  327,  327,  327,   85,  328,  323,
+      328,  328,  328,  328,  328,  328,  328,  329,  325,  329,
+      329,  329,  329,  329,  329,  329,   83,  330,  327,  330,
+      330,  330,  330,  330,  330,  330,   81,  331,  328,  331,
+
+      331,  331,  337,   80,  337,   79,  337,  329,  337,  337,
+       77,   70,  337,   64,   59,   56,  346,  330,  346,  346,
+      346,   55,   54,  337,  337,  337,  339,  331,  339,   53,
+      339,   47,  339,  339,   45,   43,  339,  340,  340,  340,
+      340,  340,  340,  340,   42,   41,  346,  339,  339,  339,
+      342,   40,  342,  342,  342,  342,  342,  342,  342,   39,
+      351,  351,  351,   38,  343,  340,  343,  343,  343,  343,
+      343,  343,  343,   34,  358,  358,  358,   33,   32,  344,
+      342,  344,  344,  344,  344,  344,  344,  344,  351,   31,
+       22,   19,   18,  345,  343,  345,  345,  345,  345,  345,
+
+      345,  345,  358,   17,   15,   14,   13,    0,  347,  344,
+      347,  347,  347,  347,  347,  347,  347,    0,    0,    0,
+        0,    0,  348,  345,  348,  348,  348,  348,  348,  348,
+      348,    0,    0,    0,    0,    0,    0,  349,  347,  349,
+      349,  349,  349,  349,  349,  349,    0,    0,    0,    0,
+        0,    0,  348,  350,  350,  350,  350,  350,  350,  350,
+        0,    0,    0,    0,    0,    0,  354,  349,  354,  354,
+      354,  354,  354,  354,  354,    0,    0,    0,    0,    0,
+      355,  350,  355,  355,  355,  355,  355,  355,  355,    0,
+        0,    0,    0,    0,    0,  356,  354,  356,  356,  356,
+
+      356,  356,  356,  356,    0,    0,    0,    0,    0,    0,
+      355,  357,  357,  357,  357,  357,  357,  357,  359,  359,
+      359,  359,  359,  359,  359,  356,  361,    0,  361,  361,
+      361,  361,  361,  361,  361,    0,    0,    0,    0,  357,
+        0,    0,    0,    0,    0,  362,  359,  362,  362,  362,
+      362,  362,  362,  362,    0,  363,  361,  363,  363,  363,
+      363,  363,  363,  364,  364,  364,  364,  364,  364,  364,
+        0,    0,    0,    0,  366,  362,  366,  366,  366,  366,
+      366,  366,  366,    0,    0,  363,    0,    0,    0,    0,
+      367,  364,  367,  367,  367,  367,  367,  367,  367,    0,
+
+        0,    0,    0,  368,  366,  368,  368,  368,  368,  368,
+      368,  369,    0,  369,  369,  369,  369,  369,  369,  369,
+      367,  370,    0,  370,  370,  370,  370,  370,  370,  370,
+        0,    0,  371,  368,  371,  371,  371,  371,  371,  371,
+      371,  369,  372,    0,  372,  372,  372,  372,  372,  372,
+      372,  370,  373,    0,  373,  373,  373,  373,  373,  373,
+      373,  374,  371,  374,  374,  374,  374,  374,  374,  374,
+        0,    0,  372,  375,  375,  375,  375,  375,  375,  375,
+        0,  377,  373,  377,  377,  377,  377,  377,  377,  377,
+      378,  374,  378,  378,  378,  378,  378,  378,  378,    0,
+
+      379,  375,  379,  379,  379,  379,  379,  379,    0,    0,
+        0,  377,  380,  380,  380,  380,  380,  380,  380,  382,
+      378,  382,  382,  382,  382,  382,  382,  382,    0,  383,
+      379,  383,  383,  383,  383,  383,  383,  383,    0,  384,
+      380,  384,  384,  384,  384,  384,  384,    0,    0,  382,
+      385,  385,  385,  385,  385,  385,  385,    0,    0,  383,
+      386,  386,  386,  386,  386,  386,  386,    0,    0,  384,
+      387,  387,  387,  387,  387,  387,  387,    0,  385,  388,
+      388,  388,  388,  388,  388,  388,    0,    0,  386,  389,
+      389,  389,  389,  389,  389,  389,    0,    0,  387,  390,
+
+      390,  390,  390,  390,  390,  390,    0,  388,  392,  392,
+      392,  392,  392,  392,  392,    0,    0,  389,  393,  393,
+      393,  393,  393,  393,    0,    0,    0,  390,  395,  395,
+      395,  395,  395,  395,  395,    0,  392,  396,  396,  396,
+      396,  396,  396,    0,    0,    0,  393,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  395,    0,    0,    0,
+        0,    0,    0,    0,    0,  396,  398,  398,  398,  398,
+      398,  398,  398,  399,  399,  399,  399,  399,  399,  399,
+      400,  400,  400,  400,  400,  400,  400,  401,    0,    0,
+        0,    0,  401,  401,  402,  402,  402,  402,  402,  402,
+
+      402,  403,    0,    0,    0,    0,  403,  403,  404,    0,
+        0,    0,    0,  404,  404,  405,    0,  405,    0,    0,
+      405,  405,  406,    0,    0,    0,    0,  406,  406,  407,
+        0,    0,    0,    0,  407,  407,  408,    0,    0,    0,
+        0,  408,  408,  409,    0,  409,    0,    0,  409,  409,
+      410,    0,  410,    0,    0,  410,  410,  411,    0,  411,
+      411,    0,    0,  411,  413,    0,  413,    0,  413,  413,
+      413,  414,  414,  414,  414,  414,  414,  414,  415,  415,
+      415,  415,  415,  415,  415,  416,    0,  416,    0,    0,
+      416,  416,  417,    0,  417,    0,    0,  417,  417,  418,
+
+      418,  418,  418,  418,  418,  418,  419,    0,    0,    0,
+        0,  419,  419,  420,    0,    0,    0,    0,  420,  420,
+      421,  421,  421,  421,  421,  421,  421,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1069,7 +1079,7 @@ extern void yyerror               __P((const char *));
 
 #define INDEFS 5
 
-#line 1073 "toke.c"
+#line 1083 "toke.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1225,7 +1235,7 @@ YY_DECL
 
 #line 104 "toke.l"
 
-#line 1229 "toke.c"
+#line 1239 "toke.c"
 
        if ( yy_init )
                {
@@ -1277,13 +1287,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 390 )
+                               if ( yy_current_state >= 398 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 2093 );
+               while ( yy_base[yy_current_state] != 2128 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1631,22 +1641,22 @@ case 30:
 YY_RULE_SETUP
 #line 336 "toke.l"
 {
-                           BEGIN GOTCMND;
-                           LEXTRACE("COMMAND ");
+                           /* no command args allowed for Defaults!/path */
                            if (!fill_cmnd(yytext, yyleng))
                                yyterminate();
-                       }                       /* sudo -e */
+                           LEXTRACE("COMMAND ");
+                           return(COMMAND);
+                       }
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 343 "toke.l"
+#line 344 "toke.l"
 {
-                           /* no command args allowed for Defaults!/path */
+                           BEGIN GOTCMND;
+                           LEXTRACE("COMMAND ");
                            if (!fill_cmnd(yytext, yyleng))
                                yyterminate();
-                           LEXTRACE("COMMAND ");
-                           return(COMMAND);
-                       }
+                       }                       /* sudo -e */
        YY_BREAK
 case 32:
 YY_RULE_SETUP
@@ -1775,7 +1785,7 @@ YY_RULE_SETUP
 #line 433 "toke.l"
 ECHO;
        YY_BREAK
-#line 1779 "toke.c"
+#line 1789 "toke.c"
 
        case YY_END_OF_BUFFER:
                {
@@ -2066,7 +2076,7 @@ static yy_state_type yy_get_previous_state()
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 390 )
+                       if ( yy_current_state >= 398 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2101,11 +2111,11 @@ yy_state_type yy_current_state;
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 390 )
+               if ( yy_current_state >= 398 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 389);
+       yy_is_jam = (yy_current_state == 397);
 
        return yy_is_jam ? 0 : yy_current_state;
        }
diff --git a/toke.l b/toke.l
index 566581392cc1efb43b50fb98e2cd05963b963f93..effa40e00218edf151d4dd7ee366aa12e170ba86 100644 (file)
--- a/toke.l
+++ b/toke.l
@@ -333,14 +333,7 @@ MONITOR[[:blank:]]*:       {
                            BEGIN INITIAL;
                        }
 
-sudoedit               {
-                           BEGIN GOTCMND;
-                           LEXTRACE("COMMAND ");
-                           if (!fill_cmnd(yytext, yyleng))
-                               yyterminate();
-                       }                       /* sudo -e */
-
-<GOTDEFS>{PATH}                {
+<GOTDEFS>({PATH}|sudoedit) {
                            /* no command args allowed for Defaults!/path */
                            if (!fill_cmnd(yytext, yyleng))
                                yyterminate();
@@ -348,6 +341,13 @@ sudoedit           {
                            return(COMMAND);
                        }
 
+sudoedit               {
+                           BEGIN GOTCMND;
+                           LEXTRACE("COMMAND ");
+                           if (!fill_cmnd(yytext, yyleng))
+                               yyterminate();
+                       }                       /* sudo -e */
+
 {PATH}                 {
                            /* directories can't have args... */
                            if (yytext[yyleng - 1] == '/') {